aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/Kconfig25
-rw-r--r--arch/powerpc/Kconfig.debug19
-rw-r--r--arch/powerpc/Makefile9
-rw-r--r--arch/powerpc/boot/4xx.c12
-rw-r--r--arch/powerpc/boot/Makefile11
-rw-r--r--arch/powerpc/boot/addRamDisk.c311
-rw-r--r--arch/powerpc/boot/dts/icon.dts447
-rw-r--r--arch/powerpc/boot/dts/iss4xx-mpic.dts155
-rw-r--r--arch/powerpc/boot/dts/iss4xx.dts116
-rw-r--r--arch/powerpc/boot/dts/katmai.dts1
-rw-r--r--arch/powerpc/boot/dts/lite5200.dts28
-rw-r--r--arch/powerpc/boot/dts/lite5200b.dts5
-rw-r--r--arch/powerpc/boot/dts/mpc8315erdb.dts16
-rw-r--r--arch/powerpc/boot/dts/mpc8377_rdb.dts14
-rw-r--r--arch/powerpc/boot/dts/mpc8378_rdb.dts14
-rw-r--r--arch/powerpc/boot/dts/mpc8379_rdb.dts14
-rw-r--r--arch/powerpc/boot/dts/mpc8548cds.dts4
-rw-r--r--arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts15
-rw-r--r--arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts7
-rw-r--r--arch/powerpc/boot/dts/p1020rdb.dts125
-rw-r--r--arch/powerpc/boot/dts/p1021mds.dts698
-rw-r--r--arch/powerpc/boot/dts/redwood.dts122
-rw-r--r--arch/powerpc/boot/treeboot-iss4xx.c56
-rwxr-xr-xarch/powerpc/boot/wrapper9
-rw-r--r--arch/powerpc/configs/40x/acadia_defconfig3
-rw-r--r--arch/powerpc/configs/40x/ep405_defconfig3
-rw-r--r--arch/powerpc/configs/40x/hcu4_defconfig3
-rw-r--r--arch/powerpc/configs/40x/kilauea_defconfig3
-rw-r--r--arch/powerpc/configs/40x/makalu_defconfig3
-rw-r--r--arch/powerpc/configs/40x/virtex_defconfig3
-rw-r--r--arch/powerpc/configs/40x/walnut_defconfig3
-rw-r--r--arch/powerpc/configs/44x/arches_defconfig3
-rw-r--r--arch/powerpc/configs/44x/bamboo_defconfig3
-rw-r--r--arch/powerpc/configs/44x/canyonlands_defconfig3
-rw-r--r--arch/powerpc/configs/44x/ebony_defconfig3
-rw-r--r--arch/powerpc/configs/44x/eiger_defconfig3
-rw-r--r--arch/powerpc/configs/44x/icon_defconfig1451
-rw-r--r--arch/powerpc/configs/44x/iss476-smp_defconfig1026
-rw-r--r--arch/powerpc/configs/44x/katmai_defconfig3
-rw-r--r--arch/powerpc/configs/44x/rainier_defconfig3
-rw-r--r--arch/powerpc/configs/44x/redwood_defconfig3
-rw-r--r--arch/powerpc/configs/44x/sam440ep_defconfig3
-rw-r--r--arch/powerpc/configs/44x/sequoia_defconfig3
-rw-r--r--arch/powerpc/configs/44x/taishan_defconfig3
-rw-r--r--arch/powerpc/configs/44x/virtex5_defconfig3
-rw-r--r--arch/powerpc/configs/52xx/cm5200_defconfig3
-rw-r--r--arch/powerpc/configs/52xx/lite5200b_defconfig3
-rw-r--r--arch/powerpc/configs/52xx/motionpro_defconfig3
-rw-r--r--arch/powerpc/configs/52xx/pcm030_defconfig3
-rw-r--r--arch/powerpc/configs/52xx/tqm5200_defconfig3
-rw-r--r--arch/powerpc/configs/83xx/asp8347_defconfig44
-rw-r--r--arch/powerpc/configs/83xx/kmeter1_defconfig28
-rw-r--r--arch/powerpc/configs/83xx/mpc8313_rdb_defconfig49
-rw-r--r--arch/powerpc/configs/83xx/mpc8315_rdb_defconfig50
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_mds_defconfig45
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_rdb_defconfig49
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itx_defconfig44
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig43
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_mds_defconfig46
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_mds_defconfig45
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_rdk_defconfig44
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_mds_defconfig46
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_rdb_defconfig51
-rw-r--r--arch/powerpc/configs/83xx/sbc834x_defconfig44
-rw-r--r--arch/powerpc/configs/85xx/ksi8560_defconfig23
-rw-r--r--arch/powerpc/configs/85xx/mpc8540_ads_defconfig25
-rw-r--r--arch/powerpc/configs/85xx/mpc8560_ads_defconfig34
-rw-r--r--arch/powerpc/configs/85xx/mpc85xx_cds_defconfig31
-rw-r--r--arch/powerpc/configs/85xx/sbc8548_defconfig31
-rw-r--r--arch/powerpc/configs/85xx/sbc8560_defconfig25
-rw-r--r--arch/powerpc/configs/85xx/socrates_defconfig51
-rw-r--r--arch/powerpc/configs/85xx/stx_gp3_defconfig51
-rw-r--r--arch/powerpc/configs/85xx/tqm8540_defconfig48
-rw-r--r--arch/powerpc/configs/85xx/tqm8541_defconfig54
-rw-r--r--arch/powerpc/configs/85xx/tqm8548_defconfig47
-rw-r--r--arch/powerpc/configs/85xx/tqm8555_defconfig54
-rw-r--r--arch/powerpc/configs/85xx/tqm8560_defconfig54
-rw-r--r--arch/powerpc/configs/85xx/xes_mpc85xx_defconfig59
-rw-r--r--arch/powerpc/configs/86xx/gef_ppc9a_defconfig105
-rw-r--r--arch/powerpc/configs/86xx/gef_sbc310_defconfig56
-rw-r--r--arch/powerpc/configs/86xx/gef_sbc610_defconfig99
-rw-r--r--arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig37
-rw-r--r--arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig51
-rw-r--r--arch/powerpc/configs/86xx/sbc8641d_defconfig43
-rw-r--r--arch/powerpc/configs/adder875_defconfig21
-rw-r--r--arch/powerpc/configs/amigaone_defconfig3
-rw-r--r--arch/powerpc/configs/c2k_defconfig58
-rw-r--r--arch/powerpc/configs/cell_defconfig3
-rw-r--r--arch/powerpc/configs/celleb_defconfig3
-rw-r--r--arch/powerpc/configs/chrp32_defconfig3
-rw-r--r--arch/powerpc/configs/ep8248e_defconfig23
-rw-r--r--arch/powerpc/configs/ep88xc_defconfig20
-rw-r--r--arch/powerpc/configs/g5_defconfig3
-rw-r--r--arch/powerpc/configs/gamecube_defconfig3
-rw-r--r--arch/powerpc/configs/holly_defconfig1
-rw-r--r--arch/powerpc/configs/iseries_defconfig3
-rw-r--r--arch/powerpc/configs/linkstation_defconfig51
-rw-r--r--arch/powerpc/configs/maple_defconfig3
-rw-r--r--arch/powerpc/configs/mgcoge_defconfig34
-rw-r--r--arch/powerpc/configs/mgsuvd_defconfig22
-rw-r--r--arch/powerpc/configs/mpc512x_defconfig3
-rw-r--r--arch/powerpc/configs/mpc5200_defconfig3
-rw-r--r--arch/powerpc/configs/mpc7448_hpc2_defconfig29
-rw-r--r--arch/powerpc/configs/mpc8272_ads_defconfig23
-rw-r--r--arch/powerpc/configs/mpc83xx_defconfig124
-rw-r--r--arch/powerpc/configs/mpc85xx_defconfig62
-rw-r--r--arch/powerpc/configs/mpc85xx_smp_defconfig64
-rw-r--r--arch/powerpc/configs/mpc866_ads_defconfig20
-rw-r--r--arch/powerpc/configs/mpc86xx_defconfig57
-rw-r--r--arch/powerpc/configs/mpc885_ads_defconfig20
-rw-r--r--arch/powerpc/configs/pasemi_defconfig3
-rw-r--r--arch/powerpc/configs/pmac32_defconfig3
-rw-r--r--arch/powerpc/configs/ppc40x_defconfig3
-rw-r--r--arch/powerpc/configs/ppc44x_defconfig3
-rw-r--r--arch/powerpc/configs/ppc64_defconfig5
-rw-r--r--arch/powerpc/configs/ppc64e_defconfig3
-rw-r--r--arch/powerpc/configs/pq2fads_defconfig25
-rw-r--r--arch/powerpc/configs/prpmc2800_defconfig55
-rw-r--r--arch/powerpc/configs/ps3_defconfig189
-rw-r--r--arch/powerpc/configs/pseries_defconfig5
-rw-r--r--arch/powerpc/configs/storcenter_defconfig36
-rw-r--r--arch/powerpc/configs/wii_defconfig3
-rw-r--r--arch/powerpc/include/asm/abs_addr.h2
-rw-r--r--arch/powerpc/include/asm/asm-compat.h4
-rw-r--r--arch/powerpc/include/asm/bug.h6
-rw-r--r--arch/powerpc/include/asm/cache.h8
-rw-r--r--arch/powerpc/include/asm/cpm.h24
-rw-r--r--arch/powerpc/include/asm/cpm1.h3
-rw-r--r--arch/powerpc/include/asm/cputable.h6
-rw-r--r--arch/powerpc/include/asm/device.h16
-rw-r--r--arch/powerpc/include/asm/hvcall.h2
-rw-r--r--arch/powerpc/include/asm/hw_irq.h38
-rw-r--r--arch/powerpc/include/asm/irq.h6
-rw-r--r--arch/powerpc/include/asm/kdump.h11
-rw-r--r--arch/powerpc/include/asm/kexec.h17
-rw-r--r--arch/powerpc/include/asm/kmap_types.h1
-rw-r--r--arch/powerpc/include/asm/kvm.h10
-rw-r--r--arch/powerpc/include/asm/kvm_asm.h2
-rw-r--r--arch/powerpc/include/asm/kvm_book3s.h167
-rw-r--r--arch/powerpc/include/asm/kvm_book3s_32.h42
-rw-r--r--arch/powerpc/include/asm/kvm_book3s_64.h28
-rw-r--r--arch/powerpc/include/asm/kvm_book3s_asm.h (renamed from arch/powerpc/include/asm/kvm_book3s_64_asm.h)25
-rw-r--r--arch/powerpc/include/asm/kvm_booke.h96
-rw-r--r--arch/powerpc/include/asm/kvm_fpu.h88
-rw-r--r--arch/powerpc/include/asm/kvm_host.h56
-rw-r--r--arch/powerpc/include/asm/kvm_ppc.h97
-rw-r--r--arch/powerpc/include/asm/lmb.h15
-rw-r--r--arch/powerpc/include/asm/macio.h6
-rw-r--r--arch/powerpc/include/asm/memblock.h15
-rw-r--r--arch/powerpc/include/asm/mmu-44x.h51
-rw-r--r--arch/powerpc/include/asm/mmu-hash64.h4
-rw-r--r--arch/powerpc/include/asm/mmu.h1
-rw-r--r--arch/powerpc/include/asm/mmu_context.h2
-rw-r--r--arch/powerpc/include/asm/mmzone.h2
-rw-r--r--arch/powerpc/include/asm/mpc52xx_psc.h1
-rw-r--r--arch/powerpc/include/asm/mpic.h3
-rw-r--r--arch/powerpc/include/asm/of_device.h3
-rw-r--r--arch/powerpc/include/asm/paca.h11
-rw-r--r--arch/powerpc/include/asm/page.h15
-rw-r--r--arch/powerpc/include/asm/page_64.h8
-rw-r--r--arch/powerpc/include/asm/parport.h11
-rw-r--r--arch/powerpc/include/asm/pgalloc-64.h6
-rw-r--r--arch/powerpc/include/asm/pgtable-ppc32.h2
-rw-r--r--arch/powerpc/include/asm/ppc-opcode.h6
-rw-r--r--arch/powerpc/include/asm/processor.h3
-rw-r--r--arch/powerpc/include/asm/ptrace.h96
-rw-r--r--arch/powerpc/include/asm/reg.h14
-rw-r--r--arch/powerpc/include/asm/reg_booke.h57
-rw-r--r--arch/powerpc/include/asm/scatterlist.h28
-rw-r--r--arch/powerpc/include/asm/smp.h18
-rw-r--r--arch/powerpc/include/asm/syscall.h6
-rw-r--r--arch/powerpc/include/asm/system.h3
-rw-r--r--arch/powerpc/include/asm/thread_info.h2
-rw-r--r--arch/powerpc/include/asm/topology.h26
-rw-r--r--arch/powerpc/kernel/Makefile8
-rw-r--r--arch/powerpc/kernel/asm-offsets.c112
-rw-r--r--arch/powerpc/kernel/btext.c2
-rw-r--r--arch/powerpc/kernel/cacheinfo.c1
-rw-r--r--arch/powerpc/kernel/cputable.c31
-rw-r--r--arch/powerpc/kernel/crash.c44
-rw-r--r--arch/powerpc/kernel/crash_dump.c4
-rw-r--r--arch/powerpc/kernel/dma-swiotlb.c9
-rw-r--r--arch/powerpc/kernel/dma.c17
-rw-r--r--arch/powerpc/kernel/entry_32.S5
-rw-r--r--arch/powerpc/kernel/entry_64.S9
-rw-r--r--arch/powerpc/kernel/exceptions-64s.S13
-rw-r--r--arch/powerpc/kernel/fsl_booke_entry_mapping.S235
-rw-r--r--arch/powerpc/kernel/head_32.S14
-rw-r--r--arch/powerpc/kernel/head_44x.S828
-rw-r--r--arch/powerpc/kernel/head_64.S4
-rw-r--r--arch/powerpc/kernel/head_8xx.S70
-rw-r--r--arch/powerpc/kernel/head_booke.h4
-rw-r--r--arch/powerpc/kernel/head_fsl_booke.S220
-rw-r--r--arch/powerpc/kernel/ibmebus.c7
-rw-r--r--arch/powerpc/kernel/iommu.c19
-rw-r--r--arch/powerpc/kernel/irq.c40
-rw-r--r--arch/powerpc/kernel/kgdb.c11
-rw-r--r--arch/powerpc/kernel/kprobes.c18
-rw-r--r--arch/powerpc/kernel/lparcfg.c13
-rw-r--r--arch/powerpc/kernel/machine_kexec.c12
-rw-r--r--arch/powerpc/kernel/machine_kexec_64.c66
-rw-r--r--arch/powerpc/kernel/misc.S26
-rw-r--r--arch/powerpc/kernel/misc_32.S28
-rw-r--r--arch/powerpc/kernel/misc_64.S10
-rw-r--r--arch/powerpc/kernel/of_device.c13
-rw-r--r--arch/powerpc/kernel/of_platform.c22
-rw-r--r--arch/powerpc/kernel/paca.c10
-rw-r--r--arch/powerpc/kernel/pci-common.c6
-rw-r--r--arch/powerpc/kernel/pci_32.c1
-rw-r--r--arch/powerpc/kernel/pci_dn.c1
-rw-r--r--arch/powerpc/kernel/pci_of_scan.c2
-rw-r--r--arch/powerpc/kernel/perf_event.c134
-rw-r--r--arch/powerpc/kernel/perf_event_fsl_emb.c6
-rw-r--r--arch/powerpc/kernel/proc_powerpc.c1
-rw-r--r--arch/powerpc/kernel/process.c8
-rw-r--r--arch/powerpc/kernel/prom.c60
-rw-r--r--arch/powerpc/kernel/prom_init.c5
-rw-r--r--arch/powerpc/kernel/prom_init_check.sh6
-rw-r--r--arch/powerpc/kernel/ptrace.c103
-rw-r--r--arch/powerpc/kernel/rtas.c22
-rw-r--r--arch/powerpc/kernel/rtas_flash.c40
-rw-r--r--arch/powerpc/kernel/rtasd.c17
-rw-r--r--arch/powerpc/kernel/setup-common.c88
-rw-r--r--arch/powerpc/kernel/setup_32.c26
-rw-r--r--arch/powerpc/kernel/setup_64.c51
-rw-r--r--arch/powerpc/kernel/smp-tbsync.c1
-rw-r--r--arch/powerpc/kernel/smp.c73
-rw-r--r--arch/powerpc/kernel/softemu8xx.c1
-rw-r--r--arch/powerpc/kernel/suspend.c2
-rw-r--r--arch/powerpc/kernel/swsusp_booke.S193
-rw-r--r--arch/powerpc/kernel/sys_ppc32.c1
-rw-r--r--arch/powerpc/kernel/sysfs.c46
-rw-r--r--arch/powerpc/kernel/time.c60
-rw-r--r--arch/powerpc/kernel/traps.c136
-rw-r--r--arch/powerpc/kernel/vdso.c4
-rw-r--r--arch/powerpc/kernel/vio.c45
-rw-r--r--arch/powerpc/kernel/vmlinux.lds.S10
-rw-r--r--arch/powerpc/kvm/44x.c3
-rw-r--r--arch/powerpc/kvm/44x_tlb.c5
-rw-r--r--arch/powerpc/kvm/Kconfig24
-rw-r--r--arch/powerpc/kvm/Makefile22
-rw-r--r--arch/powerpc/kvm/book3s.c552
-rw-r--r--arch/powerpc/kvm/book3s_32_mmu.c54
-rw-r--r--arch/powerpc/kvm/book3s_32_mmu_host.c373
-rw-r--r--arch/powerpc/kvm/book3s_32_sr.S143
-rw-r--r--arch/powerpc/kvm/book3s_64_mmu.c36
-rw-r--r--arch/powerpc/kvm/book3s_64_mmu_host.c207
-rw-r--r--arch/powerpc/kvm/book3s_64_slb.S183
-rw-r--r--arch/powerpc/kvm/book3s_emulate.c (renamed from arch/powerpc/kvm/book3s_64_emulate.c)245
-rw-r--r--arch/powerpc/kvm/book3s_exports.c (renamed from arch/powerpc/kvm/book3s_64_exports.c)0
-rw-r--r--arch/powerpc/kvm/book3s_interrupts.S (renamed from arch/powerpc/kvm/book3s_64_interrupts.S)204
-rw-r--r--arch/powerpc/kvm/book3s_mmu_hpte.c277
-rw-r--r--arch/powerpc/kvm/book3s_paired_singles.c1269
-rw-r--r--arch/powerpc/kvm/book3s_rmhandlers.S (renamed from arch/powerpc/kvm/book3s_64_rmhandlers.S)135
-rw-r--r--arch/powerpc/kvm/book3s_segment.S259
-rw-r--r--arch/powerpc/kvm/booke.c14
-rw-r--r--arch/powerpc/kvm/e500.c5
-rw-r--r--arch/powerpc/kvm/e500_tlb.c1
-rw-r--r--arch/powerpc/kvm/emulate.c55
-rw-r--r--arch/powerpc/kvm/fpu.S291
-rw-r--r--arch/powerpc/kvm/powerpc.c121
-rw-r--r--arch/powerpc/lib/Makefile4
-rw-r--r--arch/powerpc/lib/crtsavres.S129
-rw-r--r--arch/powerpc/lib/devres.c1
-rw-r--r--arch/powerpc/lib/feature-fixups.c17
-rw-r--r--arch/powerpc/lib/string.S18
-rw-r--r--arch/powerpc/mm/40x_mmu.c2
-rw-r--r--arch/powerpc/mm/44x_mmu.c144
-rw-r--r--arch/powerpc/mm/dma-noncoherent.c1
-rw-r--r--arch/powerpc/mm/fault.c19
-rw-r--r--arch/powerpc/mm/fsl_booke_mmu.c32
-rw-r--r--arch/powerpc/mm/hash_low_64.S9
-rw-r--r--arch/powerpc/mm/hash_utils_64.c79
-rw-r--r--arch/powerpc/mm/hugetlbpage-hash64.c40
-rw-r--r--arch/powerpc/mm/hugetlbpage.c1
-rw-r--r--arch/powerpc/mm/init_32.c17
-rw-r--r--arch/powerpc/mm/init_64.c46
-rw-r--r--arch/powerpc/mm/mem.c85
-rw-r--r--arch/powerpc/mm/mmu_context_hash32.c29
-rw-r--r--arch/powerpc/mm/mmu_context_hash64.c1
-rw-r--r--arch/powerpc/mm/mmu_context_nohash.c9
-rw-r--r--arch/powerpc/mm/mmu_decl.h17
-rw-r--r--arch/powerpc/mm/numa.c139
-rw-r--r--arch/powerpc/mm/pgtable.c1
-rw-r--r--arch/powerpc/mm/pgtable_32.c23
-rw-r--r--arch/powerpc/mm/pgtable_64.c13
-rw-r--r--arch/powerpc/mm/ppc_mmu_32.c4
-rw-r--r--arch/powerpc/mm/stab.c4
-rw-r--r--arch/powerpc/mm/subpage-prot.c1
-rw-r--r--arch/powerpc/mm/tlb_nohash.c4
-rw-r--r--arch/powerpc/mm/tlb_nohash_low.S146
-rw-r--r--arch/powerpc/oprofile/cell/spu_task_sync.c1
-rw-r--r--arch/powerpc/oprofile/cell/vma_map.c1
-rw-r--r--arch/powerpc/oprofile/op_model_cell.c2
-rw-r--r--arch/powerpc/platforms/44x/Kconfig31
-rw-r--r--arch/powerpc/platforms/44x/Makefile1
-rw-r--r--arch/powerpc/platforms/44x/iss4xx.c167
-rw-r--r--arch/powerpc/platforms/44x/ppc44x_simple.c3
-rw-r--r--arch/powerpc/platforms/44x/warp.c1
-rw-r--r--arch/powerpc/platforms/512x/mpc512x_shared.c78
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_gpio.c19
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_gpt.c24
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c16
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_pm.c11
-rw-r--r--arch/powerpc/platforms/82xx/ep8248e.c10
-rw-r--r--arch/powerpc/platforms/82xx/pq2ads-pci-pic.c1
-rw-r--r--arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c1
-rw-r--r--arch/powerpc/platforms/83xx/mpc831x_rdb.c1
-rw-r--r--arch/powerpc/platforms/83xx/mpc837x_rdb.c1
-rw-r--r--arch/powerpc/platforms/83xx/suspend.c9
-rw-r--r--arch/powerpc/platforms/85xx/Kconfig4
-rw-r--r--arch/powerpc/platforms/85xx/corenet_ds.c4
-rw-r--r--arch/powerpc/platforms/85xx/mpc8536_ds.c4
-rw-r--r--arch/powerpc/platforms/85xx/mpc85xx_ds.c4
-rw-r--r--arch/powerpc/platforms/85xx/mpc85xx_mds.c106
-rw-r--r--arch/powerpc/platforms/86xx/Kconfig4
-rw-r--r--arch/powerpc/platforms/86xx/gef_gpio.c1
-rw-r--r--arch/powerpc/platforms/86xx/mpc8610_hpcd.c3
-rw-r--r--arch/powerpc/platforms/86xx/mpc86xx_hpcn.c4
-rw-r--r--arch/powerpc/platforms/8xx/m8xx_setup.c1
-rw-r--r--arch/powerpc/platforms/Kconfig.cputype5
-rw-r--r--arch/powerpc/platforms/cell/axon_msi.c10
-rw-r--r--arch/powerpc/platforms/cell/cbe_cpufreq.c2
-rw-r--r--arch/powerpc/platforms/cell/celleb_pci.c1
-rw-r--r--arch/powerpc/platforms/cell/celleb_scc_pciex.c1
-rw-r--r--arch/powerpc/platforms/cell/iommu.c18
-rw-r--r--arch/powerpc/platforms/cell/ras.c1
-rw-r--r--arch/powerpc/platforms/cell/setup.c1
-rw-r--r--arch/powerpc/platforms/cell/spider-pci.c1
-rw-r--r--arch/powerpc/platforms/cell/spu_manage.c1
-rw-r--r--arch/powerpc/platforms/cell/spu_priv1_mmio.c1
-rw-r--r--arch/powerpc/platforms/cell/spufs/coredump.c1
-rw-r--r--arch/powerpc/platforms/cell/spufs/file.c4
-rw-r--r--arch/powerpc/platforms/cell/spufs/inode.c2
-rw-r--r--arch/powerpc/platforms/cell/spufs/lscsa_alloc.c1
-rw-r--r--arch/powerpc/platforms/cell/spufs/sched.c1
-rw-r--r--arch/powerpc/platforms/cell/spufs/syscalls.c1
-rw-r--r--arch/powerpc/platforms/chrp/nvram.c1
-rw-r--r--arch/powerpc/platforms/chrp/setup.c1
-rw-r--r--arch/powerpc/platforms/embedded6xx/wii.c16
-rw-r--r--arch/powerpc/platforms/iseries/exception.S4
-rw-r--r--arch/powerpc/platforms/iseries/iommu.c1
-rw-r--r--arch/powerpc/platforms/iseries/mf.c1
-rw-r--r--arch/powerpc/platforms/iseries/pci.c17
-rw-r--r--arch/powerpc/platforms/iseries/smp.c2
-rw-r--r--arch/powerpc/platforms/iseries/vio.c2
-rw-r--r--arch/powerpc/platforms/iseries/viopath.c1
-rw-r--r--arch/powerpc/platforms/maple/setup.c3
-rw-r--r--arch/powerpc/platforms/pasemi/cpufreq.c2
-rw-r--r--arch/powerpc/platforms/pasemi/dma_lib.c1
-rw-r--r--arch/powerpc/platforms/pasemi/gpio_mdio.c10
-rw-r--r--arch/powerpc/platforms/pasemi/iommu.c4
-rw-r--r--arch/powerpc/platforms/pasemi/setup.c5
-rw-r--r--arch/powerpc/platforms/powermac/cpufreq_32.c1
-rw-r--r--arch/powerpc/platforms/powermac/cpufreq_64.c3
-rw-r--r--arch/powerpc/platforms/powermac/low_i2c.c8
-rw-r--r--arch/powerpc/platforms/powermac/nvram.c1
-rw-r--r--arch/powerpc/platforms/powermac/pfunc_core.c1
-rw-r--r--arch/powerpc/platforms/powermac/pmac.h2
-rw-r--r--arch/powerpc/platforms/powermac/setup.c18
-rw-r--r--arch/powerpc/platforms/powermac/smp.c9
-rw-r--r--arch/powerpc/platforms/ps3/device-init.c1
-rw-r--r--arch/powerpc/platforms/ps3/htab.c4
-rw-r--r--arch/powerpc/platforms/ps3/mm.c7
-rw-r--r--arch/powerpc/platforms/ps3/os-area.c5
-rw-r--r--arch/powerpc/platforms/ps3/spu.c1
-rw-r--r--arch/powerpc/platforms/ps3/system-bus.c3
-rw-r--r--arch/powerpc/platforms/pseries/Makefile2
-rw-r--r--arch/powerpc/platforms/pseries/cmm.c1
-rw-r--r--arch/powerpc/platforms/pseries/dlpar.c9
-rw-r--r--arch/powerpc/platforms/pseries/dtl.c1
-rw-r--r--arch/powerpc/platforms/pseries/eeh.c2
-rw-r--r--arch/powerpc/platforms/pseries/eeh_cache.c1
-rw-r--r--arch/powerpc/platforms/pseries/eeh_event.c1
-rw-r--r--arch/powerpc/platforms/pseries/event_sources.c79
-rw-r--r--arch/powerpc/platforms/pseries/hotplug-cpu.c67
-rw-r--r--arch/powerpc/platforms/pseries/hotplug-memory.c31
-rw-r--r--arch/powerpc/platforms/pseries/hvCall.S38
-rw-r--r--arch/powerpc/platforms/pseries/hvCall_inst.c10
-rw-r--r--arch/powerpc/platforms/pseries/iommu.c4
-rw-r--r--arch/powerpc/platforms/pseries/lpar.c33
-rw-r--r--arch/powerpc/platforms/pseries/nvram.c1
-rw-r--r--arch/powerpc/platforms/pseries/phyp_dump.c5
-rw-r--r--arch/powerpc/platforms/pseries/plpar_wrappers.h26
-rw-r--r--arch/powerpc/platforms/pseries/pseries.h7
-rw-r--r--arch/powerpc/platforms/pseries/ras.c63
-rw-r--r--arch/powerpc/platforms/pseries/reconfig.c1
-rw-r--r--arch/powerpc/platforms/pseries/scanlog.c1
-rw-r--r--arch/powerpc/platforms/pseries/setup.c11
-rw-r--r--arch/powerpc/platforms/pseries/smp.c42
-rw-r--r--arch/powerpc/platforms/pseries/xics.c38
-rw-r--r--arch/powerpc/sysdev/axonram.c14
-rw-r--r--arch/powerpc/sysdev/bestcomm/bestcomm.c18
-rw-r--r--arch/powerpc/sysdev/cpm1.c15
-rw-r--r--arch/powerpc/sysdev/cpm2.c11
-rw-r--r--arch/powerpc/sysdev/cpm_common.c1
-rw-r--r--arch/powerpc/sysdev/dart_iommu.c10
-rw-r--r--arch/powerpc/sysdev/fsl_gtm.c1
-rw-r--r--arch/powerpc/sysdev/fsl_msi.c139
-rw-r--r--arch/powerpc/sysdev/fsl_msi.h3
-rw-r--r--arch/powerpc/sysdev/fsl_pci.c5
-rw-r--r--arch/powerpc/sysdev/fsl_pmc.c9
-rw-r--r--arch/powerpc/sysdev/fsl_rio.c414
-rw-r--r--arch/powerpc/sysdev/micropatch.c30
-rw-r--r--arch/powerpc/sysdev/mpc8xxx_gpio.c148
-rw-r--r--arch/powerpc/sysdev/mpic.c75
-rw-r--r--arch/powerpc/sysdev/msi_bitmap.c1
-rw-r--r--arch/powerpc/sysdev/mv64x60_pci.c4
-rw-r--r--arch/powerpc/sysdev/of_rtc.c1
-rw-r--r--arch/powerpc/sysdev/pmi.c10
-rw-r--r--arch/powerpc/sysdev/ppc4xx_gpio.c1
-rw-r--r--arch/powerpc/sysdev/ppc4xx_pci.c120
-rw-r--r--arch/powerpc/sysdev/ppc4xx_pci.h58
-rw-r--r--arch/powerpc/sysdev/ppc4xx_soc.c24
-rw-r--r--arch/powerpc/sysdev/qe_lib/gpio.c1
-rw-r--r--arch/powerpc/sysdev/qe_lib/qe.c7
-rw-r--r--arch/powerpc/sysdev/qe_lib/ucc.c1
-rw-r--r--arch/powerpc/sysdev/simple_gpio.c1
-rw-r--r--arch/powerpc/sysdev/tsi108_pci.c1
419 files changed, 15366 insertions, 4068 deletions
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 8a54eb8e3768..2031a2846865 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -132,7 +132,7 @@ config PPC
132 select HAVE_ARCH_KGDB 132 select HAVE_ARCH_KGDB
133 select HAVE_KRETPROBES 133 select HAVE_KRETPROBES
134 select HAVE_ARCH_TRACEHOOK 134 select HAVE_ARCH_TRACEHOOK
135 select HAVE_LMB 135 select HAVE_MEMBLOCK
136 select HAVE_DMA_ATTRS 136 select HAVE_DMA_ATTRS
137 select HAVE_DMA_API_DEBUG 137 select HAVE_DMA_API_DEBUG
138 select USE_GENERIC_SMP_HELPERS if SMP 138 select USE_GENERIC_SMP_HELPERS if SMP
@@ -140,6 +140,7 @@ config PPC
140 select HAVE_SYSCALL_WRAPPERS if PPC64 140 select HAVE_SYSCALL_WRAPPERS if PPC64
141 select GENERIC_ATOMIC64 if PPC32 141 select GENERIC_ATOMIC64 if PPC32
142 select HAVE_PERF_EVENTS 142 select HAVE_PERF_EVENTS
143 select HAVE_REGS_AND_STACK_ACCESS_API
143 144
144config EARLY_PRINTK 145config EARLY_PRINTK
145 bool 146 bool
@@ -313,19 +314,6 @@ config 8XX_MINIMAL_FPEMU
313 314
314 It is recommended that you build a soft-float userspace instead. 315 It is recommended that you build a soft-float userspace instead.
315 316
316config IOMMU_VMERGE
317 bool "Enable IOMMU virtual merging"
318 depends on PPC64
319 default y
320 help
321 Cause IO segments sent to a device for DMA to be merged virtually
322 by the IOMMU when they happen to have been allocated contiguously.
323 This doesn't add pressure to the IOMMU allocator. However, some
324 drivers don't support getting large merged segments coming back
325 from *_map_sg().
326
327 Most drivers don't have this problem; it is safe to say Y here.
328
329config IOMMU_HELPER 317config IOMMU_HELPER
330 def_bool PPC64 318 def_bool PPC64
331 319
@@ -363,7 +351,7 @@ config ARCH_ENABLE_MEMORY_HOTREMOVE
363 351
364config KEXEC 352config KEXEC
365 bool "kexec system call (EXPERIMENTAL)" 353 bool "kexec system call (EXPERIMENTAL)"
366 depends on PPC_BOOK3S && EXPERIMENTAL 354 depends on (PPC_BOOK3S || (FSL_BOOKE && !SMP)) && EXPERIMENTAL
367 help 355 help
368 kexec is a system call that implements the ability to shutdown your 356 kexec is a system call that implements the ability to shutdown your
369 current kernel, and to start another kernel. It is like a reboot 357 current kernel, and to start another kernel. It is like a reboot
@@ -412,7 +400,7 @@ config IRQ_ALL_CPUS
412 400
413config SPARSE_IRQ 401config SPARSE_IRQ
414 bool "Support sparse irq numbering" 402 bool "Support sparse irq numbering"
415 default y 403 default n
416 help 404 help
417 This enables support for sparse irqs. This is useful for distro 405 This enables support for sparse irqs. This is useful for distro
418 kernels that want to define a high CONFIG_NR_CPUS value but still 406 kernels that want to define a high CONFIG_NR_CPUS value but still
@@ -421,7 +409,7 @@ config SPARSE_IRQ
421 ( Sparse IRQs can also be beneficial on NUMA boxes, as they spread 409 ( Sparse IRQs can also be beneficial on NUMA boxes, as they spread
422 out the irq_desc[] array in a more NUMA-friendly way. ) 410 out the irq_desc[] array in a more NUMA-friendly way. )
423 411
424 If you don't know what to do here, say Y. 412 If you don't know what to do here, say N.
425 413
426config NUMA 414config NUMA
427 bool "NUMA support" 415 bool "NUMA support"
@@ -675,6 +663,9 @@ config ZONE_DMA
675config NEED_DMA_MAP_STATE 663config NEED_DMA_MAP_STATE
676 def_bool (PPC64 || NOT_COHERENT_CACHE) 664 def_bool (PPC64 || NOT_COHERENT_CACHE)
677 665
666config NEED_SG_DMA_LENGTH
667 def_bool y
668
678config GENERIC_ISA_DMA 669config GENERIC_ISA_DMA
679 bool 670 bool
680 depends on PPC64 || POWER4 || 6xx && !CPM2 671 depends on PPC64 || POWER4 || 6xx && !CPM2
diff --git a/arch/powerpc/Kconfig.debug b/arch/powerpc/Kconfig.debug
index 5cdd7ed9a12e..2d38a50e66ba 100644
--- a/arch/powerpc/Kconfig.debug
+++ b/arch/powerpc/Kconfig.debug
@@ -44,6 +44,18 @@ config DEBUG_STACK_USAGE
44 44
45 This option will slow down process creation somewhat. 45 This option will slow down process creation somewhat.
46 46
47config DEBUG_PER_CPU_MAPS
48 bool "Debug access to per_cpu maps"
49 depends on DEBUG_KERNEL
50 depends on SMP
51 default n
52 ---help---
53 Say Y to verify that the per_cpu map being accessed has
54 been setup. Adds a fair amount of code to kernel memory
55 and decreases performance.
56
57 Say N if unsure.
58
47config HCALL_STATS 59config HCALL_STATS
48 bool "Hypervisor call instrumentation" 60 bool "Hypervisor call instrumentation"
49 depends on PPC_PSERIES && DEBUG_FS && TRACEPOINTS 61 depends on PPC_PSERIES && DEBUG_FS && TRACEPOINTS
@@ -123,13 +135,6 @@ config DEBUGGER
123 depends on KGDB || XMON 135 depends on KGDB || XMON
124 default y 136 default y
125 137
126config IRQSTACKS
127 bool "Use separate kernel stacks when processing interrupts"
128 help
129 If you say Y here the kernel will use separate kernel stacks
130 for handling hard and soft interrupts. This can help avoid
131 overflowing the process kernel stacks.
132
133config VIRQ_DEBUG 138config VIRQ_DEBUG
134 bool "Expose hardware/virtual IRQ mapping via debugfs" 139 bool "Expose hardware/virtual IRQ mapping via debugfs"
135 depends on DEBUG_FS 140 depends on DEBUG_FS
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 1a54a3b3a3fa..77cfe7a29e25 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -92,10 +92,10 @@ endif
92else 92else
93 KBUILD_CFLAGS += $(call cc-option,-mtune=power4) 93 KBUILD_CFLAGS += $(call cc-option,-mtune=power4)
94endif 94endif
95else
96LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
97endif 95endif
98 96
97LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
98
99ifeq ($(CONFIG_TUNE_CELL),y) 99ifeq ($(CONFIG_TUNE_CELL),y)
100 KBUILD_CFLAGS += $(call cc-option,-mtune=cell) 100 KBUILD_CFLAGS += $(call cc-option,-mtune=cell)
101endif 101endif
@@ -112,6 +112,11 @@ KBUILD_CFLAGS += $(call cc-option,-mspe=no)
112# kernel considerably. 112# kernel considerably.
113KBUILD_CFLAGS += $(call cc-option,-funit-at-a-time) 113KBUILD_CFLAGS += $(call cc-option,-funit-at-a-time)
114 114
115# FIXME: the module load should be taught about the additional relocs
116# generated by this.
117# revert to pre-gcc-4.4 behaviour of .eh_frame
118KBUILD_CFLAGS += $(call cc-option,-fno-dwarf2-cfi-asm)
119
115# Never use string load/store instructions as they are 120# Never use string load/store instructions as they are
116# often slow when they are implemented at all 121# often slow when they are implemented at all
117KBUILD_CFLAGS += -mno-string 122KBUILD_CFLAGS += -mno-string
diff --git a/arch/powerpc/boot/4xx.c b/arch/powerpc/boot/4xx.c
index 27db8938827a..9d3bd4c45a24 100644
--- a/arch/powerpc/boot/4xx.c
+++ b/arch/powerpc/boot/4xx.c
@@ -519,7 +519,7 @@ void ibm440ep_fixup_clocks(unsigned int sys_clk,
519{ 519{
520 unsigned int plb_clk = __ibm440eplike_fixup_clocks(sys_clk, tmr_clk, 0); 520 unsigned int plb_clk = __ibm440eplike_fixup_clocks(sys_clk, tmr_clk, 0);
521 521
522 /* serial clocks beed fixup based on int/ext */ 522 /* serial clocks need fixup based on int/ext */
523 eplike_fixup_uart_clk(0, "/plb/opb/serial@ef600300", ser_clk, plb_clk); 523 eplike_fixup_uart_clk(0, "/plb/opb/serial@ef600300", ser_clk, plb_clk);
524 eplike_fixup_uart_clk(1, "/plb/opb/serial@ef600400", ser_clk, plb_clk); 524 eplike_fixup_uart_clk(1, "/plb/opb/serial@ef600400", ser_clk, plb_clk);
525 eplike_fixup_uart_clk(2, "/plb/opb/serial@ef600500", ser_clk, plb_clk); 525 eplike_fixup_uart_clk(2, "/plb/opb/serial@ef600500", ser_clk, plb_clk);
@@ -532,7 +532,7 @@ void ibm440gx_fixup_clocks(unsigned int sys_clk,
532{ 532{
533 unsigned int plb_clk = __ibm440eplike_fixup_clocks(sys_clk, tmr_clk, 1); 533 unsigned int plb_clk = __ibm440eplike_fixup_clocks(sys_clk, tmr_clk, 1);
534 534
535 /* serial clocks beed fixup based on int/ext */ 535 /* serial clocks need fixup based on int/ext */
536 eplike_fixup_uart_clk(0, "/plb/opb/serial@40000200", ser_clk, plb_clk); 536 eplike_fixup_uart_clk(0, "/plb/opb/serial@40000200", ser_clk, plb_clk);
537 eplike_fixup_uart_clk(1, "/plb/opb/serial@40000300", ser_clk, plb_clk); 537 eplike_fixup_uart_clk(1, "/plb/opb/serial@40000300", ser_clk, plb_clk);
538} 538}
@@ -543,10 +543,10 @@ void ibm440spe_fixup_clocks(unsigned int sys_clk,
543{ 543{
544 unsigned int plb_clk = __ibm440eplike_fixup_clocks(sys_clk, tmr_clk, 1); 544 unsigned int plb_clk = __ibm440eplike_fixup_clocks(sys_clk, tmr_clk, 1);
545 545
546 /* serial clocks beed fixup based on int/ext */ 546 /* serial clocks need fixup based on int/ext */
547 eplike_fixup_uart_clk(0, "/plb/opb/serial@10000200", ser_clk, plb_clk); 547 eplike_fixup_uart_clk(0, "/plb/opb/serial@f0000200", ser_clk, plb_clk);
548 eplike_fixup_uart_clk(1, "/plb/opb/serial@10000300", ser_clk, plb_clk); 548 eplike_fixup_uart_clk(1, "/plb/opb/serial@f0000300", ser_clk, plb_clk);
549 eplike_fixup_uart_clk(2, "/plb/opb/serial@10000600", ser_clk, plb_clk); 549 eplike_fixup_uart_clk(2, "/plb/opb/serial@f0000600", ser_clk, plb_clk);
550} 550}
551 551
552void ibm405gp_fixup_clocks(unsigned int sys_clk, unsigned int ser_clk) 552void ibm405gp_fixup_clocks(unsigned int sys_clk, unsigned int ser_clk)
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index bb2465bcb327..fae8192c8fcc 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -44,6 +44,7 @@ $(obj)/cuboot-taishan.o: BOOTCFLAGS += -mcpu=405
44$(obj)/cuboot-katmai.o: BOOTCFLAGS += -mcpu=405 44$(obj)/cuboot-katmai.o: BOOTCFLAGS += -mcpu=405
45$(obj)/cuboot-acadia.o: BOOTCFLAGS += -mcpu=405 45$(obj)/cuboot-acadia.o: BOOTCFLAGS += -mcpu=405
46$(obj)/treeboot-walnut.o: BOOTCFLAGS += -mcpu=405 46$(obj)/treeboot-walnut.o: BOOTCFLAGS += -mcpu=405
47$(obj)/treeboot-iss4xx.o: BOOTCFLAGS += -mcpu=405
47$(obj)/virtex405-head.o: BOOTAFLAGS += -mcpu=405 48$(obj)/virtex405-head.o: BOOTAFLAGS += -mcpu=405
48 49
49 50
@@ -77,7 +78,7 @@ src-plat := of.c cuboot-52xx.c cuboot-824x.c cuboot-83xx.c cuboot-85xx.c holly.c
77 cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c simpleboot.c \ 78 cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c simpleboot.c \
78 virtex405-head.S virtex.c redboot-83xx.c cuboot-sam440ep.c \ 79 virtex405-head.S virtex.c redboot-83xx.c cuboot-sam440ep.c \
79 cuboot-acadia.c cuboot-amigaone.c cuboot-kilauea.c \ 80 cuboot-acadia.c cuboot-amigaone.c cuboot-kilauea.c \
80 gamecube-head.S gamecube.c wii-head.S wii.c 81 gamecube-head.S gamecube.c wii-head.S wii.c treeboot-iss4xx.c
81src-boot := $(src-wlib) $(src-plat) empty.c 82src-boot := $(src-wlib) $(src-plat) empty.c
82 83
83src-boot := $(addprefix $(obj)/, $(src-boot)) 84src-boot := $(addprefix $(obj)/, $(src-boot))
@@ -140,7 +141,7 @@ $(patsubst %.S,%.o, $(filter %.S, $(src-boot))): %.o: %.S FORCE
140$(obj)/wrapper.a: $(obj-wlib) FORCE 141$(obj)/wrapper.a: $(obj-wlib) FORCE
141 $(call if_changed,bootar) 142 $(call if_changed,bootar)
142 143
143hostprogs-y := addnote addRamDisk hack-coff mktree 144hostprogs-y := addnote hack-coff mktree
144 145
145targets += $(patsubst $(obj)/%,%,$(obj-boot) wrapper.a) 146targets += $(patsubst $(obj)/%,%,$(obj-boot) wrapper.a)
146extra-y := $(obj)/wrapper.a $(obj-plat) $(obj)/empty.o \ 147extra-y := $(obj)/wrapper.a $(obj-plat) $(obj)/empty.o \
@@ -169,7 +170,7 @@ quiet_cmd_wrap = WRAP $@
169 $(if $3, -s $3)$(if $4, -d $4)$(if $5, -i $5) vmlinux 170 $(if $3, -s $3)$(if $4, -d $4)$(if $5, -i $5) vmlinux
170 171
171image-$(CONFIG_PPC_PSERIES) += zImage.pseries 172image-$(CONFIG_PPC_PSERIES) += zImage.pseries
172image-$(CONFIG_PPC_MAPLE) += zImage.pseries 173image-$(CONFIG_PPC_MAPLE) += zImage.maple
173image-$(CONFIG_PPC_IBM_CELL_BLADE) += zImage.pseries 174image-$(CONFIG_PPC_IBM_CELL_BLADE) += zImage.pseries
174image-$(CONFIG_PPC_PS3) += dtbImage.ps3 175image-$(CONFIG_PPC_PS3) += dtbImage.ps3
175image-$(CONFIG_PPC_CELLEB) += zImage.pseries 176image-$(CONFIG_PPC_CELLEB) += zImage.pseries
@@ -206,6 +207,8 @@ image-$(CONFIG_TAISHAN) += cuImage.taishan
206image-$(CONFIG_KATMAI) += cuImage.katmai 207image-$(CONFIG_KATMAI) += cuImage.katmai
207image-$(CONFIG_WARP) += cuImage.warp 208image-$(CONFIG_WARP) += cuImage.warp
208image-$(CONFIG_YOSEMITE) += cuImage.yosemite 209image-$(CONFIG_YOSEMITE) += cuImage.yosemite
210image-$(CONFIG_ISS4xx) += treeImage.iss4xx \
211 treeImage.iss4xx-mpic
209 212
210# Board ports in arch/powerpc/platform/8xx/Kconfig 213# Board ports in arch/powerpc/platform/8xx/Kconfig
211image-$(CONFIG_MPC86XADS) += cuImage.mpc866ads 214image-$(CONFIG_MPC86XADS) += cuImage.mpc866ads
@@ -351,7 +354,7 @@ install: $(CONFIGURE) $(addprefix $(obj)/, $(image-y))
351clean-files += $(image-) $(initrd-) cuImage.* dtbImage.* treeImage.* \ 354clean-files += $(image-) $(initrd-) cuImage.* dtbImage.* treeImage.* \
352 zImage zImage.initrd zImage.chrp zImage.coff zImage.holly \ 355 zImage zImage.initrd zImage.chrp zImage.coff zImage.holly \
353 zImage.iseries zImage.miboot zImage.pmac zImage.pseries \ 356 zImage.iseries zImage.miboot zImage.pmac zImage.pseries \
354 simpleImage.* otheros.bld *.dtb 357 zImage.maple simpleImage.* otheros.bld *.dtb
355 358
356# clean up files cached by wrapper 359# clean up files cached by wrapper
357clean-kernel := vmlinux.strip vmlinux.bin 360clean-kernel := vmlinux.strip vmlinux.bin
diff --git a/arch/powerpc/boot/addRamDisk.c b/arch/powerpc/boot/addRamDisk.c
deleted file mode 100644
index 893f446cbd22..000000000000
--- a/arch/powerpc/boot/addRamDisk.c
+++ /dev/null
@@ -1,311 +0,0 @@
1#include <stdio.h>
2#include <stdlib.h>
3#include <netinet/in.h>
4#include <unistd.h>
5#include <sys/types.h>
6#include <sys/stat.h>
7#include <string.h>
8#include <elf.h>
9
10#define ElfHeaderSize (64 * 1024)
11#define ElfPages (ElfHeaderSize / 4096)
12#define KERNELBASE (0xc000000000000000)
13#define _ALIGN_UP(addr,size) (((addr)+((size)-1))&(~((size)-1)))
14
15struct addr_range {
16 unsigned long long addr;
17 unsigned long memsize;
18 unsigned long offset;
19};
20
21static int check_elf64(void *p, int size, struct addr_range *r)
22{
23 Elf64_Ehdr *elf64 = p;
24 Elf64_Phdr *elf64ph;
25
26 if (elf64->e_ident[EI_MAG0] != ELFMAG0 ||
27 elf64->e_ident[EI_MAG1] != ELFMAG1 ||
28 elf64->e_ident[EI_MAG2] != ELFMAG2 ||
29 elf64->e_ident[EI_MAG3] != ELFMAG3 ||
30 elf64->e_ident[EI_CLASS] != ELFCLASS64 ||
31 elf64->e_ident[EI_DATA] != ELFDATA2MSB ||
32 elf64->e_type != ET_EXEC || elf64->e_machine != EM_PPC64)
33 return 0;
34
35 if ((elf64->e_phoff + sizeof(Elf64_Phdr)) > size)
36 return 0;
37
38 elf64ph = (Elf64_Phdr *) ((unsigned long)elf64 +
39 (unsigned long)elf64->e_phoff);
40
41 r->memsize = (unsigned long)elf64ph->p_memsz;
42 r->offset = (unsigned long)elf64ph->p_offset;
43 r->addr = (unsigned long long)elf64ph->p_vaddr;
44
45#ifdef DEBUG
46 printf("PPC64 ELF file, ph:\n");
47 printf("p_type 0x%08x\n", elf64ph->p_type);
48 printf("p_flags 0x%08x\n", elf64ph->p_flags);
49 printf("p_offset 0x%016llx\n", elf64ph->p_offset);
50 printf("p_vaddr 0x%016llx\n", elf64ph->p_vaddr);
51 printf("p_paddr 0x%016llx\n", elf64ph->p_paddr);
52 printf("p_filesz 0x%016llx\n", elf64ph->p_filesz);
53 printf("p_memsz 0x%016llx\n", elf64ph->p_memsz);
54 printf("p_align 0x%016llx\n", elf64ph->p_align);
55 printf("... skipping 0x%08lx bytes of ELF header\n",
56 (unsigned long)elf64ph->p_offset);
57#endif
58
59 return 64;
60}
61static void get4k(FILE *file, char *buf )
62{
63 unsigned j;
64 unsigned num = fread(buf, 1, 4096, file);
65 for ( j=num; j<4096; ++j )
66 buf[j] = 0;
67}
68
69static void put4k(FILE *file, char *buf )
70{
71 fwrite(buf, 1, 4096, file);
72}
73
74static void death(const char *msg, FILE *fdesc, const char *fname)
75{
76 fprintf(stderr, msg);
77 fclose(fdesc);
78 unlink(fname);
79 exit(1);
80}
81
82int main(int argc, char **argv)
83{
84 char inbuf[4096];
85 struct addr_range vmlinux;
86 FILE *ramDisk;
87 FILE *inputVmlinux;
88 FILE *outputVmlinux;
89
90 char *rd_name, *lx_name, *out_name;
91
92 size_t i;
93 unsigned long ramFileLen;
94 unsigned long ramLen;
95 unsigned long roundR;
96 unsigned long offset_end;
97
98 unsigned long kernelLen;
99 unsigned long actualKernelLen;
100 unsigned long round;
101 unsigned long roundedKernelLen;
102 unsigned long ramStartOffs;
103 unsigned long ramPages;
104 unsigned long roundedKernelPages;
105 unsigned long hvReleaseData;
106 u_int32_t eyeCatcher = 0xc8a5d9c4;
107 unsigned long naca;
108 unsigned long xRamDisk;
109 unsigned long xRamDiskSize;
110 long padPages;
111
112
113 if (argc < 2) {
114 fprintf(stderr, "Name of RAM disk file missing.\n");
115 exit(1);
116 }
117 rd_name = argv[1];
118
119 if (argc < 3) {
120 fprintf(stderr, "Name of vmlinux file missing.\n");
121 exit(1);
122 }
123 lx_name = argv[2];
124
125 if (argc < 4) {
126 fprintf(stderr, "Name of vmlinux output file missing.\n");
127 exit(1);
128 }
129 out_name = argv[3];
130
131
132 ramDisk = fopen(rd_name, "r");
133 if ( ! ramDisk ) {
134 fprintf(stderr, "RAM disk file \"%s\" failed to open.\n", rd_name);
135 exit(1);
136 }
137
138 inputVmlinux = fopen(lx_name, "r");
139 if ( ! inputVmlinux ) {
140 fprintf(stderr, "vmlinux file \"%s\" failed to open.\n", lx_name);
141 exit(1);
142 }
143
144 outputVmlinux = fopen(out_name, "w+");
145 if ( ! outputVmlinux ) {
146 fprintf(stderr, "output vmlinux file \"%s\" failed to open.\n", out_name);
147 exit(1);
148 }
149
150 i = fread(inbuf, 1, sizeof(inbuf), inputVmlinux);
151 if (i != sizeof(inbuf)) {
152 fprintf(stderr, "can not read vmlinux file %s: %u\n", lx_name, i);
153 exit(1);
154 }
155
156 i = check_elf64(inbuf, sizeof(inbuf), &vmlinux);
157 if (i == 0) {
158 fprintf(stderr, "You must have a linux kernel specified as argv[2]\n");
159 exit(1);
160 }
161
162 /* Input Vmlinux file */
163 fseek(inputVmlinux, 0, SEEK_END);
164 kernelLen = ftell(inputVmlinux);
165 fseek(inputVmlinux, 0, SEEK_SET);
166 printf("kernel file size = %lu\n", kernelLen);
167
168 actualKernelLen = kernelLen - ElfHeaderSize;
169
170 printf("actual kernel length (minus ELF header) = %lu\n", actualKernelLen);
171
172 round = actualKernelLen % 4096;
173 roundedKernelLen = actualKernelLen;
174 if ( round )
175 roundedKernelLen += (4096 - round);
176 printf("Vmlinux length rounded up to a 4k multiple = %ld/0x%lx \n", roundedKernelLen, roundedKernelLen);
177 roundedKernelPages = roundedKernelLen / 4096;
178 printf("Vmlinux pages to copy = %ld/0x%lx \n", roundedKernelPages, roundedKernelPages);
179
180 offset_end = _ALIGN_UP(vmlinux.memsize, 4096);
181 /* calc how many pages we need to insert between the vmlinux and the start of the ram disk */
182 padPages = offset_end/4096 - roundedKernelPages;
183
184 /* Check and see if the vmlinux is already larger than _end in System.map */
185 if (padPages < 0) {
186 /* vmlinux is larger than _end - adjust the offset to the start of the embedded ram disk */
187 offset_end = roundedKernelLen;
188 printf("vmlinux is larger than _end indicates it needs to be - offset_end = %lx \n", offset_end);
189 padPages = 0;
190 printf("will insert %lx pages between the vmlinux and the start of the ram disk \n", padPages);
191 }
192 else {
193 /* _end is larger than vmlinux - use the offset to _end that we calculated from the system map */
194 printf("vmlinux is smaller than _end indicates is needed - offset_end = %lx \n", offset_end);
195 printf("will insert %lx pages between the vmlinux and the start of the ram disk \n", padPages);
196 }
197
198
199
200 /* Input Ram Disk file */
201 // Set the offset that the ram disk will be started at.
202 ramStartOffs = offset_end; /* determined from the input vmlinux file and the system map */
203 printf("Ram Disk will start at offset = 0x%lx \n", ramStartOffs);
204
205 fseek(ramDisk, 0, SEEK_END);
206 ramFileLen = ftell(ramDisk);
207 fseek(ramDisk, 0, SEEK_SET);
208 printf("%s file size = %ld/0x%lx \n", rd_name, ramFileLen, ramFileLen);
209
210 ramLen = ramFileLen;
211
212 roundR = 4096 - (ramLen % 4096);
213 if ( roundR ) {
214 printf("Rounding RAM disk file up to a multiple of 4096, adding %ld/0x%lx \n", roundR, roundR);
215 ramLen += roundR;
216 }
217
218 printf("Rounded RAM disk size is %ld/0x%lx \n", ramLen, ramLen);
219 ramPages = ramLen / 4096;
220 printf("RAM disk pages to copy = %ld/0x%lx\n", ramPages, ramPages);
221
222
223
224 // Copy 64K ELF header
225 for (i=0; i<(ElfPages); ++i) {
226 get4k( inputVmlinux, inbuf );
227 put4k( outputVmlinux, inbuf );
228 }
229
230 /* Copy the vmlinux (as full pages). */
231 fseek(inputVmlinux, ElfHeaderSize, SEEK_SET);
232 for ( i=0; i<roundedKernelPages; ++i ) {
233 get4k( inputVmlinux, inbuf );
234 put4k( outputVmlinux, inbuf );
235 }
236
237 /* Insert pad pages (if appropriate) that are needed between */
238 /* | the end of the vmlinux and the ram disk. */
239 for (i=0; i<padPages; ++i) {
240 memset(inbuf, 0, 4096);
241 put4k(outputVmlinux, inbuf);
242 }
243
244 /* Copy the ram disk (as full pages). */
245 for ( i=0; i<ramPages; ++i ) {
246 get4k( ramDisk, inbuf );
247 put4k( outputVmlinux, inbuf );
248 }
249
250 /* Close the input files */
251 fclose(ramDisk);
252 fclose(inputVmlinux);
253 /* And flush the written output file */
254 fflush(outputVmlinux);
255
256
257
258 /* Fixup the new vmlinux to contain the ram disk starting offset (xRamDisk) and the ram disk size (xRamDiskSize) */
259 /* fseek to the hvReleaseData pointer */
260 fseek(outputVmlinux, ElfHeaderSize + 0x24, SEEK_SET);
261 if (fread(&hvReleaseData, 4, 1, outputVmlinux) != 1) {
262 death("Could not read hvReleaseData pointer\n", outputVmlinux, out_name);
263 }
264 hvReleaseData = ntohl(hvReleaseData); /* Convert to native int */
265 printf("hvReleaseData is at %08lx\n", hvReleaseData);
266
267 /* fseek to the hvReleaseData */
268 fseek(outputVmlinux, ElfHeaderSize + hvReleaseData, SEEK_SET);
269 if (fread(inbuf, 0x40, 1, outputVmlinux) != 1) {
270 death("Could not read hvReleaseData\n", outputVmlinux, out_name);
271 }
272 /* Check hvReleaseData sanity */
273 if (memcmp(inbuf, &eyeCatcher, 4) != 0) {
274 death("hvReleaseData is invalid\n", outputVmlinux, out_name);
275 }
276 /* Get the naca pointer */
277 naca = ntohl(*((u_int32_t*) &inbuf[0x0C])) - KERNELBASE;
278 printf("Naca is at offset 0x%lx \n", naca);
279
280 /* fseek to the naca */
281 fseek(outputVmlinux, ElfHeaderSize + naca, SEEK_SET);
282 if (fread(inbuf, 0x18, 1, outputVmlinux) != 1) {
283 death("Could not read naca\n", outputVmlinux, out_name);
284 }
285 xRamDisk = ntohl(*((u_int32_t *) &inbuf[0x0c]));
286 xRamDiskSize = ntohl(*((u_int32_t *) &inbuf[0x14]));
287 /* Make sure a RAM disk isn't already present */
288 if ((xRamDisk != 0) || (xRamDiskSize != 0)) {
289 death("RAM disk is already attached to this kernel\n", outputVmlinux, out_name);
290 }
291 /* Fill in the values */
292 *((u_int32_t *) &inbuf[0x0c]) = htonl(ramStartOffs);
293 *((u_int32_t *) &inbuf[0x14]) = htonl(ramPages);
294
295 /* Write out the new naca */
296 fflush(outputVmlinux);
297 fseek(outputVmlinux, ElfHeaderSize + naca, SEEK_SET);
298 if (fwrite(inbuf, 0x18, 1, outputVmlinux) != 1) {
299 death("Could not write naca\n", outputVmlinux, out_name);
300 }
301 printf("Ram Disk of 0x%lx pages is attached to the kernel at offset 0x%08lx\n",
302 ramPages, ramStartOffs);
303
304 /* Done */
305 fclose(outputVmlinux);
306 /* Set permission to executable */
307 chmod(out_name, S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH);
308
309 return 0;
310}
311
diff --git a/arch/powerpc/boot/dts/icon.dts b/arch/powerpc/boot/dts/icon.dts
new file mode 100644
index 000000000000..abcd0caeccae
--- /dev/null
+++ b/arch/powerpc/boot/dts/icon.dts
@@ -0,0 +1,447 @@
1/*
2 * Device Tree Source for Mosaix Technologies, Inc. ICON board
3 *
4 * Copyright 2010 DENX Software Engineering, Stefan Roese <sr@denx.de>
5 *
6 * This file is licensed under the terms of the GNU General Public
7 * License version 2. This program is licensed "as is" without
8 * any warranty of any kind, whether express or implied.
9 */
10
11/dts-v1/;
12
13/ {
14 #address-cells = <2>;
15 #size-cells = <2>;
16 model = "mosaixtech,icon";
17 compatible = "mosaixtech,icon";
18 dcr-parent = <&{/cpus/cpu@0}>;
19
20 aliases {
21 ethernet0 = &EMAC0;
22 serial0 = &UART0;
23 serial1 = &UART1;
24 serial2 = &UART2;
25 };
26
27 cpus {
28 #address-cells = <1>;
29 #size-cells = <0>;
30
31 cpu@0 {
32 device_type = "cpu";
33 model = "PowerPC,440SPe";
34 reg = <0x00000000>;
35 clock-frequency = <0>; /* Filled in by U-Boot */
36 timebase-frequency = <0>; /* Filled in by U-Boot */
37 i-cache-line-size = <32>;
38 d-cache-line-size = <32>;
39 i-cache-size = <32768>;
40 d-cache-size = <32768>;
41 dcr-controller;
42 dcr-access-method = "native";
43 reset-type = <2>; /* Use chip-reset */
44 };
45 };
46
47 memory {
48 device_type = "memory";
49 reg = <0x0 0x00000000 0x0 0x00000000>; /* Filled in by U-Boot */
50 };
51
52 UIC0: interrupt-controller0 {
53 compatible = "ibm,uic-440spe","ibm,uic";
54 interrupt-controller;
55 cell-index = <0>;
56 dcr-reg = <0x0c0 0x009>;
57 #address-cells = <0>;
58 #size-cells = <0>;
59 #interrupt-cells = <2>;
60 };
61
62 UIC1: interrupt-controller1 {
63 compatible = "ibm,uic-440spe","ibm,uic";
64 interrupt-controller;
65 cell-index = <1>;
66 dcr-reg = <0x0d0 0x009>;
67 #address-cells = <0>;
68 #size-cells = <0>;
69 #interrupt-cells = <2>;
70 interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
71 interrupt-parent = <&UIC0>;
72 };
73
74 UIC2: interrupt-controller2 {
75 compatible = "ibm,uic-440spe","ibm,uic";
76 interrupt-controller;
77 cell-index = <2>;
78 dcr-reg = <0x0e0 0x009>;
79 #address-cells = <0>;
80 #size-cells = <0>;
81 #interrupt-cells = <2>;
82 interrupts = <0xa 0x4 0xb 0x4>; /* cascade */
83 interrupt-parent = <&UIC0>;
84 };
85
86 UIC3: interrupt-controller3 {
87 compatible = "ibm,uic-440spe","ibm,uic";
88 interrupt-controller;
89 cell-index = <3>;
90 dcr-reg = <0x0f0 0x009>;
91 #address-cells = <0>;
92 #size-cells = <0>;
93 #interrupt-cells = <2>;
94 interrupts = <0x10 0x4 0x11 0x4>; /* cascade */
95 interrupt-parent = <&UIC0>;
96 };
97
98 SDR0: sdr {
99 compatible = "ibm,sdr-440spe";
100 dcr-reg = <0x00e 0x002>;
101 };
102
103 CPR0: cpr {
104 compatible = "ibm,cpr-440spe";
105 dcr-reg = <0x00c 0x002>;
106 };
107
108 MQ0: mq {
109 compatible = "ibm,mq-440spe";
110 dcr-reg = <0x040 0x020>;
111 };
112
113 plb {
114 compatible = "ibm,plb-440spe", "ibm,plb-440gp", "ibm,plb4";
115 #address-cells = <2>;
116 #size-cells = <1>;
117 /* addr-child addr-parent size */
118 ranges = <0x4 0x00100000 0x4 0x00100000 0x00001000
119 0x4 0x00200000 0x4 0x00200000 0x00000400
120 0x4 0xe0000000 0x4 0xe0000000 0x20000000
121 0xc 0x00000000 0xc 0x00000000 0x20000000
122 0xd 0x00000000 0xd 0x00000000 0x80000000
123 0xd 0x80000000 0xd 0x80000000 0x80000000
124 0xe 0x00000000 0xe 0x00000000 0x80000000
125 0xe 0x80000000 0xe 0x80000000 0x80000000
126 0xf 0x00000000 0xf 0x00000000 0x80000000
127 0xf 0x80000000 0xf 0x80000000 0x80000000>;
128 clock-frequency = <0>; /* Filled in by U-Boot */
129
130 SDRAM0: sdram {
131 compatible = "ibm,sdram-440spe", "ibm,sdram-405gp";
132 dcr-reg = <0x010 0x002>;
133 };
134
135 MAL0: mcmal {
136 compatible = "ibm,mcmal-440spe", "ibm,mcmal2";
137 dcr-reg = <0x180 0x062>;
138 num-tx-chans = <2>;
139 num-rx-chans = <1>;
140 interrupt-parent = <&MAL0>;
141 interrupts = <0x0 0x1 0x2 0x3 0x4>;
142 #interrupt-cells = <1>;
143 #address-cells = <0>;
144 #size-cells = <0>;
145 interrupt-map = </*TXEOB*/ 0x0 &UIC1 0x6 0x4
146 /*RXEOB*/ 0x1 &UIC1 0x7 0x4
147 /*SERR*/ 0x2 &UIC1 0x1 0x4
148 /*TXDE*/ 0x3 &UIC1 0x2 0x4
149 /*RXDE*/ 0x4 &UIC1 0x3 0x4>;
150 };
151
152 POB0: opb {
153 compatible = "ibm,opb-440spe", "ibm,opb-440gp", "ibm,opb";
154 #address-cells = <1>;
155 #size-cells = <1>;
156 ranges = <0xe0000000 0x00000004 0xe0000000 0x20000000>;
157 clock-frequency = <0>; /* Filled in by U-Boot */
158
159 EBC0: ebc {
160 compatible = "ibm,ebc-440spe", "ibm,ebc-440gp", "ibm,ebc";
161 dcr-reg = <0x012 0x002>;
162 #address-cells = <2>;
163 #size-cells = <1>;
164 clock-frequency = <0>; /* Filled in by U-Boot */
165 /* ranges property is supplied by U-Boot */
166 interrupts = <0x5 0x1>;
167 interrupt-parent = <&UIC1>;
168
169 nor_flash@0,0 {
170 compatible = "cfi-flash";
171 bank-width = <2>;
172 reg = <0x00000000 0x00000000 0x01000000>;
173 #address-cells = <1>;
174 #size-cells = <1>;
175 partition@0 {
176 label = "kernel";
177 reg = <0x00000000 0x001e0000>;
178 };
179 partition@1e0000 {
180 label = "dtb";
181 reg = <0x001e0000 0x00020000>;
182 };
183 partition@200000 {
184 label = "root";
185 reg = <0x00200000 0x00200000>;
186 };
187 partition@400000 {
188 label = "user";
189 reg = <0x00400000 0x00b60000>;
190 };
191 partition@f60000 {
192 label = "env";
193 reg = <0x00f60000 0x00040000>;
194 };
195 partition@fa0000 {
196 label = "u-boot";
197 reg = <0x00fa0000 0x00060000>;
198 };
199 };
200
201 SysACE_CompactFlash: sysace@1,0 {
202 compatible = "xlnx,sysace";
203 interrupt-parent = <&UIC2>;
204 interrupts = <24 0x4>;
205 reg = <0x00000001 0x00000000 0x10000>;
206 };
207 };
208
209 UART0: serial@f0000200 {
210 device_type = "serial";
211 compatible = "ns16550";
212 reg = <0xf0000200 0x00000008>;
213 virtual-reg = <0xa0000200>;
214 clock-frequency = <0>; /* Filled in by U-Boot */
215 current-speed = <115200>;
216 interrupt-parent = <&UIC0>;
217 interrupts = <0x0 0x4>;
218 };
219
220 UART1: serial@f0000300 {
221 device_type = "serial";
222 compatible = "ns16550";
223 reg = <0xf0000300 0x00000008>;
224 virtual-reg = <0xa0000300>;
225 clock-frequency = <0>;
226 current-speed = <0>;
227 interrupt-parent = <&UIC0>;
228 interrupts = <0x1 0x4>;
229 };
230
231
232 UART2: serial@f0000600 {
233 device_type = "serial";
234 compatible = "ns16550";
235 reg = <0xf0000600 0x00000008>;
236 virtual-reg = <0xa0000600>;
237 clock-frequency = <0>;
238 current-speed = <0>;
239 interrupt-parent = <&UIC1>;
240 interrupts = <0x5 0x4>;
241 };
242
243 IIC0: i2c@f0000400 {
244 compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic";
245 reg = <0xf0000400 0x00000014>;
246 interrupt-parent = <&UIC0>;
247 interrupts = <0x2 0x4>;
248 };
249
250 IIC1: i2c@f0000500 {
251 compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic";
252 reg = <0xf0000500 0x00000014>;
253 interrupt-parent = <&UIC0>;
254 interrupts = <0x3 0x4>;
255 #address-cells = <1>;
256 #size-cells = <0>;
257
258 rtc@68 {
259 compatible = "stm,m41t00";
260 reg = <0x68>;
261 };
262 };
263
264 EMAC0: ethernet@f0000800 {
265 linux,network-index = <0x0>;
266 device_type = "network";
267 compatible = "ibm,emac-440spe", "ibm,emac4";
268 interrupt-parent = <&UIC1>;
269 interrupts = <0x1c 0x4 0x1d 0x4>;
270 reg = <0xf0000800 0x00000074>;
271 local-mac-address = [000000000000];
272 mal-device = <&MAL0>;
273 mal-tx-channel = <0>;
274 mal-rx-channel = <0>;
275 cell-index = <0>;
276 max-frame-size = <9000>;
277 rx-fifo-size = <4096>;
278 tx-fifo-size = <2048>;
279 phy-mode = "gmii";
280 phy-map = <0x00000000>;
281 has-inverted-stacr-oc;
282 has-new-stacr-staopc;
283 };
284 };
285
286 PCIX0: pci@c0ec00000 {
287 device_type = "pci";
288 #interrupt-cells = <1>;
289 #size-cells = <2>;
290 #address-cells = <3>;
291 compatible = "ibm,plb-pcix-440spe", "ibm,plb-pcix";
292 primary;
293 large-inbound-windows;
294 enable-msi-hole;
295 reg = <0x0000000c 0x0ec00000 0x00000008 /* Config space access */
296 0x00000000 0x00000000 0x00000000 /* no IACK cycles */
297 0x0000000c 0x0ed00000 0x00000004 /* Special cycles */
298 0x0000000c 0x0ec80000 0x00000100 /* Internal registers */
299 0x0000000c 0x0ec80100 0x000000fc>; /* Internal messaging registers */
300
301 /* Outbound ranges, one memory and one IO,
302 * later cannot be changed
303 */
304 ranges = <0x02000000 0x00000000 0x80000000 0x0000000d 0x80000000 0x00000000 0x80000000
305 0x01000000 0x00000000 0x00000000 0x0000000c 0x08000000 0x00000000 0x00010000>;
306
307 /* Inbound 4GB range starting at 0 */
308 dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x1 0x00000000>;
309
310 /* This drives busses 0 to 0xf */
311 bus-range = <0x0 0xf>;
312
313 /* PCI-X interrupt (SM502) is routed to extIRQ10 (UIC1, 19) */
314 interrupt-map-mask = <0x0 0x0 0x0 0x0>;
315 interrupt-map = <0x0 0x0 0x0 0x0 &UIC1 19 0x8>;
316 };
317
318 PCIE0: pciex@d00000000 {
319 device_type = "pci";
320 #interrupt-cells = <1>;
321 #size-cells = <2>;
322 #address-cells = <3>;
323 compatible = "ibm,plb-pciex-440spe", "ibm,plb-pciex";
324 primary;
325 port = <0x0>; /* port number */
326 reg = <0x0000000d 0x00000000 0x20000000 /* Config space access */
327 0x0000000c 0x10000000 0x00001000>; /* Registers */
328 dcr-reg = <0x100 0x020>;
329 sdr-base = <0x300>;
330
331 /* Outbound ranges, one memory and one IO,
332 * later cannot be changed
333 */
334 ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x00000000 0x00000000 0x80000000
335 0x01000000 0x00000000 0x00000000 0x0000000f 0x80000000 0x00000000 0x00010000>;
336
337 /* Inbound 4GB range starting at 0 */
338 dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x1 0x00000000>;
339
340 /* This drives busses 0x10 to 0x1f */
341 bus-range = <0x10 0x1f>;
342
343 /* Legacy interrupts (note the weird polarity, the bridge seems
344 * to invert PCIe legacy interrupts).
345 * We are de-swizzling here because the numbers are actually for
346 * port of the root complex virtual P2P bridge. But I want
347 * to avoid putting a node for it in the tree, so the numbers
348 * below are basically de-swizzled numbers.
349 * The real slot is on idsel 0, so the swizzling is 1:1
350 */
351 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
352 interrupt-map = <
353 0x0 0x0 0x0 0x1 &UIC3 0x0 0x4 /* swizzled int A */
354 0x0 0x0 0x0 0x2 &UIC3 0x1 0x4 /* swizzled int B */
355 0x0 0x0 0x0 0x3 &UIC3 0x2 0x4 /* swizzled int C */
356 0x0 0x0 0x0 0x4 &UIC3 0x3 0x4 /* swizzled int D */>;
357 };
358
359 PCIE1: pciex@d20000000 {
360 device_type = "pci";
361 #interrupt-cells = <1>;
362 #size-cells = <2>;
363 #address-cells = <3>;
364 compatible = "ibm,plb-pciex-440spe", "ibm,plb-pciex";
365 primary;
366 port = <0x1>; /* port number */
367 reg = <0x0000000d 0x20000000 0x20000000 /* Config space access */
368 0x0000000c 0x10001000 0x00001000>; /* Registers */
369 dcr-reg = <0x120 0x020>;
370 sdr-base = <0x340>;
371
372 /* Outbound ranges, one memory and one IO,
373 * later cannot be changed
374 */
375 ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x80000000 0x00000000 0x80000000
376 0x01000000 0x00000000 0x00000000 0x0000000f 0x80010000 0x00000000 0x00010000>;
377
378 /* Inbound 4GB range starting at 0 */
379 dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x1 0x00000000>;
380
381 /* This drives busses 0x20 to 0x2f */
382 bus-range = <0x20 0x2f>;
383
384 /* Legacy interrupts (note the weird polarity, the bridge seems
385 * to invert PCIe legacy interrupts).
386 * We are de-swizzling here because the numbers are actually for
387 * port of the root complex virtual P2P bridge. But I want
388 * to avoid putting a node for it in the tree, so the numbers
389 * below are basically de-swizzled numbers.
390 * The real slot is on idsel 0, so the swizzling is 1:1
391 */
392 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
393 interrupt-map = <
394 0x0 0x0 0x0 0x1 &UIC3 0x4 0x4 /* swizzled int A */
395 0x0 0x0 0x0 0x2 &UIC3 0x5 0x4 /* swizzled int B */
396 0x0 0x0 0x0 0x3 &UIC3 0x6 0x4 /* swizzled int C */
397 0x0 0x0 0x0 0x4 &UIC3 0x7 0x4 /* swizzled int D */>;
398 };
399
400 I2O: i2o@400100000 {
401 compatible = "ibm,i2o-440spe";
402 reg = <0x00000004 0x00100000 0x100>;
403 dcr-reg = <0x060 0x020>;
404 };
405
406 DMA0: dma0@400100100 {
407 compatible = "ibm,dma-440spe";
408 cell-index = <0>;
409 reg = <0x00000004 0x00100100 0x100>;
410 dcr-reg = <0x060 0x020>;
411 interrupt-parent = <&DMA0>;
412 interrupts = <0 1>;
413 #interrupt-cells = <1>;
414 #address-cells = <0>;
415 #size-cells = <0>;
416 interrupt-map = <
417 0 &UIC0 0x14 4
418 1 &UIC1 0x16 4>;
419 };
420
421 DMA1: dma1@400100200 {
422 compatible = "ibm,dma-440spe";
423 cell-index = <1>;
424 reg = <0x00000004 0x00100200 0x100>;
425 dcr-reg = <0x060 0x020>;
426 interrupt-parent = <&DMA1>;
427 interrupts = <0 1>;
428 #interrupt-cells = <1>;
429 #address-cells = <0>;
430 #size-cells = <0>;
431 interrupt-map = <
432 0 &UIC0 0x16 4
433 1 &UIC1 0x16 4>;
434 };
435
436 xor-accel@400200000 {
437 compatible = "amcc,xor-accelerator";
438 reg = <0x00000004 0x00200000 0x400>;
439 interrupt-parent = <&UIC1>;
440 interrupts = <0x1f 4>;
441 };
442 };
443
444 chosen {
445 linux,stdout-path = "/plb/opb/serial@f0000200";
446 };
447};
diff --git a/arch/powerpc/boot/dts/iss4xx-mpic.dts b/arch/powerpc/boot/dts/iss4xx-mpic.dts
new file mode 100644
index 000000000000..23e9d9b7e400
--- /dev/null
+++ b/arch/powerpc/boot/dts/iss4xx-mpic.dts
@@ -0,0 +1,155 @@
1/*
2 * Device Tree Source for IBM Embedded PPC 476 Platform
3 *
4 * Copyright 2010 Torez Smith, IBM Corporation.
5 *
6 * Based on earlier code:
7 * Copyright (c) 2006, 2007 IBM Corp.
8 * Josh Boyer <jwboyer@linux.vnet.ibm.com>, David Gibson <dwg@au1.ibm.com>
9 *
10 * This file is licensed under the terms of the GNU General Public
11 * License version 2. This program is licensed "as is" without
12 * any warranty of any kind, whether express or implied.
13 */
14
15/dts-v1/;
16
17/memreserve/ 0x01f00000 0x00100000;
18
19/ {
20 #address-cells = <2>;
21 #size-cells = <1>;
22 model = "ibm,iss-4xx";
23 compatible = "ibm,iss-4xx";
24 dcr-parent = <&{/cpus/cpu@0}>;
25
26 aliases {
27 serial0 = &UART0;
28 };
29
30 cpus {
31 #address-cells = <1>;
32 #size-cells = <0>;
33
34 cpu@0 {
35 device_type = "cpu";
36 model = "PowerPC,4xx"; // real CPU changed in sim
37 reg = <0>;
38 clock-frequency = <100000000>; // 100Mhz :-)
39 timebase-frequency = <100000000>;
40 i-cache-line-size = <32>;
41 d-cache-line-size = <32>;
42 i-cache-size = <32768>;
43 d-cache-size = <32768>;
44 dcr-controller;
45 dcr-access-method = "native";
46 status = "ok";
47 };
48 cpu@1 {
49 device_type = "cpu";
50 model = "PowerPC,4xx"; // real CPU changed in sim
51 reg = <1>;
52 clock-frequency = <100000000>; // 100Mhz :-)
53 timebase-frequency = <100000000>;
54 i-cache-line-size = <32>;
55 d-cache-line-size = <32>;
56 i-cache-size = <32768>;
57 d-cache-size = <32768>;
58 dcr-controller;
59 dcr-access-method = "native";
60 status = "disabled";
61 enable-method = "spin-table";
62 cpu-release-addr = <0 0x01f00100>;
63 };
64 cpu@2 {
65 device_type = "cpu";
66 model = "PowerPC,4xx"; // real CPU changed in sim
67 reg = <2>;
68 clock-frequency = <100000000>; // 100Mhz :-)
69 timebase-frequency = <100000000>;
70 i-cache-line-size = <32>;
71 d-cache-line-size = <32>;
72 i-cache-size = <32768>;
73 d-cache-size = <32768>;
74 dcr-controller;
75 dcr-access-method = "native";
76 status = "disabled";
77 enable-method = "spin-table";
78 cpu-release-addr = <0 0x01f00200>;
79 };
80 cpu@3 {
81 device_type = "cpu";
82 model = "PowerPC,4xx"; // real CPU changed in sim
83 reg = <3>;
84 clock-frequency = <100000000>; // 100Mhz :-)
85 timebase-frequency = <100000000>;
86 i-cache-line-size = <32>;
87 d-cache-line-size = <32>;
88 i-cache-size = <32768>;
89 d-cache-size = <32768>;
90 dcr-controller;
91 dcr-access-method = "native";
92 status = "disabled";
93 enable-method = "spin-table";
94 cpu-release-addr = <0 0x01f00300>;
95 };
96 };
97
98 memory {
99 device_type = "memory";
100 reg = <0x00000000 0x00000000 0x00000000>; // Filled in by zImage
101
102 };
103
104 MPIC: interrupt-controller {
105 compatible = "chrp,open-pic";
106 interrupt-controller;
107 dcr-reg = <0xffc00000 0x00030000>;
108 #address-cells = <0>;
109 #size-cells = <0>;
110 #interrupt-cells = <2>;
111
112 };
113
114 plb {
115 compatible = "ibm,plb-4xx", "ibm,plb4"; /* Could be PLB6, doesn't matter */
116 #address-cells = <2>;
117 #size-cells = <1>;
118 ranges;
119 clock-frequency = <0>; // Filled in by zImage
120
121 POB0: opb {
122 compatible = "ibm,opb-4xx", "ibm,opb";
123 #address-cells = <1>;
124 #size-cells = <1>;
125 /* Wish there was a nicer way of specifying a full 32-bit
126 range */
127 ranges = <0x00000000 0x00000001 0x00000000 0x80000000
128 0x80000000 0x00000001 0x80000000 0x80000000>;
129 clock-frequency = <0>; // Filled in by zImage
130 UART0: serial@40000200 {
131 device_type = "serial";
132 compatible = "ns16550a";
133 reg = <0x40000200 0x00000008>;
134 virtual-reg = <0xe0000200>;
135 clock-frequency = <11059200>;
136 current-speed = <115200>;
137 interrupt-parent = <&MPIC>;
138 interrupts = <0x0 0x2>;
139 };
140 };
141 };
142
143 nvrtc {
144 compatible = "ds1743-nvram", "ds1743", "rtc-ds1743";
145 reg = <0 0xEF703000 0x2000>;
146 };
147 iss-block {
148 compatible = "ibm,iss-sim-block-device";
149 reg = <0 0xEF701000 0x1000>;
150 };
151
152 chosen {
153 linux,stdout-path = "/plb/opb/serial@40000200";
154 };
155};
diff --git a/arch/powerpc/boot/dts/iss4xx.dts b/arch/powerpc/boot/dts/iss4xx.dts
new file mode 100644
index 000000000000..4ff6555c866d
--- /dev/null
+++ b/arch/powerpc/boot/dts/iss4xx.dts
@@ -0,0 +1,116 @@
1/*
2 * Device Tree Source for IBM Embedded PPC 476 Platform
3 *
4 * Copyright 2010 Torez Smith, IBM Corporation.
5 *
6 * Based on earlier code:
7 * Copyright (c) 2006, 2007 IBM Corp.
8 * Josh Boyer <jwboyer@linux.vnet.ibm.com>, David Gibson <dwg@au1.ibm.com>
9 *
10 * This file is licensed under the terms of the GNU General Public
11 * License version 2. This program is licensed "as is" without
12 * any warranty of any kind, whether express or implied.
13 */
14
15/dts-v1/;
16
17/ {
18 #address-cells = <2>;
19 #size-cells = <1>;
20 model = "ibm,iss-4xx";
21 compatible = "ibm,iss-4xx";
22 dcr-parent = <&{/cpus/cpu@0}>;
23
24 aliases {
25 serial0 = &UART0;
26 };
27
28 cpus {
29 #address-cells = <1>;
30 #size-cells = <0>;
31
32 cpu@0 {
33 device_type = "cpu";
34 model = "PowerPC,4xx"; // real CPU changed in sim
35 reg = <0x00000000>;
36 clock-frequency = <100000000>; // 100Mhz :-)
37 timebase-frequency = <100000000>;
38 i-cache-line-size = <32>; // may need fixup in sim
39 d-cache-line-size = <32>; // may need fixup in sim
40 i-cache-size = <32768>; /* may need fixup in sim */
41 d-cache-size = <32768>; /* may need fixup in sim */
42 dcr-controller;
43 dcr-access-method = "native";
44 };
45 };
46
47 memory {
48 device_type = "memory";
49 reg = <0x00000000 0x00000000 0x00000000>; // Filled in by zImage
50 };
51
52 UIC0: interrupt-controller0 {
53 compatible = "ibm,uic-4xx", "ibm,uic";
54 interrupt-controller;
55 cell-index = <0>;
56 dcr-reg = <0x0c0 0x009>;
57 #address-cells = <0>;
58 #size-cells = <0>;
59 #interrupt-cells = <2>;
60
61 };
62
63 UIC1: interrupt-controller1 {
64 compatible = "ibm,uic-4xx", "ibm,uic";
65 interrupt-controller;
66 cell-index = <1>;
67 dcr-reg = <0x0d0 0x009>;
68 #address-cells = <0>;
69 #size-cells = <0>;
70 #interrupt-cells = <2>;
71 interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
72 interrupt-parent = <&UIC0>;
73 };
74
75 plb {
76 compatible = "ibm,plb-4xx", "ibm,plb4"; /* Could be PLB6, doesn't matter */
77 #address-cells = <2>;
78 #size-cells = <1>;
79 ranges;
80 clock-frequency = <0>; // Filled in by zImage
81
82 POB0: opb {
83 compatible = "ibm,opb-4xx", "ibm,opb";
84 #address-cells = <1>;
85 #size-cells = <1>;
86 /* Wish there was a nicer way of specifying a full 32-bit
87 range */
88 ranges = <0x00000000 0x00000001 0x00000000 0x80000000
89 0x80000000 0x00000001 0x80000000 0x80000000>;
90 clock-frequency = <0>; // Filled in by zImage
91 UART0: serial@40000200 {
92 device_type = "serial";
93 compatible = "ns16550a";
94 reg = <0x40000200 0x00000008>;
95 virtual-reg = <0xe0000200>;
96 clock-frequency = <11059200>;
97 current-speed = <115200>;
98 interrupt-parent = <&UIC0>;
99 interrupts = <0x0 0x4>;
100 };
101 };
102 };
103
104 nvrtc {
105 compatible = "ds1743-nvram", "ds1743", "rtc-ds1743";
106 reg = <0 0xEF703000 0x2000>;
107 };
108 iss-block {
109 compatible = "ibm,iss-sim-block-device";
110 reg = <0 0xEF701000 0x1000>;
111 };
112
113 chosen {
114 linux,stdout-path = "/plb/opb/serial@40000200";
115 };
116};
diff --git a/arch/powerpc/boot/dts/katmai.dts b/arch/powerpc/boot/dts/katmai.dts
index 8cf2c0c88c05..7c3be5e45748 100644
--- a/arch/powerpc/boot/dts/katmai.dts
+++ b/arch/powerpc/boot/dts/katmai.dts
@@ -44,6 +44,7 @@
44 d-cache-size = <32768>; 44 d-cache-size = <32768>;
45 dcr-controller; 45 dcr-controller;
46 dcr-access-method = "native"; 46 dcr-access-method = "native";
47 reset-type = <2>; /* Use chip-reset */
47 }; 48 };
48 }; 49 };
49 50
diff --git a/arch/powerpc/boot/dts/lite5200.dts b/arch/powerpc/boot/dts/lite5200.dts
index 82ff2b13bc37..179a1785d645 100644
--- a/arch/powerpc/boot/dts/lite5200.dts
+++ b/arch/powerpc/boot/dts/lite5200.dts
@@ -134,12 +134,16 @@
134 compatible = "fsl,mpc5200-gpio"; 134 compatible = "fsl,mpc5200-gpio";
135 reg = <0xb00 0x40>; 135 reg = <0xb00 0x40>;
136 interrupts = <1 7 0>; 136 interrupts = <1 7 0>;
137 gpio-controller;
138 #gpio-cells = <2>;
137 }; 139 };
138 140
139 gpio@c00 { 141 gpio@c00 {
140 compatible = "fsl,mpc5200-gpio-wkup"; 142 compatible = "fsl,mpc5200-gpio-wkup";
141 reg = <0xc00 0x40>; 143 reg = <0xc00 0x40>;
142 interrupts = <1 8 0 0 3 0>; 144 interrupts = <1 8 0 0 3 0>;
145 gpio-controller;
146 #gpio-cells = <2>;
143 }; 147 };
144 148
145 spi@f00 { 149 spi@f00 {
@@ -230,8 +234,8 @@
230 reg = <0x3000 0x400>; // fec range, since we need to setup fec interrupts 234 reg = <0x3000 0x400>; // fec range, since we need to setup fec interrupts
231 interrupts = <2 5 0>; // these are for "mii command finished", not link changes & co. 235 interrupts = <2 5 0>; // these are for "mii command finished", not link changes & co.
232 236
233 phy0: ethernet-phy@1 { 237 phy0: ethernet-phy@0 {
234 reg = <1>; 238 reg = <0>;
235 }; 239 };
236 }; 240 };
237 241
@@ -255,7 +259,13 @@
255 compatible = "fsl,mpc5200-i2c","fsl-i2c"; 259 compatible = "fsl,mpc5200-i2c","fsl-i2c";
256 reg = <0x3d40 0x40>; 260 reg = <0x3d40 0x40>;
257 interrupts = <2 16 0>; 261 interrupts = <2 16 0>;
262
263 eeprom@50 {
264 compatible = "atmel,24c02";
265 reg = <0x50>;
266 };
258 }; 267 };
268
259 sram@8000 { 269 sram@8000 {
260 compatible = "fsl,mpc5200-sram"; 270 compatible = "fsl,mpc5200-sram";
261 reg = <0x8000 0x4000>; 271 reg = <0x8000 0x4000>;
@@ -281,4 +291,18 @@
281 0x02000000 0 0xa0000000 0xa0000000 0 0x10000000 291 0x02000000 0 0xa0000000 0xa0000000 0 0x10000000
282 0x01000000 0 0x00000000 0xb0000000 0 0x01000000>; 292 0x01000000 0 0x00000000 0xb0000000 0 0x01000000>;
283 }; 293 };
294
295 localbus {
296 compatible = "fsl,mpc5200-lpb","simple-bus";
297 #address-cells = <2>;
298 #size-cells = <1>;
299
300 ranges = <0 0 0xff000000 0x01000000>;
301
302 flash@0,0 {
303 compatible = "amd,am29lv652d", "cfi-flash";
304 reg = <0 0 0x01000000>;
305 bank-width = <1>;
306 };
307 };
284}; 308};
diff --git a/arch/powerpc/boot/dts/lite5200b.dts b/arch/powerpc/boot/dts/lite5200b.dts
index e45a63be3a86..59702ace900f 100644
--- a/arch/powerpc/boot/dts/lite5200b.dts
+++ b/arch/powerpc/boot/dts/lite5200b.dts
@@ -259,6 +259,11 @@
259 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; 259 compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
260 reg = <0x3d40 0x40>; 260 reg = <0x3d40 0x40>;
261 interrupts = <2 16 0>; 261 interrupts = <2 16 0>;
262
263 eeprom@50 {
264 compatible = "atmel,24c02";
265 reg = <0x50>;
266 };
262 }; 267 };
263 268
264 sram@8000 { 269 sram@8000 {
diff --git a/arch/powerpc/boot/dts/mpc8315erdb.dts b/arch/powerpc/boot/dts/mpc8315erdb.dts
index 8a3a4f3ef831..4dd08c322979 100644
--- a/arch/powerpc/boot/dts/mpc8315erdb.dts
+++ b/arch/powerpc/boot/dts/mpc8315erdb.dts
@@ -292,7 +292,7 @@
292 fsl,num-channels = <4>; 292 fsl,num-channels = <4>;
293 fsl,channel-fifo-len = <24>; 293 fsl,channel-fifo-len = <24>;
294 fsl,exec-units-mask = <0x97c>; 294 fsl,exec-units-mask = <0x97c>;
295 fsl,descriptor-types-mask = <0x3ab0abf>; 295 fsl,descriptor-types-mask = <0x3a30abf>;
296 }; 296 };
297 297
298 sata@18000 { 298 sata@18000 {
@@ -463,4 +463,18 @@
463 0 0x00800000>; 463 0 0x00800000>;
464 }; 464 };
465 }; 465 };
466
467 leds {
468 compatible = "gpio-leds";
469
470 pwr {
471 gpios = <&mcu_pio 0 0>;
472 default-state = "on";
473 };
474
475 hdd {
476 gpios = <&mcu_pio 1 0>;
477 linux,default-trigger = "ide-disk";
478 };
479 };
466}; 480};
diff --git a/arch/powerpc/boot/dts/mpc8377_rdb.dts b/arch/powerpc/boot/dts/mpc8377_rdb.dts
index 9e2264b10008..dbc1b988b29d 100644
--- a/arch/powerpc/boot/dts/mpc8377_rdb.dts
+++ b/arch/powerpc/boot/dts/mpc8377_rdb.dts
@@ -486,4 +486,18 @@
486 0 0x00800000>; 486 0 0x00800000>;
487 }; 487 };
488 }; 488 };
489
490 leds {
491 compatible = "gpio-leds";
492
493 pwr {
494 gpios = <&mcu_pio 0 0>;
495 default-state = "on";
496 };
497
498 hdd {
499 gpios = <&mcu_pio 1 0>;
500 linux,default-trigger = "ide-disk";
501 };
502 };
489}; 503};
diff --git a/arch/powerpc/boot/dts/mpc8378_rdb.dts b/arch/powerpc/boot/dts/mpc8378_rdb.dts
index 4e6a1a407bbd..3447eb9f6e88 100644
--- a/arch/powerpc/boot/dts/mpc8378_rdb.dts
+++ b/arch/powerpc/boot/dts/mpc8378_rdb.dts
@@ -470,4 +470,18 @@
470 0 0x00800000>; 470 0 0x00800000>;
471 }; 471 };
472 }; 472 };
473
474 leds {
475 compatible = "gpio-leds";
476
477 pwr {
478 gpios = <&mcu_pio 0 0>;
479 default-state = "on";
480 };
481
482 hdd {
483 gpios = <&mcu_pio 1 0>;
484 linux,default-trigger = "ide-disk";
485 };
486 };
473}; 487};
diff --git a/arch/powerpc/boot/dts/mpc8379_rdb.dts b/arch/powerpc/boot/dts/mpc8379_rdb.dts
index 72336d504528..15560c619b04 100644
--- a/arch/powerpc/boot/dts/mpc8379_rdb.dts
+++ b/arch/powerpc/boot/dts/mpc8379_rdb.dts
@@ -436,4 +436,18 @@
436 compatible = "fsl,mpc8349-pci"; 436 compatible = "fsl,mpc8349-pci";
437 device_type = "pci"; 437 device_type = "pci";
438 }; 438 };
439
440 leds {
441 compatible = "gpio-leds";
442
443 pwr {
444 gpios = <&mcu_pio 0 0>;
445 default-state = "on";
446 };
447
448 hdd {
449 gpios = <&mcu_pio 1 0>;
450 linux,default-trigger = "ide-disk";
451 };
452 };
439}; 453};
diff --git a/arch/powerpc/boot/dts/mpc8548cds.dts b/arch/powerpc/boot/dts/mpc8548cds.dts
index 4173af387c63..0f5262452682 100644
--- a/arch/powerpc/boot/dts/mpc8548cds.dts
+++ b/arch/powerpc/boot/dts/mpc8548cds.dts
@@ -20,10 +20,8 @@
20 aliases { 20 aliases {
21 ethernet0 = &enet0; 21 ethernet0 = &enet0;
22 ethernet1 = &enet1; 22 ethernet1 = &enet1;
23/*
24 ethernet2 = &enet2; 23 ethernet2 = &enet2;
25 ethernet3 = &enet3; 24 ethernet3 = &enet3;
26*/
27 serial0 = &serial0; 25 serial0 = &serial0;
28 serial1 = &serial1; 26 serial1 = &serial1;
29 pci0 = &pci0; 27 pci0 = &pci0;
@@ -254,7 +252,6 @@
254 }; 252 };
255 }; 253 };
256 254
257/* eTSEC 3/4 are currently broken
258 enet2: ethernet@26000 { 255 enet2: ethernet@26000 {
259 #address-cells = <1>; 256 #address-cells = <1>;
260 #size-cells = <1>; 257 #size-cells = <1>;
@@ -310,7 +307,6 @@
310 }; 307 };
311 }; 308 };
312 }; 309 };
313 */
314 310
315 serial0: serial@4500 { 311 serial0: serial@4500 {
316 cell-index = <0>; 312 cell-index = <0>;
diff --git a/arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts b/arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts
index 5bd1011fde96..3375c2ab0c32 100644
--- a/arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts
+++ b/arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts
@@ -215,6 +215,18 @@
215 clock-frequency = <0>; 215 clock-frequency = <0>;
216 }; 216 };
217 217
218 msi@41600 {
219 compatible = "fsl,mpc8572-msi", "fsl,mpic-msi";
220 reg = <0x41600 0x80>;
221 msi-available-ranges = <0 0x80>;
222 interrupts = <
223 0xe0 0
224 0xe1 0
225 0xe2 0
226 0xe3 0>;
227 interrupt-parent = <&mpic>;
228 };
229
218 global-utilities@e0000 { //global utilities block 230 global-utilities@e0000 { //global utilities block
219 compatible = "fsl,mpc8572-guts"; 231 compatible = "fsl,mpc8572-guts";
220 reg = <0xe0000 0x1000>; 232 reg = <0xe0000 0x1000>;
@@ -243,8 +255,7 @@
243 protected-sources = < 255 protected-sources = <
244 31 32 33 37 38 39 /* enet2 enet3 */ 256 31 32 33 37 38 39 /* enet2 enet3 */
245 76 77 78 79 26 42 /* dma2 pci2 serial*/ 257 76 77 78 79 26 42 /* dma2 pci2 serial*/
246 0xe0 0xe1 0xe2 0xe3 /* msi */ 258 0xe4 0xe5 0xe6 0xe7 /* msi */
247 0xe4 0xe5 0xe6 0xe7
248 >; 259 >;
249 }; 260 };
250 }; 261 };
diff --git a/arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts b/arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts
index 0efc3456e297..e7b477f6a3fe 100644
--- a/arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts
+++ b/arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts
@@ -154,12 +154,8 @@
154 msi@41600 { 154 msi@41600 {
155 compatible = "fsl,mpc8572-msi", "fsl,mpic-msi"; 155 compatible = "fsl,mpc8572-msi", "fsl,mpic-msi";
156 reg = <0x41600 0x80>; 156 reg = <0x41600 0x80>;
157 msi-available-ranges = <0 0x100>; 157 msi-available-ranges = <0x80 0x80>;
158 interrupts = < 158 interrupts = <
159 0xe0 0
160 0xe1 0
161 0xe2 0
162 0xe3 0
163 0xe4 0 159 0xe4 0
164 0xe5 0 160 0xe5 0
165 0xe6 0 161 0xe6 0
@@ -190,6 +186,7 @@
190 0x1 0x2 0x3 0x4 /* pci slot */ 186 0x1 0x2 0x3 0x4 /* pci slot */
191 0x9 0xa 0xb 0xc /* usb */ 187 0x9 0xa 0xb 0xc /* usb */
192 0x6 0x7 0xe 0x5 /* Audio elgacy SATA */ 188 0x6 0x7 0xe 0x5 /* Audio elgacy SATA */
189 0xe0 0xe1 0xe2 0xe3 /* msi */
193 >; 190 >;
194 }; 191 };
195 }; 192 };
diff --git a/arch/powerpc/boot/dts/p1020rdb.dts b/arch/powerpc/boot/dts/p1020rdb.dts
index df5269093af8..22f64b62d7f6 100644
--- a/arch/powerpc/boot/dts/p1020rdb.dts
+++ b/arch/powerpc/boot/dts/p1020rdb.dts
@@ -19,6 +19,9 @@
19 aliases { 19 aliases {
20 serial0 = &serial0; 20 serial0 = &serial0;
21 serial1 = &serial1; 21 serial1 = &serial1;
22 ethernet0 = &enet0;
23 ethernet1 = &enet1;
24 ethernet2 = &enet2;
22 pci0 = &pci0; 25 pci0 = &pci0;
23 pci1 = &pci1; 26 pci1 = &pci1;
24 }; 27 };
@@ -346,6 +349,122 @@
346 }; 349 };
347 }; 350 };
348 351
352 mdio@24000 {
353 #address-cells = <1>;
354 #size-cells = <0>;
355 compatible = "fsl,etsec2-mdio";
356 reg = <0x24000 0x1000 0xb0030 0x4>;
357
358 phy0: ethernet-phy@0 {
359 interrupt-parent = <&mpic>;
360 interrupts = <3 1>;
361 reg = <0x0>;
362 };
363
364 phy1: ethernet-phy@1 {
365 interrupt-parent = <&mpic>;
366 interrupts = <2 1>;
367 reg = <0x1>;
368 };
369 };
370
371 mdio@25000 {
372 #address-cells = <1>;
373 #size-cells = <0>;
374 compatible = "fsl,etsec2-tbi";
375 reg = <0x25000 0x1000 0xb1030 0x4>;
376
377 tbi0: tbi-phy@11 {
378 reg = <0x11>;
379 device_type = "tbi-phy";
380 };
381 };
382
383 enet0: ethernet@b0000 {
384 #address-cells = <1>;
385 #size-cells = <1>;
386 device_type = "network";
387 model = "eTSEC";
388 compatible = "fsl,etsec2";
389 fsl,num_rx_queues = <0x8>;
390 fsl,num_tx_queues = <0x8>;
391 local-mac-address = [ 00 00 00 00 00 00 ];
392 interrupt-parent = <&mpic>;
393 fixed-link = <1 1 1000 0 0>;
394 phy-connection-type = "rgmii-id";
395
396 queue-group@0 {
397 #address-cells = <1>;
398 #size-cells = <1>;
399 reg = <0xb0000 0x1000>;
400 interrupts = <29 2 30 2 34 2>;
401 };
402
403 queue-group@1 {
404 #address-cells = <1>;
405 #size-cells = <1>;
406 reg = <0xb4000 0x1000>;
407 interrupts = <17 2 18 2 24 2>;
408 };
409 };
410
411 enet1: ethernet@b1000 {
412 #address-cells = <1>;
413 #size-cells = <1>;
414 device_type = "network";
415 model = "eTSEC";
416 compatible = "fsl,etsec2";
417 fsl,num_rx_queues = <0x8>;
418 fsl,num_tx_queues = <0x8>;
419 local-mac-address = [ 00 00 00 00 00 00 ];
420 interrupt-parent = <&mpic>;
421 phy-handle = <&phy0>;
422 tbi-handle = <&tbi0>;
423 phy-connection-type = "sgmii";
424
425 queue-group@0 {
426 #address-cells = <1>;
427 #size-cells = <1>;
428 reg = <0xb1000 0x1000>;
429 interrupts = <35 2 36 2 40 2>;
430 };
431
432 queue-group@1 {
433 #address-cells = <1>;
434 #size-cells = <1>;
435 reg = <0xb5000 0x1000>;
436 interrupts = <51 2 52 2 67 2>;
437 };
438 };
439
440 enet2: ethernet@b2000 {
441 #address-cells = <1>;
442 #size-cells = <1>;
443 device_type = "network";
444 model = "eTSEC";
445 compatible = "fsl,etsec2";
446 fsl,num_rx_queues = <0x8>;
447 fsl,num_tx_queues = <0x8>;
448 local-mac-address = [ 00 00 00 00 00 00 ];
449 interrupt-parent = <&mpic>;
450 phy-handle = <&phy1>;
451 phy-connection-type = "rgmii-id";
452
453 queue-group@0 {
454 #address-cells = <1>;
455 #size-cells = <1>;
456 reg = <0xb2000 0x1000>;
457 interrupts = <31 2 32 2 33 2>;
458 };
459
460 queue-group@1 {
461 #address-cells = <1>;
462 #size-cells = <1>;
463 reg = <0xb6000 0x1000>;
464 interrupts = <25 2 26 2 27 2>;
465 };
466 };
467
349 usb@22000 { 468 usb@22000 {
350 #address-cells = <1>; 469 #address-cells = <1>;
351 #size-cells = <0>; 470 #size-cells = <0>;
@@ -356,6 +475,11 @@
356 phy_type = "ulpi"; 475 phy_type = "ulpi";
357 }; 476 };
358 477
478 /* USB2 is shared with localbus, so it must be disabled
479 by default. We can't put 'status = "disabled";' here
480 since U-Boot doesn't clear the status property when
481 it enables USB2. OTOH, U-Boot does create a new node
482 when there isn't any. So, just comment it out.
359 usb@23000 { 483 usb@23000 {
360 #address-cells = <1>; 484 #address-cells = <1>;
361 #size-cells = <0>; 485 #size-cells = <0>;
@@ -365,6 +489,7 @@
365 interrupts = <46 0x2>; 489 interrupts = <46 0x2>;
366 phy_type = "ulpi"; 490 phy_type = "ulpi";
367 }; 491 };
492 */
368 493
369 sdhci@2e000 { 494 sdhci@2e000 {
370 compatible = "fsl,p1020-esdhc", "fsl,esdhc"; 495 compatible = "fsl,p1020-esdhc", "fsl,esdhc";
diff --git a/arch/powerpc/boot/dts/p1021mds.dts b/arch/powerpc/boot/dts/p1021mds.dts
new file mode 100644
index 000000000000..7fad2df25981
--- /dev/null
+++ b/arch/powerpc/boot/dts/p1021mds.dts
@@ -0,0 +1,698 @@
1/*
2 * P1021 MDS Device Tree Source
3 *
4 * Copyright 2010 Freescale Semiconductor Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation; either version 2 of the License, or (at your
9 * option) any later version.
10 */
11
12/dts-v1/;
13/ {
14 model = "fsl,P1021";
15 compatible = "fsl,P1021MDS";
16 #address-cells = <2>;
17 #size-cells = <2>;
18
19 aliases {
20 serial0 = &serial0;
21 serial1 = &serial1;
22 ethernet0 = &enet0;
23 ethernet1 = &enet1;
24 ethernet2 = &enet2;
25 ethernet3 = &enet3;
26 ethernet4 = &enet4;
27 pci0 = &pci0;
28 pci1 = &pci1;
29 };
30
31 cpus {
32 #address-cells = <1>;
33 #size-cells = <0>;
34
35 PowerPC,P1021@0 {
36 device_type = "cpu";
37 reg = <0x0>;
38 next-level-cache = <&L2>;
39 };
40
41 PowerPC,P1021@1 {
42 device_type = "cpu";
43 reg = <0x1>;
44 next-level-cache = <&L2>;
45 };
46 };
47
48 memory {
49 device_type = "memory";
50 };
51
52 localbus@ffe05000 {
53 #address-cells = <2>;
54 #size-cells = <1>;
55 compatible = "fsl,p1021-elbc", "fsl,elbc", "simple-bus";
56 reg = <0 0xffe05000 0 0x1000>;
57 interrupts = <19 2>;
58 interrupt-parent = <&mpic>;
59
60 /* NAND Flash, BCSR, PMC0/1*/
61 ranges = <0x0 0x0 0x0 0xfc000000 0x02000000
62 0x1 0x0 0x0 0xf8000000 0x00008000
63 0x2 0x0 0x0 0xf8010000 0x00020000
64 0x3 0x0 0x0 0xf8020000 0x00020000>;
65
66 nand@0,0 {
67 #address-cells = <1>;
68 #size-cells = <1>;
69 compatible = "fsl,p1021-fcm-nand",
70 "fsl,elbc-fcm-nand";
71 reg = <0x0 0x0 0x40000>;
72
73 partition@0 {
74 /* This location must not be altered */
75 /* 1MB for u-boot Bootloader Image */
76 reg = <0x0 0x00100000>;
77 label = "NAND (RO) U-Boot Image";
78 read-only;
79 };
80
81 partition@100000 {
82 /* 1MB for DTB Image */
83 reg = <0x00100000 0x00100000>;
84 label = "NAND (RO) DTB Image";
85 read-only;
86 };
87
88 partition@200000 {
89 /* 4MB for Linux Kernel Image */
90 reg = <0x00200000 0x00400000>;
91 label = "NAND (RO) Linux Kernel Image";
92 read-only;
93 };
94
95 partition@600000 {
96 /* 5MB for Compressed Root file System Image */
97 reg = <0x00600000 0x00500000>;
98 label = "NAND (RO) Compressed RFS Image";
99 read-only;
100 };
101
102 partition@b00000 {
103 /* 6MB for JFFS2 based Root file System */
104 reg = <0x00a00000 0x00600000>;
105 label = "NAND (RW) JFFS2 Root File System";
106 };
107
108 partition@1100000 {
109 /* 14MB for JFFS2 based Root file System */
110 reg = <0x01100000 0x00e00000>;
111 label = "NAND (RW) Writable User area";
112 };
113
114 partition@1f00000 {
115 /* 1MB for microcode */
116 reg = <0x01f00000 0x00100000>;
117 label = "NAND (RO) QE Ucode";
118 read-only;
119 };
120 };
121
122 bcsr@1,0 {
123 #address-cells = <1>;
124 #size-cells = <1>;
125 compatible = "fsl,p1021mds-bcsr";
126 reg = <1 0 0x8000>;
127 ranges = <0 1 0 0x8000>;
128 };
129
130 pib@2,0 {
131 compatible = "fsl,p1021mds-pib";
132 reg = <2 0 0x10000>;
133 };
134
135 pib@3,0 {
136 compatible = "fsl,p1021mds-pib";
137 reg = <3 0 0x10000>;
138 };
139 };
140
141 soc@ffe00000 {
142
143 #address-cells = <1>;
144 #size-cells = <1>;
145 device_type = "soc";
146 compatible = "fsl,p1021-immr", "simple-bus";
147 ranges = <0x0 0x0 0xffe00000 0x100000>;
148 bus-frequency = <0>; // Filled out by uboot.
149
150 ecm-law@0 {
151 compatible = "fsl,ecm-law";
152 reg = <0x0 0x1000>;
153 fsl,num-laws = <12>;
154 };
155
156 ecm@1000 {
157 compatible = "fsl,p1021-ecm", "fsl,ecm";
158 reg = <0x1000 0x1000>;
159 interrupts = <16 2>;
160 interrupt-parent = <&mpic>;
161 };
162
163 memory-controller@2000 {
164 compatible = "fsl,p1021-memory-controller";
165 reg = <0x2000 0x1000>;
166 interrupt-parent = <&mpic>;
167 interrupts = <16 2>;
168 };
169
170 i2c@3000 {
171 #address-cells = <1>;
172 #size-cells = <0>;
173 cell-index = <0>;
174 compatible = "fsl-i2c";
175 reg = <0x3000 0x100>;
176 interrupts = <43 2>;
177 interrupt-parent = <&mpic>;
178 dfsrr;
179 rtc@68 {
180 compatible = "dallas,ds1374";
181 reg = <0x68>;
182 };
183 };
184
185 i2c@3100 {
186 #address-cells = <1>;
187 #size-cells = <0>;
188 cell-index = <1>;
189 compatible = "fsl-i2c";
190 reg = <0x3100 0x100>;
191 interrupts = <43 2>;
192 interrupt-parent = <&mpic>;
193 dfsrr;
194 };
195
196 serial0: serial@4500 {
197 cell-index = <0>;
198 device_type = "serial";
199 compatible = "ns16550";
200 reg = <0x4500 0x100>;
201 clock-frequency = <0>;
202 interrupts = <42 2>;
203 interrupt-parent = <&mpic>;
204 };
205
206 serial1: serial@4600 {
207 cell-index = <1>;
208 device_type = "serial";
209 compatible = "ns16550";
210 reg = <0x4600 0x100>;
211 clock-frequency = <0>;
212 interrupts = <42 2>;
213 interrupt-parent = <&mpic>;
214 };
215
216 spi@7000 {
217 cell-index = <0>;
218 #address-cells = <1>;
219 #size-cells = <0>;
220 compatible = "fsl,espi";
221 reg = <0x7000 0x1000>;
222 interrupts = <59 0x2>;
223 interrupt-parent = <&mpic>;
224 espi,num-ss-bits = <4>;
225 mode = "cpu";
226
227 fsl_m25p80@0 {
228 #address-cells = <1>;
229 #size-cells = <1>;
230 compatible = "fsl,espi-flash";
231 reg = <0>;
232 linux,modalias = "fsl_m25p80";
233 spi-max-frequency = <40000000>; /* input clock */
234 partition@u-boot {
235 label = "u-boot-spi";
236 reg = <0x00000000 0x00100000>;
237 read-only;
238 };
239 partition@kernel {
240 label = "kernel-spi";
241 reg = <0x00100000 0x00500000>;
242 read-only;
243 };
244 partition@dtb {
245 label = "dtb-spi";
246 reg = <0x00600000 0x00100000>;
247 read-only;
248 };
249 partition@fs {
250 label = "file system-spi";
251 reg = <0x00700000 0x00900000>;
252 };
253 };
254 };
255
256 gpio: gpio-controller@f000 {
257 #gpio-cells = <2>;
258 compatible = "fsl,mpc8572-gpio";
259 reg = <0xf000 0x100>;
260 interrupts = <47 0x2>;
261 interrupt-parent = <&mpic>;
262 gpio-controller;
263 };
264
265 L2: l2-cache-controller@20000 {
266 compatible = "fsl,p1021-l2-cache-controller";
267 reg = <0x20000 0x1000>;
268 cache-line-size = <32>; // 32 bytes
269 cache-size = <0x40000>; // L2,256K
270 interrupt-parent = <&mpic>;
271 interrupts = <16 2>;
272 };
273
274 dma@21300 {
275 #address-cells = <1>;
276 #size-cells = <1>;
277 compatible = "fsl,eloplus-dma";
278 reg = <0x21300 0x4>;
279 ranges = <0x0 0x21100 0x200>;
280 cell-index = <0>;
281 dma-channel@0 {
282 compatible = "fsl,eloplus-dma-channel";
283 reg = <0x0 0x80>;
284 cell-index = <0>;
285 interrupt-parent = <&mpic>;
286 interrupts = <20 2>;
287 };
288 dma-channel@80 {
289 compatible = "fsl,eloplus-dma-channel";
290 reg = <0x80 0x80>;
291 cell-index = <1>;
292 interrupt-parent = <&mpic>;
293 interrupts = <21 2>;
294 };
295 dma-channel@100 {
296 compatible = "fsl,eloplus-dma-channel";
297 reg = <0x100 0x80>;
298 cell-index = <2>;
299 interrupt-parent = <&mpic>;
300 interrupts = <22 2>;
301 };
302 dma-channel@180 {
303 compatible = "fsl,eloplus-dma-channel";
304 reg = <0x180 0x80>;
305 cell-index = <3>;
306 interrupt-parent = <&mpic>;
307 interrupts = <23 2>;
308 };
309 };
310
311 usb@22000 {
312 #address-cells = <1>;
313 #size-cells = <0>;
314 compatible = "fsl-usb2-dr";
315 reg = <0x22000 0x1000>;
316 interrupt-parent = <&mpic>;
317 interrupts = <28 0x2>;
318 phy_type = "ulpi";
319 };
320
321 mdio@24000 {
322 #address-cells = <1>;
323 #size-cells = <0>;
324 compatible = "fsl,etsec2-mdio";
325 reg = <0x24000 0x1000 0xb0030 0x4>;
326
327 phy0: ethernet-phy@0 {
328 interrupt-parent = <&mpic>;
329 interrupts = <1 1>;
330 reg = <0x0>;
331 };
332 phy1: ethernet-phy@1 {
333 interrupt-parent = <&mpic>;
334 interrupts = <2 1>;
335 reg = <0x1>;
336 };
337 phy4: ethernet-phy@4 {
338 interrupt-parent = <&mpic>;
339 reg = <0x4>;
340 };
341 };
342
343 mdio@25000 {
344 #address-cells = <1>;
345 #size-cells = <0>;
346 compatible = "fsl,etsec2-tbi";
347 reg = <0x25000 0x1000 0xb1030 0x4>;
348 tbi0: tbi-phy@11 {
349 reg = <0x11>;
350 device_type = "tbi-phy";
351 };
352 };
353
354 enet0: ethernet@B0000 {
355 #address-cells = <1>;
356 #size-cells = <1>;
357 cell-index = <0>;
358 device_type = "network";
359 model = "eTSEC";
360 compatible = "fsl,etsec2";
361 fsl,num_rx_queues = <0x8>;
362 fsl,num_tx_queues = <0x8>;
363 local-mac-address = [ 00 00 00 00 00 00 ];
364 interrupt-parent = <&mpic>;
365 phy-handle = <&phy0>;
366 phy-connection-type = "rgmii-id";
367 queue-group@0{
368 #address-cells = <1>;
369 #size-cells = <1>;
370 reg = <0xB0000 0x1000>;
371 interrupts = <29 2 30 2 34 2>;
372 };
373 queue-group@1{
374 #address-cells = <1>;
375 #size-cells = <1>;
376 reg = <0xB4000 0x1000>;
377 interrupts = <17 2 18 2 24 2>;
378 };
379 };
380
381 enet1: ethernet@B1000 {
382 #address-cells = <1>;
383 #size-cells = <1>;
384 cell-index = <0>;
385 device_type = "network";
386 model = "eTSEC";
387 compatible = "fsl,etsec2";
388 fsl,num_rx_queues = <0x8>;
389 fsl,num_tx_queues = <0x8>;
390 local-mac-address = [ 00 00 00 00 00 00 ];
391 interrupt-parent = <&mpic>;
392 phy-handle = <&phy4>;
393 tbi-handle = <&tbi0>;
394 phy-connection-type = "sgmii";
395 queue-group@0{
396 #address-cells = <1>;
397 #size-cells = <1>;
398 reg = <0xB1000 0x1000>;
399 interrupts = <35 2 36 2 40 2>;
400 };
401 queue-group@1{
402 #address-cells = <1>;
403 #size-cells = <1>;
404 reg = <0xB5000 0x1000>;
405 interrupts = <51 2 52 2 67 2>;
406 };
407 };
408
409 enet2: ethernet@B2000 {
410 #address-cells = <1>;
411 #size-cells = <1>;
412 cell-index = <0>;
413 device_type = "network";
414 model = "eTSEC";
415 compatible = "fsl,etsec2";
416 fsl,num_rx_queues = <0x8>;
417 fsl,num_tx_queues = <0x8>;
418 local-mac-address = [ 00 00 00 00 00 00 ];
419 interrupt-parent = <&mpic>;
420 phy-handle = <&phy1>;
421 phy-connection-type = "rgmii-id";
422 queue-group@0{
423 #address-cells = <1>;
424 #size-cells = <1>;
425 reg = <0xB2000 0x1000>;
426 interrupts = <31 2 32 2 33 2>;
427 };
428 queue-group@1{
429 #address-cells = <1>;
430 #size-cells = <1>;
431 reg = <0xB6000 0x1000>;
432 interrupts = <25 2 26 2 27 2>;
433 };
434 };
435
436 sdhci@2e000 {
437 compatible = "fsl,p1021-esdhc", "fsl,esdhc";
438 reg = <0x2e000 0x1000>;
439 interrupts = <72 0x2>;
440 interrupt-parent = <&mpic>;
441 /* Filled in by U-Boot */
442 clock-frequency = <0>;
443 };
444
445 crypto@30000 {
446 compatible = "fsl,sec3.3", "fsl,sec3.1",
447 "fsl,sec3.0", "fsl,sec2.4",
448 "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0";
449 reg = <0x30000 0x10000>;
450 interrupts = <45 2 58 2>;
451 interrupt-parent = <&mpic>;
452 fsl,num-channels = <4>;
453 fsl,channel-fifo-len = <24>;
454 fsl,exec-units-mask = <0x97c>;
455 fsl,descriptor-types-mask = <0x3a30abf>;
456 };
457
458 mpic: pic@40000 {
459 interrupt-controller;
460 #address-cells = <0>;
461 #interrupt-cells = <2>;
462 reg = <0x40000 0x40000>;
463 compatible = "chrp,open-pic";
464 device_type = "open-pic";
465 };
466
467 msi@41600 {
468 compatible = "fsl,p1021-msi", "fsl,mpic-msi";
469 reg = <0x41600 0x80>;
470 msi-available-ranges = <0 0x100>;
471 interrupts = <
472 0xe0 0
473 0xe1 0
474 0xe2 0
475 0xe3 0
476 0xe4 0
477 0xe5 0
478 0xe6 0
479 0xe7 0>;
480 interrupt-parent = <&mpic>;
481 };
482
483 global-utilities@e0000 { //global utilities block
484 compatible = "fsl,p1021-guts";
485 reg = <0xe0000 0x1000>;
486 fsl,has-rstcr;
487 };
488
489 par_io@e0100 {
490 #address-cells = <1>;
491 #size-cells = <1>;
492 reg = <0xe0100 0x60>;
493 ranges = <0x0 0xe0100 0x60>;
494 device_type = "par_io";
495 num-ports = <3>;
496 pio1: ucc_pin@01 {
497 pio-map = <
498 /* port pin dir open_drain assignment has_irq */
499 0x1 0x13 0x1 0x0 0x1 0x0 /* QE_MUX_MDC */
500 0x1 0x14 0x3 0x0 0x1 0x0 /* QE_MUX_MDIO */
501 0x0 0x17 0x2 0x0 0x2 0x0 /* CLK12 */
502 0x0 0x18 0x2 0x0 0x1 0x0 /* CLK9
503*/
504 0x0 0x7 0x1 0x0 0x2 0x0 /* ENET1_TXD0_SER1_TXD0 */
505 0x0 0x9 0x1 0x0 0x2 0x0 /* ENET1_TXD1_SER1_TXD1 */
506 0x0 0xb 0x1 0x0 0x2 0x0 /* ENET1_TXD2_SER1_TXD2 */
507 0x0 0xc 0x1 0x0 0x2 0x0 /* ENET1_TXD3_SER1_TXD3 */
508 0x0 0x6 0x2 0x0 0x2 0x0 /* ENET1_RXD0_SER1_RXD0 */
509 0x0 0xa 0x2 0x0 0x2 0x0 /* ENET1_RXD1_SER1_RXD1 */
510 0x0 0xe 0x2 0x0 0x2 0x0 /* ENET1_RXD2_SER1_RXD2 */
511 0x0 0xf 0x2 0x0 0x2 0x0 /* ENET1_RXD3_SER1_RXD3 */
512 0x0 0x5 0x1 0x0 0x2 0x0 /* ENET1_TX_EN_SER1_RTS_B */
513 0x0 0xd 0x1 0x0 0x2 0x0 /* ENET1_TX_ER */
514 0x0 0x4 0x2 0x0 0x2 0x0 /* ENET1_RX_DV_SER1_CTS_B */
515 0x0 0x8 0x2 0x0 0x2 0x0 /* ENET1_RX_ER_SER1_CD_B */
516 0x0 0x11 0x2 0x0 0x2 0x0 /* ENET1_CRS */
517 0x0 0x10 0x2 0x0 0x2 0x0>; /* ENET1_COL */
518 };
519
520 pio2: ucc_pin@02 {
521 pio-map = <
522 /* port pin dir open_drain assignment has_irq */
523 0x1 0x13 0x1 0x0 0x1 0x0 /* QE_MUX_MDC */
524 0x1 0x14 0x3 0x0 0x1 0x0 /* QE_MUX_MDIO */
525 0x1 0xb 0x2 0x0 0x1 0x0 /* CLK13 */
526 0x1 0x7 0x1 0x0 0x2 0x0 /* ENET5_TXD0_SER5_TXD0 */
527 0x1 0xa 0x1 0x0 0x2 0x0 /* ENET5_TXD1_SER5_TXD1 */
528 0x1 0x6 0x2 0x0 0x2 0x0 /* ENET5_RXD0_SER5_RXD0 */
529 0x1 0x9 0x2 0x0 0x2 0x0 /* ENET5_RXD1_SER5_RXD1 */
530 0x1 0x5 0x1 0x0 0x2 0x0 /* ENET5_TX_EN_SER5_RTS_B */
531 0x1 0x4 0x2 0x0 0x2 0x0 /* ENET5_RX_DV_SER5_CTS_B */
532 0x1 0x8 0x2 0x0 0x2 0x0>; /* ENET5_RX_ER_SER5_CD_B */
533 };
534 };
535 };
536
537 pci0: pcie@ffe09000 {
538 compatible = "fsl,mpc8548-pcie";
539 device_type = "pci";
540 #interrupt-cells = <1>;
541 #size-cells = <2>;
542 #address-cells = <3>;
543 reg = <0 0xffe09000 0 0x1000>;
544 bus-range = <0 255>;
545 ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
546 0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
547 clock-frequency = <33333333>;
548 interrupt-parent = <&mpic>;
549 interrupts = <16 2>;
550 interrupt-map-mask = <0xf800 0 0 7>;
551 interrupt-map = <
552 /* IDSEL 0x0 */
553 0000 0 0 1 &mpic 4 1
554 0000 0 0 2 &mpic 5 1
555 0000 0 0 3 &mpic 6 1
556 0000 0 0 4 &mpic 7 1
557 >;
558 pcie@0 {
559 reg = <0x0 0x0 0x0 0x0 0x0>;
560 #size-cells = <2>;
561 #address-cells = <3>;
562 device_type = "pci";
563 ranges = <0x2000000 0x0 0xa0000000
564 0x2000000 0x0 0xa0000000
565 0x0 0x20000000
566
567 0x1000000 0x0 0x0
568 0x1000000 0x0 0x0
569 0x0 0x100000>;
570 };
571 };
572
573 pci1: pcie@ffe0a000 {
574 compatible = "fsl,mpc8548-pcie";
575 device_type = "pci";
576 #interrupt-cells = <1>;
577 #size-cells = <2>;
578 #address-cells = <3>;
579 reg = <0 0xffe0a000 0 0x1000>;
580 bus-range = <0 255>;
581 ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000
582 0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>;
583 clock-frequency = <33333333>;
584 interrupt-parent = <&mpic>;
585 interrupts = <16 2>;
586 interrupt-map-mask = <0xf800 0 0 7>;
587 interrupt-map = <
588 /* IDSEL 0x0 */
589 0000 0 0 1 &mpic 0 1
590 0000 0 0 2 &mpic 1 1
591 0000 0 0 3 &mpic 2 1
592 0000 0 0 4 &mpic 3 1
593 >;
594 pcie@0 {
595 reg = <0x0 0x0 0x0 0x0 0x0>;
596 #size-cells = <2>;
597 #address-cells = <3>;
598 device_type = "pci";
599 ranges = <0x2000000 0x0 0xc0000000
600 0x2000000 0x0 0xc0000000
601 0x0 0x20000000
602
603 0x1000000 0x0 0x0
604 0x1000000 0x0 0x0
605 0x0 0x100000>;
606 };
607 };
608
609 qe@ffe80000 {
610 #address-cells = <1>;
611 #size-cells = <1>;
612 device_type = "qe";
613 compatible = "fsl,qe";
614 ranges = <0x0 0x0 0xffe80000 0x40000>;
615 reg = <0 0xffe80000 0 0x480>;
616 brg-frequency = <0>;
617 bus-frequency = <0>;
618 fsl,qe-num-riscs = <1>;
619 fsl,qe-num-snums = <28>;
620
621 qeic: interrupt-controller@80 {
622 interrupt-controller;
623 compatible = "fsl,qe-ic";
624 #address-cells = <0>;
625 #interrupt-cells = <1>;
626 reg = <0x80 0x80>;
627 interrupts = <63 2 60 2>; //high:47 low:44
628 interrupt-parent = <&mpic>;
629 };
630
631 enet3: ucc@2000 {
632 device_type = "network";
633 compatible = "ucc_geth";
634 cell-index = <1>;
635 reg = <0x2000 0x200>;
636 interrupts = <32>;
637 interrupt-parent = <&qeic>;
638 local-mac-address = [ 00 00 00 00 00 00 ];
639 rx-clock-name = "clk12";
640 tx-clock-name = "clk9";
641 pio-handle = <&pio1>;
642 phy-handle = <&qe_phy0>;
643 phy-connection-type = "mii";
644 };
645
646 mdio@2120 {
647 #address-cells = <1>;
648 #size-cells = <0>;
649 reg = <0x2120 0x18>;
650 compatible = "fsl,ucc-mdio";
651
652 qe_phy0: ethernet-phy@0 {
653 interrupt-parent = <&mpic>;
654 interrupts = <4 1>;
655 reg = <0x0>;
656 device_type = "ethernet-phy";
657 };
658 qe_phy1: ethernet-phy@03 {
659 interrupt-parent = <&mpic>;
660 interrupts = <5 1>;
661 reg = <0x3>;
662 device_type = "ethernet-phy";
663 };
664 tbi-phy@11 {
665 reg = <0x11>;
666 device_type = "tbi-phy";
667 };
668 };
669
670 enet4: ucc@2400 {
671 device_type = "network";
672 compatible = "ucc_geth";
673 cell-index = <5>;
674 reg = <0x2400 0x200>;
675 interrupts = <40>;
676 interrupt-parent = <&qeic>;
677 local-mac-address = [ 00 00 00 00 00 00 ];
678 rx-clock-name = "none";
679 tx-clock-name = "clk13";
680 pio-handle = <&pio2>;
681 phy-handle = <&qe_phy1>;
682 phy-connection-type = "rmii";
683 };
684
685 muram@10000 {
686 #address-cells = <1>;
687 #size-cells = <1>;
688 compatible = "fsl,qe-muram", "fsl,cpm-muram";
689 ranges = <0x0 0x10000 0x6000>;
690
691 data-only@0 {
692 compatible = "fsl,qe-muram-data",
693 "fsl,cpm-muram-data";
694 reg = <0x0 0x6000>;
695 };
696 };
697 };
698};
diff --git a/arch/powerpc/boot/dts/redwood.dts b/arch/powerpc/boot/dts/redwood.dts
index d2af32e2bf7a..81636c01d906 100644
--- a/arch/powerpc/boot/dts/redwood.dts
+++ b/arch/powerpc/boot/dts/redwood.dts
@@ -234,10 +234,132 @@
234 has-inverted-stacr-oc; 234 has-inverted-stacr-oc;
235 has-new-stacr-staopc; 235 has-new-stacr-staopc;
236 }; 236 };
237 };
238 PCIE0: pciex@d00000000 {
239 device_type = "pci";
240 #interrupt-cells = <1>;
241 #size-cells = <2>;
242 #address-cells = <3>;
243 compatible = "ibm,plb-pciex-460sx", "ibm,plb-pciex";
244 primary;
245 port = <0x0>; /* port number */
246 reg = <0x0000000d 0x00000000 0x20000000 /* Config space access */
247 0x0000000c 0x10000000 0x00001000>; /* Registers */
248 dcr-reg = <0x100 0x020>;
249 sdr-base = <0x300>;
250
251 /* Outbound ranges, one memory and one IO,
252 * later cannot be changed
253 */
254 ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x00000000 0x00000000 0x80000000
255 0x01000000 0x00000000 0x00000000 0x0000000f 0x80000000 0x00000000 0x00010000>;
256
257 /* Inbound 2GB range starting at 0 */
258 dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
237 259
260 /* This drives busses 10 to 0x1f */
261 bus-range = <0x10 0x1f>;
262
263 /* Legacy interrupts (note the weird polarity, the bridge seems
264 * to invert PCIe legacy interrupts).
265 * We are de-swizzling here because the numbers are actually for
266 * port of the root complex virtual P2P bridge. But I want
267 * to avoid putting a node for it in the tree, so the numbers
268 * below are basically de-swizzled numbers.
269 * The real slot is on idsel 0, so the swizzling is 1:1
270 */
271 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
272 interrupt-map = <
273 0x0 0x0 0x0 0x1 &UIC3 0x0 0x4 /* swizzled int A */
274 0x0 0x0 0x0 0x2 &UIC3 0x1 0x4 /* swizzled int B */
275 0x0 0x0 0x0 0x3 &UIC3 0x2 0x4 /* swizzled int C */
276 0x0 0x0 0x0 0x4 &UIC3 0x3 0x4 /* swizzled int D */>;
277 };
278
279 PCIE1: pciex@d20000000 {
280 device_type = "pci";
281 #interrupt-cells = <1>;
282 #size-cells = <2>;
283 #address-cells = <3>;
284 compatible = "ibm,plb-pciex-460sx", "ibm,plb-pciex";
285 primary;
286 port = <0x1>; /* port number */
287 reg = <0x0000000d 0x20000000 0x20000000 /* Config space access */
288 0x0000000c 0x10001000 0x00001000>; /* Registers */
289 dcr-reg = <0x120 0x020>;
290 sdr-base = <0x340>;
291
292 /* Outbound ranges, one memory and one IO,
293 * later cannot be changed
294 */
295 ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x80000000 0x00000000 0x80000000
296 0x01000000 0x00000000 0x00000000 0x0000000f 0x80010000 0x00000000 0x00010000>;
297
298 /* Inbound 2GB range starting at 0 */
299 dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
300
301 /* This drives busses 10 to 0x1f */
302 bus-range = <0x20 0x2f>;
303
304 /* Legacy interrupts (note the weird polarity, the bridge seems
305 * to invert PCIe legacy interrupts).
306 * We are de-swizzling here because the numbers are actually for
307 * port of the root complex virtual P2P bridge. But I want
308 * to avoid putting a node for it in the tree, so the numbers
309 * below are basically de-swizzled numbers.
310 * The real slot is on idsel 0, so the swizzling is 1:1
311 */
312 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
313 interrupt-map = <
314 0x0 0x0 0x0 0x1 &UIC3 0x4 0x4 /* swizzled int A */
315 0x0 0x0 0x0 0x2 &UIC3 0x5 0x4 /* swizzled int B */
316 0x0 0x0 0x0 0x3 &UIC3 0x6 0x4 /* swizzled int C */
317 0x0 0x0 0x0 0x4 &UIC3 0x7 0x4 /* swizzled int D */>;
318 };
319
320 PCIE2: pciex@d40000000 {
321 device_type = "pci";
322 #interrupt-cells = <1>;
323 #size-cells = <2>;
324 #address-cells = <3>;
325 compatible = "ibm,plb-pciex-460sx", "ibm,plb-pciex";
326 primary;
327 port = <0x2>; /* port number */
328 reg = <0x0000000d 0x40000000 0x20000000 /* Config space access */
329 0x0000000c 0x10002000 0x00001000>; /* Registers */
330 dcr-reg = <0x140 0x020>;
331 sdr-base = <0x370>;
332
333 /* Outbound ranges, one memory and one IO,
334 * later cannot be changed
335 */
336 ranges = <0x02000000 0x00000000 0x80000000 0x0000000f 0x00000000 0x00000000 0x80000000
337 0x01000000 0x00000000 0x00000000 0x0000000f 0x80020000 0x00000000 0x00010000>;
338
339 /* Inbound 2GB range starting at 0 */
340 dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
341
342 /* This drives busses 10 to 0x1f */
343 bus-range = <0x30 0x3f>;
344
345 /* Legacy interrupts (note the weird polarity, the bridge seems
346 * to invert PCIe legacy interrupts).
347 * We are de-swizzling here because the numbers are actually for
348 * port of the root complex virtual P2P bridge. But I want
349 * to avoid putting a node for it in the tree, so the numbers
350 * below are basically de-swizzled numbers.
351 * The real slot is on idsel 0, so the swizzling is 1:1
352 */
353 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
354 interrupt-map = <
355 0x0 0x0 0x0 0x1 &UIC3 0x8 0x4 /* swizzled int A */
356 0x0 0x0 0x0 0x2 &UIC3 0x9 0x4 /* swizzled int B */
357 0x0 0x0 0x0 0x3 &UIC3 0xa 0x4 /* swizzled int C */
358 0x0 0x0 0x0 0x4 &UIC3 0xb 0x4 /* swizzled int D */>;
238 }; 359 };
239 360
240 }; 361 };
362
241 chosen { 363 chosen {
242 linux,stdout-path = "/plb/opb/serial@ef600200"; 364 linux,stdout-path = "/plb/opb/serial@ef600200";
243 }; 365 };
diff --git a/arch/powerpc/boot/treeboot-iss4xx.c b/arch/powerpc/boot/treeboot-iss4xx.c
new file mode 100644
index 000000000000..fcc44952874e
--- /dev/null
+++ b/arch/powerpc/boot/treeboot-iss4xx.c
@@ -0,0 +1,56 @@
1/*
2 * Copyright 2010 Ben. Herrenschmidt, IBM Corporation.
3 *
4 * Based on earlier code:
5 * Copyright (C) Paul Mackerras 1997.
6 *
7 * Matt Porter <mporter@kernel.crashing.org>
8 * Copyright 2002-2005 MontaVista Software Inc.
9 *
10 * Eugene Surovegin <eugene.surovegin@zultys.com> or <ebs@ebshome.net>
11 * Copyright (c) 2003, 2004 Zultys Technologies
12 *
13 * Copyright 2007 David Gibson, IBM Corporation.
14 *
15 * This program is free software; you can redistribute it and/or
16 * modify it under the terms of the GNU General Public License
17 * as published by the Free Software Foundation; either version
18 * 2 of the License, or (at your option) any later version.
19 */
20#include <stdarg.h>
21#include <stddef.h>
22#include "types.h"
23#include "elf.h"
24#include "string.h"
25#include "stdio.h"
26#include "page.h"
27#include "ops.h"
28#include "reg.h"
29#include "io.h"
30#include "dcr.h"
31#include "4xx.h"
32#include "44x.h"
33#include "libfdt.h"
34
35BSS_STACK(4096);
36
37static void iss_4xx_fixups(void)
38{
39 ibm4xx_sdram_fixup_memsize();
40}
41
42#define SPRN_PIR 0x11E /* Processor Indentification Register */
43void platform_init(void)
44{
45 unsigned long end_of_ram = 0x08000000;
46 unsigned long avail_ram = end_of_ram - (unsigned long)_end;
47 u32 pir_reg;
48
49 simple_alloc_init(_end, avail_ram, 128, 64);
50 platform_ops.fixups = iss_4xx_fixups;
51 platform_ops.exit = ibm44x_dbcr_reset;
52 pir_reg = mfspr(SPRN_PIR);
53 fdt_set_boot_cpuid_phys(_dtb_start, pir_reg);
54 fdt_init(_dtb_start);
55 serial_console_init();
56}
diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper
index f4594ed09a20..cb97e7511d7e 100755
--- a/arch/powerpc/boot/wrapper
+++ b/arch/powerpc/boot/wrapper
@@ -149,6 +149,10 @@ pseries)
149 platformo=$object/of.o 149 platformo=$object/of.o
150 link_address='0x4000000' 150 link_address='0x4000000'
151 ;; 151 ;;
152maple)
153 platformo=$object/of.o
154 link_address='0x400000'
155 ;;
152pmac|chrp) 156pmac|chrp)
153 platformo=$object/of.o 157 platformo=$object/of.o
154 ;; 158 ;;
@@ -237,6 +241,9 @@ gamecube|wii)
237 link_address='0x600000' 241 link_address='0x600000'
238 platformo="$object/$platform-head.o $object/$platform.o" 242 platformo="$object/$platform-head.o $object/$platform.o"
239 ;; 243 ;;
244treeboot-iss4xx-mpic)
245 platformo="$object/treeboot-iss4xx.o"
246 ;;
240esac 247esac
241 248
242vmz="$tmpdir/`basename \"$kernel\"`.$ext" 249vmz="$tmpdir/`basename \"$kernel\"`.$ext"
@@ -321,7 +328,7 @@ fi
321 328
322# post-processing needed for some platforms 329# post-processing needed for some platforms
323case "$platform" in 330case "$platform" in
324pseries|chrp) 331pseries|chrp|maple)
325 $objbin/addnote "$ofile" 332 $objbin/addnote "$ofile"
326 ;; 333 ;;
327coff) 334coff)
diff --git a/arch/powerpc/configs/40x/acadia_defconfig b/arch/powerpc/configs/40x/acadia_defconfig
index 8e95f8d227b9..4aa17b676a3f 100644
--- a/arch/powerpc/configs/40x/acadia_defconfig
+++ b/arch/powerpc/configs/40x/acadia_defconfig
@@ -98,8 +98,7 @@ CONFIG_GROUP_SCHED=y
98CONFIG_USER_SCHED=y 98CONFIG_USER_SCHED=y
99# CONFIG_CGROUP_SCHED is not set 99# CONFIG_CGROUP_SCHED is not set
100# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
101CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
102CONFIG_SYSFS_DEPRECATED_V2=y
103# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
104# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
105CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/40x/ep405_defconfig b/arch/powerpc/configs/40x/ep405_defconfig
index 918f23fd2b18..9a5f1ab777ed 100644
--- a/arch/powerpc/configs/40x/ep405_defconfig
+++ b/arch/powerpc/configs/40x/ep405_defconfig
@@ -98,8 +98,7 @@ CONFIG_FAIR_GROUP_SCHED=y
98CONFIG_USER_SCHED=y 98CONFIG_USER_SCHED=y
99# CONFIG_CGROUP_SCHED is not set 99# CONFIG_CGROUP_SCHED is not set
100# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
101CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
102CONFIG_SYSFS_DEPRECATED_V2=y
103# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
104# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
105CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/40x/hcu4_defconfig b/arch/powerpc/configs/40x/hcu4_defconfig
index f87ef0382280..0b452135d1d4 100644
--- a/arch/powerpc/configs/40x/hcu4_defconfig
+++ b/arch/powerpc/configs/40x/hcu4_defconfig
@@ -98,8 +98,7 @@ CONFIG_FAIR_GROUP_SCHED=y
98CONFIG_USER_SCHED=y 98CONFIG_USER_SCHED=y
99# CONFIG_CGROUP_SCHED is not set 99# CONFIG_CGROUP_SCHED is not set
100# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
101CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
102CONFIG_SYSFS_DEPRECATED_V2=y
103# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
104# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
105CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/40x/kilauea_defconfig b/arch/powerpc/configs/40x/kilauea_defconfig
index 19fbcb075376..4d2de0bed60e 100644
--- a/arch/powerpc/configs/40x/kilauea_defconfig
+++ b/arch/powerpc/configs/40x/kilauea_defconfig
@@ -98,8 +98,7 @@ CONFIG_GROUP_SCHED=y
98CONFIG_USER_SCHED=y 98CONFIG_USER_SCHED=y
99# CONFIG_CGROUP_SCHED is not set 99# CONFIG_CGROUP_SCHED is not set
100# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
101CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
102CONFIG_SYSFS_DEPRECATED_V2=y
103# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
104# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
105CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/40x/makalu_defconfig b/arch/powerpc/configs/40x/makalu_defconfig
index eb41cd695979..a1f3f505e4a7 100644
--- a/arch/powerpc/configs/40x/makalu_defconfig
+++ b/arch/powerpc/configs/40x/makalu_defconfig
@@ -98,8 +98,7 @@ CONFIG_GROUP_SCHED=y
98CONFIG_USER_SCHED=y 98CONFIG_USER_SCHED=y
99# CONFIG_CGROUP_SCHED is not set 99# CONFIG_CGROUP_SCHED is not set
100# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
101CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
102CONFIG_SYSFS_DEPRECATED_V2=y
103# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
104# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
105CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/40x/virtex_defconfig b/arch/powerpc/configs/40x/virtex_defconfig
index 416e79ac0711..c76313577140 100644
--- a/arch/powerpc/configs/40x/virtex_defconfig
+++ b/arch/powerpc/configs/40x/virtex_defconfig
@@ -77,8 +77,7 @@ CONFIG_IKCONFIG_PROC=y
77CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_GROUP_SCHED is not set 78# CONFIG_GROUP_SCHED is not set
79# CONFIG_CGROUPS is not set 79# CONFIG_CGROUPS is not set
80CONFIG_SYSFS_DEPRECATED=y 80# CONFIG_SYSFS_DEPRECATED_V2 is not set
81CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
83CONFIG_NAMESPACES=y 82CONFIG_NAMESPACES=y
84# CONFIG_UTS_NS is not set 83# CONFIG_UTS_NS is not set
diff --git a/arch/powerpc/configs/40x/walnut_defconfig b/arch/powerpc/configs/40x/walnut_defconfig
index bfff0eae39d2..6597b2f1d1a8 100644
--- a/arch/powerpc/configs/40x/walnut_defconfig
+++ b/arch/powerpc/configs/40x/walnut_defconfig
@@ -98,8 +98,7 @@ CONFIG_FAIR_GROUP_SCHED=y
98CONFIG_USER_SCHED=y 98CONFIG_USER_SCHED=y
99# CONFIG_CGROUP_SCHED is not set 99# CONFIG_CGROUP_SCHED is not set
100# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
101CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
102CONFIG_SYSFS_DEPRECATED_V2=y
103# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
104# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
105CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/44x/arches_defconfig b/arch/powerpc/configs/44x/arches_defconfig
index 1f6d0490e28d..2d3dfb55fbed 100644
--- a/arch/powerpc/configs/44x/arches_defconfig
+++ b/arch/powerpc/configs/44x/arches_defconfig
@@ -98,8 +98,7 @@ CONFIG_RCU_FANOUT=32
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99# CONFIG_GROUP_SCHED is not set 99# CONFIG_GROUP_SCHED is not set
100# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
101CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
102CONFIG_SYSFS_DEPRECATED_V2=y
103# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
104# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
105CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/44x/bamboo_defconfig b/arch/powerpc/configs/44x/bamboo_defconfig
index 788faac6c27a..51a00c46df19 100644
--- a/arch/powerpc/configs/44x/bamboo_defconfig
+++ b/arch/powerpc/configs/44x/bamboo_defconfig
@@ -102,8 +102,7 @@ CONFIG_FAIR_GROUP_SCHED=y
102CONFIG_USER_SCHED=y 102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set 103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 104# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 105# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 106# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 107# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 108CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/44x/canyonlands_defconfig b/arch/powerpc/configs/44x/canyonlands_defconfig
index 4ef8bcab61f8..1028b1bfb602 100644
--- a/arch/powerpc/configs/44x/canyonlands_defconfig
+++ b/arch/powerpc/configs/44x/canyonlands_defconfig
@@ -98,8 +98,7 @@ CONFIG_RCU_FANOUT=32
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99# CONFIG_GROUP_SCHED is not set 99# CONFIG_GROUP_SCHED is not set
100# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
101CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
102CONFIG_SYSFS_DEPRECATED_V2=y
103# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
104# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
105CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/44x/ebony_defconfig b/arch/powerpc/configs/44x/ebony_defconfig
index ca17b1496e32..69f5633cbd4f 100644
--- a/arch/powerpc/configs/44x/ebony_defconfig
+++ b/arch/powerpc/configs/44x/ebony_defconfig
@@ -101,8 +101,7 @@ CONFIG_FAIR_GROUP_SCHED=y
101CONFIG_USER_SCHED=y 101CONFIG_USER_SCHED=y
102# CONFIG_CGROUP_SCHED is not set 102# CONFIG_CGROUP_SCHED is not set
103# CONFIG_CGROUPS is not set 103# CONFIG_CGROUPS is not set
104CONFIG_SYSFS_DEPRECATED=y 104# CONFIG_SYSFS_DEPRECATED_V2 is not set
105CONFIG_SYSFS_DEPRECATED_V2=y
106# CONFIG_RELAY is not set 105# CONFIG_RELAY is not set
107# CONFIG_NAMESPACES is not set 106# CONFIG_NAMESPACES is not set
108CONFIG_BLK_DEV_INITRD=y 107CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/44x/eiger_defconfig b/arch/powerpc/configs/44x/eiger_defconfig
index e3149bade0b2..dcd859c8b4a6 100644
--- a/arch/powerpc/configs/44x/eiger_defconfig
+++ b/arch/powerpc/configs/44x/eiger_defconfig
@@ -98,8 +98,7 @@ CONFIG_RCU_FANOUT=32
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99# CONFIG_GROUP_SCHED is not set 99# CONFIG_GROUP_SCHED is not set
100# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
101CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
102CONFIG_SYSFS_DEPRECATED_V2=y
103# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
104# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
105CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/44x/icon_defconfig b/arch/powerpc/configs/44x/icon_defconfig
new file mode 100644
index 000000000000..277f88c2750f
--- /dev/null
+++ b/arch/powerpc/configs/44x/icon_defconfig
@@ -0,0 +1,1451 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.34-rc7
4# Fri May 21 17:40:22 2010
5#
6# CONFIG_PPC64 is not set
7
8#
9# Processor support
10#
11# CONFIG_PPC_BOOK3S_32 is not set
12# CONFIG_PPC_85xx is not set
13# CONFIG_PPC_8xx is not set
14# CONFIG_40x is not set
15CONFIG_44x=y
16# CONFIG_E200 is not set
17CONFIG_4xx=y
18CONFIG_BOOKE=y
19CONFIG_PTE_64BIT=y
20CONFIG_PHYS_64BIT=y
21CONFIG_PPC_MMU_NOHASH=y
22CONFIG_PPC_MMU_NOHASH_32=y
23# CONFIG_PPC_MM_SLICES is not set
24CONFIG_NOT_COHERENT_CACHE=y
25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32
27CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
28CONFIG_MMU=y
29CONFIG_GENERIC_CMOS_UPDATE=y
30CONFIG_GENERIC_TIME=y
31CONFIG_GENERIC_TIME_VSYSCALL=y
32CONFIG_GENERIC_CLOCKEVENTS=y
33CONFIG_GENERIC_HARDIRQS=y
34CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
35# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
36# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set
37CONFIG_IRQ_PER_CPU=y
38CONFIG_NR_IRQS=512
39CONFIG_STACKTRACE_SUPPORT=y
40CONFIG_HAVE_LATENCYTOP_SUPPORT=y
41CONFIG_TRACE_IRQFLAGS_SUPPORT=y
42CONFIG_LOCKDEP_SUPPORT=y
43CONFIG_RWSEM_XCHGADD_ALGORITHM=y
44CONFIG_ARCH_HAS_ILOG2_U32=y
45CONFIG_GENERIC_HWEIGHT=y
46CONFIG_GENERIC_FIND_NEXT_BIT=y
47# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
48CONFIG_PPC=y
49CONFIG_EARLY_PRINTK=y
50CONFIG_GENERIC_NVRAM=y
51CONFIG_SCHED_OMIT_FRAME_POINTER=y
52CONFIG_ARCH_MAY_HAVE_PC_FDC=y
53CONFIG_PPC_OF=y
54CONFIG_OF=y
55CONFIG_PPC_UDBG_16550=y
56# CONFIG_GENERIC_TBSYNC is not set
57CONFIG_AUDIT_ARCH=y
58CONFIG_GENERIC_BUG=y
59CONFIG_DTC=y
60# CONFIG_DEFAULT_UIMAGE is not set
61CONFIG_ARCH_HIBERNATION_POSSIBLE=y
62CONFIG_PPC_DCR_NATIVE=y
63# CONFIG_PPC_DCR_MMIO is not set
64CONFIG_PPC_DCR=y
65CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
66CONFIG_PPC_ADV_DEBUG_REGS=y
67CONFIG_PPC_ADV_DEBUG_IACS=4
68CONFIG_PPC_ADV_DEBUG_DACS=2
69CONFIG_PPC_ADV_DEBUG_DVCS=2
70CONFIG_PPC_ADV_DEBUG_DAC_RANGE=y
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y
73
74#
75# General setup
76#
77CONFIG_EXPERIMENTAL=y
78CONFIG_BROKEN_ON_SMP=y
79CONFIG_INIT_ENV_ARG_LIMIT=32
80CONFIG_LOCALVERSION=""
81CONFIG_LOCALVERSION_AUTO=y
82CONFIG_SWAP=y
83CONFIG_SYSVIPC=y
84CONFIG_SYSVIPC_SYSCTL=y
85CONFIG_POSIX_MQUEUE=y
86CONFIG_POSIX_MQUEUE_SYSCTL=y
87# CONFIG_BSD_PROCESS_ACCT is not set
88# CONFIG_TASKSTATS is not set
89# CONFIG_AUDIT is not set
90
91#
92# RCU Subsystem
93#
94CONFIG_TREE_RCU=y
95# CONFIG_TREE_PREEMPT_RCU is not set
96# CONFIG_TINY_RCU is not set
97# CONFIG_RCU_TRACE is not set
98CONFIG_RCU_FANOUT=32
99# CONFIG_RCU_FANOUT_EXACT is not set
100# CONFIG_TREE_RCU_TRACE is not set
101# CONFIG_IKCONFIG is not set
102CONFIG_LOG_BUF_SHIFT=14
103# CONFIG_CGROUPS is not set
104CONFIG_SYSFS_DEPRECATED=y
105CONFIG_SYSFS_DEPRECATED_V2=y
106# CONFIG_RELAY is not set
107# CONFIG_NAMESPACES is not set
108CONFIG_BLK_DEV_INITRD=y
109CONFIG_INITRAMFS_SOURCE=""
110CONFIG_RD_GZIP=y
111# CONFIG_RD_BZIP2 is not set
112# CONFIG_RD_LZMA is not set
113# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y
117CONFIG_EMBEDDED=y
118CONFIG_SYSCTL_SYSCALL=y
119CONFIG_KALLSYMS=y
120# CONFIG_KALLSYMS_ALL is not set
121# CONFIG_KALLSYMS_EXTRA_PASS is not set
122CONFIG_HOTPLUG=y
123CONFIG_PRINTK=y
124# CONFIG_LOGBUFFER is not set
125CONFIG_BUG=y
126CONFIG_ELF_CORE=y
127CONFIG_BASE_FULL=y
128CONFIG_FUTEX=y
129CONFIG_EPOLL=y
130CONFIG_SIGNALFD=y
131CONFIG_TIMERFD=y
132CONFIG_EVENTFD=y
133CONFIG_SHMEM=y
134CONFIG_AIO=y
135CONFIG_HAVE_PERF_EVENTS=y
136
137#
138# Kernel Performance Events And Counters
139#
140# CONFIG_PERF_EVENTS is not set
141# CONFIG_PERF_COUNTERS is not set
142CONFIG_VM_EVENT_COUNTERS=y
143CONFIG_PCI_QUIRKS=y
144CONFIG_SLUB_DEBUG=y
145CONFIG_COMPAT_BRK=y
146# CONFIG_SLAB is not set
147CONFIG_SLUB=y
148# CONFIG_SLOB is not set
149# CONFIG_PROFILING is not set
150CONFIG_HAVE_OPROFILE=y
151# CONFIG_KPROBES is not set
152CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
153CONFIG_HAVE_IOREMAP_PROT=y
154CONFIG_HAVE_KPROBES=y
155CONFIG_HAVE_KRETPROBES=y
156CONFIG_HAVE_ARCH_TRACEHOOK=y
157CONFIG_HAVE_DMA_ATTRS=y
158CONFIG_HAVE_DMA_API_DEBUG=y
159
160#
161# GCOV-based kernel profiling
162#
163# CONFIG_SLOW_WORK is not set
164# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
165CONFIG_SLABINFO=y
166CONFIG_RT_MUTEXES=y
167CONFIG_BASE_SMALL=0
168CONFIG_MODULES=y
169# CONFIG_MODULE_FORCE_LOAD is not set
170CONFIG_MODULE_UNLOAD=y
171# CONFIG_MODULE_FORCE_UNLOAD is not set
172# CONFIG_MODVERSIONS is not set
173# CONFIG_MODULE_SRCVERSION_ALL is not set
174CONFIG_BLOCK=y
175CONFIG_LBDAF=y
176# CONFIG_BLK_DEV_BSG is not set
177# CONFIG_BLK_DEV_INTEGRITY is not set
178
179#
180# IO Schedulers
181#
182CONFIG_IOSCHED_NOOP=y
183CONFIG_IOSCHED_DEADLINE=y
184CONFIG_IOSCHED_CFQ=y
185# CONFIG_DEFAULT_DEADLINE is not set
186CONFIG_DEFAULT_CFQ=y
187# CONFIG_DEFAULT_NOOP is not set
188CONFIG_DEFAULT_IOSCHED="cfq"
189# CONFIG_INLINE_SPIN_TRYLOCK is not set
190# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
191# CONFIG_INLINE_SPIN_LOCK is not set
192# CONFIG_INLINE_SPIN_LOCK_BH is not set
193# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
194# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
195CONFIG_INLINE_SPIN_UNLOCK=y
196# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
197CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
198# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
199# CONFIG_INLINE_READ_TRYLOCK is not set
200# CONFIG_INLINE_READ_LOCK is not set
201# CONFIG_INLINE_READ_LOCK_BH is not set
202# CONFIG_INLINE_READ_LOCK_IRQ is not set
203# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
204CONFIG_INLINE_READ_UNLOCK=y
205# CONFIG_INLINE_READ_UNLOCK_BH is not set
206CONFIG_INLINE_READ_UNLOCK_IRQ=y
207# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
208# CONFIG_INLINE_WRITE_TRYLOCK is not set
209# CONFIG_INLINE_WRITE_LOCK is not set
210# CONFIG_INLINE_WRITE_LOCK_BH is not set
211# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
212# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
213CONFIG_INLINE_WRITE_UNLOCK=y
214# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
215CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
216# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
217# CONFIG_MUTEX_SPIN_ON_OWNER is not set
218# CONFIG_FREEZER is not set
219CONFIG_PPC4xx_PCI_EXPRESS=y
220
221#
222# Platform support
223#
224# CONFIG_PPC_CELL is not set
225# CONFIG_PPC_CELL_NATIVE is not set
226# CONFIG_PQ2ADS is not set
227# CONFIG_BAMBOO is not set
228# CONFIG_EBONY is not set
229# CONFIG_SAM440EP is not set
230# CONFIG_SEQUOIA is not set
231# CONFIG_TAISHAN is not set
232# CONFIG_KATMAI is not set
233# CONFIG_RAINIER is not set
234# CONFIG_WARP is not set
235# CONFIG_ARCHES is not set
236# CONFIG_CANYONLANDS is not set
237# CONFIG_GLACIER is not set
238# CONFIG_REDWOOD is not set
239# CONFIG_EIGER is not set
240# CONFIG_YOSEMITE is not set
241CONFIG_ICON=y
242# CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set
243CONFIG_PPC44x_SIMPLE=y
244# CONFIG_PPC4xx_GPIO is not set
245CONFIG_440SPe=y
246CONFIG_STDBINUTILS=y
247# CONFIG_IPIC is not set
248# CONFIG_MPIC is not set
249# CONFIG_MPIC_WEIRD is not set
250# CONFIG_PPC_I8259 is not set
251# CONFIG_PPC_RTAS is not set
252# CONFIG_MMIO_NVRAM is not set
253# CONFIG_PPC_MPC106 is not set
254# CONFIG_PPC_970_NAP is not set
255# CONFIG_PPC_INDIRECT_IO is not set
256# CONFIG_GENERIC_IOMAP is not set
257# CONFIG_CPU_FREQ is not set
258# CONFIG_FSL_ULI1575 is not set
259# CONFIG_SIMPLE_GPIO is not set
260
261#
262# Kernel options
263#
264CONFIG_HIGHMEM=y
265# CONFIG_NO_HZ is not set
266# CONFIG_HIGH_RES_TIMERS is not set
267CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
268# CONFIG_HZ_100 is not set
269CONFIG_HZ_250=y
270# CONFIG_HZ_300 is not set
271# CONFIG_HZ_1000 is not set
272CONFIG_HZ=250
273# CONFIG_SCHED_HRTICK is not set
274CONFIG_PREEMPT_NONE=y
275# CONFIG_PREEMPT_VOLUNTARY is not set
276# CONFIG_PREEMPT is not set
277CONFIG_BINFMT_ELF=y
278# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
279# CONFIG_HAVE_AOUT is not set
280# CONFIG_BINFMT_MISC is not set
281# CONFIG_MATH_EMULATION is not set
282# CONFIG_IOMMU_HELPER is not set
283# CONFIG_SWIOTLB is not set
284CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
285CONFIG_ARCH_HAS_WALK_MEMORY=y
286CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
287CONFIG_SPARSE_IRQ=y
288CONFIG_MAX_ACTIVE_REGIONS=32
289CONFIG_ARCH_FLATMEM_ENABLE=y
290CONFIG_ARCH_POPULATES_NODE_MAP=y
291CONFIG_SELECT_MEMORY_MODEL=y
292CONFIG_FLATMEM_MANUAL=y
293# CONFIG_DISCONTIGMEM_MANUAL is not set
294# CONFIG_SPARSEMEM_MANUAL is not set
295CONFIG_FLATMEM=y
296CONFIG_FLAT_NODE_MEM_MAP=y
297CONFIG_PAGEFLAGS_EXTENDED=y
298CONFIG_SPLIT_PTLOCK_CPUS=4
299CONFIG_MIGRATION=y
300CONFIG_PHYS_ADDR_T_64BIT=y
301CONFIG_ZONE_DMA_FLAG=1
302CONFIG_BOUNCE=y
303CONFIG_VIRT_TO_BUS=y
304# CONFIG_KSM is not set
305CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
306CONFIG_PPC_4K_PAGES=y
307# CONFIG_PPC_16K_PAGES is not set
308# CONFIG_PPC_64K_PAGES is not set
309# CONFIG_PPC_256K_PAGES is not set
310CONFIG_FORCE_MAX_ZONEORDER=11
311CONFIG_PROC_DEVICETREE=y
312CONFIG_CMDLINE_BOOL=y
313CONFIG_CMDLINE=""
314CONFIG_EXTRA_TARGETS=""
315# CONFIG_ARCH_HAS_NMI_WATCHDOG is not set
316CONFIG_SECCOMP=y
317CONFIG_ISA_DMA_API=y
318
319#
320# Bus options
321#
322CONFIG_ZONE_DMA=y
323CONFIG_NEED_DMA_MAP_STATE=y
324CONFIG_PPC_INDIRECT_PCI=y
325CONFIG_4xx_SOC=y
326CONFIG_PPC_PCI_CHOICE=y
327CONFIG_PCI=y
328CONFIG_PCI_DOMAINS=y
329CONFIG_PCI_SYSCALL=y
330CONFIG_PCIEPORTBUS=y
331CONFIG_PCIEAER=y
332# CONFIG_PCIE_ECRC is not set
333# CONFIG_PCIEAER_INJECT is not set
334# CONFIG_PCIEASPM is not set
335CONFIG_ARCH_SUPPORTS_MSI=y
336# CONFIG_PCI_MSI is not set
337# CONFIG_PCI_DEBUG is not set
338# CONFIG_PCI_STUB is not set
339# CONFIG_PCI_IOV is not set
340# CONFIG_PCCARD is not set
341# CONFIG_HOTPLUG_PCI is not set
342# CONFIG_HAS_RAPIDIO is not set
343
344#
345# Advanced setup
346#
347# CONFIG_ADVANCED_OPTIONS is not set
348
349#
350# Default settings for advanced configuration options are used
351#
352CONFIG_LOWMEM_SIZE=0x30000000
353CONFIG_PAGE_OFFSET=0xc0000000
354CONFIG_KERNEL_START=0xc0000000
355CONFIG_PHYSICAL_START=0x00000000
356CONFIG_TASK_SIZE=0xc0000000
357CONFIG_CONSISTENT_SIZE=0x00200000
358CONFIG_NET=y
359
360#
361# Networking options
362#
363CONFIG_PACKET=y
364CONFIG_UNIX=y
365# CONFIG_NET_KEY is not set
366CONFIG_INET=y
367# CONFIG_IP_MULTICAST is not set
368# CONFIG_IP_ADVANCED_ROUTER is not set
369CONFIG_IP_FIB_HASH=y
370CONFIG_IP_PNP=y
371CONFIG_IP_PNP_DHCP=y
372CONFIG_IP_PNP_BOOTP=y
373# CONFIG_IP_PNP_RARP is not set
374# CONFIG_NET_IPIP is not set
375# CONFIG_NET_IPGRE is not set
376# CONFIG_ARPD is not set
377# CONFIG_SYN_COOKIES is not set
378# CONFIG_INET_AH is not set
379# CONFIG_INET_ESP is not set
380# CONFIG_INET_IPCOMP is not set
381# CONFIG_INET_XFRM_TUNNEL is not set
382# CONFIG_INET_TUNNEL is not set
383# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
384# CONFIG_INET_XFRM_MODE_TUNNEL is not set
385# CONFIG_INET_XFRM_MODE_BEET is not set
386# CONFIG_INET_LRO is not set
387CONFIG_INET_DIAG=y
388CONFIG_INET_TCP_DIAG=y
389# CONFIG_TCP_CONG_ADVANCED is not set
390CONFIG_TCP_CONG_CUBIC=y
391CONFIG_DEFAULT_TCP_CONG="cubic"
392# CONFIG_TCP_MD5SIG is not set
393# CONFIG_IPV6 is not set
394# CONFIG_NETWORK_SECMARK is not set
395# CONFIG_NETFILTER is not set
396# CONFIG_IP_DCCP is not set
397# CONFIG_IP_SCTP is not set
398# CONFIG_RDS is not set
399# CONFIG_TIPC is not set
400# CONFIG_ATM is not set
401# CONFIG_BRIDGE is not set
402# CONFIG_NET_DSA is not set
403# CONFIG_VLAN_8021Q is not set
404# CONFIG_DECNET is not set
405# CONFIG_LLC2 is not set
406# CONFIG_IPX is not set
407# CONFIG_ATALK is not set
408# CONFIG_X25 is not set
409# CONFIG_LAPB is not set
410# CONFIG_ECONET is not set
411# CONFIG_WAN_ROUTER is not set
412# CONFIG_PHONET is not set
413# CONFIG_IEEE802154 is not set
414# CONFIG_NET_SCHED is not set
415# CONFIG_DCB is not set
416
417#
418# Network testing
419#
420# CONFIG_NET_PKTGEN is not set
421# CONFIG_HAMRADIO is not set
422# CONFIG_CAN is not set
423# CONFIG_IRDA is not set
424# CONFIG_BT is not set
425# CONFIG_AF_RXRPC is not set
426CONFIG_WIRELESS=y
427# CONFIG_CFG80211 is not set
428# CONFIG_LIB80211 is not set
429
430#
431# CFG80211 needs to be enabled for MAC80211
432#
433# CONFIG_WIMAX is not set
434# CONFIG_RFKILL is not set
435# CONFIG_NET_9P is not set
436
437#
438# Device Drivers
439#
440
441#
442# Generic Driver Options
443#
444CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
445# CONFIG_DEVTMPFS is not set
446CONFIG_STANDALONE=y
447CONFIG_PREVENT_FIRMWARE_BUILD=y
448CONFIG_FW_LOADER=y
449CONFIG_FIRMWARE_IN_KERNEL=y
450CONFIG_EXTRA_FIRMWARE=""
451# CONFIG_DEBUG_DRIVER is not set
452# CONFIG_DEBUG_DEVRES is not set
453# CONFIG_SYS_HYPERVISOR is not set
454CONFIG_CONNECTOR=y
455CONFIG_PROC_EVENTS=y
456CONFIG_MTD=y
457# CONFIG_MTD_DEBUG is not set
458# CONFIG_MTD_TESTS is not set
459# CONFIG_MTD_CONCAT is not set
460CONFIG_MTD_PARTITIONS=y
461# CONFIG_MTD_REDBOOT_PARTS is not set
462CONFIG_MTD_CMDLINE_PARTS=y
463CONFIG_MTD_OF_PARTS=y
464# CONFIG_MTD_AR7_PARTS is not set
465
466#
467# User Modules And Translation Layers
468#
469CONFIG_MTD_CHAR=y
470CONFIG_MTD_BLKDEVS=y
471CONFIG_MTD_BLOCK=y
472# CONFIG_FTL is not set
473# CONFIG_NFTL is not set
474# CONFIG_INFTL is not set
475# CONFIG_RFD_FTL is not set
476# CONFIG_SSFDC is not set
477# CONFIG_MTD_OOPS is not set
478
479#
480# RAM/ROM/Flash chip drivers
481#
482CONFIG_MTD_CFI=y
483# CONFIG_MTD_JEDECPROBE is not set
484CONFIG_MTD_GEN_PROBE=y
485# CONFIG_MTD_CFI_ADV_OPTIONS is not set
486CONFIG_MTD_MAP_BANK_WIDTH_1=y
487CONFIG_MTD_MAP_BANK_WIDTH_2=y
488CONFIG_MTD_MAP_BANK_WIDTH_4=y
489# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
490# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
491# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
492CONFIG_MTD_CFI_I1=y
493CONFIG_MTD_CFI_I2=y
494# CONFIG_MTD_CFI_I4 is not set
495# CONFIG_MTD_CFI_I8 is not set
496# CONFIG_MTD_CFI_INTELEXT is not set
497CONFIG_MTD_CFI_AMDSTD=y
498# CONFIG_MTD_CFI_STAA is not set
499CONFIG_MTD_CFI_UTIL=y
500# CONFIG_MTD_RAM is not set
501# CONFIG_MTD_ROM is not set
502# CONFIG_MTD_ABSENT is not set
503
504#
505# Mapping drivers for chip access
506#
507# CONFIG_MTD_COMPLEX_MAPPINGS is not set
508# CONFIG_MTD_PHYSMAP is not set
509CONFIG_MTD_PHYSMAP_OF=y
510# CONFIG_MTD_INTEL_VR_NOR is not set
511# CONFIG_MTD_PLATRAM is not set
512
513#
514# Self-contained MTD device drivers
515#
516# CONFIG_MTD_PMC551 is not set
517# CONFIG_MTD_SLRAM is not set
518# CONFIG_MTD_PHRAM is not set
519# CONFIG_MTD_MTDRAM is not set
520# CONFIG_MTD_BLOCK2MTD is not set
521
522#
523# Disk-On-Chip Device Drivers
524#
525# CONFIG_MTD_DOC2000 is not set
526# CONFIG_MTD_DOC2001 is not set
527# CONFIG_MTD_DOC2001PLUS is not set
528# CONFIG_MTD_NAND is not set
529# CONFIG_MTD_ONENAND is not set
530
531#
532# LPDDR flash memory drivers
533#
534# CONFIG_MTD_LPDDR is not set
535
536#
537# UBI - Unsorted block images
538#
539# CONFIG_MTD_UBI is not set
540CONFIG_OF_FLATTREE=y
541CONFIG_OF_DYNAMIC=y
542CONFIG_OF_DEVICE=y
543CONFIG_OF_I2C=y
544# CONFIG_PARPORT is not set
545CONFIG_BLK_DEV=y
546# CONFIG_BLK_DEV_FD is not set
547# CONFIG_BLK_CPQ_DA is not set
548# CONFIG_BLK_CPQ_CISS_DA is not set
549# CONFIG_BLK_DEV_DAC960 is not set
550# CONFIG_BLK_DEV_UMEM is not set
551# CONFIG_BLK_DEV_COW_COMMON is not set
552# CONFIG_BLK_DEV_LOOP is not set
553# CONFIG_BLK_DEV_DRBD is not set
554# CONFIG_BLK_DEV_NBD is not set
555# CONFIG_BLK_DEV_SX8 is not set
556CONFIG_BLK_DEV_RAM=y
557CONFIG_BLK_DEV_RAM_COUNT=16
558CONFIG_BLK_DEV_RAM_SIZE=35000
559# CONFIG_BLK_DEV_XIP is not set
560# CONFIG_CDROM_PKTCDVD is not set
561# CONFIG_ATA_OVER_ETH is not set
562CONFIG_XILINX_SYSACE=y
563# CONFIG_BLK_DEV_HD is not set
564# CONFIG_MISC_DEVICES is not set
565CONFIG_HAVE_IDE=y
566# CONFIG_IDE is not set
567
568#
569# SCSI device support
570#
571CONFIG_SCSI_MOD=y
572# CONFIG_RAID_ATTRS is not set
573CONFIG_SCSI=y
574CONFIG_SCSI_DMA=y
575# CONFIG_SCSI_TGT is not set
576# CONFIG_SCSI_NETLINK is not set
577CONFIG_SCSI_PROC_FS=y
578
579#
580# SCSI support type (disk, tape, CD-ROM)
581#
582CONFIG_BLK_DEV_SD=y
583# CONFIG_CHR_DEV_ST is not set
584# CONFIG_CHR_DEV_OSST is not set
585# CONFIG_BLK_DEV_SR is not set
586# CONFIG_CHR_DEV_SG is not set
587# CONFIG_CHR_DEV_SCH is not set
588# CONFIG_SCSI_MULTI_LUN is not set
589CONFIG_SCSI_CONSTANTS=y
590CONFIG_SCSI_LOGGING=y
591# CONFIG_SCSI_SCAN_ASYNC is not set
592CONFIG_SCSI_WAIT_SCAN=m
593
594#
595# SCSI Transports
596#
597# CONFIG_SCSI_SPI_ATTRS is not set
598# CONFIG_SCSI_FC_ATTRS is not set
599# CONFIG_SCSI_ISCSI_ATTRS is not set
600CONFIG_SCSI_SAS_ATTRS=y
601# CONFIG_SCSI_SAS_LIBSAS is not set
602# CONFIG_SCSI_SRP_ATTRS is not set
603# CONFIG_SCSI_LOWLEVEL is not set
604# CONFIG_SCSI_DH is not set
605# CONFIG_SCSI_OSD_INITIATOR is not set
606# CONFIG_ATA is not set
607# CONFIG_MD is not set
608CONFIG_FUSION=y
609# CONFIG_FUSION_SPI is not set
610# CONFIG_FUSION_FC is not set
611CONFIG_FUSION_SAS=y
612CONFIG_FUSION_MAX_SGE=128
613CONFIG_FUSION_CTL=y
614CONFIG_FUSION_LOGGING=y
615
616#
617# IEEE 1394 (FireWire) support
618#
619
620#
621# You can enable one or both FireWire driver stacks.
622#
623
624#
625# The newer stack is recommended.
626#
627# CONFIG_FIREWIRE is not set
628# CONFIG_IEEE1394 is not set
629# CONFIG_I2O is not set
630# CONFIG_MACINTOSH_DRIVERS is not set
631CONFIG_NETDEVICES=y
632# CONFIG_DUMMY is not set
633# CONFIG_BONDING is not set
634# CONFIG_MACVLAN is not set
635# CONFIG_EQUALIZER is not set
636# CONFIG_TUN is not set
637# CONFIG_VETH is not set
638# CONFIG_ARCNET is not set
639# CONFIG_PHYLIB is not set
640CONFIG_NET_ETHERNET=y
641# CONFIG_MII is not set
642# CONFIG_HAPPYMEAL is not set
643# CONFIG_SUNGEM is not set
644# CONFIG_CASSINI is not set
645# CONFIG_NET_VENDOR_3COM is not set
646# CONFIG_ETHOC is not set
647# CONFIG_DNET is not set
648# CONFIG_NET_TULIP is not set
649# CONFIG_HP100 is not set
650CONFIG_IBM_NEW_EMAC=y
651CONFIG_IBM_NEW_EMAC_RXB=128
652CONFIG_IBM_NEW_EMAC_TXB=64
653CONFIG_IBM_NEW_EMAC_POLL_WEIGHT=32
654CONFIG_IBM_NEW_EMAC_RX_COPY_THRESHOLD=256
655CONFIG_IBM_NEW_EMAC_RX_SKB_HEADROOM=0
656# CONFIG_IBM_NEW_EMAC_DEBUG is not set
657# CONFIG_IBM_NEW_EMAC_ZMII is not set
658# CONFIG_IBM_NEW_EMAC_RGMII is not set
659# CONFIG_IBM_NEW_EMAC_TAH is not set
660CONFIG_IBM_NEW_EMAC_EMAC4=y
661# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
662# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
663# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
664# CONFIG_NET_PCI is not set
665# CONFIG_B44 is not set
666# CONFIG_KS8842 is not set
667# CONFIG_KS8851_MLL is not set
668# CONFIG_ATL2 is not set
669# CONFIG_XILINX_EMACLITE is not set
670# CONFIG_NETDEV_1000 is not set
671# CONFIG_NETDEV_10000 is not set
672# CONFIG_TR is not set
673# CONFIG_WLAN is not set
674
675#
676# Enable WiMAX (Networking options) to see the WiMAX drivers
677#
678# CONFIG_WAN is not set
679# CONFIG_FDDI is not set
680# CONFIG_HIPPI is not set
681# CONFIG_PPP is not set
682# CONFIG_SLIP is not set
683# CONFIG_NET_FC is not set
684# CONFIG_NETCONSOLE is not set
685# CONFIG_NETPOLL is not set
686# CONFIG_NET_POLL_CONTROLLER is not set
687# CONFIG_VMXNET3 is not set
688# CONFIG_ISDN is not set
689# CONFIG_PHONE is not set
690
691#
692# Input device support
693#
694CONFIG_INPUT=y
695# CONFIG_INPUT_FF_MEMLESS is not set
696# CONFIG_INPUT_POLLDEV is not set
697# CONFIG_INPUT_SPARSEKMAP is not set
698
699#
700# Userland interfaces
701#
702CONFIG_INPUT_MOUSEDEV=y
703CONFIG_INPUT_MOUSEDEV_PSAUX=y
704CONFIG_INPUT_MOUSEDEV_SCREEN_X=640
705CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480
706# CONFIG_INPUT_JOYDEV is not set
707# CONFIG_INPUT_EVDEV is not set
708# CONFIG_INPUT_EVBUG is not set
709
710#
711# Input Device Drivers
712#
713CONFIG_INPUT_KEYBOARD=y
714# CONFIG_KEYBOARD_ADP5588 is not set
715CONFIG_KEYBOARD_ATKBD=y
716# CONFIG_QT2160 is not set
717# CONFIG_KEYBOARD_LKKBD is not set
718# CONFIG_KEYBOARD_MAX7359 is not set
719# CONFIG_KEYBOARD_NEWTON is not set
720# CONFIG_KEYBOARD_OPENCORES is not set
721# CONFIG_KEYBOARD_STOWAWAY is not set
722# CONFIG_KEYBOARD_SUNKBD is not set
723# CONFIG_KEYBOARD_XTKBD is not set
724CONFIG_INPUT_MOUSE=y
725CONFIG_MOUSE_PS2=y
726# CONFIG_MOUSE_PS2_ALPS is not set
727# CONFIG_MOUSE_PS2_LOGIPS2PP is not set
728# CONFIG_MOUSE_PS2_SYNAPTICS is not set
729# CONFIG_MOUSE_PS2_TRACKPOINT is not set
730# CONFIG_MOUSE_PS2_ELANTECH is not set
731# CONFIG_MOUSE_PS2_SENTELIC is not set
732# CONFIG_MOUSE_PS2_TOUCHKIT is not set
733# CONFIG_MOUSE_SERIAL is not set
734# CONFIG_MOUSE_VSXXXAA is not set
735# CONFIG_MOUSE_SYNAPTICS_I2C is not set
736# CONFIG_INPUT_JOYSTICK is not set
737# CONFIG_INPUT_TABLET is not set
738# CONFIG_INPUT_TOUCHSCREEN is not set
739# CONFIG_INPUT_MISC is not set
740
741#
742# Hardware I/O ports
743#
744CONFIG_SERIO=y
745CONFIG_SERIO_I8042=y
746CONFIG_SERIO_SERPORT=y
747# CONFIG_SERIO_PCIPS2 is not set
748CONFIG_SERIO_LIBPS2=y
749# CONFIG_SERIO_RAW is not set
750# CONFIG_SERIO_XILINX_XPS_PS2 is not set
751# CONFIG_SERIO_ALTERA_PS2 is not set
752# CONFIG_GAMEPORT is not set
753
754#
755# Character devices
756#
757CONFIG_VT=y
758CONFIG_CONSOLE_TRANSLATIONS=y
759CONFIG_VT_CONSOLE=y
760CONFIG_HW_CONSOLE=y
761# CONFIG_VT_HW_CONSOLE_BINDING is not set
762CONFIG_DEVKMEM=y
763# CONFIG_SERIAL_NONSTANDARD is not set
764# CONFIG_NOZOMI is not set
765
766#
767# Serial drivers
768#
769CONFIG_SERIAL_8250=y
770CONFIG_SERIAL_8250_CONSOLE=y
771# CONFIG_SERIAL_8250_PCI is not set
772CONFIG_SERIAL_8250_NR_UARTS=4
773CONFIG_SERIAL_8250_RUNTIME_UARTS=4
774CONFIG_SERIAL_8250_EXTENDED=y
775# CONFIG_SERIAL_8250_MANY_PORTS is not set
776CONFIG_SERIAL_8250_SHARE_IRQ=y
777# CONFIG_SERIAL_8250_DETECT_IRQ is not set
778# CONFIG_SERIAL_8250_RSA is not set
779
780#
781# Non-8250 serial port support
782#
783# CONFIG_SERIAL_UARTLITE is not set
784CONFIG_SERIAL_CORE=y
785CONFIG_SERIAL_CORE_CONSOLE=y
786# CONFIG_SERIAL_JSM is not set
787CONFIG_SERIAL_OF_PLATFORM=y
788# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
789# CONFIG_SERIAL_TIMBERDALE is not set
790# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
791CONFIG_UNIX98_PTYS=y
792# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
793CONFIG_LEGACY_PTYS=y
794CONFIG_LEGACY_PTY_COUNT=256
795# CONFIG_HVC_UDBG is not set
796# CONFIG_IPMI_HANDLER is not set
797# CONFIG_HW_RANDOM is not set
798# CONFIG_NVRAM is not set
799# CONFIG_R3964 is not set
800# CONFIG_APPLICOM is not set
801# CONFIG_RAW_DRIVER is not set
802# CONFIG_BOOTCOUNT is not set
803# CONFIG_DISPLAY_PDSP1880 is not set
804# CONFIG_MUCMC52_IO is not set
805# CONFIG_UC101_IO is not set
806# CONFIG_SRAM is not set
807# CONFIG_TCG_TPM is not set
808CONFIG_DEVPORT=y
809CONFIG_I2C=y
810CONFIG_I2C_BOARDINFO=y
811CONFIG_I2C_COMPAT=y
812CONFIG_I2C_CHARDEV=y
813CONFIG_I2C_HELPER_AUTO=y
814
815#
816# I2C Hardware Bus support
817#
818
819#
820# PC SMBus host controller drivers
821#
822# CONFIG_I2C_ALI1535 is not set
823# CONFIG_I2C_ALI1563 is not set
824# CONFIG_I2C_ALI15X3 is not set
825# CONFIG_I2C_AMD756 is not set
826# CONFIG_I2C_AMD8111 is not set
827# CONFIG_I2C_I801 is not set
828# CONFIG_I2C_ISCH is not set
829# CONFIG_I2C_PIIX4 is not set
830# CONFIG_I2C_NFORCE2 is not set
831# CONFIG_I2C_SIS5595 is not set
832# CONFIG_I2C_SIS630 is not set
833# CONFIG_I2C_SIS96X is not set
834# CONFIG_I2C_VIA is not set
835# CONFIG_I2C_VIAPRO is not set
836
837#
838# I2C system bus drivers (mostly embedded / system-on-chip)
839#
840CONFIG_I2C_IBM_IIC=y
841# CONFIG_I2C_MPC is not set
842# CONFIG_I2C_OCORES is not set
843# CONFIG_I2C_SIMTEC is not set
844# CONFIG_I2C_XILINX is not set
845
846#
847# External I2C/SMBus adapter drivers
848#
849# CONFIG_I2C_PARPORT_LIGHT is not set
850# CONFIG_I2C_TAOS_EVM is not set
851
852#
853# Other I2C/SMBus bus drivers
854#
855# CONFIG_I2C_PCA_PLATFORM is not set
856# CONFIG_I2C_STUB is not set
857# CONFIG_I2C_DEBUG_CORE is not set
858# CONFIG_I2C_DEBUG_ALGO is not set
859# CONFIG_I2C_DEBUG_BUS is not set
860# CONFIG_SPI is not set
861
862#
863# PPS support
864#
865# CONFIG_PPS is not set
866CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
867# CONFIG_GPIOLIB is not set
868# CONFIG_W1 is not set
869# CONFIG_POWER_SUPPLY is not set
870# CONFIG_HWMON is not set
871# CONFIG_THERMAL is not set
872# CONFIG_WATCHDOG is not set
873CONFIG_SSB_POSSIBLE=y
874
875#
876# Sonics Silicon Backplane
877#
878# CONFIG_SSB is not set
879
880#
881# Multifunction device drivers
882#
883# CONFIG_MFD_CORE is not set
884# CONFIG_MFD_88PM860X is not set
885CONFIG_MFD_SM501=y
886# CONFIG_HTC_PASIC3 is not set
887# CONFIG_TWL4030_CORE is not set
888# CONFIG_MFD_TMIO is not set
889# CONFIG_PMIC_DA903X is not set
890# CONFIG_PMIC_ADP5520 is not set
891# CONFIG_MFD_MAX8925 is not set
892# CONFIG_MFD_WM8400 is not set
893# CONFIG_MFD_WM831X is not set
894# CONFIG_MFD_WM8350_I2C is not set
895# CONFIG_MFD_WM8994 is not set
896# CONFIG_MFD_PCF50633 is not set
897# CONFIG_AB3100_CORE is not set
898# CONFIG_LPC_SCH is not set
899# CONFIG_REGULATOR is not set
900# CONFIG_MEDIA_SUPPORT is not set
901
902#
903# Graphics support
904#
905# CONFIG_AGP is not set
906CONFIG_VGA_ARB=y
907CONFIG_VGA_ARB_MAX_GPUS=16
908# CONFIG_DRM is not set
909# CONFIG_VGASTATE is not set
910CONFIG_VIDEO_OUTPUT_CONTROL=m
911CONFIG_FB=y
912# CONFIG_FIRMWARE_EDID is not set
913# CONFIG_FB_DDC is not set
914# CONFIG_FB_BOOT_VESA_SUPPORT is not set
915CONFIG_FB_CFB_FILLRECT=y
916CONFIG_FB_CFB_COPYAREA=y
917CONFIG_FB_CFB_IMAGEBLIT=y
918# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
919# CONFIG_FB_SYS_FILLRECT is not set
920# CONFIG_FB_SYS_COPYAREA is not set
921# CONFIG_FB_SYS_IMAGEBLIT is not set
922# CONFIG_FB_FOREIGN_ENDIAN is not set
923# CONFIG_FB_SYS_FOPS is not set
924# CONFIG_FB_SVGALIB is not set
925# CONFIG_FB_MACMODES is not set
926# CONFIG_FB_BACKLIGHT is not set
927# CONFIG_FB_MODE_HELPERS is not set
928# CONFIG_FB_TILEBLITTING is not set
929
930#
931# Frame buffer hardware drivers
932#
933# CONFIG_FB_CIRRUS is not set
934# CONFIG_FB_PM2 is not set
935# CONFIG_FB_CYBER2000 is not set
936# CONFIG_FB_OF is not set
937# CONFIG_FB_CT65550 is not set
938# CONFIG_FB_ASILIANT is not set
939# CONFIG_FB_IMSTT is not set
940# CONFIG_FB_VGA16 is not set
941# CONFIG_FB_UVESA is not set
942# CONFIG_FB_S1D13XXX is not set
943# CONFIG_FB_NVIDIA is not set
944# CONFIG_FB_RIVA is not set
945# CONFIG_FB_MATROX is not set
946# CONFIG_FB_RADEON is not set
947# CONFIG_FB_ATY128 is not set
948# CONFIG_FB_ATY is not set
949# CONFIG_FB_S3 is not set
950# CONFIG_FB_SAVAGE is not set
951# CONFIG_FB_SIS is not set
952# CONFIG_FB_VIA is not set
953# CONFIG_FB_NEOMAGIC is not set
954# CONFIG_FB_KYRO is not set
955# CONFIG_FB_3DFX is not set
956# CONFIG_FB_VOODOO1 is not set
957# CONFIG_FB_VT8623 is not set
958# CONFIG_FB_TRIDENT is not set
959# CONFIG_FB_ARK is not set
960# CONFIG_FB_PM3 is not set
961# CONFIG_FB_CARMINE is not set
962CONFIG_FB_SM501=y
963# CONFIG_FB_IBM_GXT4500 is not set
964# CONFIG_FB_VIRTUAL is not set
965# CONFIG_FB_METRONOME is not set
966# CONFIG_FB_MB862XX is not set
967# CONFIG_FB_BROADSHEET is not set
968# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
969
970#
971# Display device support
972#
973# CONFIG_DISPLAY_SUPPORT is not set
974
975#
976# Console display driver support
977#
978CONFIG_DUMMY_CONSOLE=y
979CONFIG_FRAMEBUFFER_CONSOLE=y
980# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
981# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
982# CONFIG_FONTS is not set
983CONFIG_FONT_8x8=y
984CONFIG_FONT_8x16=y
985CONFIG_LOGO=y
986# CONFIG_LOGO_LINUX_MONO is not set
987# CONFIG_LOGO_LINUX_VGA16 is not set
988CONFIG_LOGO_LINUX_CLUT224=y
989# CONFIG_SOUND is not set
990CONFIG_HID_SUPPORT=y
991CONFIG_HID=y
992# CONFIG_HIDRAW is not set
993# CONFIG_HID_PID is not set
994
995#
996# Special HID drivers
997#
998# CONFIG_USB_SUPPORT is not set
999# CONFIG_UWB is not set
1000# CONFIG_MMC is not set
1001# CONFIG_MEMSTICK is not set
1002# CONFIG_NEW_LEDS is not set
1003# CONFIG_ACCESSIBILITY is not set
1004# CONFIG_INFINIBAND is not set
1005# CONFIG_EDAC is not set
1006CONFIG_RTC_LIB=y
1007CONFIG_RTC_CLASS=y
1008CONFIG_RTC_HCTOSYS=y
1009CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1010# CONFIG_RTC_DEBUG is not set
1011
1012#
1013# RTC interfaces
1014#
1015CONFIG_RTC_INTF_SYSFS=y
1016CONFIG_RTC_INTF_PROC=y
1017CONFIG_RTC_INTF_DEV=y
1018# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1019# CONFIG_RTC_DRV_TEST is not set
1020
1021#
1022# I2C RTC drivers
1023#
1024CONFIG_RTC_DRV_DS1307=y
1025# CONFIG_RTC_DRV_DS1374 is not set
1026# CONFIG_RTC_DRV_DS1672 is not set
1027# CONFIG_RTC_DRV_MAX6900 is not set
1028# CONFIG_RTC_DRV_RS5C372 is not set
1029# CONFIG_RTC_DRV_ISL1208 is not set
1030# CONFIG_RTC_DRV_X1205 is not set
1031# CONFIG_RTC_DRV_PCF8563 is not set
1032# CONFIG_RTC_DRV_PCF8583 is not set
1033# CONFIG_RTC_DRV_M41T80 is not set
1034# CONFIG_RTC_DRV_BQ32K is not set
1035# CONFIG_RTC_DRV_S35390A is not set
1036# CONFIG_RTC_DRV_FM3130 is not set
1037# CONFIG_RTC_DRV_RX8581 is not set
1038# CONFIG_RTC_DRV_RX8025 is not set
1039
1040#
1041# SPI RTC drivers
1042#
1043
1044#
1045# Platform RTC drivers
1046#
1047# CONFIG_RTC_DRV_CMOS is not set
1048# CONFIG_RTC_DRV_DS1286 is not set
1049# CONFIG_RTC_DRV_DS1511 is not set
1050# CONFIG_RTC_DRV_DS1553 is not set
1051# CONFIG_RTC_DRV_DS1742 is not set
1052# CONFIG_RTC_DRV_STK17TA8 is not set
1053# CONFIG_RTC_DRV_M48T86 is not set
1054# CONFIG_RTC_DRV_M48T35 is not set
1055# CONFIG_RTC_DRV_M48T59 is not set
1056# CONFIG_RTC_DRV_MSM6242 is not set
1057# CONFIG_RTC_DRV_BQ4802 is not set
1058# CONFIG_RTC_DRV_RP5C01 is not set
1059# CONFIG_RTC_DRV_V3020 is not set
1060
1061#
1062# on-CPU RTC drivers
1063#
1064# CONFIG_RTC_DRV_GENERIC is not set
1065# CONFIG_DMADEVICES is not set
1066# CONFIG_AUXDISPLAY is not set
1067# CONFIG_UIO is not set
1068
1069#
1070# TI VLYNQ
1071#
1072# CONFIG_STAGING is not set
1073
1074#
1075# File systems
1076#
1077CONFIG_EXT2_FS=y
1078# CONFIG_EXT2_FS_XATTR is not set
1079# CONFIG_EXT2_FS_XIP is not set
1080CONFIG_EXT3_FS=y
1081# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1082CONFIG_EXT3_FS_XATTR=y
1083# CONFIG_EXT3_FS_POSIX_ACL is not set
1084# CONFIG_EXT3_FS_SECURITY is not set
1085# CONFIG_EXT4_FS is not set
1086CONFIG_JBD=y
1087CONFIG_FS_MBCACHE=y
1088# CONFIG_REISERFS_FS is not set
1089# CONFIG_JFS_FS is not set
1090# CONFIG_FS_POSIX_ACL is not set
1091# CONFIG_XFS_FS is not set
1092# CONFIG_GFS2_FS is not set
1093# CONFIG_OCFS2_FS is not set
1094# CONFIG_BTRFS_FS is not set
1095# CONFIG_NILFS2_FS is not set
1096CONFIG_FILE_LOCKING=y
1097CONFIG_FSNOTIFY=y
1098CONFIG_DNOTIFY=y
1099CONFIG_INOTIFY=y
1100CONFIG_INOTIFY_USER=y
1101# CONFIG_QUOTA is not set
1102# CONFIG_AUTOFS_FS is not set
1103# CONFIG_AUTOFS4_FS is not set
1104# CONFIG_FUSE_FS is not set
1105
1106#
1107# Caches
1108#
1109# CONFIG_FSCACHE is not set
1110
1111#
1112# CD-ROM/DVD Filesystems
1113#
1114# CONFIG_ISO9660_FS is not set
1115# CONFIG_UDF_FS is not set
1116
1117#
1118# DOS/FAT/NT Filesystems
1119#
1120CONFIG_FAT_FS=y
1121# CONFIG_MSDOS_FS is not set
1122CONFIG_VFAT_FS=y
1123CONFIG_FAT_DEFAULT_CODEPAGE=437
1124CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1125# CONFIG_NTFS_FS is not set
1126
1127#
1128# Pseudo filesystems
1129#
1130CONFIG_PROC_FS=y
1131CONFIG_PROC_KCORE=y
1132CONFIG_PROC_SYSCTL=y
1133CONFIG_PROC_PAGE_MONITOR=y
1134CONFIG_SYSFS=y
1135CONFIG_TMPFS=y
1136# CONFIG_TMPFS_POSIX_ACL is not set
1137# CONFIG_HUGETLB_PAGE is not set
1138# CONFIG_CONFIGFS_FS is not set
1139CONFIG_MISC_FILESYSTEMS=y
1140# CONFIG_ADFS_FS is not set
1141# CONFIG_AFFS_FS is not set
1142# CONFIG_HFS_FS is not set
1143# CONFIG_HFSPLUS_FS is not set
1144# CONFIG_BEFS_FS is not set
1145# CONFIG_BFS_FS is not set
1146# CONFIG_EFS_FS is not set
1147# CONFIG_JFFS2_FS is not set
1148# CONFIG_YAFFS_FS is not set
1149# CONFIG_LOGFS is not set
1150CONFIG_CRAMFS=y
1151# CONFIG_SQUASHFS is not set
1152# CONFIG_VXFS_FS is not set
1153# CONFIG_MINIX_FS is not set
1154# CONFIG_OMFS_FS is not set
1155# CONFIG_HPFS_FS is not set
1156# CONFIG_QNX4FS_FS is not set
1157# CONFIG_ROMFS_FS is not set
1158# CONFIG_SYSV_FS is not set
1159# CONFIG_UFS_FS is not set
1160CONFIG_NETWORK_FILESYSTEMS=y
1161CONFIG_NFS_FS=y
1162CONFIG_NFS_V3=y
1163# CONFIG_NFS_V3_ACL is not set
1164# CONFIG_NFS_V4 is not set
1165CONFIG_ROOT_NFS=y
1166# CONFIG_NFSD is not set
1167CONFIG_LOCKD=y
1168CONFIG_LOCKD_V4=y
1169CONFIG_NFS_COMMON=y
1170CONFIG_SUNRPC=y
1171# CONFIG_RPCSEC_GSS_KRB5 is not set
1172# CONFIG_RPCSEC_GSS_SPKM3 is not set
1173# CONFIG_SMB_FS is not set
1174# CONFIG_CEPH_FS is not set
1175# CONFIG_CIFS is not set
1176# CONFIG_NCP_FS is not set
1177# CONFIG_CODA_FS is not set
1178# CONFIG_AFS_FS is not set
1179
1180#
1181# Partition Types
1182#
1183# CONFIG_PARTITION_ADVANCED is not set
1184CONFIG_MSDOS_PARTITION=y
1185CONFIG_NLS=y
1186CONFIG_NLS_DEFAULT="iso8859-1"
1187CONFIG_NLS_CODEPAGE_437=y
1188# CONFIG_NLS_CODEPAGE_737 is not set
1189# CONFIG_NLS_CODEPAGE_775 is not set
1190CONFIG_NLS_CODEPAGE_850=y
1191# CONFIG_NLS_CODEPAGE_852 is not set
1192# CONFIG_NLS_CODEPAGE_855 is not set
1193# CONFIG_NLS_CODEPAGE_857 is not set
1194# CONFIG_NLS_CODEPAGE_860 is not set
1195# CONFIG_NLS_CODEPAGE_861 is not set
1196# CONFIG_NLS_CODEPAGE_862 is not set
1197# CONFIG_NLS_CODEPAGE_863 is not set
1198# CONFIG_NLS_CODEPAGE_864 is not set
1199# CONFIG_NLS_CODEPAGE_865 is not set
1200# CONFIG_NLS_CODEPAGE_866 is not set
1201# CONFIG_NLS_CODEPAGE_869 is not set
1202# CONFIG_NLS_CODEPAGE_936 is not set
1203# CONFIG_NLS_CODEPAGE_950 is not set
1204# CONFIG_NLS_CODEPAGE_932 is not set
1205# CONFIG_NLS_CODEPAGE_949 is not set
1206# CONFIG_NLS_CODEPAGE_874 is not set
1207# CONFIG_NLS_ISO8859_8 is not set
1208# CONFIG_NLS_CODEPAGE_1250 is not set
1209# CONFIG_NLS_CODEPAGE_1251 is not set
1210# CONFIG_NLS_ASCII is not set
1211CONFIG_NLS_ISO8859_1=y
1212# CONFIG_NLS_ISO8859_2 is not set
1213# CONFIG_NLS_ISO8859_3 is not set
1214# CONFIG_NLS_ISO8859_4 is not set
1215# CONFIG_NLS_ISO8859_5 is not set
1216# CONFIG_NLS_ISO8859_6 is not set
1217# CONFIG_NLS_ISO8859_7 is not set
1218# CONFIG_NLS_ISO8859_9 is not set
1219# CONFIG_NLS_ISO8859_13 is not set
1220# CONFIG_NLS_ISO8859_14 is not set
1221CONFIG_NLS_ISO8859_15=y
1222# CONFIG_NLS_KOI8_R is not set
1223# CONFIG_NLS_KOI8_U is not set
1224# CONFIG_NLS_UTF8 is not set
1225# CONFIG_DLM is not set
1226# CONFIG_BINARY_PRINTF is not set
1227
1228#
1229# Library routines
1230#
1231CONFIG_BITREVERSE=y
1232CONFIG_GENERIC_FIND_LAST_BIT=y
1233# CONFIG_CRC_CCITT is not set
1234# CONFIG_CRC16 is not set
1235# CONFIG_CRC_T10DIF is not set
1236# CONFIG_CRC_ITU_T is not set
1237CONFIG_CRC32=y
1238# CONFIG_CRC7 is not set
1239# CONFIG_LIBCRC32C is not set
1240CONFIG_ZLIB_INFLATE=y
1241CONFIG_DECOMPRESS_GZIP=y
1242CONFIG_HAS_IOMEM=y
1243CONFIG_HAS_IOPORT=y
1244CONFIG_HAS_DMA=y
1245CONFIG_HAVE_LMB=y
1246CONFIG_NLATTR=y
1247CONFIG_GENERIC_ATOMIC64=y
1248
1249#
1250# Kernel hacking
1251#
1252# CONFIG_PRINTK_TIME is not set
1253CONFIG_ENABLE_WARN_DEPRECATED=y
1254CONFIG_ENABLE_MUST_CHECK=y
1255CONFIG_FRAME_WARN=1024
1256CONFIG_MAGIC_SYSRQ=y
1257# CONFIG_STRIP_ASM_SYMS is not set
1258# CONFIG_UNUSED_SYMBOLS is not set
1259# CONFIG_DEBUG_FS is not set
1260# CONFIG_HEADERS_CHECK is not set
1261CONFIG_DEBUG_KERNEL=y
1262# CONFIG_DEBUG_SHIRQ is not set
1263CONFIG_DETECT_SOFTLOCKUP=y
1264# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1265CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1266CONFIG_DETECT_HUNG_TASK=y
1267# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1268CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1269CONFIG_SCHED_DEBUG=y
1270# CONFIG_SCHEDSTATS is not set
1271# CONFIG_TIMER_STATS is not set
1272# CONFIG_DEBUG_OBJECTS is not set
1273# CONFIG_SLUB_DEBUG_ON is not set
1274# CONFIG_SLUB_STATS is not set
1275# CONFIG_DEBUG_KMEMLEAK is not set
1276# CONFIG_DEBUG_RT_MUTEXES is not set
1277# CONFIG_RT_MUTEX_TESTER is not set
1278# CONFIG_DEBUG_SPINLOCK is not set
1279# CONFIG_DEBUG_MUTEXES is not set
1280# CONFIG_DEBUG_LOCK_ALLOC is not set
1281# CONFIG_PROVE_LOCKING is not set
1282# CONFIG_LOCK_STAT is not set
1283# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1284# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1285# CONFIG_DEBUG_KOBJECT is not set
1286# CONFIG_DEBUG_HIGHMEM is not set
1287# CONFIG_DEBUG_BUGVERBOSE is not set
1288# CONFIG_DEBUG_INFO is not set
1289# CONFIG_DEBUG_VM is not set
1290# CONFIG_DEBUG_WRITECOUNT is not set
1291# CONFIG_DEBUG_MEMORY_INIT is not set
1292# CONFIG_DEBUG_LIST is not set
1293# CONFIG_DEBUG_SG is not set
1294# CONFIG_DEBUG_NOTIFIERS is not set
1295# CONFIG_DEBUG_CREDENTIALS is not set
1296# CONFIG_RCU_TORTURE_TEST is not set
1297# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1298# CONFIG_BACKTRACE_SELF_TEST is not set
1299# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1300# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1301# CONFIG_FAULT_INJECTION is not set
1302# CONFIG_LATENCYTOP is not set
1303CONFIG_SYSCTL_SYSCALL_CHECK=y
1304# CONFIG_DEBUG_PAGEALLOC is not set
1305CONFIG_HAVE_FUNCTION_TRACER=y
1306CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1307CONFIG_HAVE_DYNAMIC_FTRACE=y
1308CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1309CONFIG_TRACING_SUPPORT=y
1310CONFIG_FTRACE=y
1311# CONFIG_FUNCTION_TRACER is not set
1312# CONFIG_IRQSOFF_TRACER is not set
1313# CONFIG_SCHED_TRACER is not set
1314# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1315# CONFIG_BOOT_TRACER is not set
1316CONFIG_BRANCH_PROFILE_NONE=y
1317# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1318# CONFIG_PROFILE_ALL_BRANCHES is not set
1319# CONFIG_STACK_TRACER is not set
1320# CONFIG_KMEMTRACE is not set
1321# CONFIG_WORKQUEUE_TRACER is not set
1322# CONFIG_BLK_DEV_IO_TRACE is not set
1323# CONFIG_DMA_API_DEBUG is not set
1324# CONFIG_SAMPLES is not set
1325CONFIG_HAVE_ARCH_KGDB=y
1326# CONFIG_KGDB is not set
1327# CONFIG_PPC_DISABLE_WERROR is not set
1328CONFIG_PPC_WERROR=y
1329CONFIG_PRINT_STACK_DEPTH=64
1330# CONFIG_DEBUG_STACKOVERFLOW is not set
1331# CONFIG_DEBUG_STACK_USAGE is not set
1332# CONFIG_CODE_PATCHING_SELFTEST is not set
1333# CONFIG_FTR_FIXUP_SELFTEST is not set
1334# CONFIG_MSI_BITMAP_SELFTEST is not set
1335# CONFIG_XMON is not set
1336# CONFIG_IRQSTACKS is not set
1337# CONFIG_BDI_SWITCH is not set
1338# CONFIG_PPC_EARLY_DEBUG is not set
1339
1340#
1341# Security options
1342#
1343# CONFIG_KEYS is not set
1344# CONFIG_SECURITY is not set
1345# CONFIG_SECURITYFS is not set
1346# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1347# CONFIG_DEFAULT_SECURITY_SMACK is not set
1348# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1349CONFIG_DEFAULT_SECURITY_DAC=y
1350CONFIG_DEFAULT_SECURITY=""
1351CONFIG_CRYPTO=y
1352
1353#
1354# Crypto core or helper
1355#
1356CONFIG_CRYPTO_ALGAPI=y
1357CONFIG_CRYPTO_ALGAPI2=y
1358CONFIG_CRYPTO_AEAD2=y
1359CONFIG_CRYPTO_BLKCIPHER=y
1360CONFIG_CRYPTO_BLKCIPHER2=y
1361CONFIG_CRYPTO_HASH=y
1362CONFIG_CRYPTO_HASH2=y
1363CONFIG_CRYPTO_RNG2=y
1364CONFIG_CRYPTO_PCOMP=y
1365CONFIG_CRYPTO_MANAGER=y
1366CONFIG_CRYPTO_MANAGER2=y
1367# CONFIG_CRYPTO_GF128MUL is not set
1368# CONFIG_CRYPTO_NULL is not set
1369CONFIG_CRYPTO_WORKQUEUE=y
1370# CONFIG_CRYPTO_CRYPTD is not set
1371# CONFIG_CRYPTO_AUTHENC is not set
1372# CONFIG_CRYPTO_TEST is not set
1373
1374#
1375# Authenticated Encryption with Associated Data
1376#
1377# CONFIG_CRYPTO_CCM is not set
1378# CONFIG_CRYPTO_GCM is not set
1379# CONFIG_CRYPTO_SEQIV is not set
1380
1381#
1382# Block modes
1383#
1384CONFIG_CRYPTO_CBC=y
1385# CONFIG_CRYPTO_CTR is not set
1386# CONFIG_CRYPTO_CTS is not set
1387CONFIG_CRYPTO_ECB=y
1388# CONFIG_CRYPTO_LRW is not set
1389CONFIG_CRYPTO_PCBC=y
1390# CONFIG_CRYPTO_XTS is not set
1391
1392#
1393# Hash modes
1394#
1395# CONFIG_CRYPTO_HMAC is not set
1396# CONFIG_CRYPTO_XCBC is not set
1397# CONFIG_CRYPTO_VMAC is not set
1398
1399#
1400# Digest
1401#
1402# CONFIG_CRYPTO_CRC32C is not set
1403# CONFIG_CRYPTO_GHASH is not set
1404# CONFIG_CRYPTO_MD4 is not set
1405CONFIG_CRYPTO_MD5=y
1406# CONFIG_CRYPTO_MICHAEL_MIC is not set
1407# CONFIG_CRYPTO_RMD128 is not set
1408# CONFIG_CRYPTO_RMD160 is not set
1409# CONFIG_CRYPTO_RMD256 is not set
1410# CONFIG_CRYPTO_RMD320 is not set
1411# CONFIG_CRYPTO_SHA1 is not set
1412# CONFIG_CRYPTO_SHA256 is not set
1413# CONFIG_CRYPTO_SHA512 is not set
1414# CONFIG_CRYPTO_TGR192 is not set
1415# CONFIG_CRYPTO_WP512 is not set
1416
1417#
1418# Ciphers
1419#
1420# CONFIG_CRYPTO_AES is not set
1421# CONFIG_CRYPTO_ANUBIS is not set
1422# CONFIG_CRYPTO_ARC4 is not set
1423# CONFIG_CRYPTO_BLOWFISH is not set
1424# CONFIG_CRYPTO_CAMELLIA is not set
1425# CONFIG_CRYPTO_CAST5 is not set
1426# CONFIG_CRYPTO_CAST6 is not set
1427CONFIG_CRYPTO_DES=y
1428# CONFIG_CRYPTO_FCRYPT is not set
1429# CONFIG_CRYPTO_KHAZAD is not set
1430# CONFIG_CRYPTO_SALSA20 is not set
1431# CONFIG_CRYPTO_SEED is not set
1432# CONFIG_CRYPTO_SERPENT is not set
1433# CONFIG_CRYPTO_TEA is not set
1434# CONFIG_CRYPTO_TWOFISH is not set
1435
1436#
1437# Compression
1438#
1439# CONFIG_CRYPTO_DEFLATE is not set
1440# CONFIG_CRYPTO_ZLIB is not set
1441# CONFIG_CRYPTO_LZO is not set
1442
1443#
1444# Random Number Generation
1445#
1446# CONFIG_CRYPTO_ANSI_CPRNG is not set
1447CONFIG_CRYPTO_HW=y
1448# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1449# CONFIG_CRYPTO_DEV_PPC4XX is not set
1450# CONFIG_PPC_CLOCK is not set
1451# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/44x/iss476-smp_defconfig b/arch/powerpc/configs/44x/iss476-smp_defconfig
new file mode 100644
index 000000000000..8683cbc6c3e1
--- /dev/null
+++ b/arch/powerpc/configs/44x/iss476-smp_defconfig
@@ -0,0 +1,1026 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.33
4# Thu Mar 4 11:50:12 2010
5#
6# CONFIG_PPC64 is not set
7
8#
9# Processor support
10#
11# CONFIG_PPC_BOOK3S_32 is not set
12# CONFIG_PPC_85xx is not set
13# CONFIG_PPC_8xx is not set
14# CONFIG_40x is not set
15CONFIG_44x=y
16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y
18CONFIG_4xx=y
19CONFIG_BOOKE=y
20CONFIG_PTE_64BIT=y
21CONFIG_PHYS_64BIT=y
22CONFIG_PPC_MMU_NOHASH=y
23CONFIG_PPC_MMU_NOHASH_32=y
24# CONFIG_PPC_MM_SLICES is not set
25CONFIG_SMP=y
26CONFIG_NR_CPUS=4
27# CONFIG_NOT_COHERENT_CACHE is not set
28CONFIG_PPC32=y
29CONFIG_WORD_SIZE=32
30CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
31CONFIG_MMU=y
32CONFIG_GENERIC_CMOS_UPDATE=y
33CONFIG_GENERIC_TIME=y
34CONFIG_GENERIC_TIME_VSYSCALL=y
35CONFIG_GENERIC_CLOCKEVENTS=y
36CONFIG_GENERIC_HARDIRQS=y
37CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
38# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
39# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set
40CONFIG_IRQ_PER_CPU=y
41CONFIG_NR_IRQS=512
42CONFIG_STACKTRACE_SUPPORT=y
43CONFIG_HAVE_LATENCYTOP_SUPPORT=y
44CONFIG_TRACE_IRQFLAGS_SUPPORT=y
45CONFIG_LOCKDEP_SUPPORT=y
46CONFIG_RWSEM_XCHGADD_ALGORITHM=y
47CONFIG_ARCH_HAS_ILOG2_U32=y
48CONFIG_GENERIC_HWEIGHT=y
49CONFIG_GENERIC_FIND_NEXT_BIT=y
50# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
51CONFIG_PPC=y
52CONFIG_EARLY_PRINTK=y
53CONFIG_GENERIC_NVRAM=y
54CONFIG_SCHED_OMIT_FRAME_POINTER=y
55CONFIG_ARCH_MAY_HAVE_PC_FDC=y
56CONFIG_PPC_OF=y
57CONFIG_OF=y
58CONFIG_PPC_UDBG_16550=y
59CONFIG_GENERIC_TBSYNC=y
60CONFIG_AUDIT_ARCH=y
61CONFIG_GENERIC_BUG=y
62CONFIG_DTC=y
63# CONFIG_DEFAULT_UIMAGE is not set
64CONFIG_ARCH_HIBERNATION_POSSIBLE=y
65CONFIG_PPC_DCR_NATIVE=y
66# CONFIG_PPC_DCR_MMIO is not set
67CONFIG_PPC_DCR=y
68CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
69CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
70CONFIG_CONSTRUCTORS=y
71
72#
73# General setup
74#
75CONFIG_EXPERIMENTAL=y
76CONFIG_LOCK_KERNEL=y
77CONFIG_INIT_ENV_ARG_LIMIT=32
78CONFIG_LOCALVERSION=""
79CONFIG_LOCALVERSION_AUTO=y
80CONFIG_SWAP=y
81CONFIG_SYSVIPC=y
82CONFIG_SYSVIPC_SYSCTL=y
83CONFIG_POSIX_MQUEUE=y
84CONFIG_POSIX_MQUEUE_SYSCTL=y
85# CONFIG_BSD_PROCESS_ACCT is not set
86# CONFIG_TASKSTATS is not set
87# CONFIG_AUDIT is not set
88
89#
90# RCU Subsystem
91#
92CONFIG_TREE_RCU=y
93# CONFIG_TREE_PREEMPT_RCU is not set
94# CONFIG_TINY_RCU is not set
95# CONFIG_RCU_TRACE is not set
96CONFIG_RCU_FANOUT=32
97# CONFIG_RCU_FANOUT_EXACT is not set
98# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102CONFIG_FAIR_GROUP_SCHED=y
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y
112CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set
116# CONFIG_RD_LZO is not set
117# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
118CONFIG_SYSCTL=y
119CONFIG_ANON_INODES=y
120CONFIG_EMBEDDED=y
121CONFIG_SYSCTL_SYSCALL=y
122CONFIG_KALLSYMS=y
123CONFIG_KALLSYMS_ALL=y
124CONFIG_KALLSYMS_EXTRA_PASS=y
125CONFIG_HOTPLUG=y
126CONFIG_PRINTK=y
127CONFIG_BUG=y
128CONFIG_ELF_CORE=y
129CONFIG_BASE_FULL=y
130CONFIG_FUTEX=y
131CONFIG_EPOLL=y
132CONFIG_SIGNALFD=y
133CONFIG_TIMERFD=y
134CONFIG_EVENTFD=y
135CONFIG_SHMEM=y
136CONFIG_AIO=y
137CONFIG_HAVE_PERF_EVENTS=y
138
139#
140# Kernel Performance Events And Counters
141#
142CONFIG_PERF_EVENTS=y
143CONFIG_EVENT_PROFILE=y
144# CONFIG_PERF_COUNTERS is not set
145# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
146CONFIG_VM_EVENT_COUNTERS=y
147CONFIG_SLUB_DEBUG=y
148CONFIG_COMPAT_BRK=y
149# CONFIG_SLAB is not set
150CONFIG_SLUB=y
151# CONFIG_SLOB is not set
152CONFIG_PROFILING=y
153CONFIG_TRACEPOINTS=y
154CONFIG_OPROFILE=y
155CONFIG_HAVE_OPROFILE=y
156# CONFIG_KPROBES is not set
157CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
158CONFIG_HAVE_IOREMAP_PROT=y
159CONFIG_HAVE_KPROBES=y
160CONFIG_HAVE_KRETPROBES=y
161CONFIG_HAVE_ARCH_TRACEHOOK=y
162CONFIG_HAVE_DMA_ATTRS=y
163CONFIG_USE_GENERIC_SMP_HELPERS=y
164CONFIG_HAVE_DMA_API_DEBUG=y
165
166#
167# GCOV-based kernel profiling
168#
169# CONFIG_GCOV_KERNEL is not set
170# CONFIG_SLOW_WORK is not set
171# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
172CONFIG_SLABINFO=y
173CONFIG_RT_MUTEXES=y
174CONFIG_BASE_SMALL=0
175CONFIG_MODULES=y
176# CONFIG_MODULE_FORCE_LOAD is not set
177CONFIG_MODULE_UNLOAD=y
178# CONFIG_MODULE_FORCE_UNLOAD is not set
179# CONFIG_MODVERSIONS is not set
180# CONFIG_MODULE_SRCVERSION_ALL is not set
181CONFIG_STOP_MACHINE=y
182CONFIG_BLOCK=y
183CONFIG_LBDAF=y
184# CONFIG_BLK_DEV_BSG is not set
185# CONFIG_BLK_DEV_INTEGRITY is not set
186
187#
188# IO Schedulers
189#
190CONFIG_IOSCHED_NOOP=y
191CONFIG_IOSCHED_DEADLINE=y
192CONFIG_IOSCHED_CFQ=y
193# CONFIG_DEFAULT_DEADLINE is not set
194CONFIG_DEFAULT_CFQ=y
195# CONFIG_DEFAULT_NOOP is not set
196CONFIG_DEFAULT_IOSCHED="cfq"
197# CONFIG_INLINE_SPIN_TRYLOCK is not set
198# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
199# CONFIG_INLINE_SPIN_LOCK is not set
200# CONFIG_INLINE_SPIN_LOCK_BH is not set
201# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
202# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
203CONFIG_INLINE_SPIN_UNLOCK=y
204# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
205CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
206# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
207# CONFIG_INLINE_READ_TRYLOCK is not set
208# CONFIG_INLINE_READ_LOCK is not set
209# CONFIG_INLINE_READ_LOCK_BH is not set
210# CONFIG_INLINE_READ_LOCK_IRQ is not set
211# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
212CONFIG_INLINE_READ_UNLOCK=y
213# CONFIG_INLINE_READ_UNLOCK_BH is not set
214CONFIG_INLINE_READ_UNLOCK_IRQ=y
215# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
216# CONFIG_INLINE_WRITE_TRYLOCK is not set
217# CONFIG_INLINE_WRITE_LOCK is not set
218# CONFIG_INLINE_WRITE_LOCK_BH is not set
219# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
220# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
221CONFIG_INLINE_WRITE_UNLOCK=y
222# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
223CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
224# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
225CONFIG_MUTEX_SPIN_ON_OWNER=y
226# CONFIG_FREEZER is not set
227
228#
229# Platform support
230#
231# CONFIG_PPC_CELL is not set
232# CONFIG_PPC_CELL_NATIVE is not set
233# CONFIG_PQ2ADS is not set
234CONFIG_PPC_47x=y
235# CONFIG_BAMBOO is not set
236# CONFIG_EBONY is not set
237# CONFIG_SAM440EP is not set
238# CONFIG_SEQUOIA is not set
239# CONFIG_TAISHAN is not set
240# CONFIG_KATMAI is not set
241# CONFIG_RAINIER is not set
242# CONFIG_WARP is not set
243# CONFIG_ARCHES is not set
244# CONFIG_CANYONLANDS is not set
245# CONFIG_GLACIER is not set
246# CONFIG_REDWOOD is not set
247# CONFIG_EIGER is not set
248# CONFIG_YOSEMITE is not set
249CONFIG_ISS4xx=y
250# CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set
251# CONFIG_PPC44x_SIMPLE is not set
252# CONFIG_PPC4xx_GPIO is not set
253# CONFIG_IPIC is not set
254CONFIG_MPIC=y
255# CONFIG_MPIC_WEIRD is not set
256# CONFIG_PPC_I8259 is not set
257# CONFIG_PPC_RTAS is not set
258# CONFIG_MMIO_NVRAM is not set
259# CONFIG_PPC_MPC106 is not set
260# CONFIG_PPC_970_NAP is not set
261# CONFIG_PPC_INDIRECT_IO is not set
262# CONFIG_GENERIC_IOMAP is not set
263# CONFIG_CPU_FREQ is not set
264# CONFIG_FSL_ULI1575 is not set
265CONFIG_OF_RTC=y
266# CONFIG_SIMPLE_GPIO is not set
267
268#
269# Kernel options
270#
271# CONFIG_HIGHMEM is not set
272# CONFIG_NO_HZ is not set
273# CONFIG_HIGH_RES_TIMERS is not set
274CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
275CONFIG_HZ_100=y
276# CONFIG_HZ_250 is not set
277# CONFIG_HZ_300 is not set
278# CONFIG_HZ_1000 is not set
279CONFIG_HZ=100
280# CONFIG_SCHED_HRTICK is not set
281CONFIG_PREEMPT_NONE=y
282# CONFIG_PREEMPT_VOLUNTARY is not set
283# CONFIG_PREEMPT is not set
284CONFIG_BINFMT_ELF=y
285# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
286# CONFIG_HAVE_AOUT is not set
287# CONFIG_BINFMT_MISC is not set
288CONFIG_MATH_EMULATION=y
289# CONFIG_IOMMU_HELPER is not set
290# CONFIG_SWIOTLB is not set
291CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
292CONFIG_ARCH_HAS_WALK_MEMORY=y
293CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
294CONFIG_IRQ_ALL_CPUS=y
295CONFIG_SPARSE_IRQ=y
296CONFIG_MAX_ACTIVE_REGIONS=32
297CONFIG_ARCH_FLATMEM_ENABLE=y
298CONFIG_ARCH_POPULATES_NODE_MAP=y
299CONFIG_SELECT_MEMORY_MODEL=y
300CONFIG_FLATMEM_MANUAL=y
301# CONFIG_DISCONTIGMEM_MANUAL is not set
302# CONFIG_SPARSEMEM_MANUAL is not set
303CONFIG_FLATMEM=y
304CONFIG_FLAT_NODE_MEM_MAP=y
305CONFIG_PAGEFLAGS_EXTENDED=y
306CONFIG_SPLIT_PTLOCK_CPUS=4
307CONFIG_MIGRATION=y
308CONFIG_PHYS_ADDR_T_64BIT=y
309CONFIG_ZONE_DMA_FLAG=1
310CONFIG_BOUNCE=y
311CONFIG_VIRT_TO_BUS=y
312# CONFIG_KSM is not set
313CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
314CONFIG_STDBINUTILS=y
315CONFIG_PPC_4K_PAGES=y
316# CONFIG_PPC_16K_PAGES is not set
317# CONFIG_PPC_64K_PAGES is not set
318# CONFIG_PPC_256K_PAGES is not set
319CONFIG_FORCE_MAX_ZONEORDER=11
320CONFIG_PROC_DEVICETREE=y
321CONFIG_CMDLINE_BOOL=y
322CONFIG_CMDLINE="root=/dev/issblk0"
323CONFIG_EXTRA_TARGETS=""
324CONFIG_SECCOMP=y
325CONFIG_ISA_DMA_API=y
326
327#
328# Bus options
329#
330CONFIG_ZONE_DMA=y
331CONFIG_4xx_SOC=y
332CONFIG_PPC_PCI_CHOICE=y
333# CONFIG_PCI is not set
334# CONFIG_PCI_DOMAINS is not set
335# CONFIG_PCI_SYSCALL is not set
336# CONFIG_ARCH_SUPPORTS_MSI is not set
337# CONFIG_PCCARD is not set
338# CONFIG_HAS_RAPIDIO is not set
339
340#
341# Advanced setup
342#
343# CONFIG_ADVANCED_OPTIONS is not set
344
345#
346# Default settings for advanced configuration options are used
347#
348CONFIG_LOWMEM_SIZE=0x30000000
349CONFIG_PAGE_OFFSET=0xc0000000
350CONFIG_KERNEL_START=0xc0000000
351CONFIG_PHYSICAL_START=0x00000000
352CONFIG_TASK_SIZE=0xc0000000
353CONFIG_NET=y
354
355#
356# Networking options
357#
358CONFIG_PACKET=y
359# CONFIG_PACKET_MMAP is not set
360CONFIG_UNIX=y
361# CONFIG_NET_KEY is not set
362CONFIG_INET=y
363# CONFIG_IP_MULTICAST is not set
364# CONFIG_IP_ADVANCED_ROUTER is not set
365CONFIG_IP_FIB_HASH=y
366CONFIG_IP_PNP=y
367CONFIG_IP_PNP_DHCP=y
368CONFIG_IP_PNP_BOOTP=y
369# CONFIG_IP_PNP_RARP is not set
370# CONFIG_NET_IPIP is not set
371# CONFIG_NET_IPGRE is not set
372# CONFIG_ARPD is not set
373# CONFIG_SYN_COOKIES is not set
374# CONFIG_INET_AH is not set
375# CONFIG_INET_ESP is not set
376# CONFIG_INET_IPCOMP is not set
377# CONFIG_INET_XFRM_TUNNEL is not set
378# CONFIG_INET_TUNNEL is not set
379# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
380# CONFIG_INET_XFRM_MODE_TUNNEL is not set
381# CONFIG_INET_XFRM_MODE_BEET is not set
382# CONFIG_INET_LRO is not set
383CONFIG_INET_DIAG=y
384CONFIG_INET_TCP_DIAG=y
385# CONFIG_TCP_CONG_ADVANCED is not set
386CONFIG_TCP_CONG_CUBIC=y
387CONFIG_DEFAULT_TCP_CONG="cubic"
388# CONFIG_TCP_MD5SIG is not set
389# CONFIG_IPV6 is not set
390# CONFIG_NETWORK_SECMARK is not set
391# CONFIG_NETFILTER is not set
392# CONFIG_IP_DCCP is not set
393# CONFIG_IP_SCTP is not set
394# CONFIG_RDS is not set
395# CONFIG_TIPC is not set
396# CONFIG_ATM is not set
397# CONFIG_BRIDGE is not set
398# CONFIG_NET_DSA is not set
399# CONFIG_VLAN_8021Q is not set
400# CONFIG_DECNET is not set
401# CONFIG_LLC2 is not set
402# CONFIG_IPX is not set
403# CONFIG_ATALK is not set
404# CONFIG_X25 is not set
405# CONFIG_LAPB is not set
406# CONFIG_ECONET is not set
407# CONFIG_WAN_ROUTER is not set
408# CONFIG_PHONET is not set
409# CONFIG_IEEE802154 is not set
410# CONFIG_NET_SCHED is not set
411# CONFIG_DCB is not set
412
413#
414# Network testing
415#
416# CONFIG_NET_PKTGEN is not set
417# CONFIG_NET_DROP_MONITOR is not set
418# CONFIG_HAMRADIO is not set
419# CONFIG_CAN is not set
420# CONFIG_IRDA is not set
421# CONFIG_BT is not set
422# CONFIG_AF_RXRPC is not set
423CONFIG_WIRELESS=y
424# CONFIG_CFG80211 is not set
425# CONFIG_LIB80211 is not set
426
427#
428# CFG80211 needs to be enabled for MAC80211
429#
430# CONFIG_WIMAX is not set
431# CONFIG_RFKILL is not set
432# CONFIG_NET_9P is not set
433
434#
435# Device Drivers
436#
437
438#
439# Generic Driver Options
440#
441CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
442# CONFIG_DEVTMPFS is not set
443CONFIG_STANDALONE=y
444CONFIG_PREVENT_FIRMWARE_BUILD=y
445CONFIG_FW_LOADER=y
446CONFIG_FIRMWARE_IN_KERNEL=y
447CONFIG_EXTRA_FIRMWARE=""
448# CONFIG_DEBUG_DRIVER is not set
449# CONFIG_DEBUG_DEVRES is not set
450# CONFIG_SYS_HYPERVISOR is not set
451CONFIG_CONNECTOR=y
452CONFIG_PROC_EVENTS=y
453CONFIG_MTD=y
454# CONFIG_MTD_DEBUG is not set
455# CONFIG_MTD_TESTS is not set
456# CONFIG_MTD_CONCAT is not set
457CONFIG_MTD_PARTITIONS=y
458# CONFIG_MTD_REDBOOT_PARTS is not set
459# CONFIG_MTD_CMDLINE_PARTS is not set
460CONFIG_MTD_OF_PARTS=y
461# CONFIG_MTD_AR7_PARTS is not set
462
463#
464# User Modules And Translation Layers
465#
466CONFIG_MTD_CHAR=y
467CONFIG_MTD_BLKDEVS=y
468CONFIG_MTD_BLOCK=y
469# CONFIG_FTL is not set
470# CONFIG_NFTL is not set
471# CONFIG_INFTL is not set
472# CONFIG_RFD_FTL is not set
473# CONFIG_SSFDC is not set
474# CONFIG_MTD_OOPS is not set
475
476#
477# RAM/ROM/Flash chip drivers
478#
479# CONFIG_MTD_CFI is not set
480CONFIG_MTD_JEDECPROBE=y
481CONFIG_MTD_GEN_PROBE=y
482# CONFIG_MTD_CFI_ADV_OPTIONS is not set
483CONFIG_MTD_MAP_BANK_WIDTH_1=y
484CONFIG_MTD_MAP_BANK_WIDTH_2=y
485CONFIG_MTD_MAP_BANK_WIDTH_4=y
486# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
487# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
488# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
489CONFIG_MTD_CFI_I1=y
490CONFIG_MTD_CFI_I2=y
491# CONFIG_MTD_CFI_I4 is not set
492# CONFIG_MTD_CFI_I8 is not set
493# CONFIG_MTD_CFI_INTELEXT is not set
494CONFIG_MTD_CFI_AMDSTD=y
495# CONFIG_MTD_CFI_STAA is not set
496CONFIG_MTD_CFI_UTIL=y
497# CONFIG_MTD_RAM is not set
498# CONFIG_MTD_ROM is not set
499# CONFIG_MTD_ABSENT is not set
500
501#
502# Mapping drivers for chip access
503#
504# CONFIG_MTD_COMPLEX_MAPPINGS is not set
505# CONFIG_MTD_PHYSMAP is not set
506CONFIG_MTD_PHYSMAP_OF=y
507# CONFIG_MTD_PLATRAM is not set
508
509#
510# Self-contained MTD device drivers
511#
512# CONFIG_MTD_SLRAM is not set
513# CONFIG_MTD_PHRAM is not set
514# CONFIG_MTD_MTDRAM is not set
515# CONFIG_MTD_BLOCK2MTD is not set
516
517#
518# Disk-On-Chip Device Drivers
519#
520# CONFIG_MTD_DOC2000 is not set
521# CONFIG_MTD_DOC2001 is not set
522# CONFIG_MTD_DOC2001PLUS is not set
523# CONFIG_MTD_NAND is not set
524# CONFIG_MTD_ONENAND is not set
525
526#
527# LPDDR flash memory drivers
528#
529# CONFIG_MTD_LPDDR is not set
530
531#
532# UBI - Unsorted block images
533#
534# CONFIG_MTD_UBI is not set
535CONFIG_OF_DEVICE=y
536# CONFIG_PARPORT is not set
537CONFIG_BLK_DEV=y
538# CONFIG_BLK_DEV_FD is not set
539# CONFIG_BLK_DEV_COW_COMMON is not set
540# CONFIG_BLK_DEV_LOOP is not set
541# CONFIG_BLK_DEV_DRBD is not set
542# CONFIG_BLK_DEV_NBD is not set
543CONFIG_BLK_DEV_RAM=y
544CONFIG_BLK_DEV_RAM_COUNT=16
545CONFIG_BLK_DEV_RAM_SIZE=35000
546# CONFIG_BLK_DEV_XIP is not set
547# CONFIG_CDROM_PKTCDVD is not set
548# CONFIG_ATA_OVER_ETH is not set
549# CONFIG_XILINX_SYSACE is not set
550# CONFIG_BLK_DEV_HD is not set
551CONFIG_MISC_DEVICES=y
552# CONFIG_ENCLOSURE_SERVICES is not set
553# CONFIG_C2PORT is not set
554
555#
556# EEPROM support
557#
558# CONFIG_EEPROM_93CX6 is not set
559CONFIG_HAVE_IDE=y
560# CONFIG_IDE is not set
561
562#
563# SCSI device support
564#
565# CONFIG_RAID_ATTRS is not set
566# CONFIG_SCSI is not set
567# CONFIG_SCSI_DMA is not set
568# CONFIG_SCSI_NETLINK is not set
569# CONFIG_ATA is not set
570# CONFIG_MD is not set
571# CONFIG_MACINTOSH_DRIVERS is not set
572# CONFIG_NETDEVICES is not set
573# CONFIG_ISDN is not set
574# CONFIG_PHONE is not set
575
576#
577# Input device support
578#
579# CONFIG_INPUT is not set
580
581#
582# Hardware I/O ports
583#
584# CONFIG_SERIO is not set
585# CONFIG_GAMEPORT is not set
586
587#
588# Character devices
589#
590# CONFIG_VT is not set
591CONFIG_DEVKMEM=y
592# CONFIG_SERIAL_NONSTANDARD is not set
593
594#
595# Serial drivers
596#
597CONFIG_SERIAL_8250=y
598CONFIG_SERIAL_8250_CONSOLE=y
599CONFIG_SERIAL_8250_NR_UARTS=4
600CONFIG_SERIAL_8250_RUNTIME_UARTS=4
601CONFIG_SERIAL_8250_EXTENDED=y
602# CONFIG_SERIAL_8250_MANY_PORTS is not set
603CONFIG_SERIAL_8250_SHARE_IRQ=y
604# CONFIG_SERIAL_8250_DETECT_IRQ is not set
605# CONFIG_SERIAL_8250_RSA is not set
606
607#
608# Non-8250 serial port support
609#
610# CONFIG_SERIAL_UARTLITE is not set
611CONFIG_SERIAL_CORE=y
612CONFIG_SERIAL_CORE_CONSOLE=y
613CONFIG_SERIAL_OF_PLATFORM=y
614# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set
615# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
616CONFIG_UNIX98_PTYS=y
617# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
618CONFIG_LEGACY_PTYS=y
619CONFIG_LEGACY_PTY_COUNT=256
620# CONFIG_HVC_UDBG is not set
621# CONFIG_IPMI_HANDLER is not set
622# CONFIG_HW_RANDOM is not set
623# CONFIG_NVRAM is not set
624# CONFIG_GEN_RTC is not set
625# CONFIG_R3964 is not set
626# CONFIG_RAW_DRIVER is not set
627# CONFIG_TCG_TPM is not set
628# CONFIG_I2C is not set
629# CONFIG_SPI is not set
630
631#
632# PPS support
633#
634# CONFIG_PPS is not set
635CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
636# CONFIG_GPIOLIB is not set
637# CONFIG_W1 is not set
638# CONFIG_POWER_SUPPLY is not set
639# CONFIG_HWMON is not set
640CONFIG_THERMAL=y
641# CONFIG_WATCHDOG is not set
642CONFIG_SSB_POSSIBLE=y
643
644#
645# Sonics Silicon Backplane
646#
647# CONFIG_SSB is not set
648
649#
650# Multifunction device drivers
651#
652# CONFIG_MFD_CORE is not set
653# CONFIG_MFD_SM501 is not set
654# CONFIG_HTC_PASIC3 is not set
655# CONFIG_MFD_TMIO is not set
656# CONFIG_REGULATOR is not set
657# CONFIG_MEDIA_SUPPORT is not set
658
659#
660# Graphics support
661#
662# CONFIG_VGASTATE is not set
663# CONFIG_VIDEO_OUTPUT_CONTROL is not set
664# CONFIG_FB is not set
665# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
666
667#
668# Display device support
669#
670# CONFIG_DISPLAY_SUPPORT is not set
671# CONFIG_SOUND is not set
672# CONFIG_USB_SUPPORT is not set
673# CONFIG_MMC is not set
674# CONFIG_MEMSTICK is not set
675# CONFIG_NEW_LEDS is not set
676# CONFIG_ACCESSIBILITY is not set
677# CONFIG_EDAC is not set
678# CONFIG_RTC_CLASS is not set
679# CONFIG_DMADEVICES is not set
680# CONFIG_AUXDISPLAY is not set
681# CONFIG_UIO is not set
682
683#
684# TI VLYNQ
685#
686# CONFIG_STAGING is not set
687
688#
689# File systems
690#
691CONFIG_EXT2_FS=y
692# CONFIG_EXT2_FS_XATTR is not set
693# CONFIG_EXT2_FS_XIP is not set
694CONFIG_EXT3_FS=y
695# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
696CONFIG_EXT3_FS_XATTR=y
697CONFIG_EXT3_FS_POSIX_ACL=y
698CONFIG_EXT3_FS_SECURITY=y
699# CONFIG_EXT4_FS is not set
700CONFIG_JBD=y
701# CONFIG_JBD_DEBUG is not set
702CONFIG_FS_MBCACHE=y
703# CONFIG_REISERFS_FS is not set
704# CONFIG_JFS_FS is not set
705CONFIG_FS_POSIX_ACL=y
706# CONFIG_XFS_FS is not set
707# CONFIG_GFS2_FS is not set
708# CONFIG_OCFS2_FS is not set
709# CONFIG_BTRFS_FS is not set
710# CONFIG_NILFS2_FS is not set
711CONFIG_FILE_LOCKING=y
712CONFIG_FSNOTIFY=y
713CONFIG_DNOTIFY=y
714CONFIG_INOTIFY=y
715CONFIG_INOTIFY_USER=y
716# CONFIG_QUOTA is not set
717# CONFIG_AUTOFS_FS is not set
718# CONFIG_AUTOFS4_FS is not set
719# CONFIG_FUSE_FS is not set
720
721#
722# Caches
723#
724# CONFIG_FSCACHE is not set
725
726#
727# CD-ROM/DVD Filesystems
728#
729# CONFIG_ISO9660_FS is not set
730# CONFIG_UDF_FS is not set
731
732#
733# DOS/FAT/NT Filesystems
734#
735# CONFIG_MSDOS_FS is not set
736# CONFIG_VFAT_FS is not set
737# CONFIG_NTFS_FS is not set
738
739#
740# Pseudo filesystems
741#
742CONFIG_PROC_FS=y
743CONFIG_PROC_KCORE=y
744CONFIG_PROC_SYSCTL=y
745CONFIG_PROC_PAGE_MONITOR=y
746CONFIG_SYSFS=y
747CONFIG_TMPFS=y
748# CONFIG_TMPFS_POSIX_ACL is not set
749# CONFIG_HUGETLB_PAGE is not set
750# CONFIG_CONFIGFS_FS is not set
751CONFIG_MISC_FILESYSTEMS=y
752# CONFIG_ADFS_FS is not set
753# CONFIG_AFFS_FS is not set
754# CONFIG_HFS_FS is not set
755# CONFIG_HFSPLUS_FS is not set
756# CONFIG_BEFS_FS is not set
757# CONFIG_BFS_FS is not set
758# CONFIG_EFS_FS is not set
759# CONFIG_JFFS2_FS is not set
760CONFIG_CRAMFS=y
761# CONFIG_SQUASHFS is not set
762# CONFIG_VXFS_FS is not set
763# CONFIG_MINIX_FS is not set
764# CONFIG_OMFS_FS is not set
765# CONFIG_HPFS_FS is not set
766# CONFIG_QNX4FS_FS is not set
767# CONFIG_ROMFS_FS is not set
768# CONFIG_SYSV_FS is not set
769# CONFIG_UFS_FS is not set
770# CONFIG_NETWORK_FILESYSTEMS is not set
771
772#
773# Partition Types
774#
775# CONFIG_PARTITION_ADVANCED is not set
776CONFIG_MSDOS_PARTITION=y
777# CONFIG_NLS is not set
778# CONFIG_DLM is not set
779CONFIG_BINARY_PRINTF=y
780
781#
782# Library routines
783#
784CONFIG_BITREVERSE=y
785CONFIG_GENERIC_FIND_LAST_BIT=y
786# CONFIG_CRC_CCITT is not set
787# CONFIG_CRC16 is not set
788# CONFIG_CRC_T10DIF is not set
789# CONFIG_CRC_ITU_T is not set
790CONFIG_CRC32=y
791# CONFIG_CRC7 is not set
792# CONFIG_LIBCRC32C is not set
793CONFIG_ZLIB_INFLATE=y
794CONFIG_DECOMPRESS_GZIP=y
795CONFIG_HAS_IOMEM=y
796CONFIG_HAS_IOPORT=y
797CONFIG_HAS_DMA=y
798CONFIG_HAVE_LMB=y
799CONFIG_NLATTR=y
800CONFIG_GENERIC_ATOMIC64=y
801
802#
803# Kernel hacking
804#
805# CONFIG_PRINTK_TIME is not set
806CONFIG_ENABLE_WARN_DEPRECATED=y
807CONFIG_ENABLE_MUST_CHECK=y
808CONFIG_FRAME_WARN=1024
809CONFIG_MAGIC_SYSRQ=y
810# CONFIG_STRIP_ASM_SYMS is not set
811# CONFIG_UNUSED_SYMBOLS is not set
812CONFIG_DEBUG_FS=y
813# CONFIG_HEADERS_CHECK is not set
814CONFIG_DEBUG_KERNEL=y
815# CONFIG_DEBUG_SHIRQ is not set
816CONFIG_DETECT_SOFTLOCKUP=y
817# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
818CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
819CONFIG_DETECT_HUNG_TASK=y
820# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
821CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
822CONFIG_SCHED_DEBUG=y
823# CONFIG_SCHEDSTATS is not set
824# CONFIG_TIMER_STATS is not set
825# CONFIG_DEBUG_OBJECTS is not set
826# CONFIG_SLUB_DEBUG_ON is not set
827# CONFIG_SLUB_STATS is not set
828# CONFIG_DEBUG_KMEMLEAK is not set
829# CONFIG_DEBUG_RT_MUTEXES is not set
830# CONFIG_RT_MUTEX_TESTER is not set
831# CONFIG_DEBUG_SPINLOCK is not set
832# CONFIG_DEBUG_MUTEXES is not set
833# CONFIG_DEBUG_LOCK_ALLOC is not set
834# CONFIG_PROVE_LOCKING is not set
835# CONFIG_LOCK_STAT is not set
836# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
837# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
838CONFIG_STACKTRACE=y
839# CONFIG_DEBUG_KOBJECT is not set
840CONFIG_DEBUG_BUGVERBOSE=y
841CONFIG_DEBUG_INFO=y
842# CONFIG_DEBUG_VM is not set
843# CONFIG_DEBUG_WRITECOUNT is not set
844# CONFIG_DEBUG_MEMORY_INIT is not set
845# CONFIG_DEBUG_LIST is not set
846# CONFIG_DEBUG_SG is not set
847# CONFIG_DEBUG_NOTIFIERS is not set
848# CONFIG_DEBUG_CREDENTIALS is not set
849# CONFIG_RCU_TORTURE_TEST is not set
850# CONFIG_RCU_CPU_STALL_DETECTOR is not set
851# CONFIG_BACKTRACE_SELF_TEST is not set
852# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
853# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
854# CONFIG_FAULT_INJECTION is not set
855# CONFIG_LATENCYTOP is not set
856CONFIG_SYSCTL_SYSCALL_CHECK=y
857# CONFIG_DEBUG_PAGEALLOC is not set
858CONFIG_NOP_TRACER=y
859CONFIG_HAVE_FUNCTION_TRACER=y
860CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
861CONFIG_HAVE_DYNAMIC_FTRACE=y
862CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
863CONFIG_RING_BUFFER=y
864CONFIG_EVENT_TRACING=y
865CONFIG_CONTEXT_SWITCH_TRACER=y
866CONFIG_RING_BUFFER_ALLOW_SWAP=y
867CONFIG_TRACING=y
868CONFIG_TRACING_SUPPORT=y
869CONFIG_FTRACE=y
870# CONFIG_FUNCTION_TRACER is not set
871# CONFIG_IRQSOFF_TRACER is not set
872# CONFIG_SCHED_TRACER is not set
873# CONFIG_ENABLE_DEFAULT_TRACERS is not set
874# CONFIG_BOOT_TRACER is not set
875CONFIG_BRANCH_PROFILE_NONE=y
876# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
877# CONFIG_PROFILE_ALL_BRANCHES is not set
878# CONFIG_STACK_TRACER is not set
879# CONFIG_KMEMTRACE is not set
880# CONFIG_WORKQUEUE_TRACER is not set
881# CONFIG_BLK_DEV_IO_TRACE is not set
882# CONFIG_RING_BUFFER_BENCHMARK is not set
883# CONFIG_DYNAMIC_DEBUG is not set
884# CONFIG_DMA_API_DEBUG is not set
885# CONFIG_SAMPLES is not set
886CONFIG_HAVE_ARCH_KGDB=y
887# CONFIG_KGDB is not set
888# CONFIG_PPC_DISABLE_WERROR is not set
889CONFIG_PPC_WERROR=y
890CONFIG_PRINT_STACK_DEPTH=64
891# CONFIG_DEBUG_STACKOVERFLOW is not set
892# CONFIG_DEBUG_STACK_USAGE is not set
893# CONFIG_PPC_EMULATED_STATS is not set
894# CONFIG_CODE_PATCHING_SELFTEST is not set
895# CONFIG_FTR_FIXUP_SELFTEST is not set
896# CONFIG_MSI_BITMAP_SELFTEST is not set
897# CONFIG_XMON is not set
898# CONFIG_IRQSTACKS is not set
899# CONFIG_VIRQ_DEBUG is not set
900# CONFIG_BDI_SWITCH is not set
901CONFIG_PPC_EARLY_DEBUG=y
902# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
903# CONFIG_PPC_EARLY_DEBUG_G5 is not set
904# CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL is not set
905# CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE is not set
906# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
907# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
908# CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE is not set
909# CONFIG_PPC_EARLY_DEBUG_BEAT is not set
910CONFIG_PPC_EARLY_DEBUG_44x=y
911# CONFIG_PPC_EARLY_DEBUG_40x is not set
912# CONFIG_PPC_EARLY_DEBUG_CPM is not set
913# CONFIG_PPC_EARLY_DEBUG_USBGECKO is not set
914CONFIG_PPC_EARLY_DEBUG_44x_PHYSLOW=0x40000200
915CONFIG_PPC_EARLY_DEBUG_44x_PHYSHIGH=0x1
916
917#
918# Security options
919#
920# CONFIG_KEYS is not set
921# CONFIG_SECURITY is not set
922# CONFIG_SECURITYFS is not set
923# CONFIG_DEFAULT_SECURITY_SELINUX is not set
924# CONFIG_DEFAULT_SECURITY_SMACK is not set
925# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
926CONFIG_DEFAULT_SECURITY_DAC=y
927CONFIG_DEFAULT_SECURITY=""
928CONFIG_CRYPTO=y
929
930#
931# Crypto core or helper
932#
933CONFIG_CRYPTO_ALGAPI=y
934CONFIG_CRYPTO_ALGAPI2=y
935CONFIG_CRYPTO_AEAD2=y
936CONFIG_CRYPTO_BLKCIPHER=y
937CONFIG_CRYPTO_BLKCIPHER2=y
938CONFIG_CRYPTO_HASH=y
939CONFIG_CRYPTO_HASH2=y
940CONFIG_CRYPTO_RNG2=y
941CONFIG_CRYPTO_PCOMP=y
942CONFIG_CRYPTO_MANAGER=y
943CONFIG_CRYPTO_MANAGER2=y
944# CONFIG_CRYPTO_GF128MUL is not set
945# CONFIG_CRYPTO_NULL is not set
946CONFIG_CRYPTO_WORKQUEUE=y
947# CONFIG_CRYPTO_CRYPTD is not set
948# CONFIG_CRYPTO_AUTHENC is not set
949# CONFIG_CRYPTO_TEST is not set
950
951#
952# Authenticated Encryption with Associated Data
953#
954# CONFIG_CRYPTO_CCM is not set
955# CONFIG_CRYPTO_GCM is not set
956# CONFIG_CRYPTO_SEQIV is not set
957
958#
959# Block modes
960#
961CONFIG_CRYPTO_CBC=y
962# CONFIG_CRYPTO_CTR is not set
963# CONFIG_CRYPTO_CTS is not set
964CONFIG_CRYPTO_ECB=y
965# CONFIG_CRYPTO_LRW is not set
966CONFIG_CRYPTO_PCBC=y
967# CONFIG_CRYPTO_XTS is not set
968
969#
970# Hash modes
971#
972# CONFIG_CRYPTO_HMAC is not set
973# CONFIG_CRYPTO_XCBC is not set
974# CONFIG_CRYPTO_VMAC is not set
975
976#
977# Digest
978#
979# CONFIG_CRYPTO_CRC32C is not set
980# CONFIG_CRYPTO_GHASH is not set
981# CONFIG_CRYPTO_MD4 is not set
982CONFIG_CRYPTO_MD5=y
983# CONFIG_CRYPTO_MICHAEL_MIC is not set
984# CONFIG_CRYPTO_RMD128 is not set
985# CONFIG_CRYPTO_RMD160 is not set
986# CONFIG_CRYPTO_RMD256 is not set
987# CONFIG_CRYPTO_RMD320 is not set
988# CONFIG_CRYPTO_SHA1 is not set
989# CONFIG_CRYPTO_SHA256 is not set
990# CONFIG_CRYPTO_SHA512 is not set
991# CONFIG_CRYPTO_TGR192 is not set
992# CONFIG_CRYPTO_WP512 is not set
993
994#
995# Ciphers
996#
997# CONFIG_CRYPTO_AES is not set
998# CONFIG_CRYPTO_ANUBIS is not set
999# CONFIG_CRYPTO_ARC4 is not set
1000# CONFIG_CRYPTO_BLOWFISH is not set
1001# CONFIG_CRYPTO_CAMELLIA is not set
1002# CONFIG_CRYPTO_CAST5 is not set
1003# CONFIG_CRYPTO_CAST6 is not set
1004CONFIG_CRYPTO_DES=y
1005# CONFIG_CRYPTO_FCRYPT is not set
1006# CONFIG_CRYPTO_KHAZAD is not set
1007# CONFIG_CRYPTO_SALSA20 is not set
1008# CONFIG_CRYPTO_SEED is not set
1009# CONFIG_CRYPTO_SERPENT is not set
1010# CONFIG_CRYPTO_TEA is not set
1011# CONFIG_CRYPTO_TWOFISH is not set
1012
1013#
1014# Compression
1015#
1016# CONFIG_CRYPTO_DEFLATE is not set
1017# CONFIG_CRYPTO_ZLIB is not set
1018# CONFIG_CRYPTO_LZO is not set
1019
1020#
1021# Random Number Generation
1022#
1023# CONFIG_CRYPTO_ANSI_CPRNG is not set
1024# CONFIG_CRYPTO_HW is not set
1025# CONFIG_PPC_CLOCK is not set
1026# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/44x/katmai_defconfig b/arch/powerpc/configs/44x/katmai_defconfig
index af244e1d255e..a2c24d1e051e 100644
--- a/arch/powerpc/configs/44x/katmai_defconfig
+++ b/arch/powerpc/configs/44x/katmai_defconfig
@@ -97,8 +97,7 @@ CONFIG_RCU_FANOUT=32
97CONFIG_LOG_BUF_SHIFT=14 97CONFIG_LOG_BUF_SHIFT=14
98# CONFIG_GROUP_SCHED is not set 98# CONFIG_GROUP_SCHED is not set
99# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
100CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
101CONFIG_SYSFS_DEPRECATED_V2=y
102# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
103# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
104CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/44x/rainier_defconfig b/arch/powerpc/configs/44x/rainier_defconfig
index 8fed3b26af2e..3bb55b57077e 100644
--- a/arch/powerpc/configs/44x/rainier_defconfig
+++ b/arch/powerpc/configs/44x/rainier_defconfig
@@ -101,8 +101,7 @@ CONFIG_FAIR_GROUP_SCHED=y
101CONFIG_USER_SCHED=y 101CONFIG_USER_SCHED=y
102# CONFIG_CGROUP_SCHED is not set 102# CONFIG_CGROUP_SCHED is not set
103# CONFIG_CGROUPS is not set 103# CONFIG_CGROUPS is not set
104CONFIG_SYSFS_DEPRECATED=y 104# CONFIG_SYSFS_DEPRECATED_V2 is not set
105CONFIG_SYSFS_DEPRECATED_V2=y
106# CONFIG_RELAY is not set 105# CONFIG_RELAY is not set
107# CONFIG_NAMESPACES is not set 106# CONFIG_NAMESPACES is not set
108CONFIG_BLK_DEV_INITRD=y 107CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/44x/redwood_defconfig b/arch/powerpc/configs/44x/redwood_defconfig
index a67ec91a28c3..684f40dc8a41 100644
--- a/arch/powerpc/configs/44x/redwood_defconfig
+++ b/arch/powerpc/configs/44x/redwood_defconfig
@@ -98,8 +98,7 @@ CONFIG_RCU_FANOUT=32
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99# CONFIG_GROUP_SCHED is not set 99# CONFIG_GROUP_SCHED is not set
100# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
101CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
102CONFIG_SYSFS_DEPRECATED_V2=y
103# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
104# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
105CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/44x/sam440ep_defconfig b/arch/powerpc/configs/44x/sam440ep_defconfig
index 886cb6aa6432..e202924e6173 100644
--- a/arch/powerpc/configs/44x/sam440ep_defconfig
+++ b/arch/powerpc/configs/44x/sam440ep_defconfig
@@ -103,8 +103,7 @@ CONFIG_FAIR_GROUP_SCHED=y
103CONFIG_USER_SCHED=y 103CONFIG_USER_SCHED=y
104# CONFIG_CGROUP_SCHED is not set 104# CONFIG_CGROUP_SCHED is not set
105# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
106CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
107CONFIG_SYSFS_DEPRECATED_V2=y
108# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
109# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
110CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/44x/sequoia_defconfig b/arch/powerpc/configs/44x/sequoia_defconfig
index 1b2f41dbcafb..c348a4662a9e 100644
--- a/arch/powerpc/configs/44x/sequoia_defconfig
+++ b/arch/powerpc/configs/44x/sequoia_defconfig
@@ -102,8 +102,7 @@ CONFIG_GROUP_SCHED=y
102CONFIG_USER_SCHED=y 102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set 103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 104# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 105# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 106# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 107# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 108CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/44x/taishan_defconfig b/arch/powerpc/configs/44x/taishan_defconfig
index 12041d355b8c..f4cb7e84cb83 100644
--- a/arch/powerpc/configs/44x/taishan_defconfig
+++ b/arch/powerpc/configs/44x/taishan_defconfig
@@ -101,8 +101,7 @@ CONFIG_FAIR_GROUP_SCHED=y
101CONFIG_USER_SCHED=y 101CONFIG_USER_SCHED=y
102# CONFIG_CGROUP_SCHED is not set 102# CONFIG_CGROUP_SCHED is not set
103# CONFIG_CGROUPS is not set 103# CONFIG_CGROUPS is not set
104CONFIG_SYSFS_DEPRECATED=y 104# CONFIG_SYSFS_DEPRECATED_V2 is not set
105CONFIG_SYSFS_DEPRECATED_V2=y
106# CONFIG_RELAY is not set 105# CONFIG_RELAY is not set
107# CONFIG_NAMESPACES is not set 106# CONFIG_NAMESPACES is not set
108CONFIG_BLK_DEV_INITRD=y 107CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/44x/virtex5_defconfig b/arch/powerpc/configs/44x/virtex5_defconfig
index 2518b8568c70..c7ead0ec00bc 100644
--- a/arch/powerpc/configs/44x/virtex5_defconfig
+++ b/arch/powerpc/configs/44x/virtex5_defconfig
@@ -80,8 +80,7 @@ CONFIG_IKCONFIG_PROC=y
80CONFIG_LOG_BUF_SHIFT=14 80CONFIG_LOG_BUF_SHIFT=14
81# CONFIG_GROUP_SCHED is not set 81# CONFIG_GROUP_SCHED is not set
82# CONFIG_CGROUPS is not set 82# CONFIG_CGROUPS is not set
83CONFIG_SYSFS_DEPRECATED=y 83# CONFIG_SYSFS_DEPRECATED_V2 is not set
84CONFIG_SYSFS_DEPRECATED_V2=y
85# CONFIG_RELAY is not set 84# CONFIG_RELAY is not set
86CONFIG_NAMESPACES=y 85CONFIG_NAMESPACES=y
87# CONFIG_UTS_NS is not set 86# CONFIG_UTS_NS is not set
diff --git a/arch/powerpc/configs/52xx/cm5200_defconfig b/arch/powerpc/configs/52xx/cm5200_defconfig
index 218d49b36a0c..7664c83c17c2 100644
--- a/arch/powerpc/configs/52xx/cm5200_defconfig
+++ b/arch/powerpc/configs/52xx/cm5200_defconfig
@@ -95,8 +95,7 @@ CONFIG_RCU_FANOUT=32
95# CONFIG_IKCONFIG is not set 95# CONFIG_IKCONFIG is not set
96CONFIG_LOG_BUF_SHIFT=14 96CONFIG_LOG_BUF_SHIFT=14
97# CONFIG_CGROUPS is not set 97# CONFIG_CGROUPS is not set
98CONFIG_SYSFS_DEPRECATED=y 98# CONFIG_SYSFS_DEPRECATED_V2 is not set
99CONFIG_SYSFS_DEPRECATED_V2=y
100# CONFIG_RELAY is not set 99# CONFIG_RELAY is not set
101# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
102CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/52xx/lite5200b_defconfig b/arch/powerpc/configs/52xx/lite5200b_defconfig
index 90492ff25232..eac7c17eef34 100644
--- a/arch/powerpc/configs/52xx/lite5200b_defconfig
+++ b/arch/powerpc/configs/52xx/lite5200b_defconfig
@@ -96,8 +96,7 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_IKCONFIG is not set 96# CONFIG_IKCONFIG is not set
97CONFIG_LOG_BUF_SHIFT=14 97CONFIG_LOG_BUF_SHIFT=14
98# CONFIG_CGROUPS is not set 98# CONFIG_CGROUPS is not set
99CONFIG_SYSFS_DEPRECATED=y 99# CONFIG_SYSFS_DEPRECATED_V2 is not set
100CONFIG_SYSFS_DEPRECATED_V2=y
101# CONFIG_RELAY is not set 100# CONFIG_RELAY is not set
102# CONFIG_NAMESPACES is not set 101# CONFIG_NAMESPACES is not set
103CONFIG_BLK_DEV_INITRD=y 102CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/52xx/motionpro_defconfig b/arch/powerpc/configs/52xx/motionpro_defconfig
index dffc8cac825f..27afb6ecdf61 100644
--- a/arch/powerpc/configs/52xx/motionpro_defconfig
+++ b/arch/powerpc/configs/52xx/motionpro_defconfig
@@ -95,8 +95,7 @@ CONFIG_RCU_FANOUT=32
95# CONFIG_IKCONFIG is not set 95# CONFIG_IKCONFIG is not set
96CONFIG_LOG_BUF_SHIFT=14 96CONFIG_LOG_BUF_SHIFT=14
97# CONFIG_CGROUPS is not set 97# CONFIG_CGROUPS is not set
98CONFIG_SYSFS_DEPRECATED=y 98# CONFIG_SYSFS_DEPRECATED_V2 is not set
99CONFIG_SYSFS_DEPRECATED_V2=y
100# CONFIG_RELAY is not set 99# CONFIG_RELAY is not set
101# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
102CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/52xx/pcm030_defconfig b/arch/powerpc/configs/52xx/pcm030_defconfig
index 3cb2a522046a..5fe39ddb4e14 100644
--- a/arch/powerpc/configs/52xx/pcm030_defconfig
+++ b/arch/powerpc/configs/52xx/pcm030_defconfig
@@ -98,8 +98,7 @@ CONFIG_IKCONFIG=y
98CONFIG_IKCONFIG_PROC=y 98CONFIG_IKCONFIG_PROC=y
99CONFIG_LOG_BUF_SHIFT=14 99CONFIG_LOG_BUF_SHIFT=14
100# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
101CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
102CONFIG_SYSFS_DEPRECATED_V2=y
103# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
104# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
105# CONFIG_BLK_DEV_INITRD is not set 104# CONFIG_BLK_DEV_INITRD is not set
diff --git a/arch/powerpc/configs/52xx/tqm5200_defconfig b/arch/powerpc/configs/52xx/tqm5200_defconfig
index 96181c62abfa..a108b84c0074 100644
--- a/arch/powerpc/configs/52xx/tqm5200_defconfig
+++ b/arch/powerpc/configs/52xx/tqm5200_defconfig
@@ -95,8 +95,7 @@ CONFIG_RCU_FANOUT=32
95# CONFIG_IKCONFIG is not set 95# CONFIG_IKCONFIG is not set
96CONFIG_LOG_BUF_SHIFT=14 96CONFIG_LOG_BUF_SHIFT=14
97# CONFIG_CGROUPS is not set 97# CONFIG_CGROUPS is not set
98CONFIG_SYSFS_DEPRECATED=y 98# CONFIG_SYSFS_DEPRECATED_V2 is not set
99CONFIG_SYSFS_DEPRECATED_V2=y
100# CONFIG_RELAY is not set 99# CONFIG_RELAY is not set
101# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
102CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/83xx/asp8347_defconfig b/arch/powerpc/configs/83xx/asp8347_defconfig
index baa2bbb6c096..04f16268e1c3 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:14 2010 4# Mon Apr 19 23:16:38 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -97,14 +97,8 @@ CONFIG_RCU_FANOUT=32
97# CONFIG_TREE_RCU_TRACE is not set 97# CONFIG_TREE_RCU_TRACE is not set
98# CONFIG_IKCONFIG is not set 98# CONFIG_IKCONFIG is not set
99CONFIG_LOG_BUF_SHIFT=14 99CONFIG_LOG_BUF_SHIFT=14
100CONFIG_GROUP_SCHED=y
101# CONFIG_FAIR_GROUP_SCHED is not set
102# CONFIG_RT_GROUP_SCHED is not set
103CONFIG_USER_SCHED=y
104# CONFIG_CGROUP_SCHED is not set
105# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
106CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
107CONFIG_SYSFS_DEPRECATED_V2=y
108# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
109# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
110CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
@@ -112,6 +106,7 @@ CONFIG_INITRAMFS_SOURCE=""
112CONFIG_RD_GZIP=y 106CONFIG_RD_GZIP=y
113# CONFIG_RD_BZIP2 is not set 107# CONFIG_RD_BZIP2 is not set
114# CONFIG_RD_LZMA is not set 108# CONFIG_RD_LZMA is not set
109# CONFIG_RD_LZO is not set
115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 110# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
116CONFIG_SYSCTL=y 111CONFIG_SYSCTL=y
117CONFIG_ANON_INODES=y 112CONFIG_ANON_INODES=y
@@ -124,7 +119,7 @@ CONFIG_BUG=y
124CONFIG_ELF_CORE=y 119CONFIG_ELF_CORE=y
125CONFIG_BASE_FULL=y 120CONFIG_BASE_FULL=y
126CONFIG_FUTEX=y 121CONFIG_FUTEX=y
127# CONFIG_EPOLL is not set 122CONFIG_EPOLL=y
128CONFIG_SIGNALFD=y 123CONFIG_SIGNALFD=y
129CONFIG_TIMERFD=y 124CONFIG_TIMERFD=y
130CONFIG_EVENTFD=y 125CONFIG_EVENTFD=y
@@ -325,6 +320,7 @@ CONFIG_ISA_DMA_API=y
325# Bus options 320# Bus options
326# 321#
327CONFIG_ZONE_DMA=y 322CONFIG_ZONE_DMA=y
323# CONFIG_NEED_DMA_MAP_STATE is not set
328CONFIG_GENERIC_ISA_DMA=y 324CONFIG_GENERIC_ISA_DMA=y
329CONFIG_PPC_INDIRECT_PCI=y 325CONFIG_PPC_INDIRECT_PCI=y
330CONFIG_FSL_SOC=y 326CONFIG_FSL_SOC=y
@@ -336,7 +332,6 @@ CONFIG_PCI_SYSCALL=y
336# CONFIG_PCIEPORTBUS is not set 332# CONFIG_PCIEPORTBUS is not set
337CONFIG_ARCH_SUPPORTS_MSI=y 333CONFIG_ARCH_SUPPORTS_MSI=y
338# CONFIG_PCI_MSI is not set 334# CONFIG_PCI_MSI is not set
339# CONFIG_PCI_LEGACY is not set
340# CONFIG_PCI_STUB is not set 335# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 336# CONFIG_PCI_IOV is not set
342# CONFIG_PCCARD is not set 337# CONFIG_PCCARD is not set
@@ -362,7 +357,6 @@ CONFIG_NET=y
362# Networking options 357# Networking options
363# 358#
364CONFIG_PACKET=y 359CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 360CONFIG_UNIX=y
367CONFIG_XFRM=y 361CONFIG_XFRM=y
368CONFIG_XFRM_USER=m 362CONFIG_XFRM_USER=m
@@ -543,6 +537,8 @@ CONFIG_MTD_PHYSMAP_OF=y
543# UBI - Unsorted block images 537# UBI - Unsorted block images
544# 538#
545# CONFIG_MTD_UBI is not set 539# CONFIG_MTD_UBI is not set
540CONFIG_OF_FLATTREE=y
541CONFIG_OF_DYNAMIC=y
546CONFIG_OF_DEVICE=y 542CONFIG_OF_DEVICE=y
547CONFIG_OF_I2C=y 543CONFIG_OF_I2C=y
548CONFIG_OF_MDIO=y 544CONFIG_OF_MDIO=y
@@ -579,6 +575,7 @@ CONFIG_MISC_DEVICES=y
579# CONFIG_ENCLOSURE_SERVICES is not set 575# CONFIG_ENCLOSURE_SERVICES is not set
580# CONFIG_HP_ILO is not set 576# CONFIG_HP_ILO is not set
581# CONFIG_ISL29003 is not set 577# CONFIG_ISL29003 is not set
578# CONFIG_SENSORS_TSL2550 is not set
582# CONFIG_DS1682 is not set 579# CONFIG_DS1682 is not set
583# CONFIG_C2PORT is not set 580# CONFIG_C2PORT is not set
584 581
@@ -596,6 +593,7 @@ CONFIG_HAVE_IDE=y
596# 593#
597# SCSI device support 594# SCSI device support
598# 595#
596CONFIG_SCSI_MOD=y
599# CONFIG_RAID_ATTRS is not set 597# CONFIG_RAID_ATTRS is not set
600# CONFIG_SCSI is not set 598# CONFIG_SCSI is not set
601# CONFIG_SCSI_DMA is not set 599# CONFIG_SCSI_DMA is not set
@@ -788,6 +786,7 @@ CONFIG_SERIAL_CORE=y
788CONFIG_SERIAL_CORE_CONSOLE=y 786CONFIG_SERIAL_CORE_CONSOLE=y
789# CONFIG_SERIAL_JSM is not set 787# CONFIG_SERIAL_JSM is not set
790# CONFIG_SERIAL_OF_PLATFORM is not set 788# CONFIG_SERIAL_OF_PLATFORM is not set
789# CONFIG_SERIAL_TIMBERDALE is not set
791# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 790# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
792CONFIG_UNIX98_PTYS=y 791CONFIG_UNIX98_PTYS=y
793# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 792# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -836,6 +835,7 @@ CONFIG_I2C_HELPER_AUTO=y
836CONFIG_I2C_MPC=y 835CONFIG_I2C_MPC=y
837# CONFIG_I2C_OCORES is not set 836# CONFIG_I2C_OCORES is not set
838# CONFIG_I2C_SIMTEC is not set 837# CONFIG_I2C_SIMTEC is not set
838# CONFIG_I2C_XILINX is not set
839 839
840# 840#
841# External I2C/SMBus adapter drivers 841# External I2C/SMBus adapter drivers
@@ -849,15 +849,9 @@ CONFIG_I2C_MPC=y
849# 849#
850# CONFIG_I2C_PCA_PLATFORM is not set 850# CONFIG_I2C_PCA_PLATFORM is not set
851# CONFIG_I2C_STUB is not set 851# CONFIG_I2C_STUB is not set
852
853#
854# Miscellaneous I2C Chip support
855#
856# CONFIG_SENSORS_TSL2550 is not set
857# CONFIG_I2C_DEBUG_CORE is not set 852# CONFIG_I2C_DEBUG_CORE is not set
858# CONFIG_I2C_DEBUG_ALGO is not set 853# CONFIG_I2C_DEBUG_ALGO is not set
859# CONFIG_I2C_DEBUG_BUS is not set 854# CONFIG_I2C_DEBUG_BUS is not set
860# CONFIG_I2C_DEBUG_CHIP is not set
861# CONFIG_SPI is not set 855# CONFIG_SPI is not set
862 856
863# 857#
@@ -883,10 +877,11 @@ CONFIG_HWMON=y
883# CONFIG_SENSORS_ADM1029 is not set 877# CONFIG_SENSORS_ADM1029 is not set
884# CONFIG_SENSORS_ADM1031 is not set 878# CONFIG_SENSORS_ADM1031 is not set
885# CONFIG_SENSORS_ADM9240 is not set 879# CONFIG_SENSORS_ADM9240 is not set
880# CONFIG_SENSORS_ADT7411 is not set
886# CONFIG_SENSORS_ADT7462 is not set 881# CONFIG_SENSORS_ADT7462 is not set
887# CONFIG_SENSORS_ADT7470 is not set 882# CONFIG_SENSORS_ADT7470 is not set
888# CONFIG_SENSORS_ADT7473 is not set
889# CONFIG_SENSORS_ADT7475 is not set 883# CONFIG_SENSORS_ADT7475 is not set
884# CONFIG_SENSORS_ASC7621 is not set
890# CONFIG_SENSORS_ATXP1 is not set 885# CONFIG_SENSORS_ATXP1 is not set
891# CONFIG_SENSORS_DS1621 is not set 886# CONFIG_SENSORS_DS1621 is not set
892# CONFIG_SENSORS_I5K_AMB is not set 887# CONFIG_SENSORS_I5K_AMB is not set
@@ -923,6 +918,7 @@ CONFIG_HWMON=y
923# CONFIG_SENSORS_SMSC47M192 is not set 918# CONFIG_SENSORS_SMSC47M192 is not set
924# CONFIG_SENSORS_SMSC47B397 is not set 919# CONFIG_SENSORS_SMSC47B397 is not set
925# CONFIG_SENSORS_ADS7828 is not set 920# CONFIG_SENSORS_ADS7828 is not set
921# CONFIG_SENSORS_AMC6821 is not set
926# CONFIG_SENSORS_THMC50 is not set 922# CONFIG_SENSORS_THMC50 is not set
927# CONFIG_SENSORS_TMP401 is not set 923# CONFIG_SENSORS_TMP401 is not set
928# CONFIG_SENSORS_TMP421 is not set 924# CONFIG_SENSORS_TMP421 is not set
@@ -971,18 +967,21 @@ CONFIG_SSB_POSSIBLE=y
971# Multifunction device drivers 967# Multifunction device drivers
972# 968#
973# CONFIG_MFD_CORE is not set 969# CONFIG_MFD_CORE is not set
970# CONFIG_MFD_88PM860X is not set
974# CONFIG_MFD_SM501 is not set 971# CONFIG_MFD_SM501 is not set
975# CONFIG_HTC_PASIC3 is not set 972# CONFIG_HTC_PASIC3 is not set
976# CONFIG_TWL4030_CORE is not set 973# CONFIG_TWL4030_CORE is not set
977# CONFIG_MFD_TMIO is not set 974# CONFIG_MFD_TMIO is not set
978# CONFIG_PMIC_DA903X is not set 975# CONFIG_PMIC_DA903X is not set
979# CONFIG_PMIC_ADP5520 is not set 976# CONFIG_PMIC_ADP5520 is not set
977# CONFIG_MFD_MAX8925 is not set
980# CONFIG_MFD_WM8400 is not set 978# CONFIG_MFD_WM8400 is not set
981# CONFIG_MFD_WM831X is not set 979# CONFIG_MFD_WM831X is not set
982# CONFIG_MFD_WM8350_I2C is not set 980# CONFIG_MFD_WM8350_I2C is not set
981# CONFIG_MFD_WM8994 is not set
983# CONFIG_MFD_PCF50633 is not set 982# CONFIG_MFD_PCF50633 is not set
984# CONFIG_AB3100_CORE is not set 983# CONFIG_AB3100_CORE is not set
985# CONFIG_MFD_88PM8607 is not set 984# CONFIG_LPC_SCH is not set
986# CONFIG_REGULATOR is not set 985# CONFIG_REGULATOR is not set
987# CONFIG_MEDIA_SUPPORT is not set 986# CONFIG_MEDIA_SUPPORT is not set
988 987
@@ -991,6 +990,7 @@ CONFIG_SSB_POSSIBLE=y
991# 990#
992# CONFIG_AGP is not set 991# CONFIG_AGP is not set
993CONFIG_VGA_ARB=y 992CONFIG_VGA_ARB=y
993CONFIG_VGA_ARB_MAX_GPUS=16
994# CONFIG_DRM is not set 994# CONFIG_DRM is not set
995# CONFIG_VGASTATE is not set 995# CONFIG_VGASTATE is not set
996CONFIG_VIDEO_OUTPUT_CONTROL=m 996CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1083,7 +1083,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1083# CONFIG_USB_RIO500 is not set 1083# CONFIG_USB_RIO500 is not set
1084# CONFIG_USB_LEGOTOWER is not set 1084# CONFIG_USB_LEGOTOWER is not set
1085# CONFIG_USB_LCD is not set 1085# CONFIG_USB_LCD is not set
1086# CONFIG_USB_BERRY_CHARGE is not set
1087# CONFIG_USB_LED is not set 1086# CONFIG_USB_LED is not set
1088# CONFIG_USB_CYPRESS_CY7C63 is not set 1087# CONFIG_USB_CYPRESS_CY7C63 is not set
1089# CONFIG_USB_CYTHERM is not set 1088# CONFIG_USB_CYTHERM is not set
@@ -1096,7 +1095,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1096# CONFIG_USB_IOWARRIOR is not set 1095# CONFIG_USB_IOWARRIOR is not set
1097# CONFIG_USB_TEST is not set 1096# CONFIG_USB_TEST is not set
1098# CONFIG_USB_ISIGHTFW is not set 1097# CONFIG_USB_ISIGHTFW is not set
1099# CONFIG_USB_VST is not set
1100# CONFIG_USB_GADGET is not set 1098# CONFIG_USB_GADGET is not set
1101 1099
1102# 1100#
@@ -1259,6 +1257,7 @@ CONFIG_JFFS2_ZLIB=y
1259# CONFIG_JFFS2_LZO is not set 1257# CONFIG_JFFS2_LZO is not set
1260CONFIG_JFFS2_RTIME=y 1258CONFIG_JFFS2_RTIME=y
1261# CONFIG_JFFS2_RUBIN is not set 1259# CONFIG_JFFS2_RUBIN is not set
1260# CONFIG_LOGFS is not set
1262# CONFIG_CRAMFS is not set 1261# CONFIG_CRAMFS is not set
1263# CONFIG_SQUASHFS is not set 1262# CONFIG_SQUASHFS is not set
1264# CONFIG_VXFS_FS is not set 1263# CONFIG_VXFS_FS is not set
@@ -1285,6 +1284,7 @@ CONFIG_SUNRPC_GSS=y
1285CONFIG_RPCSEC_GSS_KRB5=y 1284CONFIG_RPCSEC_GSS_KRB5=y
1286# CONFIG_RPCSEC_GSS_SPKM3 is not set 1285# CONFIG_RPCSEC_GSS_SPKM3 is not set
1287# CONFIG_SMB_FS is not set 1286# CONFIG_SMB_FS is not set
1287# CONFIG_CEPH_FS is not set
1288# CONFIG_CIFS is not set 1288# CONFIG_CIFS is not set
1289# CONFIG_NCP_FS is not set 1289# CONFIG_NCP_FS is not set
1290# CONFIG_CODA_FS is not set 1290# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/kmeter1_defconfig b/arch/powerpc/configs/83xx/kmeter1_defconfig
index 8b1aa806e548..1843ee11823b 100644
--- a/arch/powerpc/configs/83xx/kmeter1_defconfig
+++ b/arch/powerpc/configs/83xx/kmeter1_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:14 2010 4# Mon Apr 19 23:16:39 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -98,7 +98,6 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 98# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 99# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 100CONFIG_LOG_BUF_SHIFT=14
101# CONFIG_GROUP_SCHED is not set
102# CONFIG_CGROUPS is not set 101# CONFIG_CGROUPS is not set
103# CONFIG_SYSFS_DEPRECATED_V2 is not set 102# CONFIG_SYSFS_DEPRECATED_V2 is not set
104# CONFIG_RELAY is not set 103# CONFIG_RELAY is not set
@@ -318,6 +317,7 @@ CONFIG_ISA_DMA_API=y
318# Bus options 317# Bus options
319# 318#
320CONFIG_ZONE_DMA=y 319CONFIG_ZONE_DMA=y
320# CONFIG_NEED_DMA_MAP_STATE is not set
321CONFIG_GENERIC_ISA_DMA=y 321CONFIG_GENERIC_ISA_DMA=y
322CONFIG_FSL_SOC=y 322CONFIG_FSL_SOC=y
323CONFIG_PPC_PCI_CHOICE=y 323CONFIG_PPC_PCI_CHOICE=y
@@ -346,7 +346,6 @@ CONFIG_NET=y
346# Networking options 346# Networking options
347# 347#
348CONFIG_PACKET=y 348CONFIG_PACKET=y
349# CONFIG_PACKET_MMAP is not set
350CONFIG_UNIX=y 349CONFIG_UNIX=y
351# CONFIG_NET_KEY is not set 350# CONFIG_NET_KEY is not set
352CONFIG_INET=y 351CONFIG_INET=y
@@ -387,6 +386,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
387# CONFIG_ATM is not set 386# CONFIG_ATM is not set
388CONFIG_STP=m 387CONFIG_STP=m
389CONFIG_BRIDGE=m 388CONFIG_BRIDGE=m
389CONFIG_BRIDGE_IGMP_SNOOPING=y
390# CONFIG_NET_DSA is not set 390# CONFIG_NET_DSA is not set
391CONFIG_VLAN_8021Q=y 391CONFIG_VLAN_8021Q=y
392# CONFIG_VLAN_8021Q_GVRP is not set 392# CONFIG_VLAN_8021Q_GVRP is not set
@@ -539,6 +539,8 @@ CONFIG_MTD_UBI_DEBUG=y
539# CONFIG_MTD_UBI_DEBUG_MSG_EBA is not set 539# CONFIG_MTD_UBI_DEBUG_MSG_EBA is not set
540# CONFIG_MTD_UBI_DEBUG_MSG_WL is not set 540# CONFIG_MTD_UBI_DEBUG_MSG_WL is not set
541# CONFIG_MTD_UBI_DEBUG_MSG_IO is not set 541# CONFIG_MTD_UBI_DEBUG_MSG_IO is not set
542CONFIG_OF_FLATTREE=y
543CONFIG_OF_DYNAMIC=y
542CONFIG_OF_DEVICE=y 544CONFIG_OF_DEVICE=y
543CONFIG_OF_I2C=y 545CONFIG_OF_I2C=y
544CONFIG_OF_MDIO=y 546CONFIG_OF_MDIO=y
@@ -563,6 +565,7 @@ CONFIG_HAVE_IDE=y
563# 565#
564# SCSI device support 566# SCSI device support
565# 567#
568CONFIG_SCSI_MOD=y
566# CONFIG_RAID_ATTRS is not set 569# CONFIG_RAID_ATTRS is not set
567# CONFIG_SCSI is not set 570# CONFIG_SCSI is not set
568# CONFIG_SCSI_DMA is not set 571# CONFIG_SCSI_DMA is not set
@@ -690,6 +693,7 @@ CONFIG_SERIAL_CORE=y
690CONFIG_SERIAL_CORE_CONSOLE=y 693CONFIG_SERIAL_CORE_CONSOLE=y
691# CONFIG_SERIAL_OF_PLATFORM is not set 694# CONFIG_SERIAL_OF_PLATFORM is not set
692# CONFIG_SERIAL_QE is not set 695# CONFIG_SERIAL_QE is not set
696# CONFIG_SERIAL_TIMBERDALE is not set
693# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 697# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
694CONFIG_UNIX98_PTYS=y 698CONFIG_UNIX98_PTYS=y
695# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 699# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -720,6 +724,7 @@ CONFIG_I2C_HELPER_AUTO=y
720CONFIG_I2C_MPC=y 724CONFIG_I2C_MPC=y
721# CONFIG_I2C_OCORES is not set 725# CONFIG_I2C_OCORES is not set
722# CONFIG_I2C_SIMTEC is not set 726# CONFIG_I2C_SIMTEC is not set
727# CONFIG_I2C_XILINX is not set
723 728
724# 729#
725# External I2C/SMBus adapter drivers 730# External I2C/SMBus adapter drivers
@@ -732,15 +737,9 @@ CONFIG_I2C_MPC=y
732# 737#
733# CONFIG_I2C_PCA_PLATFORM is not set 738# CONFIG_I2C_PCA_PLATFORM is not set
734# CONFIG_I2C_STUB is not set 739# CONFIG_I2C_STUB is not set
735
736#
737# Miscellaneous I2C Chip support
738#
739# CONFIG_SENSORS_TSL2550 is not set
740# CONFIG_I2C_DEBUG_CORE is not set 740# CONFIG_I2C_DEBUG_CORE is not set
741# CONFIG_I2C_DEBUG_ALGO is not set 741# CONFIG_I2C_DEBUG_ALGO is not set
742# CONFIG_I2C_DEBUG_BUS is not set 742# CONFIG_I2C_DEBUG_BUS is not set
743# CONFIG_I2C_DEBUG_CHIP is not set
744# CONFIG_SPI is not set 743# CONFIG_SPI is not set
745 744
746# 745#
@@ -765,18 +764,20 @@ CONFIG_SSB_POSSIBLE=y
765# Multifunction device drivers 764# Multifunction device drivers
766# 765#
767# CONFIG_MFD_CORE is not set 766# CONFIG_MFD_CORE is not set
767# CONFIG_MFD_88PM860X is not set
768# CONFIG_MFD_SM501 is not set 768# CONFIG_MFD_SM501 is not set
769# CONFIG_HTC_PASIC3 is not set 769# CONFIG_HTC_PASIC3 is not set
770# CONFIG_TWL4030_CORE is not set 770# CONFIG_TWL4030_CORE is not set
771# CONFIG_MFD_TMIO is not set 771# CONFIG_MFD_TMIO is not set
772# CONFIG_PMIC_DA903X is not set 772# CONFIG_PMIC_DA903X is not set
773# CONFIG_PMIC_ADP5520 is not set 773# CONFIG_PMIC_ADP5520 is not set
774# CONFIG_MFD_MAX8925 is not set
774# CONFIG_MFD_WM8400 is not set 775# CONFIG_MFD_WM8400 is not set
775# CONFIG_MFD_WM831X is not set 776# CONFIG_MFD_WM831X is not set
776# CONFIG_MFD_WM8350_I2C is not set 777# CONFIG_MFD_WM8350_I2C is not set
778# CONFIG_MFD_WM8994 is not set
777# CONFIG_MFD_PCF50633 is not set 779# CONFIG_MFD_PCF50633 is not set
778# CONFIG_AB3100_CORE is not set 780# CONFIG_AB3100_CORE is not set
779# CONFIG_MFD_88PM8607 is not set
780# CONFIG_REGULATOR is not set 781# CONFIG_REGULATOR is not set
781# CONFIG_MEDIA_SUPPORT is not set 782# CONFIG_MEDIA_SUPPORT is not set
782 783
@@ -805,8 +806,6 @@ CONFIG_SSB_POSSIBLE=y
805CONFIG_UIO=y 806CONFIG_UIO=y
806# CONFIG_UIO_PDRV is not set 807# CONFIG_UIO_PDRV is not set
807# CONFIG_UIO_PDRV_GENIRQ is not set 808# CONFIG_UIO_PDRV_GENIRQ is not set
808# CONFIG_UIO_SMX is not set
809# CONFIG_UIO_SERCOS3 is not set
810 809
811# 810#
812# TI VLYNQ 811# TI VLYNQ
@@ -887,6 +886,7 @@ CONFIG_JFFS2_ZLIB=y
887CONFIG_JFFS2_RTIME=y 886CONFIG_JFFS2_RTIME=y
888# CONFIG_JFFS2_RUBIN is not set 887# CONFIG_JFFS2_RUBIN is not set
889# CONFIG_UBIFS_FS is not set 888# CONFIG_UBIFS_FS is not set
889# CONFIG_LOGFS is not set
890# CONFIG_CRAMFS is not set 890# CONFIG_CRAMFS is not set
891# CONFIG_SQUASHFS is not set 891# CONFIG_SQUASHFS is not set
892# CONFIG_VXFS_FS is not set 892# CONFIG_VXFS_FS is not set
@@ -911,6 +911,7 @@ CONFIG_SUNRPC=y
911# CONFIG_RPCSEC_GSS_KRB5 is not set 911# CONFIG_RPCSEC_GSS_KRB5 is not set
912# CONFIG_RPCSEC_GSS_SPKM3 is not set 912# CONFIG_RPCSEC_GSS_SPKM3 is not set
913# CONFIG_SMB_FS is not set 913# CONFIG_SMB_FS is not set
914# CONFIG_CEPH_FS is not set
914# CONFIG_CIFS is not set 915# CONFIG_CIFS is not set
915# CONFIG_NCP_FS is not set 916# CONFIG_NCP_FS is not set
916# CONFIG_CODA_FS is not set 917# CONFIG_CODA_FS is not set
@@ -976,6 +977,7 @@ CONFIG_DEBUG_FS=y
976CONFIG_DEBUG_BUGVERBOSE=y 977CONFIG_DEBUG_BUGVERBOSE=y
977# CONFIG_DEBUG_MEMORY_INIT is not set 978# CONFIG_DEBUG_MEMORY_INIT is not set
978# CONFIG_RCU_CPU_STALL_DETECTOR is not set 979# CONFIG_RCU_CPU_STALL_DETECTOR is not set
980# CONFIG_LKDTM is not set
979# CONFIG_LATENCYTOP is not set 981# CONFIG_LATENCYTOP is not set
980CONFIG_SYSCTL_SYSCALL_CHECK=y 982CONFIG_SYSCTL_SYSCALL_CHECK=y
981CONFIG_HAVE_FUNCTION_TRACER=y 983CONFIG_HAVE_FUNCTION_TRACER=y
diff --git a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
index 2f2d98558e44..78ae3bf1e9c5 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:15 2010 4# Mon Apr 19 23:16:40 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_DEBUG is not set 334# CONFIG_PCI_DEBUG is not set
340# CONFIG_PCI_STUB is not set 335# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 336# CONFIG_PCI_IOV is not set
@@ -362,7 +357,6 @@ CONFIG_NET=y
362# Networking options 357# Networking options
363# 358#
364CONFIG_PACKET=y 359CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 360CONFIG_UNIX=y
367CONFIG_XFRM=y 361CONFIG_XFRM=y
368# CONFIG_XFRM_USER is not set 362# CONFIG_XFRM_USER is not set
@@ -556,6 +550,8 @@ CONFIG_MTD_NAND_FSL_ELBC=y
556# UBI - Unsorted block images 550# UBI - Unsorted block images
557# 551#
558# CONFIG_MTD_UBI is not set 552# CONFIG_MTD_UBI is not set
553CONFIG_OF_FLATTREE=y
554CONFIG_OF_DYNAMIC=y
559CONFIG_OF_DEVICE=y 555CONFIG_OF_DEVICE=y
560CONFIG_OF_I2C=y 556CONFIG_OF_I2C=y
561CONFIG_OF_SPI=y 557CONFIG_OF_SPI=y
@@ -593,6 +589,7 @@ CONFIG_MISC_DEVICES=y
593# CONFIG_ENCLOSURE_SERVICES is not set 589# CONFIG_ENCLOSURE_SERVICES is not set
594# CONFIG_HP_ILO is not set 590# CONFIG_HP_ILO is not set
595# CONFIG_ISL29003 is not set 591# CONFIG_ISL29003 is not set
592# CONFIG_SENSORS_TSL2550 is not set
596# CONFIG_DS1682 is not set 593# CONFIG_DS1682 is not set
597# CONFIG_TI_DAC7512 is not set 594# CONFIG_TI_DAC7512 is not set
598# CONFIG_C2PORT is not set 595# CONFIG_C2PORT is not set
@@ -612,6 +609,7 @@ CONFIG_HAVE_IDE=y
612# 609#
613# SCSI device support 610# SCSI device support
614# 611#
612CONFIG_SCSI_MOD=y
615# CONFIG_RAID_ATTRS is not set 613# CONFIG_RAID_ATTRS is not set
616CONFIG_SCSI=y 614CONFIG_SCSI=y
617CONFIG_SCSI_DMA=y 615CONFIG_SCSI_DMA=y
@@ -772,6 +770,7 @@ CONFIG_NET_PCI=y
772# CONFIG_PCNET32 is not set 770# CONFIG_PCNET32 is not set
773# CONFIG_AMD8111_ETH is not set 771# CONFIG_AMD8111_ETH is not set
774# CONFIG_ADAPTEC_STARFIRE is not set 772# CONFIG_ADAPTEC_STARFIRE is not set
773# CONFIG_KSZ884X_PCI is not set
775# CONFIG_B44 is not set 774# CONFIG_B44 is not set
776# CONFIG_FORCEDETH is not set 775# CONFIG_FORCEDETH is not set
777CONFIG_E100=y 776CONFIG_E100=y
@@ -824,6 +823,8 @@ CONFIG_NETDEV_10000=y
824# CONFIG_CHELSIO_T1 is not set 823# CONFIG_CHELSIO_T1 is not set
825CONFIG_CHELSIO_T3_DEPENDS=y 824CONFIG_CHELSIO_T3_DEPENDS=y
826# CONFIG_CHELSIO_T3 is not set 825# CONFIG_CHELSIO_T3 is not set
826CONFIG_CHELSIO_T4_DEPENDS=y
827# CONFIG_CHELSIO_T4 is not set
827# CONFIG_ENIC is not set 828# CONFIG_ENIC is not set
828# CONFIG_IXGBE is not set 829# CONFIG_IXGBE is not set
829# CONFIG_IXGB is not set 830# CONFIG_IXGB is not set
@@ -836,6 +837,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
836# CONFIG_MLX4_CORE is not set 837# CONFIG_MLX4_CORE is not set
837# CONFIG_TEHUTI is not set 838# CONFIG_TEHUTI is not set
838# CONFIG_BNX2X is not set 839# CONFIG_BNX2X is not set
840# CONFIG_QLCNIC is not set
839# CONFIG_QLGE is not set 841# CONFIG_QLGE is not set
840# CONFIG_SFC is not set 842# CONFIG_SFC is not set
841# CONFIG_BE2NET is not set 843# CONFIG_BE2NET is not set
@@ -931,6 +933,7 @@ CONFIG_SERIAL_CORE=y
931CONFIG_SERIAL_CORE_CONSOLE=y 933CONFIG_SERIAL_CORE_CONSOLE=y
932# CONFIG_SERIAL_JSM is not set 934# CONFIG_SERIAL_JSM is not set
933# CONFIG_SERIAL_OF_PLATFORM is not set 935# CONFIG_SERIAL_OF_PLATFORM is not set
936# CONFIG_SERIAL_TIMBERDALE is not set
934# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 937# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
935CONFIG_UNIX98_PTYS=y 938CONFIG_UNIX98_PTYS=y
936# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 939# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -980,6 +983,7 @@ CONFIG_I2C_HELPER_AUTO=y
980CONFIG_I2C_MPC=y 983CONFIG_I2C_MPC=y
981# CONFIG_I2C_OCORES is not set 984# CONFIG_I2C_OCORES is not set
982# CONFIG_I2C_SIMTEC is not set 985# CONFIG_I2C_SIMTEC is not set
986# CONFIG_I2C_XILINX is not set
983 987
984# 988#
985# External I2C/SMBus adapter drivers 989# External I2C/SMBus adapter drivers
@@ -993,15 +997,9 @@ CONFIG_I2C_MPC=y
993# 997#
994# CONFIG_I2C_PCA_PLATFORM is not set 998# CONFIG_I2C_PCA_PLATFORM is not set
995# CONFIG_I2C_STUB is not set 999# CONFIG_I2C_STUB is not set
996
997#
998# Miscellaneous I2C Chip support
999#
1000# CONFIG_SENSORS_TSL2550 is not set
1001# CONFIG_I2C_DEBUG_CORE is not set 1000# CONFIG_I2C_DEBUG_CORE is not set
1002# CONFIG_I2C_DEBUG_ALGO is not set 1001# CONFIG_I2C_DEBUG_ALGO is not set
1003# CONFIG_I2C_DEBUG_BUS is not set 1002# CONFIG_I2C_DEBUG_BUS is not set
1004# CONFIG_I2C_DEBUG_CHIP is not set
1005CONFIG_SPI=y 1003CONFIG_SPI=y
1006# CONFIG_SPI_DEBUG is not set 1004# CONFIG_SPI_DEBUG is not set
1007CONFIG_SPI_MASTER=y 1005CONFIG_SPI_MASTER=y
@@ -1044,10 +1042,11 @@ CONFIG_HWMON=y
1044# CONFIG_SENSORS_ADM1029 is not set 1042# CONFIG_SENSORS_ADM1029 is not set
1045# CONFIG_SENSORS_ADM1031 is not set 1043# CONFIG_SENSORS_ADM1031 is not set
1046# CONFIG_SENSORS_ADM9240 is not set 1044# CONFIG_SENSORS_ADM9240 is not set
1045# CONFIG_SENSORS_ADT7411 is not set
1047# CONFIG_SENSORS_ADT7462 is not set 1046# CONFIG_SENSORS_ADT7462 is not set
1048# CONFIG_SENSORS_ADT7470 is not set 1047# CONFIG_SENSORS_ADT7470 is not set
1049# CONFIG_SENSORS_ADT7473 is not set
1050# CONFIG_SENSORS_ADT7475 is not set 1048# CONFIG_SENSORS_ADT7475 is not set
1049# CONFIG_SENSORS_ASC7621 is not set
1051# CONFIG_SENSORS_ATXP1 is not set 1050# CONFIG_SENSORS_ATXP1 is not set
1052# CONFIG_SENSORS_DS1621 is not set 1051# CONFIG_SENSORS_DS1621 is not set
1053# CONFIG_SENSORS_I5K_AMB is not set 1052# CONFIG_SENSORS_I5K_AMB is not set
@@ -1086,6 +1085,7 @@ CONFIG_HWMON=y
1086# CONFIG_SENSORS_SMSC47M192 is not set 1085# CONFIG_SENSORS_SMSC47M192 is not set
1087# CONFIG_SENSORS_SMSC47B397 is not set 1086# CONFIG_SENSORS_SMSC47B397 is not set
1088# CONFIG_SENSORS_ADS7828 is not set 1087# CONFIG_SENSORS_ADS7828 is not set
1088# CONFIG_SENSORS_AMC6821 is not set
1089# CONFIG_SENSORS_THMC50 is not set 1089# CONFIG_SENSORS_THMC50 is not set
1090# CONFIG_SENSORS_TMP401 is not set 1090# CONFIG_SENSORS_TMP401 is not set
1091# CONFIG_SENSORS_TMP421 is not set 1091# CONFIG_SENSORS_TMP421 is not set
@@ -1134,21 +1134,24 @@ CONFIG_SSB_POSSIBLE=y
1134# Multifunction device drivers 1134# Multifunction device drivers
1135# 1135#
1136# CONFIG_MFD_CORE is not set 1136# CONFIG_MFD_CORE is not set
1137# CONFIG_MFD_88PM860X is not set
1137# CONFIG_MFD_SM501 is not set 1138# CONFIG_MFD_SM501 is not set
1138# CONFIG_HTC_PASIC3 is not set 1139# CONFIG_HTC_PASIC3 is not set
1139# CONFIG_TWL4030_CORE is not set 1140# CONFIG_TWL4030_CORE is not set
1140# CONFIG_MFD_TMIO is not set 1141# CONFIG_MFD_TMIO is not set
1141# CONFIG_PMIC_DA903X is not set 1142# CONFIG_PMIC_DA903X is not set
1142# CONFIG_PMIC_ADP5520 is not set 1143# CONFIG_PMIC_ADP5520 is not set
1144# CONFIG_MFD_MAX8925 is not set
1143# CONFIG_MFD_WM8400 is not set 1145# CONFIG_MFD_WM8400 is not set
1144# CONFIG_MFD_WM831X is not set 1146# CONFIG_MFD_WM831X is not set
1145# CONFIG_MFD_WM8350_I2C is not set 1147# CONFIG_MFD_WM8350_I2C is not set
1148# CONFIG_MFD_WM8994 is not set
1146# CONFIG_MFD_PCF50633 is not set 1149# CONFIG_MFD_PCF50633 is not set
1147# CONFIG_MFD_MC13783 is not set 1150# CONFIG_MFD_MC13783 is not set
1148# CONFIG_AB3100_CORE is not set 1151# CONFIG_AB3100_CORE is not set
1149# CONFIG_EZX_PCAP is not set 1152# CONFIG_EZX_PCAP is not set
1150# CONFIG_MFD_88PM8607 is not set
1151# CONFIG_AB4500_CORE is not set 1153# CONFIG_AB4500_CORE is not set
1154# CONFIG_LPC_SCH is not set
1152# CONFIG_REGULATOR is not set 1155# CONFIG_REGULATOR is not set
1153# CONFIG_MEDIA_SUPPORT is not set 1156# CONFIG_MEDIA_SUPPORT is not set
1154 1157
@@ -1157,6 +1160,7 @@ CONFIG_SSB_POSSIBLE=y
1157# 1160#
1158# CONFIG_AGP is not set 1161# CONFIG_AGP is not set
1159CONFIG_VGA_ARB=y 1162CONFIG_VGA_ARB=y
1163CONFIG_VGA_ARB_MAX_GPUS=16
1160# CONFIG_DRM is not set 1164# CONFIG_DRM is not set
1161# CONFIG_VGASTATE is not set 1165# CONFIG_VGASTATE is not set
1162CONFIG_VIDEO_OUTPUT_CONTROL=m 1166CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1289,7 +1293,6 @@ CONFIG_USB_STORAGE=y
1289# CONFIG_USB_RIO500 is not set 1293# CONFIG_USB_RIO500 is not set
1290# CONFIG_USB_LEGOTOWER is not set 1294# CONFIG_USB_LEGOTOWER is not set
1291# CONFIG_USB_LCD is not set 1295# CONFIG_USB_LCD is not set
1292# CONFIG_USB_BERRY_CHARGE is not set
1293# CONFIG_USB_LED is not set 1296# CONFIG_USB_LED is not set
1294# CONFIG_USB_CYPRESS_CY7C63 is not set 1297# CONFIG_USB_CYPRESS_CY7C63 is not set
1295# CONFIG_USB_CYTHERM is not set 1298# CONFIG_USB_CYTHERM is not set
@@ -1302,7 +1305,6 @@ CONFIG_USB_STORAGE=y
1302# CONFIG_USB_IOWARRIOR is not set 1305# CONFIG_USB_IOWARRIOR is not set
1303# CONFIG_USB_TEST is not set 1306# CONFIG_USB_TEST is not set
1304# CONFIG_USB_ISIGHTFW is not set 1307# CONFIG_USB_ISIGHTFW is not set
1305# CONFIG_USB_VST is not set
1306CONFIG_USB_GADGET=y 1308CONFIG_USB_GADGET=y
1307# CONFIG_USB_GADGET_DEBUG is not set 1309# CONFIG_USB_GADGET_DEBUG is not set
1308# CONFIG_USB_GADGET_DEBUG_FILES is not set 1310# CONFIG_USB_GADGET_DEBUG_FILES is not set
@@ -1341,6 +1343,7 @@ CONFIG_USB_ETH_RNDIS=y
1341# CONFIG_USB_MIDI_GADGET is not set 1343# CONFIG_USB_MIDI_GADGET is not set
1342# CONFIG_USB_G_PRINTER is not set 1344# CONFIG_USB_G_PRINTER is not set
1343# CONFIG_USB_CDC_COMPOSITE is not set 1345# CONFIG_USB_CDC_COMPOSITE is not set
1346# CONFIG_USB_G_NOKIA is not set
1344# CONFIG_USB_G_MULTI is not set 1347# CONFIG_USB_G_MULTI is not set
1345 1348
1346# 1349#
@@ -1511,6 +1514,7 @@ CONFIG_JFFS2_ZLIB=y
1511# CONFIG_JFFS2_LZO is not set 1514# CONFIG_JFFS2_LZO is not set
1512CONFIG_JFFS2_RTIME=y 1515CONFIG_JFFS2_RTIME=y
1513# CONFIG_JFFS2_RUBIN is not set 1516# CONFIG_JFFS2_RUBIN is not set
1517# CONFIG_LOGFS is not set
1514# CONFIG_CRAMFS is not set 1518# CONFIG_CRAMFS is not set
1515# CONFIG_SQUASHFS is not set 1519# CONFIG_SQUASHFS is not set
1516# CONFIG_VXFS_FS is not set 1520# CONFIG_VXFS_FS is not set
@@ -1537,6 +1541,7 @@ CONFIG_SUNRPC_GSS=y
1537CONFIG_RPCSEC_GSS_KRB5=y 1541CONFIG_RPCSEC_GSS_KRB5=y
1538# CONFIG_RPCSEC_GSS_SPKM3 is not set 1542# CONFIG_RPCSEC_GSS_SPKM3 is not set
1539# CONFIG_SMB_FS is not set 1543# CONFIG_SMB_FS is not set
1544# CONFIG_CEPH_FS is not set
1540# CONFIG_CIFS is not set 1545# CONFIG_CIFS is not set
1541# CONFIG_NCP_FS is not set 1546# CONFIG_NCP_FS is not set
1542# CONFIG_CODA_FS is not set 1547# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
index 633e61194603..cccb71393aca 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:16 2010 4# Mon Apr 19 23:16:40 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_DEBUG is not set 334# CONFIG_PCI_DEBUG is not set
340# CONFIG_PCI_STUB is not set 335# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 336# CONFIG_PCI_IOV is not set
@@ -362,7 +357,6 @@ CONFIG_NET=y
362# Networking options 357# Networking options
363# 358#
364CONFIG_PACKET=y 359CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 360CONFIG_UNIX=y
367CONFIG_XFRM=y 361CONFIG_XFRM=y
368# CONFIG_XFRM_USER is not set 362# CONFIG_XFRM_USER is not set
@@ -556,6 +550,8 @@ CONFIG_MTD_NAND_IDS=y
556# UBI - Unsorted block images 550# UBI - Unsorted block images
557# 551#
558# CONFIG_MTD_UBI is not set 552# CONFIG_MTD_UBI is not set
553CONFIG_OF_FLATTREE=y
554CONFIG_OF_DYNAMIC=y
559CONFIG_OF_DEVICE=y 555CONFIG_OF_DEVICE=y
560CONFIG_OF_I2C=y 556CONFIG_OF_I2C=y
561CONFIG_OF_SPI=y 557CONFIG_OF_SPI=y
@@ -593,6 +589,7 @@ CONFIG_MISC_DEVICES=y
593# CONFIG_ENCLOSURE_SERVICES is not set 589# CONFIG_ENCLOSURE_SERVICES is not set
594# CONFIG_HP_ILO is not set 590# CONFIG_HP_ILO is not set
595# CONFIG_ISL29003 is not set 591# CONFIG_ISL29003 is not set
592# CONFIG_SENSORS_TSL2550 is not set
596# CONFIG_DS1682 is not set 593# CONFIG_DS1682 is not set
597# CONFIG_TI_DAC7512 is not set 594# CONFIG_TI_DAC7512 is not set
598# CONFIG_C2PORT is not set 595# CONFIG_C2PORT is not set
@@ -612,6 +609,7 @@ CONFIG_HAVE_IDE=y
612# 609#
613# SCSI device support 610# SCSI device support
614# 611#
612CONFIG_SCSI_MOD=y
615# CONFIG_RAID_ATTRS is not set 613# CONFIG_RAID_ATTRS is not set
616CONFIG_SCSI=y 614CONFIG_SCSI=y
617CONFIG_SCSI_DMA=y 615CONFIG_SCSI_DMA=y
@@ -735,6 +733,7 @@ CONFIG_ATA_SFF=y
735# CONFIG_PATA_IT821X is not set 733# CONFIG_PATA_IT821X is not set
736# CONFIG_PATA_IT8213 is not set 734# CONFIG_PATA_IT8213 is not set
737# CONFIG_PATA_JMICRON is not set 735# CONFIG_PATA_JMICRON is not set
736# CONFIG_PATA_LEGACY is not set
738# CONFIG_PATA_TRIFLEX is not set 737# CONFIG_PATA_TRIFLEX is not set
739# CONFIG_PATA_MARVELL is not set 738# CONFIG_PATA_MARVELL is not set
740# CONFIG_PATA_MPIIX is not set 739# CONFIG_PATA_MPIIX is not set
@@ -837,6 +836,7 @@ CONFIG_NET_PCI=y
837# CONFIG_PCNET32 is not set 836# CONFIG_PCNET32 is not set
838# CONFIG_AMD8111_ETH is not set 837# CONFIG_AMD8111_ETH is not set
839# CONFIG_ADAPTEC_STARFIRE is not set 838# CONFIG_ADAPTEC_STARFIRE is not set
839# CONFIG_KSZ884X_PCI is not set
840# CONFIG_B44 is not set 840# CONFIG_B44 is not set
841# CONFIG_FORCEDETH is not set 841# CONFIG_FORCEDETH is not set
842CONFIG_E100=y 842CONFIG_E100=y
@@ -889,6 +889,8 @@ CONFIG_NETDEV_10000=y
889# CONFIG_CHELSIO_T1 is not set 889# CONFIG_CHELSIO_T1 is not set
890CONFIG_CHELSIO_T3_DEPENDS=y 890CONFIG_CHELSIO_T3_DEPENDS=y
891# CONFIG_CHELSIO_T3 is not set 891# CONFIG_CHELSIO_T3 is not set
892CONFIG_CHELSIO_T4_DEPENDS=y
893# CONFIG_CHELSIO_T4 is not set
892# CONFIG_ENIC is not set 894# CONFIG_ENIC is not set
893# CONFIG_IXGBE is not set 895# CONFIG_IXGBE is not set
894# CONFIG_IXGB is not set 896# CONFIG_IXGB is not set
@@ -901,6 +903,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
901# CONFIG_MLX4_CORE is not set 903# CONFIG_MLX4_CORE is not set
902# CONFIG_TEHUTI is not set 904# CONFIG_TEHUTI is not set
903# CONFIG_BNX2X is not set 905# CONFIG_BNX2X is not set
906# CONFIG_QLCNIC is not set
904# CONFIG_QLGE is not set 907# CONFIG_QLGE is not set
905# CONFIG_SFC is not set 908# CONFIG_SFC is not set
906# CONFIG_BE2NET is not set 909# CONFIG_BE2NET is not set
@@ -996,6 +999,7 @@ CONFIG_SERIAL_CORE=y
996CONFIG_SERIAL_CORE_CONSOLE=y 999CONFIG_SERIAL_CORE_CONSOLE=y
997# CONFIG_SERIAL_JSM is not set 1000# CONFIG_SERIAL_JSM is not set
998# CONFIG_SERIAL_OF_PLATFORM is not set 1001# CONFIG_SERIAL_OF_PLATFORM is not set
1002# CONFIG_SERIAL_TIMBERDALE is not set
999# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1003# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1000CONFIG_UNIX98_PTYS=y 1004CONFIG_UNIX98_PTYS=y
1001# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1005# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1045,6 +1049,7 @@ CONFIG_I2C_HELPER_AUTO=y
1045CONFIG_I2C_MPC=y 1049CONFIG_I2C_MPC=y
1046# CONFIG_I2C_OCORES is not set 1050# CONFIG_I2C_OCORES is not set
1047# CONFIG_I2C_SIMTEC is not set 1051# CONFIG_I2C_SIMTEC is not set
1052# CONFIG_I2C_XILINX is not set
1048 1053
1049# 1054#
1050# External I2C/SMBus adapter drivers 1055# External I2C/SMBus adapter drivers
@@ -1058,15 +1063,9 @@ CONFIG_I2C_MPC=y
1058# 1063#
1059# CONFIG_I2C_PCA_PLATFORM is not set 1064# CONFIG_I2C_PCA_PLATFORM is not set
1060# CONFIG_I2C_STUB is not set 1065# CONFIG_I2C_STUB is not set
1061
1062#
1063# Miscellaneous I2C Chip support
1064#
1065# CONFIG_SENSORS_TSL2550 is not set
1066# CONFIG_I2C_DEBUG_CORE is not set 1066# CONFIG_I2C_DEBUG_CORE is not set
1067# CONFIG_I2C_DEBUG_ALGO is not set 1067# CONFIG_I2C_DEBUG_ALGO is not set
1068# CONFIG_I2C_DEBUG_BUS is not set 1068# CONFIG_I2C_DEBUG_BUS is not set
1069# CONFIG_I2C_DEBUG_CHIP is not set
1070CONFIG_SPI=y 1069CONFIG_SPI=y
1071# CONFIG_SPI_DEBUG is not set 1070# CONFIG_SPI_DEBUG is not set
1072CONFIG_SPI_MASTER=y 1071CONFIG_SPI_MASTER=y
@@ -1109,10 +1108,11 @@ CONFIG_HWMON=y
1109# CONFIG_SENSORS_ADM1029 is not set 1108# CONFIG_SENSORS_ADM1029 is not set
1110# CONFIG_SENSORS_ADM1031 is not set 1109# CONFIG_SENSORS_ADM1031 is not set
1111# CONFIG_SENSORS_ADM9240 is not set 1110# CONFIG_SENSORS_ADM9240 is not set
1111# CONFIG_SENSORS_ADT7411 is not set
1112# CONFIG_SENSORS_ADT7462 is not set 1112# CONFIG_SENSORS_ADT7462 is not set
1113# CONFIG_SENSORS_ADT7470 is not set 1113# CONFIG_SENSORS_ADT7470 is not set
1114# CONFIG_SENSORS_ADT7473 is not set
1115# CONFIG_SENSORS_ADT7475 is not set 1114# CONFIG_SENSORS_ADT7475 is not set
1115# CONFIG_SENSORS_ASC7621 is not set
1116# CONFIG_SENSORS_ATXP1 is not set 1116# CONFIG_SENSORS_ATXP1 is not set
1117# CONFIG_SENSORS_DS1621 is not set 1117# CONFIG_SENSORS_DS1621 is not set
1118# CONFIG_SENSORS_I5K_AMB is not set 1118# CONFIG_SENSORS_I5K_AMB is not set
@@ -1151,6 +1151,7 @@ CONFIG_HWMON=y
1151# CONFIG_SENSORS_SMSC47M192 is not set 1151# CONFIG_SENSORS_SMSC47M192 is not set
1152# CONFIG_SENSORS_SMSC47B397 is not set 1152# CONFIG_SENSORS_SMSC47B397 is not set
1153# CONFIG_SENSORS_ADS7828 is not set 1153# CONFIG_SENSORS_ADS7828 is not set
1154# CONFIG_SENSORS_AMC6821 is not set
1154# CONFIG_SENSORS_THMC50 is not set 1155# CONFIG_SENSORS_THMC50 is not set
1155# CONFIG_SENSORS_TMP401 is not set 1156# CONFIG_SENSORS_TMP401 is not set
1156# CONFIG_SENSORS_TMP421 is not set 1157# CONFIG_SENSORS_TMP421 is not set
@@ -1199,21 +1200,24 @@ CONFIG_SSB_POSSIBLE=y
1199# Multifunction device drivers 1200# Multifunction device drivers
1200# 1201#
1201# CONFIG_MFD_CORE is not set 1202# CONFIG_MFD_CORE is not set
1203# CONFIG_MFD_88PM860X is not set
1202# CONFIG_MFD_SM501 is not set 1204# CONFIG_MFD_SM501 is not set
1203# CONFIG_HTC_PASIC3 is not set 1205# CONFIG_HTC_PASIC3 is not set
1204# CONFIG_TWL4030_CORE is not set 1206# CONFIG_TWL4030_CORE is not set
1205# CONFIG_MFD_TMIO is not set 1207# CONFIG_MFD_TMIO is not set
1206# CONFIG_PMIC_DA903X is not set 1208# CONFIG_PMIC_DA903X is not set
1207# CONFIG_PMIC_ADP5520 is not set 1209# CONFIG_PMIC_ADP5520 is not set
1210# CONFIG_MFD_MAX8925 is not set
1208# CONFIG_MFD_WM8400 is not set 1211# CONFIG_MFD_WM8400 is not set
1209# CONFIG_MFD_WM831X is not set 1212# CONFIG_MFD_WM831X is not set
1210# CONFIG_MFD_WM8350_I2C is not set 1213# CONFIG_MFD_WM8350_I2C is not set
1214# CONFIG_MFD_WM8994 is not set
1211# CONFIG_MFD_PCF50633 is not set 1215# CONFIG_MFD_PCF50633 is not set
1212# CONFIG_MFD_MC13783 is not set 1216# CONFIG_MFD_MC13783 is not set
1213# CONFIG_AB3100_CORE is not set 1217# CONFIG_AB3100_CORE is not set
1214# CONFIG_EZX_PCAP is not set 1218# CONFIG_EZX_PCAP is not set
1215# CONFIG_MFD_88PM8607 is not set
1216# CONFIG_AB4500_CORE is not set 1219# CONFIG_AB4500_CORE is not set
1220# CONFIG_LPC_SCH is not set
1217# CONFIG_REGULATOR is not set 1221# CONFIG_REGULATOR is not set
1218# CONFIG_MEDIA_SUPPORT is not set 1222# CONFIG_MEDIA_SUPPORT is not set
1219 1223
@@ -1222,6 +1226,7 @@ CONFIG_SSB_POSSIBLE=y
1222# 1226#
1223# CONFIG_AGP is not set 1227# CONFIG_AGP is not set
1224CONFIG_VGA_ARB=y 1228CONFIG_VGA_ARB=y
1229CONFIG_VGA_ARB_MAX_GPUS=16
1225# CONFIG_DRM is not set 1230# CONFIG_DRM is not set
1226# CONFIG_VGASTATE is not set 1231# CONFIG_VGASTATE is not set
1227CONFIG_VIDEO_OUTPUT_CONTROL=m 1232CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1354,7 +1359,6 @@ CONFIG_USB_STORAGE=y
1354# CONFIG_USB_RIO500 is not set 1359# CONFIG_USB_RIO500 is not set
1355# CONFIG_USB_LEGOTOWER is not set 1360# CONFIG_USB_LEGOTOWER is not set
1356# CONFIG_USB_LCD is not set 1361# CONFIG_USB_LCD is not set
1357# CONFIG_USB_BERRY_CHARGE is not set
1358# CONFIG_USB_LED is not set 1362# CONFIG_USB_LED is not set
1359# CONFIG_USB_CYPRESS_CY7C63 is not set 1363# CONFIG_USB_CYPRESS_CY7C63 is not set
1360# CONFIG_USB_CYTHERM is not set 1364# CONFIG_USB_CYTHERM is not set
@@ -1367,7 +1371,6 @@ CONFIG_USB_STORAGE=y
1367# CONFIG_USB_IOWARRIOR is not set 1371# CONFIG_USB_IOWARRIOR is not set
1368# CONFIG_USB_TEST is not set 1372# CONFIG_USB_TEST is not set
1369# CONFIG_USB_ISIGHTFW is not set 1373# CONFIG_USB_ISIGHTFW is not set
1370# CONFIG_USB_VST is not set
1371CONFIG_USB_GADGET=y 1374CONFIG_USB_GADGET=y
1372# CONFIG_USB_GADGET_DEBUG is not set 1375# CONFIG_USB_GADGET_DEBUG is not set
1373# CONFIG_USB_GADGET_DEBUG_FILES is not set 1376# CONFIG_USB_GADGET_DEBUG_FILES is not set
@@ -1406,6 +1409,7 @@ CONFIG_USB_ETH_RNDIS=y
1406# CONFIG_USB_MIDI_GADGET is not set 1409# CONFIG_USB_MIDI_GADGET is not set
1407# CONFIG_USB_G_PRINTER is not set 1410# CONFIG_USB_G_PRINTER is not set
1408# CONFIG_USB_CDC_COMPOSITE is not set 1411# CONFIG_USB_CDC_COMPOSITE is not set
1412# CONFIG_USB_G_NOKIA is not set
1409# CONFIG_USB_G_MULTI is not set 1413# CONFIG_USB_G_MULTI is not set
1410 1414
1411# 1415#
@@ -1576,6 +1580,7 @@ CONFIG_JFFS2_ZLIB=y
1576# CONFIG_JFFS2_LZO is not set 1580# CONFIG_JFFS2_LZO is not set
1577CONFIG_JFFS2_RTIME=y 1581CONFIG_JFFS2_RTIME=y
1578# CONFIG_JFFS2_RUBIN is not set 1582# CONFIG_JFFS2_RUBIN is not set
1583# CONFIG_LOGFS is not set
1579# CONFIG_CRAMFS is not set 1584# CONFIG_CRAMFS is not set
1580# CONFIG_SQUASHFS is not set 1585# CONFIG_SQUASHFS is not set
1581# CONFIG_VXFS_FS is not set 1586# CONFIG_VXFS_FS is not set
@@ -1602,6 +1607,7 @@ CONFIG_SUNRPC_GSS=y
1602CONFIG_RPCSEC_GSS_KRB5=y 1607CONFIG_RPCSEC_GSS_KRB5=y
1603# CONFIG_RPCSEC_GSS_SPKM3 is not set 1608# CONFIG_RPCSEC_GSS_SPKM3 is not set
1604# CONFIG_SMB_FS is not set 1609# CONFIG_SMB_FS is not set
1610# CONFIG_CEPH_FS is not set
1605# CONFIG_CIFS is not set 1611# CONFIG_CIFS is not set
1606# CONFIG_NCP_FS is not set 1612# CONFIG_NCP_FS is not set
1607# CONFIG_CODA_FS is not set 1613# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
index 0b4262bd4917..74cb27aa9d17 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:17 2010 4# Mon Apr 19 23:16:41 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -325,6 +320,7 @@ CONFIG_ISA_DMA_API=y
325# Bus options 320# Bus options
326# 321#
327CONFIG_ZONE_DMA=y 322CONFIG_ZONE_DMA=y
323# CONFIG_NEED_DMA_MAP_STATE is not set
328CONFIG_GENERIC_ISA_DMA=y 324CONFIG_GENERIC_ISA_DMA=y
329CONFIG_PPC_INDIRECT_PCI=y 325CONFIG_PPC_INDIRECT_PCI=y
330CONFIG_FSL_SOC=y 326CONFIG_FSL_SOC=y
@@ -336,7 +332,6 @@ CONFIG_PCI_SYSCALL=y
336# CONFIG_PCIEPORTBUS is not set 332# CONFIG_PCIEPORTBUS is not set
337CONFIG_ARCH_SUPPORTS_MSI=y 333CONFIG_ARCH_SUPPORTS_MSI=y
338# CONFIG_PCI_MSI is not set 334# CONFIG_PCI_MSI is not set
339# CONFIG_PCI_LEGACY is not set
340# CONFIG_PCI_STUB is not set 335# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 336# CONFIG_PCI_IOV is not set
342# CONFIG_PCCARD is not set 337# CONFIG_PCCARD is not set
@@ -362,7 +357,6 @@ CONFIG_NET=y
362# Networking options 357# Networking options
363# 358#
364CONFIG_PACKET=y 359CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 360CONFIG_UNIX=y
367CONFIG_XFRM=y 361CONFIG_XFRM=y
368# CONFIG_XFRM_USER is not set 362# CONFIG_XFRM_USER is not set
@@ -457,6 +451,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
457# CONFIG_SYS_HYPERVISOR is not set 451# CONFIG_SYS_HYPERVISOR is not set
458# CONFIG_CONNECTOR is not set 452# CONFIG_CONNECTOR is not set
459# CONFIG_MTD is not set 453# CONFIG_MTD is not set
454CONFIG_OF_FLATTREE=y
455CONFIG_OF_DYNAMIC=y
460CONFIG_OF_DEVICE=y 456CONFIG_OF_DEVICE=y
461CONFIG_OF_I2C=y 457CONFIG_OF_I2C=y
462CONFIG_OF_MDIO=y 458CONFIG_OF_MDIO=y
@@ -492,6 +488,7 @@ CONFIG_MISC_DEVICES=y
492# CONFIG_ENCLOSURE_SERVICES is not set 488# CONFIG_ENCLOSURE_SERVICES is not set
493# CONFIG_HP_ILO is not set 489# CONFIG_HP_ILO is not set
494# CONFIG_ISL29003 is not set 490# CONFIG_ISL29003 is not set
491# CONFIG_SENSORS_TSL2550 is not set
495# CONFIG_DS1682 is not set 492# CONFIG_DS1682 is not set
496# CONFIG_C2PORT is not set 493# CONFIG_C2PORT is not set
497 494
@@ -509,6 +506,7 @@ CONFIG_HAVE_IDE=y
509# 506#
510# SCSI device support 507# SCSI device support
511# 508#
509CONFIG_SCSI_MOD=y
512# CONFIG_RAID_ATTRS is not set 510# CONFIG_RAID_ATTRS is not set
513CONFIG_SCSI=y 511CONFIG_SCSI=y
514CONFIG_SCSI_DMA=y 512CONFIG_SCSI_DMA=y
@@ -693,6 +691,8 @@ CONFIG_NETDEV_10000=y
693# CONFIG_CHELSIO_T1 is not set 691# CONFIG_CHELSIO_T1 is not set
694CONFIG_CHELSIO_T3_DEPENDS=y 692CONFIG_CHELSIO_T3_DEPENDS=y
695# CONFIG_CHELSIO_T3 is not set 693# CONFIG_CHELSIO_T3 is not set
694CONFIG_CHELSIO_T4_DEPENDS=y
695# CONFIG_CHELSIO_T4 is not set
696# CONFIG_ENIC is not set 696# CONFIG_ENIC is not set
697# CONFIG_IXGBE is not set 697# CONFIG_IXGBE is not set
698# CONFIG_IXGB is not set 698# CONFIG_IXGB is not set
@@ -705,6 +705,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
705# CONFIG_MLX4_CORE is not set 705# CONFIG_MLX4_CORE is not set
706# CONFIG_TEHUTI is not set 706# CONFIG_TEHUTI is not set
707# CONFIG_BNX2X is not set 707# CONFIG_BNX2X is not set
708# CONFIG_QLCNIC is not set
708# CONFIG_QLGE is not set 709# CONFIG_QLGE is not set
709# CONFIG_SFC is not set 710# CONFIG_SFC is not set
710# CONFIG_BE2NET is not set 711# CONFIG_BE2NET is not set
@@ -790,6 +791,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
790# CONFIG_SERIAL_JSM is not set 791# CONFIG_SERIAL_JSM is not set
791# CONFIG_SERIAL_OF_PLATFORM is not set 792# CONFIG_SERIAL_OF_PLATFORM is not set
792# CONFIG_SERIAL_QE is not set 793# CONFIG_SERIAL_QE is not set
794# CONFIG_SERIAL_TIMBERDALE is not set
793# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 795# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
794CONFIG_UNIX98_PTYS=y 796CONFIG_UNIX98_PTYS=y
795# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 797# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -839,6 +841,7 @@ CONFIG_I2C_HELPER_AUTO=y
839CONFIG_I2C_MPC=y 841CONFIG_I2C_MPC=y
840# CONFIG_I2C_OCORES is not set 842# CONFIG_I2C_OCORES is not set
841# CONFIG_I2C_SIMTEC is not set 843# CONFIG_I2C_SIMTEC is not set
844# CONFIG_I2C_XILINX is not set
842 845
843# 846#
844# External I2C/SMBus adapter drivers 847# External I2C/SMBus adapter drivers
@@ -851,15 +854,9 @@ CONFIG_I2C_MPC=y
851# 854#
852# CONFIG_I2C_PCA_PLATFORM is not set 855# CONFIG_I2C_PCA_PLATFORM is not set
853# CONFIG_I2C_STUB is not set 856# CONFIG_I2C_STUB is not set
854
855#
856# Miscellaneous I2C Chip support
857#
858# CONFIG_SENSORS_TSL2550 is not set
859# CONFIG_I2C_DEBUG_CORE is not set 857# CONFIG_I2C_DEBUG_CORE is not set
860# CONFIG_I2C_DEBUG_ALGO is not set 858# CONFIG_I2C_DEBUG_ALGO is not set
861# CONFIG_I2C_DEBUG_BUS is not set 859# CONFIG_I2C_DEBUG_BUS is not set
862# CONFIG_I2C_DEBUG_CHIP is not set
863# CONFIG_SPI is not set 860# CONFIG_SPI is not set
864 861
865# 862#
@@ -885,10 +882,11 @@ CONFIG_HWMON=y
885# CONFIG_SENSORS_ADM1029 is not set 882# CONFIG_SENSORS_ADM1029 is not set
886# CONFIG_SENSORS_ADM1031 is not set 883# CONFIG_SENSORS_ADM1031 is not set
887# CONFIG_SENSORS_ADM9240 is not set 884# CONFIG_SENSORS_ADM9240 is not set
885# CONFIG_SENSORS_ADT7411 is not set
888# CONFIG_SENSORS_ADT7462 is not set 886# CONFIG_SENSORS_ADT7462 is not set
889# CONFIG_SENSORS_ADT7470 is not set 887# CONFIG_SENSORS_ADT7470 is not set
890# CONFIG_SENSORS_ADT7473 is not set
891# CONFIG_SENSORS_ADT7475 is not set 888# CONFIG_SENSORS_ADT7475 is not set
889# CONFIG_SENSORS_ASC7621 is not set
892# CONFIG_SENSORS_ATXP1 is not set 890# CONFIG_SENSORS_ATXP1 is not set
893# CONFIG_SENSORS_DS1621 is not set 891# CONFIG_SENSORS_DS1621 is not set
894# CONFIG_SENSORS_I5K_AMB is not set 892# CONFIG_SENSORS_I5K_AMB is not set
@@ -925,6 +923,7 @@ CONFIG_HWMON=y
925# CONFIG_SENSORS_SMSC47M192 is not set 923# CONFIG_SENSORS_SMSC47M192 is not set
926# CONFIG_SENSORS_SMSC47B397 is not set 924# CONFIG_SENSORS_SMSC47B397 is not set
927# CONFIG_SENSORS_ADS7828 is not set 925# CONFIG_SENSORS_ADS7828 is not set
926# CONFIG_SENSORS_AMC6821 is not set
928# CONFIG_SENSORS_THMC50 is not set 927# CONFIG_SENSORS_THMC50 is not set
929# CONFIG_SENSORS_TMP401 is not set 928# CONFIG_SENSORS_TMP401 is not set
930# CONFIG_SENSORS_TMP421 is not set 929# CONFIG_SENSORS_TMP421 is not set
@@ -967,18 +966,21 @@ CONFIG_SSB_POSSIBLE=y
967# Multifunction device drivers 966# Multifunction device drivers
968# 967#
969# CONFIG_MFD_CORE is not set 968# CONFIG_MFD_CORE is not set
969# CONFIG_MFD_88PM860X is not set
970# CONFIG_MFD_SM501 is not set 970# CONFIG_MFD_SM501 is not set
971# CONFIG_HTC_PASIC3 is not set 971# CONFIG_HTC_PASIC3 is not set
972# CONFIG_TWL4030_CORE is not set 972# CONFIG_TWL4030_CORE is not set
973# CONFIG_MFD_TMIO is not set 973# CONFIG_MFD_TMIO is not set
974# CONFIG_PMIC_DA903X is not set 974# CONFIG_PMIC_DA903X is not set
975# CONFIG_PMIC_ADP5520 is not set 975# CONFIG_PMIC_ADP5520 is not set
976# CONFIG_MFD_MAX8925 is not set
976# CONFIG_MFD_WM8400 is not set 977# CONFIG_MFD_WM8400 is not set
977# CONFIG_MFD_WM831X is not set 978# CONFIG_MFD_WM831X is not set
978# CONFIG_MFD_WM8350_I2C is not set 979# CONFIG_MFD_WM8350_I2C is not set
980# CONFIG_MFD_WM8994 is not set
979# CONFIG_MFD_PCF50633 is not set 981# CONFIG_MFD_PCF50633 is not set
980# CONFIG_AB3100_CORE is not set 982# CONFIG_AB3100_CORE is not set
981# CONFIG_MFD_88PM8607 is not set 983# CONFIG_LPC_SCH is not set
982# CONFIG_REGULATOR is not set 984# CONFIG_REGULATOR is not set
983# CONFIG_MEDIA_SUPPORT is not set 985# CONFIG_MEDIA_SUPPORT is not set
984 986
@@ -987,6 +989,7 @@ CONFIG_SSB_POSSIBLE=y
987# 989#
988# CONFIG_AGP is not set 990# CONFIG_AGP is not set
989CONFIG_VGA_ARB=y 991CONFIG_VGA_ARB=y
992CONFIG_VGA_ARB_MAX_GPUS=16
990# CONFIG_DRM is not set 993# CONFIG_DRM is not set
991# CONFIG_VGASTATE is not set 994# CONFIG_VGASTATE is not set
992CONFIG_VIDEO_OUTPUT_CONTROL=m 995CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1171,6 +1174,7 @@ CONFIG_MISC_FILESYSTEMS=y
1171# CONFIG_BEFS_FS is not set 1174# CONFIG_BEFS_FS is not set
1172# CONFIG_BFS_FS is not set 1175# CONFIG_BFS_FS is not set
1173# CONFIG_EFS_FS is not set 1176# CONFIG_EFS_FS is not set
1177# CONFIG_LOGFS is not set
1174# CONFIG_CRAMFS is not set 1178# CONFIG_CRAMFS is not set
1175# CONFIG_SQUASHFS is not set 1179# CONFIG_SQUASHFS is not set
1176# CONFIG_VXFS_FS is not set 1180# CONFIG_VXFS_FS is not set
@@ -1197,6 +1201,7 @@ CONFIG_SUNRPC_GSS=y
1197CONFIG_RPCSEC_GSS_KRB5=y 1201CONFIG_RPCSEC_GSS_KRB5=y
1198# CONFIG_RPCSEC_GSS_SPKM3 is not set 1202# CONFIG_RPCSEC_GSS_SPKM3 is not set
1199# CONFIG_SMB_FS is not set 1203# CONFIG_SMB_FS is not set
1204# CONFIG_CEPH_FS is not set
1200# CONFIG_CIFS is not set 1205# CONFIG_CIFS is not set
1201# CONFIG_NCP_FS is not set 1206# CONFIG_NCP_FS is not set
1202# CONFIG_CODA_FS is not set 1207# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
index 155af009f7b5..10412a9c7f90 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:18 2010 4# Mon Apr 19 23:16:42 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -325,6 +320,7 @@ CONFIG_ISA_DMA_API=y
325# Bus options 320# Bus options
326# 321#
327CONFIG_ZONE_DMA=y 322CONFIG_ZONE_DMA=y
323# CONFIG_NEED_DMA_MAP_STATE is not set
328CONFIG_GENERIC_ISA_DMA=y 324CONFIG_GENERIC_ISA_DMA=y
329CONFIG_PPC_INDIRECT_PCI=y 325CONFIG_PPC_INDIRECT_PCI=y
330CONFIG_FSL_SOC=y 326CONFIG_FSL_SOC=y
@@ -336,7 +332,6 @@ CONFIG_PCI_SYSCALL=y
336# CONFIG_PCIEPORTBUS is not set 332# CONFIG_PCIEPORTBUS is not set
337CONFIG_ARCH_SUPPORTS_MSI=y 333CONFIG_ARCH_SUPPORTS_MSI=y
338# CONFIG_PCI_MSI is not set 334# CONFIG_PCI_MSI is not set
339# CONFIG_PCI_LEGACY is not set
340# CONFIG_PCI_STUB is not set 335# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 336# CONFIG_PCI_IOV is not set
342# CONFIG_PCCARD is not set 337# CONFIG_PCCARD is not set
@@ -362,7 +357,6 @@ CONFIG_NET=y
362# Networking options 357# Networking options
363# 358#
364CONFIG_PACKET=y 359CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 360CONFIG_UNIX=y
367CONFIG_XFRM=y 361CONFIG_XFRM=y
368# CONFIG_XFRM_USER is not set 362# CONFIG_XFRM_USER is not set
@@ -457,6 +451,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
457# CONFIG_SYS_HYPERVISOR is not set 451# CONFIG_SYS_HYPERVISOR is not set
458# CONFIG_CONNECTOR is not set 452# CONFIG_CONNECTOR is not set
459# CONFIG_MTD is not set 453# CONFIG_MTD is not set
454CONFIG_OF_FLATTREE=y
455CONFIG_OF_DYNAMIC=y
460CONFIG_OF_DEVICE=y 456CONFIG_OF_DEVICE=y
461CONFIG_OF_I2C=y 457CONFIG_OF_I2C=y
462CONFIG_OF_SPI=y 458CONFIG_OF_SPI=y
@@ -494,6 +490,7 @@ CONFIG_MISC_DEVICES=y
494# CONFIG_ENCLOSURE_SERVICES is not set 490# CONFIG_ENCLOSURE_SERVICES is not set
495# CONFIG_HP_ILO is not set 491# CONFIG_HP_ILO is not set
496# CONFIG_ISL29003 is not set 492# CONFIG_ISL29003 is not set
493# CONFIG_SENSORS_TSL2550 is not set
497# CONFIG_DS1682 is not set 494# CONFIG_DS1682 is not set
498# CONFIG_TI_DAC7512 is not set 495# CONFIG_TI_DAC7512 is not set
499# CONFIG_C2PORT is not set 496# CONFIG_C2PORT is not set
@@ -514,6 +511,7 @@ CONFIG_HAVE_IDE=y
514# 511#
515# SCSI device support 512# SCSI device support
516# 513#
514CONFIG_SCSI_MOD=y
517# CONFIG_RAID_ATTRS is not set 515# CONFIG_RAID_ATTRS is not set
518CONFIG_SCSI=y 516CONFIG_SCSI=y
519CONFIG_SCSI_DMA=y 517CONFIG_SCSI_DMA=y
@@ -700,6 +698,8 @@ CONFIG_NETDEV_10000=y
700# CONFIG_CHELSIO_T1 is not set 698# CONFIG_CHELSIO_T1 is not set
701CONFIG_CHELSIO_T3_DEPENDS=y 699CONFIG_CHELSIO_T3_DEPENDS=y
702# CONFIG_CHELSIO_T3 is not set 700# CONFIG_CHELSIO_T3 is not set
701CONFIG_CHELSIO_T4_DEPENDS=y
702# CONFIG_CHELSIO_T4 is not set
703# CONFIG_ENIC is not set 703# CONFIG_ENIC is not set
704# CONFIG_IXGBE is not set 704# CONFIG_IXGBE is not set
705# CONFIG_IXGB is not set 705# CONFIG_IXGB is not set
@@ -712,6 +712,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
712# CONFIG_MLX4_CORE is not set 712# CONFIG_MLX4_CORE is not set
713# CONFIG_TEHUTI is not set 713# CONFIG_TEHUTI is not set
714# CONFIG_BNX2X is not set 714# CONFIG_BNX2X is not set
715# CONFIG_QLCNIC is not set
715# CONFIG_QLGE is not set 716# CONFIG_QLGE is not set
716# CONFIG_SFC is not set 717# CONFIG_SFC is not set
717# CONFIG_BE2NET is not set 718# CONFIG_BE2NET is not set
@@ -808,6 +809,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
808# CONFIG_SERIAL_JSM is not set 809# CONFIG_SERIAL_JSM is not set
809# CONFIG_SERIAL_OF_PLATFORM is not set 810# CONFIG_SERIAL_OF_PLATFORM is not set
810# CONFIG_SERIAL_QE is not set 811# CONFIG_SERIAL_QE is not set
812# CONFIG_SERIAL_TIMBERDALE is not set
811# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 813# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
812CONFIG_UNIX98_PTYS=y 814CONFIG_UNIX98_PTYS=y
813# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 815# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -859,6 +861,7 @@ CONFIG_I2C_HELPER_AUTO=y
859CONFIG_I2C_MPC=y 861CONFIG_I2C_MPC=y
860# CONFIG_I2C_OCORES is not set 862# CONFIG_I2C_OCORES is not set
861# CONFIG_I2C_SIMTEC is not set 863# CONFIG_I2C_SIMTEC is not set
864# CONFIG_I2C_XILINX is not set
862 865
863# 866#
864# External I2C/SMBus adapter drivers 867# External I2C/SMBus adapter drivers
@@ -872,15 +875,9 @@ CONFIG_I2C_MPC=y
872# 875#
873# CONFIG_I2C_PCA_PLATFORM is not set 876# CONFIG_I2C_PCA_PLATFORM is not set
874# CONFIG_I2C_STUB is not set 877# CONFIG_I2C_STUB is not set
875
876#
877# Miscellaneous I2C Chip support
878#
879# CONFIG_SENSORS_TSL2550 is not set
880# CONFIG_I2C_DEBUG_CORE is not set 878# CONFIG_I2C_DEBUG_CORE is not set
881# CONFIG_I2C_DEBUG_ALGO is not set 879# CONFIG_I2C_DEBUG_ALGO is not set
882# CONFIG_I2C_DEBUG_BUS is not set 880# CONFIG_I2C_DEBUG_BUS is not set
883# CONFIG_I2C_DEBUG_CHIP is not set
884CONFIG_SPI=y 881CONFIG_SPI=y
885CONFIG_SPI_MASTER=y 882CONFIG_SPI_MASTER=y
886 883
@@ -922,10 +919,11 @@ CONFIG_HWMON=y
922# CONFIG_SENSORS_ADM1029 is not set 919# CONFIG_SENSORS_ADM1029 is not set
923# CONFIG_SENSORS_ADM1031 is not set 920# CONFIG_SENSORS_ADM1031 is not set
924# CONFIG_SENSORS_ADM9240 is not set 921# CONFIG_SENSORS_ADM9240 is not set
922# CONFIG_SENSORS_ADT7411 is not set
925# CONFIG_SENSORS_ADT7462 is not set 923# CONFIG_SENSORS_ADT7462 is not set
926# CONFIG_SENSORS_ADT7470 is not set 924# CONFIG_SENSORS_ADT7470 is not set
927# CONFIG_SENSORS_ADT7473 is not set
928# CONFIG_SENSORS_ADT7475 is not set 925# CONFIG_SENSORS_ADT7475 is not set
926# CONFIG_SENSORS_ASC7621 is not set
929# CONFIG_SENSORS_ATXP1 is not set 927# CONFIG_SENSORS_ATXP1 is not set
930# CONFIG_SENSORS_DS1621 is not set 928# CONFIG_SENSORS_DS1621 is not set
931# CONFIG_SENSORS_I5K_AMB is not set 929# CONFIG_SENSORS_I5K_AMB is not set
@@ -964,6 +962,7 @@ CONFIG_HWMON=y
964# CONFIG_SENSORS_SMSC47M192 is not set 962# CONFIG_SENSORS_SMSC47M192 is not set
965# CONFIG_SENSORS_SMSC47B397 is not set 963# CONFIG_SENSORS_SMSC47B397 is not set
966# CONFIG_SENSORS_ADS7828 is not set 964# CONFIG_SENSORS_ADS7828 is not set
965# CONFIG_SENSORS_AMC6821 is not set
967# CONFIG_SENSORS_THMC50 is not set 966# CONFIG_SENSORS_THMC50 is not set
968# CONFIG_SENSORS_TMP401 is not set 967# CONFIG_SENSORS_TMP401 is not set
969# CONFIG_SENSORS_TMP421 is not set 968# CONFIG_SENSORS_TMP421 is not set
@@ -1012,21 +1011,24 @@ CONFIG_SSB_POSSIBLE=y
1012# Multifunction device drivers 1011# Multifunction device drivers
1013# 1012#
1014# CONFIG_MFD_CORE is not set 1013# CONFIG_MFD_CORE is not set
1014# CONFIG_MFD_88PM860X is not set
1015# CONFIG_MFD_SM501 is not set 1015# CONFIG_MFD_SM501 is not set
1016# CONFIG_HTC_PASIC3 is not set 1016# CONFIG_HTC_PASIC3 is not set
1017# CONFIG_TWL4030_CORE is not set 1017# CONFIG_TWL4030_CORE is not set
1018# CONFIG_MFD_TMIO is not set 1018# CONFIG_MFD_TMIO is not set
1019# CONFIG_PMIC_DA903X is not set 1019# CONFIG_PMIC_DA903X is not set
1020# CONFIG_PMIC_ADP5520 is not set 1020# CONFIG_PMIC_ADP5520 is not set
1021# CONFIG_MFD_MAX8925 is not set
1021# CONFIG_MFD_WM8400 is not set 1022# CONFIG_MFD_WM8400 is not set
1022# CONFIG_MFD_WM831X is not set 1023# CONFIG_MFD_WM831X is not set
1023# CONFIG_MFD_WM8350_I2C is not set 1024# CONFIG_MFD_WM8350_I2C is not set
1025# CONFIG_MFD_WM8994 is not set
1024# CONFIG_MFD_PCF50633 is not set 1026# CONFIG_MFD_PCF50633 is not set
1025# CONFIG_MFD_MC13783 is not set 1027# CONFIG_MFD_MC13783 is not set
1026# CONFIG_AB3100_CORE is not set 1028# CONFIG_AB3100_CORE is not set
1027# CONFIG_EZX_PCAP is not set 1029# CONFIG_EZX_PCAP is not set
1028# CONFIG_MFD_88PM8607 is not set
1029# CONFIG_AB4500_CORE is not set 1030# CONFIG_AB4500_CORE is not set
1031# CONFIG_LPC_SCH is not set
1030# CONFIG_REGULATOR is not set 1032# CONFIG_REGULATOR is not set
1031# CONFIG_MEDIA_SUPPORT is not set 1033# CONFIG_MEDIA_SUPPORT is not set
1032 1034
@@ -1035,6 +1037,7 @@ CONFIG_SSB_POSSIBLE=y
1035# 1037#
1036# CONFIG_AGP is not set 1038# CONFIG_AGP is not set
1037CONFIG_VGA_ARB=y 1039CONFIG_VGA_ARB=y
1040CONFIG_VGA_ARB_MAX_GPUS=16
1038# CONFIG_DRM is not set 1041# CONFIG_DRM is not set
1039# CONFIG_VGASTATE is not set 1042# CONFIG_VGASTATE is not set
1040CONFIG_VIDEO_OUTPUT_CONTROL=m 1043CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1166,7 +1169,6 @@ CONFIG_USB_STORAGE=y
1166# CONFIG_USB_RIO500 is not set 1169# CONFIG_USB_RIO500 is not set
1167# CONFIG_USB_LEGOTOWER is not set 1170# CONFIG_USB_LEGOTOWER is not set
1168# CONFIG_USB_LCD is not set 1171# CONFIG_USB_LCD is not set
1169# CONFIG_USB_BERRY_CHARGE is not set
1170# CONFIG_USB_LED is not set 1172# CONFIG_USB_LED is not set
1171# CONFIG_USB_CYPRESS_CY7C63 is not set 1173# CONFIG_USB_CYPRESS_CY7C63 is not set
1172# CONFIG_USB_CYTHERM is not set 1174# CONFIG_USB_CYTHERM is not set
@@ -1179,7 +1181,6 @@ CONFIG_USB_STORAGE=y
1179# CONFIG_USB_IOWARRIOR is not set 1181# CONFIG_USB_IOWARRIOR is not set
1180# CONFIG_USB_TEST is not set 1182# CONFIG_USB_TEST is not set
1181# CONFIG_USB_ISIGHTFW is not set 1183# CONFIG_USB_ISIGHTFW is not set
1182# CONFIG_USB_VST is not set
1183# CONFIG_USB_GADGET is not set 1184# CONFIG_USB_GADGET is not set
1184 1185
1185# 1186#
@@ -1204,8 +1205,6 @@ CONFIG_MMC_BLOCK_BOUNCE=y
1204# 1205#
1205# CONFIG_MMC_SDHCI is not set 1206# CONFIG_MMC_SDHCI is not set
1206# CONFIG_MMC_WBSD is not set 1207# CONFIG_MMC_WBSD is not set
1207# CONFIG_MMC_AT91 is not set
1208# CONFIG_MMC_ATMELMCI is not set
1209# CONFIG_MMC_TIFM_SD is not set 1208# CONFIG_MMC_TIFM_SD is not set
1210CONFIG_MMC_SPI=y 1209CONFIG_MMC_SPI=y
1211# CONFIG_MMC_CB710 is not set 1210# CONFIG_MMC_CB710 is not set
@@ -1298,6 +1297,7 @@ CONFIG_MISC_FILESYSTEMS=y
1298# CONFIG_BEFS_FS is not set 1297# CONFIG_BEFS_FS is not set
1299# CONFIG_BFS_FS is not set 1298# CONFIG_BFS_FS is not set
1300# CONFIG_EFS_FS is not set 1299# CONFIG_EFS_FS is not set
1300# CONFIG_LOGFS is not set
1301# CONFIG_CRAMFS is not set 1301# CONFIG_CRAMFS is not set
1302# CONFIG_SQUASHFS is not set 1302# CONFIG_SQUASHFS is not set
1303# CONFIG_VXFS_FS is not set 1303# CONFIG_VXFS_FS is not set
@@ -1324,6 +1324,7 @@ CONFIG_SUNRPC_GSS=y
1324CONFIG_RPCSEC_GSS_KRB5=y 1324CONFIG_RPCSEC_GSS_KRB5=y
1325# CONFIG_RPCSEC_GSS_SPKM3 is not set 1325# CONFIG_RPCSEC_GSS_SPKM3 is not set
1326# CONFIG_SMB_FS is not set 1326# CONFIG_SMB_FS is not set
1327# CONFIG_CEPH_FS is not set
1327# CONFIG_CIFS is not set 1328# CONFIG_CIFS is not set
1328# CONFIG_NCP_FS is not set 1329# CONFIG_NCP_FS is not set
1329# CONFIG_CODA_FS is not set 1330# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
index ff45f4904488..7b31fc3f3545 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:19 2010 4# Mon Apr 19 23:16:43 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_STUB is not set 334# CONFIG_PCI_STUB is not set
340# CONFIG_PCI_IOV is not set 335# CONFIG_PCI_IOV is not set
341# CONFIG_PCCARD is not set 336# CONFIG_PCCARD is not set
@@ -361,7 +356,6 @@ CONFIG_NET=y
361# Networking options 356# Networking options
362# 357#
363CONFIG_PACKET=y 358CONFIG_PACKET=y
364# CONFIG_PACKET_MMAP is not set
365CONFIG_UNIX=y 359CONFIG_UNIX=y
366CONFIG_XFRM=y 360CONFIG_XFRM=y
367# CONFIG_XFRM_USER is not set 361# CONFIG_XFRM_USER is not set
@@ -540,6 +534,8 @@ CONFIG_MTD_PHYSMAP=y
540# UBI - Unsorted block images 534# UBI - Unsorted block images
541# 535#
542# CONFIG_MTD_UBI is not set 536# CONFIG_MTD_UBI is not set
537CONFIG_OF_FLATTREE=y
538CONFIG_OF_DYNAMIC=y
543CONFIG_OF_DEVICE=y 539CONFIG_OF_DEVICE=y
544CONFIG_OF_I2C=y 540CONFIG_OF_I2C=y
545CONFIG_OF_SPI=y 541CONFIG_OF_SPI=y
@@ -577,6 +573,7 @@ CONFIG_MISC_DEVICES=y
577# CONFIG_ENCLOSURE_SERVICES is not set 573# CONFIG_ENCLOSURE_SERVICES is not set
578# CONFIG_HP_ILO is not set 574# CONFIG_HP_ILO is not set
579# CONFIG_ISL29003 is not set 575# CONFIG_ISL29003 is not set
576# CONFIG_SENSORS_TSL2550 is not set
580# CONFIG_DS1682 is not set 577# CONFIG_DS1682 is not set
581# CONFIG_TI_DAC7512 is not set 578# CONFIG_TI_DAC7512 is not set
582# CONFIG_C2PORT is not set 579# CONFIG_C2PORT is not set
@@ -644,6 +641,7 @@ CONFIG_IDE_PROC_FS=y
644# 641#
645# SCSI device support 642# SCSI device support
646# 643#
644CONFIG_SCSI_MOD=y
647# CONFIG_RAID_ATTRS is not set 645# CONFIG_RAID_ATTRS is not set
648CONFIG_SCSI=y 646CONFIG_SCSI=y
649CONFIG_SCSI_DMA=y 647CONFIG_SCSI_DMA=y
@@ -767,6 +765,7 @@ CONFIG_SATA_SIL=y
767# CONFIG_PATA_IT821X is not set 765# CONFIG_PATA_IT821X is not set
768# CONFIG_PATA_IT8213 is not set 766# CONFIG_PATA_IT8213 is not set
769# CONFIG_PATA_JMICRON is not set 767# CONFIG_PATA_JMICRON is not set
768# CONFIG_PATA_LEGACY is not set
770# CONFIG_PATA_TRIFLEX is not set 769# CONFIG_PATA_TRIFLEX is not set
771# CONFIG_PATA_MARVELL is not set 770# CONFIG_PATA_MARVELL is not set
772# CONFIG_PATA_MPIIX is not set 771# CONFIG_PATA_MPIIX is not set
@@ -880,6 +879,8 @@ CONFIG_NETDEV_10000=y
880# CONFIG_CHELSIO_T1 is not set 879# CONFIG_CHELSIO_T1 is not set
881CONFIG_CHELSIO_T3_DEPENDS=y 880CONFIG_CHELSIO_T3_DEPENDS=y
882# CONFIG_CHELSIO_T3 is not set 881# CONFIG_CHELSIO_T3 is not set
882CONFIG_CHELSIO_T4_DEPENDS=y
883# CONFIG_CHELSIO_T4 is not set
883# CONFIG_ENIC is not set 884# CONFIG_ENIC is not set
884# CONFIG_IXGBE is not set 885# CONFIG_IXGBE is not set
885# CONFIG_IXGB is not set 886# CONFIG_IXGB is not set
@@ -892,6 +893,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
892# CONFIG_MLX4_CORE is not set 893# CONFIG_MLX4_CORE is not set
893# CONFIG_TEHUTI is not set 894# CONFIG_TEHUTI is not set
894# CONFIG_BNX2X is not set 895# CONFIG_BNX2X is not set
896# CONFIG_QLCNIC is not set
895# CONFIG_QLGE is not set 897# CONFIG_QLGE is not set
896# CONFIG_SFC is not set 898# CONFIG_SFC is not set
897# CONFIG_BE2NET is not set 899# CONFIG_BE2NET is not set
@@ -966,6 +968,7 @@ CONFIG_SERIAL_CORE=y
966CONFIG_SERIAL_CORE_CONSOLE=y 968CONFIG_SERIAL_CORE_CONSOLE=y
967# CONFIG_SERIAL_JSM is not set 969# CONFIG_SERIAL_JSM is not set
968# CONFIG_SERIAL_OF_PLATFORM is not set 970# CONFIG_SERIAL_OF_PLATFORM is not set
971# CONFIG_SERIAL_TIMBERDALE is not set
969# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 972# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
970CONFIG_UNIX98_PTYS=y 973CONFIG_UNIX98_PTYS=y
971# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 974# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1015,6 +1018,7 @@ CONFIG_I2C_HELPER_AUTO=y
1015CONFIG_I2C_MPC=y 1018CONFIG_I2C_MPC=y
1016# CONFIG_I2C_OCORES is not set 1019# CONFIG_I2C_OCORES is not set
1017# CONFIG_I2C_SIMTEC is not set 1020# CONFIG_I2C_SIMTEC is not set
1021# CONFIG_I2C_XILINX is not set
1018 1022
1019# 1023#
1020# External I2C/SMBus adapter drivers 1024# External I2C/SMBus adapter drivers
@@ -1028,15 +1032,9 @@ CONFIG_I2C_MPC=y
1028# 1032#
1029# CONFIG_I2C_PCA_PLATFORM is not set 1033# CONFIG_I2C_PCA_PLATFORM is not set
1030# CONFIG_I2C_STUB is not set 1034# CONFIG_I2C_STUB is not set
1031
1032#
1033# Miscellaneous I2C Chip support
1034#
1035# CONFIG_SENSORS_TSL2550 is not set
1036# CONFIG_I2C_DEBUG_CORE is not set 1035# CONFIG_I2C_DEBUG_CORE is not set
1037# CONFIG_I2C_DEBUG_ALGO is not set 1036# CONFIG_I2C_DEBUG_ALGO is not set
1038# CONFIG_I2C_DEBUG_BUS is not set 1037# CONFIG_I2C_DEBUG_BUS is not set
1039# CONFIG_I2C_DEBUG_CHIP is not set
1040CONFIG_SPI=y 1038CONFIG_SPI=y
1041CONFIG_SPI_MASTER=y 1039CONFIG_SPI_MASTER=y
1042 1040
@@ -1095,21 +1093,24 @@ CONFIG_SSB_POSSIBLE=y
1095# Multifunction device drivers 1093# Multifunction device drivers
1096# 1094#
1097# CONFIG_MFD_CORE is not set 1095# CONFIG_MFD_CORE is not set
1096# CONFIG_MFD_88PM860X is not set
1098# CONFIG_MFD_SM501 is not set 1097# CONFIG_MFD_SM501 is not set
1099# CONFIG_HTC_PASIC3 is not set 1098# CONFIG_HTC_PASIC3 is not set
1100# CONFIG_TWL4030_CORE is not set 1099# CONFIG_TWL4030_CORE is not set
1101# CONFIG_MFD_TMIO is not set 1100# CONFIG_MFD_TMIO is not set
1102# CONFIG_PMIC_DA903X is not set 1101# CONFIG_PMIC_DA903X is not set
1103# CONFIG_PMIC_ADP5520 is not set 1102# CONFIG_PMIC_ADP5520 is not set
1103# CONFIG_MFD_MAX8925 is not set
1104# CONFIG_MFD_WM8400 is not set 1104# CONFIG_MFD_WM8400 is not set
1105# CONFIG_MFD_WM831X is not set 1105# CONFIG_MFD_WM831X is not set
1106# CONFIG_MFD_WM8350_I2C is not set 1106# CONFIG_MFD_WM8350_I2C is not set
1107# CONFIG_MFD_WM8994 is not set
1107# CONFIG_MFD_PCF50633 is not set 1108# CONFIG_MFD_PCF50633 is not set
1108# CONFIG_MFD_MC13783 is not set 1109# CONFIG_MFD_MC13783 is not set
1109# CONFIG_AB3100_CORE is not set 1110# CONFIG_AB3100_CORE is not set
1110# CONFIG_EZX_PCAP is not set 1111# CONFIG_EZX_PCAP is not set
1111# CONFIG_MFD_88PM8607 is not set
1112# CONFIG_AB4500_CORE is not set 1112# CONFIG_AB4500_CORE is not set
1113# CONFIG_LPC_SCH is not set
1113# CONFIG_REGULATOR is not set 1114# CONFIG_REGULATOR is not set
1114# CONFIG_MEDIA_SUPPORT is not set 1115# CONFIG_MEDIA_SUPPORT is not set
1115 1116
@@ -1118,6 +1119,7 @@ CONFIG_SSB_POSSIBLE=y
1118# 1119#
1119# CONFIG_AGP is not set 1120# CONFIG_AGP is not set
1120CONFIG_VGA_ARB=y 1121CONFIG_VGA_ARB=y
1122CONFIG_VGA_ARB_MAX_GPUS=16
1121# CONFIG_DRM is not set 1123# CONFIG_DRM is not set
1122# CONFIG_VGASTATE is not set 1124# CONFIG_VGASTATE is not set
1123CONFIG_VIDEO_OUTPUT_CONTROL=m 1125CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1222,7 +1224,6 @@ CONFIG_USB_STORAGE=y
1222# CONFIG_USB_RIO500 is not set 1224# CONFIG_USB_RIO500 is not set
1223# CONFIG_USB_LEGOTOWER is not set 1225# CONFIG_USB_LEGOTOWER is not set
1224# CONFIG_USB_LCD is not set 1226# CONFIG_USB_LCD is not set
1225# CONFIG_USB_BERRY_CHARGE is not set
1226# CONFIG_USB_LED is not set 1227# CONFIG_USB_LED is not set
1227# CONFIG_USB_CYPRESS_CY7C63 is not set 1228# CONFIG_USB_CYPRESS_CY7C63 is not set
1228# CONFIG_USB_CYTHERM is not set 1229# CONFIG_USB_CYTHERM is not set
@@ -1235,7 +1236,6 @@ CONFIG_USB_STORAGE=y
1235# CONFIG_USB_IOWARRIOR is not set 1236# CONFIG_USB_IOWARRIOR is not set
1236# CONFIG_USB_TEST is not set 1237# CONFIG_USB_TEST is not set
1237# CONFIG_USB_ISIGHTFW is not set 1238# CONFIG_USB_ISIGHTFW is not set
1238# CONFIG_USB_VST is not set
1239# CONFIG_USB_GADGET is not set 1239# CONFIG_USB_GADGET is not set
1240 1240
1241# 1241#
@@ -1399,6 +1399,7 @@ CONFIG_MISC_FILESYSTEMS=y
1399# CONFIG_BFS_FS is not set 1399# CONFIG_BFS_FS is not set
1400# CONFIG_EFS_FS is not set 1400# CONFIG_EFS_FS is not set
1401# CONFIG_JFFS2_FS is not set 1401# CONFIG_JFFS2_FS is not set
1402# CONFIG_LOGFS is not set
1402# CONFIG_CRAMFS is not set 1403# CONFIG_CRAMFS is not set
1403# CONFIG_SQUASHFS is not set 1404# CONFIG_SQUASHFS is not set
1404# CONFIG_VXFS_FS is not set 1405# CONFIG_VXFS_FS is not set
@@ -1425,6 +1426,7 @@ CONFIG_SUNRPC_GSS=y
1425CONFIG_RPCSEC_GSS_KRB5=y 1426CONFIG_RPCSEC_GSS_KRB5=y
1426# CONFIG_RPCSEC_GSS_SPKM3 is not set 1427# CONFIG_RPCSEC_GSS_SPKM3 is not set
1427# CONFIG_SMB_FS is not set 1428# CONFIG_SMB_FS is not set
1429# CONFIG_CEPH_FS is not set
1428# CONFIG_CIFS is not set 1430# CONFIG_CIFS is not set
1429# CONFIG_NCP_FS is not set 1431# CONFIG_NCP_FS is not set
1430# CONFIG_CODA_FS is not set 1432# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
index 28d8ff3e8fca..41401a9b355e 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:20 2010 4# Mon Apr 19 23:16:44 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_STUB is not set 334# CONFIG_PCI_STUB is not set
340# CONFIG_PCI_IOV is not set 335# CONFIG_PCI_IOV is not set
341# CONFIG_PCCARD is not set 336# CONFIG_PCCARD is not set
@@ -361,7 +356,6 @@ CONFIG_NET=y
361# Networking options 356# Networking options
362# 357#
363CONFIG_PACKET=y 358CONFIG_PACKET=y
364# CONFIG_PACKET_MMAP is not set
365CONFIG_UNIX=y 359CONFIG_UNIX=y
366CONFIG_XFRM=y 360CONFIG_XFRM=y
367# CONFIG_XFRM_USER is not set 361# CONFIG_XFRM_USER is not set
@@ -540,6 +534,8 @@ CONFIG_MTD_PHYSMAP=y
540# UBI - Unsorted block images 534# UBI - Unsorted block images
541# 535#
542# CONFIG_MTD_UBI is not set 536# CONFIG_MTD_UBI is not set
537CONFIG_OF_FLATTREE=y
538CONFIG_OF_DYNAMIC=y
543CONFIG_OF_DEVICE=y 539CONFIG_OF_DEVICE=y
544CONFIG_OF_I2C=y 540CONFIG_OF_I2C=y
545CONFIG_OF_SPI=y 541CONFIG_OF_SPI=y
@@ -577,6 +573,7 @@ CONFIG_MISC_DEVICES=y
577# CONFIG_ENCLOSURE_SERVICES is not set 573# CONFIG_ENCLOSURE_SERVICES is not set
578# CONFIG_HP_ILO is not set 574# CONFIG_HP_ILO is not set
579# CONFIG_ISL29003 is not set 575# CONFIG_ISL29003 is not set
576# CONFIG_SENSORS_TSL2550 is not set
580# CONFIG_DS1682 is not set 577# CONFIG_DS1682 is not set
581# CONFIG_TI_DAC7512 is not set 578# CONFIG_TI_DAC7512 is not set
582# CONFIG_C2PORT is not set 579# CONFIG_C2PORT is not set
@@ -596,6 +593,7 @@ CONFIG_HAVE_IDE=y
596# 593#
597# SCSI device support 594# SCSI device support
598# 595#
596CONFIG_SCSI_MOD=y
599# CONFIG_RAID_ATTRS is not set 597# CONFIG_RAID_ATTRS is not set
600CONFIG_SCSI=y 598CONFIG_SCSI=y
601CONFIG_SCSI_DMA=y 599CONFIG_SCSI_DMA=y
@@ -756,6 +754,8 @@ CONFIG_NETDEV_10000=y
756# CONFIG_CHELSIO_T1 is not set 754# CONFIG_CHELSIO_T1 is not set
757CONFIG_CHELSIO_T3_DEPENDS=y 755CONFIG_CHELSIO_T3_DEPENDS=y
758# CONFIG_CHELSIO_T3 is not set 756# CONFIG_CHELSIO_T3 is not set
757CONFIG_CHELSIO_T4_DEPENDS=y
758# CONFIG_CHELSIO_T4 is not set
759# CONFIG_ENIC is not set 759# CONFIG_ENIC is not set
760# CONFIG_IXGBE is not set 760# CONFIG_IXGBE is not set
761# CONFIG_IXGB is not set 761# CONFIG_IXGB is not set
@@ -768,6 +768,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
768# CONFIG_MLX4_CORE is not set 768# CONFIG_MLX4_CORE is not set
769# CONFIG_TEHUTI is not set 769# CONFIG_TEHUTI is not set
770# CONFIG_BNX2X is not set 770# CONFIG_BNX2X is not set
771# CONFIG_QLCNIC is not set
771# CONFIG_QLGE is not set 772# CONFIG_QLGE is not set
772# CONFIG_SFC is not set 773# CONFIG_SFC is not set
773# CONFIG_BE2NET is not set 774# CONFIG_BE2NET is not set
@@ -842,6 +843,7 @@ CONFIG_SERIAL_CORE=y
842CONFIG_SERIAL_CORE_CONSOLE=y 843CONFIG_SERIAL_CORE_CONSOLE=y
843# CONFIG_SERIAL_JSM is not set 844# CONFIG_SERIAL_JSM is not set
844# CONFIG_SERIAL_OF_PLATFORM is not set 845# CONFIG_SERIAL_OF_PLATFORM is not set
846# CONFIG_SERIAL_TIMBERDALE is not set
845# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 847# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
846CONFIG_UNIX98_PTYS=y 848CONFIG_UNIX98_PTYS=y
847# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 849# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -891,6 +893,7 @@ CONFIG_I2C_HELPER_AUTO=y
891CONFIG_I2C_MPC=y 893CONFIG_I2C_MPC=y
892# CONFIG_I2C_OCORES is not set 894# CONFIG_I2C_OCORES is not set
893# CONFIG_I2C_SIMTEC is not set 895# CONFIG_I2C_SIMTEC is not set
896# CONFIG_I2C_XILINX is not set
894 897
895# 898#
896# External I2C/SMBus adapter drivers 899# External I2C/SMBus adapter drivers
@@ -904,15 +907,9 @@ CONFIG_I2C_MPC=y
904# 907#
905# CONFIG_I2C_PCA_PLATFORM is not set 908# CONFIG_I2C_PCA_PLATFORM is not set
906# CONFIG_I2C_STUB is not set 909# CONFIG_I2C_STUB is not set
907
908#
909# Miscellaneous I2C Chip support
910#
911# CONFIG_SENSORS_TSL2550 is not set
912# CONFIG_I2C_DEBUG_CORE is not set 910# CONFIG_I2C_DEBUG_CORE is not set
913# CONFIG_I2C_DEBUG_ALGO is not set 911# CONFIG_I2C_DEBUG_ALGO is not set
914# CONFIG_I2C_DEBUG_BUS is not set 912# CONFIG_I2C_DEBUG_BUS is not set
915# CONFIG_I2C_DEBUG_CHIP is not set
916CONFIG_SPI=y 913CONFIG_SPI=y
917CONFIG_SPI_MASTER=y 914CONFIG_SPI_MASTER=y
918 915
@@ -971,21 +968,24 @@ CONFIG_SSB_POSSIBLE=y
971# Multifunction device drivers 968# Multifunction device drivers
972# 969#
973# CONFIG_MFD_CORE is not set 970# CONFIG_MFD_CORE is not set
971# CONFIG_MFD_88PM860X is not set
974# CONFIG_MFD_SM501 is not set 972# CONFIG_MFD_SM501 is not set
975# CONFIG_HTC_PASIC3 is not set 973# CONFIG_HTC_PASIC3 is not set
976# CONFIG_TWL4030_CORE is not set 974# CONFIG_TWL4030_CORE is not set
977# CONFIG_MFD_TMIO is not set 975# CONFIG_MFD_TMIO is not set
978# CONFIG_PMIC_DA903X is not set 976# CONFIG_PMIC_DA903X is not set
979# CONFIG_PMIC_ADP5520 is not set 977# CONFIG_PMIC_ADP5520 is not set
978# CONFIG_MFD_MAX8925 is not set
980# CONFIG_MFD_WM8400 is not set 979# CONFIG_MFD_WM8400 is not set
981# CONFIG_MFD_WM831X is not set 980# CONFIG_MFD_WM831X is not set
982# CONFIG_MFD_WM8350_I2C is not set 981# CONFIG_MFD_WM8350_I2C is not set
982# CONFIG_MFD_WM8994 is not set
983# CONFIG_MFD_PCF50633 is not set 983# CONFIG_MFD_PCF50633 is not set
984# CONFIG_MFD_MC13783 is not set 984# CONFIG_MFD_MC13783 is not set
985# CONFIG_AB3100_CORE is not set 985# CONFIG_AB3100_CORE is not set
986# CONFIG_EZX_PCAP is not set 986# CONFIG_EZX_PCAP is not set
987# CONFIG_MFD_88PM8607 is not set
988# CONFIG_AB4500_CORE is not set 987# CONFIG_AB4500_CORE is not set
988# CONFIG_LPC_SCH is not set
989# CONFIG_REGULATOR is not set 989# CONFIG_REGULATOR is not set
990# CONFIG_MEDIA_SUPPORT is not set 990# CONFIG_MEDIA_SUPPORT is not set
991 991
@@ -994,6 +994,7 @@ CONFIG_SSB_POSSIBLE=y
994# 994#
995# CONFIG_AGP is not set 995# CONFIG_AGP is not set
996CONFIG_VGA_ARB=y 996CONFIG_VGA_ARB=y
997CONFIG_VGA_ARB_MAX_GPUS=16
997# CONFIG_DRM is not set 998# CONFIG_DRM is not set
998# CONFIG_VGASTATE is not set 999# CONFIG_VGASTATE is not set
999CONFIG_VIDEO_OUTPUT_CONTROL=m 1000CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1098,7 +1099,6 @@ CONFIG_USB_STORAGE=y
1098# CONFIG_USB_RIO500 is not set 1099# CONFIG_USB_RIO500 is not set
1099# CONFIG_USB_LEGOTOWER is not set 1100# CONFIG_USB_LEGOTOWER is not set
1100# CONFIG_USB_LCD is not set 1101# CONFIG_USB_LCD is not set
1101# CONFIG_USB_BERRY_CHARGE is not set
1102# CONFIG_USB_LED is not set 1102# CONFIG_USB_LED is not set
1103# CONFIG_USB_CYPRESS_CY7C63 is not set 1103# CONFIG_USB_CYPRESS_CY7C63 is not set
1104# CONFIG_USB_CYTHERM is not set 1104# CONFIG_USB_CYTHERM is not set
@@ -1111,7 +1111,6 @@ CONFIG_USB_STORAGE=y
1111# CONFIG_USB_IOWARRIOR is not set 1111# CONFIG_USB_IOWARRIOR is not set
1112# CONFIG_USB_TEST is not set 1112# CONFIG_USB_TEST is not set
1113# CONFIG_USB_ISIGHTFW is not set 1113# CONFIG_USB_ISIGHTFW is not set
1114# CONFIG_USB_VST is not set
1115# CONFIG_USB_GADGET is not set 1114# CONFIG_USB_GADGET is not set
1116 1115
1117# 1116#
@@ -1275,6 +1274,7 @@ CONFIG_MISC_FILESYSTEMS=y
1275# CONFIG_BFS_FS is not set 1274# CONFIG_BFS_FS is not set
1276# CONFIG_EFS_FS is not set 1275# CONFIG_EFS_FS is not set
1277# CONFIG_JFFS2_FS is not set 1276# CONFIG_JFFS2_FS is not set
1277# CONFIG_LOGFS is not set
1278# CONFIG_CRAMFS is not set 1278# CONFIG_CRAMFS is not set
1279# CONFIG_SQUASHFS is not set 1279# CONFIG_SQUASHFS is not set
1280# CONFIG_VXFS_FS is not set 1280# CONFIG_VXFS_FS is not set
@@ -1301,6 +1301,7 @@ CONFIG_SUNRPC_GSS=y
1301CONFIG_RPCSEC_GSS_KRB5=y 1301CONFIG_RPCSEC_GSS_KRB5=y
1302# CONFIG_RPCSEC_GSS_SPKM3 is not set 1302# CONFIG_RPCSEC_GSS_SPKM3 is not set
1303# CONFIG_SMB_FS is not set 1303# CONFIG_SMB_FS is not set
1304# CONFIG_CEPH_FS is not set
1304# CONFIG_CIFS is not set 1305# CONFIG_CIFS is not set
1305# CONFIG_NCP_FS is not set 1306# CONFIG_NCP_FS is not set
1306# CONFIG_CODA_FS is not set 1307# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
index 6252ab5bf181..dc176b676dce 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:21 2010 4# Mon Apr 19 23:16:45 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_STUB is not set 334# CONFIG_PCI_STUB is not set
340# CONFIG_PCI_IOV is not set 335# CONFIG_PCI_IOV is not set
341# CONFIG_PCCARD is not set 336# CONFIG_PCCARD is not set
@@ -361,7 +356,6 @@ CONFIG_NET=y
361# Networking options 356# Networking options
362# 357#
363CONFIG_PACKET=y 358CONFIG_PACKET=y
364# CONFIG_PACKET_MMAP is not set
365CONFIG_UNIX=y 359CONFIG_UNIX=y
366CONFIG_XFRM=y 360CONFIG_XFRM=y
367CONFIG_XFRM_USER=m 361CONFIG_XFRM_USER=m
@@ -456,6 +450,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
456# CONFIG_SYS_HYPERVISOR is not set 450# CONFIG_SYS_HYPERVISOR is not set
457# CONFIG_CONNECTOR is not set 451# CONFIG_CONNECTOR is not set
458# CONFIG_MTD is not set 452# CONFIG_MTD is not set
453CONFIG_OF_FLATTREE=y
454CONFIG_OF_DYNAMIC=y
459CONFIG_OF_DEVICE=y 455CONFIG_OF_DEVICE=y
460CONFIG_OF_I2C=y 456CONFIG_OF_I2C=y
461CONFIG_OF_MDIO=y 457CONFIG_OF_MDIO=y
@@ -491,6 +487,7 @@ CONFIG_MISC_DEVICES=y
491# CONFIG_ENCLOSURE_SERVICES is not set 487# CONFIG_ENCLOSURE_SERVICES is not set
492# CONFIG_HP_ILO is not set 488# CONFIG_HP_ILO is not set
493# CONFIG_ISL29003 is not set 489# CONFIG_ISL29003 is not set
490# CONFIG_SENSORS_TSL2550 is not set
494# CONFIG_DS1682 is not set 491# CONFIG_DS1682 is not set
495# CONFIG_C2PORT is not set 492# CONFIG_C2PORT is not set
496 493
@@ -508,6 +505,7 @@ CONFIG_HAVE_IDE=y
508# 505#
509# SCSI device support 506# SCSI device support
510# 507#
508CONFIG_SCSI_MOD=y
511# CONFIG_RAID_ATTRS is not set 509# CONFIG_RAID_ATTRS is not set
512# CONFIG_SCSI is not set 510# CONFIG_SCSI is not set
513# CONFIG_SCSI_DMA is not set 511# CONFIG_SCSI_DMA is not set
@@ -580,6 +578,7 @@ CONFIG_NET_PCI=y
580# CONFIG_PCNET32 is not set 578# CONFIG_PCNET32 is not set
581# CONFIG_AMD8111_ETH is not set 579# CONFIG_AMD8111_ETH is not set
582# CONFIG_ADAPTEC_STARFIRE is not set 580# CONFIG_ADAPTEC_STARFIRE is not set
581# CONFIG_KSZ884X_PCI is not set
583# CONFIG_B44 is not set 582# CONFIG_B44 is not set
584# CONFIG_FORCEDETH is not set 583# CONFIG_FORCEDETH is not set
585CONFIG_E100=y 584CONFIG_E100=y
@@ -631,6 +630,8 @@ CONFIG_NETDEV_10000=y
631# CONFIG_CHELSIO_T1 is not set 630# CONFIG_CHELSIO_T1 is not set
632CONFIG_CHELSIO_T3_DEPENDS=y 631CONFIG_CHELSIO_T3_DEPENDS=y
633# CONFIG_CHELSIO_T3 is not set 632# CONFIG_CHELSIO_T3 is not set
633CONFIG_CHELSIO_T4_DEPENDS=y
634# CONFIG_CHELSIO_T4 is not set
634# CONFIG_ENIC is not set 635# CONFIG_ENIC is not set
635# CONFIG_IXGBE is not set 636# CONFIG_IXGBE is not set
636# CONFIG_IXGB is not set 637# CONFIG_IXGB is not set
@@ -643,6 +644,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
643# CONFIG_MLX4_CORE is not set 644# CONFIG_MLX4_CORE is not set
644# CONFIG_TEHUTI is not set 645# CONFIG_TEHUTI is not set
645# CONFIG_BNX2X is not set 646# CONFIG_BNX2X is not set
647# CONFIG_QLCNIC is not set
646# CONFIG_QLGE is not set 648# CONFIG_QLGE is not set
647# CONFIG_SFC is not set 649# CONFIG_SFC is not set
648# CONFIG_BE2NET is not set 650# CONFIG_BE2NET is not set
@@ -726,6 +728,7 @@ CONFIG_SERIAL_CORE=y
726CONFIG_SERIAL_CORE_CONSOLE=y 728CONFIG_SERIAL_CORE_CONSOLE=y
727# CONFIG_SERIAL_JSM is not set 729# CONFIG_SERIAL_JSM is not set
728# CONFIG_SERIAL_OF_PLATFORM is not set 730# CONFIG_SERIAL_OF_PLATFORM is not set
731# CONFIG_SERIAL_TIMBERDALE is not set
729# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 732# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
730CONFIG_UNIX98_PTYS=y 733CONFIG_UNIX98_PTYS=y
731# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 734# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -774,6 +777,7 @@ CONFIG_I2C_HELPER_AUTO=y
774CONFIG_I2C_MPC=y 777CONFIG_I2C_MPC=y
775# CONFIG_I2C_OCORES is not set 778# CONFIG_I2C_OCORES is not set
776# CONFIG_I2C_SIMTEC is not set 779# CONFIG_I2C_SIMTEC is not set
780# CONFIG_I2C_XILINX is not set
777 781
778# 782#
779# External I2C/SMBus adapter drivers 783# External I2C/SMBus adapter drivers
@@ -786,15 +790,9 @@ CONFIG_I2C_MPC=y
786# 790#
787# CONFIG_I2C_PCA_PLATFORM is not set 791# CONFIG_I2C_PCA_PLATFORM is not set
788# CONFIG_I2C_STUB is not set 792# CONFIG_I2C_STUB is not set
789
790#
791# Miscellaneous I2C Chip support
792#
793# CONFIG_SENSORS_TSL2550 is not set
794# CONFIG_I2C_DEBUG_CORE is not set 793# CONFIG_I2C_DEBUG_CORE is not set
795# CONFIG_I2C_DEBUG_ALGO is not set 794# CONFIG_I2C_DEBUG_ALGO is not set
796# CONFIG_I2C_DEBUG_BUS is not set 795# CONFIG_I2C_DEBUG_BUS is not set
797# CONFIG_I2C_DEBUG_CHIP is not set
798# CONFIG_SPI is not set 796# CONFIG_SPI is not set
799 797
800# 798#
@@ -820,10 +818,11 @@ CONFIG_HWMON=y
820# CONFIG_SENSORS_ADM1029 is not set 818# CONFIG_SENSORS_ADM1029 is not set
821# CONFIG_SENSORS_ADM1031 is not set 819# CONFIG_SENSORS_ADM1031 is not set
822# CONFIG_SENSORS_ADM9240 is not set 820# CONFIG_SENSORS_ADM9240 is not set
821# CONFIG_SENSORS_ADT7411 is not set
823# CONFIG_SENSORS_ADT7462 is not set 822# CONFIG_SENSORS_ADT7462 is not set
824# CONFIG_SENSORS_ADT7470 is not set 823# CONFIG_SENSORS_ADT7470 is not set
825# CONFIG_SENSORS_ADT7473 is not set
826# CONFIG_SENSORS_ADT7475 is not set 824# CONFIG_SENSORS_ADT7475 is not set
825# CONFIG_SENSORS_ASC7621 is not set
827# CONFIG_SENSORS_ATXP1 is not set 826# CONFIG_SENSORS_ATXP1 is not set
828# CONFIG_SENSORS_DS1621 is not set 827# CONFIG_SENSORS_DS1621 is not set
829# CONFIG_SENSORS_I5K_AMB is not set 828# CONFIG_SENSORS_I5K_AMB is not set
@@ -860,6 +859,7 @@ CONFIG_HWMON=y
860# CONFIG_SENSORS_SMSC47M192 is not set 859# CONFIG_SENSORS_SMSC47M192 is not set
861# CONFIG_SENSORS_SMSC47B397 is not set 860# CONFIG_SENSORS_SMSC47B397 is not set
862# CONFIG_SENSORS_ADS7828 is not set 861# CONFIG_SENSORS_ADS7828 is not set
862# CONFIG_SENSORS_AMC6821 is not set
863# CONFIG_SENSORS_THMC50 is not set 863# CONFIG_SENSORS_THMC50 is not set
864# CONFIG_SENSORS_TMP401 is not set 864# CONFIG_SENSORS_TMP401 is not set
865# CONFIG_SENSORS_TMP421 is not set 865# CONFIG_SENSORS_TMP421 is not set
@@ -902,18 +902,21 @@ CONFIG_SSB_POSSIBLE=y
902# Multifunction device drivers 902# Multifunction device drivers
903# 903#
904# CONFIG_MFD_CORE is not set 904# CONFIG_MFD_CORE is not set
905# CONFIG_MFD_88PM860X is not set
905# CONFIG_MFD_SM501 is not set 906# CONFIG_MFD_SM501 is not set
906# CONFIG_HTC_PASIC3 is not set 907# CONFIG_HTC_PASIC3 is not set
907# CONFIG_TWL4030_CORE is not set 908# CONFIG_TWL4030_CORE is not set
908# CONFIG_MFD_TMIO is not set 909# CONFIG_MFD_TMIO is not set
909# CONFIG_PMIC_DA903X is not set 910# CONFIG_PMIC_DA903X is not set
910# CONFIG_PMIC_ADP5520 is not set 911# CONFIG_PMIC_ADP5520 is not set
912# CONFIG_MFD_MAX8925 is not set
911# CONFIG_MFD_WM8400 is not set 913# CONFIG_MFD_WM8400 is not set
912# CONFIG_MFD_WM831X is not set 914# CONFIG_MFD_WM831X is not set
913# CONFIG_MFD_WM8350_I2C is not set 915# CONFIG_MFD_WM8350_I2C is not set
916# CONFIG_MFD_WM8994 is not set
914# CONFIG_MFD_PCF50633 is not set 917# CONFIG_MFD_PCF50633 is not set
915# CONFIG_AB3100_CORE is not set 918# CONFIG_AB3100_CORE is not set
916# CONFIG_MFD_88PM8607 is not set 919# CONFIG_LPC_SCH is not set
917# CONFIG_REGULATOR is not set 920# CONFIG_REGULATOR is not set
918# CONFIG_MEDIA_SUPPORT is not set 921# CONFIG_MEDIA_SUPPORT is not set
919 922
@@ -922,6 +925,7 @@ CONFIG_SSB_POSSIBLE=y
922# 925#
923# CONFIG_AGP is not set 926# CONFIG_AGP is not set
924CONFIG_VGA_ARB=y 927CONFIG_VGA_ARB=y
928CONFIG_VGA_ARB_MAX_GPUS=16
925# CONFIG_DRM is not set 929# CONFIG_DRM is not set
926# CONFIG_VGASTATE is not set 930# CONFIG_VGASTATE is not set
927CONFIG_VIDEO_OUTPUT_CONTROL=m 931CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1106,6 +1110,7 @@ CONFIG_MISC_FILESYSTEMS=y
1106# CONFIG_BEFS_FS is not set 1110# CONFIG_BEFS_FS is not set
1107# CONFIG_BFS_FS is not set 1111# CONFIG_BFS_FS is not set
1108# CONFIG_EFS_FS is not set 1112# CONFIG_EFS_FS is not set
1113# CONFIG_LOGFS is not set
1109# CONFIG_CRAMFS is not set 1114# CONFIG_CRAMFS is not set
1110# CONFIG_SQUASHFS is not set 1115# CONFIG_SQUASHFS is not set
1111# CONFIG_VXFS_FS is not set 1116# CONFIG_VXFS_FS is not set
@@ -1132,6 +1137,7 @@ CONFIG_SUNRPC_GSS=y
1132CONFIG_RPCSEC_GSS_KRB5=y 1137CONFIG_RPCSEC_GSS_KRB5=y
1133# CONFIG_RPCSEC_GSS_SPKM3 is not set 1138# CONFIG_RPCSEC_GSS_SPKM3 is not set
1134# CONFIG_SMB_FS is not set 1139# CONFIG_SMB_FS is not set
1140# CONFIG_CEPH_FS is not set
1135# CONFIG_CIFS is not set 1141# CONFIG_CIFS is not set
1136# CONFIG_NCP_FS is not set 1142# CONFIG_NCP_FS is not set
1137# CONFIG_CODA_FS is not set 1143# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
index 78227378e678..f512972c7176 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:21 2010 4# Mon Apr 19 23:16:46 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -323,6 +318,7 @@ CONFIG_ISA_DMA_API=y
323# Bus options 318# Bus options
324# 319#
325CONFIG_ZONE_DMA=y 320CONFIG_ZONE_DMA=y
321# CONFIG_NEED_DMA_MAP_STATE is not set
326CONFIG_GENERIC_ISA_DMA=y 322CONFIG_GENERIC_ISA_DMA=y
327CONFIG_PPC_INDIRECT_PCI=y 323CONFIG_PPC_INDIRECT_PCI=y
328CONFIG_FSL_SOC=y 324CONFIG_FSL_SOC=y
@@ -334,7 +330,6 @@ CONFIG_PCI_SYSCALL=y
334# CONFIG_PCIEPORTBUS is not set 330# CONFIG_PCIEPORTBUS is not set
335CONFIG_ARCH_SUPPORTS_MSI=y 331CONFIG_ARCH_SUPPORTS_MSI=y
336# CONFIG_PCI_MSI is not set 332# CONFIG_PCI_MSI is not set
337# CONFIG_PCI_LEGACY is not set
338# CONFIG_PCI_STUB is not set 333# CONFIG_PCI_STUB is not set
339# CONFIG_PCI_IOV is not set 334# CONFIG_PCI_IOV is not set
340# CONFIG_PCCARD is not set 335# CONFIG_PCCARD is not set
@@ -360,7 +355,6 @@ CONFIG_NET=y
360# Networking options 355# Networking options
361# 356#
362CONFIG_PACKET=y 357CONFIG_PACKET=y
363# CONFIG_PACKET_MMAP is not set
364CONFIG_UNIX=y 358CONFIG_UNIX=y
365CONFIG_XFRM=y 359CONFIG_XFRM=y
366# CONFIG_XFRM_USER is not set 360# CONFIG_XFRM_USER is not set
@@ -538,6 +532,8 @@ CONFIG_MTD_PHYSMAP_OF=y
538# UBI - Unsorted block images 532# UBI - Unsorted block images
539# 533#
540# CONFIG_MTD_UBI is not set 534# CONFIG_MTD_UBI is not set
535CONFIG_OF_FLATTREE=y
536CONFIG_OF_DYNAMIC=y
541CONFIG_OF_DEVICE=y 537CONFIG_OF_DEVICE=y
542CONFIG_OF_I2C=y 538CONFIG_OF_I2C=y
543CONFIG_OF_MDIO=y 539CONFIG_OF_MDIO=y
@@ -573,6 +569,7 @@ CONFIG_MISC_DEVICES=y
573# CONFIG_ENCLOSURE_SERVICES is not set 569# CONFIG_ENCLOSURE_SERVICES is not set
574# CONFIG_HP_ILO is not set 570# CONFIG_HP_ILO is not set
575# CONFIG_ISL29003 is not set 571# CONFIG_ISL29003 is not set
572# CONFIG_SENSORS_TSL2550 is not set
576# CONFIG_DS1682 is not set 573# CONFIG_DS1682 is not set
577# CONFIG_C2PORT is not set 574# CONFIG_C2PORT is not set
578 575
@@ -590,6 +587,7 @@ CONFIG_HAVE_IDE=y
590# 587#
591# SCSI device support 588# SCSI device support
592# 589#
590CONFIG_SCSI_MOD=y
593# CONFIG_RAID_ATTRS is not set 591# CONFIG_RAID_ATTRS is not set
594CONFIG_SCSI=y 592CONFIG_SCSI=y
595CONFIG_SCSI_DMA=y 593CONFIG_SCSI_DMA=y
@@ -774,6 +772,8 @@ CONFIG_NETDEV_10000=y
774# CONFIG_CHELSIO_T1 is not set 772# CONFIG_CHELSIO_T1 is not set
775CONFIG_CHELSIO_T3_DEPENDS=y 773CONFIG_CHELSIO_T3_DEPENDS=y
776# CONFIG_CHELSIO_T3 is not set 774# CONFIG_CHELSIO_T3 is not set
775CONFIG_CHELSIO_T4_DEPENDS=y
776# CONFIG_CHELSIO_T4 is not set
777# CONFIG_ENIC is not set 777# CONFIG_ENIC is not set
778# CONFIG_IXGBE is not set 778# CONFIG_IXGBE is not set
779# CONFIG_IXGB is not set 779# CONFIG_IXGB is not set
@@ -786,6 +786,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
786# CONFIG_MLX4_CORE is not set 786# CONFIG_MLX4_CORE is not set
787# CONFIG_TEHUTI is not set 787# CONFIG_TEHUTI is not set
788# CONFIG_BNX2X is not set 788# CONFIG_BNX2X is not set
789# CONFIG_QLCNIC is not set
789# CONFIG_QLGE is not set 790# CONFIG_QLGE is not set
790# CONFIG_SFC is not set 791# CONFIG_SFC is not set
791# CONFIG_BE2NET is not set 792# CONFIG_BE2NET is not set
@@ -871,6 +872,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
871# CONFIG_SERIAL_JSM is not set 872# CONFIG_SERIAL_JSM is not set
872# CONFIG_SERIAL_OF_PLATFORM is not set 873# CONFIG_SERIAL_OF_PLATFORM is not set
873# CONFIG_SERIAL_QE is not set 874# CONFIG_SERIAL_QE is not set
875# CONFIG_SERIAL_TIMBERDALE is not set
874# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 876# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
875CONFIG_UNIX98_PTYS=y 877CONFIG_UNIX98_PTYS=y
876# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 878# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -920,6 +922,7 @@ CONFIG_I2C_HELPER_AUTO=y
920CONFIG_I2C_MPC=y 922CONFIG_I2C_MPC=y
921# CONFIG_I2C_OCORES is not set 923# CONFIG_I2C_OCORES is not set
922# CONFIG_I2C_SIMTEC is not set 924# CONFIG_I2C_SIMTEC is not set
925# CONFIG_I2C_XILINX is not set
923 926
924# 927#
925# External I2C/SMBus adapter drivers 928# External I2C/SMBus adapter drivers
@@ -932,15 +935,9 @@ CONFIG_I2C_MPC=y
932# 935#
933# CONFIG_I2C_PCA_PLATFORM is not set 936# CONFIG_I2C_PCA_PLATFORM is not set
934# CONFIG_I2C_STUB is not set 937# CONFIG_I2C_STUB is not set
935
936#
937# Miscellaneous I2C Chip support
938#
939# CONFIG_SENSORS_TSL2550 is not set
940# CONFIG_I2C_DEBUG_CORE is not set 938# CONFIG_I2C_DEBUG_CORE is not set
941# CONFIG_I2C_DEBUG_ALGO is not set 939# CONFIG_I2C_DEBUG_ALGO is not set
942# CONFIG_I2C_DEBUG_BUS is not set 940# CONFIG_I2C_DEBUG_BUS is not set
943# CONFIG_I2C_DEBUG_CHIP is not set
944# CONFIG_SPI is not set 941# CONFIG_SPI is not set
945 942
946# 943#
@@ -966,10 +963,11 @@ CONFIG_HWMON=y
966# CONFIG_SENSORS_ADM1029 is not set 963# CONFIG_SENSORS_ADM1029 is not set
967# CONFIG_SENSORS_ADM1031 is not set 964# CONFIG_SENSORS_ADM1031 is not set
968# CONFIG_SENSORS_ADM9240 is not set 965# CONFIG_SENSORS_ADM9240 is not set
966# CONFIG_SENSORS_ADT7411 is not set
969# CONFIG_SENSORS_ADT7462 is not set 967# CONFIG_SENSORS_ADT7462 is not set
970# CONFIG_SENSORS_ADT7470 is not set 968# CONFIG_SENSORS_ADT7470 is not set
971# CONFIG_SENSORS_ADT7473 is not set
972# CONFIG_SENSORS_ADT7475 is not set 969# CONFIG_SENSORS_ADT7475 is not set
970# CONFIG_SENSORS_ASC7621 is not set
973# CONFIG_SENSORS_ATXP1 is not set 971# CONFIG_SENSORS_ATXP1 is not set
974# CONFIG_SENSORS_DS1621 is not set 972# CONFIG_SENSORS_DS1621 is not set
975# CONFIG_SENSORS_I5K_AMB is not set 973# CONFIG_SENSORS_I5K_AMB is not set
@@ -1006,6 +1004,7 @@ CONFIG_HWMON=y
1006# CONFIG_SENSORS_SMSC47M192 is not set 1004# CONFIG_SENSORS_SMSC47M192 is not set
1007# CONFIG_SENSORS_SMSC47B397 is not set 1005# CONFIG_SENSORS_SMSC47B397 is not set
1008# CONFIG_SENSORS_ADS7828 is not set 1006# CONFIG_SENSORS_ADS7828 is not set
1007# CONFIG_SENSORS_AMC6821 is not set
1009# CONFIG_SENSORS_THMC50 is not set 1008# CONFIG_SENSORS_THMC50 is not set
1010# CONFIG_SENSORS_TMP401 is not set 1009# CONFIG_SENSORS_TMP401 is not set
1011# CONFIG_SENSORS_TMP421 is not set 1010# CONFIG_SENSORS_TMP421 is not set
@@ -1048,18 +1047,21 @@ CONFIG_SSB_POSSIBLE=y
1048# Multifunction device drivers 1047# Multifunction device drivers
1049# 1048#
1050# CONFIG_MFD_CORE is not set 1049# CONFIG_MFD_CORE is not set
1050# CONFIG_MFD_88PM860X is not set
1051# CONFIG_MFD_SM501 is not set 1051# CONFIG_MFD_SM501 is not set
1052# CONFIG_HTC_PASIC3 is not set 1052# CONFIG_HTC_PASIC3 is not set
1053# CONFIG_TWL4030_CORE is not set 1053# CONFIG_TWL4030_CORE is not set
1054# CONFIG_MFD_TMIO is not set 1054# CONFIG_MFD_TMIO is not set
1055# CONFIG_PMIC_DA903X is not set 1055# CONFIG_PMIC_DA903X is not set
1056# CONFIG_PMIC_ADP5520 is not set 1056# CONFIG_PMIC_ADP5520 is not set
1057# CONFIG_MFD_MAX8925 is not set
1057# CONFIG_MFD_WM8400 is not set 1058# CONFIG_MFD_WM8400 is not set
1058# CONFIG_MFD_WM831X is not set 1059# CONFIG_MFD_WM831X is not set
1059# CONFIG_MFD_WM8350_I2C is not set 1060# CONFIG_MFD_WM8350_I2C is not set
1061# CONFIG_MFD_WM8994 is not set
1060# CONFIG_MFD_PCF50633 is not set 1062# CONFIG_MFD_PCF50633 is not set
1061# CONFIG_AB3100_CORE is not set 1063# CONFIG_AB3100_CORE is not set
1062# CONFIG_MFD_88PM8607 is not set 1064# CONFIG_LPC_SCH is not set
1063# CONFIG_REGULATOR is not set 1065# CONFIG_REGULATOR is not set
1064# CONFIG_MEDIA_SUPPORT is not set 1066# CONFIG_MEDIA_SUPPORT is not set
1065 1067
@@ -1068,6 +1070,7 @@ CONFIG_SSB_POSSIBLE=y
1068# 1070#
1069# CONFIG_AGP is not set 1071# CONFIG_AGP is not set
1070CONFIG_VGA_ARB=y 1072CONFIG_VGA_ARB=y
1073CONFIG_VGA_ARB_MAX_GPUS=16
1071# CONFIG_DRM is not set 1074# CONFIG_DRM is not set
1072# CONFIG_VGASTATE is not set 1075# CONFIG_VGASTATE is not set
1073CONFIG_VIDEO_OUTPUT_CONTROL=m 1076CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1253,6 +1256,7 @@ CONFIG_MISC_FILESYSTEMS=y
1253# CONFIG_BFS_FS is not set 1256# CONFIG_BFS_FS is not set
1254# CONFIG_EFS_FS is not set 1257# CONFIG_EFS_FS is not set
1255# CONFIG_JFFS2_FS is not set 1258# CONFIG_JFFS2_FS is not set
1259# CONFIG_LOGFS is not set
1256# CONFIG_CRAMFS is not set 1260# CONFIG_CRAMFS is not set
1257# CONFIG_SQUASHFS is not set 1261# CONFIG_SQUASHFS is not set
1258# CONFIG_VXFS_FS is not set 1262# CONFIG_VXFS_FS is not set
@@ -1279,6 +1283,7 @@ CONFIG_SUNRPC_GSS=y
1279CONFIG_RPCSEC_GSS_KRB5=y 1283CONFIG_RPCSEC_GSS_KRB5=y
1280# CONFIG_RPCSEC_GSS_SPKM3 is not set 1284# CONFIG_RPCSEC_GSS_SPKM3 is not set
1281# CONFIG_SMB_FS is not set 1285# CONFIG_SMB_FS is not set
1286# CONFIG_CEPH_FS is not set
1282# CONFIG_CIFS is not set 1287# CONFIG_CIFS is not set
1283# CONFIG_NCP_FS is not set 1288# CONFIG_NCP_FS is not set
1284# CONFIG_CODA_FS is not set 1289# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
index 9451d6e5c802..77abfe8ff198 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:23 2010 4# Mon Apr 19 23:16:47 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -97,14 +97,8 @@ CONFIG_RCU_FANOUT=32
97# CONFIG_TREE_RCU_TRACE is not set 97# CONFIG_TREE_RCU_TRACE is not set
98# CONFIG_IKCONFIG is not set 98# CONFIG_IKCONFIG is not set
99CONFIG_LOG_BUF_SHIFT=14 99CONFIG_LOG_BUF_SHIFT=14
100CONFIG_GROUP_SCHED=y
101CONFIG_FAIR_GROUP_SCHED=y
102# CONFIG_RT_GROUP_SCHED is not set
103CONFIG_USER_SCHED=y
104# CONFIG_CGROUP_SCHED is not set
105# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
106CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
107CONFIG_SYSFS_DEPRECATED_V2=y
108# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
109# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
110CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
@@ -112,6 +106,7 @@ CONFIG_INITRAMFS_SOURCE=""
112CONFIG_RD_GZIP=y 106CONFIG_RD_GZIP=y
113# CONFIG_RD_BZIP2 is not set 107# CONFIG_RD_BZIP2 is not set
114# CONFIG_RD_LZMA is not set 108# CONFIG_RD_LZMA is not set
109# CONFIG_RD_LZO is not set
115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 110# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
116CONFIG_SYSCTL=y 111CONFIG_SYSCTL=y
117CONFIG_ANON_INODES=y 112CONFIG_ANON_INODES=y
@@ -124,7 +119,7 @@ CONFIG_BUG=y
124CONFIG_ELF_CORE=y 119CONFIG_ELF_CORE=y
125CONFIG_BASE_FULL=y 120CONFIG_BASE_FULL=y
126CONFIG_FUTEX=y 121CONFIG_FUTEX=y
127# CONFIG_EPOLL is not set 122CONFIG_EPOLL=y
128CONFIG_SIGNALFD=y 123CONFIG_SIGNALFD=y
129CONFIG_TIMERFD=y 124CONFIG_TIMERFD=y
130CONFIG_EVENTFD=y 125CONFIG_EVENTFD=y
@@ -323,6 +318,7 @@ CONFIG_ISA_DMA_API=y
323# Bus options 318# Bus options
324# 319#
325CONFIG_ZONE_DMA=y 320CONFIG_ZONE_DMA=y
321# CONFIG_NEED_DMA_MAP_STATE is not set
326CONFIG_GENERIC_ISA_DMA=y 322CONFIG_GENERIC_ISA_DMA=y
327CONFIG_PPC_INDIRECT_PCI=y 323CONFIG_PPC_INDIRECT_PCI=y
328CONFIG_FSL_SOC=y 324CONFIG_FSL_SOC=y
@@ -336,7 +332,6 @@ CONFIG_PCI_SYSCALL=y
336# CONFIG_PCIEPORTBUS is not set 332# CONFIG_PCIEPORTBUS is not set
337CONFIG_ARCH_SUPPORTS_MSI=y 333CONFIG_ARCH_SUPPORTS_MSI=y
338# CONFIG_PCI_MSI is not set 334# CONFIG_PCI_MSI is not set
339# CONFIG_PCI_LEGACY is not set
340# CONFIG_PCI_STUB is not set 335# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 336# CONFIG_PCI_IOV is not set
342# CONFIG_PCCARD is not set 337# CONFIG_PCCARD is not set
@@ -362,7 +357,6 @@ CONFIG_NET=y
362# Networking options 357# Networking options
363# 358#
364CONFIG_PACKET=y 359CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 360CONFIG_UNIX=y
367CONFIG_XFRM=y 361CONFIG_XFRM=y
368# CONFIG_XFRM_USER is not set 362# CONFIG_XFRM_USER is not set
@@ -550,6 +544,8 @@ CONFIG_MTD_PHYSMAP_OF=y
550# UBI - Unsorted block images 544# UBI - Unsorted block images
551# 545#
552# CONFIG_MTD_UBI is not set 546# CONFIG_MTD_UBI is not set
547CONFIG_OF_FLATTREE=y
548CONFIG_OF_DYNAMIC=y
553CONFIG_OF_DEVICE=y 549CONFIG_OF_DEVICE=y
554CONFIG_OF_GPIO=y 550CONFIG_OF_GPIO=y
555CONFIG_OF_I2C=y 551CONFIG_OF_I2C=y
@@ -587,6 +583,7 @@ CONFIG_MISC_DEVICES=y
587# CONFIG_ENCLOSURE_SERVICES is not set 583# CONFIG_ENCLOSURE_SERVICES is not set
588# CONFIG_HP_ILO is not set 584# CONFIG_HP_ILO is not set
589# CONFIG_ISL29003 is not set 585# CONFIG_ISL29003 is not set
586# CONFIG_SENSORS_TSL2550 is not set
590# CONFIG_DS1682 is not set 587# CONFIG_DS1682 is not set
591# CONFIG_TI_DAC7512 is not set 588# CONFIG_TI_DAC7512 is not set
592# CONFIG_C2PORT is not set 589# CONFIG_C2PORT is not set
@@ -606,6 +603,7 @@ CONFIG_HAVE_IDE=y
606# 603#
607# SCSI device support 604# SCSI device support
608# 605#
606CONFIG_SCSI_MOD=y
609# CONFIG_RAID_ATTRS is not set 607# CONFIG_RAID_ATTRS is not set
610# CONFIG_SCSI is not set 608# CONFIG_SCSI is not set
611# CONFIG_SCSI_DMA is not set 609# CONFIG_SCSI_DMA is not set
@@ -774,6 +772,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
774# CONFIG_SERIAL_JSM is not set 772# CONFIG_SERIAL_JSM is not set
775# CONFIG_SERIAL_OF_PLATFORM is not set 773# CONFIG_SERIAL_OF_PLATFORM is not set
776CONFIG_SERIAL_QE=y 774CONFIG_SERIAL_QE=y
775# CONFIG_SERIAL_TIMBERDALE is not set
777# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 776# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
778CONFIG_UNIX98_PTYS=y 777CONFIG_UNIX98_PTYS=y
779# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 778# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -825,6 +824,7 @@ CONFIG_I2C_HELPER_AUTO=y
825CONFIG_I2C_MPC=y 824CONFIG_I2C_MPC=y
826# CONFIG_I2C_OCORES is not set 825# CONFIG_I2C_OCORES is not set
827# CONFIG_I2C_SIMTEC is not set 826# CONFIG_I2C_SIMTEC is not set
827# CONFIG_I2C_XILINX is not set
828 828
829# 829#
830# External I2C/SMBus adapter drivers 830# External I2C/SMBus adapter drivers
@@ -837,15 +837,9 @@ CONFIG_I2C_MPC=y
837# 837#
838# CONFIG_I2C_PCA_PLATFORM is not set 838# CONFIG_I2C_PCA_PLATFORM is not set
839# CONFIG_I2C_STUB is not set 839# CONFIG_I2C_STUB is not set
840
841#
842# Miscellaneous I2C Chip support
843#
844# CONFIG_SENSORS_TSL2550 is not set
845# CONFIG_I2C_DEBUG_CORE is not set 840# CONFIG_I2C_DEBUG_CORE is not set
846# CONFIG_I2C_DEBUG_ALGO is not set 841# CONFIG_I2C_DEBUG_ALGO is not set
847# CONFIG_I2C_DEBUG_BUS is not set 842# CONFIG_I2C_DEBUG_BUS is not set
848# CONFIG_I2C_DEBUG_CHIP is not set
849CONFIG_SPI=y 843CONFIG_SPI=y
850CONFIG_SPI_MASTER=y 844CONFIG_SPI_MASTER=y
851 845
@@ -876,14 +870,18 @@ CONFIG_GPIOLIB=y
876# 870#
877# Memory mapped GPIO expanders: 871# Memory mapped GPIO expanders:
878# 872#
873# CONFIG_GPIO_IT8761E is not set
879# CONFIG_GPIO_XILINX is not set 874# CONFIG_GPIO_XILINX is not set
875# CONFIG_GPIO_SCH is not set
880 876
881# 877#
882# I2C GPIO expanders: 878# I2C GPIO expanders:
883# 879#
880# CONFIG_GPIO_MAX7300 is not set
884# CONFIG_GPIO_MAX732X is not set 881# CONFIG_GPIO_MAX732X is not set
885# CONFIG_GPIO_PCA953X is not set 882# CONFIG_GPIO_PCA953X is not set
886# CONFIG_GPIO_PCF857X is not set 883# CONFIG_GPIO_PCF857X is not set
884# CONFIG_GPIO_ADP5588 is not set
887 885
888# 886#
889# PCI GPIO expanders: 887# PCI GPIO expanders:
@@ -932,22 +930,27 @@ CONFIG_SSB_POSSIBLE=y
932# Multifunction device drivers 930# Multifunction device drivers
933# 931#
934# CONFIG_MFD_CORE is not set 932# CONFIG_MFD_CORE is not set
933# CONFIG_MFD_88PM860X is not set
935# CONFIG_MFD_SM501 is not set 934# CONFIG_MFD_SM501 is not set
936# CONFIG_HTC_PASIC3 is not set 935# CONFIG_HTC_PASIC3 is not set
936# CONFIG_HTC_I2CPLD is not set
937# CONFIG_TPS65010 is not set 937# CONFIG_TPS65010 is not set
938# CONFIG_TWL4030_CORE is not set 938# CONFIG_TWL4030_CORE is not set
939# CONFIG_MFD_TMIO is not set 939# CONFIG_MFD_TMIO is not set
940# CONFIG_PMIC_DA903X is not set 940# CONFIG_PMIC_DA903X is not set
941# CONFIG_PMIC_ADP5520 is not set 941# CONFIG_PMIC_ADP5520 is not set
942# CONFIG_MFD_MAX8925 is not set
942# CONFIG_MFD_WM8400 is not set 943# CONFIG_MFD_WM8400 is not set
943# CONFIG_MFD_WM831X is not set 944# CONFIG_MFD_WM831X is not set
944# CONFIG_MFD_WM8350_I2C is not set 945# CONFIG_MFD_WM8350_I2C is not set
946# CONFIG_MFD_WM8994 is not set
945# CONFIG_MFD_PCF50633 is not set 947# CONFIG_MFD_PCF50633 is not set
946# CONFIG_MFD_MC13783 is not set 948# CONFIG_MFD_MC13783 is not set
947# CONFIG_AB3100_CORE is not set 949# CONFIG_AB3100_CORE is not set
948# CONFIG_EZX_PCAP is not set 950# CONFIG_EZX_PCAP is not set
949# CONFIG_MFD_88PM8607 is not set
950# CONFIG_AB4500_CORE is not set 951# CONFIG_AB4500_CORE is not set
952# CONFIG_MFD_TIMBERDALE is not set
953# CONFIG_LPC_SCH is not set
951# CONFIG_REGULATOR is not set 954# CONFIG_REGULATOR is not set
952# CONFIG_MEDIA_SUPPORT is not set 955# CONFIG_MEDIA_SUPPORT is not set
953 956
@@ -956,6 +959,7 @@ CONFIG_SSB_POSSIBLE=y
956# 959#
957# CONFIG_AGP is not set 960# CONFIG_AGP is not set
958CONFIG_VGA_ARB=y 961CONFIG_VGA_ARB=y
962CONFIG_VGA_ARB_MAX_GPUS=16
959# CONFIG_DRM is not set 963# CONFIG_DRM is not set
960# CONFIG_VGASTATE is not set 964# CONFIG_VGASTATE is not set
961# CONFIG_VIDEO_OUTPUT_CONTROL is not set 965# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1145,6 +1149,7 @@ CONFIG_JFFS2_ZLIB=y
1145# CONFIG_JFFS2_LZO is not set 1149# CONFIG_JFFS2_LZO is not set
1146CONFIG_JFFS2_RTIME=y 1150CONFIG_JFFS2_RTIME=y
1147# CONFIG_JFFS2_RUBIN is not set 1151# CONFIG_JFFS2_RUBIN is not set
1152# CONFIG_LOGFS is not set
1148# CONFIG_CRAMFS is not set 1153# CONFIG_CRAMFS is not set
1149# CONFIG_SQUASHFS is not set 1154# CONFIG_SQUASHFS is not set
1150# CONFIG_VXFS_FS is not set 1155# CONFIG_VXFS_FS is not set
@@ -1171,6 +1176,7 @@ CONFIG_SUNRPC_GSS=y
1171CONFIG_RPCSEC_GSS_KRB5=y 1176CONFIG_RPCSEC_GSS_KRB5=y
1172# CONFIG_RPCSEC_GSS_SPKM3 is not set 1177# CONFIG_RPCSEC_GSS_SPKM3 is not set
1173# CONFIG_SMB_FS is not set 1178# CONFIG_SMB_FS is not set
1179# CONFIG_CEPH_FS is not set
1174# CONFIG_CIFS is not set 1180# CONFIG_CIFS is not set
1175# CONFIG_NCP_FS is not set 1181# CONFIG_NCP_FS is not set
1176# CONFIG_CODA_FS is not set 1182# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
index f67b70d0b292..0cdb41418d58 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:22 2010 4# Mon Apr 19 23:16:47 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100CONFIG_FAIR_GROUP_SCHED=y
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -124,7 +119,7 @@ CONFIG_BUG=y
124CONFIG_ELF_CORE=y 119CONFIG_ELF_CORE=y
125CONFIG_BASE_FULL=y 120CONFIG_BASE_FULL=y
126CONFIG_FUTEX=y 121CONFIG_FUTEX=y
127# CONFIG_EPOLL is not set 122CONFIG_EPOLL=y
128CONFIG_SIGNALFD=y 123CONFIG_SIGNALFD=y
129CONFIG_TIMERFD=y 124CONFIG_TIMERFD=y
130CONFIG_EVENTFD=y 125CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_STUB is not set 334# CONFIG_PCI_STUB is not set
340# CONFIG_PCI_IOV is not set 335# CONFIG_PCI_IOV is not set
341# CONFIG_PCCARD is not set 336# CONFIG_PCCARD is not set
@@ -361,7 +356,6 @@ CONFIG_NET=y
361# Networking options 356# Networking options
362# 357#
363CONFIG_PACKET=y 358CONFIG_PACKET=y
364# CONFIG_PACKET_MMAP is not set
365CONFIG_UNIX=y 359CONFIG_UNIX=y
366CONFIG_XFRM=y 360CONFIG_XFRM=y
367CONFIG_XFRM_USER=m 361CONFIG_XFRM_USER=m
@@ -456,6 +450,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
456# CONFIG_SYS_HYPERVISOR is not set 450# CONFIG_SYS_HYPERVISOR is not set
457# CONFIG_CONNECTOR is not set 451# CONFIG_CONNECTOR is not set
458# CONFIG_MTD is not set 452# CONFIG_MTD is not set
453CONFIG_OF_FLATTREE=y
454CONFIG_OF_DYNAMIC=y
459CONFIG_OF_DEVICE=y 455CONFIG_OF_DEVICE=y
460CONFIG_OF_I2C=y 456CONFIG_OF_I2C=y
461CONFIG_OF_MDIO=y 457CONFIG_OF_MDIO=y
@@ -491,6 +487,7 @@ CONFIG_MISC_DEVICES=y
491# CONFIG_ENCLOSURE_SERVICES is not set 487# CONFIG_ENCLOSURE_SERVICES is not set
492# CONFIG_HP_ILO is not set 488# CONFIG_HP_ILO is not set
493# CONFIG_ISL29003 is not set 489# CONFIG_ISL29003 is not set
490# CONFIG_SENSORS_TSL2550 is not set
494# CONFIG_DS1682 is not set 491# CONFIG_DS1682 is not set
495# CONFIG_C2PORT is not set 492# CONFIG_C2PORT is not set
496 493
@@ -508,6 +505,7 @@ CONFIG_HAVE_IDE=y
508# 505#
509# SCSI device support 506# SCSI device support
510# 507#
508CONFIG_SCSI_MOD=y
511# CONFIG_RAID_ATTRS is not set 509# CONFIG_RAID_ATTRS is not set
512CONFIG_SCSI=y 510CONFIG_SCSI=y
513CONFIG_SCSI_DMA=y 511CONFIG_SCSI_DMA=y
@@ -631,6 +629,7 @@ CONFIG_ATA_SFF=y
631# CONFIG_PATA_IT821X is not set 629# CONFIG_PATA_IT821X is not set
632# CONFIG_PATA_IT8213 is not set 630# CONFIG_PATA_IT8213 is not set
633# CONFIG_PATA_JMICRON is not set 631# CONFIG_PATA_JMICRON is not set
632# CONFIG_PATA_LEGACY is not set
634# CONFIG_PATA_TRIFLEX is not set 633# CONFIG_PATA_TRIFLEX is not set
635# CONFIG_PATA_MARVELL is not set 634# CONFIG_PATA_MARVELL is not set
636# CONFIG_PATA_MPIIX is not set 635# CONFIG_PATA_MPIIX is not set
@@ -755,6 +754,8 @@ CONFIG_NETDEV_10000=y
755# CONFIG_CHELSIO_T1 is not set 754# CONFIG_CHELSIO_T1 is not set
756CONFIG_CHELSIO_T3_DEPENDS=y 755CONFIG_CHELSIO_T3_DEPENDS=y
757# CONFIG_CHELSIO_T3 is not set 756# CONFIG_CHELSIO_T3 is not set
757CONFIG_CHELSIO_T4_DEPENDS=y
758# CONFIG_CHELSIO_T4 is not set
758# CONFIG_ENIC is not set 759# CONFIG_ENIC is not set
759# CONFIG_IXGBE is not set 760# CONFIG_IXGBE is not set
760# CONFIG_IXGB is not set 761# CONFIG_IXGB is not set
@@ -767,6 +768,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
767# CONFIG_MLX4_CORE is not set 768# CONFIG_MLX4_CORE is not set
768# CONFIG_TEHUTI is not set 769# CONFIG_TEHUTI is not set
769# CONFIG_BNX2X is not set 770# CONFIG_BNX2X is not set
771# CONFIG_QLCNIC is not set
770# CONFIG_QLGE is not set 772# CONFIG_QLGE is not set
771# CONFIG_SFC is not set 773# CONFIG_SFC is not set
772# CONFIG_BE2NET is not set 774# CONFIG_BE2NET is not set
@@ -851,6 +853,7 @@ CONFIG_SERIAL_CORE=y
851CONFIG_SERIAL_CORE_CONSOLE=y 853CONFIG_SERIAL_CORE_CONSOLE=y
852# CONFIG_SERIAL_JSM is not set 854# CONFIG_SERIAL_JSM is not set
853# CONFIG_SERIAL_OF_PLATFORM is not set 855# CONFIG_SERIAL_OF_PLATFORM is not set
856# CONFIG_SERIAL_TIMBERDALE is not set
854# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 857# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
855CONFIG_UNIX98_PTYS=y 858CONFIG_UNIX98_PTYS=y
856# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 859# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -901,6 +904,7 @@ CONFIG_I2C_HELPER_AUTO=y
901CONFIG_I2C_MPC=y 904CONFIG_I2C_MPC=y
902# CONFIG_I2C_OCORES is not set 905# CONFIG_I2C_OCORES is not set
903# CONFIG_I2C_SIMTEC is not set 906# CONFIG_I2C_SIMTEC is not set
907# CONFIG_I2C_XILINX is not set
904 908
905# 909#
906# External I2C/SMBus adapter drivers 910# External I2C/SMBus adapter drivers
@@ -913,15 +917,9 @@ CONFIG_I2C_MPC=y
913# 917#
914# CONFIG_I2C_PCA_PLATFORM is not set 918# CONFIG_I2C_PCA_PLATFORM is not set
915# CONFIG_I2C_STUB is not set 919# CONFIG_I2C_STUB is not set
916
917#
918# Miscellaneous I2C Chip support
919#
920# CONFIG_SENSORS_TSL2550 is not set
921# CONFIG_I2C_DEBUG_CORE is not set 920# CONFIG_I2C_DEBUG_CORE is not set
922# CONFIG_I2C_DEBUG_ALGO is not set 921# CONFIG_I2C_DEBUG_ALGO is not set
923# CONFIG_I2C_DEBUG_BUS is not set 922# CONFIG_I2C_DEBUG_BUS is not set
924# CONFIG_I2C_DEBUG_CHIP is not set
925# CONFIG_SPI is not set 923# CONFIG_SPI is not set
926 924
927# 925#
@@ -947,10 +945,11 @@ CONFIG_HWMON=y
947# CONFIG_SENSORS_ADM1029 is not set 945# CONFIG_SENSORS_ADM1029 is not set
948# CONFIG_SENSORS_ADM1031 is not set 946# CONFIG_SENSORS_ADM1031 is not set
949# CONFIG_SENSORS_ADM9240 is not set 947# CONFIG_SENSORS_ADM9240 is not set
948# CONFIG_SENSORS_ADT7411 is not set
950# CONFIG_SENSORS_ADT7462 is not set 949# CONFIG_SENSORS_ADT7462 is not set
951# CONFIG_SENSORS_ADT7470 is not set 950# CONFIG_SENSORS_ADT7470 is not set
952# CONFIG_SENSORS_ADT7473 is not set
953# CONFIG_SENSORS_ADT7475 is not set 951# CONFIG_SENSORS_ADT7475 is not set
952# CONFIG_SENSORS_ASC7621 is not set
954# CONFIG_SENSORS_ATXP1 is not set 953# CONFIG_SENSORS_ATXP1 is not set
955# CONFIG_SENSORS_DS1621 is not set 954# CONFIG_SENSORS_DS1621 is not set
956# CONFIG_SENSORS_I5K_AMB is not set 955# CONFIG_SENSORS_I5K_AMB is not set
@@ -987,6 +986,7 @@ CONFIG_HWMON=y
987# CONFIG_SENSORS_SMSC47M192 is not set 986# CONFIG_SENSORS_SMSC47M192 is not set
988# CONFIG_SENSORS_SMSC47B397 is not set 987# CONFIG_SENSORS_SMSC47B397 is not set
989# CONFIG_SENSORS_ADS7828 is not set 988# CONFIG_SENSORS_ADS7828 is not set
989# CONFIG_SENSORS_AMC6821 is not set
990# CONFIG_SENSORS_THMC50 is not set 990# CONFIG_SENSORS_THMC50 is not set
991# CONFIG_SENSORS_TMP401 is not set 991# CONFIG_SENSORS_TMP401 is not set
992# CONFIG_SENSORS_TMP421 is not set 992# CONFIG_SENSORS_TMP421 is not set
@@ -1029,18 +1029,21 @@ CONFIG_SSB_POSSIBLE=y
1029# Multifunction device drivers 1029# Multifunction device drivers
1030# 1030#
1031# CONFIG_MFD_CORE is not set 1031# CONFIG_MFD_CORE is not set
1032# CONFIG_MFD_88PM860X is not set
1032# CONFIG_MFD_SM501 is not set 1033# CONFIG_MFD_SM501 is not set
1033# CONFIG_HTC_PASIC3 is not set 1034# CONFIG_HTC_PASIC3 is not set
1034# CONFIG_TWL4030_CORE is not set 1035# CONFIG_TWL4030_CORE is not set
1035# CONFIG_MFD_TMIO is not set 1036# CONFIG_MFD_TMIO is not set
1036# CONFIG_PMIC_DA903X is not set 1037# CONFIG_PMIC_DA903X is not set
1037# CONFIG_PMIC_ADP5520 is not set 1038# CONFIG_PMIC_ADP5520 is not set
1039# CONFIG_MFD_MAX8925 is not set
1038# CONFIG_MFD_WM8400 is not set 1040# CONFIG_MFD_WM8400 is not set
1039# CONFIG_MFD_WM831X is not set 1041# CONFIG_MFD_WM831X is not set
1040# CONFIG_MFD_WM8350_I2C is not set 1042# CONFIG_MFD_WM8350_I2C is not set
1043# CONFIG_MFD_WM8994 is not set
1041# CONFIG_MFD_PCF50633 is not set 1044# CONFIG_MFD_PCF50633 is not set
1042# CONFIG_AB3100_CORE is not set 1045# CONFIG_AB3100_CORE is not set
1043# CONFIG_MFD_88PM8607 is not set 1046# CONFIG_LPC_SCH is not set
1044# CONFIG_REGULATOR is not set 1047# CONFIG_REGULATOR is not set
1045# CONFIG_MEDIA_SUPPORT is not set 1048# CONFIG_MEDIA_SUPPORT is not set
1046 1049
@@ -1049,6 +1052,7 @@ CONFIG_SSB_POSSIBLE=y
1049# 1052#
1050# CONFIG_AGP is not set 1053# CONFIG_AGP is not set
1051CONFIG_VGA_ARB=y 1054CONFIG_VGA_ARB=y
1055CONFIG_VGA_ARB_MAX_GPUS=16
1052# CONFIG_DRM is not set 1056# CONFIG_DRM is not set
1053# CONFIG_VGASTATE is not set 1057# CONFIG_VGASTATE is not set
1054CONFIG_VIDEO_OUTPUT_CONTROL=m 1058CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1175,6 +1179,7 @@ CONFIG_MISC_FILESYSTEMS=y
1175# CONFIG_BEFS_FS is not set 1179# CONFIG_BEFS_FS is not set
1176# CONFIG_BFS_FS is not set 1180# CONFIG_BFS_FS is not set
1177# CONFIG_EFS_FS is not set 1181# CONFIG_EFS_FS is not set
1182# CONFIG_LOGFS is not set
1178# CONFIG_CRAMFS is not set 1183# CONFIG_CRAMFS is not set
1179# CONFIG_SQUASHFS is not set 1184# CONFIG_SQUASHFS is not set
1180# CONFIG_VXFS_FS is not set 1185# CONFIG_VXFS_FS is not set
@@ -1201,6 +1206,7 @@ CONFIG_SUNRPC_GSS=y
1201CONFIG_RPCSEC_GSS_KRB5=y 1206CONFIG_RPCSEC_GSS_KRB5=y
1202# CONFIG_RPCSEC_GSS_SPKM3 is not set 1207# CONFIG_RPCSEC_GSS_SPKM3 is not set
1203# CONFIG_SMB_FS is not set 1208# CONFIG_SMB_FS is not set
1209# CONFIG_CEPH_FS is not set
1204# CONFIG_CIFS is not set 1210# CONFIG_CIFS is not set
1205# CONFIG_NCP_FS is not set 1211# CONFIG_NCP_FS is not set
1206# CONFIG_CODA_FS is not set 1212# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
index a84fd1194e2b..e69ed1b61425 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:24 2010 4# Mon Apr 19 23:16:48 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100CONFIG_FAIR_GROUP_SCHED=y
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -124,7 +119,7 @@ CONFIG_BUG=y
124CONFIG_ELF_CORE=y 119CONFIG_ELF_CORE=y
125CONFIG_BASE_FULL=y 120CONFIG_BASE_FULL=y
126CONFIG_FUTEX=y 121CONFIG_FUTEX=y
127# CONFIG_EPOLL is not set 122CONFIG_EPOLL=y
128CONFIG_SIGNALFD=y 123CONFIG_SIGNALFD=y
129CONFIG_TIMERFD=y 124CONFIG_TIMERFD=y
130CONFIG_EVENTFD=y 125CONFIG_EVENTFD=y
@@ -324,6 +319,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 319# Bus options
325# 320#
326CONFIG_ZONE_DMA=y 321CONFIG_ZONE_DMA=y
322# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_GENERIC_ISA_DMA=y 323CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_INDIRECT_PCI=y 324CONFIG_PPC_INDIRECT_PCI=y
329CONFIG_FSL_SOC=y 325CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCI_SYSCALL=y
335# CONFIG_PCIEPORTBUS is not set 331# CONFIG_PCIEPORTBUS is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339# CONFIG_PCI_STUB is not set 334# CONFIG_PCI_STUB is not set
340# CONFIG_PCI_IOV is not set 335# CONFIG_PCI_IOV is not set
341# CONFIG_PCCARD is not set 336# CONFIG_PCCARD is not set
@@ -361,7 +356,6 @@ CONFIG_NET=y
361# Networking options 356# Networking options
362# 357#
363CONFIG_PACKET=y 358CONFIG_PACKET=y
364# CONFIG_PACKET_MMAP is not set
365CONFIG_UNIX=y 359CONFIG_UNIX=y
366# CONFIG_NET_KEY is not set 360# CONFIG_NET_KEY is not set
367CONFIG_INET=y 361CONFIG_INET=y
@@ -451,6 +445,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
451# CONFIG_SYS_HYPERVISOR is not set 445# CONFIG_SYS_HYPERVISOR is not set
452# CONFIG_CONNECTOR is not set 446# CONFIG_CONNECTOR is not set
453# CONFIG_MTD is not set 447# CONFIG_MTD is not set
448CONFIG_OF_FLATTREE=y
449CONFIG_OF_DYNAMIC=y
454CONFIG_OF_DEVICE=y 450CONFIG_OF_DEVICE=y
455CONFIG_OF_I2C=y 451CONFIG_OF_I2C=y
456CONFIG_OF_MDIO=y 452CONFIG_OF_MDIO=y
@@ -487,6 +483,7 @@ CONFIG_MISC_DEVICES=y
487# CONFIG_ENCLOSURE_SERVICES is not set 483# CONFIG_ENCLOSURE_SERVICES is not set
488# CONFIG_HP_ILO is not set 484# CONFIG_HP_ILO is not set
489# CONFIG_ISL29003 is not set 485# CONFIG_ISL29003 is not set
486# CONFIG_SENSORS_TSL2550 is not set
490# CONFIG_DS1682 is not set 487# CONFIG_DS1682 is not set
491# CONFIG_C2PORT is not set 488# CONFIG_C2PORT is not set
492 489
@@ -504,6 +501,7 @@ CONFIG_HAVE_IDE=y
504# 501#
505# SCSI device support 502# SCSI device support
506# 503#
504CONFIG_SCSI_MOD=y
507# CONFIG_RAID_ATTRS is not set 505# CONFIG_RAID_ATTRS is not set
508CONFIG_SCSI=y 506CONFIG_SCSI=y
509CONFIG_SCSI_DMA=y 507CONFIG_SCSI_DMA=y
@@ -626,6 +624,7 @@ CONFIG_ATA_SFF=y
626# CONFIG_PATA_IT821X is not set 624# CONFIG_PATA_IT821X is not set
627# CONFIG_PATA_IT8213 is not set 625# CONFIG_PATA_IT8213 is not set
628# CONFIG_PATA_JMICRON is not set 626# CONFIG_PATA_JMICRON is not set
627# CONFIG_PATA_LEGACY is not set
629# CONFIG_PATA_TRIFLEX is not set 628# CONFIG_PATA_TRIFLEX is not set
630# CONFIG_PATA_MARVELL is not set 629# CONFIG_PATA_MARVELL is not set
631# CONFIG_PATA_MPIIX is not set 630# CONFIG_PATA_MPIIX is not set
@@ -850,6 +849,7 @@ CONFIG_SERIAL_CORE=y
850CONFIG_SERIAL_CORE_CONSOLE=y 849CONFIG_SERIAL_CORE_CONSOLE=y
851# CONFIG_SERIAL_JSM is not set 850# CONFIG_SERIAL_JSM is not set
852# CONFIG_SERIAL_OF_PLATFORM is not set 851# CONFIG_SERIAL_OF_PLATFORM is not set
852# CONFIG_SERIAL_TIMBERDALE is not set
853# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 853# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
854CONFIG_UNIX98_PTYS=y 854CONFIG_UNIX98_PTYS=y
855# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 855# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -900,6 +900,7 @@ CONFIG_I2C_HELPER_AUTO=y
900CONFIG_I2C_MPC=y 900CONFIG_I2C_MPC=y
901# CONFIG_I2C_OCORES is not set 901# CONFIG_I2C_OCORES is not set
902# CONFIG_I2C_SIMTEC is not set 902# CONFIG_I2C_SIMTEC is not set
903# CONFIG_I2C_XILINX is not set
903 904
904# 905#
905# External I2C/SMBus adapter drivers 906# External I2C/SMBus adapter drivers
@@ -913,15 +914,9 @@ CONFIG_I2C_MPC=y
913# 914#
914# CONFIG_I2C_PCA_PLATFORM is not set 915# CONFIG_I2C_PCA_PLATFORM is not set
915# CONFIG_I2C_STUB is not set 916# CONFIG_I2C_STUB is not set
916
917#
918# Miscellaneous I2C Chip support
919#
920# CONFIG_SENSORS_TSL2550 is not set
921# CONFIG_I2C_DEBUG_CORE is not set 917# CONFIG_I2C_DEBUG_CORE is not set
922# CONFIG_I2C_DEBUG_ALGO is not set 918# CONFIG_I2C_DEBUG_ALGO is not set
923# CONFIG_I2C_DEBUG_BUS is not set 919# CONFIG_I2C_DEBUG_BUS is not set
924# CONFIG_I2C_DEBUG_CHIP is not set
925# CONFIG_SPI is not set 920# CONFIG_SPI is not set
926 921
927# 922#
@@ -947,10 +942,11 @@ CONFIG_HWMON=y
947# CONFIG_SENSORS_ADM1029 is not set 942# CONFIG_SENSORS_ADM1029 is not set
948# CONFIG_SENSORS_ADM1031 is not set 943# CONFIG_SENSORS_ADM1031 is not set
949# CONFIG_SENSORS_ADM9240 is not set 944# CONFIG_SENSORS_ADM9240 is not set
945# CONFIG_SENSORS_ADT7411 is not set
950# CONFIG_SENSORS_ADT7462 is not set 946# CONFIG_SENSORS_ADT7462 is not set
951# CONFIG_SENSORS_ADT7470 is not set 947# CONFIG_SENSORS_ADT7470 is not set
952# CONFIG_SENSORS_ADT7473 is not set
953# CONFIG_SENSORS_ADT7475 is not set 948# CONFIG_SENSORS_ADT7475 is not set
949# CONFIG_SENSORS_ASC7621 is not set
954# CONFIG_SENSORS_ATXP1 is not set 950# CONFIG_SENSORS_ATXP1 is not set
955# CONFIG_SENSORS_DS1621 is not set 951# CONFIG_SENSORS_DS1621 is not set
956# CONFIG_SENSORS_I5K_AMB is not set 952# CONFIG_SENSORS_I5K_AMB is not set
@@ -987,6 +983,7 @@ CONFIG_HWMON=y
987# CONFIG_SENSORS_SMSC47M192 is not set 983# CONFIG_SENSORS_SMSC47M192 is not set
988# CONFIG_SENSORS_SMSC47B397 is not set 984# CONFIG_SENSORS_SMSC47B397 is not set
989# CONFIG_SENSORS_ADS7828 is not set 985# CONFIG_SENSORS_ADS7828 is not set
986# CONFIG_SENSORS_AMC6821 is not set
990# CONFIG_SENSORS_THMC50 is not set 987# CONFIG_SENSORS_THMC50 is not set
991# CONFIG_SENSORS_TMP401 is not set 988# CONFIG_SENSORS_TMP401 is not set
992# CONFIG_SENSORS_TMP421 is not set 989# CONFIG_SENSORS_TMP421 is not set
@@ -1034,18 +1031,21 @@ CONFIG_SSB_POSSIBLE=y
1034# Multifunction device drivers 1031# Multifunction device drivers
1035# 1032#
1036# CONFIG_MFD_CORE is not set 1033# CONFIG_MFD_CORE is not set
1034# CONFIG_MFD_88PM860X is not set
1037# CONFIG_MFD_SM501 is not set 1035# CONFIG_MFD_SM501 is not set
1038# CONFIG_HTC_PASIC3 is not set 1036# CONFIG_HTC_PASIC3 is not set
1039# CONFIG_TWL4030_CORE is not set 1037# CONFIG_TWL4030_CORE is not set
1040# CONFIG_MFD_TMIO is not set 1038# CONFIG_MFD_TMIO is not set
1041# CONFIG_PMIC_DA903X is not set 1039# CONFIG_PMIC_DA903X is not set
1042# CONFIG_PMIC_ADP5520 is not set 1040# CONFIG_PMIC_ADP5520 is not set
1041# CONFIG_MFD_MAX8925 is not set
1043# CONFIG_MFD_WM8400 is not set 1042# CONFIG_MFD_WM8400 is not set
1044# CONFIG_MFD_WM831X is not set 1043# CONFIG_MFD_WM831X is not set
1045# CONFIG_MFD_WM8350_I2C is not set 1044# CONFIG_MFD_WM8350_I2C is not set
1045# CONFIG_MFD_WM8994 is not set
1046# CONFIG_MFD_PCF50633 is not set 1046# CONFIG_MFD_PCF50633 is not set
1047# CONFIG_AB3100_CORE is not set 1047# CONFIG_AB3100_CORE is not set
1048# CONFIG_MFD_88PM8607 is not set 1048# CONFIG_LPC_SCH is not set
1049# CONFIG_REGULATOR is not set 1049# CONFIG_REGULATOR is not set
1050# CONFIG_MEDIA_SUPPORT is not set 1050# CONFIG_MEDIA_SUPPORT is not set
1051 1051
@@ -1054,6 +1054,7 @@ CONFIG_SSB_POSSIBLE=y
1054# 1054#
1055# CONFIG_AGP is not set 1055# CONFIG_AGP is not set
1056CONFIG_VGA_ARB=y 1056CONFIG_VGA_ARB=y
1057CONFIG_VGA_ARB_MAX_GPUS=16
1057# CONFIG_DRM is not set 1058# CONFIG_DRM is not set
1058# CONFIG_VGASTATE is not set 1059# CONFIG_VGASTATE is not set
1059CONFIG_VIDEO_OUTPUT_CONTROL=m 1060CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1079,6 +1080,7 @@ CONFIG_USB_HID=y
1079# 1080#
1080# Special HID drivers 1081# Special HID drivers
1081# 1082#
1083# CONFIG_HID_3M_PCT is not set
1082CONFIG_HID_A4TECH=y 1084CONFIG_HID_A4TECH=y
1083CONFIG_HID_APPLE=y 1085CONFIG_HID_APPLE=y
1084CONFIG_HID_BELKIN=y 1086CONFIG_HID_BELKIN=y
@@ -1094,14 +1096,19 @@ CONFIG_HID_GYRATION=y
1094CONFIG_HID_LOGITECH=y 1096CONFIG_HID_LOGITECH=y
1095# CONFIG_LOGITECH_FF is not set 1097# CONFIG_LOGITECH_FF is not set
1096# CONFIG_LOGIRUMBLEPAD2_FF is not set 1098# CONFIG_LOGIRUMBLEPAD2_FF is not set
1099# CONFIG_LOGIG940_FF is not set
1097CONFIG_HID_MICROSOFT=y 1100CONFIG_HID_MICROSOFT=y
1101# CONFIG_HID_MOSART is not set
1098CONFIG_HID_MONTEREY=y 1102CONFIG_HID_MONTEREY=y
1099# CONFIG_HID_NTRIG is not set 1103# CONFIG_HID_NTRIG is not set
1104# CONFIG_HID_ORTEK is not set
1100CONFIG_HID_PANTHERLORD=y 1105CONFIG_HID_PANTHERLORD=y
1101# CONFIG_PANTHERLORD_FF is not set 1106# CONFIG_PANTHERLORD_FF is not set
1102CONFIG_HID_PETALYNX=y 1107CONFIG_HID_PETALYNX=y
1108# CONFIG_HID_QUANTA is not set
1103CONFIG_HID_SAMSUNG=y 1109CONFIG_HID_SAMSUNG=y
1104CONFIG_HID_SONY=y 1110CONFIG_HID_SONY=y
1111# CONFIG_HID_STANTUM is not set
1105CONFIG_HID_SUNPLUS=y 1112CONFIG_HID_SUNPLUS=y
1106# CONFIG_HID_GREENASIA is not set 1113# CONFIG_HID_GREENASIA is not set
1107# CONFIG_HID_SMARTJOYPLUS is not set 1114# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1190,7 +1197,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1190# CONFIG_USB_RIO500 is not set 1197# CONFIG_USB_RIO500 is not set
1191# CONFIG_USB_LEGOTOWER is not set 1198# CONFIG_USB_LEGOTOWER is not set
1192# CONFIG_USB_LCD is not set 1199# CONFIG_USB_LCD is not set
1193# CONFIG_USB_BERRY_CHARGE is not set
1194# CONFIG_USB_LED is not set 1200# CONFIG_USB_LED is not set
1195# CONFIG_USB_CYPRESS_CY7C63 is not set 1201# CONFIG_USB_CYPRESS_CY7C63 is not set
1196# CONFIG_USB_CYTHERM is not set 1202# CONFIG_USB_CYTHERM is not set
@@ -1203,7 +1209,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1203# CONFIG_USB_IOWARRIOR is not set 1209# CONFIG_USB_IOWARRIOR is not set
1204# CONFIG_USB_TEST is not set 1210# CONFIG_USB_TEST is not set
1205# CONFIG_USB_ISIGHTFW is not set 1211# CONFIG_USB_ISIGHTFW is not set
1206# CONFIG_USB_VST is not set
1207# CONFIG_USB_GADGET is not set 1212# CONFIG_USB_GADGET is not set
1208 1213
1209# 1214#
@@ -1297,6 +1302,7 @@ CONFIG_MISC_FILESYSTEMS=y
1297# CONFIG_BEFS_FS is not set 1302# CONFIG_BEFS_FS is not set
1298# CONFIG_BFS_FS is not set 1303# CONFIG_BFS_FS is not set
1299# CONFIG_EFS_FS is not set 1304# CONFIG_EFS_FS is not set
1305# CONFIG_LOGFS is not set
1300# CONFIG_CRAMFS is not set 1306# CONFIG_CRAMFS is not set
1301# CONFIG_SQUASHFS is not set 1307# CONFIG_SQUASHFS is not set
1302# CONFIG_VXFS_FS is not set 1308# CONFIG_VXFS_FS is not set
@@ -1323,6 +1329,7 @@ CONFIG_SUNRPC_GSS=y
1323CONFIG_RPCSEC_GSS_KRB5=y 1329CONFIG_RPCSEC_GSS_KRB5=y
1324# CONFIG_RPCSEC_GSS_SPKM3 is not set 1330# CONFIG_RPCSEC_GSS_SPKM3 is not set
1325# CONFIG_SMB_FS is not set 1331# CONFIG_SMB_FS is not set
1332# CONFIG_CEPH_FS is not set
1326# CONFIG_CIFS is not set 1333# CONFIG_CIFS is not set
1327# CONFIG_NCP_FS is not set 1334# CONFIG_NCP_FS is not set
1328# CONFIG_CODA_FS is not set 1335# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/83xx/sbc834x_defconfig b/arch/powerpc/configs/83xx/sbc834x_defconfig
index 72c2067137b9..56e3995d898f 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:25 2010 4# Mon Apr 19 23:16:49 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100CONFIG_FAIR_GROUP_SCHED=y
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108# CONFIG_NAMESPACES is not set 102# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 103CONFIG_BLK_DEV_INITRD=y
@@ -111,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
111CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
112# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
113# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
115CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
116CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -123,7 +118,7 @@ CONFIG_BUG=y
123CONFIG_ELF_CORE=y 118CONFIG_ELF_CORE=y
124CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
125CONFIG_FUTEX=y 120CONFIG_FUTEX=y
126# CONFIG_EPOLL is not set 121CONFIG_EPOLL=y
127CONFIG_SIGNALFD=y 122CONFIG_SIGNALFD=y
128CONFIG_TIMERFD=y 123CONFIG_TIMERFD=y
129CONFIG_EVENTFD=y 124CONFIG_EVENTFD=y
@@ -322,6 +317,7 @@ CONFIG_ISA_DMA_API=y
322# Bus options 317# Bus options
323# 318#
324CONFIG_ZONE_DMA=y 319CONFIG_ZONE_DMA=y
320# CONFIG_NEED_DMA_MAP_STATE is not set
325CONFIG_GENERIC_ISA_DMA=y 321CONFIG_GENERIC_ISA_DMA=y
326CONFIG_PPC_INDIRECT_PCI=y 322CONFIG_PPC_INDIRECT_PCI=y
327CONFIG_FSL_SOC=y 323CONFIG_FSL_SOC=y
@@ -333,7 +329,6 @@ CONFIG_PCI_SYSCALL=y
333# CONFIG_PCIEPORTBUS is not set 329# CONFIG_PCIEPORTBUS is not set
334CONFIG_ARCH_SUPPORTS_MSI=y 330CONFIG_ARCH_SUPPORTS_MSI=y
335# CONFIG_PCI_MSI is not set 331# CONFIG_PCI_MSI is not set
336# CONFIG_PCI_LEGACY is not set
337# CONFIG_PCI_STUB is not set 332# CONFIG_PCI_STUB is not set
338# CONFIG_PCI_IOV is not set 333# CONFIG_PCI_IOV is not set
339# CONFIG_PCCARD is not set 334# CONFIG_PCCARD is not set
@@ -359,7 +354,6 @@ CONFIG_NET=y
359# Networking options 354# Networking options
360# 355#
361CONFIG_PACKET=y 356CONFIG_PACKET=y
362# CONFIG_PACKET_MMAP is not set
363CONFIG_UNIX=y 357CONFIG_UNIX=y
364CONFIG_XFRM=y 358CONFIG_XFRM=y
365CONFIG_XFRM_USER=m 359CONFIG_XFRM_USER=m
@@ -537,6 +531,8 @@ CONFIG_MTD_PHYSMAP_OF=y
537# UBI - Unsorted block images 531# UBI - Unsorted block images
538# 532#
539# CONFIG_MTD_UBI is not set 533# CONFIG_MTD_UBI is not set
534CONFIG_OF_FLATTREE=y
535CONFIG_OF_DYNAMIC=y
540CONFIG_OF_DEVICE=y 536CONFIG_OF_DEVICE=y
541CONFIG_OF_I2C=y 537CONFIG_OF_I2C=y
542CONFIG_OF_MDIO=y 538CONFIG_OF_MDIO=y
@@ -573,6 +569,7 @@ CONFIG_MISC_DEVICES=y
573# CONFIG_ENCLOSURE_SERVICES is not set 569# CONFIG_ENCLOSURE_SERVICES is not set
574# CONFIG_HP_ILO is not set 570# CONFIG_HP_ILO is not set
575# CONFIG_ISL29003 is not set 571# CONFIG_ISL29003 is not set
572# CONFIG_SENSORS_TSL2550 is not set
576# CONFIG_DS1682 is not set 573# CONFIG_DS1682 is not set
577# CONFIG_C2PORT is not set 574# CONFIG_C2PORT is not set
578 575
@@ -590,6 +587,7 @@ CONFIG_HAVE_IDE=y
590# 587#
591# SCSI device support 588# SCSI device support
592# 589#
590CONFIG_SCSI_MOD=y
593# CONFIG_RAID_ATTRS is not set 591# CONFIG_RAID_ATTRS is not set
594CONFIG_SCSI=y 592CONFIG_SCSI=y
595CONFIG_SCSI_DMA=y 593CONFIG_SCSI_DMA=y
@@ -812,6 +810,7 @@ CONFIG_SERIAL_CORE=y
812CONFIG_SERIAL_CORE_CONSOLE=y 810CONFIG_SERIAL_CORE_CONSOLE=y
813# CONFIG_SERIAL_JSM is not set 811# CONFIG_SERIAL_JSM is not set
814# CONFIG_SERIAL_OF_PLATFORM is not set 812# CONFIG_SERIAL_OF_PLATFORM is not set
813# CONFIG_SERIAL_TIMBERDALE is not set
815# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 814# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
816CONFIG_UNIX98_PTYS=y 815CONFIG_UNIX98_PTYS=y
817# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 816# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -862,6 +861,7 @@ CONFIG_I2C_HELPER_AUTO=y
862CONFIG_I2C_MPC=y 861CONFIG_I2C_MPC=y
863# CONFIG_I2C_OCORES is not set 862# CONFIG_I2C_OCORES is not set
864# CONFIG_I2C_SIMTEC is not set 863# CONFIG_I2C_SIMTEC is not set
864# CONFIG_I2C_XILINX is not set
865 865
866# 866#
867# External I2C/SMBus adapter drivers 867# External I2C/SMBus adapter drivers
@@ -875,15 +875,9 @@ CONFIG_I2C_MPC=y
875# 875#
876# CONFIG_I2C_PCA_PLATFORM is not set 876# CONFIG_I2C_PCA_PLATFORM is not set
877# CONFIG_I2C_STUB is not set 877# CONFIG_I2C_STUB is not set
878
879#
880# Miscellaneous I2C Chip support
881#
882# CONFIG_SENSORS_TSL2550 is not set
883# CONFIG_I2C_DEBUG_CORE is not set 878# CONFIG_I2C_DEBUG_CORE is not set
884# CONFIG_I2C_DEBUG_ALGO is not set 879# CONFIG_I2C_DEBUG_ALGO is not set
885# CONFIG_I2C_DEBUG_BUS is not set 880# CONFIG_I2C_DEBUG_BUS is not set
886# CONFIG_I2C_DEBUG_CHIP is not set
887# CONFIG_SPI is not set 881# CONFIG_SPI is not set
888 882
889# 883#
@@ -909,10 +903,11 @@ CONFIG_HWMON=y
909# CONFIG_SENSORS_ADM1029 is not set 903# CONFIG_SENSORS_ADM1029 is not set
910# CONFIG_SENSORS_ADM1031 is not set 904# CONFIG_SENSORS_ADM1031 is not set
911# CONFIG_SENSORS_ADM9240 is not set 905# CONFIG_SENSORS_ADM9240 is not set
906# CONFIG_SENSORS_ADT7411 is not set
912# CONFIG_SENSORS_ADT7462 is not set 907# CONFIG_SENSORS_ADT7462 is not set
913# CONFIG_SENSORS_ADT7470 is not set 908# CONFIG_SENSORS_ADT7470 is not set
914# CONFIG_SENSORS_ADT7473 is not set
915# CONFIG_SENSORS_ADT7475 is not set 909# CONFIG_SENSORS_ADT7475 is not set
910# CONFIG_SENSORS_ASC7621 is not set
916# CONFIG_SENSORS_ATXP1 is not set 911# CONFIG_SENSORS_ATXP1 is not set
917# CONFIG_SENSORS_DS1621 is not set 912# CONFIG_SENSORS_DS1621 is not set
918# CONFIG_SENSORS_I5K_AMB is not set 913# CONFIG_SENSORS_I5K_AMB is not set
@@ -949,6 +944,7 @@ CONFIG_HWMON=y
949# CONFIG_SENSORS_SMSC47M192 is not set 944# CONFIG_SENSORS_SMSC47M192 is not set
950# CONFIG_SENSORS_SMSC47B397 is not set 945# CONFIG_SENSORS_SMSC47B397 is not set
951# CONFIG_SENSORS_ADS7828 is not set 946# CONFIG_SENSORS_ADS7828 is not set
947# CONFIG_SENSORS_AMC6821 is not set
952# CONFIG_SENSORS_THMC50 is not set 948# CONFIG_SENSORS_THMC50 is not set
953# CONFIG_SENSORS_TMP401 is not set 949# CONFIG_SENSORS_TMP401 is not set
954# CONFIG_SENSORS_TMP421 is not set 950# CONFIG_SENSORS_TMP421 is not set
@@ -996,18 +992,21 @@ CONFIG_SSB_POSSIBLE=y
996# Multifunction device drivers 992# Multifunction device drivers
997# 993#
998# CONFIG_MFD_CORE is not set 994# CONFIG_MFD_CORE is not set
995# CONFIG_MFD_88PM860X is not set
999# CONFIG_MFD_SM501 is not set 996# CONFIG_MFD_SM501 is not set
1000# CONFIG_HTC_PASIC3 is not set 997# CONFIG_HTC_PASIC3 is not set
1001# CONFIG_TWL4030_CORE is not set 998# CONFIG_TWL4030_CORE is not set
1002# CONFIG_MFD_TMIO is not set 999# CONFIG_MFD_TMIO is not set
1003# CONFIG_PMIC_DA903X is not set 1000# CONFIG_PMIC_DA903X is not set
1004# CONFIG_PMIC_ADP5520 is not set 1001# CONFIG_PMIC_ADP5520 is not set
1002# CONFIG_MFD_MAX8925 is not set
1005# CONFIG_MFD_WM8400 is not set 1003# CONFIG_MFD_WM8400 is not set
1006# CONFIG_MFD_WM831X is not set 1004# CONFIG_MFD_WM831X is not set
1007# CONFIG_MFD_WM8350_I2C is not set 1005# CONFIG_MFD_WM8350_I2C is not set
1006# CONFIG_MFD_WM8994 is not set
1008# CONFIG_MFD_PCF50633 is not set 1007# CONFIG_MFD_PCF50633 is not set
1009# CONFIG_AB3100_CORE is not set 1008# CONFIG_AB3100_CORE is not set
1010# CONFIG_MFD_88PM8607 is not set 1009# CONFIG_LPC_SCH is not set
1011# CONFIG_REGULATOR is not set 1010# CONFIG_REGULATOR is not set
1012# CONFIG_MEDIA_SUPPORT is not set 1011# CONFIG_MEDIA_SUPPORT is not set
1013 1012
@@ -1016,6 +1015,7 @@ CONFIG_SSB_POSSIBLE=y
1016# 1015#
1017# CONFIG_AGP is not set 1016# CONFIG_AGP is not set
1018CONFIG_VGA_ARB=y 1017CONFIG_VGA_ARB=y
1018CONFIG_VGA_ARB_MAX_GPUS=16
1019# CONFIG_DRM is not set 1019# CONFIG_DRM is not set
1020# CONFIG_VGASTATE is not set 1020# CONFIG_VGASTATE is not set
1021# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1021# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1140,7 +1140,6 @@ CONFIG_USB_STORAGE=y
1140# CONFIG_USB_RIO500 is not set 1140# CONFIG_USB_RIO500 is not set
1141# CONFIG_USB_LEGOTOWER is not set 1141# CONFIG_USB_LEGOTOWER is not set
1142# CONFIG_USB_LCD is not set 1142# CONFIG_USB_LCD is not set
1143# CONFIG_USB_BERRY_CHARGE is not set
1144# CONFIG_USB_LED is not set 1143# CONFIG_USB_LED is not set
1145# CONFIG_USB_CYPRESS_CY7C63 is not set 1144# CONFIG_USB_CYPRESS_CY7C63 is not set
1146# CONFIG_USB_CYTHERM is not set 1145# CONFIG_USB_CYTHERM is not set
@@ -1153,7 +1152,6 @@ CONFIG_USB_STORAGE=y
1153# CONFIG_USB_IOWARRIOR is not set 1152# CONFIG_USB_IOWARRIOR is not set
1154# CONFIG_USB_TEST is not set 1153# CONFIG_USB_TEST is not set
1155# CONFIG_USB_ISIGHTFW is not set 1154# CONFIG_USB_ISIGHTFW is not set
1156# CONFIG_USB_VST is not set
1157# CONFIG_USB_GADGET is not set 1155# CONFIG_USB_GADGET is not set
1158 1156
1159# 1157#
@@ -1245,6 +1243,7 @@ CONFIG_MISC_FILESYSTEMS=y
1245# CONFIG_BFS_FS is not set 1243# CONFIG_BFS_FS is not set
1246# CONFIG_EFS_FS is not set 1244# CONFIG_EFS_FS is not set
1247# CONFIG_JFFS2_FS is not set 1245# CONFIG_JFFS2_FS is not set
1246# CONFIG_LOGFS is not set
1248# CONFIG_CRAMFS is not set 1247# CONFIG_CRAMFS is not set
1249# CONFIG_SQUASHFS is not set 1248# CONFIG_SQUASHFS is not set
1250# CONFIG_VXFS_FS is not set 1249# CONFIG_VXFS_FS is not set
@@ -1271,6 +1270,7 @@ CONFIG_SUNRPC_GSS=y
1271CONFIG_RPCSEC_GSS_KRB5=y 1270CONFIG_RPCSEC_GSS_KRB5=y
1272# CONFIG_RPCSEC_GSS_SPKM3 is not set 1271# CONFIG_RPCSEC_GSS_SPKM3 is not set
1273# CONFIG_SMB_FS is not set 1272# CONFIG_SMB_FS is not set
1273# CONFIG_CEPH_FS is not set
1274# CONFIG_CIFS is not set 1274# CONFIG_CIFS is not set
1275# CONFIG_NCP_FS is not set 1275# CONFIG_NCP_FS is not set
1276# CONFIG_CODA_FS is not set 1276# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/ksi8560_defconfig b/arch/powerpc/configs/85xx/ksi8560_defconfig
index 21dad38b156f..f67a8d1cd0b0 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:26 2010 4# Mon Apr 19 23:16:50 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -99,10 +103,8 @@ CONFIG_RCU_FANOUT=32
99# CONFIG_TREE_RCU_TRACE is not set 103# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_IKCONFIG is not set 104# CONFIG_IKCONFIG is not set
101CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
102# CONFIG_GROUP_SCHED is not set
103# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
104CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
105CONFIG_SYSFS_DEPRECATED_V2=y
106# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
107# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
108CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -110,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
110CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
111# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
112# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
113# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
114CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
115CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -315,6 +318,7 @@ CONFIG_ISA_DMA_API=y
315# Bus options 318# Bus options
316# 319#
317CONFIG_ZONE_DMA=y 320CONFIG_ZONE_DMA=y
321# CONFIG_NEED_DMA_MAP_STATE is not set
318CONFIG_FSL_SOC=y 322CONFIG_FSL_SOC=y
319CONFIG_PPC_PCI_CHOICE=y 323CONFIG_PPC_PCI_CHOICE=y
320# CONFIG_PCI is not set 324# CONFIG_PCI is not set
@@ -345,7 +349,6 @@ CONFIG_NET=y
345# Networking options 349# Networking options
346# 350#
347CONFIG_PACKET=y 351CONFIG_PACKET=y
348# CONFIG_PACKET_MMAP is not set
349CONFIG_UNIX=y 352CONFIG_UNIX=y
350CONFIG_XFRM=y 353CONFIG_XFRM=y
351# CONFIG_XFRM_USER is not set 354# CONFIG_XFRM_USER is not set
@@ -522,6 +525,8 @@ CONFIG_MTD_PHYSMAP_OF=y
522# UBI - Unsorted block images 525# UBI - Unsorted block images
523# 526#
524# CONFIG_MTD_UBI is not set 527# CONFIG_MTD_UBI is not set
528CONFIG_OF_FLATTREE=y
529CONFIG_OF_DYNAMIC=y
525CONFIG_OF_DEVICE=y 530CONFIG_OF_DEVICE=y
526CONFIG_OF_GPIO=y 531CONFIG_OF_GPIO=y
527CONFIG_OF_MDIO=y 532CONFIG_OF_MDIO=y
@@ -575,6 +580,7 @@ CONFIG_IDE_PROC_FS=y
575# 580#
576# SCSI device support 581# SCSI device support
577# 582#
583CONFIG_SCSI_MOD=y
578# CONFIG_RAID_ATTRS is not set 584# CONFIG_RAID_ATTRS is not set
579# CONFIG_SCSI is not set 585# CONFIG_SCSI is not set
580# CONFIG_SCSI_DMA is not set 586# CONFIG_SCSI_DMA is not set
@@ -701,6 +707,7 @@ CONFIG_SERIAL_CORE=y
701CONFIG_SERIAL_CORE_CONSOLE=y 707CONFIG_SERIAL_CORE_CONSOLE=y
702CONFIG_SERIAL_CPM=y 708CONFIG_SERIAL_CPM=y
703CONFIG_SERIAL_CPM_CONSOLE=y 709CONFIG_SERIAL_CPM_CONSOLE=y
710# CONFIG_SERIAL_TIMBERDALE is not set
704# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 711# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
705CONFIG_UNIX98_PTYS=y 712CONFIG_UNIX98_PTYS=y
706# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 713# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -732,6 +739,7 @@ CONFIG_GPIOLIB=y
732# 739#
733# Memory mapped GPIO expanders: 740# Memory mapped GPIO expanders:
734# 741#
742# CONFIG_GPIO_IT8761E is not set
735# CONFIG_GPIO_XILINX is not set 743# CONFIG_GPIO_XILINX is not set
736 744
737# 745#
@@ -915,6 +923,7 @@ CONFIG_MISC_FILESYSTEMS=y
915# CONFIG_BFS_FS is not set 923# CONFIG_BFS_FS is not set
916# CONFIG_EFS_FS is not set 924# CONFIG_EFS_FS is not set
917# CONFIG_JFFS2_FS is not set 925# CONFIG_JFFS2_FS is not set
926# CONFIG_LOGFS is not set
918# CONFIG_CRAMFS is not set 927# CONFIG_CRAMFS is not set
919# CONFIG_SQUASHFS is not set 928# CONFIG_SQUASHFS is not set
920# CONFIG_VXFS_FS is not set 929# CONFIG_VXFS_FS is not set
@@ -937,6 +946,7 @@ CONFIG_SUNRPC=y
937# CONFIG_RPCSEC_GSS_KRB5 is not set 946# CONFIG_RPCSEC_GSS_KRB5 is not set
938# CONFIG_RPCSEC_GSS_SPKM3 is not set 947# CONFIG_RPCSEC_GSS_SPKM3 is not set
939# CONFIG_SMB_FS is not set 948# CONFIG_SMB_FS is not set
949# CONFIG_CEPH_FS is not set
940# CONFIG_CIFS is not set 950# CONFIG_CIFS is not set
941# CONFIG_NCP_FS is not set 951# CONFIG_NCP_FS is not set
942# CONFIG_CODA_FS is not set 952# CONFIG_CODA_FS is not set
@@ -1036,6 +1046,7 @@ CONFIG_DEBUG_MUTEXES=y
1036# CONFIG_BACKTRACE_SELF_TEST is not set 1046# CONFIG_BACKTRACE_SELF_TEST is not set
1037# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1047# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1038# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1048# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1049# CONFIG_LKDTM is not set
1039# CONFIG_FAULT_INJECTION is not set 1050# CONFIG_FAULT_INJECTION is not set
1040# CONFIG_LATENCYTOP is not set 1051# CONFIG_LATENCYTOP is not set
1041CONFIG_SYSCTL_SYSCALL_CHECK=y 1052CONFIG_SYSCTL_SYSCALL_CHECK=y
diff --git a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig b/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
index 5db54cd274c6..61b122a25cdb 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:27 2010 4# Mon Apr 19 23:16:51 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102# CONFIG_FAIR_GROUP_SCHED is not set
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -316,6 +315,7 @@ CONFIG_ISA_DMA_API=y
316# Bus options 315# Bus options
317# 316#
318CONFIG_ZONE_DMA=y 317CONFIG_ZONE_DMA=y
318# CONFIG_NEED_DMA_MAP_STATE is not set
319CONFIG_FSL_SOC=y 319CONFIG_FSL_SOC=y
320CONFIG_PPC_PCI_CHOICE=y 320CONFIG_PPC_PCI_CHOICE=y
321# CONFIG_PCI is not set 321# CONFIG_PCI is not set
@@ -346,7 +346,6 @@ CONFIG_NET=y
346# Networking options 346# Networking options
347# 347#
348CONFIG_PACKET=y 348CONFIG_PACKET=y
349# CONFIG_PACKET_MMAP is not set
350CONFIG_UNIX=y 349CONFIG_UNIX=y
351CONFIG_XFRM=y 350CONFIG_XFRM=y
352CONFIG_XFRM_USER=y 351CONFIG_XFRM_USER=y
@@ -443,6 +442,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
443# CONFIG_SYS_HYPERVISOR is not set 442# CONFIG_SYS_HYPERVISOR is not set
444# CONFIG_CONNECTOR is not set 443# CONFIG_CONNECTOR is not set
445# CONFIG_MTD is not set 444# CONFIG_MTD is not set
445CONFIG_OF_FLATTREE=y
446CONFIG_OF_DYNAMIC=y
446CONFIG_OF_DEVICE=y 447CONFIG_OF_DEVICE=y
447CONFIG_OF_MDIO=y 448CONFIG_OF_MDIO=y
448# CONFIG_PARPORT is not set 449# CONFIG_PARPORT is not set
@@ -477,6 +478,7 @@ CONFIG_HAVE_IDE=y
477# 478#
478# SCSI device support 479# SCSI device support
479# 480#
481CONFIG_SCSI_MOD=y
480# CONFIG_RAID_ATTRS is not set 482# CONFIG_RAID_ATTRS is not set
481# CONFIG_SCSI is not set 483# CONFIG_SCSI is not set
482# CONFIG_SCSI_DMA is not set 484# CONFIG_SCSI_DMA is not set
@@ -602,6 +604,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
602CONFIG_SERIAL_CORE=y 604CONFIG_SERIAL_CORE=y
603CONFIG_SERIAL_CORE_CONSOLE=y 605CONFIG_SERIAL_CORE_CONSOLE=y
604# CONFIG_SERIAL_OF_PLATFORM is not set 606# CONFIG_SERIAL_OF_PLATFORM is not set
607# CONFIG_SERIAL_TIMBERDALE is not set
605# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 608# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
606CONFIG_UNIX98_PTYS=y 609CONFIG_UNIX98_PTYS=y
607# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 610# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -788,6 +791,7 @@ CONFIG_MISC_FILESYSTEMS=y
788# CONFIG_BEFS_FS is not set 791# CONFIG_BEFS_FS is not set
789# CONFIG_BFS_FS is not set 792# CONFIG_BFS_FS is not set
790# CONFIG_EFS_FS is not set 793# CONFIG_EFS_FS is not set
794# CONFIG_LOGFS is not set
791# CONFIG_CRAMFS is not set 795# CONFIG_CRAMFS is not set
792# CONFIG_SQUASHFS is not set 796# CONFIG_SQUASHFS is not set
793# CONFIG_VXFS_FS is not set 797# CONFIG_VXFS_FS is not set
@@ -810,6 +814,7 @@ CONFIG_SUNRPC=y
810# CONFIG_RPCSEC_GSS_KRB5 is not set 814# CONFIG_RPCSEC_GSS_KRB5 is not set
811# CONFIG_RPCSEC_GSS_SPKM3 is not set 815# CONFIG_RPCSEC_GSS_SPKM3 is not set
812# CONFIG_SMB_FS is not set 816# CONFIG_SMB_FS is not set
817# CONFIG_CEPH_FS is not set
813# CONFIG_CIFS is not set 818# CONFIG_CIFS is not set
814# CONFIG_NCP_FS is not set 819# CONFIG_NCP_FS is not set
815# CONFIG_CODA_FS is not set 820# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig b/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
index 76c7018c5cd2..a5ceaa4b5e42 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:28 2010 4# Mon Apr 19 23:16:52 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -99,14 +103,8 @@ CONFIG_RCU_FANOUT=32
99# CONFIG_TREE_RCU_TRACE is not set 103# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_IKCONFIG is not set 104# CONFIG_IKCONFIG is not set
101CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
102CONFIG_GROUP_SCHED=y
103# CONFIG_FAIR_GROUP_SCHED is not set
104# CONFIG_RT_GROUP_SCHED is not set
105CONFIG_USER_SCHED=y
106# CONFIG_CGROUP_SCHED is not set
107# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
108CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
109CONFIG_SYSFS_DEPRECATED_V2=y
110# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
111# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
112CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -114,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
114CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
115# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
116# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
117# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
118CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
119CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -319,6 +318,7 @@ CONFIG_ISA_DMA_API=y
319# Bus options 318# Bus options
320# 319#
321CONFIG_ZONE_DMA=y 320CONFIG_ZONE_DMA=y
321# CONFIG_NEED_DMA_MAP_STATE is not set
322CONFIG_PPC_INDIRECT_PCI=y 322CONFIG_PPC_INDIRECT_PCI=y
323CONFIG_FSL_SOC=y 323CONFIG_FSL_SOC=y
324CONFIG_FSL_PCI=y 324CONFIG_FSL_PCI=y
@@ -329,7 +329,6 @@ CONFIG_PCI_SYSCALL=y
329# CONFIG_PCIEPORTBUS is not set 329# CONFIG_PCIEPORTBUS is not set
330CONFIG_ARCH_SUPPORTS_MSI=y 330CONFIG_ARCH_SUPPORTS_MSI=y
331# CONFIG_PCI_MSI is not set 331# CONFIG_PCI_MSI is not set
332# CONFIG_PCI_LEGACY is not set
333CONFIG_PCI_DEBUG=y 332CONFIG_PCI_DEBUG=y
334# CONFIG_PCI_STUB is not set 333# CONFIG_PCI_STUB is not set
335# CONFIG_PCI_IOV is not set 334# CONFIG_PCI_IOV is not set
@@ -358,7 +357,6 @@ CONFIG_NET=y
358# Networking options 357# Networking options
359# 358#
360CONFIG_PACKET=y 359CONFIG_PACKET=y
361# CONFIG_PACKET_MMAP is not set
362CONFIG_UNIX=y 360CONFIG_UNIX=y
363CONFIG_XFRM=y 361CONFIG_XFRM=y
364# CONFIG_XFRM_USER is not set 362# CONFIG_XFRM_USER is not set
@@ -455,6 +453,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
455# CONFIG_SYS_HYPERVISOR is not set 453# CONFIG_SYS_HYPERVISOR is not set
456# CONFIG_CONNECTOR is not set 454# CONFIG_CONNECTOR is not set
457# CONFIG_MTD is not set 455# CONFIG_MTD is not set
456CONFIG_OF_FLATTREE=y
457CONFIG_OF_DYNAMIC=y
458CONFIG_OF_DEVICE=y 458CONFIG_OF_DEVICE=y
459CONFIG_OF_GPIO=y 459CONFIG_OF_GPIO=y
460CONFIG_OF_MDIO=y 460CONFIG_OF_MDIO=y
@@ -500,6 +500,7 @@ CONFIG_HAVE_IDE=y
500# 500#
501# SCSI device support 501# SCSI device support
502# 502#
503CONFIG_SCSI_MOD=y
503# CONFIG_RAID_ATTRS is not set 504# CONFIG_RAID_ATTRS is not set
504# CONFIG_SCSI is not set 505# CONFIG_SCSI is not set
505# CONFIG_SCSI_DMA is not set 506# CONFIG_SCSI_DMA is not set
@@ -609,6 +610,8 @@ CONFIG_NETDEV_10000=y
609# CONFIG_CHELSIO_T1 is not set 610# CONFIG_CHELSIO_T1 is not set
610CONFIG_CHELSIO_T3_DEPENDS=y 611CONFIG_CHELSIO_T3_DEPENDS=y
611# CONFIG_CHELSIO_T3 is not set 612# CONFIG_CHELSIO_T3 is not set
613CONFIG_CHELSIO_T4_DEPENDS=y
614# CONFIG_CHELSIO_T4 is not set
612# CONFIG_ENIC is not set 615# CONFIG_ENIC is not set
613# CONFIG_IXGBE is not set 616# CONFIG_IXGBE is not set
614# CONFIG_IXGB is not set 617# CONFIG_IXGB is not set
@@ -621,6 +624,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
621# CONFIG_MLX4_CORE is not set 624# CONFIG_MLX4_CORE is not set
622# CONFIG_TEHUTI is not set 625# CONFIG_TEHUTI is not set
623# CONFIG_BNX2X is not set 626# CONFIG_BNX2X is not set
627# CONFIG_QLCNIC is not set
624# CONFIG_QLGE is not set 628# CONFIG_QLGE is not set
625# CONFIG_SFC is not set 629# CONFIG_SFC is not set
626# CONFIG_BE2NET is not set 630# CONFIG_BE2NET is not set
@@ -700,6 +704,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
700CONFIG_SERIAL_CPM=y 704CONFIG_SERIAL_CPM=y
701CONFIG_SERIAL_CPM_CONSOLE=y 705CONFIG_SERIAL_CPM_CONSOLE=y
702# CONFIG_SERIAL_JSM is not set 706# CONFIG_SERIAL_JSM is not set
707# CONFIG_SERIAL_TIMBERDALE is not set
703# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 708# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
704CONFIG_UNIX98_PTYS=y 709CONFIG_UNIX98_PTYS=y
705# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 710# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -733,7 +738,9 @@ CONFIG_GPIOLIB=y
733# 738#
734# Memory mapped GPIO expanders: 739# Memory mapped GPIO expanders:
735# 740#
741# CONFIG_GPIO_IT8761E is not set
736# CONFIG_GPIO_XILINX is not set 742# CONFIG_GPIO_XILINX is not set
743# CONFIG_GPIO_SCH is not set
737 744
738# 745#
739# I2C GPIO expanders: 746# I2C GPIO expanders:
@@ -793,6 +800,8 @@ CONFIG_SSB_POSSIBLE=y
793# CONFIG_MFD_SM501 is not set 800# CONFIG_MFD_SM501 is not set
794# CONFIG_HTC_PASIC3 is not set 801# CONFIG_HTC_PASIC3 is not set
795# CONFIG_MFD_TMIO is not set 802# CONFIG_MFD_TMIO is not set
803# CONFIG_MFD_TIMBERDALE is not set
804# CONFIG_LPC_SCH is not set
796# CONFIG_REGULATOR is not set 805# CONFIG_REGULATOR is not set
797# CONFIG_MEDIA_SUPPORT is not set 806# CONFIG_MEDIA_SUPPORT is not set
798 807
@@ -801,6 +810,7 @@ CONFIG_SSB_POSSIBLE=y
801# 810#
802# CONFIG_AGP is not set 811# CONFIG_AGP is not set
803CONFIG_VGA_ARB=y 812CONFIG_VGA_ARB=y
813CONFIG_VGA_ARB_MAX_GPUS=16
804# CONFIG_DRM is not set 814# CONFIG_DRM is not set
805# CONFIG_VGASTATE is not set 815# CONFIG_VGASTATE is not set
806CONFIG_VIDEO_OUTPUT_CONTROL=y 816CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -927,6 +937,7 @@ CONFIG_MISC_FILESYSTEMS=y
927# CONFIG_BEFS_FS is not set 937# CONFIG_BEFS_FS is not set
928# CONFIG_BFS_FS is not set 938# CONFIG_BFS_FS is not set
929# CONFIG_EFS_FS is not set 939# CONFIG_EFS_FS is not set
940# CONFIG_LOGFS is not set
930# CONFIG_CRAMFS is not set 941# CONFIG_CRAMFS is not set
931# CONFIG_SQUASHFS is not set 942# CONFIG_SQUASHFS is not set
932# CONFIG_VXFS_FS is not set 943# CONFIG_VXFS_FS is not set
@@ -949,6 +960,7 @@ CONFIG_SUNRPC=y
949# CONFIG_RPCSEC_GSS_KRB5 is not set 960# CONFIG_RPCSEC_GSS_KRB5 is not set
950# CONFIG_RPCSEC_GSS_SPKM3 is not set 961# CONFIG_RPCSEC_GSS_SPKM3 is not set
951# CONFIG_SMB_FS is not set 962# CONFIG_SMB_FS is not set
963# CONFIG_CEPH_FS is not set
952# CONFIG_CIFS is not set 964# CONFIG_CIFS is not set
953# CONFIG_NCP_FS is not set 965# CONFIG_NCP_FS is not set
954# CONFIG_CODA_FS is not set 966# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig b/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
index fab8adacbf79..4adb4eba2d4f 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:29 2010 4# Mon Apr 19 23:16:53 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102# CONFIG_FAIR_GROUP_SCHED is not set
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -317,6 +316,7 @@ CONFIG_ISA_DMA_API=y
317# Bus options 316# Bus options
318# 317#
319CONFIG_ZONE_DMA=y 318CONFIG_ZONE_DMA=y
319# CONFIG_NEED_DMA_MAP_STATE is not set
320CONFIG_PPC_INDIRECT_PCI=y 320CONFIG_PPC_INDIRECT_PCI=y
321CONFIG_FSL_SOC=y 321CONFIG_FSL_SOC=y
322CONFIG_FSL_PCI=y 322CONFIG_FSL_PCI=y
@@ -327,7 +327,6 @@ CONFIG_PCI_SYSCALL=y
327# CONFIG_PCIEPORTBUS is not set 327# CONFIG_PCIEPORTBUS is not set
328CONFIG_ARCH_SUPPORTS_MSI=y 328CONFIG_ARCH_SUPPORTS_MSI=y
329# CONFIG_PCI_MSI is not set 329# CONFIG_PCI_MSI is not set
330# CONFIG_PCI_LEGACY is not set
331# CONFIG_PCI_DEBUG is not set 330# CONFIG_PCI_DEBUG is not set
332# CONFIG_PCI_STUB is not set 331# CONFIG_PCI_STUB is not set
333# CONFIG_PCI_IOV is not set 332# CONFIG_PCI_IOV is not set
@@ -356,7 +355,6 @@ CONFIG_NET=y
356# Networking options 355# Networking options
357# 356#
358CONFIG_PACKET=y 357CONFIG_PACKET=y
359# CONFIG_PACKET_MMAP is not set
360CONFIG_UNIX=y 358CONFIG_UNIX=y
361CONFIG_XFRM=y 359CONFIG_XFRM=y
362CONFIG_XFRM_USER=y 360CONFIG_XFRM_USER=y
@@ -453,6 +451,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
453# CONFIG_SYS_HYPERVISOR is not set 451# CONFIG_SYS_HYPERVISOR is not set
454# CONFIG_CONNECTOR is not set 452# CONFIG_CONNECTOR is not set
455# CONFIG_MTD is not set 453# CONFIG_MTD is not set
454CONFIG_OF_FLATTREE=y
455CONFIG_OF_DYNAMIC=y
456CONFIG_OF_DEVICE=y 456CONFIG_OF_DEVICE=y
457CONFIG_OF_MDIO=y 457CONFIG_OF_MDIO=y
458# CONFIG_PARPORT is not set 458# CONFIG_PARPORT is not set
@@ -552,6 +552,7 @@ CONFIG_BLK_DEV_IDEDMA=y
552# 552#
553# SCSI device support 553# SCSI device support
554# 554#
555CONFIG_SCSI_MOD=y
555# CONFIG_RAID_ATTRS is not set 556# CONFIG_RAID_ATTRS is not set
556# CONFIG_SCSI is not set 557# CONFIG_SCSI is not set
557# CONFIG_SCSI_DMA is not set 558# CONFIG_SCSI_DMA is not set
@@ -657,6 +658,8 @@ CONFIG_NETDEV_10000=y
657# CONFIG_CHELSIO_T1 is not set 658# CONFIG_CHELSIO_T1 is not set
658CONFIG_CHELSIO_T3_DEPENDS=y 659CONFIG_CHELSIO_T3_DEPENDS=y
659# CONFIG_CHELSIO_T3 is not set 660# CONFIG_CHELSIO_T3 is not set
661CONFIG_CHELSIO_T4_DEPENDS=y
662# CONFIG_CHELSIO_T4 is not set
660# CONFIG_ENIC is not set 663# CONFIG_ENIC is not set
661# CONFIG_IXGBE is not set 664# CONFIG_IXGBE is not set
662# CONFIG_IXGB is not set 665# CONFIG_IXGB is not set
@@ -669,6 +672,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
669# CONFIG_MLX4_CORE is not set 672# CONFIG_MLX4_CORE is not set
670# CONFIG_TEHUTI is not set 673# CONFIG_TEHUTI is not set
671# CONFIG_BNX2X is not set 674# CONFIG_BNX2X is not set
675# CONFIG_QLCNIC is not set
672# CONFIG_QLGE is not set 676# CONFIG_QLGE is not set
673# CONFIG_SFC is not set 677# CONFIG_SFC is not set
674# CONFIG_BE2NET is not set 678# CONFIG_BE2NET is not set
@@ -753,6 +757,7 @@ CONFIG_SERIAL_CORE=y
753CONFIG_SERIAL_CORE_CONSOLE=y 757CONFIG_SERIAL_CORE_CONSOLE=y
754# CONFIG_SERIAL_JSM is not set 758# CONFIG_SERIAL_JSM is not set
755# CONFIG_SERIAL_OF_PLATFORM is not set 759# CONFIG_SERIAL_OF_PLATFORM is not set
760# CONFIG_SERIAL_TIMBERDALE is not set
756# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 761# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
757CONFIG_UNIX98_PTYS=y 762CONFIG_UNIX98_PTYS=y
758# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 763# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -817,6 +822,7 @@ CONFIG_SSB_POSSIBLE=y
817# CONFIG_MFD_SM501 is not set 822# CONFIG_MFD_SM501 is not set
818# CONFIG_HTC_PASIC3 is not set 823# CONFIG_HTC_PASIC3 is not set
819# CONFIG_MFD_TMIO is not set 824# CONFIG_MFD_TMIO is not set
825# CONFIG_LPC_SCH is not set
820# CONFIG_REGULATOR is not set 826# CONFIG_REGULATOR is not set
821# CONFIG_MEDIA_SUPPORT is not set 827# CONFIG_MEDIA_SUPPORT is not set
822 828
@@ -825,6 +831,7 @@ CONFIG_SSB_POSSIBLE=y
825# 831#
826# CONFIG_AGP is not set 832# CONFIG_AGP is not set
827CONFIG_VGA_ARB=y 833CONFIG_VGA_ARB=y
834CONFIG_VGA_ARB_MAX_GPUS=16
828# CONFIG_DRM is not set 835# CONFIG_DRM is not set
829# CONFIG_VGASTATE is not set 836# CONFIG_VGASTATE is not set
830CONFIG_VIDEO_OUTPUT_CONTROL=y 837CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -951,6 +958,7 @@ CONFIG_MISC_FILESYSTEMS=y
951# CONFIG_BEFS_FS is not set 958# CONFIG_BEFS_FS is not set
952# CONFIG_BFS_FS is not set 959# CONFIG_BFS_FS is not set
953# CONFIG_EFS_FS is not set 960# CONFIG_EFS_FS is not set
961# CONFIG_LOGFS is not set
954# CONFIG_CRAMFS is not set 962# CONFIG_CRAMFS is not set
955# CONFIG_SQUASHFS is not set 963# CONFIG_SQUASHFS is not set
956# CONFIG_VXFS_FS is not set 964# CONFIG_VXFS_FS is not set
@@ -973,6 +981,7 @@ CONFIG_SUNRPC=y
973# CONFIG_RPCSEC_GSS_KRB5 is not set 981# CONFIG_RPCSEC_GSS_KRB5 is not set
974# CONFIG_RPCSEC_GSS_SPKM3 is not set 982# CONFIG_RPCSEC_GSS_SPKM3 is not set
975# CONFIG_SMB_FS is not set 983# CONFIG_SMB_FS is not set
984# CONFIG_CEPH_FS is not set
976# CONFIG_CIFS is not set 985# CONFIG_CIFS is not set
977# CONFIG_NCP_FS is not set 986# CONFIG_NCP_FS is not set
978# CONFIG_CODA_FS is not set 987# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/sbc8548_defconfig b/arch/powerpc/configs/85xx/sbc8548_defconfig
index 8290385e9b94..3de8450cd551 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:29 2010 4# Mon Apr 19 23:16:54 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102CONFIG_FAIR_GROUP_SCHED=y
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -314,6 +313,7 @@ CONFIG_ISA_DMA_API=y
314# Bus options 313# Bus options
315# 314#
316CONFIG_ZONE_DMA=y 315CONFIG_ZONE_DMA=y
316# CONFIG_NEED_DMA_MAP_STATE is not set
317CONFIG_PPC_INDIRECT_PCI=y 317CONFIG_PPC_INDIRECT_PCI=y
318CONFIG_FSL_SOC=y 318CONFIG_FSL_SOC=y
319CONFIG_FSL_PCI=y 319CONFIG_FSL_PCI=y
@@ -324,7 +324,6 @@ CONFIG_PCI_SYSCALL=y
324# CONFIG_PCIEPORTBUS is not set 324# CONFIG_PCIEPORTBUS is not set
325CONFIG_ARCH_SUPPORTS_MSI=y 325CONFIG_ARCH_SUPPORTS_MSI=y
326# CONFIG_PCI_MSI is not set 326# CONFIG_PCI_MSI is not set
327# CONFIG_PCI_LEGACY is not set
328# CONFIG_PCI_STUB is not set 327# CONFIG_PCI_STUB is not set
329# CONFIG_PCI_IOV is not set 328# CONFIG_PCI_IOV is not set
330# CONFIG_PCCARD is not set 329# CONFIG_PCCARD is not set
@@ -352,7 +351,6 @@ CONFIG_NET=y
352# Networking options 351# Networking options
353# 352#
354CONFIG_PACKET=y 353CONFIG_PACKET=y
355# CONFIG_PACKET_MMAP is not set
356CONFIG_UNIX=y 354CONFIG_UNIX=y
357CONFIG_XFRM=y 355CONFIG_XFRM=y
358CONFIG_XFRM_USER=y 356CONFIG_XFRM_USER=y
@@ -447,6 +445,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
447# CONFIG_SYS_HYPERVISOR is not set 445# CONFIG_SYS_HYPERVISOR is not set
448# CONFIG_CONNECTOR is not set 446# CONFIG_CONNECTOR is not set
449# CONFIG_MTD is not set 447# CONFIG_MTD is not set
448CONFIG_OF_FLATTREE=y
449CONFIG_OF_DYNAMIC=y
450CONFIG_OF_DEVICE=y 450CONFIG_OF_DEVICE=y
451CONFIG_OF_MDIO=y 451CONFIG_OF_MDIO=y
452# CONFIG_PARPORT is not set 452# CONFIG_PARPORT is not set
@@ -491,6 +491,7 @@ CONFIG_HAVE_IDE=y
491# 491#
492# SCSI device support 492# SCSI device support
493# 493#
494CONFIG_SCSI_MOD=y
494# CONFIG_RAID_ATTRS is not set 495# CONFIG_RAID_ATTRS is not set
495# CONFIG_SCSI is not set 496# CONFIG_SCSI is not set
496# CONFIG_SCSI_DMA is not set 497# CONFIG_SCSI_DMA is not set
@@ -596,6 +597,8 @@ CONFIG_NETDEV_10000=y
596# CONFIG_CHELSIO_T1 is not set 597# CONFIG_CHELSIO_T1 is not set
597CONFIG_CHELSIO_T3_DEPENDS=y 598CONFIG_CHELSIO_T3_DEPENDS=y
598# CONFIG_CHELSIO_T3 is not set 599# CONFIG_CHELSIO_T3 is not set
600CONFIG_CHELSIO_T4_DEPENDS=y
601# CONFIG_CHELSIO_T4 is not set
599# CONFIG_ENIC is not set 602# CONFIG_ENIC is not set
600# CONFIG_IXGBE is not set 603# CONFIG_IXGBE is not set
601# CONFIG_IXGB is not set 604# CONFIG_IXGB is not set
@@ -608,6 +611,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
608# CONFIG_MLX4_CORE is not set 611# CONFIG_MLX4_CORE is not set
609# CONFIG_TEHUTI is not set 612# CONFIG_TEHUTI is not set
610# CONFIG_BNX2X is not set 613# CONFIG_BNX2X is not set
614# CONFIG_QLCNIC is not set
611# CONFIG_QLGE is not set 615# CONFIG_QLGE is not set
612# CONFIG_SFC is not set 616# CONFIG_SFC is not set
613# CONFIG_BE2NET is not set 617# CONFIG_BE2NET is not set
@@ -692,6 +696,7 @@ CONFIG_SERIAL_CORE=y
692CONFIG_SERIAL_CORE_CONSOLE=y 696CONFIG_SERIAL_CORE_CONSOLE=y
693# CONFIG_SERIAL_JSM is not set 697# CONFIG_SERIAL_JSM is not set
694# CONFIG_SERIAL_OF_PLATFORM is not set 698# CONFIG_SERIAL_OF_PLATFORM is not set
699# CONFIG_SERIAL_TIMBERDALE is not set
695# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 700# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
696CONFIG_UNIX98_PTYS=y 701CONFIG_UNIX98_PTYS=y
697# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 702# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -756,6 +761,7 @@ CONFIG_SSB_POSSIBLE=y
756# CONFIG_MFD_SM501 is not set 761# CONFIG_MFD_SM501 is not set
757# CONFIG_HTC_PASIC3 is not set 762# CONFIG_HTC_PASIC3 is not set
758# CONFIG_MFD_TMIO is not set 763# CONFIG_MFD_TMIO is not set
764# CONFIG_LPC_SCH is not set
759# CONFIG_REGULATOR is not set 765# CONFIG_REGULATOR is not set
760# CONFIG_MEDIA_SUPPORT is not set 766# CONFIG_MEDIA_SUPPORT is not set
761 767
@@ -764,6 +770,7 @@ CONFIG_SSB_POSSIBLE=y
764# 770#
765# CONFIG_AGP is not set 771# CONFIG_AGP is not set
766CONFIG_VGA_ARB=y 772CONFIG_VGA_ARB=y
773CONFIG_VGA_ARB_MAX_GPUS=16
767# CONFIG_DRM is not set 774# CONFIG_DRM is not set
768# CONFIG_VGASTATE is not set 775# CONFIG_VGASTATE is not set
769CONFIG_VIDEO_OUTPUT_CONTROL=y 776CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -856,6 +863,7 @@ CONFIG_MISC_FILESYSTEMS=y
856# CONFIG_BEFS_FS is not set 863# CONFIG_BEFS_FS is not set
857# CONFIG_BFS_FS is not set 864# CONFIG_BFS_FS is not set
858# CONFIG_EFS_FS is not set 865# CONFIG_EFS_FS is not set
866# CONFIG_LOGFS is not set
859# CONFIG_CRAMFS is not set 867# CONFIG_CRAMFS is not set
860# CONFIG_SQUASHFS is not set 868# CONFIG_SQUASHFS is not set
861# CONFIG_VXFS_FS is not set 869# CONFIG_VXFS_FS is not set
@@ -878,6 +886,7 @@ CONFIG_SUNRPC=y
878# CONFIG_RPCSEC_GSS_KRB5 is not set 886# CONFIG_RPCSEC_GSS_KRB5 is not set
879# CONFIG_RPCSEC_GSS_SPKM3 is not set 887# CONFIG_RPCSEC_GSS_SPKM3 is not set
880# CONFIG_SMB_FS is not set 888# CONFIG_SMB_FS is not set
889# CONFIG_CEPH_FS is not set
881# CONFIG_CIFS is not set 890# CONFIG_CIFS is not set
882# CONFIG_NCP_FS is not set 891# CONFIG_NCP_FS is not set
883# CONFIG_CODA_FS is not set 892# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/sbc8560_defconfig b/arch/powerpc/configs/85xx/sbc8560_defconfig
index 2499b5ba7141..bd467fe13932 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:30 2010 4# Mon Apr 19 23:16:54 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102CONFIG_FAIR_GROUP_SCHED=y
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -314,6 +313,7 @@ CONFIG_ISA_DMA_API=y
314# Bus options 313# Bus options
315# 314#
316CONFIG_ZONE_DMA=y 315CONFIG_ZONE_DMA=y
316# CONFIG_NEED_DMA_MAP_STATE is not set
317CONFIG_FSL_SOC=y 317CONFIG_FSL_SOC=y
318CONFIG_PPC_PCI_CHOICE=y 318CONFIG_PPC_PCI_CHOICE=y
319# CONFIG_PCI is not set 319# CONFIG_PCI is not set
@@ -344,7 +344,6 @@ CONFIG_NET=y
344# Networking options 344# Networking options
345# 345#
346CONFIG_PACKET=y 346CONFIG_PACKET=y
347# CONFIG_PACKET_MMAP is not set
348CONFIG_UNIX=y 347CONFIG_UNIX=y
349CONFIG_XFRM=y 348CONFIG_XFRM=y
350CONFIG_XFRM_USER=y 349CONFIG_XFRM_USER=y
@@ -441,6 +440,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
441# CONFIG_SYS_HYPERVISOR is not set 440# CONFIG_SYS_HYPERVISOR is not set
442# CONFIG_CONNECTOR is not set 441# CONFIG_CONNECTOR is not set
443# CONFIG_MTD is not set 442# CONFIG_MTD is not set
443CONFIG_OF_FLATTREE=y
444CONFIG_OF_DYNAMIC=y
444CONFIG_OF_DEVICE=y 445CONFIG_OF_DEVICE=y
445CONFIG_OF_MDIO=y 446CONFIG_OF_MDIO=y
446# CONFIG_PARPORT is not set 447# CONFIG_PARPORT is not set
@@ -475,6 +476,7 @@ CONFIG_HAVE_IDE=y
475# 476#
476# SCSI device support 477# SCSI device support
477# 478#
479CONFIG_SCSI_MOD=y
478# CONFIG_RAID_ATTRS is not set 480# CONFIG_RAID_ATTRS is not set
479# CONFIG_SCSI is not set 481# CONFIG_SCSI is not set
480# CONFIG_SCSI_DMA is not set 482# CONFIG_SCSI_DMA is not set
@@ -600,6 +602,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
600CONFIG_SERIAL_CORE=y 602CONFIG_SERIAL_CORE=y
601CONFIG_SERIAL_CORE_CONSOLE=y 603CONFIG_SERIAL_CORE_CONSOLE=y
602# CONFIG_SERIAL_OF_PLATFORM is not set 604# CONFIG_SERIAL_OF_PLATFORM is not set
605# CONFIG_SERIAL_TIMBERDALE is not set
603# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 606# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
604CONFIG_UNIX98_PTYS=y 607CONFIG_UNIX98_PTYS=y
605# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 608# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -815,6 +818,7 @@ CONFIG_MISC_FILESYSTEMS=y
815# CONFIG_BEFS_FS is not set 818# CONFIG_BEFS_FS is not set
816# CONFIG_BFS_FS is not set 819# CONFIG_BFS_FS is not set
817# CONFIG_EFS_FS is not set 820# CONFIG_EFS_FS is not set
821# CONFIG_LOGFS is not set
818# CONFIG_CRAMFS is not set 822# CONFIG_CRAMFS is not set
819# CONFIG_SQUASHFS is not set 823# CONFIG_SQUASHFS is not set
820# CONFIG_VXFS_FS is not set 824# CONFIG_VXFS_FS is not set
@@ -837,6 +841,7 @@ CONFIG_SUNRPC=y
837# CONFIG_RPCSEC_GSS_KRB5 is not set 841# CONFIG_RPCSEC_GSS_KRB5 is not set
838# CONFIG_RPCSEC_GSS_SPKM3 is not set 842# CONFIG_RPCSEC_GSS_SPKM3 is not set
839# CONFIG_SMB_FS is not set 843# CONFIG_SMB_FS is not set
844# CONFIG_CEPH_FS is not set
840# CONFIG_CIFS is not set 845# CONFIG_CIFS is not set
841# CONFIG_NCP_FS is not set 846# CONFIG_NCP_FS is not set
842# CONFIG_CODA_FS is not set 847# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/socrates_defconfig b/arch/powerpc/configs/85xx/socrates_defconfig
index e2edb79cfd1a..9803e031165c 100644
--- a/arch/powerpc/configs/85xx/socrates_defconfig
+++ b/arch/powerpc/configs/85xx/socrates_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:31 2010 4# Mon Apr 19 23:16:55 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=16 104CONFIG_LOG_BUF_SHIFT=16
101CONFIG_GROUP_SCHED=y
102CONFIG_FAIR_GROUP_SCHED=y
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -319,6 +318,7 @@ CONFIG_ISA_DMA_API=y
319# Bus options 318# Bus options
320# 319#
321CONFIG_ZONE_DMA=y 320CONFIG_ZONE_DMA=y
321# CONFIG_NEED_DMA_MAP_STATE is not set
322CONFIG_PPC_INDIRECT_PCI=y 322CONFIG_PPC_INDIRECT_PCI=y
323CONFIG_FSL_SOC=y 323CONFIG_FSL_SOC=y
324CONFIG_FSL_PCI=y 324CONFIG_FSL_PCI=y
@@ -329,7 +329,6 @@ CONFIG_PCI_SYSCALL=y
329# CONFIG_PCIEPORTBUS is not set 329# CONFIG_PCIEPORTBUS is not set
330CONFIG_ARCH_SUPPORTS_MSI=y 330CONFIG_ARCH_SUPPORTS_MSI=y
331# CONFIG_PCI_MSI is not set 331# CONFIG_PCI_MSI is not set
332CONFIG_PCI_LEGACY=y
333# CONFIG_PCI_STUB is not set 332# CONFIG_PCI_STUB is not set
334# CONFIG_PCI_IOV is not set 333# CONFIG_PCI_IOV is not set
335# CONFIG_HAS_RAPIDIO is not set 334# CONFIG_HAS_RAPIDIO is not set
@@ -355,7 +354,6 @@ CONFIG_NET=y
355# Networking options 354# Networking options
356# 355#
357CONFIG_PACKET=y 356CONFIG_PACKET=y
358# CONFIG_PACKET_MMAP is not set
359CONFIG_UNIX=y 357CONFIG_UNIX=y
360CONFIG_XFRM=y 358CONFIG_XFRM=y
361# CONFIG_XFRM_USER is not set 359# CONFIG_XFRM_USER is not set
@@ -554,6 +552,8 @@ CONFIG_MTD_NAND_SOCRATES=y
554# UBI - Unsorted block images 552# UBI - Unsorted block images
555# 553#
556# CONFIG_MTD_UBI is not set 554# CONFIG_MTD_UBI is not set
555CONFIG_OF_FLATTREE=y
556CONFIG_OF_DYNAMIC=y
557CONFIG_OF_DEVICE=y 557CONFIG_OF_DEVICE=y
558CONFIG_OF_I2C=y 558CONFIG_OF_I2C=y
559CONFIG_OF_SPI=y 559CONFIG_OF_SPI=y
@@ -591,6 +591,7 @@ CONFIG_MISC_DEVICES=y
591# CONFIG_ENCLOSURE_SERVICES is not set 591# CONFIG_ENCLOSURE_SERVICES is not set
592# CONFIG_HP_ILO is not set 592# CONFIG_HP_ILO is not set
593# CONFIG_ISL29003 is not set 593# CONFIG_ISL29003 is not set
594# CONFIG_SENSORS_TSL2550 is not set
594# CONFIG_DS1682 is not set 595# CONFIG_DS1682 is not set
595# CONFIG_TI_DAC7512 is not set 596# CONFIG_TI_DAC7512 is not set
596# CONFIG_C2PORT is not set 597# CONFIG_C2PORT is not set
@@ -610,6 +611,7 @@ CONFIG_HAVE_IDE=y
610# 611#
611# SCSI device support 612# SCSI device support
612# 613#
614CONFIG_SCSI_MOD=y
613# CONFIG_RAID_ATTRS is not set 615# CONFIG_RAID_ATTRS is not set
614CONFIG_SCSI=y 616CONFIG_SCSI=y
615CONFIG_SCSI_DMA=y 617CONFIG_SCSI_DMA=y
@@ -867,6 +869,7 @@ CONFIG_SERIAL_CORE=y
867CONFIG_SERIAL_CORE_CONSOLE=y 869CONFIG_SERIAL_CORE_CONSOLE=y
868# CONFIG_SERIAL_JSM is not set 870# CONFIG_SERIAL_JSM is not set
869# CONFIG_SERIAL_OF_PLATFORM is not set 871# CONFIG_SERIAL_OF_PLATFORM is not set
872# CONFIG_SERIAL_TIMBERDALE is not set
870# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 873# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
871CONFIG_UNIX98_PTYS=y 874CONFIG_UNIX98_PTYS=y
872# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 875# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -916,6 +919,7 @@ CONFIG_I2C_HELPER_AUTO=y
916CONFIG_I2C_MPC=y 919CONFIG_I2C_MPC=y
917# CONFIG_I2C_OCORES is not set 920# CONFIG_I2C_OCORES is not set
918# CONFIG_I2C_SIMTEC is not set 921# CONFIG_I2C_SIMTEC is not set
922# CONFIG_I2C_XILINX is not set
919 923
920# 924#
921# External I2C/SMBus adapter drivers 925# External I2C/SMBus adapter drivers
@@ -929,15 +933,9 @@ CONFIG_I2C_MPC=y
929# 933#
930# CONFIG_I2C_PCA_PLATFORM is not set 934# CONFIG_I2C_PCA_PLATFORM is not set
931# CONFIG_I2C_STUB is not set 935# CONFIG_I2C_STUB is not set
932
933#
934# Miscellaneous I2C Chip support
935#
936# CONFIG_SENSORS_TSL2550 is not set
937# CONFIG_I2C_DEBUG_CORE is not set 936# CONFIG_I2C_DEBUG_CORE is not set
938# CONFIG_I2C_DEBUG_ALGO is not set 937# CONFIG_I2C_DEBUG_ALGO is not set
939# CONFIG_I2C_DEBUG_BUS is not set 938# CONFIG_I2C_DEBUG_BUS is not set
940# CONFIG_I2C_DEBUG_CHIP is not set
941CONFIG_SPI=y 939CONFIG_SPI=y
942CONFIG_SPI_MASTER=y 940CONFIG_SPI_MASTER=y
943 941
@@ -979,10 +977,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
979# CONFIG_SENSORS_ADM1029 is not set 977# CONFIG_SENSORS_ADM1029 is not set
980# CONFIG_SENSORS_ADM1031 is not set 978# CONFIG_SENSORS_ADM1031 is not set
981# CONFIG_SENSORS_ADM9240 is not set 979# CONFIG_SENSORS_ADM9240 is not set
980# CONFIG_SENSORS_ADT7411 is not set
982# CONFIG_SENSORS_ADT7462 is not set 981# CONFIG_SENSORS_ADT7462 is not set
983# CONFIG_SENSORS_ADT7470 is not set 982# CONFIG_SENSORS_ADT7470 is not set
984# CONFIG_SENSORS_ADT7473 is not set
985# CONFIG_SENSORS_ADT7475 is not set 983# CONFIG_SENSORS_ADT7475 is not set
984# CONFIG_SENSORS_ASC7621 is not set
986# CONFIG_SENSORS_ATXP1 is not set 985# CONFIG_SENSORS_ATXP1 is not set
987# CONFIG_SENSORS_DS1621 is not set 986# CONFIG_SENSORS_DS1621 is not set
988# CONFIG_SENSORS_I5K_AMB is not set 987# CONFIG_SENSORS_I5K_AMB is not set
@@ -1021,6 +1020,7 @@ CONFIG_SENSORS_LM75=y
1021# CONFIG_SENSORS_SMSC47M192 is not set 1020# CONFIG_SENSORS_SMSC47M192 is not set
1022# CONFIG_SENSORS_SMSC47B397 is not set 1021# CONFIG_SENSORS_SMSC47B397 is not set
1023# CONFIG_SENSORS_ADS7828 is not set 1022# CONFIG_SENSORS_ADS7828 is not set
1023# CONFIG_SENSORS_AMC6821 is not set
1024# CONFIG_SENSORS_THMC50 is not set 1024# CONFIG_SENSORS_THMC50 is not set
1025# CONFIG_SENSORS_TMP401 is not set 1025# CONFIG_SENSORS_TMP401 is not set
1026# CONFIG_SENSORS_TMP421 is not set 1026# CONFIG_SENSORS_TMP421 is not set
@@ -1050,21 +1050,24 @@ CONFIG_SSB_POSSIBLE=y
1050# Multifunction device drivers 1050# Multifunction device drivers
1051# 1051#
1052# CONFIG_MFD_CORE is not set 1052# CONFIG_MFD_CORE is not set
1053# CONFIG_MFD_88PM860X is not set
1053# CONFIG_MFD_SM501 is not set 1054# CONFIG_MFD_SM501 is not set
1054# CONFIG_HTC_PASIC3 is not set 1055# CONFIG_HTC_PASIC3 is not set
1055# CONFIG_TWL4030_CORE is not set 1056# CONFIG_TWL4030_CORE is not set
1056# CONFIG_MFD_TMIO is not set 1057# CONFIG_MFD_TMIO is not set
1057# CONFIG_PMIC_DA903X is not set 1058# CONFIG_PMIC_DA903X is not set
1058# CONFIG_PMIC_ADP5520 is not set 1059# CONFIG_PMIC_ADP5520 is not set
1060# CONFIG_MFD_MAX8925 is not set
1059# CONFIG_MFD_WM8400 is not set 1061# CONFIG_MFD_WM8400 is not set
1060# CONFIG_MFD_WM831X is not set 1062# CONFIG_MFD_WM831X is not set
1061# CONFIG_MFD_WM8350_I2C is not set 1063# CONFIG_MFD_WM8350_I2C is not set
1064# CONFIG_MFD_WM8994 is not set
1062# CONFIG_MFD_PCF50633 is not set 1065# CONFIG_MFD_PCF50633 is not set
1063# CONFIG_MFD_MC13783 is not set 1066# CONFIG_MFD_MC13783 is not set
1064# CONFIG_AB3100_CORE is not set 1067# CONFIG_AB3100_CORE is not set
1065# CONFIG_EZX_PCAP is not set 1068# CONFIG_EZX_PCAP is not set
1066# CONFIG_MFD_88PM8607 is not set
1067# CONFIG_AB4500_CORE is not set 1069# CONFIG_AB4500_CORE is not set
1070# CONFIG_LPC_SCH is not set
1068# CONFIG_REGULATOR is not set 1071# CONFIG_REGULATOR is not set
1069# CONFIG_MEDIA_SUPPORT is not set 1072# CONFIG_MEDIA_SUPPORT is not set
1070 1073
@@ -1073,6 +1076,7 @@ CONFIG_SSB_POSSIBLE=y
1073# 1076#
1074# CONFIG_AGP is not set 1077# CONFIG_AGP is not set
1075CONFIG_VGA_ARB=y 1078CONFIG_VGA_ARB=y
1079CONFIG_VGA_ARB_MAX_GPUS=16
1076# CONFIG_DRM is not set 1080# CONFIG_DRM is not set
1077# CONFIG_VGASTATE is not set 1081# CONFIG_VGASTATE is not set
1078# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1082# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1180,6 +1184,7 @@ CONFIG_USB_HID=y
1180# 1184#
1181# Special HID drivers 1185# Special HID drivers
1182# 1186#
1187# CONFIG_HID_3M_PCT is not set
1183# CONFIG_HID_A4TECH is not set 1188# CONFIG_HID_A4TECH is not set
1184# CONFIG_HID_APPLE is not set 1189# CONFIG_HID_APPLE is not set
1185# CONFIG_HID_BELKIN is not set 1190# CONFIG_HID_BELKIN is not set
@@ -1194,12 +1199,16 @@ CONFIG_USB_HID=y
1194# CONFIG_HID_KENSINGTON is not set 1199# CONFIG_HID_KENSINGTON is not set
1195# CONFIG_HID_LOGITECH is not set 1200# CONFIG_HID_LOGITECH is not set
1196# CONFIG_HID_MICROSOFT is not set 1201# CONFIG_HID_MICROSOFT is not set
1202# CONFIG_HID_MOSART is not set
1197# CONFIG_HID_MONTEREY is not set 1203# CONFIG_HID_MONTEREY is not set
1198# CONFIG_HID_NTRIG is not set 1204# CONFIG_HID_NTRIG is not set
1205# CONFIG_HID_ORTEK is not set
1199# CONFIG_HID_PANTHERLORD is not set 1206# CONFIG_HID_PANTHERLORD is not set
1200# CONFIG_HID_PETALYNX is not set 1207# CONFIG_HID_PETALYNX is not set
1208# CONFIG_HID_QUANTA is not set
1201# CONFIG_HID_SAMSUNG is not set 1209# CONFIG_HID_SAMSUNG is not set
1202# CONFIG_HID_SONY is not set 1210# CONFIG_HID_SONY is not set
1211# CONFIG_HID_STANTUM is not set
1203# CONFIG_HID_SUNPLUS is not set 1212# CONFIG_HID_SUNPLUS is not set
1204# CONFIG_HID_GREENASIA is not set 1213# CONFIG_HID_GREENASIA is not set
1205# CONFIG_HID_SMARTJOYPLUS is not set 1214# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1307,7 +1316,6 @@ CONFIG_USB_STORAGE=y
1307# CONFIG_USB_RIO500 is not set 1316# CONFIG_USB_RIO500 is not set
1308# CONFIG_USB_LEGOTOWER is not set 1317# CONFIG_USB_LEGOTOWER is not set
1309# CONFIG_USB_LCD is not set 1318# CONFIG_USB_LCD is not set
1310# CONFIG_USB_BERRY_CHARGE is not set
1311# CONFIG_USB_LED is not set 1319# CONFIG_USB_LED is not set
1312# CONFIG_USB_CYPRESS_CY7C63 is not set 1320# CONFIG_USB_CYPRESS_CY7C63 is not set
1313# CONFIG_USB_CYTHERM is not set 1321# CONFIG_USB_CYTHERM is not set
@@ -1320,7 +1328,6 @@ CONFIG_USB_STORAGE=y
1320# CONFIG_USB_IOWARRIOR is not set 1328# CONFIG_USB_IOWARRIOR is not set
1321# CONFIG_USB_TEST is not set 1329# CONFIG_USB_TEST is not set
1322# CONFIG_USB_ISIGHTFW is not set 1330# CONFIG_USB_ISIGHTFW is not set
1323# CONFIG_USB_VST is not set
1324# CONFIG_USB_GADGET is not set 1331# CONFIG_USB_GADGET is not set
1325 1332
1326# 1333#
@@ -1491,6 +1498,7 @@ CONFIG_JFFS2_ZLIB=y
1491# CONFIG_JFFS2_LZO is not set 1498# CONFIG_JFFS2_LZO is not set
1492CONFIG_JFFS2_RTIME=y 1499CONFIG_JFFS2_RTIME=y
1493# CONFIG_JFFS2_RUBIN is not set 1500# CONFIG_JFFS2_RUBIN is not set
1501# CONFIG_LOGFS is not set
1494CONFIG_CRAMFS=y 1502CONFIG_CRAMFS=y
1495# CONFIG_SQUASHFS is not set 1503# CONFIG_SQUASHFS is not set
1496# CONFIG_VXFS_FS is not set 1504# CONFIG_VXFS_FS is not set
@@ -1515,6 +1523,7 @@ CONFIG_SUNRPC=y
1515# CONFIG_RPCSEC_GSS_KRB5 is not set 1523# CONFIG_RPCSEC_GSS_KRB5 is not set
1516# CONFIG_RPCSEC_GSS_SPKM3 is not set 1524# CONFIG_RPCSEC_GSS_SPKM3 is not set
1517# CONFIG_SMB_FS is not set 1525# CONFIG_SMB_FS is not set
1526# CONFIG_CEPH_FS is not set
1518# CONFIG_CIFS is not set 1527# CONFIG_CIFS is not set
1519# CONFIG_NCP_FS is not set 1528# CONFIG_NCP_FS is not set
1520# CONFIG_CODA_FS is not set 1529# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/stx_gp3_defconfig b/arch/powerpc/configs/85xx/stx_gp3_defconfig
index ce313259df14..880ab7aaf202 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:32 2010 4# Mon Apr 19 23:16:56 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -99,14 +103,8 @@ CONFIG_RCU_FANOUT=32
99# CONFIG_TREE_RCU_TRACE is not set 103# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_IKCONFIG is not set 104# CONFIG_IKCONFIG is not set
101CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
102CONFIG_GROUP_SCHED=y
103CONFIG_FAIR_GROUP_SCHED=y
104# CONFIG_RT_GROUP_SCHED is not set
105CONFIG_USER_SCHED=y
106# CONFIG_CGROUP_SCHED is not set
107# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
108CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
109CONFIG_SYSFS_DEPRECATED_V2=y
110# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
111# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
112CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -114,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
114CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
115# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
116# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
117# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
118CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
119CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -324,6 +323,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 323# Bus options
325# 324#
326CONFIG_ZONE_DMA=y 325CONFIG_ZONE_DMA=y
326# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_PPC_INDIRECT_PCI=y 327CONFIG_PPC_INDIRECT_PCI=y
328CONFIG_FSL_SOC=y 328CONFIG_FSL_SOC=y
329CONFIG_FSL_PCI=y 329CONFIG_FSL_PCI=y
@@ -334,7 +334,6 @@ CONFIG_PCI_SYSCALL=y
334# CONFIG_PCIEPORTBUS is not set 334# CONFIG_PCIEPORTBUS is not set
335CONFIG_ARCH_SUPPORTS_MSI=y 335CONFIG_ARCH_SUPPORTS_MSI=y
336# CONFIG_PCI_MSI is not set 336# CONFIG_PCI_MSI is not set
337# CONFIG_PCI_LEGACY is not set
338# CONFIG_PCI_DEBUG is not set 337# CONFIG_PCI_DEBUG is not set
339# CONFIG_PCI_STUB is not set 338# CONFIG_PCI_STUB is not set
340# CONFIG_PCI_IOV is not set 339# CONFIG_PCI_IOV is not set
@@ -363,7 +362,6 @@ CONFIG_NET=y
363# Networking options 362# Networking options
364# 363#
365CONFIG_PACKET=y 364CONFIG_PACKET=y
366# CONFIG_PACKET_MMAP is not set
367CONFIG_UNIX=y 365CONFIG_UNIX=y
368CONFIG_XFRM=y 366CONFIG_XFRM=y
369# CONFIG_XFRM_USER is not set 367# CONFIG_XFRM_USER is not set
@@ -520,6 +518,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
520# CONFIG_SYS_HYPERVISOR is not set 518# CONFIG_SYS_HYPERVISOR is not set
521# CONFIG_CONNECTOR is not set 519# CONFIG_CONNECTOR is not set
522# CONFIG_MTD is not set 520# CONFIG_MTD is not set
521CONFIG_OF_FLATTREE=y
522CONFIG_OF_DYNAMIC=y
523CONFIG_OF_DEVICE=y 523CONFIG_OF_DEVICE=y
524CONFIG_OF_GPIO=y 524CONFIG_OF_GPIO=y
525CONFIG_OF_I2C=m 525CONFIG_OF_I2C=m
@@ -563,6 +563,7 @@ CONFIG_MISC_DEVICES=y
563# CONFIG_ENCLOSURE_SERVICES is not set 563# CONFIG_ENCLOSURE_SERVICES is not set
564# CONFIG_HP_ILO is not set 564# CONFIG_HP_ILO is not set
565# CONFIG_ISL29003 is not set 565# CONFIG_ISL29003 is not set
566# CONFIG_SENSORS_TSL2550 is not set
566# CONFIG_DS1682 is not set 567# CONFIG_DS1682 is not set
567# CONFIG_C2PORT is not set 568# CONFIG_C2PORT is not set
568 569
@@ -630,6 +631,7 @@ CONFIG_IDE_PROC_FS=y
630# 631#
631# SCSI device support 632# SCSI device support
632# 633#
634CONFIG_SCSI_MOD=m
633# CONFIG_RAID_ATTRS is not set 635# CONFIG_RAID_ATTRS is not set
634CONFIG_SCSI=m 636CONFIG_SCSI=m
635CONFIG_SCSI_DMA=y 637CONFIG_SCSI_DMA=y
@@ -817,6 +819,8 @@ CONFIG_NETDEV_10000=y
817# CONFIG_CHELSIO_T1 is not set 819# CONFIG_CHELSIO_T1 is not set
818CONFIG_CHELSIO_T3_DEPENDS=y 820CONFIG_CHELSIO_T3_DEPENDS=y
819# CONFIG_CHELSIO_T3 is not set 821# CONFIG_CHELSIO_T3 is not set
822CONFIG_CHELSIO_T4_DEPENDS=y
823# CONFIG_CHELSIO_T4 is not set
820# CONFIG_ENIC is not set 824# CONFIG_ENIC is not set
821# CONFIG_IXGBE is not set 825# CONFIG_IXGBE is not set
822# CONFIG_IXGB is not set 826# CONFIG_IXGB is not set
@@ -829,6 +833,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
829# CONFIG_MLX4_CORE is not set 833# CONFIG_MLX4_CORE is not set
830# CONFIG_TEHUTI is not set 834# CONFIG_TEHUTI is not set
831# CONFIG_BNX2X is not set 835# CONFIG_BNX2X is not set
836# CONFIG_QLCNIC is not set
832# CONFIG_QLGE is not set 837# CONFIG_QLGE is not set
833# CONFIG_SFC is not set 838# CONFIG_SFC is not set
834# CONFIG_BE2NET is not set 839# CONFIG_BE2NET is not set
@@ -947,6 +952,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
947CONFIG_SERIAL_CPM=y 952CONFIG_SERIAL_CPM=y
948CONFIG_SERIAL_CPM_CONSOLE=y 953CONFIG_SERIAL_CPM_CONSOLE=y
949# CONFIG_SERIAL_JSM is not set 954# CONFIG_SERIAL_JSM is not set
955# CONFIG_SERIAL_TIMBERDALE is not set
950# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 956# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
951CONFIG_UNIX98_PTYS=y 957CONFIG_UNIX98_PTYS=y
952# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 958# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1004,6 +1010,7 @@ CONFIG_I2C_ALGOBIT=m
1004# CONFIG_I2C_MPC is not set 1010# CONFIG_I2C_MPC is not set
1005# CONFIG_I2C_OCORES is not set 1011# CONFIG_I2C_OCORES is not set
1006# CONFIG_I2C_SIMTEC is not set 1012# CONFIG_I2C_SIMTEC is not set
1013# CONFIG_I2C_XILINX is not set
1007 1014
1008# 1015#
1009# External I2C/SMBus adapter drivers 1016# External I2C/SMBus adapter drivers
@@ -1017,15 +1024,9 @@ CONFIG_I2C_ALGOBIT=m
1017# 1024#
1018# CONFIG_I2C_PCA_PLATFORM is not set 1025# CONFIG_I2C_PCA_PLATFORM is not set
1019# CONFIG_I2C_STUB is not set 1026# CONFIG_I2C_STUB is not set
1020
1021#
1022# Miscellaneous I2C Chip support
1023#
1024# CONFIG_SENSORS_TSL2550 is not set
1025# CONFIG_I2C_DEBUG_CORE is not set 1027# CONFIG_I2C_DEBUG_CORE is not set
1026# CONFIG_I2C_DEBUG_ALGO is not set 1028# CONFIG_I2C_DEBUG_ALGO is not set
1027# CONFIG_I2C_DEBUG_BUS is not set 1029# CONFIG_I2C_DEBUG_BUS is not set
1028# CONFIG_I2C_DEBUG_CHIP is not set
1029# CONFIG_SPI is not set 1030# CONFIG_SPI is not set
1030 1031
1031# 1032#
@@ -1041,14 +1042,18 @@ CONFIG_GPIOLIB=y
1041# 1042#
1042# Memory mapped GPIO expanders: 1043# Memory mapped GPIO expanders:
1043# 1044#
1045# CONFIG_GPIO_IT8761E is not set
1044# CONFIG_GPIO_XILINX is not set 1046# CONFIG_GPIO_XILINX is not set
1047# CONFIG_GPIO_SCH is not set
1045 1048
1046# 1049#
1047# I2C GPIO expanders: 1050# I2C GPIO expanders:
1048# 1051#
1052# CONFIG_GPIO_MAX7300 is not set
1049# CONFIG_GPIO_MAX732X is not set 1053# CONFIG_GPIO_MAX732X is not set
1050# CONFIG_GPIO_PCA953X is not set 1054# CONFIG_GPIO_PCA953X is not set
1051# CONFIG_GPIO_PCF857X is not set 1055# CONFIG_GPIO_PCF857X is not set
1056# CONFIG_GPIO_ADP5588 is not set
1052 1057
1053# 1058#
1054# PCI GPIO expanders: 1059# PCI GPIO expanders:
@@ -1081,10 +1086,11 @@ CONFIG_HWMON=y
1081# CONFIG_SENSORS_ADM1029 is not set 1086# CONFIG_SENSORS_ADM1029 is not set
1082# CONFIG_SENSORS_ADM1031 is not set 1087# CONFIG_SENSORS_ADM1031 is not set
1083# CONFIG_SENSORS_ADM9240 is not set 1088# CONFIG_SENSORS_ADM9240 is not set
1089# CONFIG_SENSORS_ADT7411 is not set
1084# CONFIG_SENSORS_ADT7462 is not set 1090# CONFIG_SENSORS_ADT7462 is not set
1085# CONFIG_SENSORS_ADT7470 is not set 1091# CONFIG_SENSORS_ADT7470 is not set
1086# CONFIG_SENSORS_ADT7473 is not set
1087# CONFIG_SENSORS_ADT7475 is not set 1092# CONFIG_SENSORS_ADT7475 is not set
1093# CONFIG_SENSORS_ASC7621 is not set
1088# CONFIG_SENSORS_ATXP1 is not set 1094# CONFIG_SENSORS_ATXP1 is not set
1089# CONFIG_SENSORS_DS1621 is not set 1095# CONFIG_SENSORS_DS1621 is not set
1090# CONFIG_SENSORS_I5K_AMB is not set 1096# CONFIG_SENSORS_I5K_AMB is not set
@@ -1122,6 +1128,7 @@ CONFIG_HWMON=y
1122# CONFIG_SENSORS_SMSC47M192 is not set 1128# CONFIG_SENSORS_SMSC47M192 is not set
1123# CONFIG_SENSORS_SMSC47B397 is not set 1129# CONFIG_SENSORS_SMSC47B397 is not set
1124# CONFIG_SENSORS_ADS7828 is not set 1130# CONFIG_SENSORS_ADS7828 is not set
1131# CONFIG_SENSORS_AMC6821 is not set
1125# CONFIG_SENSORS_THMC50 is not set 1132# CONFIG_SENSORS_THMC50 is not set
1126# CONFIG_SENSORS_TMP401 is not set 1133# CONFIG_SENSORS_TMP401 is not set
1127# CONFIG_SENSORS_TMP421 is not set 1134# CONFIG_SENSORS_TMP421 is not set
@@ -1155,9 +1162,10 @@ CONFIG_SSB_POSSIBLE=y
1155# CONFIG_TPS65010 is not set 1162# CONFIG_TPS65010 is not set
1156# CONFIG_MFD_TMIO is not set 1163# CONFIG_MFD_TMIO is not set
1157# CONFIG_MFD_WM8400 is not set 1164# CONFIG_MFD_WM8400 is not set
1158# CONFIG_MFD_WM8350_I2C is not set 1165# CONFIG_MFD_WM8994 is not set
1159# CONFIG_MFD_PCF50633 is not set 1166# CONFIG_MFD_PCF50633 is not set
1160# CONFIG_AB3100_CORE is not set 1167# CONFIG_MFD_TIMBERDALE is not set
1168# CONFIG_LPC_SCH is not set
1161# CONFIG_REGULATOR is not set 1169# CONFIG_REGULATOR is not set
1162# CONFIG_MEDIA_SUPPORT is not set 1170# CONFIG_MEDIA_SUPPORT is not set
1163 1171
@@ -1166,6 +1174,7 @@ CONFIG_SSB_POSSIBLE=y
1166# 1174#
1167CONFIG_AGP=m 1175CONFIG_AGP=m
1168CONFIG_VGA_ARB=y 1176CONFIG_VGA_ARB=y
1177CONFIG_VGA_ARB_MAX_GPUS=16
1169CONFIG_DRM=m 1178CONFIG_DRM=m
1170# CONFIG_DRM_TDFX is not set 1179# CONFIG_DRM_TDFX is not set
1171# CONFIG_DRM_R128 is not set 1180# CONFIG_DRM_R128 is not set
@@ -1308,6 +1317,7 @@ CONFIG_MISC_FILESYSTEMS=y
1308# CONFIG_BEFS_FS is not set 1317# CONFIG_BEFS_FS is not set
1309# CONFIG_BFS_FS is not set 1318# CONFIG_BFS_FS is not set
1310# CONFIG_EFS_FS is not set 1319# CONFIG_EFS_FS is not set
1320# CONFIG_LOGFS is not set
1311CONFIG_CRAMFS=m 1321CONFIG_CRAMFS=m
1312# CONFIG_SQUASHFS is not set 1322# CONFIG_SQUASHFS is not set
1313# CONFIG_VXFS_FS is not set 1323# CONFIG_VXFS_FS is not set
@@ -1333,6 +1343,7 @@ CONFIG_SUNRPC=y
1333# CONFIG_RPCSEC_GSS_SPKM3 is not set 1343# CONFIG_RPCSEC_GSS_SPKM3 is not set
1334CONFIG_SMB_FS=m 1344CONFIG_SMB_FS=m
1335# CONFIG_SMB_NLS_DEFAULT is not set 1345# CONFIG_SMB_NLS_DEFAULT is not set
1346# CONFIG_CEPH_FS is not set
1336# CONFIG_CIFS is not set 1347# CONFIG_CIFS is not set
1337# CONFIG_NCP_FS is not set 1348# CONFIG_NCP_FS is not set
1338# CONFIG_CODA_FS is not set 1349# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8540_defconfig b/arch/powerpc/configs/85xx/tqm8540_defconfig
index 0824b4667229..230aa2fc0629 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:33 2010 4# Mon Apr 19 23:16:57 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102CONFIG_FAIR_GROUP_SCHED=y
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -315,6 +314,7 @@ CONFIG_ISA_DMA_API=y
315# Bus options 314# Bus options
316# 315#
317CONFIG_ZONE_DMA=y 316CONFIG_ZONE_DMA=y
317# CONFIG_NEED_DMA_MAP_STATE is not set
318CONFIG_PPC_INDIRECT_PCI=y 318CONFIG_PPC_INDIRECT_PCI=y
319CONFIG_FSL_SOC=y 319CONFIG_FSL_SOC=y
320CONFIG_FSL_PCI=y 320CONFIG_FSL_PCI=y
@@ -325,7 +325,6 @@ CONFIG_PCI_SYSCALL=y
325# CONFIG_PCIEPORTBUS is not set 325# CONFIG_PCIEPORTBUS is not set
326CONFIG_ARCH_SUPPORTS_MSI=y 326CONFIG_ARCH_SUPPORTS_MSI=y
327# CONFIG_PCI_MSI is not set 327# CONFIG_PCI_MSI is not set
328# CONFIG_PCI_LEGACY is not set
329# CONFIG_PCI_STUB is not set 328# CONFIG_PCI_STUB is not set
330# CONFIG_PCI_IOV is not set 329# CONFIG_PCI_IOV is not set
331# CONFIG_HAS_RAPIDIO is not set 330# CONFIG_HAS_RAPIDIO is not set
@@ -351,7 +350,6 @@ CONFIG_NET=y
351# Networking options 350# Networking options
352# 351#
353CONFIG_PACKET=y 352CONFIG_PACKET=y
354# CONFIG_PACKET_MMAP is not set
355CONFIG_UNIX=y 353CONFIG_UNIX=y
356CONFIG_XFRM=y 354CONFIG_XFRM=y
357# CONFIG_XFRM_USER is not set 355# CONFIG_XFRM_USER is not set
@@ -525,6 +523,8 @@ CONFIG_MTD_CFI_UTIL=y
525# UBI - Unsorted block images 523# UBI - Unsorted block images
526# 524#
527# CONFIG_MTD_UBI is not set 525# CONFIG_MTD_UBI is not set
526CONFIG_OF_FLATTREE=y
527CONFIG_OF_DYNAMIC=y
528CONFIG_OF_DEVICE=y 528CONFIG_OF_DEVICE=y
529CONFIG_OF_I2C=y 529CONFIG_OF_I2C=y
530CONFIG_OF_MDIO=y 530CONFIG_OF_MDIO=y
@@ -560,6 +560,7 @@ CONFIG_MISC_DEVICES=y
560# CONFIG_ENCLOSURE_SERVICES is not set 560# CONFIG_ENCLOSURE_SERVICES is not set
561# CONFIG_HP_ILO is not set 561# CONFIG_HP_ILO is not set
562# CONFIG_ISL29003 is not set 562# CONFIG_ISL29003 is not set
563# CONFIG_SENSORS_TSL2550 is not set
563# CONFIG_DS1682 is not set 564# CONFIG_DS1682 is not set
564# CONFIG_C2PORT is not set 565# CONFIG_C2PORT is not set
565 566
@@ -632,6 +633,7 @@ CONFIG_BLK_DEV_IDEDMA=y
632# 633#
633# SCSI device support 634# SCSI device support
634# 635#
636CONFIG_SCSI_MOD=y
635# CONFIG_RAID_ATTRS is not set 637# CONFIG_RAID_ATTRS is not set
636# CONFIG_SCSI is not set 638# CONFIG_SCSI is not set
637# CONFIG_SCSI_DMA is not set 639# CONFIG_SCSI_DMA is not set
@@ -704,6 +706,7 @@ CONFIG_NET_PCI=y
704# CONFIG_PCNET32 is not set 706# CONFIG_PCNET32 is not set
705# CONFIG_AMD8111_ETH is not set 707# CONFIG_AMD8111_ETH is not set
706# CONFIG_ADAPTEC_STARFIRE is not set 708# CONFIG_ADAPTEC_STARFIRE is not set
709# CONFIG_KSZ884X_PCI is not set
707# CONFIG_B44 is not set 710# CONFIG_B44 is not set
708# CONFIG_FORCEDETH is not set 711# CONFIG_FORCEDETH is not set
709CONFIG_E100=y 712CONFIG_E100=y
@@ -755,6 +758,8 @@ CONFIG_NETDEV_10000=y
755# CONFIG_CHELSIO_T1 is not set 758# CONFIG_CHELSIO_T1 is not set
756CONFIG_CHELSIO_T3_DEPENDS=y 759CONFIG_CHELSIO_T3_DEPENDS=y
757# CONFIG_CHELSIO_T3 is not set 760# CONFIG_CHELSIO_T3 is not set
761CONFIG_CHELSIO_T4_DEPENDS=y
762# CONFIG_CHELSIO_T4 is not set
758# CONFIG_ENIC is not set 763# CONFIG_ENIC is not set
759# CONFIG_IXGBE is not set 764# CONFIG_IXGBE is not set
760# CONFIG_IXGB is not set 765# CONFIG_IXGB is not set
@@ -767,6 +772,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
767# CONFIG_MLX4_CORE is not set 772# CONFIG_MLX4_CORE is not set
768# CONFIG_TEHUTI is not set 773# CONFIG_TEHUTI is not set
769# CONFIG_BNX2X is not set 774# CONFIG_BNX2X is not set
775# CONFIG_QLCNIC is not set
770# CONFIG_QLGE is not set 776# CONFIG_QLGE is not set
771# CONFIG_SFC is not set 777# CONFIG_SFC is not set
772# CONFIG_BE2NET is not set 778# CONFIG_BE2NET is not set
@@ -851,6 +857,7 @@ CONFIG_SERIAL_CORE=y
851CONFIG_SERIAL_CORE_CONSOLE=y 857CONFIG_SERIAL_CORE_CONSOLE=y
852# CONFIG_SERIAL_JSM is not set 858# CONFIG_SERIAL_JSM is not set
853# CONFIG_SERIAL_OF_PLATFORM is not set 859# CONFIG_SERIAL_OF_PLATFORM is not set
860# CONFIG_SERIAL_TIMBERDALE is not set
854# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 861# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
855CONFIG_UNIX98_PTYS=y 862CONFIG_UNIX98_PTYS=y
856# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 863# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -902,6 +909,7 @@ CONFIG_I2C_HELPER_AUTO=y
902CONFIG_I2C_MPC=y 909CONFIG_I2C_MPC=y
903# CONFIG_I2C_OCORES is not set 910# CONFIG_I2C_OCORES is not set
904# CONFIG_I2C_SIMTEC is not set 911# CONFIG_I2C_SIMTEC is not set
912# CONFIG_I2C_XILINX is not set
905 913
906# 914#
907# External I2C/SMBus adapter drivers 915# External I2C/SMBus adapter drivers
@@ -913,15 +921,9 @@ CONFIG_I2C_MPC=y
913# Other I2C/SMBus bus drivers 921# Other I2C/SMBus bus drivers
914# 922#
915# CONFIG_I2C_PCA_PLATFORM is not set 923# CONFIG_I2C_PCA_PLATFORM is not set
916
917#
918# Miscellaneous I2C Chip support
919#
920# CONFIG_SENSORS_TSL2550 is not set
921# CONFIG_I2C_DEBUG_CORE is not set 924# CONFIG_I2C_DEBUG_CORE is not set
922# CONFIG_I2C_DEBUG_ALGO is not set 925# CONFIG_I2C_DEBUG_ALGO is not set
923# CONFIG_I2C_DEBUG_BUS is not set 926# CONFIG_I2C_DEBUG_BUS is not set
924# CONFIG_I2C_DEBUG_CHIP is not set
925# CONFIG_SPI is not set 927# CONFIG_SPI is not set
926 928
927# 929#
@@ -947,10 +949,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
947# CONFIG_SENSORS_ADM1029 is not set 949# CONFIG_SENSORS_ADM1029 is not set
948# CONFIG_SENSORS_ADM1031 is not set 950# CONFIG_SENSORS_ADM1031 is not set
949# CONFIG_SENSORS_ADM9240 is not set 951# CONFIG_SENSORS_ADM9240 is not set
952# CONFIG_SENSORS_ADT7411 is not set
950# CONFIG_SENSORS_ADT7462 is not set 953# CONFIG_SENSORS_ADT7462 is not set
951# CONFIG_SENSORS_ADT7470 is not set 954# CONFIG_SENSORS_ADT7470 is not set
952# CONFIG_SENSORS_ADT7473 is not set
953# CONFIG_SENSORS_ADT7475 is not set 955# CONFIG_SENSORS_ADT7475 is not set
956# CONFIG_SENSORS_ASC7621 is not set
954# CONFIG_SENSORS_ATXP1 is not set 957# CONFIG_SENSORS_ATXP1 is not set
955# CONFIG_SENSORS_DS1621 is not set 958# CONFIG_SENSORS_DS1621 is not set
956# CONFIG_SENSORS_I5K_AMB is not set 959# CONFIG_SENSORS_I5K_AMB is not set
@@ -987,6 +990,7 @@ CONFIG_SENSORS_LM75=y
987# CONFIG_SENSORS_SMSC47M192 is not set 990# CONFIG_SENSORS_SMSC47M192 is not set
988# CONFIG_SENSORS_SMSC47B397 is not set 991# CONFIG_SENSORS_SMSC47B397 is not set
989# CONFIG_SENSORS_ADS7828 is not set 992# CONFIG_SENSORS_ADS7828 is not set
993# CONFIG_SENSORS_AMC6821 is not set
990# CONFIG_SENSORS_THMC50 is not set 994# CONFIG_SENSORS_THMC50 is not set
991# CONFIG_SENSORS_TMP401 is not set 995# CONFIG_SENSORS_TMP401 is not set
992# CONFIG_SENSORS_TMP421 is not set 996# CONFIG_SENSORS_TMP421 is not set
@@ -1015,18 +1019,21 @@ CONFIG_SSB_POSSIBLE=y
1015# Multifunction device drivers 1019# Multifunction device drivers
1016# 1020#
1017# CONFIG_MFD_CORE is not set 1021# CONFIG_MFD_CORE is not set
1022# CONFIG_MFD_88PM860X is not set
1018# CONFIG_MFD_SM501 is not set 1023# CONFIG_MFD_SM501 is not set
1019# CONFIG_HTC_PASIC3 is not set 1024# CONFIG_HTC_PASIC3 is not set
1020# CONFIG_TWL4030_CORE is not set 1025# CONFIG_TWL4030_CORE is not set
1021# CONFIG_MFD_TMIO is not set 1026# CONFIG_MFD_TMIO is not set
1022# CONFIG_PMIC_DA903X is not set 1027# CONFIG_PMIC_DA903X is not set
1023# CONFIG_PMIC_ADP5520 is not set 1028# CONFIG_PMIC_ADP5520 is not set
1029# CONFIG_MFD_MAX8925 is not set
1024# CONFIG_MFD_WM8400 is not set 1030# CONFIG_MFD_WM8400 is not set
1025# CONFIG_MFD_WM831X is not set 1031# CONFIG_MFD_WM831X is not set
1026# CONFIG_MFD_WM8350_I2C is not set 1032# CONFIG_MFD_WM8350_I2C is not set
1033# CONFIG_MFD_WM8994 is not set
1027# CONFIG_MFD_PCF50633 is not set 1034# CONFIG_MFD_PCF50633 is not set
1028# CONFIG_AB3100_CORE is not set 1035# CONFIG_AB3100_CORE is not set
1029# CONFIG_MFD_88PM8607 is not set 1036# CONFIG_LPC_SCH is not set
1030# CONFIG_REGULATOR is not set 1037# CONFIG_REGULATOR is not set
1031# CONFIG_MEDIA_SUPPORT is not set 1038# CONFIG_MEDIA_SUPPORT is not set
1032 1039
@@ -1035,6 +1042,7 @@ CONFIG_SSB_POSSIBLE=y
1035# 1042#
1036# CONFIG_AGP is not set 1043# CONFIG_AGP is not set
1037CONFIG_VGA_ARB=y 1044CONFIG_VGA_ARB=y
1045CONFIG_VGA_ARB_MAX_GPUS=16
1038# CONFIG_DRM is not set 1046# CONFIG_DRM is not set
1039# CONFIG_VGASTATE is not set 1047# CONFIG_VGASTATE is not set
1040# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1048# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1172,6 +1180,7 @@ CONFIG_JFFS2_ZLIB=y
1172# CONFIG_JFFS2_LZO is not set 1180# CONFIG_JFFS2_LZO is not set
1173CONFIG_JFFS2_RTIME=y 1181CONFIG_JFFS2_RTIME=y
1174# CONFIG_JFFS2_RUBIN is not set 1182# CONFIG_JFFS2_RUBIN is not set
1183# CONFIG_LOGFS is not set
1175CONFIG_CRAMFS=y 1184CONFIG_CRAMFS=y
1176# CONFIG_SQUASHFS is not set 1185# CONFIG_SQUASHFS is not set
1177# CONFIG_VXFS_FS is not set 1186# CONFIG_VXFS_FS is not set
@@ -1194,6 +1203,7 @@ CONFIG_SUNRPC=y
1194# CONFIG_RPCSEC_GSS_KRB5 is not set 1203# CONFIG_RPCSEC_GSS_KRB5 is not set
1195# CONFIG_RPCSEC_GSS_SPKM3 is not set 1204# CONFIG_RPCSEC_GSS_SPKM3 is not set
1196# CONFIG_SMB_FS is not set 1205# CONFIG_SMB_FS is not set
1206# CONFIG_CEPH_FS is not set
1197# CONFIG_CIFS is not set 1207# CONFIG_CIFS is not set
1198# CONFIG_NCP_FS is not set 1208# CONFIG_NCP_FS is not set
1199# CONFIG_CODA_FS is not set 1209# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8541_defconfig b/arch/powerpc/configs/85xx/tqm8541_defconfig
index 2137be4100ed..dbe04b981b87 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:34 2010 4# Mon Apr 19 23:16:58 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -99,14 +103,8 @@ CONFIG_RCU_FANOUT=32
99# CONFIG_TREE_RCU_TRACE is not set 103# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_IKCONFIG is not set 104# CONFIG_IKCONFIG is not set
101CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
102CONFIG_GROUP_SCHED=y
103CONFIG_FAIR_GROUP_SCHED=y
104# CONFIG_RT_GROUP_SCHED is not set
105CONFIG_USER_SCHED=y
106# CONFIG_CGROUP_SCHED is not set
107# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
108CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
109CONFIG_SYSFS_DEPRECATED_V2=y
110# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
111# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
112CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -114,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
114CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
115# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
116# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
117# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
118CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
119CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -318,6 +317,7 @@ CONFIG_ISA_DMA_API=y
318# Bus options 317# Bus options
319# 318#
320CONFIG_ZONE_DMA=y 319CONFIG_ZONE_DMA=y
320# CONFIG_NEED_DMA_MAP_STATE is not set
321CONFIG_PPC_INDIRECT_PCI=y 321CONFIG_PPC_INDIRECT_PCI=y
322CONFIG_FSL_SOC=y 322CONFIG_FSL_SOC=y
323CONFIG_FSL_PCI=y 323CONFIG_FSL_PCI=y
@@ -328,7 +328,6 @@ CONFIG_PCI_SYSCALL=y
328# CONFIG_PCIEPORTBUS is not set 328# CONFIG_PCIEPORTBUS is not set
329CONFIG_ARCH_SUPPORTS_MSI=y 329CONFIG_ARCH_SUPPORTS_MSI=y
330# CONFIG_PCI_MSI is not set 330# CONFIG_PCI_MSI is not set
331# CONFIG_PCI_LEGACY is not set
332# CONFIG_PCI_STUB is not set 331# CONFIG_PCI_STUB is not set
333# CONFIG_PCI_IOV is not set 332# CONFIG_PCI_IOV is not set
334# CONFIG_HAS_RAPIDIO is not set 333# CONFIG_HAS_RAPIDIO is not set
@@ -354,7 +353,6 @@ CONFIG_NET=y
354# Networking options 353# Networking options
355# 354#
356CONFIG_PACKET=y 355CONFIG_PACKET=y
357# CONFIG_PACKET_MMAP is not set
358CONFIG_UNIX=y 356CONFIG_UNIX=y
359CONFIG_XFRM=y 357CONFIG_XFRM=y
360# CONFIG_XFRM_USER is not set 358# CONFIG_XFRM_USER is not set
@@ -528,6 +526,8 @@ CONFIG_MTD_CFI_UTIL=y
528# UBI - Unsorted block images 526# UBI - Unsorted block images
529# 527#
530# CONFIG_MTD_UBI is not set 528# CONFIG_MTD_UBI is not set
529CONFIG_OF_FLATTREE=y
530CONFIG_OF_DYNAMIC=y
531CONFIG_OF_DEVICE=y 531CONFIG_OF_DEVICE=y
532CONFIG_OF_GPIO=y 532CONFIG_OF_GPIO=y
533CONFIG_OF_I2C=y 533CONFIG_OF_I2C=y
@@ -564,6 +564,7 @@ CONFIG_MISC_DEVICES=y
564# CONFIG_ENCLOSURE_SERVICES is not set 564# CONFIG_ENCLOSURE_SERVICES is not set
565# CONFIG_HP_ILO is not set 565# CONFIG_HP_ILO is not set
566# CONFIG_ISL29003 is not set 566# CONFIG_ISL29003 is not set
567# CONFIG_SENSORS_TSL2550 is not set
567# CONFIG_DS1682 is not set 568# CONFIG_DS1682 is not set
568# CONFIG_C2PORT is not set 569# CONFIG_C2PORT is not set
569 570
@@ -636,6 +637,7 @@ CONFIG_BLK_DEV_IDEDMA=y
636# 637#
637# SCSI device support 638# SCSI device support
638# 639#
640CONFIG_SCSI_MOD=y
639# CONFIG_RAID_ATTRS is not set 641# CONFIG_RAID_ATTRS is not set
640# CONFIG_SCSI is not set 642# CONFIG_SCSI is not set
641# CONFIG_SCSI_DMA is not set 643# CONFIG_SCSI_DMA is not set
@@ -708,6 +710,7 @@ CONFIG_NET_PCI=y
708# CONFIG_PCNET32 is not set 710# CONFIG_PCNET32 is not set
709# CONFIG_AMD8111_ETH is not set 711# CONFIG_AMD8111_ETH is not set
710# CONFIG_ADAPTEC_STARFIRE is not set 712# CONFIG_ADAPTEC_STARFIRE is not set
713# CONFIG_KSZ884X_PCI is not set
711# CONFIG_B44 is not set 714# CONFIG_B44 is not set
712# CONFIG_FORCEDETH is not set 715# CONFIG_FORCEDETH is not set
713CONFIG_E100=y 716CONFIG_E100=y
@@ -760,6 +763,8 @@ CONFIG_NETDEV_10000=y
760# CONFIG_CHELSIO_T1 is not set 763# CONFIG_CHELSIO_T1 is not set
761CONFIG_CHELSIO_T3_DEPENDS=y 764CONFIG_CHELSIO_T3_DEPENDS=y
762# CONFIG_CHELSIO_T3 is not set 765# CONFIG_CHELSIO_T3 is not set
766CONFIG_CHELSIO_T4_DEPENDS=y
767# CONFIG_CHELSIO_T4 is not set
763# CONFIG_ENIC is not set 768# CONFIG_ENIC is not set
764# CONFIG_IXGBE is not set 769# CONFIG_IXGBE is not set
765# CONFIG_IXGB is not set 770# CONFIG_IXGB is not set
@@ -772,6 +777,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
772# CONFIG_MLX4_CORE is not set 777# CONFIG_MLX4_CORE is not set
773# CONFIG_TEHUTI is not set 778# CONFIG_TEHUTI is not set
774# CONFIG_BNX2X is not set 779# CONFIG_BNX2X is not set
780# CONFIG_QLCNIC is not set
775# CONFIG_QLGE is not set 781# CONFIG_QLGE is not set
776# CONFIG_SFC is not set 782# CONFIG_SFC is not set
777# CONFIG_BE2NET is not set 783# CONFIG_BE2NET is not set
@@ -858,6 +864,7 @@ CONFIG_SERIAL_CPM=y
858CONFIG_SERIAL_CPM_CONSOLE=y 864CONFIG_SERIAL_CPM_CONSOLE=y
859# CONFIG_SERIAL_JSM is not set 865# CONFIG_SERIAL_JSM is not set
860# CONFIG_SERIAL_OF_PLATFORM is not set 866# CONFIG_SERIAL_OF_PLATFORM is not set
867# CONFIG_SERIAL_TIMBERDALE is not set
861# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 868# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
862CONFIG_UNIX98_PTYS=y 869CONFIG_UNIX98_PTYS=y
863# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 870# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -912,6 +919,7 @@ CONFIG_I2C_HELPER_AUTO=y
912CONFIG_I2C_MPC=y 919CONFIG_I2C_MPC=y
913# CONFIG_I2C_OCORES is not set 920# CONFIG_I2C_OCORES is not set
914# CONFIG_I2C_SIMTEC is not set 921# CONFIG_I2C_SIMTEC is not set
922# CONFIG_I2C_XILINX is not set
915 923
916# 924#
917# External I2C/SMBus adapter drivers 925# External I2C/SMBus adapter drivers
@@ -923,15 +931,9 @@ CONFIG_I2C_MPC=y
923# Other I2C/SMBus bus drivers 931# Other I2C/SMBus bus drivers
924# 932#
925# CONFIG_I2C_PCA_PLATFORM is not set 933# CONFIG_I2C_PCA_PLATFORM is not set
926
927#
928# Miscellaneous I2C Chip support
929#
930# CONFIG_SENSORS_TSL2550 is not set
931# CONFIG_I2C_DEBUG_CORE is not set 934# CONFIG_I2C_DEBUG_CORE is not set
932# CONFIG_I2C_DEBUG_ALGO is not set 935# CONFIG_I2C_DEBUG_ALGO is not set
933# CONFIG_I2C_DEBUG_BUS is not set 936# CONFIG_I2C_DEBUG_BUS is not set
934# CONFIG_I2C_DEBUG_CHIP is not set
935# CONFIG_SPI is not set 937# CONFIG_SPI is not set
936 938
937# 939#
@@ -946,14 +948,18 @@ CONFIG_GPIOLIB=y
946# 948#
947# Memory mapped GPIO expanders: 949# Memory mapped GPIO expanders:
948# 950#
951# CONFIG_GPIO_IT8761E is not set
949# CONFIG_GPIO_XILINX is not set 952# CONFIG_GPIO_XILINX is not set
953# CONFIG_GPIO_SCH is not set
950 954
951# 955#
952# I2C GPIO expanders: 956# I2C GPIO expanders:
953# 957#
958# CONFIG_GPIO_MAX7300 is not set
954# CONFIG_GPIO_MAX732X is not set 959# CONFIG_GPIO_MAX732X is not set
955# CONFIG_GPIO_PCA953X is not set 960# CONFIG_GPIO_PCA953X is not set
956# CONFIG_GPIO_PCF857X is not set 961# CONFIG_GPIO_PCF857X is not set
962# CONFIG_GPIO_ADP5588 is not set
957 963
958# 964#
959# PCI GPIO expanders: 965# PCI GPIO expanders:
@@ -986,10 +992,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
986# CONFIG_SENSORS_ADM1029 is not set 992# CONFIG_SENSORS_ADM1029 is not set
987# CONFIG_SENSORS_ADM1031 is not set 993# CONFIG_SENSORS_ADM1031 is not set
988# CONFIG_SENSORS_ADM9240 is not set 994# CONFIG_SENSORS_ADM9240 is not set
995# CONFIG_SENSORS_ADT7411 is not set
989# CONFIG_SENSORS_ADT7462 is not set 996# CONFIG_SENSORS_ADT7462 is not set
990# CONFIG_SENSORS_ADT7470 is not set 997# CONFIG_SENSORS_ADT7470 is not set
991# CONFIG_SENSORS_ADT7473 is not set
992# CONFIG_SENSORS_ADT7475 is not set 998# CONFIG_SENSORS_ADT7475 is not set
999# CONFIG_SENSORS_ASC7621 is not set
993# CONFIG_SENSORS_ATXP1 is not set 1000# CONFIG_SENSORS_ATXP1 is not set
994# CONFIG_SENSORS_DS1621 is not set 1001# CONFIG_SENSORS_DS1621 is not set
995# CONFIG_SENSORS_I5K_AMB is not set 1002# CONFIG_SENSORS_I5K_AMB is not set
@@ -1027,6 +1034,7 @@ CONFIG_SENSORS_LM75=y
1027# CONFIG_SENSORS_SMSC47M192 is not set 1034# CONFIG_SENSORS_SMSC47M192 is not set
1028# CONFIG_SENSORS_SMSC47B397 is not set 1035# CONFIG_SENSORS_SMSC47B397 is not set
1029# CONFIG_SENSORS_ADS7828 is not set 1036# CONFIG_SENSORS_ADS7828 is not set
1037# CONFIG_SENSORS_AMC6821 is not set
1030# CONFIG_SENSORS_THMC50 is not set 1038# CONFIG_SENSORS_THMC50 is not set
1031# CONFIG_SENSORS_TMP401 is not set 1039# CONFIG_SENSORS_TMP401 is not set
1032# CONFIG_SENSORS_TMP421 is not set 1040# CONFIG_SENSORS_TMP421 is not set
@@ -1055,19 +1063,24 @@ CONFIG_SSB_POSSIBLE=y
1055# Multifunction device drivers 1063# Multifunction device drivers
1056# 1064#
1057# CONFIG_MFD_CORE is not set 1065# CONFIG_MFD_CORE is not set
1066# CONFIG_MFD_88PM860X is not set
1058# CONFIG_MFD_SM501 is not set 1067# CONFIG_MFD_SM501 is not set
1059# CONFIG_HTC_PASIC3 is not set 1068# CONFIG_HTC_PASIC3 is not set
1069# CONFIG_HTC_I2CPLD is not set
1060# CONFIG_TPS65010 is not set 1070# CONFIG_TPS65010 is not set
1061# CONFIG_TWL4030_CORE is not set 1071# CONFIG_TWL4030_CORE is not set
1062# CONFIG_MFD_TMIO is not set 1072# CONFIG_MFD_TMIO is not set
1063# CONFIG_PMIC_DA903X is not set 1073# CONFIG_PMIC_DA903X is not set
1064# CONFIG_PMIC_ADP5520 is not set 1074# CONFIG_PMIC_ADP5520 is not set
1075# CONFIG_MFD_MAX8925 is not set
1065# CONFIG_MFD_WM8400 is not set 1076# CONFIG_MFD_WM8400 is not set
1066# CONFIG_MFD_WM831X is not set 1077# CONFIG_MFD_WM831X is not set
1067# CONFIG_MFD_WM8350_I2C is not set 1078# CONFIG_MFD_WM8350_I2C is not set
1079# CONFIG_MFD_WM8994 is not set
1068# CONFIG_MFD_PCF50633 is not set 1080# CONFIG_MFD_PCF50633 is not set
1069# CONFIG_AB3100_CORE is not set 1081# CONFIG_AB3100_CORE is not set
1070# CONFIG_MFD_88PM8607 is not set 1082# CONFIG_MFD_TIMBERDALE is not set
1083# CONFIG_LPC_SCH is not set
1071# CONFIG_REGULATOR is not set 1084# CONFIG_REGULATOR is not set
1072# CONFIG_MEDIA_SUPPORT is not set 1085# CONFIG_MEDIA_SUPPORT is not set
1073 1086
@@ -1076,6 +1089,7 @@ CONFIG_SSB_POSSIBLE=y
1076# 1089#
1077# CONFIG_AGP is not set 1090# CONFIG_AGP is not set
1078CONFIG_VGA_ARB=y 1091CONFIG_VGA_ARB=y
1092CONFIG_VGA_ARB_MAX_GPUS=16
1079# CONFIG_DRM is not set 1093# CONFIG_DRM is not set
1080# CONFIG_VGASTATE is not set 1094# CONFIG_VGASTATE is not set
1081# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1095# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1213,6 +1227,7 @@ CONFIG_JFFS2_ZLIB=y
1213# CONFIG_JFFS2_LZO is not set 1227# CONFIG_JFFS2_LZO is not set
1214CONFIG_JFFS2_RTIME=y 1228CONFIG_JFFS2_RTIME=y
1215# CONFIG_JFFS2_RUBIN is not set 1229# CONFIG_JFFS2_RUBIN is not set
1230# CONFIG_LOGFS is not set
1216CONFIG_CRAMFS=y 1231CONFIG_CRAMFS=y
1217# CONFIG_SQUASHFS is not set 1232# CONFIG_SQUASHFS is not set
1218# CONFIG_VXFS_FS is not set 1233# CONFIG_VXFS_FS is not set
@@ -1235,6 +1250,7 @@ CONFIG_SUNRPC=y
1235# CONFIG_RPCSEC_GSS_KRB5 is not set 1250# CONFIG_RPCSEC_GSS_KRB5 is not set
1236# CONFIG_RPCSEC_GSS_SPKM3 is not set 1251# CONFIG_RPCSEC_GSS_SPKM3 is not set
1237# CONFIG_SMB_FS is not set 1252# CONFIG_SMB_FS is not set
1253# CONFIG_CEPH_FS is not set
1238# CONFIG_CIFS is not set 1254# CONFIG_CIFS is not set
1239# CONFIG_NCP_FS is not set 1255# CONFIG_NCP_FS is not set
1240# CONFIG_CODA_FS is not set 1256# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8548_defconfig b/arch/powerpc/configs/85xx/tqm8548_defconfig
index 5cc89aac3fec..845efa79dd20 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:35 2010 4# Mon Apr 19 23:16:59 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -67,6 +67,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
67# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
68# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
70CONFIG_PPC_ADV_DEBUG_REGS=y
71CONFIG_PPC_ADV_DEBUG_IACS=2
72CONFIG_PPC_ADV_DEBUG_DACS=2
73CONFIG_PPC_ADV_DEBUG_DVCS=0
70CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 74CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
71CONFIG_CONSTRUCTORS=y 75CONFIG_CONSTRUCTORS=y
72 76
@@ -98,14 +102,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 103# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102# CONFIG_FAIR_GROUP_SCHED is not set
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -324,6 +323,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 323# Bus options
325# 324#
326CONFIG_ZONE_DMA=y 325CONFIG_ZONE_DMA=y
326# CONFIG_NEED_DMA_MAP_STATE is not set
327CONFIG_PPC_INDIRECT_PCI=y 327CONFIG_PPC_INDIRECT_PCI=y
328CONFIG_FSL_SOC=y 328CONFIG_FSL_SOC=y
329CONFIG_FSL_PCI=y 329CONFIG_FSL_PCI=y
@@ -339,7 +339,6 @@ CONFIG_PCIEAER=y
339# CONFIG_PCIEASPM is not set 339# CONFIG_PCIEASPM is not set
340CONFIG_ARCH_SUPPORTS_MSI=y 340CONFIG_ARCH_SUPPORTS_MSI=y
341# CONFIG_PCI_MSI is not set 341# CONFIG_PCI_MSI is not set
342# CONFIG_PCI_LEGACY is not set
343# CONFIG_PCI_DEBUG is not set 342# CONFIG_PCI_DEBUG is not set
344# CONFIG_PCI_STUB is not set 343# CONFIG_PCI_STUB is not set
345# CONFIG_PCI_IOV is not set 344# CONFIG_PCI_IOV is not set
@@ -368,7 +367,6 @@ CONFIG_NET=y
368# Networking options 367# Networking options
369# 368#
370CONFIG_PACKET=y 369CONFIG_PACKET=y
371# CONFIG_PACKET_MMAP is not set
372CONFIG_UNIX=y 370CONFIG_UNIX=y
373CONFIG_XFRM=y 371CONFIG_XFRM=y
374CONFIG_XFRM_USER=y 372CONFIG_XFRM_USER=y
@@ -559,6 +557,8 @@ CONFIG_MTD_NAND_FSL_UPM=y
559# UBI - Unsorted block images 557# UBI - Unsorted block images
560# 558#
561# CONFIG_MTD_UBI is not set 559# CONFIG_MTD_UBI is not set
560CONFIG_OF_FLATTREE=y
561CONFIG_OF_DYNAMIC=y
562CONFIG_OF_DEVICE=y 562CONFIG_OF_DEVICE=y
563CONFIG_OF_I2C=y 563CONFIG_OF_I2C=y
564CONFIG_OF_MDIO=y 564CONFIG_OF_MDIO=y
@@ -594,6 +594,7 @@ CONFIG_MISC_DEVICES=y
594# CONFIG_ENCLOSURE_SERVICES is not set 594# CONFIG_ENCLOSURE_SERVICES is not set
595# CONFIG_HP_ILO is not set 595# CONFIG_HP_ILO is not set
596# CONFIG_ISL29003 is not set 596# CONFIG_ISL29003 is not set
597# CONFIG_SENSORS_TSL2550 is not set
597# CONFIG_DS1682 is not set 598# CONFIG_DS1682 is not set
598# CONFIG_C2PORT is not set 599# CONFIG_C2PORT is not set
599 600
@@ -611,6 +612,7 @@ CONFIG_HAVE_IDE=y
611# 612#
612# SCSI device support 613# SCSI device support
613# 614#
615CONFIG_SCSI_MOD=y
614# CONFIG_RAID_ATTRS is not set 616# CONFIG_RAID_ATTRS is not set
615# CONFIG_SCSI is not set 617# CONFIG_SCSI is not set
616# CONFIG_SCSI_DMA is not set 618# CONFIG_SCSI_DMA is not set
@@ -716,6 +718,8 @@ CONFIG_NETDEV_10000=y
716# CONFIG_CHELSIO_T1 is not set 718# CONFIG_CHELSIO_T1 is not set
717CONFIG_CHELSIO_T3_DEPENDS=y 719CONFIG_CHELSIO_T3_DEPENDS=y
718# CONFIG_CHELSIO_T3 is not set 720# CONFIG_CHELSIO_T3 is not set
721CONFIG_CHELSIO_T4_DEPENDS=y
722# CONFIG_CHELSIO_T4 is not set
719# CONFIG_ENIC is not set 723# CONFIG_ENIC is not set
720# CONFIG_IXGBE is not set 724# CONFIG_IXGBE is not set
721# CONFIG_IXGB is not set 725# CONFIG_IXGB is not set
@@ -728,6 +732,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
728# CONFIG_MLX4_CORE is not set 732# CONFIG_MLX4_CORE is not set
729# CONFIG_TEHUTI is not set 733# CONFIG_TEHUTI is not set
730# CONFIG_BNX2X is not set 734# CONFIG_BNX2X is not set
735# CONFIG_QLCNIC is not set
731# CONFIG_QLGE is not set 736# CONFIG_QLGE is not set
732# CONFIG_SFC is not set 737# CONFIG_SFC is not set
733# CONFIG_BE2NET is not set 738# CONFIG_BE2NET is not set
@@ -812,6 +817,7 @@ CONFIG_SERIAL_CORE=y
812CONFIG_SERIAL_CORE_CONSOLE=y 817CONFIG_SERIAL_CORE_CONSOLE=y
813# CONFIG_SERIAL_JSM is not set 818# CONFIG_SERIAL_JSM is not set
814# CONFIG_SERIAL_OF_PLATFORM is not set 819# CONFIG_SERIAL_OF_PLATFORM is not set
820# CONFIG_SERIAL_TIMBERDALE is not set
815# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 821# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
816CONFIG_UNIX98_PTYS=y 822CONFIG_UNIX98_PTYS=y
817# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 823# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -860,6 +866,7 @@ CONFIG_I2C_HELPER_AUTO=y
860CONFIG_I2C_MPC=y 866CONFIG_I2C_MPC=y
861# CONFIG_I2C_OCORES is not set 867# CONFIG_I2C_OCORES is not set
862# CONFIG_I2C_SIMTEC is not set 868# CONFIG_I2C_SIMTEC is not set
869# CONFIG_I2C_XILINX is not set
863 870
864# 871#
865# External I2C/SMBus adapter drivers 872# External I2C/SMBus adapter drivers
@@ -872,15 +879,9 @@ CONFIG_I2C_MPC=y
872# 879#
873# CONFIG_I2C_PCA_PLATFORM is not set 880# CONFIG_I2C_PCA_PLATFORM is not set
874# CONFIG_I2C_STUB is not set 881# CONFIG_I2C_STUB is not set
875
876#
877# Miscellaneous I2C Chip support
878#
879# CONFIG_SENSORS_TSL2550 is not set
880# CONFIG_I2C_DEBUG_CORE is not set 882# CONFIG_I2C_DEBUG_CORE is not set
881# CONFIG_I2C_DEBUG_ALGO is not set 883# CONFIG_I2C_DEBUG_ALGO is not set
882# CONFIG_I2C_DEBUG_BUS is not set 884# CONFIG_I2C_DEBUG_BUS is not set
883# CONFIG_I2C_DEBUG_CHIP is not set
884# CONFIG_SPI is not set 885# CONFIG_SPI is not set
885 886
886# 887#
@@ -906,10 +907,11 @@ CONFIG_HWMON=y
906# CONFIG_SENSORS_ADM1029 is not set 907# CONFIG_SENSORS_ADM1029 is not set
907# CONFIG_SENSORS_ADM1031 is not set 908# CONFIG_SENSORS_ADM1031 is not set
908# CONFIG_SENSORS_ADM9240 is not set 909# CONFIG_SENSORS_ADM9240 is not set
910# CONFIG_SENSORS_ADT7411 is not set
909# CONFIG_SENSORS_ADT7462 is not set 911# CONFIG_SENSORS_ADT7462 is not set
910# CONFIG_SENSORS_ADT7470 is not set 912# CONFIG_SENSORS_ADT7470 is not set
911# CONFIG_SENSORS_ADT7473 is not set
912# CONFIG_SENSORS_ADT7475 is not set 913# CONFIG_SENSORS_ADT7475 is not set
914# CONFIG_SENSORS_ASC7621 is not set
913# CONFIG_SENSORS_ATXP1 is not set 915# CONFIG_SENSORS_ATXP1 is not set
914# CONFIG_SENSORS_DS1621 is not set 916# CONFIG_SENSORS_DS1621 is not set
915# CONFIG_SENSORS_I5K_AMB is not set 917# CONFIG_SENSORS_I5K_AMB is not set
@@ -946,6 +948,7 @@ CONFIG_SENSORS_LM75=y
946# CONFIG_SENSORS_SMSC47M192 is not set 948# CONFIG_SENSORS_SMSC47M192 is not set
947# CONFIG_SENSORS_SMSC47B397 is not set 949# CONFIG_SENSORS_SMSC47B397 is not set
948# CONFIG_SENSORS_ADS7828 is not set 950# CONFIG_SENSORS_ADS7828 is not set
951# CONFIG_SENSORS_AMC6821 is not set
949# CONFIG_SENSORS_THMC50 is not set 952# CONFIG_SENSORS_THMC50 is not set
950# CONFIG_SENSORS_TMP401 is not set 953# CONFIG_SENSORS_TMP401 is not set
951# CONFIG_SENSORS_TMP421 is not set 954# CONFIG_SENSORS_TMP421 is not set
@@ -974,18 +977,21 @@ CONFIG_SSB_POSSIBLE=y
974# Multifunction device drivers 977# Multifunction device drivers
975# 978#
976# CONFIG_MFD_CORE is not set 979# CONFIG_MFD_CORE is not set
980# CONFIG_MFD_88PM860X is not set
977# CONFIG_MFD_SM501 is not set 981# CONFIG_MFD_SM501 is not set
978# CONFIG_HTC_PASIC3 is not set 982# CONFIG_HTC_PASIC3 is not set
979# CONFIG_TWL4030_CORE is not set 983# CONFIG_TWL4030_CORE is not set
980# CONFIG_MFD_TMIO is not set 984# CONFIG_MFD_TMIO is not set
981# CONFIG_PMIC_DA903X is not set 985# CONFIG_PMIC_DA903X is not set
982# CONFIG_PMIC_ADP5520 is not set 986# CONFIG_PMIC_ADP5520 is not set
987# CONFIG_MFD_MAX8925 is not set
983# CONFIG_MFD_WM8400 is not set 988# CONFIG_MFD_WM8400 is not set
984# CONFIG_MFD_WM831X is not set 989# CONFIG_MFD_WM831X is not set
985# CONFIG_MFD_WM8350_I2C is not set 990# CONFIG_MFD_WM8350_I2C is not set
991# CONFIG_MFD_WM8994 is not set
986# CONFIG_MFD_PCF50633 is not set 992# CONFIG_MFD_PCF50633 is not set
987# CONFIG_AB3100_CORE is not set 993# CONFIG_AB3100_CORE is not set
988# CONFIG_MFD_88PM8607 is not set 994# CONFIG_LPC_SCH is not set
989# CONFIG_REGULATOR is not set 995# CONFIG_REGULATOR is not set
990# CONFIG_MEDIA_SUPPORT is not set 996# CONFIG_MEDIA_SUPPORT is not set
991 997
@@ -994,6 +1000,7 @@ CONFIG_SSB_POSSIBLE=y
994# 1000#
995# CONFIG_AGP is not set 1001# CONFIG_AGP is not set
996CONFIG_VGA_ARB=y 1002CONFIG_VGA_ARB=y
1003CONFIG_VGA_ARB_MAX_GPUS=16
997# CONFIG_DRM is not set 1004# CONFIG_DRM is not set
998# CONFIG_VGASTATE is not set 1005# CONFIG_VGASTATE is not set
999CONFIG_VIDEO_OUTPUT_CONTROL=y 1006CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1162,6 +1169,7 @@ CONFIG_JFFS2_ZLIB=y
1162# CONFIG_JFFS2_LZO is not set 1169# CONFIG_JFFS2_LZO is not set
1163CONFIG_JFFS2_RTIME=y 1170CONFIG_JFFS2_RTIME=y
1164# CONFIG_JFFS2_RUBIN is not set 1171# CONFIG_JFFS2_RUBIN is not set
1172# CONFIG_LOGFS is not set
1165# CONFIG_CRAMFS is not set 1173# CONFIG_CRAMFS is not set
1166# CONFIG_SQUASHFS is not set 1174# CONFIG_SQUASHFS is not set
1167# CONFIG_VXFS_FS is not set 1175# CONFIG_VXFS_FS is not set
@@ -1184,6 +1192,7 @@ CONFIG_SUNRPC=y
1184# CONFIG_RPCSEC_GSS_KRB5 is not set 1192# CONFIG_RPCSEC_GSS_KRB5 is not set
1185# CONFIG_RPCSEC_GSS_SPKM3 is not set 1193# CONFIG_RPCSEC_GSS_SPKM3 is not set
1186# CONFIG_SMB_FS is not set 1194# CONFIG_SMB_FS is not set
1195# CONFIG_CEPH_FS is not set
1187# CONFIG_CIFS is not set 1196# CONFIG_CIFS is not set
1188# CONFIG_NCP_FS is not set 1197# CONFIG_NCP_FS is not set
1189# CONFIG_CODA_FS is not set 1198# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8555_defconfig b/arch/powerpc/configs/85xx/tqm8555_defconfig
index e7b9148e58cf..b958136a12f0 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:36 2010 4# Mon Apr 19 23:17:00 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -99,14 +103,8 @@ CONFIG_RCU_FANOUT=32
99# CONFIG_TREE_RCU_TRACE is not set 103# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_IKCONFIG is not set 104# CONFIG_IKCONFIG is not set
101CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
102CONFIG_GROUP_SCHED=y
103CONFIG_FAIR_GROUP_SCHED=y
104# CONFIG_RT_GROUP_SCHED is not set
105CONFIG_USER_SCHED=y
106# CONFIG_CGROUP_SCHED is not set
107# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
108CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
109CONFIG_SYSFS_DEPRECATED_V2=y
110# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
111# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
112CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -114,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
114CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
115# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
116# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
117# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
118CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
119CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -318,6 +317,7 @@ CONFIG_ISA_DMA_API=y
318# Bus options 317# Bus options
319# 318#
320CONFIG_ZONE_DMA=y 319CONFIG_ZONE_DMA=y
320# CONFIG_NEED_DMA_MAP_STATE is not set
321CONFIG_PPC_INDIRECT_PCI=y 321CONFIG_PPC_INDIRECT_PCI=y
322CONFIG_FSL_SOC=y 322CONFIG_FSL_SOC=y
323CONFIG_FSL_PCI=y 323CONFIG_FSL_PCI=y
@@ -328,7 +328,6 @@ CONFIG_PCI_SYSCALL=y
328# CONFIG_PCIEPORTBUS is not set 328# CONFIG_PCIEPORTBUS is not set
329CONFIG_ARCH_SUPPORTS_MSI=y 329CONFIG_ARCH_SUPPORTS_MSI=y
330# CONFIG_PCI_MSI is not set 330# CONFIG_PCI_MSI is not set
331# CONFIG_PCI_LEGACY is not set
332# CONFIG_PCI_STUB is not set 331# CONFIG_PCI_STUB is not set
333# CONFIG_PCI_IOV is not set 332# CONFIG_PCI_IOV is not set
334# CONFIG_HAS_RAPIDIO is not set 333# CONFIG_HAS_RAPIDIO is not set
@@ -354,7 +353,6 @@ CONFIG_NET=y
354# Networking options 353# Networking options
355# 354#
356CONFIG_PACKET=y 355CONFIG_PACKET=y
357# CONFIG_PACKET_MMAP is not set
358CONFIG_UNIX=y 356CONFIG_UNIX=y
359CONFIG_XFRM=y 357CONFIG_XFRM=y
360# CONFIG_XFRM_USER is not set 358# CONFIG_XFRM_USER is not set
@@ -528,6 +526,8 @@ CONFIG_MTD_CFI_UTIL=y
528# UBI - Unsorted block images 526# UBI - Unsorted block images
529# 527#
530# CONFIG_MTD_UBI is not set 528# CONFIG_MTD_UBI is not set
529CONFIG_OF_FLATTREE=y
530CONFIG_OF_DYNAMIC=y
531CONFIG_OF_DEVICE=y 531CONFIG_OF_DEVICE=y
532CONFIG_OF_GPIO=y 532CONFIG_OF_GPIO=y
533CONFIG_OF_I2C=y 533CONFIG_OF_I2C=y
@@ -564,6 +564,7 @@ CONFIG_MISC_DEVICES=y
564# CONFIG_ENCLOSURE_SERVICES is not set 564# CONFIG_ENCLOSURE_SERVICES is not set
565# CONFIG_HP_ILO is not set 565# CONFIG_HP_ILO is not set
566# CONFIG_ISL29003 is not set 566# CONFIG_ISL29003 is not set
567# CONFIG_SENSORS_TSL2550 is not set
567# CONFIG_DS1682 is not set 568# CONFIG_DS1682 is not set
568# CONFIG_C2PORT is not set 569# CONFIG_C2PORT is not set
569 570
@@ -636,6 +637,7 @@ CONFIG_BLK_DEV_IDEDMA=y
636# 637#
637# SCSI device support 638# SCSI device support
638# 639#
640CONFIG_SCSI_MOD=y
639# CONFIG_RAID_ATTRS is not set 641# CONFIG_RAID_ATTRS is not set
640# CONFIG_SCSI is not set 642# CONFIG_SCSI is not set
641# CONFIG_SCSI_DMA is not set 643# CONFIG_SCSI_DMA is not set
@@ -708,6 +710,7 @@ CONFIG_NET_PCI=y
708# CONFIG_PCNET32 is not set 710# CONFIG_PCNET32 is not set
709# CONFIG_AMD8111_ETH is not set 711# CONFIG_AMD8111_ETH is not set
710# CONFIG_ADAPTEC_STARFIRE is not set 712# CONFIG_ADAPTEC_STARFIRE is not set
713# CONFIG_KSZ884X_PCI is not set
711# CONFIG_B44 is not set 714# CONFIG_B44 is not set
712# CONFIG_FORCEDETH is not set 715# CONFIG_FORCEDETH is not set
713CONFIG_E100=y 716CONFIG_E100=y
@@ -760,6 +763,8 @@ CONFIG_NETDEV_10000=y
760# CONFIG_CHELSIO_T1 is not set 763# CONFIG_CHELSIO_T1 is not set
761CONFIG_CHELSIO_T3_DEPENDS=y 764CONFIG_CHELSIO_T3_DEPENDS=y
762# CONFIG_CHELSIO_T3 is not set 765# CONFIG_CHELSIO_T3 is not set
766CONFIG_CHELSIO_T4_DEPENDS=y
767# CONFIG_CHELSIO_T4 is not set
763# CONFIG_ENIC is not set 768# CONFIG_ENIC is not set
764# CONFIG_IXGBE is not set 769# CONFIG_IXGBE is not set
765# CONFIG_IXGB is not set 770# CONFIG_IXGB is not set
@@ -772,6 +777,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
772# CONFIG_MLX4_CORE is not set 777# CONFIG_MLX4_CORE is not set
773# CONFIG_TEHUTI is not set 778# CONFIG_TEHUTI is not set
774# CONFIG_BNX2X is not set 779# CONFIG_BNX2X is not set
780# CONFIG_QLCNIC is not set
775# CONFIG_QLGE is not set 781# CONFIG_QLGE is not set
776# CONFIG_SFC is not set 782# CONFIG_SFC is not set
777# CONFIG_BE2NET is not set 783# CONFIG_BE2NET is not set
@@ -858,6 +864,7 @@ CONFIG_SERIAL_CPM=y
858CONFIG_SERIAL_CPM_CONSOLE=y 864CONFIG_SERIAL_CPM_CONSOLE=y
859# CONFIG_SERIAL_JSM is not set 865# CONFIG_SERIAL_JSM is not set
860# CONFIG_SERIAL_OF_PLATFORM is not set 866# CONFIG_SERIAL_OF_PLATFORM is not set
867# CONFIG_SERIAL_TIMBERDALE is not set
861# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 868# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
862CONFIG_UNIX98_PTYS=y 869CONFIG_UNIX98_PTYS=y
863# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 870# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -912,6 +919,7 @@ CONFIG_I2C_HELPER_AUTO=y
912CONFIG_I2C_MPC=y 919CONFIG_I2C_MPC=y
913# CONFIG_I2C_OCORES is not set 920# CONFIG_I2C_OCORES is not set
914# CONFIG_I2C_SIMTEC is not set 921# CONFIG_I2C_SIMTEC is not set
922# CONFIG_I2C_XILINX is not set
915 923
916# 924#
917# External I2C/SMBus adapter drivers 925# External I2C/SMBus adapter drivers
@@ -923,15 +931,9 @@ CONFIG_I2C_MPC=y
923# Other I2C/SMBus bus drivers 931# Other I2C/SMBus bus drivers
924# 932#
925# CONFIG_I2C_PCA_PLATFORM is not set 933# CONFIG_I2C_PCA_PLATFORM is not set
926
927#
928# Miscellaneous I2C Chip support
929#
930# CONFIG_SENSORS_TSL2550 is not set
931# CONFIG_I2C_DEBUG_CORE is not set 934# CONFIG_I2C_DEBUG_CORE is not set
932# CONFIG_I2C_DEBUG_ALGO is not set 935# CONFIG_I2C_DEBUG_ALGO is not set
933# CONFIG_I2C_DEBUG_BUS is not set 936# CONFIG_I2C_DEBUG_BUS is not set
934# CONFIG_I2C_DEBUG_CHIP is not set
935# CONFIG_SPI is not set 937# CONFIG_SPI is not set
936 938
937# 939#
@@ -946,14 +948,18 @@ CONFIG_GPIOLIB=y
946# 948#
947# Memory mapped GPIO expanders: 949# Memory mapped GPIO expanders:
948# 950#
951# CONFIG_GPIO_IT8761E is not set
949# CONFIG_GPIO_XILINX is not set 952# CONFIG_GPIO_XILINX is not set
953# CONFIG_GPIO_SCH is not set
950 954
951# 955#
952# I2C GPIO expanders: 956# I2C GPIO expanders:
953# 957#
958# CONFIG_GPIO_MAX7300 is not set
954# CONFIG_GPIO_MAX732X is not set 959# CONFIG_GPIO_MAX732X is not set
955# CONFIG_GPIO_PCA953X is not set 960# CONFIG_GPIO_PCA953X is not set
956# CONFIG_GPIO_PCF857X is not set 961# CONFIG_GPIO_PCF857X is not set
962# CONFIG_GPIO_ADP5588 is not set
957 963
958# 964#
959# PCI GPIO expanders: 965# PCI GPIO expanders:
@@ -986,10 +992,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
986# CONFIG_SENSORS_ADM1029 is not set 992# CONFIG_SENSORS_ADM1029 is not set
987# CONFIG_SENSORS_ADM1031 is not set 993# CONFIG_SENSORS_ADM1031 is not set
988# CONFIG_SENSORS_ADM9240 is not set 994# CONFIG_SENSORS_ADM9240 is not set
995# CONFIG_SENSORS_ADT7411 is not set
989# CONFIG_SENSORS_ADT7462 is not set 996# CONFIG_SENSORS_ADT7462 is not set
990# CONFIG_SENSORS_ADT7470 is not set 997# CONFIG_SENSORS_ADT7470 is not set
991# CONFIG_SENSORS_ADT7473 is not set
992# CONFIG_SENSORS_ADT7475 is not set 998# CONFIG_SENSORS_ADT7475 is not set
999# CONFIG_SENSORS_ASC7621 is not set
993# CONFIG_SENSORS_ATXP1 is not set 1000# CONFIG_SENSORS_ATXP1 is not set
994# CONFIG_SENSORS_DS1621 is not set 1001# CONFIG_SENSORS_DS1621 is not set
995# CONFIG_SENSORS_I5K_AMB is not set 1002# CONFIG_SENSORS_I5K_AMB is not set
@@ -1027,6 +1034,7 @@ CONFIG_SENSORS_LM75=y
1027# CONFIG_SENSORS_SMSC47M192 is not set 1034# CONFIG_SENSORS_SMSC47M192 is not set
1028# CONFIG_SENSORS_SMSC47B397 is not set 1035# CONFIG_SENSORS_SMSC47B397 is not set
1029# CONFIG_SENSORS_ADS7828 is not set 1036# CONFIG_SENSORS_ADS7828 is not set
1037# CONFIG_SENSORS_AMC6821 is not set
1030# CONFIG_SENSORS_THMC50 is not set 1038# CONFIG_SENSORS_THMC50 is not set
1031# CONFIG_SENSORS_TMP401 is not set 1039# CONFIG_SENSORS_TMP401 is not set
1032# CONFIG_SENSORS_TMP421 is not set 1040# CONFIG_SENSORS_TMP421 is not set
@@ -1055,19 +1063,24 @@ CONFIG_SSB_POSSIBLE=y
1055# Multifunction device drivers 1063# Multifunction device drivers
1056# 1064#
1057# CONFIG_MFD_CORE is not set 1065# CONFIG_MFD_CORE is not set
1066# CONFIG_MFD_88PM860X is not set
1058# CONFIG_MFD_SM501 is not set 1067# CONFIG_MFD_SM501 is not set
1059# CONFIG_HTC_PASIC3 is not set 1068# CONFIG_HTC_PASIC3 is not set
1069# CONFIG_HTC_I2CPLD is not set
1060# CONFIG_TPS65010 is not set 1070# CONFIG_TPS65010 is not set
1061# CONFIG_TWL4030_CORE is not set 1071# CONFIG_TWL4030_CORE is not set
1062# CONFIG_MFD_TMIO is not set 1072# CONFIG_MFD_TMIO is not set
1063# CONFIG_PMIC_DA903X is not set 1073# CONFIG_PMIC_DA903X is not set
1064# CONFIG_PMIC_ADP5520 is not set 1074# CONFIG_PMIC_ADP5520 is not set
1075# CONFIG_MFD_MAX8925 is not set
1065# CONFIG_MFD_WM8400 is not set 1076# CONFIG_MFD_WM8400 is not set
1066# CONFIG_MFD_WM831X is not set 1077# CONFIG_MFD_WM831X is not set
1067# CONFIG_MFD_WM8350_I2C is not set 1078# CONFIG_MFD_WM8350_I2C is not set
1079# CONFIG_MFD_WM8994 is not set
1068# CONFIG_MFD_PCF50633 is not set 1080# CONFIG_MFD_PCF50633 is not set
1069# CONFIG_AB3100_CORE is not set 1081# CONFIG_AB3100_CORE is not set
1070# CONFIG_MFD_88PM8607 is not set 1082# CONFIG_MFD_TIMBERDALE is not set
1083# CONFIG_LPC_SCH is not set
1071# CONFIG_REGULATOR is not set 1084# CONFIG_REGULATOR is not set
1072# CONFIG_MEDIA_SUPPORT is not set 1085# CONFIG_MEDIA_SUPPORT is not set
1073 1086
@@ -1076,6 +1089,7 @@ CONFIG_SSB_POSSIBLE=y
1076# 1089#
1077# CONFIG_AGP is not set 1090# CONFIG_AGP is not set
1078CONFIG_VGA_ARB=y 1091CONFIG_VGA_ARB=y
1092CONFIG_VGA_ARB_MAX_GPUS=16
1079# CONFIG_DRM is not set 1093# CONFIG_DRM is not set
1080# CONFIG_VGASTATE is not set 1094# CONFIG_VGASTATE is not set
1081# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1095# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1213,6 +1227,7 @@ CONFIG_JFFS2_ZLIB=y
1213# CONFIG_JFFS2_LZO is not set 1227# CONFIG_JFFS2_LZO is not set
1214CONFIG_JFFS2_RTIME=y 1228CONFIG_JFFS2_RTIME=y
1215# CONFIG_JFFS2_RUBIN is not set 1229# CONFIG_JFFS2_RUBIN is not set
1230# CONFIG_LOGFS is not set
1216CONFIG_CRAMFS=y 1231CONFIG_CRAMFS=y
1217# CONFIG_SQUASHFS is not set 1232# CONFIG_SQUASHFS is not set
1218# CONFIG_VXFS_FS is not set 1233# CONFIG_VXFS_FS is not set
@@ -1235,6 +1250,7 @@ CONFIG_SUNRPC=y
1235# CONFIG_RPCSEC_GSS_KRB5 is not set 1250# CONFIG_RPCSEC_GSS_KRB5 is not set
1236# CONFIG_RPCSEC_GSS_SPKM3 is not set 1251# CONFIG_RPCSEC_GSS_SPKM3 is not set
1237# CONFIG_SMB_FS is not set 1252# CONFIG_SMB_FS is not set
1253# CONFIG_CEPH_FS is not set
1238# CONFIG_CIFS is not set 1254# CONFIG_CIFS is not set
1239# CONFIG_NCP_FS is not set 1255# CONFIG_NCP_FS is not set
1240# CONFIG_CODA_FS is not set 1256# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/tqm8560_defconfig b/arch/powerpc/configs/85xx/tqm8560_defconfig
index a998e401bbfc..008bc9754927 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:36 2010 4# Mon Apr 19 23:17:01 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -99,14 +103,8 @@ CONFIG_RCU_FANOUT=32
99# CONFIG_TREE_RCU_TRACE is not set 103# CONFIG_TREE_RCU_TRACE is not set
100# CONFIG_IKCONFIG is not set 104# CONFIG_IKCONFIG is not set
101CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
102CONFIG_GROUP_SCHED=y
103CONFIG_FAIR_GROUP_SCHED=y
104# CONFIG_RT_GROUP_SCHED is not set
105CONFIG_USER_SCHED=y
106# CONFIG_CGROUP_SCHED is not set
107# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
108CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
109CONFIG_SYSFS_DEPRECATED_V2=y
110# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
111# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
112CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -114,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
114CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
115# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
116# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
117# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
118CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
119CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -318,6 +317,7 @@ CONFIG_ISA_DMA_API=y
318# Bus options 317# Bus options
319# 318#
320CONFIG_ZONE_DMA=y 319CONFIG_ZONE_DMA=y
320# CONFIG_NEED_DMA_MAP_STATE is not set
321CONFIG_PPC_INDIRECT_PCI=y 321CONFIG_PPC_INDIRECT_PCI=y
322CONFIG_FSL_SOC=y 322CONFIG_FSL_SOC=y
323CONFIG_FSL_PCI=y 323CONFIG_FSL_PCI=y
@@ -328,7 +328,6 @@ CONFIG_PCI_SYSCALL=y
328# CONFIG_PCIEPORTBUS is not set 328# CONFIG_PCIEPORTBUS is not set
329CONFIG_ARCH_SUPPORTS_MSI=y 329CONFIG_ARCH_SUPPORTS_MSI=y
330# CONFIG_PCI_MSI is not set 330# CONFIG_PCI_MSI is not set
331# CONFIG_PCI_LEGACY is not set
332# CONFIG_PCI_STUB is not set 331# CONFIG_PCI_STUB is not set
333# CONFIG_PCI_IOV is not set 332# CONFIG_PCI_IOV is not set
334# CONFIG_HAS_RAPIDIO is not set 333# CONFIG_HAS_RAPIDIO is not set
@@ -354,7 +353,6 @@ CONFIG_NET=y
354# Networking options 353# Networking options
355# 354#
356CONFIG_PACKET=y 355CONFIG_PACKET=y
357# CONFIG_PACKET_MMAP is not set
358CONFIG_UNIX=y 356CONFIG_UNIX=y
359CONFIG_XFRM=y 357CONFIG_XFRM=y
360# CONFIG_XFRM_USER is not set 358# CONFIG_XFRM_USER is not set
@@ -528,6 +526,8 @@ CONFIG_MTD_CFI_UTIL=y
528# UBI - Unsorted block images 526# UBI - Unsorted block images
529# 527#
530# CONFIG_MTD_UBI is not set 528# CONFIG_MTD_UBI is not set
529CONFIG_OF_FLATTREE=y
530CONFIG_OF_DYNAMIC=y
531CONFIG_OF_DEVICE=y 531CONFIG_OF_DEVICE=y
532CONFIG_OF_GPIO=y 532CONFIG_OF_GPIO=y
533CONFIG_OF_I2C=y 533CONFIG_OF_I2C=y
@@ -564,6 +564,7 @@ CONFIG_MISC_DEVICES=y
564# CONFIG_ENCLOSURE_SERVICES is not set 564# CONFIG_ENCLOSURE_SERVICES is not set
565# CONFIG_HP_ILO is not set 565# CONFIG_HP_ILO is not set
566# CONFIG_ISL29003 is not set 566# CONFIG_ISL29003 is not set
567# CONFIG_SENSORS_TSL2550 is not set
567# CONFIG_DS1682 is not set 568# CONFIG_DS1682 is not set
568# CONFIG_C2PORT is not set 569# CONFIG_C2PORT is not set
569 570
@@ -636,6 +637,7 @@ CONFIG_BLK_DEV_IDEDMA=y
636# 637#
637# SCSI device support 638# SCSI device support
638# 639#
640CONFIG_SCSI_MOD=y
639# CONFIG_RAID_ATTRS is not set 641# CONFIG_RAID_ATTRS is not set
640# CONFIG_SCSI is not set 642# CONFIG_SCSI is not set
641# CONFIG_SCSI_DMA is not set 643# CONFIG_SCSI_DMA is not set
@@ -708,6 +710,7 @@ CONFIG_NET_PCI=y
708# CONFIG_PCNET32 is not set 710# CONFIG_PCNET32 is not set
709# CONFIG_AMD8111_ETH is not set 711# CONFIG_AMD8111_ETH is not set
710# CONFIG_ADAPTEC_STARFIRE is not set 712# CONFIG_ADAPTEC_STARFIRE is not set
713# CONFIG_KSZ884X_PCI is not set
711# CONFIG_B44 is not set 714# CONFIG_B44 is not set
712# CONFIG_FORCEDETH is not set 715# CONFIG_FORCEDETH is not set
713CONFIG_E100=y 716CONFIG_E100=y
@@ -760,6 +763,8 @@ CONFIG_NETDEV_10000=y
760# CONFIG_CHELSIO_T1 is not set 763# CONFIG_CHELSIO_T1 is not set
761CONFIG_CHELSIO_T3_DEPENDS=y 764CONFIG_CHELSIO_T3_DEPENDS=y
762# CONFIG_CHELSIO_T3 is not set 765# CONFIG_CHELSIO_T3 is not set
766CONFIG_CHELSIO_T4_DEPENDS=y
767# CONFIG_CHELSIO_T4 is not set
763# CONFIG_ENIC is not set 768# CONFIG_ENIC is not set
764# CONFIG_IXGBE is not set 769# CONFIG_IXGBE is not set
765# CONFIG_IXGB is not set 770# CONFIG_IXGB is not set
@@ -772,6 +777,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
772# CONFIG_MLX4_CORE is not set 777# CONFIG_MLX4_CORE is not set
773# CONFIG_TEHUTI is not set 778# CONFIG_TEHUTI is not set
774# CONFIG_BNX2X is not set 779# CONFIG_BNX2X is not set
780# CONFIG_QLCNIC is not set
775# CONFIG_QLGE is not set 781# CONFIG_QLGE is not set
776# CONFIG_SFC is not set 782# CONFIG_SFC is not set
777# CONFIG_BE2NET is not set 783# CONFIG_BE2NET is not set
@@ -858,6 +864,7 @@ CONFIG_SERIAL_CPM=y
858CONFIG_SERIAL_CPM_CONSOLE=y 864CONFIG_SERIAL_CPM_CONSOLE=y
859# CONFIG_SERIAL_JSM is not set 865# CONFIG_SERIAL_JSM is not set
860# CONFIG_SERIAL_OF_PLATFORM is not set 866# CONFIG_SERIAL_OF_PLATFORM is not set
867# CONFIG_SERIAL_TIMBERDALE is not set
861# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 868# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
862CONFIG_UNIX98_PTYS=y 869CONFIG_UNIX98_PTYS=y
863# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 870# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -912,6 +919,7 @@ CONFIG_I2C_HELPER_AUTO=y
912CONFIG_I2C_MPC=y 919CONFIG_I2C_MPC=y
913# CONFIG_I2C_OCORES is not set 920# CONFIG_I2C_OCORES is not set
914# CONFIG_I2C_SIMTEC is not set 921# CONFIG_I2C_SIMTEC is not set
922# CONFIG_I2C_XILINX is not set
915 923
916# 924#
917# External I2C/SMBus adapter drivers 925# External I2C/SMBus adapter drivers
@@ -923,15 +931,9 @@ CONFIG_I2C_MPC=y
923# Other I2C/SMBus bus drivers 931# Other I2C/SMBus bus drivers
924# 932#
925# CONFIG_I2C_PCA_PLATFORM is not set 933# CONFIG_I2C_PCA_PLATFORM is not set
926
927#
928# Miscellaneous I2C Chip support
929#
930# CONFIG_SENSORS_TSL2550 is not set
931# CONFIG_I2C_DEBUG_CORE is not set 934# CONFIG_I2C_DEBUG_CORE is not set
932# CONFIG_I2C_DEBUG_ALGO is not set 935# CONFIG_I2C_DEBUG_ALGO is not set
933# CONFIG_I2C_DEBUG_BUS is not set 936# CONFIG_I2C_DEBUG_BUS is not set
934# CONFIG_I2C_DEBUG_CHIP is not set
935# CONFIG_SPI is not set 937# CONFIG_SPI is not set
936 938
937# 939#
@@ -946,14 +948,18 @@ CONFIG_GPIOLIB=y
946# 948#
947# Memory mapped GPIO expanders: 949# Memory mapped GPIO expanders:
948# 950#
951# CONFIG_GPIO_IT8761E is not set
949# CONFIG_GPIO_XILINX is not set 952# CONFIG_GPIO_XILINX is not set
953# CONFIG_GPIO_SCH is not set
950 954
951# 955#
952# I2C GPIO expanders: 956# I2C GPIO expanders:
953# 957#
958# CONFIG_GPIO_MAX7300 is not set
954# CONFIG_GPIO_MAX732X is not set 959# CONFIG_GPIO_MAX732X is not set
955# CONFIG_GPIO_PCA953X is not set 960# CONFIG_GPIO_PCA953X is not set
956# CONFIG_GPIO_PCF857X is not set 961# CONFIG_GPIO_PCF857X is not set
962# CONFIG_GPIO_ADP5588 is not set
957 963
958# 964#
959# PCI GPIO expanders: 965# PCI GPIO expanders:
@@ -986,10 +992,11 @@ CONFIG_HWMON_DEBUG_CHIP=y
986# CONFIG_SENSORS_ADM1029 is not set 992# CONFIG_SENSORS_ADM1029 is not set
987# CONFIG_SENSORS_ADM1031 is not set 993# CONFIG_SENSORS_ADM1031 is not set
988# CONFIG_SENSORS_ADM9240 is not set 994# CONFIG_SENSORS_ADM9240 is not set
995# CONFIG_SENSORS_ADT7411 is not set
989# CONFIG_SENSORS_ADT7462 is not set 996# CONFIG_SENSORS_ADT7462 is not set
990# CONFIG_SENSORS_ADT7470 is not set 997# CONFIG_SENSORS_ADT7470 is not set
991# CONFIG_SENSORS_ADT7473 is not set
992# CONFIG_SENSORS_ADT7475 is not set 998# CONFIG_SENSORS_ADT7475 is not set
999# CONFIG_SENSORS_ASC7621 is not set
993# CONFIG_SENSORS_ATXP1 is not set 1000# CONFIG_SENSORS_ATXP1 is not set
994# CONFIG_SENSORS_DS1621 is not set 1001# CONFIG_SENSORS_DS1621 is not set
995# CONFIG_SENSORS_I5K_AMB is not set 1002# CONFIG_SENSORS_I5K_AMB is not set
@@ -1027,6 +1034,7 @@ CONFIG_SENSORS_LM75=y
1027# CONFIG_SENSORS_SMSC47M192 is not set 1034# CONFIG_SENSORS_SMSC47M192 is not set
1028# CONFIG_SENSORS_SMSC47B397 is not set 1035# CONFIG_SENSORS_SMSC47B397 is not set
1029# CONFIG_SENSORS_ADS7828 is not set 1036# CONFIG_SENSORS_ADS7828 is not set
1037# CONFIG_SENSORS_AMC6821 is not set
1030# CONFIG_SENSORS_THMC50 is not set 1038# CONFIG_SENSORS_THMC50 is not set
1031# CONFIG_SENSORS_TMP401 is not set 1039# CONFIG_SENSORS_TMP401 is not set
1032# CONFIG_SENSORS_TMP421 is not set 1040# CONFIG_SENSORS_TMP421 is not set
@@ -1055,19 +1063,24 @@ CONFIG_SSB_POSSIBLE=y
1055# Multifunction device drivers 1063# Multifunction device drivers
1056# 1064#
1057# CONFIG_MFD_CORE is not set 1065# CONFIG_MFD_CORE is not set
1066# CONFIG_MFD_88PM860X is not set
1058# CONFIG_MFD_SM501 is not set 1067# CONFIG_MFD_SM501 is not set
1059# CONFIG_HTC_PASIC3 is not set 1068# CONFIG_HTC_PASIC3 is not set
1069# CONFIG_HTC_I2CPLD is not set
1060# CONFIG_TPS65010 is not set 1070# CONFIG_TPS65010 is not set
1061# CONFIG_TWL4030_CORE is not set 1071# CONFIG_TWL4030_CORE is not set
1062# CONFIG_MFD_TMIO is not set 1072# CONFIG_MFD_TMIO is not set
1063# CONFIG_PMIC_DA903X is not set 1073# CONFIG_PMIC_DA903X is not set
1064# CONFIG_PMIC_ADP5520 is not set 1074# CONFIG_PMIC_ADP5520 is not set
1075# CONFIG_MFD_MAX8925 is not set
1065# CONFIG_MFD_WM8400 is not set 1076# CONFIG_MFD_WM8400 is not set
1066# CONFIG_MFD_WM831X is not set 1077# CONFIG_MFD_WM831X is not set
1067# CONFIG_MFD_WM8350_I2C is not set 1078# CONFIG_MFD_WM8350_I2C is not set
1079# CONFIG_MFD_WM8994 is not set
1068# CONFIG_MFD_PCF50633 is not set 1080# CONFIG_MFD_PCF50633 is not set
1069# CONFIG_AB3100_CORE is not set 1081# CONFIG_AB3100_CORE is not set
1070# CONFIG_MFD_88PM8607 is not set 1082# CONFIG_MFD_TIMBERDALE is not set
1083# CONFIG_LPC_SCH is not set
1071# CONFIG_REGULATOR is not set 1084# CONFIG_REGULATOR is not set
1072# CONFIG_MEDIA_SUPPORT is not set 1085# CONFIG_MEDIA_SUPPORT is not set
1073 1086
@@ -1076,6 +1089,7 @@ CONFIG_SSB_POSSIBLE=y
1076# 1089#
1077# CONFIG_AGP is not set 1090# CONFIG_AGP is not set
1078CONFIG_VGA_ARB=y 1091CONFIG_VGA_ARB=y
1092CONFIG_VGA_ARB_MAX_GPUS=16
1079# CONFIG_DRM is not set 1093# CONFIG_DRM is not set
1080# CONFIG_VGASTATE is not set 1094# CONFIG_VGASTATE is not set
1081# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1095# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1213,6 +1227,7 @@ CONFIG_JFFS2_ZLIB=y
1213# CONFIG_JFFS2_LZO is not set 1227# CONFIG_JFFS2_LZO is not set
1214CONFIG_JFFS2_RTIME=y 1228CONFIG_JFFS2_RTIME=y
1215# CONFIG_JFFS2_RUBIN is not set 1229# CONFIG_JFFS2_RUBIN is not set
1230# CONFIG_LOGFS is not set
1216CONFIG_CRAMFS=y 1231CONFIG_CRAMFS=y
1217# CONFIG_SQUASHFS is not set 1232# CONFIG_SQUASHFS is not set
1218# CONFIG_VXFS_FS is not set 1233# CONFIG_VXFS_FS is not set
@@ -1235,6 +1250,7 @@ CONFIG_SUNRPC=y
1235# CONFIG_RPCSEC_GSS_KRB5 is not set 1250# CONFIG_RPCSEC_GSS_KRB5 is not set
1236# CONFIG_RPCSEC_GSS_SPKM3 is not set 1251# CONFIG_RPCSEC_GSS_SPKM3 is not set
1237# CONFIG_SMB_FS is not set 1252# CONFIG_SMB_FS is not set
1253# CONFIG_CEPH_FS is not set
1238# CONFIG_CIFS is not set 1254# CONFIG_CIFS is not set
1239# CONFIG_NCP_FS is not set 1255# CONFIG_NCP_FS is not set
1240# CONFIG_CODA_FS is not set 1256# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/85xx/xes_mpc85xx_defconfig b/arch/powerpc/configs/85xx/xes_mpc85xx_defconfig
index fc656af04ea1..2cf80dba0286 100644
--- a/arch/powerpc/configs/85xx/xes_mpc85xx_defconfig
+++ b/arch/powerpc/configs/85xx/xes_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:37 2010 4# Mon Apr 19 23:17:01 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -69,6 +69,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
69# CONFIG_PPC_DCR_NATIVE is not set 69# CONFIG_PPC_DCR_NATIVE is not set
70# CONFIG_PPC_DCR_MMIO is not set 70# CONFIG_PPC_DCR_MMIO is not set
71CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 71CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
72CONFIG_PPC_ADV_DEBUG_REGS=y
73CONFIG_PPC_ADV_DEBUG_IACS=2
74CONFIG_PPC_ADV_DEBUG_DACS=2
75CONFIG_PPC_ADV_DEBUG_DVCS=0
72CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 76CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
73CONFIG_CONSTRUCTORS=y 77CONFIG_CONSTRUCTORS=y
74 78
@@ -104,10 +108,8 @@ CONFIG_RCU_FANOUT=32
104CONFIG_IKCONFIG=y 108CONFIG_IKCONFIG=y
105CONFIG_IKCONFIG_PROC=y 109CONFIG_IKCONFIG_PROC=y
106CONFIG_LOG_BUF_SHIFT=14 110CONFIG_LOG_BUF_SHIFT=14
107# CONFIG_GROUP_SCHED is not set
108# CONFIG_CGROUPS is not set 111# CONFIG_CGROUPS is not set
109CONFIG_SYSFS_DEPRECATED=y 112# CONFIG_SYSFS_DEPRECATED_V2 is not set
110CONFIG_SYSFS_DEPRECATED_V2=y
111# CONFIG_RELAY is not set 113# CONFIG_RELAY is not set
112# CONFIG_NAMESPACES is not set 114# CONFIG_NAMESPACES is not set
113CONFIG_BLK_DEV_INITRD=y 115CONFIG_BLK_DEV_INITRD=y
@@ -115,6 +117,7 @@ CONFIG_INITRAMFS_SOURCE=""
115CONFIG_RD_GZIP=y 117CONFIG_RD_GZIP=y
116# CONFIG_RD_BZIP2 is not set 118# CONFIG_RD_BZIP2 is not set
117# CONFIG_RD_LZMA is not set 119# CONFIG_RD_LZMA is not set
120# CONFIG_RD_LZO is not set
118# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 121# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
119CONFIG_SYSCTL=y 122CONFIG_SYSCTL=y
120CONFIG_ANON_INODES=y 123CONFIG_ANON_INODES=y
@@ -328,6 +331,7 @@ CONFIG_ISA_DMA_API=y
328# Bus options 331# Bus options
329# 332#
330CONFIG_ZONE_DMA=y 333CONFIG_ZONE_DMA=y
334# CONFIG_NEED_DMA_MAP_STATE is not set
331CONFIG_PPC_INDIRECT_PCI=y 335CONFIG_PPC_INDIRECT_PCI=y
332CONFIG_FSL_SOC=y 336CONFIG_FSL_SOC=y
333CONFIG_FSL_PCI=y 337CONFIG_FSL_PCI=y
@@ -343,7 +347,6 @@ CONFIG_PCIEAER=y
343# CONFIG_PCIEASPM is not set 347# CONFIG_PCIEASPM is not set
344CONFIG_ARCH_SUPPORTS_MSI=y 348CONFIG_ARCH_SUPPORTS_MSI=y
345CONFIG_PCI_MSI=y 349CONFIG_PCI_MSI=y
346CONFIG_PCI_LEGACY=y
347# CONFIG_PCI_DEBUG is not set 350# CONFIG_PCI_DEBUG is not set
348# CONFIG_PCI_STUB is not set 351# CONFIG_PCI_STUB is not set
349# CONFIG_PCI_IOV is not set 352# CONFIG_PCI_IOV is not set
@@ -375,7 +378,6 @@ CONFIG_NET=y
375# Networking options 378# Networking options
376# 379#
377CONFIG_PACKET=y 380CONFIG_PACKET=y
378# CONFIG_PACKET_MMAP is not set
379CONFIG_UNIX=y 381CONFIG_UNIX=y
380CONFIG_XFRM=y 382CONFIG_XFRM=y
381CONFIG_XFRM_USER=y 383CONFIG_XFRM_USER=y
@@ -600,6 +602,8 @@ CONFIG_MTD_NAND_FSL_UPM=y
600# UBI - Unsorted block images 602# UBI - Unsorted block images
601# 603#
602# CONFIG_MTD_UBI is not set 604# CONFIG_MTD_UBI is not set
605CONFIG_OF_FLATTREE=y
606CONFIG_OF_DYNAMIC=y
603CONFIG_OF_DEVICE=y 607CONFIG_OF_DEVICE=y
604CONFIG_OF_GPIO=y 608CONFIG_OF_GPIO=y
605CONFIG_OF_I2C=y 609CONFIG_OF_I2C=y
@@ -637,6 +641,7 @@ CONFIG_MISC_DEVICES=y
637# CONFIG_ENCLOSURE_SERVICES is not set 641# CONFIG_ENCLOSURE_SERVICES is not set
638# CONFIG_HP_ILO is not set 642# CONFIG_HP_ILO is not set
639# CONFIG_ISL29003 is not set 643# CONFIG_ISL29003 is not set
644# CONFIG_SENSORS_TSL2550 is not set
640# CONFIG_DS1682 is not set 645# CONFIG_DS1682 is not set
641# CONFIG_C2PORT is not set 646# CONFIG_C2PORT is not set
642 647
@@ -654,6 +659,7 @@ CONFIG_HAVE_IDE=y
654# 659#
655# SCSI device support 660# SCSI device support
656# 661#
662CONFIG_SCSI_MOD=y
657# CONFIG_RAID_ATTRS is not set 663# CONFIG_RAID_ATTRS is not set
658CONFIG_SCSI=y 664CONFIG_SCSI=y
659CONFIG_SCSI_DMA=y 665CONFIG_SCSI_DMA=y
@@ -777,6 +783,7 @@ CONFIG_PATA_ALI=y
777# CONFIG_PATA_IT821X is not set 783# CONFIG_PATA_IT821X is not set
778# CONFIG_PATA_IT8213 is not set 784# CONFIG_PATA_IT8213 is not set
779# CONFIG_PATA_JMICRON is not set 785# CONFIG_PATA_JMICRON is not set
786# CONFIG_PATA_LEGACY is not set
780# CONFIG_PATA_TRIFLEX is not set 787# CONFIG_PATA_TRIFLEX is not set
781# CONFIG_PATA_MARVELL is not set 788# CONFIG_PATA_MARVELL is not set
782# CONFIG_PATA_MPIIX is not set 789# CONFIG_PATA_MPIIX is not set
@@ -1004,6 +1011,7 @@ CONFIG_SERIAL_CORE=y
1004CONFIG_SERIAL_CORE_CONSOLE=y 1011CONFIG_SERIAL_CORE_CONSOLE=y
1005# CONFIG_SERIAL_JSM is not set 1012# CONFIG_SERIAL_JSM is not set
1006# CONFIG_SERIAL_OF_PLATFORM is not set 1013# CONFIG_SERIAL_OF_PLATFORM is not set
1014# CONFIG_SERIAL_TIMBERDALE is not set
1007# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1015# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1008CONFIG_UNIX98_PTYS=y 1016CONFIG_UNIX98_PTYS=y
1009# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1017# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1053,6 +1061,7 @@ CONFIG_I2C_HELPER_AUTO=y
1053CONFIG_I2C_MPC=y 1061CONFIG_I2C_MPC=y
1054# CONFIG_I2C_OCORES is not set 1062# CONFIG_I2C_OCORES is not set
1055# CONFIG_I2C_SIMTEC is not set 1063# CONFIG_I2C_SIMTEC is not set
1064# CONFIG_I2C_XILINX is not set
1056 1065
1057# 1066#
1058# External I2C/SMBus adapter drivers 1067# External I2C/SMBus adapter drivers
@@ -1066,15 +1075,9 @@ CONFIG_I2C_MPC=y
1066# 1075#
1067# CONFIG_I2C_PCA_PLATFORM is not set 1076# CONFIG_I2C_PCA_PLATFORM is not set
1068# CONFIG_I2C_STUB is not set 1077# CONFIG_I2C_STUB is not set
1069
1070#
1071# Miscellaneous I2C Chip support
1072#
1073# CONFIG_SENSORS_TSL2550 is not set
1074# CONFIG_I2C_DEBUG_CORE is not set 1078# CONFIG_I2C_DEBUG_CORE is not set
1075# CONFIG_I2C_DEBUG_ALGO is not set 1079# CONFIG_I2C_DEBUG_ALGO is not set
1076# CONFIG_I2C_DEBUG_BUS is not set 1080# CONFIG_I2C_DEBUG_BUS is not set
1077# CONFIG_I2C_DEBUG_CHIP is not set
1078# CONFIG_SPI is not set 1081# CONFIG_SPI is not set
1079 1082
1080# 1083#
@@ -1090,14 +1093,19 @@ CONFIG_GPIO_SYSFS=y
1090# 1093#
1091# Memory mapped GPIO expanders: 1094# Memory mapped GPIO expanders:
1092# 1095#
1096# CONFIG_GPIO_IT8761E is not set
1093# CONFIG_GPIO_XILINX is not set 1097# CONFIG_GPIO_XILINX is not set
1098# CONFIG_GPIO_SCH is not set
1094 1099
1095# 1100#
1096# I2C GPIO expanders: 1101# I2C GPIO expanders:
1097# 1102#
1103# CONFIG_GPIO_MAX7300 is not set
1098# CONFIG_GPIO_MAX732X is not set 1104# CONFIG_GPIO_MAX732X is not set
1099CONFIG_GPIO_PCA953X=y 1105CONFIG_GPIO_PCA953X=y
1106# CONFIG_GPIO_PCA953X_IRQ is not set
1100# CONFIG_GPIO_PCF857X is not set 1107# CONFIG_GPIO_PCF857X is not set
1108# CONFIG_GPIO_ADP5588 is not set
1101 1109
1102# 1110#
1103# PCI GPIO expanders: 1111# PCI GPIO expanders:
@@ -1130,10 +1138,11 @@ CONFIG_HWMON=y
1130# CONFIG_SENSORS_ADM1029 is not set 1138# CONFIG_SENSORS_ADM1029 is not set
1131# CONFIG_SENSORS_ADM1031 is not set 1139# CONFIG_SENSORS_ADM1031 is not set
1132# CONFIG_SENSORS_ADM9240 is not set 1140# CONFIG_SENSORS_ADM9240 is not set
1141# CONFIG_SENSORS_ADT7411 is not set
1133# CONFIG_SENSORS_ADT7462 is not set 1142# CONFIG_SENSORS_ADT7462 is not set
1134# CONFIG_SENSORS_ADT7470 is not set 1143# CONFIG_SENSORS_ADT7470 is not set
1135# CONFIG_SENSORS_ADT7473 is not set
1136# CONFIG_SENSORS_ADT7475 is not set 1144# CONFIG_SENSORS_ADT7475 is not set
1145# CONFIG_SENSORS_ASC7621 is not set
1137# CONFIG_SENSORS_ATXP1 is not set 1146# CONFIG_SENSORS_ATXP1 is not set
1138CONFIG_SENSORS_DS1621=y 1147CONFIG_SENSORS_DS1621=y
1139# CONFIG_SENSORS_I5K_AMB is not set 1148# CONFIG_SENSORS_I5K_AMB is not set
@@ -1171,6 +1180,7 @@ CONFIG_SENSORS_LM90=y
1171# CONFIG_SENSORS_SMSC47M192 is not set 1180# CONFIG_SENSORS_SMSC47M192 is not set
1172# CONFIG_SENSORS_SMSC47B397 is not set 1181# CONFIG_SENSORS_SMSC47B397 is not set
1173# CONFIG_SENSORS_ADS7828 is not set 1182# CONFIG_SENSORS_ADS7828 is not set
1183# CONFIG_SENSORS_AMC6821 is not set
1174# CONFIG_SENSORS_THMC50 is not set 1184# CONFIG_SENSORS_THMC50 is not set
1175# CONFIG_SENSORS_TMP401 is not set 1185# CONFIG_SENSORS_TMP401 is not set
1176# CONFIG_SENSORS_TMP421 is not set 1186# CONFIG_SENSORS_TMP421 is not set
@@ -1218,19 +1228,24 @@ CONFIG_SSB_POSSIBLE=y
1218# Multifunction device drivers 1228# Multifunction device drivers
1219# 1229#
1220# CONFIG_MFD_CORE is not set 1230# CONFIG_MFD_CORE is not set
1231# CONFIG_MFD_88PM860X is not set
1221# CONFIG_MFD_SM501 is not set 1232# CONFIG_MFD_SM501 is not set
1222# CONFIG_HTC_PASIC3 is not set 1233# CONFIG_HTC_PASIC3 is not set
1234# CONFIG_HTC_I2CPLD is not set
1223# CONFIG_TPS65010 is not set 1235# CONFIG_TPS65010 is not set
1224# CONFIG_TWL4030_CORE is not set 1236# CONFIG_TWL4030_CORE is not set
1225# CONFIG_MFD_TMIO is not set 1237# CONFIG_MFD_TMIO is not set
1226# CONFIG_PMIC_DA903X is not set 1238# CONFIG_PMIC_DA903X is not set
1227# CONFIG_PMIC_ADP5520 is not set 1239# CONFIG_PMIC_ADP5520 is not set
1240# CONFIG_MFD_MAX8925 is not set
1228# CONFIG_MFD_WM8400 is not set 1241# CONFIG_MFD_WM8400 is not set
1229# CONFIG_MFD_WM831X is not set 1242# CONFIG_MFD_WM831X is not set
1230# CONFIG_MFD_WM8350_I2C is not set 1243# CONFIG_MFD_WM8350_I2C is not set
1244# CONFIG_MFD_WM8994 is not set
1231# CONFIG_MFD_PCF50633 is not set 1245# CONFIG_MFD_PCF50633 is not set
1232# CONFIG_AB3100_CORE is not set 1246# CONFIG_AB3100_CORE is not set
1233# CONFIG_MFD_88PM8607 is not set 1247# CONFIG_MFD_TIMBERDALE is not set
1248# CONFIG_LPC_SCH is not set
1234# CONFIG_REGULATOR is not set 1249# CONFIG_REGULATOR is not set
1235# CONFIG_MEDIA_SUPPORT is not set 1250# CONFIG_MEDIA_SUPPORT is not set
1236 1251
@@ -1239,6 +1254,7 @@ CONFIG_SSB_POSSIBLE=y
1239# 1254#
1240# CONFIG_AGP is not set 1255# CONFIG_AGP is not set
1241CONFIG_VGA_ARB=y 1256CONFIG_VGA_ARB=y
1257CONFIG_VGA_ARB_MAX_GPUS=16
1242# CONFIG_DRM is not set 1258# CONFIG_DRM is not set
1243# CONFIG_VGASTATE is not set 1259# CONFIG_VGASTATE is not set
1244CONFIG_VIDEO_OUTPUT_CONTROL=y 1260CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1271,6 +1287,7 @@ CONFIG_USB_HID=y
1271# 1287#
1272# Special HID drivers 1288# Special HID drivers
1273# 1289#
1290# CONFIG_HID_3M_PCT is not set
1274# CONFIG_HID_A4TECH is not set 1291# CONFIG_HID_A4TECH is not set
1275# CONFIG_HID_APPLE is not set 1292# CONFIG_HID_APPLE is not set
1276# CONFIG_HID_BELKIN is not set 1293# CONFIG_HID_BELKIN is not set
@@ -1285,12 +1302,16 @@ CONFIG_USB_HID=y
1285# CONFIG_HID_KENSINGTON is not set 1302# CONFIG_HID_KENSINGTON is not set
1286# CONFIG_HID_LOGITECH is not set 1303# CONFIG_HID_LOGITECH is not set
1287# CONFIG_HID_MICROSOFT is not set 1304# CONFIG_HID_MICROSOFT is not set
1305# CONFIG_HID_MOSART is not set
1288# CONFIG_HID_MONTEREY is not set 1306# CONFIG_HID_MONTEREY is not set
1289# CONFIG_HID_NTRIG is not set 1307# CONFIG_HID_NTRIG is not set
1308# CONFIG_HID_ORTEK is not set
1290# CONFIG_HID_PANTHERLORD is not set 1309# CONFIG_HID_PANTHERLORD is not set
1291# CONFIG_HID_PETALYNX is not set 1310# CONFIG_HID_PETALYNX is not set
1311# CONFIG_HID_QUANTA is not set
1292# CONFIG_HID_SAMSUNG is not set 1312# CONFIG_HID_SAMSUNG is not set
1293# CONFIG_HID_SONY is not set 1313# CONFIG_HID_SONY is not set
1314# CONFIG_HID_STANTUM is not set
1294# CONFIG_HID_SUNPLUS is not set 1315# CONFIG_HID_SUNPLUS is not set
1295# CONFIG_HID_GREENASIA is not set 1316# CONFIG_HID_GREENASIA is not set
1296# CONFIG_HID_SMARTJOYPLUS is not set 1317# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1386,7 +1407,6 @@ CONFIG_USB_STORAGE=y
1386# CONFIG_USB_RIO500 is not set 1407# CONFIG_USB_RIO500 is not set
1387# CONFIG_USB_LEGOTOWER is not set 1408# CONFIG_USB_LEGOTOWER is not set
1388# CONFIG_USB_LCD is not set 1409# CONFIG_USB_LCD is not set
1389# CONFIG_USB_BERRY_CHARGE is not set
1390# CONFIG_USB_LED is not set 1410# CONFIG_USB_LED is not set
1391# CONFIG_USB_CYPRESS_CY7C63 is not set 1411# CONFIG_USB_CYPRESS_CY7C63 is not set
1392# CONFIG_USB_CYTHERM is not set 1412# CONFIG_USB_CYTHERM is not set
@@ -1398,7 +1418,6 @@ CONFIG_USB_STORAGE=y
1398# CONFIG_USB_IOWARRIOR is not set 1418# CONFIG_USB_IOWARRIOR is not set
1399# CONFIG_USB_TEST is not set 1419# CONFIG_USB_TEST is not set
1400# CONFIG_USB_ISIGHTFW is not set 1420# CONFIG_USB_ISIGHTFW is not set
1401# CONFIG_USB_VST is not set
1402# CONFIG_USB_GADGET is not set 1421# CONFIG_USB_GADGET is not set
1403 1422
1404# 1423#
@@ -1423,11 +1442,11 @@ CONFIG_LEDS_GPIO_OF=y
1423CONFIG_LEDS_PCA955X=y 1442CONFIG_LEDS_PCA955X=y
1424# CONFIG_LEDS_BD2802 is not set 1443# CONFIG_LEDS_BD2802 is not set
1425# CONFIG_LEDS_LT3593 is not set 1444# CONFIG_LEDS_LT3593 is not set
1445CONFIG_LEDS_TRIGGERS=y
1426 1446
1427# 1447#
1428# LED Triggers 1448# LED Triggers
1429# 1449#
1430CONFIG_LEDS_TRIGGERS=y
1431CONFIG_LEDS_TRIGGER_TIMER=y 1450CONFIG_LEDS_TRIGGER_TIMER=y
1432CONFIG_LEDS_TRIGGER_HEARTBEAT=y 1451CONFIG_LEDS_TRIGGER_HEARTBEAT=y
1433# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set 1452# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
@@ -1506,6 +1525,7 @@ CONFIG_RTC_DRV_CMOS=y
1506# 1525#
1507# CONFIG_RTC_DRV_GENERIC is not set 1526# CONFIG_RTC_DRV_GENERIC is not set
1508CONFIG_DMADEVICES=y 1527CONFIG_DMADEVICES=y
1528# CONFIG_DMADEVICES_DEBUG is not set
1509 1529
1510# 1530#
1511# DMA Devices 1531# DMA Devices
@@ -1614,6 +1634,7 @@ CONFIG_JFFS2_ZLIB=y
1614# CONFIG_JFFS2_LZO is not set 1634# CONFIG_JFFS2_LZO is not set
1615CONFIG_JFFS2_RTIME=y 1635CONFIG_JFFS2_RTIME=y
1616# CONFIG_JFFS2_RUBIN is not set 1636# CONFIG_JFFS2_RUBIN is not set
1637# CONFIG_LOGFS is not set
1617# CONFIG_CRAMFS is not set 1638# CONFIG_CRAMFS is not set
1618# CONFIG_SQUASHFS is not set 1639# CONFIG_SQUASHFS is not set
1619# CONFIG_VXFS_FS is not set 1640# CONFIG_VXFS_FS is not set
@@ -1641,6 +1662,7 @@ CONFIG_SUNRPC=y
1641# CONFIG_RPCSEC_GSS_KRB5 is not set 1662# CONFIG_RPCSEC_GSS_KRB5 is not set
1642# CONFIG_RPCSEC_GSS_SPKM3 is not set 1663# CONFIG_RPCSEC_GSS_SPKM3 is not set
1643# CONFIG_SMB_FS is not set 1664# CONFIG_SMB_FS is not set
1665# CONFIG_CEPH_FS is not set
1644# CONFIG_CIFS is not set 1666# CONFIG_CIFS is not set
1645# CONFIG_NCP_FS is not set 1667# CONFIG_NCP_FS is not set
1646# CONFIG_CODA_FS is not set 1668# CONFIG_CODA_FS is not set
@@ -1851,6 +1873,7 @@ CONFIG_CRYPTO_MANAGER=y
1851CONFIG_CRYPTO_MANAGER2=y 1873CONFIG_CRYPTO_MANAGER2=y
1852# CONFIG_CRYPTO_GF128MUL is not set 1874# CONFIG_CRYPTO_GF128MUL is not set
1853# CONFIG_CRYPTO_NULL is not set 1875# CONFIG_CRYPTO_NULL is not set
1876# CONFIG_CRYPTO_PCRYPT is not set
1854CONFIG_CRYPTO_WORKQUEUE=y 1877CONFIG_CRYPTO_WORKQUEUE=y
1855# CONFIG_CRYPTO_CRYPTD is not set 1878# CONFIG_CRYPTO_CRYPTD is not set
1856# CONFIG_CRYPTO_AUTHENC is not set 1879# CONFIG_CRYPTO_AUTHENC is not set
diff --git a/arch/powerpc/configs/86xx/gef_ppc9a_defconfig b/arch/powerpc/configs/86xx/gef_ppc9a_defconfig
index 622d84f48aba..b728a7d64250 100644
--- a/arch/powerpc/configs/86xx/gef_ppc9a_defconfig
+++ b/arch/powerpc/configs/86xx/gef_ppc9a_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:43 2010 4# Mon Apr 19 23:17:07 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -102,14 +102,8 @@ CONFIG_RCU_FANOUT=32
102CONFIG_IKCONFIG=y 102CONFIG_IKCONFIG=y
103CONFIG_IKCONFIG_PROC=y 103CONFIG_IKCONFIG_PROC=y
104CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
105CONFIG_GROUP_SCHED=y
106CONFIG_FAIR_GROUP_SCHED=y
107# CONFIG_RT_GROUP_SCHED is not set
108CONFIG_USER_SCHED=y
109# CONFIG_CGROUP_SCHED is not set
110# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
111CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
112CONFIG_SYSFS_DEPRECATED_V2=y
113CONFIG_RELAY=y 107CONFIG_RELAY=y
114# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
115CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -117,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
117CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
118# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
119# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
120# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
121CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
122CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -325,6 +320,7 @@ CONFIG_ISA_DMA_API=y
325# Bus options 320# Bus options
326# 321#
327CONFIG_ZONE_DMA=y 322CONFIG_ZONE_DMA=y
323# CONFIG_NEED_DMA_MAP_STATE is not set
328CONFIG_GENERIC_ISA_DMA=y 324CONFIG_GENERIC_ISA_DMA=y
329CONFIG_PPC_INDIRECT_PCI=y 325CONFIG_PPC_INDIRECT_PCI=y
330CONFIG_FSL_SOC=y 326CONFIG_FSL_SOC=y
@@ -340,13 +336,11 @@ CONFIG_PCIEAER=y
340# CONFIG_PCIEASPM is not set 336# CONFIG_PCIEASPM is not set
341CONFIG_ARCH_SUPPORTS_MSI=y 337CONFIG_ARCH_SUPPORTS_MSI=y
342# CONFIG_PCI_MSI is not set 338# CONFIG_PCI_MSI is not set
343# CONFIG_PCI_LEGACY is not set
344# CONFIG_PCI_STUB is not set 339# CONFIG_PCI_STUB is not set
345# CONFIG_PCI_IOV is not set 340# CONFIG_PCI_IOV is not set
346CONFIG_PCCARD=y 341CONFIG_PCCARD=y
347CONFIG_PCMCIA=y 342CONFIG_PCMCIA=y
348# CONFIG_PCMCIA_LOAD_CIS is not set 343# CONFIG_PCMCIA_LOAD_CIS is not set
349# CONFIG_PCMCIA_IOCTL is not set
350# CONFIG_CARDBUS is not set 344# CONFIG_CARDBUS is not set
351 345
352# 346#
@@ -382,7 +376,6 @@ CONFIG_NET=y
382# Networking options 376# Networking options
383# 377#
384CONFIG_PACKET=y 378CONFIG_PACKET=y
385CONFIG_PACKET_MMAP=y
386CONFIG_UNIX=y 379CONFIG_UNIX=y
387CONFIG_XFRM=y 380CONFIG_XFRM=y
388CONFIG_XFRM_USER=m 381CONFIG_XFRM_USER=m
@@ -592,6 +585,8 @@ CONFIG_MTD_PHYSMAP_OF=y
592# UBI - Unsorted block images 585# UBI - Unsorted block images
593# 586#
594# CONFIG_MTD_UBI is not set 587# CONFIG_MTD_UBI is not set
588CONFIG_OF_FLATTREE=y
589CONFIG_OF_DYNAMIC=y
595CONFIG_OF_DEVICE=y 590CONFIG_OF_DEVICE=y
596CONFIG_OF_GPIO=y 591CONFIG_OF_GPIO=y
597CONFIG_OF_I2C=y 592CONFIG_OF_I2C=y
@@ -629,6 +624,7 @@ CONFIG_MISC_DEVICES=y
629# CONFIG_ENCLOSURE_SERVICES is not set 624# CONFIG_ENCLOSURE_SERVICES is not set
630# CONFIG_HP_ILO is not set 625# CONFIG_HP_ILO is not set
631# CONFIG_ISL29003 is not set 626# CONFIG_ISL29003 is not set
627# CONFIG_SENSORS_TSL2550 is not set
632CONFIG_DS1682=y 628CONFIG_DS1682=y
633# CONFIG_C2PORT is not set 629# CONFIG_C2PORT is not set
634 630
@@ -695,6 +691,7 @@ CONFIG_IDE_PROC_FS=y
695# 691#
696# SCSI device support 692# SCSI device support
697# 693#
694CONFIG_SCSI_MOD=y
698# CONFIG_RAID_ATTRS is not set 695# CONFIG_RAID_ATTRS is not set
699CONFIG_SCSI=y 696CONFIG_SCSI=y
700CONFIG_SCSI_DMA=y 697CONFIG_SCSI_DMA=y
@@ -819,6 +816,7 @@ CONFIG_SATA_SIL=y
819# CONFIG_PATA_IT821X is not set 816# CONFIG_PATA_IT821X is not set
820# CONFIG_PATA_IT8213 is not set 817# CONFIG_PATA_IT8213 is not set
821# CONFIG_PATA_JMICRON is not set 818# CONFIG_PATA_JMICRON is not set
819# CONFIG_PATA_LEGACY is not set
822# CONFIG_PATA_TRIFLEX is not set 820# CONFIG_PATA_TRIFLEX is not set
823# CONFIG_PATA_MARVELL is not set 821# CONFIG_PATA_MARVELL is not set
824# CONFIG_PATA_MPIIX is not set 822# CONFIG_PATA_MPIIX is not set
@@ -1059,6 +1057,7 @@ CONFIG_SERIAL_CORE=y
1059CONFIG_SERIAL_CORE_CONSOLE=y 1057CONFIG_SERIAL_CORE_CONSOLE=y
1060# CONFIG_SERIAL_JSM is not set 1058# CONFIG_SERIAL_JSM is not set
1061# CONFIG_SERIAL_OF_PLATFORM is not set 1059# CONFIG_SERIAL_OF_PLATFORM is not set
1060# CONFIG_SERIAL_TIMBERDALE is not set
1062# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1061# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1063CONFIG_UNIX98_PTYS=y 1062CONFIG_UNIX98_PTYS=y
1064# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1063# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1116,6 +1115,7 @@ CONFIG_I2C_HELPER_AUTO=y
1116CONFIG_I2C_MPC=y 1115CONFIG_I2C_MPC=y
1117# CONFIG_I2C_OCORES is not set 1116# CONFIG_I2C_OCORES is not set
1118# CONFIG_I2C_SIMTEC is not set 1117# CONFIG_I2C_SIMTEC is not set
1118# CONFIG_I2C_XILINX is not set
1119 1119
1120# 1120#
1121# External I2C/SMBus adapter drivers 1121# External I2C/SMBus adapter drivers
@@ -1129,15 +1129,9 @@ CONFIG_I2C_MPC=y
1129# 1129#
1130# CONFIG_I2C_PCA_PLATFORM is not set 1130# CONFIG_I2C_PCA_PLATFORM is not set
1131# CONFIG_I2C_STUB is not set 1131# CONFIG_I2C_STUB is not set
1132
1133#
1134# Miscellaneous I2C Chip support
1135#
1136# CONFIG_SENSORS_TSL2550 is not set
1137# CONFIG_I2C_DEBUG_CORE is not set 1132# CONFIG_I2C_DEBUG_CORE is not set
1138# CONFIG_I2C_DEBUG_ALGO is not set 1133# CONFIG_I2C_DEBUG_ALGO is not set
1139# CONFIG_I2C_DEBUG_BUS is not set 1134# CONFIG_I2C_DEBUG_BUS is not set
1140# CONFIG_I2C_DEBUG_CHIP is not set
1141# CONFIG_SPI is not set 1135# CONFIG_SPI is not set
1142 1136
1143# 1137#
@@ -1152,14 +1146,18 @@ CONFIG_GPIO_SYSFS=y
1152# 1146#
1153# Memory mapped GPIO expanders: 1147# Memory mapped GPIO expanders:
1154# 1148#
1149# CONFIG_GPIO_IT8761E is not set
1155# CONFIG_GPIO_XILINX is not set 1150# CONFIG_GPIO_XILINX is not set
1151# CONFIG_GPIO_SCH is not set
1156 1152
1157# 1153#
1158# I2C GPIO expanders: 1154# I2C GPIO expanders:
1159# 1155#
1156# CONFIG_GPIO_MAX7300 is not set
1160# CONFIG_GPIO_MAX732X is not set 1157# CONFIG_GPIO_MAX732X is not set
1161# CONFIG_GPIO_PCA953X is not set 1158# CONFIG_GPIO_PCA953X is not set
1162# CONFIG_GPIO_PCF857X is not set 1159# CONFIG_GPIO_PCF857X is not set
1160# CONFIG_GPIO_ADP5588 is not set
1163 1161
1164# 1162#
1165# PCI GPIO expanders: 1163# PCI GPIO expanders:
@@ -1192,10 +1190,11 @@ CONFIG_HWMON=y
1192# CONFIG_SENSORS_ADM1029 is not set 1190# CONFIG_SENSORS_ADM1029 is not set
1193# CONFIG_SENSORS_ADM1031 is not set 1191# CONFIG_SENSORS_ADM1031 is not set
1194# CONFIG_SENSORS_ADM9240 is not set 1192# CONFIG_SENSORS_ADM9240 is not set
1193# CONFIG_SENSORS_ADT7411 is not set
1195# CONFIG_SENSORS_ADT7462 is not set 1194# CONFIG_SENSORS_ADT7462 is not set
1196# CONFIG_SENSORS_ADT7470 is not set 1195# CONFIG_SENSORS_ADT7470 is not set
1197# CONFIG_SENSORS_ADT7473 is not set
1198# CONFIG_SENSORS_ADT7475 is not set 1196# CONFIG_SENSORS_ADT7475 is not set
1197# CONFIG_SENSORS_ASC7621 is not set
1199# CONFIG_SENSORS_ATXP1 is not set 1198# CONFIG_SENSORS_ATXP1 is not set
1200# CONFIG_SENSORS_DS1621 is not set 1199# CONFIG_SENSORS_DS1621 is not set
1201# CONFIG_SENSORS_I5K_AMB is not set 1200# CONFIG_SENSORS_I5K_AMB is not set
@@ -1233,6 +1232,7 @@ CONFIG_SENSORS_LM92=y
1233# CONFIG_SENSORS_SMSC47M192 is not set 1232# CONFIG_SENSORS_SMSC47M192 is not set
1234# CONFIG_SENSORS_SMSC47B397 is not set 1233# CONFIG_SENSORS_SMSC47B397 is not set
1235# CONFIG_SENSORS_ADS7828 is not set 1234# CONFIG_SENSORS_ADS7828 is not set
1235# CONFIG_SENSORS_AMC6821 is not set
1236# CONFIG_SENSORS_THMC50 is not set 1236# CONFIG_SENSORS_THMC50 is not set
1237# CONFIG_SENSORS_TMP401 is not set 1237# CONFIG_SENSORS_TMP401 is not set
1238# CONFIG_SENSORS_TMP421 is not set 1238# CONFIG_SENSORS_TMP421 is not set
@@ -1281,19 +1281,24 @@ CONFIG_SSB_POSSIBLE=y
1281# Multifunction device drivers 1281# Multifunction device drivers
1282# 1282#
1283# CONFIG_MFD_CORE is not set 1283# CONFIG_MFD_CORE is not set
1284# CONFIG_MFD_88PM860X is not set
1284# CONFIG_MFD_SM501 is not set 1285# CONFIG_MFD_SM501 is not set
1285# CONFIG_HTC_PASIC3 is not set 1286# CONFIG_HTC_PASIC3 is not set
1287# CONFIG_HTC_I2CPLD is not set
1286# CONFIG_TPS65010 is not set 1288# CONFIG_TPS65010 is not set
1287# CONFIG_TWL4030_CORE is not set 1289# CONFIG_TWL4030_CORE is not set
1288# CONFIG_MFD_TMIO is not set 1290# CONFIG_MFD_TMIO is not set
1289# CONFIG_PMIC_DA903X is not set 1291# CONFIG_PMIC_DA903X is not set
1290# CONFIG_PMIC_ADP5520 is not set 1292# CONFIG_PMIC_ADP5520 is not set
1293# CONFIG_MFD_MAX8925 is not set
1291# CONFIG_MFD_WM8400 is not set 1294# CONFIG_MFD_WM8400 is not set
1292# CONFIG_MFD_WM831X is not set 1295# CONFIG_MFD_WM831X is not set
1293# CONFIG_MFD_WM8350_I2C is not set 1296# CONFIG_MFD_WM8350_I2C is not set
1297# CONFIG_MFD_WM8994 is not set
1294# CONFIG_MFD_PCF50633 is not set 1298# CONFIG_MFD_PCF50633 is not set
1295# CONFIG_AB3100_CORE is not set 1299# CONFIG_AB3100_CORE is not set
1296# CONFIG_MFD_88PM8607 is not set 1300# CONFIG_MFD_TIMBERDALE is not set
1301# CONFIG_LPC_SCH is not set
1297# CONFIG_REGULATOR is not set 1302# CONFIG_REGULATOR is not set
1298# CONFIG_MEDIA_SUPPORT is not set 1303# CONFIG_MEDIA_SUPPORT is not set
1299 1304
@@ -1302,6 +1307,7 @@ CONFIG_SSB_POSSIBLE=y
1302# 1307#
1303# CONFIG_AGP is not set 1308# CONFIG_AGP is not set
1304CONFIG_VGA_ARB=y 1309CONFIG_VGA_ARB=y
1310CONFIG_VGA_ARB_MAX_GPUS=16
1305# CONFIG_DRM is not set 1311# CONFIG_DRM is not set
1306# CONFIG_VGASTATE is not set 1312# CONFIG_VGASTATE is not set
1307CONFIG_VIDEO_OUTPUT_CONTROL=m 1313CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1334,6 +1340,7 @@ CONFIG_USB_HID=y
1334# 1340#
1335# Special HID drivers 1341# Special HID drivers
1336# 1342#
1343# CONFIG_HID_3M_PCT is not set
1337CONFIG_HID_A4TECH=y 1344CONFIG_HID_A4TECH=y
1338CONFIG_HID_APPLE=y 1345CONFIG_HID_APPLE=y
1339CONFIG_HID_BELKIN=y 1346CONFIG_HID_BELKIN=y
@@ -1349,14 +1356,19 @@ CONFIG_HID_GYRATION=y
1349CONFIG_HID_LOGITECH=y 1356CONFIG_HID_LOGITECH=y
1350# CONFIG_LOGITECH_FF is not set 1357# CONFIG_LOGITECH_FF is not set
1351# CONFIG_LOGIRUMBLEPAD2_FF is not set 1358# CONFIG_LOGIRUMBLEPAD2_FF is not set
1359# CONFIG_LOGIG940_FF is not set
1352CONFIG_HID_MICROSOFT=y 1360CONFIG_HID_MICROSOFT=y
1361# CONFIG_HID_MOSART is not set
1353CONFIG_HID_MONTEREY=y 1362CONFIG_HID_MONTEREY=y
1354# CONFIG_HID_NTRIG is not set 1363# CONFIG_HID_NTRIG is not set
1364# CONFIG_HID_ORTEK is not set
1355CONFIG_HID_PANTHERLORD=y 1365CONFIG_HID_PANTHERLORD=y
1356# CONFIG_PANTHERLORD_FF is not set 1366# CONFIG_PANTHERLORD_FF is not set
1357CONFIG_HID_PETALYNX=y 1367CONFIG_HID_PETALYNX=y
1368# CONFIG_HID_QUANTA is not set
1358CONFIG_HID_SAMSUNG=y 1369CONFIG_HID_SAMSUNG=y
1359CONFIG_HID_SONY=y 1370CONFIG_HID_SONY=y
1371# CONFIG_HID_STANTUM is not set
1360CONFIG_HID_SUNPLUS=y 1372CONFIG_HID_SUNPLUS=y
1361# CONFIG_HID_GREENASIA is not set 1373# CONFIG_HID_GREENASIA is not set
1362# CONFIG_HID_SMARTJOYPLUS is not set 1374# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1463,7 +1475,6 @@ CONFIG_USB_STORAGE=y
1463# CONFIG_USB_RIO500 is not set 1475# CONFIG_USB_RIO500 is not set
1464# CONFIG_USB_LEGOTOWER is not set 1476# CONFIG_USB_LEGOTOWER is not set
1465# CONFIG_USB_LCD is not set 1477# CONFIG_USB_LCD is not set
1466# CONFIG_USB_BERRY_CHARGE is not set
1467# CONFIG_USB_LED is not set 1478# CONFIG_USB_LED is not set
1468# CONFIG_USB_CYPRESS_CY7C63 is not set 1479# CONFIG_USB_CYPRESS_CY7C63 is not set
1469# CONFIG_USB_CYTHERM is not set 1480# CONFIG_USB_CYTHERM is not set
@@ -1476,7 +1487,6 @@ CONFIG_USB_STORAGE=y
1476# CONFIG_USB_IOWARRIOR is not set 1487# CONFIG_USB_IOWARRIOR is not set
1477# CONFIG_USB_TEST is not set 1488# CONFIG_USB_TEST is not set
1478# CONFIG_USB_ISIGHTFW is not set 1489# CONFIG_USB_ISIGHTFW is not set
1479# CONFIG_USB_VST is not set
1480# CONFIG_USB_GADGET is not set 1490# CONFIG_USB_GADGET is not set
1481 1491
1482# 1492#
@@ -1560,43 +1570,35 @@ CONFIG_RTC_DRV_RX8581=y
1560CONFIG_STAGING=y 1570CONFIG_STAGING=y
1561# CONFIG_STAGING_EXCLUDE_BUILD is not set 1571# CONFIG_STAGING_EXCLUDE_BUILD is not set
1562# CONFIG_ET131X is not set 1572# CONFIG_ET131X is not set
1563# CONFIG_ME4000 is not set
1564# CONFIG_MEILHAUS is not set
1565# CONFIG_USB_IP_COMMON is not set 1573# CONFIG_USB_IP_COMMON is not set
1574# CONFIG_PRISM2_USB is not set
1566# CONFIG_ECHO is not set 1575# CONFIG_ECHO is not set
1567# CONFIG_COMEDI is not set 1576# CONFIG_COMEDI is not set
1568# CONFIG_ASUS_OLED is not set 1577# CONFIG_ASUS_OLED is not set
1569# CONFIG_ALTERA_PCIE_CHDMA is not set 1578# CONFIG_R8187SE is not set
1570# CONFIG_INPUT_MIMIO is not set 1579# CONFIG_RTL8192SU is not set
1580# CONFIG_RTL8192U is not set
1581# CONFIG_RTL8192E is not set
1571# CONFIG_TRANZPORT is not set 1582# CONFIG_TRANZPORT is not set
1572 1583
1573# 1584#
1574# Android
1575#
1576# CONFIG_ANDROID is not set
1577# CONFIG_DST is not set
1578# CONFIG_POHMELFS is not set
1579# CONFIG_B3DFG is not set
1580# CONFIG_IDE_PHISON is not set
1581# CONFIG_PLAN9AUTH is not set
1582# CONFIG_HECI is not set
1583# CONFIG_USB_CPC is not set
1584
1585#
1586# Qualcomm MSM Camera And Video 1585# Qualcomm MSM Camera And Video
1587# 1586#
1588 1587
1589# 1588#
1590# Camera Sensor Selection 1589# Camera Sensor Selection
1591# 1590#
1592# CONFIG_HYPERV_STORAGE is not set 1591# CONFIG_INPUT_GPIO is not set
1593# CONFIG_HYPERV_BLOCK is not set 1592# CONFIG_POHMELFS is not set
1594# CONFIG_HYPERV_NET is not set 1593# CONFIG_IDE_PHISON is not set
1594# CONFIG_VT6655 is not set
1595# CONFIG_VT6656 is not set
1595CONFIG_VME_BUS=y 1596CONFIG_VME_BUS=y
1596 1597
1597# 1598#
1598# VME Bridge Drivers 1599# VME Bridge Drivers
1599# 1600#
1601# CONFIG_VME_CA91CX42 is not set
1600CONFIG_VME_TSI148=y 1602CONFIG_VME_TSI148=y
1601 1603
1602# 1604#
@@ -1605,6 +1607,24 @@ CONFIG_VME_TSI148=y
1605# CONFIG_VME_USER is not set 1607# CONFIG_VME_USER is not set
1606 1608
1607# 1609#
1610# VME Board Drivers
1611#
1612# CONFIG_VMIVME_7805 is not set
1613
1614#
1615# RAR Register Driver
1616#
1617# CONFIG_RAR_REGISTER is not set
1618# CONFIG_IIO is not set
1619# CONFIG_RAMZSWAP is not set
1620# CONFIG_BATMAN_ADV is not set
1621# CONFIG_STRIP is not set
1622# CONFIG_PCMCIA_WAVELAN is not set
1623# CONFIG_PCMCIA_NETWAVE is not set
1624# CONFIG_DT3155 is not set
1625# CONFIG_CRYSTALHD is not set
1626
1627#
1608# File systems 1628# File systems
1609# 1629#
1610CONFIG_EXT2_FS=y 1630CONFIG_EXT2_FS=y
@@ -1693,6 +1713,7 @@ CONFIG_JFFS2_ZLIB=y
1693# CONFIG_JFFS2_LZO is not set 1713# CONFIG_JFFS2_LZO is not set
1694CONFIG_JFFS2_RTIME=y 1714CONFIG_JFFS2_RTIME=y
1695# CONFIG_JFFS2_RUBIN is not set 1715# CONFIG_JFFS2_RUBIN is not set
1716# CONFIG_LOGFS is not set
1696# CONFIG_CRAMFS is not set 1717# CONFIG_CRAMFS is not set
1697# CONFIG_SQUASHFS is not set 1718# CONFIG_SQUASHFS is not set
1698# CONFIG_VXFS_FS is not set 1719# CONFIG_VXFS_FS is not set
@@ -1719,6 +1740,7 @@ CONFIG_SUNRPC_GSS=y
1719CONFIG_RPCSEC_GSS_KRB5=y 1740CONFIG_RPCSEC_GSS_KRB5=y
1720# CONFIG_RPCSEC_GSS_SPKM3 is not set 1741# CONFIG_RPCSEC_GSS_SPKM3 is not set
1721# CONFIG_SMB_FS is not set 1742# CONFIG_SMB_FS is not set
1743# CONFIG_CEPH_FS is not set
1722CONFIG_CIFS=m 1744CONFIG_CIFS=m
1723# CONFIG_CIFS_STATS is not set 1745# CONFIG_CIFS_STATS is not set
1724# CONFIG_CIFS_WEAK_PW_HASH is not set 1746# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1864,6 +1886,7 @@ CONFIG_CRYPTO_MANAGER=y
1864CONFIG_CRYPTO_MANAGER2=y 1886CONFIG_CRYPTO_MANAGER2=y
1865# CONFIG_CRYPTO_GF128MUL is not set 1887# CONFIG_CRYPTO_GF128MUL is not set
1866# CONFIG_CRYPTO_NULL is not set 1888# CONFIG_CRYPTO_NULL is not set
1889# CONFIG_CRYPTO_PCRYPT is not set
1867CONFIG_CRYPTO_WORKQUEUE=y 1890CONFIG_CRYPTO_WORKQUEUE=y
1868# CONFIG_CRYPTO_CRYPTD is not set 1891# CONFIG_CRYPTO_CRYPTD is not set
1869CONFIG_CRYPTO_AUTHENC=m 1892CONFIG_CRYPTO_AUTHENC=m
diff --git a/arch/powerpc/configs/86xx/gef_sbc310_defconfig b/arch/powerpc/configs/86xx/gef_sbc310_defconfig
index eb58dec11a61..8e738de5f6a5 100644
--- a/arch/powerpc/configs/86xx/gef_sbc310_defconfig
+++ b/arch/powerpc/configs/86xx/gef_sbc310_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:41 2010 4# Mon Apr 19 23:17:05 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -102,14 +102,8 @@ CONFIG_RCU_FANOUT=32
102CONFIG_IKCONFIG=y 102CONFIG_IKCONFIG=y
103CONFIG_IKCONFIG_PROC=y 103CONFIG_IKCONFIG_PROC=y
104CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
105CONFIG_GROUP_SCHED=y
106CONFIG_FAIR_GROUP_SCHED=y
107# CONFIG_RT_GROUP_SCHED is not set
108CONFIG_USER_SCHED=y
109# CONFIG_CGROUP_SCHED is not set
110# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
111CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
112CONFIG_SYSFS_DEPRECATED_V2=y
113CONFIG_RELAY=y 107CONFIG_RELAY=y
114# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
115CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -117,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
117CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
118# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
119# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
120# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
121CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
122CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -325,6 +320,7 @@ CONFIG_ISA_DMA_API=y
325# Bus options 320# Bus options
326# 321#
327CONFIG_ZONE_DMA=y 322CONFIG_ZONE_DMA=y
323# CONFIG_NEED_DMA_MAP_STATE is not set
328CONFIG_GENERIC_ISA_DMA=y 324CONFIG_GENERIC_ISA_DMA=y
329CONFIG_PPC_INDIRECT_PCI=y 325CONFIG_PPC_INDIRECT_PCI=y
330CONFIG_FSL_SOC=y 326CONFIG_FSL_SOC=y
@@ -340,13 +336,11 @@ CONFIG_PCIEAER=y
340# CONFIG_PCIEASPM is not set 336# CONFIG_PCIEASPM is not set
341CONFIG_ARCH_SUPPORTS_MSI=y 337CONFIG_ARCH_SUPPORTS_MSI=y
342# CONFIG_PCI_MSI is not set 338# CONFIG_PCI_MSI is not set
343# CONFIG_PCI_LEGACY is not set
344# CONFIG_PCI_STUB is not set 339# CONFIG_PCI_STUB is not set
345# CONFIG_PCI_IOV is not set 340# CONFIG_PCI_IOV is not set
346CONFIG_PCCARD=y 341CONFIG_PCCARD=y
347CONFIG_PCMCIA=y 342CONFIG_PCMCIA=y
348# CONFIG_PCMCIA_LOAD_CIS is not set 343# CONFIG_PCMCIA_LOAD_CIS is not set
349# CONFIG_PCMCIA_IOCTL is not set
350# CONFIG_CARDBUS is not set 344# CONFIG_CARDBUS is not set
351 345
352# 346#
@@ -382,7 +376,6 @@ CONFIG_NET=y
382# Networking options 376# Networking options
383# 377#
384CONFIG_PACKET=y 378CONFIG_PACKET=y
385CONFIG_PACKET_MMAP=y
386CONFIG_UNIX=y 379CONFIG_UNIX=y
387CONFIG_XFRM=y 380CONFIG_XFRM=y
388CONFIG_XFRM_USER=m 381CONFIG_XFRM_USER=m
@@ -592,6 +585,8 @@ CONFIG_MTD_PHYSMAP_OF=y
592# UBI - Unsorted block images 585# UBI - Unsorted block images
593# 586#
594# CONFIG_MTD_UBI is not set 587# CONFIG_MTD_UBI is not set
588CONFIG_OF_FLATTREE=y
589CONFIG_OF_DYNAMIC=y
595CONFIG_OF_DEVICE=y 590CONFIG_OF_DEVICE=y
596CONFIG_OF_GPIO=y 591CONFIG_OF_GPIO=y
597CONFIG_OF_I2C=y 592CONFIG_OF_I2C=y
@@ -629,6 +624,7 @@ CONFIG_MISC_DEVICES=y
629# CONFIG_ENCLOSURE_SERVICES is not set 624# CONFIG_ENCLOSURE_SERVICES is not set
630# CONFIG_HP_ILO is not set 625# CONFIG_HP_ILO is not set
631# CONFIG_ISL29003 is not set 626# CONFIG_ISL29003 is not set
627# CONFIG_SENSORS_TSL2550 is not set
632CONFIG_DS1682=y 628CONFIG_DS1682=y
633# CONFIG_C2PORT is not set 629# CONFIG_C2PORT is not set
634 630
@@ -695,6 +691,7 @@ CONFIG_IDE_PROC_FS=y
695# 691#
696# SCSI device support 692# SCSI device support
697# 693#
694CONFIG_SCSI_MOD=y
698# CONFIG_RAID_ATTRS is not set 695# CONFIG_RAID_ATTRS is not set
699CONFIG_SCSI=y 696CONFIG_SCSI=y
700CONFIG_SCSI_DMA=y 697CONFIG_SCSI_DMA=y
@@ -1001,6 +998,7 @@ CONFIG_SERIAL_CORE=y
1001CONFIG_SERIAL_CORE_CONSOLE=y 998CONFIG_SERIAL_CORE_CONSOLE=y
1002# CONFIG_SERIAL_JSM is not set 999# CONFIG_SERIAL_JSM is not set
1003# CONFIG_SERIAL_OF_PLATFORM is not set 1000# CONFIG_SERIAL_OF_PLATFORM is not set
1001# CONFIG_SERIAL_TIMBERDALE is not set
1004# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1002# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1005CONFIG_UNIX98_PTYS=y 1003CONFIG_UNIX98_PTYS=y
1006# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1004# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1058,6 +1056,7 @@ CONFIG_I2C_HELPER_AUTO=y
1058CONFIG_I2C_MPC=y 1056CONFIG_I2C_MPC=y
1059# CONFIG_I2C_OCORES is not set 1057# CONFIG_I2C_OCORES is not set
1060# CONFIG_I2C_SIMTEC is not set 1058# CONFIG_I2C_SIMTEC is not set
1059# CONFIG_I2C_XILINX is not set
1061 1060
1062# 1061#
1063# External I2C/SMBus adapter drivers 1062# External I2C/SMBus adapter drivers
@@ -1071,15 +1070,9 @@ CONFIG_I2C_MPC=y
1071# 1070#
1072# CONFIG_I2C_PCA_PLATFORM is not set 1071# CONFIG_I2C_PCA_PLATFORM is not set
1073# CONFIG_I2C_STUB is not set 1072# CONFIG_I2C_STUB is not set
1074
1075#
1076# Miscellaneous I2C Chip support
1077#
1078# CONFIG_SENSORS_TSL2550 is not set
1079# CONFIG_I2C_DEBUG_CORE is not set 1073# CONFIG_I2C_DEBUG_CORE is not set
1080# CONFIG_I2C_DEBUG_ALGO is not set 1074# CONFIG_I2C_DEBUG_ALGO is not set
1081# CONFIG_I2C_DEBUG_BUS is not set 1075# CONFIG_I2C_DEBUG_BUS is not set
1082# CONFIG_I2C_DEBUG_CHIP is not set
1083# CONFIG_SPI is not set 1076# CONFIG_SPI is not set
1084 1077
1085# 1078#
@@ -1094,14 +1087,18 @@ CONFIG_GPIO_SYSFS=y
1094# 1087#
1095# Memory mapped GPIO expanders: 1088# Memory mapped GPIO expanders:
1096# 1089#
1090# CONFIG_GPIO_IT8761E is not set
1097# CONFIG_GPIO_XILINX is not set 1091# CONFIG_GPIO_XILINX is not set
1092# CONFIG_GPIO_SCH is not set
1098 1093
1099# 1094#
1100# I2C GPIO expanders: 1095# I2C GPIO expanders:
1101# 1096#
1097# CONFIG_GPIO_MAX7300 is not set
1102# CONFIG_GPIO_MAX732X is not set 1098# CONFIG_GPIO_MAX732X is not set
1103# CONFIG_GPIO_PCA953X is not set 1099# CONFIG_GPIO_PCA953X is not set
1104# CONFIG_GPIO_PCF857X is not set 1100# CONFIG_GPIO_PCF857X is not set
1101# CONFIG_GPIO_ADP5588 is not set
1105 1102
1106# 1103#
1107# PCI GPIO expanders: 1104# PCI GPIO expanders:
@@ -1134,10 +1131,11 @@ CONFIG_HWMON=y
1134# CONFIG_SENSORS_ADM1029 is not set 1131# CONFIG_SENSORS_ADM1029 is not set
1135# CONFIG_SENSORS_ADM1031 is not set 1132# CONFIG_SENSORS_ADM1031 is not set
1136# CONFIG_SENSORS_ADM9240 is not set 1133# CONFIG_SENSORS_ADM9240 is not set
1134# CONFIG_SENSORS_ADT7411 is not set
1137# CONFIG_SENSORS_ADT7462 is not set 1135# CONFIG_SENSORS_ADT7462 is not set
1138# CONFIG_SENSORS_ADT7470 is not set 1136# CONFIG_SENSORS_ADT7470 is not set
1139# CONFIG_SENSORS_ADT7473 is not set
1140# CONFIG_SENSORS_ADT7475 is not set 1137# CONFIG_SENSORS_ADT7475 is not set
1138# CONFIG_SENSORS_ASC7621 is not set
1141# CONFIG_SENSORS_ATXP1 is not set 1139# CONFIG_SENSORS_ATXP1 is not set
1142# CONFIG_SENSORS_DS1621 is not set 1140# CONFIG_SENSORS_DS1621 is not set
1143# CONFIG_SENSORS_I5K_AMB is not set 1141# CONFIG_SENSORS_I5K_AMB is not set
@@ -1175,6 +1173,7 @@ CONFIG_SENSORS_LM92=y
1175# CONFIG_SENSORS_SMSC47M192 is not set 1173# CONFIG_SENSORS_SMSC47M192 is not set
1176# CONFIG_SENSORS_SMSC47B397 is not set 1174# CONFIG_SENSORS_SMSC47B397 is not set
1177# CONFIG_SENSORS_ADS7828 is not set 1175# CONFIG_SENSORS_ADS7828 is not set
1176# CONFIG_SENSORS_AMC6821 is not set
1178# CONFIG_SENSORS_THMC50 is not set 1177# CONFIG_SENSORS_THMC50 is not set
1179# CONFIG_SENSORS_TMP401 is not set 1178# CONFIG_SENSORS_TMP401 is not set
1180# CONFIG_SENSORS_TMP421 is not set 1179# CONFIG_SENSORS_TMP421 is not set
@@ -1223,19 +1222,24 @@ CONFIG_SSB_POSSIBLE=y
1223# Multifunction device drivers 1222# Multifunction device drivers
1224# 1223#
1225# CONFIG_MFD_CORE is not set 1224# CONFIG_MFD_CORE is not set
1225# CONFIG_MFD_88PM860X is not set
1226# CONFIG_MFD_SM501 is not set 1226# CONFIG_MFD_SM501 is not set
1227# CONFIG_HTC_PASIC3 is not set 1227# CONFIG_HTC_PASIC3 is not set
1228# CONFIG_HTC_I2CPLD is not set
1228# CONFIG_TPS65010 is not set 1229# CONFIG_TPS65010 is not set
1229# CONFIG_TWL4030_CORE is not set 1230# CONFIG_TWL4030_CORE is not set
1230# CONFIG_MFD_TMIO is not set 1231# CONFIG_MFD_TMIO is not set
1231# CONFIG_PMIC_DA903X is not set 1232# CONFIG_PMIC_DA903X is not set
1232# CONFIG_PMIC_ADP5520 is not set 1233# CONFIG_PMIC_ADP5520 is not set
1234# CONFIG_MFD_MAX8925 is not set
1233# CONFIG_MFD_WM8400 is not set 1235# CONFIG_MFD_WM8400 is not set
1234# CONFIG_MFD_WM831X is not set 1236# CONFIG_MFD_WM831X is not set
1235# CONFIG_MFD_WM8350_I2C is not set 1237# CONFIG_MFD_WM8350_I2C is not set
1238# CONFIG_MFD_WM8994 is not set
1236# CONFIG_MFD_PCF50633 is not set 1239# CONFIG_MFD_PCF50633 is not set
1237# CONFIG_AB3100_CORE is not set 1240# CONFIG_AB3100_CORE is not set
1238# CONFIG_MFD_88PM8607 is not set 1241# CONFIG_MFD_TIMBERDALE is not set
1242# CONFIG_LPC_SCH is not set
1239# CONFIG_REGULATOR is not set 1243# CONFIG_REGULATOR is not set
1240# CONFIG_MEDIA_SUPPORT is not set 1244# CONFIG_MEDIA_SUPPORT is not set
1241 1245
@@ -1244,6 +1248,7 @@ CONFIG_SSB_POSSIBLE=y
1244# 1248#
1245# CONFIG_AGP is not set 1249# CONFIG_AGP is not set
1246CONFIG_VGA_ARB=y 1250CONFIG_VGA_ARB=y
1251CONFIG_VGA_ARB_MAX_GPUS=16
1247# CONFIG_DRM is not set 1252# CONFIG_DRM is not set
1248# CONFIG_VGASTATE is not set 1253# CONFIG_VGASTATE is not set
1249CONFIG_VIDEO_OUTPUT_CONTROL=m 1254CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1276,6 +1281,7 @@ CONFIG_USB_HID=y
1276# 1281#
1277# Special HID drivers 1282# Special HID drivers
1278# 1283#
1284# CONFIG_HID_3M_PCT is not set
1279CONFIG_HID_A4TECH=y 1285CONFIG_HID_A4TECH=y
1280CONFIG_HID_APPLE=y 1286CONFIG_HID_APPLE=y
1281CONFIG_HID_BELKIN=y 1287CONFIG_HID_BELKIN=y
@@ -1291,14 +1297,19 @@ CONFIG_HID_GYRATION=y
1291CONFIG_HID_LOGITECH=y 1297CONFIG_HID_LOGITECH=y
1292# CONFIG_LOGITECH_FF is not set 1298# CONFIG_LOGITECH_FF is not set
1293# CONFIG_LOGIRUMBLEPAD2_FF is not set 1299# CONFIG_LOGIRUMBLEPAD2_FF is not set
1300# CONFIG_LOGIG940_FF is not set
1294CONFIG_HID_MICROSOFT=y 1301CONFIG_HID_MICROSOFT=y
1302# CONFIG_HID_MOSART is not set
1295CONFIG_HID_MONTEREY=y 1303CONFIG_HID_MONTEREY=y
1296# CONFIG_HID_NTRIG is not set 1304# CONFIG_HID_NTRIG is not set
1305# CONFIG_HID_ORTEK is not set
1297CONFIG_HID_PANTHERLORD=y 1306CONFIG_HID_PANTHERLORD=y
1298# CONFIG_PANTHERLORD_FF is not set 1307# CONFIG_PANTHERLORD_FF is not set
1299CONFIG_HID_PETALYNX=y 1308CONFIG_HID_PETALYNX=y
1309# CONFIG_HID_QUANTA is not set
1300CONFIG_HID_SAMSUNG=y 1310CONFIG_HID_SAMSUNG=y
1301CONFIG_HID_SONY=y 1311CONFIG_HID_SONY=y
1312# CONFIG_HID_STANTUM is not set
1302CONFIG_HID_SUNPLUS=y 1313CONFIG_HID_SUNPLUS=y
1303# CONFIG_HID_GREENASIA is not set 1314# CONFIG_HID_GREENASIA is not set
1304# CONFIG_HID_SMARTJOYPLUS is not set 1315# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1405,7 +1416,6 @@ CONFIG_USB_STORAGE=y
1405# CONFIG_USB_RIO500 is not set 1416# CONFIG_USB_RIO500 is not set
1406# CONFIG_USB_LEGOTOWER is not set 1417# CONFIG_USB_LEGOTOWER is not set
1407# CONFIG_USB_LCD is not set 1418# CONFIG_USB_LCD is not set
1408# CONFIG_USB_BERRY_CHARGE is not set
1409# CONFIG_USB_LED is not set 1419# CONFIG_USB_LED is not set
1410# CONFIG_USB_CYPRESS_CY7C63 is not set 1420# CONFIG_USB_CYPRESS_CY7C63 is not set
1411# CONFIG_USB_CYTHERM is not set 1421# CONFIG_USB_CYTHERM is not set
@@ -1418,7 +1428,6 @@ CONFIG_USB_STORAGE=y
1418# CONFIG_USB_IOWARRIOR is not set 1428# CONFIG_USB_IOWARRIOR is not set
1419# CONFIG_USB_TEST is not set 1429# CONFIG_USB_TEST is not set
1420# CONFIG_USB_ISIGHTFW is not set 1430# CONFIG_USB_ISIGHTFW is not set
1421# CONFIG_USB_VST is not set
1422# CONFIG_USB_GADGET is not set 1431# CONFIG_USB_GADGET is not set
1423 1432
1424# 1433#
@@ -1590,6 +1599,7 @@ CONFIG_JFFS2_ZLIB=y
1590# CONFIG_JFFS2_LZO is not set 1599# CONFIG_JFFS2_LZO is not set
1591CONFIG_JFFS2_RTIME=y 1600CONFIG_JFFS2_RTIME=y
1592# CONFIG_JFFS2_RUBIN is not set 1601# CONFIG_JFFS2_RUBIN is not set
1602# CONFIG_LOGFS is not set
1593# CONFIG_CRAMFS is not set 1603# CONFIG_CRAMFS is not set
1594# CONFIG_SQUASHFS is not set 1604# CONFIG_SQUASHFS is not set
1595# CONFIG_VXFS_FS is not set 1605# CONFIG_VXFS_FS is not set
@@ -1616,6 +1626,7 @@ CONFIG_SUNRPC_GSS=y
1616CONFIG_RPCSEC_GSS_KRB5=y 1626CONFIG_RPCSEC_GSS_KRB5=y
1617# CONFIG_RPCSEC_GSS_SPKM3 is not set 1627# CONFIG_RPCSEC_GSS_SPKM3 is not set
1618# CONFIG_SMB_FS is not set 1628# CONFIG_SMB_FS is not set
1629# CONFIG_CEPH_FS is not set
1619CONFIG_CIFS=m 1630CONFIG_CIFS=m
1620# CONFIG_CIFS_STATS is not set 1631# CONFIG_CIFS_STATS is not set
1621# CONFIG_CIFS_WEAK_PW_HASH is not set 1632# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1761,6 +1772,7 @@ CONFIG_CRYPTO_MANAGER=y
1761CONFIG_CRYPTO_MANAGER2=y 1772CONFIG_CRYPTO_MANAGER2=y
1762# CONFIG_CRYPTO_GF128MUL is not set 1773# CONFIG_CRYPTO_GF128MUL is not set
1763# CONFIG_CRYPTO_NULL is not set 1774# CONFIG_CRYPTO_NULL is not set
1775# CONFIG_CRYPTO_PCRYPT is not set
1764CONFIG_CRYPTO_WORKQUEUE=y 1776CONFIG_CRYPTO_WORKQUEUE=y
1765# CONFIG_CRYPTO_CRYPTD is not set 1777# CONFIG_CRYPTO_CRYPTD is not set
1766CONFIG_CRYPTO_AUTHENC=m 1778CONFIG_CRYPTO_AUTHENC=m
diff --git a/arch/powerpc/configs/86xx/gef_sbc610_defconfig b/arch/powerpc/configs/86xx/gef_sbc610_defconfig
index 62c2b81a4a8f..59bf9e27d7f2 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:42 2010 4# Mon Apr 19 23:17:06 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -102,14 +102,8 @@ CONFIG_RCU_FANOUT=32
102CONFIG_IKCONFIG=y 102CONFIG_IKCONFIG=y
103CONFIG_IKCONFIG_PROC=y 103CONFIG_IKCONFIG_PROC=y
104CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
105CONFIG_GROUP_SCHED=y
106CONFIG_FAIR_GROUP_SCHED=y
107# CONFIG_RT_GROUP_SCHED is not set
108CONFIG_USER_SCHED=y
109# CONFIG_CGROUP_SCHED is not set
110# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
111CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
112CONFIG_SYSFS_DEPRECATED_V2=y
113CONFIG_RELAY=y 107CONFIG_RELAY=y
114# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
115CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -117,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
117CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
118# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
119# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
120# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
121CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
122CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -326,6 +321,7 @@ CONFIG_ISA_DMA_API=y
326# Bus options 321# Bus options
327# 322#
328CONFIG_ZONE_DMA=y 323CONFIG_ZONE_DMA=y
324# CONFIG_NEED_DMA_MAP_STATE is not set
329CONFIG_GENERIC_ISA_DMA=y 325CONFIG_GENERIC_ISA_DMA=y
330CONFIG_PPC_INDIRECT_PCI=y 326CONFIG_PPC_INDIRECT_PCI=y
331CONFIG_FSL_SOC=y 327CONFIG_FSL_SOC=y
@@ -341,7 +337,6 @@ CONFIG_PCIEAER=y
341# CONFIG_PCIEASPM is not set 337# CONFIG_PCIEASPM is not set
342CONFIG_ARCH_SUPPORTS_MSI=y 338CONFIG_ARCH_SUPPORTS_MSI=y
343# CONFIG_PCI_MSI is not set 339# CONFIG_PCI_MSI is not set
344# CONFIG_PCI_LEGACY is not set
345CONFIG_PCI_DEBUG=y 340CONFIG_PCI_DEBUG=y
346# CONFIG_PCI_STUB is not set 341# CONFIG_PCI_STUB is not set
347# CONFIG_PCI_IOV is not set 342# CONFIG_PCI_IOV is not set
@@ -369,7 +364,6 @@ CONFIG_NET=y
369# Networking options 364# Networking options
370# 365#
371CONFIG_PACKET=y 366CONFIG_PACKET=y
372CONFIG_PACKET_MMAP=y
373CONFIG_UNIX=y 367CONFIG_UNIX=y
374CONFIG_XFRM=y 368CONFIG_XFRM=y
375CONFIG_XFRM_USER=m 369CONFIG_XFRM_USER=m
@@ -552,6 +546,7 @@ CONFIG_ATM_BR2684=m
552# CONFIG_ATM_BR2684_IPFILTER is not set 546# CONFIG_ATM_BR2684_IPFILTER is not set
553CONFIG_STP=m 547CONFIG_STP=m
554CONFIG_BRIDGE=m 548CONFIG_BRIDGE=m
549CONFIG_BRIDGE_IGMP_SNOOPING=y
555# CONFIG_NET_DSA is not set 550# CONFIG_NET_DSA is not set
556CONFIG_VLAN_8021Q=m 551CONFIG_VLAN_8021Q=m
557# CONFIG_VLAN_8021Q_GVRP is not set 552# CONFIG_VLAN_8021Q_GVRP is not set
@@ -728,6 +723,8 @@ CONFIG_MTD_PHYSMAP_OF=y
728# UBI - Unsorted block images 723# UBI - Unsorted block images
729# 724#
730# CONFIG_MTD_UBI is not set 725# CONFIG_MTD_UBI is not set
726CONFIG_OF_FLATTREE=y
727CONFIG_OF_DYNAMIC=y
731CONFIG_OF_DEVICE=y 728CONFIG_OF_DEVICE=y
732CONFIG_OF_GPIO=y 729CONFIG_OF_GPIO=y
733CONFIG_OF_I2C=y 730CONFIG_OF_I2C=y
@@ -765,6 +762,7 @@ CONFIG_MISC_DEVICES=y
765# CONFIG_ENCLOSURE_SERVICES is not set 762# CONFIG_ENCLOSURE_SERVICES is not set
766# CONFIG_HP_ILO is not set 763# CONFIG_HP_ILO is not set
767# CONFIG_ISL29003 is not set 764# CONFIG_ISL29003 is not set
765# CONFIG_SENSORS_TSL2550 is not set
768CONFIG_DS1682=y 766CONFIG_DS1682=y
769# CONFIG_C2PORT is not set 767# CONFIG_C2PORT is not set
770 768
@@ -782,6 +780,7 @@ CONFIG_HAVE_IDE=y
782# 780#
783# SCSI device support 781# SCSI device support
784# 782#
783CONFIG_SCSI_MOD=y
785# CONFIG_RAID_ATTRS is not set 784# CONFIG_RAID_ATTRS is not set
786CONFIG_SCSI=y 785CONFIG_SCSI=y
787CONFIG_SCSI_DMA=y 786CONFIG_SCSI_DMA=y
@@ -905,6 +904,7 @@ CONFIG_SATA_SIL=y
905# CONFIG_PATA_IT821X is not set 904# CONFIG_PATA_IT821X is not set
906# CONFIG_PATA_IT8213 is not set 905# CONFIG_PATA_IT8213 is not set
907# CONFIG_PATA_JMICRON is not set 906# CONFIG_PATA_JMICRON is not set
907# CONFIG_PATA_LEGACY is not set
908# CONFIG_PATA_TRIFLEX is not set 908# CONFIG_PATA_TRIFLEX is not set
909# CONFIG_PATA_MARVELL is not set 909# CONFIG_PATA_MARVELL is not set
910# CONFIG_PATA_MPIIX is not set 910# CONFIG_PATA_MPIIX is not set
@@ -1155,6 +1155,7 @@ CONFIG_SERIAL_CORE=y
1155CONFIG_SERIAL_CORE_CONSOLE=y 1155CONFIG_SERIAL_CORE_CONSOLE=y
1156# CONFIG_SERIAL_JSM is not set 1156# CONFIG_SERIAL_JSM is not set
1157# CONFIG_SERIAL_OF_PLATFORM is not set 1157# CONFIG_SERIAL_OF_PLATFORM is not set
1158# CONFIG_SERIAL_TIMBERDALE is not set
1158# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1159# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1159CONFIG_UNIX98_PTYS=y 1160CONFIG_UNIX98_PTYS=y
1160# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1161# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1204,6 +1205,7 @@ CONFIG_I2C_HELPER_AUTO=y
1204CONFIG_I2C_MPC=y 1205CONFIG_I2C_MPC=y
1205# CONFIG_I2C_OCORES is not set 1206# CONFIG_I2C_OCORES is not set
1206# CONFIG_I2C_SIMTEC is not set 1207# CONFIG_I2C_SIMTEC is not set
1208# CONFIG_I2C_XILINX is not set
1207 1209
1208# 1210#
1209# External I2C/SMBus adapter drivers 1211# External I2C/SMBus adapter drivers
@@ -1217,15 +1219,9 @@ CONFIG_I2C_MPC=y
1217# 1219#
1218# CONFIG_I2C_PCA_PLATFORM is not set 1220# CONFIG_I2C_PCA_PLATFORM is not set
1219# CONFIG_I2C_STUB is not set 1221# CONFIG_I2C_STUB is not set
1220
1221#
1222# Miscellaneous I2C Chip support
1223#
1224# CONFIG_SENSORS_TSL2550 is not set
1225# CONFIG_I2C_DEBUG_CORE is not set 1222# CONFIG_I2C_DEBUG_CORE is not set
1226# CONFIG_I2C_DEBUG_ALGO is not set 1223# CONFIG_I2C_DEBUG_ALGO is not set
1227# CONFIG_I2C_DEBUG_BUS is not set 1224# CONFIG_I2C_DEBUG_BUS is not set
1228# CONFIG_I2C_DEBUG_CHIP is not set
1229# CONFIG_SPI is not set 1225# CONFIG_SPI is not set
1230 1226
1231# 1227#
@@ -1241,14 +1237,18 @@ CONFIG_GPIOLIB=y
1241# 1237#
1242# Memory mapped GPIO expanders: 1238# Memory mapped GPIO expanders:
1243# 1239#
1240# CONFIG_GPIO_IT8761E is not set
1244# CONFIG_GPIO_XILINX is not set 1241# CONFIG_GPIO_XILINX is not set
1242# CONFIG_GPIO_SCH is not set
1245 1243
1246# 1244#
1247# I2C GPIO expanders: 1245# I2C GPIO expanders:
1248# 1246#
1247# CONFIG_GPIO_MAX7300 is not set
1249# CONFIG_GPIO_MAX732X is not set 1248# CONFIG_GPIO_MAX732X is not set
1250# CONFIG_GPIO_PCA953X is not set 1249# CONFIG_GPIO_PCA953X is not set
1251# CONFIG_GPIO_PCF857X is not set 1250# CONFIG_GPIO_PCF857X is not set
1251# CONFIG_GPIO_ADP5588 is not set
1252 1252
1253# 1253#
1254# PCI GPIO expanders: 1254# PCI GPIO expanders:
@@ -1281,10 +1281,11 @@ CONFIG_HWMON=y
1281# CONFIG_SENSORS_ADM1029 is not set 1281# CONFIG_SENSORS_ADM1029 is not set
1282# CONFIG_SENSORS_ADM1031 is not set 1282# CONFIG_SENSORS_ADM1031 is not set
1283# CONFIG_SENSORS_ADM9240 is not set 1283# CONFIG_SENSORS_ADM9240 is not set
1284# CONFIG_SENSORS_ADT7411 is not set
1284# CONFIG_SENSORS_ADT7462 is not set 1285# CONFIG_SENSORS_ADT7462 is not set
1285# CONFIG_SENSORS_ADT7470 is not set 1286# CONFIG_SENSORS_ADT7470 is not set
1286# CONFIG_SENSORS_ADT7473 is not set
1287# CONFIG_SENSORS_ADT7475 is not set 1287# CONFIG_SENSORS_ADT7475 is not set
1288# CONFIG_SENSORS_ASC7621 is not set
1288# CONFIG_SENSORS_ATXP1 is not set 1289# CONFIG_SENSORS_ATXP1 is not set
1289# CONFIG_SENSORS_DS1621 is not set 1290# CONFIG_SENSORS_DS1621 is not set
1290# CONFIG_SENSORS_I5K_AMB is not set 1291# CONFIG_SENSORS_I5K_AMB is not set
@@ -1322,6 +1323,7 @@ CONFIG_SENSORS_LM92=y
1322# CONFIG_SENSORS_SMSC47M192 is not set 1323# CONFIG_SENSORS_SMSC47M192 is not set
1323# CONFIG_SENSORS_SMSC47B397 is not set 1324# CONFIG_SENSORS_SMSC47B397 is not set
1324# CONFIG_SENSORS_ADS7828 is not set 1325# CONFIG_SENSORS_ADS7828 is not set
1326# CONFIG_SENSORS_AMC6821 is not set
1325# CONFIG_SENSORS_THMC50 is not set 1327# CONFIG_SENSORS_THMC50 is not set
1326# CONFIG_SENSORS_TMP401 is not set 1328# CONFIG_SENSORS_TMP401 is not set
1327# CONFIG_SENSORS_TMP421 is not set 1329# CONFIG_SENSORS_TMP421 is not set
@@ -1370,19 +1372,24 @@ CONFIG_SSB_POSSIBLE=y
1370# Multifunction device drivers 1372# Multifunction device drivers
1371# 1373#
1372# CONFIG_MFD_CORE is not set 1374# CONFIG_MFD_CORE is not set
1375# CONFIG_MFD_88PM860X is not set
1373# CONFIG_MFD_SM501 is not set 1376# CONFIG_MFD_SM501 is not set
1374# CONFIG_HTC_PASIC3 is not set 1377# CONFIG_HTC_PASIC3 is not set
1378# CONFIG_HTC_I2CPLD is not set
1375# CONFIG_TPS65010 is not set 1379# CONFIG_TPS65010 is not set
1376# CONFIG_TWL4030_CORE is not set 1380# CONFIG_TWL4030_CORE is not set
1377# CONFIG_MFD_TMIO is not set 1381# CONFIG_MFD_TMIO is not set
1378# CONFIG_PMIC_DA903X is not set 1382# CONFIG_PMIC_DA903X is not set
1379# CONFIG_PMIC_ADP5520 is not set 1383# CONFIG_PMIC_ADP5520 is not set
1384# CONFIG_MFD_MAX8925 is not set
1380# CONFIG_MFD_WM8400 is not set 1385# CONFIG_MFD_WM8400 is not set
1381# CONFIG_MFD_WM831X is not set 1386# CONFIG_MFD_WM831X is not set
1382# CONFIG_MFD_WM8350_I2C is not set 1387# CONFIG_MFD_WM8350_I2C is not set
1388# CONFIG_MFD_WM8994 is not set
1383# CONFIG_MFD_PCF50633 is not set 1389# CONFIG_MFD_PCF50633 is not set
1384# CONFIG_AB3100_CORE is not set 1390# CONFIG_AB3100_CORE is not set
1385# CONFIG_MFD_88PM8607 is not set 1391# CONFIG_MFD_TIMBERDALE is not set
1392# CONFIG_LPC_SCH is not set
1386# CONFIG_REGULATOR is not set 1393# CONFIG_REGULATOR is not set
1387# CONFIG_MEDIA_SUPPORT is not set 1394# CONFIG_MEDIA_SUPPORT is not set
1388 1395
@@ -1391,6 +1398,7 @@ CONFIG_SSB_POSSIBLE=y
1391# 1398#
1392# CONFIG_AGP is not set 1399# CONFIG_AGP is not set
1393CONFIG_VGA_ARB=y 1400CONFIG_VGA_ARB=y
1401CONFIG_VGA_ARB_MAX_GPUS=16
1394# CONFIG_DRM is not set 1402# CONFIG_DRM is not set
1395# CONFIG_VGASTATE is not set 1403# CONFIG_VGASTATE is not set
1396CONFIG_VIDEO_OUTPUT_CONTROL=m 1404CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1423,6 +1431,7 @@ CONFIG_USB_HID=y
1423# 1431#
1424# Special HID drivers 1432# Special HID drivers
1425# 1433#
1434# CONFIG_HID_3M_PCT is not set
1426CONFIG_HID_A4TECH=y 1435CONFIG_HID_A4TECH=y
1427CONFIG_HID_APPLE=y 1436CONFIG_HID_APPLE=y
1428CONFIG_HID_BELKIN=y 1437CONFIG_HID_BELKIN=y
@@ -1438,14 +1447,19 @@ CONFIG_HID_GYRATION=y
1438CONFIG_HID_LOGITECH=y 1447CONFIG_HID_LOGITECH=y
1439# CONFIG_LOGITECH_FF is not set 1448# CONFIG_LOGITECH_FF is not set
1440# CONFIG_LOGIRUMBLEPAD2_FF is not set 1449# CONFIG_LOGIRUMBLEPAD2_FF is not set
1450# CONFIG_LOGIG940_FF is not set
1441CONFIG_HID_MICROSOFT=y 1451CONFIG_HID_MICROSOFT=y
1452# CONFIG_HID_MOSART is not set
1442CONFIG_HID_MONTEREY=y 1453CONFIG_HID_MONTEREY=y
1443# CONFIG_HID_NTRIG is not set 1454# CONFIG_HID_NTRIG is not set
1455# CONFIG_HID_ORTEK is not set
1444CONFIG_HID_PANTHERLORD=y 1456CONFIG_HID_PANTHERLORD=y
1445# CONFIG_PANTHERLORD_FF is not set 1457# CONFIG_PANTHERLORD_FF is not set
1446CONFIG_HID_PETALYNX=y 1458CONFIG_HID_PETALYNX=y
1459# CONFIG_HID_QUANTA is not set
1447CONFIG_HID_SAMSUNG=y 1460CONFIG_HID_SAMSUNG=y
1448CONFIG_HID_SONY=y 1461CONFIG_HID_SONY=y
1462# CONFIG_HID_STANTUM is not set
1449CONFIG_HID_SUNPLUS=y 1463CONFIG_HID_SUNPLUS=y
1450# CONFIG_HID_GREENASIA is not set 1464# CONFIG_HID_GREENASIA is not set
1451# CONFIG_HID_SMARTJOYPLUS is not set 1465# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1552,7 +1566,6 @@ CONFIG_USB_STORAGE=y
1552# CONFIG_USB_RIO500 is not set 1566# CONFIG_USB_RIO500 is not set
1553# CONFIG_USB_LEGOTOWER is not set 1567# CONFIG_USB_LEGOTOWER is not set
1554# CONFIG_USB_LCD is not set 1568# CONFIG_USB_LCD is not set
1555# CONFIG_USB_BERRY_CHARGE is not set
1556# CONFIG_USB_LED is not set 1569# CONFIG_USB_LED is not set
1557# CONFIG_USB_CYPRESS_CY7C63 is not set 1570# CONFIG_USB_CYPRESS_CY7C63 is not set
1558# CONFIG_USB_CYTHERM is not set 1571# CONFIG_USB_CYTHERM is not set
@@ -1565,7 +1578,6 @@ CONFIG_USB_STORAGE=y
1565# CONFIG_USB_IOWARRIOR is not set 1578# CONFIG_USB_IOWARRIOR is not set
1566# CONFIG_USB_TEST is not set 1579# CONFIG_USB_TEST is not set
1567# CONFIG_USB_ISIGHTFW is not set 1580# CONFIG_USB_ISIGHTFW is not set
1568# CONFIG_USB_VST is not set
1569# CONFIG_USB_ATM is not set 1581# CONFIG_USB_ATM is not set
1570# CONFIG_USB_GADGET is not set 1582# CONFIG_USB_GADGET is not set
1571 1583
@@ -1650,29 +1662,29 @@ CONFIG_RTC_DRV_RX8581=y
1650CONFIG_STAGING=y 1662CONFIG_STAGING=y
1651# CONFIG_STAGING_EXCLUDE_BUILD is not set 1663# CONFIG_STAGING_EXCLUDE_BUILD is not set
1652# CONFIG_ET131X is not set 1664# CONFIG_ET131X is not set
1653# CONFIG_ME4000 is not set
1654# CONFIG_MEILHAUS is not set
1655# CONFIG_USB_IP_COMMON is not set 1665# CONFIG_USB_IP_COMMON is not set
1666# CONFIG_PRISM2_USB is not set
1656# CONFIG_ECHO is not set 1667# CONFIG_ECHO is not set
1657# CONFIG_COMEDI is not set 1668# CONFIG_COMEDI is not set
1658# CONFIG_ASUS_OLED is not set 1669# CONFIG_ASUS_OLED is not set
1659# CONFIG_ALTERA_PCIE_CHDMA is not set 1670# CONFIG_R8187SE is not set
1660# CONFIG_INPUT_MIMIO is not set 1671# CONFIG_RTL8192SU is not set
1672# CONFIG_RTL8192U is not set
1673# CONFIG_RTL8192E is not set
1661# CONFIG_TRANZPORT is not set 1674# CONFIG_TRANZPORT is not set
1662 1675
1663# 1676#
1664# Android 1677# Qualcomm MSM Camera And Video
1678#
1679
1680#
1681# Camera Sensor Selection
1665# 1682#
1666# CONFIG_ANDROID is not set 1683# CONFIG_INPUT_GPIO is not set
1667# CONFIG_DST is not set
1668# CONFIG_POHMELFS is not set 1684# CONFIG_POHMELFS is not set
1669# CONFIG_B3DFG is not set
1670# CONFIG_IDE_PHISON is not set 1685# CONFIG_IDE_PHISON is not set
1671# CONFIG_PLAN9AUTH is not set
1672# CONFIG_HECI is not set
1673# CONFIG_VT6655 is not set 1686# CONFIG_VT6655 is not set
1674# CONFIG_USB_CPC is not set 1687# CONFIG_VT6656 is not set
1675# CONFIG_RDC_17F3101X is not set
1676CONFIG_VME_BUS=y 1688CONFIG_VME_BUS=y
1677 1689
1678# 1690#
@@ -1687,6 +1699,22 @@ CONFIG_VME_TSI148=y
1687# CONFIG_VME_USER is not set 1699# CONFIG_VME_USER is not set
1688 1700
1689# 1701#
1702# VME Board Drivers
1703#
1704# CONFIG_VMIVME_7805 is not set
1705
1706#
1707# RAR Register Driver
1708#
1709# CONFIG_RAR_REGISTER is not set
1710# CONFIG_IIO is not set
1711# CONFIG_RAMZSWAP is not set
1712# CONFIG_BATMAN_ADV is not set
1713# CONFIG_STRIP is not set
1714# CONFIG_DT3155 is not set
1715# CONFIG_CRYSTALHD is not set
1716
1717#
1690# File systems 1718# File systems
1691# 1719#
1692CONFIG_EXT2_FS=y 1720CONFIG_EXT2_FS=y
@@ -1772,6 +1800,7 @@ CONFIG_JFFS2_ZLIB=y
1772# CONFIG_JFFS2_LZO is not set 1800# CONFIG_JFFS2_LZO is not set
1773CONFIG_JFFS2_RTIME=y 1801CONFIG_JFFS2_RTIME=y
1774# CONFIG_JFFS2_RUBIN is not set 1802# CONFIG_JFFS2_RUBIN is not set
1803# CONFIG_LOGFS is not set
1775# CONFIG_CRAMFS is not set 1804# CONFIG_CRAMFS is not set
1776# CONFIG_SQUASHFS is not set 1805# CONFIG_SQUASHFS is not set
1777# CONFIG_VXFS_FS is not set 1806# CONFIG_VXFS_FS is not set
@@ -1798,6 +1827,7 @@ CONFIG_SUNRPC_GSS=y
1798CONFIG_RPCSEC_GSS_KRB5=y 1827CONFIG_RPCSEC_GSS_KRB5=y
1799# CONFIG_RPCSEC_GSS_SPKM3 is not set 1828# CONFIG_RPCSEC_GSS_SPKM3 is not set
1800# CONFIG_SMB_FS is not set 1829# CONFIG_SMB_FS is not set
1830# CONFIG_CEPH_FS is not set
1801CONFIG_CIFS=m 1831CONFIG_CIFS=m
1802# CONFIG_CIFS_STATS is not set 1832# CONFIG_CIFS_STATS is not set
1803# CONFIG_CIFS_WEAK_PW_HASH is not set 1833# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1870,7 +1900,7 @@ CONFIG_CRC32=y
1870# CONFIG_CRC7 is not set 1900# CONFIG_CRC7 is not set
1871CONFIG_LIBCRC32C=m 1901CONFIG_LIBCRC32C=m
1872CONFIG_ZLIB_INFLATE=y 1902CONFIG_ZLIB_INFLATE=y
1873CONFIG_ZLIB_DEFLATE=m 1903CONFIG_ZLIB_DEFLATE=y
1874CONFIG_DECOMPRESS_GZIP=y 1904CONFIG_DECOMPRESS_GZIP=y
1875CONFIG_HAS_IOMEM=y 1905CONFIG_HAS_IOMEM=y
1876CONFIG_HAS_IOPORT=y 1906CONFIG_HAS_IOPORT=y
@@ -2006,6 +2036,7 @@ CONFIG_CRYPTO_MANAGER=y
2006CONFIG_CRYPTO_MANAGER2=y 2036CONFIG_CRYPTO_MANAGER2=y
2007# CONFIG_CRYPTO_GF128MUL is not set 2037# CONFIG_CRYPTO_GF128MUL is not set
2008CONFIG_CRYPTO_NULL=m 2038CONFIG_CRYPTO_NULL=m
2039# CONFIG_CRYPTO_PCRYPT is not set
2009CONFIG_CRYPTO_WORKQUEUE=y 2040CONFIG_CRYPTO_WORKQUEUE=y
2010# CONFIG_CRYPTO_CRYPTD is not set 2041# CONFIG_CRYPTO_CRYPTD is not set
2011CONFIG_CRYPTO_AUTHENC=m 2042CONFIG_CRYPTO_AUTHENC=m
diff --git a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig b/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig
index aab3baebab8c..4e8b01e73245 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:39 2010 4# Mon Apr 19 23:17:03 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -97,14 +97,8 @@ CONFIG_RCU_FANOUT=32
97CONFIG_IKCONFIG=y 97CONFIG_IKCONFIG=y
98CONFIG_IKCONFIG_PROC=y 98CONFIG_IKCONFIG_PROC=y
99CONFIG_LOG_BUF_SHIFT=14 99CONFIG_LOG_BUF_SHIFT=14
100CONFIG_GROUP_SCHED=y
101# CONFIG_FAIR_GROUP_SCHED is not set
102# CONFIG_RT_GROUP_SCHED is not set
103CONFIG_USER_SCHED=y
104# CONFIG_CGROUP_SCHED is not set
105# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
106CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
107CONFIG_SYSFS_DEPRECATED_V2=y
108# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
109# CONFIG_NAMESPACES is not set 103# CONFIG_NAMESPACES is not set
110CONFIG_BLK_DEV_INITRD=y 104CONFIG_BLK_DEV_INITRD=y
@@ -112,6 +106,7 @@ CONFIG_INITRAMFS_SOURCE=""
112CONFIG_RD_GZIP=y 106CONFIG_RD_GZIP=y
113# CONFIG_RD_BZIP2 is not set 107# CONFIG_RD_BZIP2 is not set
114# CONFIG_RD_LZMA is not set 108# CONFIG_RD_LZMA is not set
109# CONFIG_RD_LZO is not set
115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 110# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
116CONFIG_SYSCTL=y 111CONFIG_SYSCTL=y
117CONFIG_ANON_INODES=y 112CONFIG_ANON_INODES=y
@@ -320,6 +315,7 @@ CONFIG_ISA_DMA_API=y
320# Bus options 315# Bus options
321# 316#
322CONFIG_ZONE_DMA=y 317CONFIG_ZONE_DMA=y
318# CONFIG_NEED_DMA_MAP_STATE is not set
323CONFIG_GENERIC_ISA_DMA=y 319CONFIG_GENERIC_ISA_DMA=y
324CONFIG_PPC_INDIRECT_PCI=y 320CONFIG_PPC_INDIRECT_PCI=y
325CONFIG_FSL_SOC=y 321CONFIG_FSL_SOC=y
@@ -335,7 +331,6 @@ CONFIG_PCIEAER=y
335# CONFIG_PCIEASPM is not set 331# CONFIG_PCIEASPM is not set
336CONFIG_ARCH_SUPPORTS_MSI=y 332CONFIG_ARCH_SUPPORTS_MSI=y
337# CONFIG_PCI_MSI is not set 333# CONFIG_PCI_MSI is not set
338# CONFIG_PCI_LEGACY is not set
339CONFIG_PCI_DEBUG=y 334CONFIG_PCI_DEBUG=y
340# CONFIG_PCI_STUB is not set 335# CONFIG_PCI_STUB is not set
341# CONFIG_PCI_IOV is not set 336# CONFIG_PCI_IOV is not set
@@ -362,7 +357,6 @@ CONFIG_NET=y
362# Networking options 357# Networking options
363# 358#
364CONFIG_PACKET=y 359CONFIG_PACKET=y
365# CONFIG_PACKET_MMAP is not set
366CONFIG_UNIX=y 360CONFIG_UNIX=y
367CONFIG_XFRM=y 361CONFIG_XFRM=y
368CONFIG_XFRM_USER=y 362CONFIG_XFRM_USER=y
@@ -571,6 +565,8 @@ CONFIG_MTD_NAND_FSL_ELBC=y
571# UBI - Unsorted block images 565# UBI - Unsorted block images
572# 566#
573# CONFIG_MTD_UBI is not set 567# CONFIG_MTD_UBI is not set
568CONFIG_OF_FLATTREE=y
569CONFIG_OF_DYNAMIC=y
574CONFIG_OF_DEVICE=y 570CONFIG_OF_DEVICE=y
575CONFIG_OF_I2C=y 571CONFIG_OF_I2C=y
576# CONFIG_PARPORT is not set 572# CONFIG_PARPORT is not set
@@ -605,6 +601,7 @@ CONFIG_MISC_DEVICES=y
605# CONFIG_ENCLOSURE_SERVICES is not set 601# CONFIG_ENCLOSURE_SERVICES is not set
606# CONFIG_HP_ILO is not set 602# CONFIG_HP_ILO is not set
607# CONFIG_ISL29003 is not set 603# CONFIG_ISL29003 is not set
604# CONFIG_SENSORS_TSL2550 is not set
608# CONFIG_DS1682 is not set 605# CONFIG_DS1682 is not set
609# CONFIG_C2PORT is not set 606# CONFIG_C2PORT is not set
610 607
@@ -670,6 +667,7 @@ CONFIG_IDE_PROC_FS=y
670# 667#
671# SCSI device support 668# SCSI device support
672# 669#
670CONFIG_SCSI_MOD=y
673# CONFIG_RAID_ATTRS is not set 671# CONFIG_RAID_ATTRS is not set
674CONFIG_SCSI=y 672CONFIG_SCSI=y
675CONFIG_SCSI_DMA=y 673CONFIG_SCSI_DMA=y
@@ -792,6 +790,7 @@ CONFIG_PATA_ALI=y
792# CONFIG_PATA_IT821X is not set 790# CONFIG_PATA_IT821X is not set
793# CONFIG_PATA_IT8213 is not set 791# CONFIG_PATA_IT8213 is not set
794# CONFIG_PATA_JMICRON is not set 792# CONFIG_PATA_JMICRON is not set
793# CONFIG_PATA_LEGACY is not set
795# CONFIG_PATA_TRIFLEX is not set 794# CONFIG_PATA_TRIFLEX is not set
796# CONFIG_PATA_MARVELL is not set 795# CONFIG_PATA_MARVELL is not set
797# CONFIG_PATA_MPIIX is not set 796# CONFIG_PATA_MPIIX is not set
@@ -970,6 +969,7 @@ CONFIG_SERIAL_CORE=y
970CONFIG_SERIAL_CORE_CONSOLE=y 969CONFIG_SERIAL_CORE_CONSOLE=y
971# CONFIG_SERIAL_JSM is not set 970# CONFIG_SERIAL_JSM is not set
972# CONFIG_SERIAL_OF_PLATFORM is not set 971# CONFIG_SERIAL_OF_PLATFORM is not set
972# CONFIG_SERIAL_TIMBERDALE is not set
973# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 973# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
974CONFIG_UNIX98_PTYS=y 974CONFIG_UNIX98_PTYS=y
975# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 975# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1017,6 +1017,7 @@ CONFIG_I2C_HELPER_AUTO=y
1017CONFIG_I2C_MPC=y 1017CONFIG_I2C_MPC=y
1018# CONFIG_I2C_OCORES is not set 1018# CONFIG_I2C_OCORES is not set
1019# CONFIG_I2C_SIMTEC is not set 1019# CONFIG_I2C_SIMTEC is not set
1020# CONFIG_I2C_XILINX is not set
1020 1021
1021# 1022#
1022# External I2C/SMBus adapter drivers 1023# External I2C/SMBus adapter drivers
@@ -1029,15 +1030,9 @@ CONFIG_I2C_MPC=y
1029# 1030#
1030# CONFIG_I2C_PCA_PLATFORM is not set 1031# CONFIG_I2C_PCA_PLATFORM is not set
1031# CONFIG_I2C_STUB is not set 1032# CONFIG_I2C_STUB is not set
1032
1033#
1034# Miscellaneous I2C Chip support
1035#
1036# CONFIG_SENSORS_TSL2550 is not set
1037# CONFIG_I2C_DEBUG_CORE is not set 1033# CONFIG_I2C_DEBUG_CORE is not set
1038# CONFIG_I2C_DEBUG_ALGO is not set 1034# CONFIG_I2C_DEBUG_ALGO is not set
1039# CONFIG_I2C_DEBUG_BUS is not set 1035# CONFIG_I2C_DEBUG_BUS is not set
1040# CONFIG_I2C_DEBUG_CHIP is not set
1041# CONFIG_SPI is not set 1036# CONFIG_SPI is not set
1042 1037
1043# 1038#
@@ -1062,18 +1057,21 @@ CONFIG_SSB_POSSIBLE=y
1062# Multifunction device drivers 1057# Multifunction device drivers
1063# 1058#
1064# CONFIG_MFD_CORE is not set 1059# CONFIG_MFD_CORE is not set
1060# CONFIG_MFD_88PM860X is not set
1065# CONFIG_MFD_SM501 is not set 1061# CONFIG_MFD_SM501 is not set
1066# CONFIG_HTC_PASIC3 is not set 1062# CONFIG_HTC_PASIC3 is not set
1067# CONFIG_TWL4030_CORE is not set 1063# CONFIG_TWL4030_CORE is not set
1068# CONFIG_MFD_TMIO is not set 1064# CONFIG_MFD_TMIO is not set
1069# CONFIG_PMIC_DA903X is not set 1065# CONFIG_PMIC_DA903X is not set
1070# CONFIG_PMIC_ADP5520 is not set 1066# CONFIG_PMIC_ADP5520 is not set
1067# CONFIG_MFD_MAX8925 is not set
1071# CONFIG_MFD_WM8400 is not set 1068# CONFIG_MFD_WM8400 is not set
1072# CONFIG_MFD_WM831X is not set 1069# CONFIG_MFD_WM831X is not set
1073# CONFIG_MFD_WM8350_I2C is not set 1070# CONFIG_MFD_WM8350_I2C is not set
1071# CONFIG_MFD_WM8994 is not set
1074# CONFIG_MFD_PCF50633 is not set 1072# CONFIG_MFD_PCF50633 is not set
1075# CONFIG_AB3100_CORE is not set 1073# CONFIG_AB3100_CORE is not set
1076# CONFIG_MFD_88PM8607 is not set 1074# CONFIG_LPC_SCH is not set
1077# CONFIG_REGULATOR is not set 1075# CONFIG_REGULATOR is not set
1078# CONFIG_MEDIA_SUPPORT is not set 1076# CONFIG_MEDIA_SUPPORT is not set
1079 1077
@@ -1082,6 +1080,7 @@ CONFIG_SSB_POSSIBLE=y
1082# 1080#
1083# CONFIG_AGP is not set 1081# CONFIG_AGP is not set
1084CONFIG_VGA_ARB=y 1082CONFIG_VGA_ARB=y
1083CONFIG_VGA_ARB_MAX_GPUS=16
1085# CONFIG_DRM is not set 1084# CONFIG_DRM is not set
1086# CONFIG_VGASTATE is not set 1085# CONFIG_VGASTATE is not set
1087CONFIG_VIDEO_OUTPUT_CONTROL=y 1086CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1434,6 +1433,7 @@ CONFIG_MISC_FILESYSTEMS=y
1434# CONFIG_BFS_FS is not set 1433# CONFIG_BFS_FS is not set
1435# CONFIG_EFS_FS is not set 1434# CONFIG_EFS_FS is not set
1436# CONFIG_JFFS2_FS is not set 1435# CONFIG_JFFS2_FS is not set
1436# CONFIG_LOGFS is not set
1437# CONFIG_CRAMFS is not set 1437# CONFIG_CRAMFS is not set
1438# CONFIG_SQUASHFS is not set 1438# CONFIG_SQUASHFS is not set
1439# CONFIG_VXFS_FS is not set 1439# CONFIG_VXFS_FS is not set
@@ -1461,6 +1461,7 @@ CONFIG_SUNRPC=y
1461# CONFIG_RPCSEC_GSS_KRB5 is not set 1461# CONFIG_RPCSEC_GSS_KRB5 is not set
1462# CONFIG_RPCSEC_GSS_SPKM3 is not set 1462# CONFIG_RPCSEC_GSS_SPKM3 is not set
1463# CONFIG_SMB_FS is not set 1463# CONFIG_SMB_FS is not set
1464# CONFIG_CEPH_FS is not set
1464# CONFIG_CIFS is not set 1465# CONFIG_CIFS is not set
1465# CONFIG_NCP_FS is not set 1466# CONFIG_NCP_FS is not set
1466# CONFIG_CODA_FS is not set 1467# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig b/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig
index 727a8c8d15b5..20fde6374aad 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:40 2010 4# Mon Apr 19 23:17:04 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -97,18 +97,13 @@ CONFIG_TREE_RCU=y
97# CONFIG_RCU_TRACE is not set 97# CONFIG_RCU_TRACE is not set
98CONFIG_RCU_FANOUT=32 98CONFIG_RCU_FANOUT=32
99# CONFIG_RCU_FANOUT_EXACT is not set 99# CONFIG_RCU_FANOUT_EXACT is not set
100# CONFIG_RCU_FAST_NO_HZ is not set
100# CONFIG_TREE_RCU_TRACE is not set 101# CONFIG_TREE_RCU_TRACE is not set
101CONFIG_IKCONFIG=y 102CONFIG_IKCONFIG=y
102CONFIG_IKCONFIG_PROC=y 103CONFIG_IKCONFIG_PROC=y
103CONFIG_LOG_BUF_SHIFT=14 104CONFIG_LOG_BUF_SHIFT=14
104CONFIG_GROUP_SCHED=y
105# CONFIG_FAIR_GROUP_SCHED is not set
106# CONFIG_RT_GROUP_SCHED is not set
107CONFIG_USER_SCHED=y
108# CONFIG_CGROUP_SCHED is not set
109# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
110CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
111CONFIG_SYSFS_DEPRECATED_V2=y
112# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
113# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
114CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
@@ -116,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
116CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
117# CONFIG_RD_BZIP2 is not set 112# CONFIG_RD_BZIP2 is not set
118# CONFIG_RD_LZMA is not set 113# CONFIG_RD_LZMA is not set
114# CONFIG_RD_LZO is not set
119# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
120CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
121CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -326,6 +322,7 @@ CONFIG_ISA_DMA_API=y
326# Bus options 322# Bus options
327# 323#
328CONFIG_ZONE_DMA=y 324CONFIG_ZONE_DMA=y
325# CONFIG_NEED_DMA_MAP_STATE is not set
329CONFIG_GENERIC_ISA_DMA=y 326CONFIG_GENERIC_ISA_DMA=y
330CONFIG_PPC_INDIRECT_PCI=y 327CONFIG_PPC_INDIRECT_PCI=y
331CONFIG_FSL_SOC=y 328CONFIG_FSL_SOC=y
@@ -337,7 +334,6 @@ CONFIG_PCI_SYSCALL=y
337# CONFIG_PCIEPORTBUS is not set 334# CONFIG_PCIEPORTBUS is not set
338CONFIG_ARCH_SUPPORTS_MSI=y 335CONFIG_ARCH_SUPPORTS_MSI=y
339# CONFIG_PCI_MSI is not set 336# CONFIG_PCI_MSI is not set
340# CONFIG_PCI_LEGACY is not set
341# CONFIG_PCI_DEBUG is not set 337# CONFIG_PCI_DEBUG is not set
342# CONFIG_PCI_STUB is not set 338# CONFIG_PCI_STUB is not set
343# CONFIG_PCI_IOV is not set 339# CONFIG_PCI_IOV is not set
@@ -365,7 +361,6 @@ CONFIG_NET=y
365# Networking options 361# Networking options
366# 362#
367CONFIG_PACKET=y 363CONFIG_PACKET=y
368# CONFIG_PACKET_MMAP is not set
369CONFIG_UNIX=y 364CONFIG_UNIX=y
370CONFIG_XFRM=y 365CONFIG_XFRM=y
371CONFIG_XFRM_USER=y 366CONFIG_XFRM_USER=y
@@ -498,6 +493,8 @@ CONFIG_EXTRA_FIRMWARE=""
498# CONFIG_SYS_HYPERVISOR is not set 493# CONFIG_SYS_HYPERVISOR is not set
499# CONFIG_CONNECTOR is not set 494# CONFIG_CONNECTOR is not set
500# CONFIG_MTD is not set 495# CONFIG_MTD is not set
496CONFIG_OF_FLATTREE=y
497CONFIG_OF_DYNAMIC=y
501CONFIG_OF_DEVICE=y 498CONFIG_OF_DEVICE=y
502CONFIG_OF_I2C=y 499CONFIG_OF_I2C=y
503CONFIG_OF_MDIO=y 500CONFIG_OF_MDIO=y
@@ -534,6 +531,7 @@ CONFIG_MISC_DEVICES=y
534# CONFIG_ENCLOSURE_SERVICES is not set 531# CONFIG_ENCLOSURE_SERVICES is not set
535# CONFIG_HP_ILO is not set 532# CONFIG_HP_ILO is not set
536# CONFIG_ISL29003 is not set 533# CONFIG_ISL29003 is not set
534# CONFIG_SENSORS_TSL2550 is not set
537# CONFIG_DS1682 is not set 535# CONFIG_DS1682 is not set
538# CONFIG_C2PORT is not set 536# CONFIG_C2PORT is not set
539 537
@@ -551,6 +549,7 @@ CONFIG_HAVE_IDE=y
551# 549#
552# SCSI device support 550# SCSI device support
553# 551#
552CONFIG_SCSI_MOD=y
554# CONFIG_RAID_ATTRS is not set 553# CONFIG_RAID_ATTRS is not set
555CONFIG_SCSI=y 554CONFIG_SCSI=y
556CONFIG_SCSI_DMA=y 555CONFIG_SCSI_DMA=y
@@ -675,6 +674,7 @@ CONFIG_PATA_ALI=y
675# CONFIG_PATA_IT821X is not set 674# CONFIG_PATA_IT821X is not set
676# CONFIG_PATA_IT8213 is not set 675# CONFIG_PATA_IT8213 is not set
677# CONFIG_PATA_JMICRON is not set 676# CONFIG_PATA_JMICRON is not set
677# CONFIG_PATA_LEGACY is not set
678# CONFIG_PATA_TRIFLEX is not set 678# CONFIG_PATA_TRIFLEX is not set
679# CONFIG_PATA_MARVELL is not set 679# CONFIG_PATA_MARVELL is not set
680# CONFIG_PATA_MPIIX is not set 680# CONFIG_PATA_MPIIX is not set
@@ -799,6 +799,8 @@ CONFIG_NETDEV_10000=y
799# CONFIG_CHELSIO_T1 is not set 799# CONFIG_CHELSIO_T1 is not set
800CONFIG_CHELSIO_T3_DEPENDS=y 800CONFIG_CHELSIO_T3_DEPENDS=y
801# CONFIG_CHELSIO_T3 is not set 801# CONFIG_CHELSIO_T3 is not set
802CONFIG_CHELSIO_T4_DEPENDS=y
803# CONFIG_CHELSIO_T4 is not set
802# CONFIG_ENIC is not set 804# CONFIG_ENIC is not set
803# CONFIG_IXGBE is not set 805# CONFIG_IXGBE is not set
804# CONFIG_IXGB is not set 806# CONFIG_IXGB is not set
@@ -811,6 +813,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
811# CONFIG_MLX4_CORE is not set 813# CONFIG_MLX4_CORE is not set
812# CONFIG_TEHUTI is not set 814# CONFIG_TEHUTI is not set
813# CONFIG_BNX2X is not set 815# CONFIG_BNX2X is not set
816# CONFIG_QLCNIC is not set
814# CONFIG_QLGE is not set 817# CONFIG_QLGE is not set
815# CONFIG_SFC is not set 818# CONFIG_SFC is not set
816# CONFIG_BE2NET is not set 819# CONFIG_BE2NET is not set
@@ -920,6 +923,7 @@ CONFIG_SERIAL_CORE=y
920CONFIG_SERIAL_CORE_CONSOLE=y 923CONFIG_SERIAL_CORE_CONSOLE=y
921# CONFIG_SERIAL_JSM is not set 924# CONFIG_SERIAL_JSM is not set
922# CONFIG_SERIAL_OF_PLATFORM is not set 925# CONFIG_SERIAL_OF_PLATFORM is not set
926# CONFIG_SERIAL_TIMBERDALE is not set
923# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 927# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
924CONFIG_UNIX98_PTYS=y 928CONFIG_UNIX98_PTYS=y
925# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 929# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -968,6 +972,7 @@ CONFIG_I2C_HELPER_AUTO=y
968CONFIG_I2C_MPC=y 972CONFIG_I2C_MPC=y
969# CONFIG_I2C_OCORES is not set 973# CONFIG_I2C_OCORES is not set
970# CONFIG_I2C_SIMTEC is not set 974# CONFIG_I2C_SIMTEC is not set
975# CONFIG_I2C_XILINX is not set
971 976
972# 977#
973# External I2C/SMBus adapter drivers 978# External I2C/SMBus adapter drivers
@@ -981,15 +986,9 @@ CONFIG_I2C_MPC=y
981# 986#
982# CONFIG_I2C_PCA_PLATFORM is not set 987# CONFIG_I2C_PCA_PLATFORM is not set
983# CONFIG_I2C_STUB is not set 988# CONFIG_I2C_STUB is not set
984
985#
986# Miscellaneous I2C Chip support
987#
988# CONFIG_SENSORS_TSL2550 is not set
989# CONFIG_I2C_DEBUG_CORE is not set 989# CONFIG_I2C_DEBUG_CORE is not set
990# CONFIG_I2C_DEBUG_ALGO is not set 990# CONFIG_I2C_DEBUG_ALGO is not set
991# CONFIG_I2C_DEBUG_BUS is not set 991# CONFIG_I2C_DEBUG_BUS is not set
992# CONFIG_I2C_DEBUG_CHIP is not set
993# CONFIG_SPI is not set 992# CONFIG_SPI is not set
994 993
995# 994#
@@ -1014,18 +1013,21 @@ CONFIG_SSB_POSSIBLE=y
1014# Multifunction device drivers 1013# Multifunction device drivers
1015# 1014#
1016# CONFIG_MFD_CORE is not set 1015# CONFIG_MFD_CORE is not set
1016# CONFIG_MFD_88PM860X is not set
1017# CONFIG_MFD_SM501 is not set 1017# CONFIG_MFD_SM501 is not set
1018# CONFIG_HTC_PASIC3 is not set 1018# CONFIG_HTC_PASIC3 is not set
1019# CONFIG_TWL4030_CORE is not set 1019# CONFIG_TWL4030_CORE is not set
1020# CONFIG_MFD_TMIO is not set 1020# CONFIG_MFD_TMIO is not set
1021# CONFIG_PMIC_DA903X is not set 1021# CONFIG_PMIC_DA903X is not set
1022# CONFIG_PMIC_ADP5520 is not set 1022# CONFIG_PMIC_ADP5520 is not set
1023# CONFIG_MFD_MAX8925 is not set
1023# CONFIG_MFD_WM8400 is not set 1024# CONFIG_MFD_WM8400 is not set
1024# CONFIG_MFD_WM831X is not set 1025# CONFIG_MFD_WM831X is not set
1025# CONFIG_MFD_WM8350_I2C is not set 1026# CONFIG_MFD_WM8350_I2C is not set
1027# CONFIG_MFD_WM8994 is not set
1026# CONFIG_MFD_PCF50633 is not set 1028# CONFIG_MFD_PCF50633 is not set
1027# CONFIG_AB3100_CORE is not set 1029# CONFIG_AB3100_CORE is not set
1028# CONFIG_MFD_88PM8607 is not set 1030# CONFIG_LPC_SCH is not set
1029# CONFIG_REGULATOR is not set 1031# CONFIG_REGULATOR is not set
1030# CONFIG_MEDIA_SUPPORT is not set 1032# CONFIG_MEDIA_SUPPORT is not set
1031 1033
@@ -1034,6 +1036,7 @@ CONFIG_SSB_POSSIBLE=y
1034# 1036#
1035# CONFIG_AGP is not set 1037# CONFIG_AGP is not set
1036CONFIG_VGA_ARB=y 1038CONFIG_VGA_ARB=y
1039CONFIG_VGA_ARB_MAX_GPUS=16
1037# CONFIG_DRM is not set 1040# CONFIG_DRM is not set
1038# CONFIG_VGASTATE is not set 1041# CONFIG_VGASTATE is not set
1039CONFIG_VIDEO_OUTPUT_CONTROL=y 1042CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1151,6 +1154,7 @@ CONFIG_SND_INTEL8X0=y
1151CONFIG_SND_PPC=y 1154CONFIG_SND_PPC=y
1152CONFIG_SND_USB=y 1155CONFIG_SND_USB=y
1153# CONFIG_SND_USB_AUDIO is not set 1156# CONFIG_SND_USB_AUDIO is not set
1157# CONFIG_SND_USB_UA101 is not set
1154# CONFIG_SND_USB_USX2Y is not set 1158# CONFIG_SND_USB_USX2Y is not set
1155# CONFIG_SND_USB_CAIAQ is not set 1159# CONFIG_SND_USB_CAIAQ is not set
1156# CONFIG_SND_SOC is not set 1160# CONFIG_SND_SOC is not set
@@ -1170,6 +1174,7 @@ CONFIG_USB_HID=y
1170# 1174#
1171# Special HID drivers 1175# Special HID drivers
1172# 1176#
1177# CONFIG_HID_3M_PCT is not set
1173CONFIG_HID_A4TECH=y 1178CONFIG_HID_A4TECH=y
1174CONFIG_HID_APPLE=y 1179CONFIG_HID_APPLE=y
1175CONFIG_HID_BELKIN=y 1180CONFIG_HID_BELKIN=y
@@ -1185,14 +1190,19 @@ CONFIG_HID_GYRATION=y
1185CONFIG_HID_LOGITECH=y 1190CONFIG_HID_LOGITECH=y
1186# CONFIG_LOGITECH_FF is not set 1191# CONFIG_LOGITECH_FF is not set
1187# CONFIG_LOGIRUMBLEPAD2_FF is not set 1192# CONFIG_LOGIRUMBLEPAD2_FF is not set
1193# CONFIG_LOGIG940_FF is not set
1188CONFIG_HID_MICROSOFT=y 1194CONFIG_HID_MICROSOFT=y
1195# CONFIG_HID_MOSART is not set
1189CONFIG_HID_MONTEREY=y 1196CONFIG_HID_MONTEREY=y
1190# CONFIG_HID_NTRIG is not set 1197# CONFIG_HID_NTRIG is not set
1198# CONFIG_HID_ORTEK is not set
1191CONFIG_HID_PANTHERLORD=y 1199CONFIG_HID_PANTHERLORD=y
1192# CONFIG_PANTHERLORD_FF is not set 1200# CONFIG_PANTHERLORD_FF is not set
1193CONFIG_HID_PETALYNX=y 1201CONFIG_HID_PETALYNX=y
1202# CONFIG_HID_QUANTA is not set
1194CONFIG_HID_SAMSUNG=y 1203CONFIG_HID_SAMSUNG=y
1195CONFIG_HID_SONY=y 1204CONFIG_HID_SONY=y
1205# CONFIG_HID_STANTUM is not set
1196CONFIG_HID_SUNPLUS=y 1206CONFIG_HID_SUNPLUS=y
1197# CONFIG_HID_GREENASIA is not set 1207# CONFIG_HID_GREENASIA is not set
1198# CONFIG_HID_SMARTJOYPLUS is not set 1208# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1300,7 +1310,6 @@ CONFIG_USB_STORAGE=y
1300# CONFIG_USB_RIO500 is not set 1310# CONFIG_USB_RIO500 is not set
1301# CONFIG_USB_LEGOTOWER is not set 1311# CONFIG_USB_LEGOTOWER is not set
1302# CONFIG_USB_LCD is not set 1312# CONFIG_USB_LCD is not set
1303# CONFIG_USB_BERRY_CHARGE is not set
1304# CONFIG_USB_LED is not set 1313# CONFIG_USB_LED is not set
1305# CONFIG_USB_CYPRESS_CY7C63 is not set 1314# CONFIG_USB_CYPRESS_CY7C63 is not set
1306# CONFIG_USB_CYTHERM is not set 1315# CONFIG_USB_CYTHERM is not set
@@ -1313,7 +1322,6 @@ CONFIG_USB_STORAGE=y
1313# CONFIG_USB_IOWARRIOR is not set 1322# CONFIG_USB_IOWARRIOR is not set
1314# CONFIG_USB_TEST is not set 1323# CONFIG_USB_TEST is not set
1315# CONFIG_USB_ISIGHTFW is not set 1324# CONFIG_USB_ISIGHTFW is not set
1316# CONFIG_USB_VST is not set
1317# CONFIG_USB_GADGET is not set 1325# CONFIG_USB_GADGET is not set
1318 1326
1319# 1327#
@@ -1475,6 +1483,7 @@ CONFIG_BEFS_FS=m
1475# CONFIG_BEFS_DEBUG is not set 1483# CONFIG_BEFS_DEBUG is not set
1476CONFIG_BFS_FS=m 1484CONFIG_BFS_FS=m
1477CONFIG_EFS_FS=m 1485CONFIG_EFS_FS=m
1486# CONFIG_LOGFS is not set
1478CONFIG_CRAMFS=y 1487CONFIG_CRAMFS=y
1479# CONFIG_SQUASHFS is not set 1488# CONFIG_SQUASHFS is not set
1480CONFIG_VXFS_FS=m 1489CONFIG_VXFS_FS=m
@@ -1506,6 +1515,7 @@ CONFIG_SUNRPC_GSS=y
1506CONFIG_RPCSEC_GSS_KRB5=y 1515CONFIG_RPCSEC_GSS_KRB5=y
1507# CONFIG_RPCSEC_GSS_SPKM3 is not set 1516# CONFIG_RPCSEC_GSS_SPKM3 is not set
1508# CONFIG_SMB_FS is not set 1517# CONFIG_SMB_FS is not set
1518# CONFIG_CEPH_FS is not set
1509# CONFIG_CIFS is not set 1519# CONFIG_CIFS is not set
1510# CONFIG_NCP_FS is not set 1520# CONFIG_NCP_FS is not set
1511# CONFIG_CODA_FS is not set 1521# CONFIG_CODA_FS is not set
@@ -1717,6 +1727,7 @@ CONFIG_CRYPTO_MANAGER=y
1717CONFIG_CRYPTO_MANAGER2=y 1727CONFIG_CRYPTO_MANAGER2=y
1718# CONFIG_CRYPTO_GF128MUL is not set 1728# CONFIG_CRYPTO_GF128MUL is not set
1719# CONFIG_CRYPTO_NULL is not set 1729# CONFIG_CRYPTO_NULL is not set
1730# CONFIG_CRYPTO_PCRYPT is not set
1720CONFIG_CRYPTO_WORKQUEUE=y 1731CONFIG_CRYPTO_WORKQUEUE=y
1721# CONFIG_CRYPTO_CRYPTD is not set 1732# CONFIG_CRYPTO_CRYPTD is not set
1722# CONFIG_CRYPTO_AUTHENC is not set 1733# CONFIG_CRYPTO_AUTHENC is not set
diff --git a/arch/powerpc/configs/86xx/sbc8641d_defconfig b/arch/powerpc/configs/86xx/sbc8641d_defconfig
index 4fb04dd2cde3..74f714d85936 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:38 2010 4# Mon Apr 19 23:17:02 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -101,14 +101,8 @@ CONFIG_RCU_FANOUT=32
101CONFIG_IKCONFIG=y 101CONFIG_IKCONFIG=y
102CONFIG_IKCONFIG_PROC=y 102CONFIG_IKCONFIG_PROC=y
103CONFIG_LOG_BUF_SHIFT=14 103CONFIG_LOG_BUF_SHIFT=14
104CONFIG_GROUP_SCHED=y
105CONFIG_FAIR_GROUP_SCHED=y
106# CONFIG_RT_GROUP_SCHED is not set
107CONFIG_USER_SCHED=y
108# CONFIG_CGROUP_SCHED is not set
109# CONFIG_CGROUPS is not set 104# CONFIG_CGROUPS is not set
110CONFIG_SYSFS_DEPRECATED=y 105# CONFIG_SYSFS_DEPRECATED_V2 is not set
111CONFIG_SYSFS_DEPRECATED_V2=y
112CONFIG_RELAY=y 106CONFIG_RELAY=y
113# CONFIG_NAMESPACES is not set 107# CONFIG_NAMESPACES is not set
114CONFIG_BLK_DEV_INITRD=y 108CONFIG_BLK_DEV_INITRD=y
@@ -116,6 +110,7 @@ CONFIG_INITRAMFS_SOURCE=""
116CONFIG_RD_GZIP=y 110CONFIG_RD_GZIP=y
117# CONFIG_RD_BZIP2 is not set 111# CONFIG_RD_BZIP2 is not set
118# CONFIG_RD_LZMA is not set 112# CONFIG_RD_LZMA is not set
113# CONFIG_RD_LZO is not set
119# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 114# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
120CONFIG_SYSCTL=y 115CONFIG_SYSCTL=y
121CONFIG_ANON_INODES=y 116CONFIG_ANON_INODES=y
@@ -327,6 +322,7 @@ CONFIG_ISA_DMA_API=y
327# Bus options 322# Bus options
328# 323#
329CONFIG_ZONE_DMA=y 324CONFIG_ZONE_DMA=y
325# CONFIG_NEED_DMA_MAP_STATE is not set
330CONFIG_GENERIC_ISA_DMA=y 326CONFIG_GENERIC_ISA_DMA=y
331CONFIG_PPC_INDIRECT_PCI=y 327CONFIG_PPC_INDIRECT_PCI=y
332CONFIG_FSL_SOC=y 328CONFIG_FSL_SOC=y
@@ -342,7 +338,6 @@ CONFIG_PCIEAER=y
342# CONFIG_PCIEASPM is not set 338# CONFIG_PCIEASPM is not set
343CONFIG_ARCH_SUPPORTS_MSI=y 339CONFIG_ARCH_SUPPORTS_MSI=y
344# CONFIG_PCI_MSI is not set 340# CONFIG_PCI_MSI is not set
345# CONFIG_PCI_LEGACY is not set
346# CONFIG_PCI_DEBUG is not set 341# CONFIG_PCI_DEBUG is not set
347# CONFIG_PCI_STUB is not set 342# CONFIG_PCI_STUB is not set
348# CONFIG_PCI_IOV is not set 343# CONFIG_PCI_IOV is not set
@@ -369,7 +364,6 @@ CONFIG_NET=y
369# Networking options 364# Networking options
370# 365#
371CONFIG_PACKET=y 366CONFIG_PACKET=y
372CONFIG_PACKET_MMAP=y
373CONFIG_UNIX=y 367CONFIG_UNIX=y
374CONFIG_XFRM=y 368CONFIG_XFRM=y
375CONFIG_XFRM_USER=m 369CONFIG_XFRM_USER=m
@@ -552,6 +546,7 @@ CONFIG_ATM_BR2684=m
552# CONFIG_ATM_BR2684_IPFILTER is not set 546# CONFIG_ATM_BR2684_IPFILTER is not set
553CONFIG_STP=m 547CONFIG_STP=m
554CONFIG_BRIDGE=m 548CONFIG_BRIDGE=m
549CONFIG_BRIDGE_IGMP_SNOOPING=y
555# CONFIG_NET_DSA is not set 550# CONFIG_NET_DSA is not set
556CONFIG_VLAN_8021Q=m 551CONFIG_VLAN_8021Q=m
557# CONFIG_VLAN_8021Q_GVRP is not set 552# CONFIG_VLAN_8021Q_GVRP is not set
@@ -733,6 +728,8 @@ CONFIG_MTD_PHYSMAP_OF=y
733# UBI - Unsorted block images 728# UBI - Unsorted block images
734# 729#
735# CONFIG_MTD_UBI is not set 730# CONFIG_MTD_UBI is not set
731CONFIG_OF_FLATTREE=y
732CONFIG_OF_DYNAMIC=y
736CONFIG_OF_DEVICE=y 733CONFIG_OF_DEVICE=y
737CONFIG_OF_I2C=y 734CONFIG_OF_I2C=y
738CONFIG_OF_MDIO=y 735CONFIG_OF_MDIO=y
@@ -768,6 +765,7 @@ CONFIG_MISC_DEVICES=y
768# CONFIG_ENCLOSURE_SERVICES is not set 765# CONFIG_ENCLOSURE_SERVICES is not set
769# CONFIG_HP_ILO is not set 766# CONFIG_HP_ILO is not set
770# CONFIG_ISL29003 is not set 767# CONFIG_ISL29003 is not set
768# CONFIG_SENSORS_TSL2550 is not set
771# CONFIG_DS1682 is not set 769# CONFIG_DS1682 is not set
772# CONFIG_C2PORT is not set 770# CONFIG_C2PORT is not set
773 771
@@ -785,6 +783,7 @@ CONFIG_HAVE_IDE=y
785# 783#
786# SCSI device support 784# SCSI device support
787# 785#
786CONFIG_SCSI_MOD=y
788# CONFIG_RAID_ATTRS is not set 787# CONFIG_RAID_ATTRS is not set
789# CONFIG_SCSI is not set 788# CONFIG_SCSI is not set
790# CONFIG_SCSI_DMA is not set 789# CONFIG_SCSI_DMA is not set
@@ -1024,6 +1023,7 @@ CONFIG_SERIAL_CORE=y
1024CONFIG_SERIAL_CORE_CONSOLE=y 1023CONFIG_SERIAL_CORE_CONSOLE=y
1025# CONFIG_SERIAL_JSM is not set 1024# CONFIG_SERIAL_JSM is not set
1026# CONFIG_SERIAL_OF_PLATFORM is not set 1025# CONFIG_SERIAL_OF_PLATFORM is not set
1026# CONFIG_SERIAL_TIMBERDALE is not set
1027# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1027# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1028CONFIG_UNIX98_PTYS=y 1028CONFIG_UNIX98_PTYS=y
1029# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1029# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1074,6 +1074,7 @@ CONFIG_I2C_HELPER_AUTO=y
1074CONFIG_I2C_MPC=y 1074CONFIG_I2C_MPC=y
1075# CONFIG_I2C_OCORES is not set 1075# CONFIG_I2C_OCORES is not set
1076# CONFIG_I2C_SIMTEC is not set 1076# CONFIG_I2C_SIMTEC is not set
1077# CONFIG_I2C_XILINX is not set
1077 1078
1078# 1079#
1079# External I2C/SMBus adapter drivers 1080# External I2C/SMBus adapter drivers
@@ -1086,15 +1087,9 @@ CONFIG_I2C_MPC=y
1086# 1087#
1087# CONFIG_I2C_PCA_PLATFORM is not set 1088# CONFIG_I2C_PCA_PLATFORM is not set
1088# CONFIG_I2C_STUB is not set 1089# CONFIG_I2C_STUB is not set
1089
1090#
1091# Miscellaneous I2C Chip support
1092#
1093# CONFIG_SENSORS_TSL2550 is not set
1094# CONFIG_I2C_DEBUG_CORE is not set 1090# CONFIG_I2C_DEBUG_CORE is not set
1095# CONFIG_I2C_DEBUG_ALGO is not set 1091# CONFIG_I2C_DEBUG_ALGO is not set
1096# CONFIG_I2C_DEBUG_BUS is not set 1092# CONFIG_I2C_DEBUG_BUS is not set
1097# CONFIG_I2C_DEBUG_CHIP is not set
1098# CONFIG_SPI is not set 1093# CONFIG_SPI is not set
1099 1094
1100# 1095#
@@ -1120,10 +1115,11 @@ CONFIG_HWMON=y
1120# CONFIG_SENSORS_ADM1029 is not set 1115# CONFIG_SENSORS_ADM1029 is not set
1121# CONFIG_SENSORS_ADM1031 is not set 1116# CONFIG_SENSORS_ADM1031 is not set
1122# CONFIG_SENSORS_ADM9240 is not set 1117# CONFIG_SENSORS_ADM9240 is not set
1118# CONFIG_SENSORS_ADT7411 is not set
1123# CONFIG_SENSORS_ADT7462 is not set 1119# CONFIG_SENSORS_ADT7462 is not set
1124# CONFIG_SENSORS_ADT7470 is not set 1120# CONFIG_SENSORS_ADT7470 is not set
1125# CONFIG_SENSORS_ADT7473 is not set
1126# CONFIG_SENSORS_ADT7475 is not set 1121# CONFIG_SENSORS_ADT7475 is not set
1122# CONFIG_SENSORS_ASC7621 is not set
1127# CONFIG_SENSORS_ATXP1 is not set 1123# CONFIG_SENSORS_ATXP1 is not set
1128# CONFIG_SENSORS_DS1621 is not set 1124# CONFIG_SENSORS_DS1621 is not set
1129# CONFIG_SENSORS_I5K_AMB is not set 1125# CONFIG_SENSORS_I5K_AMB is not set
@@ -1160,6 +1156,7 @@ CONFIG_HWMON=y
1160# CONFIG_SENSORS_SMSC47M192 is not set 1156# CONFIG_SENSORS_SMSC47M192 is not set
1161# CONFIG_SENSORS_SMSC47B397 is not set 1157# CONFIG_SENSORS_SMSC47B397 is not set
1162# CONFIG_SENSORS_ADS7828 is not set 1158# CONFIG_SENSORS_ADS7828 is not set
1159# CONFIG_SENSORS_AMC6821 is not set
1163# CONFIG_SENSORS_THMC50 is not set 1160# CONFIG_SENSORS_THMC50 is not set
1164# CONFIG_SENSORS_TMP401 is not set 1161# CONFIG_SENSORS_TMP401 is not set
1165# CONFIG_SENSORS_TMP421 is not set 1162# CONFIG_SENSORS_TMP421 is not set
@@ -1202,18 +1199,21 @@ CONFIG_SSB_POSSIBLE=y
1202# Multifunction device drivers 1199# Multifunction device drivers
1203# 1200#
1204# CONFIG_MFD_CORE is not set 1201# CONFIG_MFD_CORE is not set
1202# CONFIG_MFD_88PM860X is not set
1205# CONFIG_MFD_SM501 is not set 1203# CONFIG_MFD_SM501 is not set
1206# CONFIG_HTC_PASIC3 is not set 1204# CONFIG_HTC_PASIC3 is not set
1207# CONFIG_TWL4030_CORE is not set 1205# CONFIG_TWL4030_CORE is not set
1208# CONFIG_MFD_TMIO is not set 1206# CONFIG_MFD_TMIO is not set
1209# CONFIG_PMIC_DA903X is not set 1207# CONFIG_PMIC_DA903X is not set
1210# CONFIG_PMIC_ADP5520 is not set 1208# CONFIG_PMIC_ADP5520 is not set
1209# CONFIG_MFD_MAX8925 is not set
1211# CONFIG_MFD_WM8400 is not set 1210# CONFIG_MFD_WM8400 is not set
1212# CONFIG_MFD_WM831X is not set 1211# CONFIG_MFD_WM831X is not set
1213# CONFIG_MFD_WM8350_I2C is not set 1212# CONFIG_MFD_WM8350_I2C is not set
1213# CONFIG_MFD_WM8994 is not set
1214# CONFIG_MFD_PCF50633 is not set 1214# CONFIG_MFD_PCF50633 is not set
1215# CONFIG_AB3100_CORE is not set 1215# CONFIG_AB3100_CORE is not set
1216# CONFIG_MFD_88PM8607 is not set 1216# CONFIG_LPC_SCH is not set
1217# CONFIG_REGULATOR is not set 1217# CONFIG_REGULATOR is not set
1218# CONFIG_MEDIA_SUPPORT is not set 1218# CONFIG_MEDIA_SUPPORT is not set
1219 1219
@@ -1222,6 +1222,7 @@ CONFIG_SSB_POSSIBLE=y
1222# 1222#
1223# CONFIG_AGP is not set 1223# CONFIG_AGP is not set
1224CONFIG_VGA_ARB=y 1224CONFIG_VGA_ARB=y
1225CONFIG_VGA_ARB_MAX_GPUS=16
1225# CONFIG_DRM is not set 1226# CONFIG_DRM is not set
1226# CONFIG_VGASTATE is not set 1227# CONFIG_VGASTATE is not set
1227CONFIG_VIDEO_OUTPUT_CONTROL=m 1228CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1376,6 +1377,7 @@ CONFIG_MISC_FILESYSTEMS=y
1376# CONFIG_BFS_FS is not set 1377# CONFIG_BFS_FS is not set
1377# CONFIG_EFS_FS is not set 1378# CONFIG_EFS_FS is not set
1378# CONFIG_JFFS2_FS is not set 1379# CONFIG_JFFS2_FS is not set
1380# CONFIG_LOGFS is not set
1379# CONFIG_CRAMFS is not set 1381# CONFIG_CRAMFS is not set
1380# CONFIG_SQUASHFS is not set 1382# CONFIG_SQUASHFS is not set
1381# CONFIG_VXFS_FS is not set 1383# CONFIG_VXFS_FS is not set
@@ -1408,6 +1410,7 @@ CONFIG_RPCSEC_GSS_KRB5=y
1408CONFIG_SMB_FS=m 1410CONFIG_SMB_FS=m
1409CONFIG_SMB_NLS_DEFAULT=y 1411CONFIG_SMB_NLS_DEFAULT=y
1410CONFIG_SMB_NLS_REMOTE="cp437" 1412CONFIG_SMB_NLS_REMOTE="cp437"
1413# CONFIG_CEPH_FS is not set
1411CONFIG_CIFS=m 1414CONFIG_CIFS=m
1412# CONFIG_CIFS_STATS is not set 1415# CONFIG_CIFS_STATS is not set
1413# CONFIG_CIFS_WEAK_PW_HASH is not set 1416# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1540,6 +1543,7 @@ CONFIG_DEBUG_INFO=y
1540# CONFIG_BACKTRACE_SELF_TEST is not set 1543# CONFIG_BACKTRACE_SELF_TEST is not set
1541# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1544# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1542# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1545# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1546# CONFIG_LKDTM is not set
1543# CONFIG_FAULT_INJECTION is not set 1547# CONFIG_FAULT_INJECTION is not set
1544# CONFIG_LATENCYTOP is not set 1548# CONFIG_LATENCYTOP is not set
1545CONFIG_SYSCTL_SYSCALL_CHECK=y 1549CONFIG_SYSCTL_SYSCALL_CHECK=y
@@ -1618,6 +1622,7 @@ CONFIG_CRYPTO_MANAGER=y
1618CONFIG_CRYPTO_MANAGER2=y 1622CONFIG_CRYPTO_MANAGER2=y
1619# CONFIG_CRYPTO_GF128MUL is not set 1623# CONFIG_CRYPTO_GF128MUL is not set
1620CONFIG_CRYPTO_NULL=m 1624CONFIG_CRYPTO_NULL=m
1625# CONFIG_CRYPTO_PCRYPT is not set
1621CONFIG_CRYPTO_WORKQUEUE=y 1626CONFIG_CRYPTO_WORKQUEUE=y
1622# CONFIG_CRYPTO_CRYPTD is not set 1627# CONFIG_CRYPTO_CRYPTD is not set
1623CONFIG_CRYPTO_AUTHENC=m 1628CONFIG_CRYPTO_AUTHENC=m
diff --git a/arch/powerpc/configs/adder875_defconfig b/arch/powerpc/configs/adder875_defconfig
index 5c1dc768bbd8..a670cee255b9 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:23:58 2010 4# Mon Apr 19 23:16:22 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -91,14 +91,8 @@ CONFIG_RCU_FANOUT=32
91# CONFIG_TREE_RCU_TRACE is not set 91# CONFIG_TREE_RCU_TRACE is not set
92# CONFIG_IKCONFIG is not set 92# CONFIG_IKCONFIG is not set
93CONFIG_LOG_BUF_SHIFT=14 93CONFIG_LOG_BUF_SHIFT=14
94CONFIG_GROUP_SCHED=y
95CONFIG_FAIR_GROUP_SCHED=y
96# CONFIG_RT_GROUP_SCHED is not set
97CONFIG_USER_SCHED=y
98# CONFIG_CGROUP_SCHED is not set
99# CONFIG_CGROUPS is not set 94# CONFIG_CGROUPS is not set
100CONFIG_SYSFS_DEPRECATED=y 95# CONFIG_SYSFS_DEPRECATED_V2 is not set
101CONFIG_SYSFS_DEPRECATED_V2=y
102# CONFIG_RELAY is not set 96# CONFIG_RELAY is not set
103# CONFIG_NAMESPACES is not set 97# CONFIG_NAMESPACES is not set
104# CONFIG_BLK_DEV_INITRD is not set 98# CONFIG_BLK_DEV_INITRD is not set
@@ -307,6 +301,7 @@ CONFIG_ISA_DMA_API=y
307# Bus options 301# Bus options
308# 302#
309CONFIG_ZONE_DMA=y 303CONFIG_ZONE_DMA=y
304CONFIG_NEED_DMA_MAP_STATE=y
310CONFIG_FSL_SOC=y 305CONFIG_FSL_SOC=y
311# CONFIG_PCI is not set 306# CONFIG_PCI is not set
312# CONFIG_PCI_DOMAINS is not set 307# CONFIG_PCI_DOMAINS is not set
@@ -336,7 +331,6 @@ CONFIG_NET=y
336# Networking options 331# Networking options
337# 332#
338CONFIG_PACKET=y 333CONFIG_PACKET=y
339# CONFIG_PACKET_MMAP is not set
340CONFIG_UNIX=y 334CONFIG_UNIX=y
341# CONFIG_NET_KEY is not set 335# CONFIG_NET_KEY is not set
342CONFIG_INET=y 336CONFIG_INET=y
@@ -505,6 +499,8 @@ CONFIG_MTD_PHYSMAP_OF=y
505# UBI - Unsorted block images 499# UBI - Unsorted block images
506# 500#
507# CONFIG_MTD_UBI is not set 501# CONFIG_MTD_UBI is not set
502CONFIG_OF_FLATTREE=y
503CONFIG_OF_DYNAMIC=y
508CONFIG_OF_DEVICE=y 504CONFIG_OF_DEVICE=y
509CONFIG_OF_MDIO=y 505CONFIG_OF_MDIO=y
510# CONFIG_PARPORT is not set 506# CONFIG_PARPORT is not set
@@ -516,6 +512,7 @@ CONFIG_HAVE_IDE=y
516# 512#
517# SCSI device support 513# SCSI device support
518# 514#
515CONFIG_SCSI_MOD=y
519# CONFIG_RAID_ATTRS is not set 516# CONFIG_RAID_ATTRS is not set
520# CONFIG_SCSI is not set 517# CONFIG_SCSI is not set
521# CONFIG_SCSI_DMA is not set 518# CONFIG_SCSI_DMA is not set
@@ -664,6 +661,7 @@ CONFIG_SERIAL_CORE=y
664CONFIG_SERIAL_CORE_CONSOLE=y 661CONFIG_SERIAL_CORE_CONSOLE=y
665CONFIG_SERIAL_CPM=y 662CONFIG_SERIAL_CPM=y
666CONFIG_SERIAL_CPM_CONSOLE=y 663CONFIG_SERIAL_CPM_CONSOLE=y
664# CONFIG_SERIAL_TIMBERDALE is not set
667# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 665# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
668CONFIG_UNIX98_PTYS=y 666CONFIG_UNIX98_PTYS=y
669# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 667# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -802,6 +800,7 @@ CONFIG_MISC_FILESYSTEMS=y
802# CONFIG_BFS_FS is not set 800# CONFIG_BFS_FS is not set
803# CONFIG_EFS_FS is not set 801# CONFIG_EFS_FS is not set
804# CONFIG_JFFS2_FS is not set 802# CONFIG_JFFS2_FS is not set
803# CONFIG_LOGFS is not set
805CONFIG_CRAMFS=y 804CONFIG_CRAMFS=y
806# CONFIG_SQUASHFS is not set 805# CONFIG_SQUASHFS is not set
807# CONFIG_VXFS_FS is not set 806# CONFIG_VXFS_FS is not set
@@ -826,6 +825,7 @@ CONFIG_SUNRPC=y
826# CONFIG_RPCSEC_GSS_KRB5 is not set 825# CONFIG_RPCSEC_GSS_KRB5 is not set
827# CONFIG_RPCSEC_GSS_SPKM3 is not set 826# CONFIG_RPCSEC_GSS_SPKM3 is not set
828# CONFIG_SMB_FS is not set 827# CONFIG_SMB_FS is not set
828# CONFIG_CEPH_FS is not set
829# CONFIG_CIFS is not set 829# CONFIG_CIFS is not set
830# CONFIG_NCP_FS is not set 830# CONFIG_NCP_FS is not set
831# CONFIG_CODA_FS is not set 831# CONFIG_CODA_FS is not set
@@ -924,6 +924,7 @@ CONFIG_DEBUG_INFO=y
924# CONFIG_BACKTRACE_SELF_TEST is not set 924# CONFIG_BACKTRACE_SELF_TEST is not set
925# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 925# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
926# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 926# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
927# CONFIG_LKDTM is not set
927# CONFIG_FAULT_INJECTION is not set 928# CONFIG_FAULT_INJECTION is not set
928# CONFIG_LATENCYTOP is not set 929# CONFIG_LATENCYTOP is not set
929# CONFIG_SYSCTL_SYSCALL_CHECK is not set 930# CONFIG_SYSCTL_SYSCALL_CHECK is not set
diff --git a/arch/powerpc/configs/amigaone_defconfig b/arch/powerpc/configs/amigaone_defconfig
index b63cc38df6b1..851287e78fc3 100644
--- a/arch/powerpc/configs/amigaone_defconfig
+++ b/arch/powerpc/configs/amigaone_defconfig
@@ -87,8 +87,7 @@ CONFIG_IKCONFIG_PROC=y
87CONFIG_LOG_BUF_SHIFT=15 87CONFIG_LOG_BUF_SHIFT=15
88# CONFIG_GROUP_SCHED is not set 88# CONFIG_GROUP_SCHED is not set
89# CONFIG_CGROUPS is not set 89# CONFIG_CGROUPS is not set
90CONFIG_SYSFS_DEPRECATED=y 90# CONFIG_SYSFS_DEPRECATED_V2 is not set
91CONFIG_SYSFS_DEPRECATED_V2=y
92# CONFIG_RELAY is not set 91# CONFIG_RELAY is not set
93CONFIG_NAMESPACES=y 92CONFIG_NAMESPACES=y
94# CONFIG_UTS_NS is not set 93# CONFIG_UTS_NS is not set
diff --git a/arch/powerpc/configs/c2k_defconfig b/arch/powerpc/configs/c2k_defconfig
index 72137cd881da..b429a655b541 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:23:59 2010 4# Mon Apr 19 23:16:23 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -101,14 +101,8 @@ CONFIG_RCU_FANOUT=32
101# CONFIG_TREE_RCU_TRACE is not set 101# CONFIG_TREE_RCU_TRACE is not set
102# CONFIG_IKCONFIG is not set 102# CONFIG_IKCONFIG is not set
103CONFIG_LOG_BUF_SHIFT=17 103CONFIG_LOG_BUF_SHIFT=17
104CONFIG_GROUP_SCHED=y
105CONFIG_FAIR_GROUP_SCHED=y
106# CONFIG_RT_GROUP_SCHED is not set
107CONFIG_USER_SCHED=y
108# CONFIG_CGROUP_SCHED is not set
109# CONFIG_CGROUPS is not set 104# CONFIG_CGROUPS is not set
110CONFIG_SYSFS_DEPRECATED=y 105# CONFIG_SYSFS_DEPRECATED_V2 is not set
111CONFIG_SYSFS_DEPRECATED_V2=y
112# CONFIG_RELAY is not set 106# CONFIG_RELAY is not set
113CONFIG_NAMESPACES=y 107CONFIG_NAMESPACES=y
114# CONFIG_UTS_NS is not set 108# CONFIG_UTS_NS is not set
@@ -121,6 +115,7 @@ CONFIG_INITRAMFS_SOURCE=""
121CONFIG_RD_GZIP=y 115CONFIG_RD_GZIP=y
122CONFIG_RD_BZIP2=y 116CONFIG_RD_BZIP2=y
123CONFIG_RD_LZMA=y 117CONFIG_RD_LZMA=y
118CONFIG_RD_LZO=y
124CONFIG_CC_OPTIMIZE_FOR_SIZE=y 119CONFIG_CC_OPTIMIZE_FOR_SIZE=y
125CONFIG_SYSCTL=y 120CONFIG_SYSCTL=y
126CONFIG_ANON_INODES=y 121CONFIG_ANON_INODES=y
@@ -147,7 +142,6 @@ CONFIG_HAVE_PERF_EVENTS=y
147# Kernel Performance Events And Counters 142# Kernel Performance Events And Counters
148# 143#
149CONFIG_PERF_EVENTS=y 144CONFIG_PERF_EVENTS=y
150CONFIG_EVENT_PROFILE=y
151# CONFIG_PERF_COUNTERS is not set 145# CONFIG_PERF_COUNTERS is not set
152# CONFIG_DEBUG_PERF_USE_VMALLOC is not set 146# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
153CONFIG_VM_EVENT_COUNTERS=y 147CONFIG_VM_EVENT_COUNTERS=y
@@ -158,7 +152,6 @@ CONFIG_COMPAT_BRK=y
158CONFIG_SLUB=y 152CONFIG_SLUB=y
159# CONFIG_SLOB is not set 153# CONFIG_SLOB is not set
160CONFIG_PROFILING=y 154CONFIG_PROFILING=y
161CONFIG_TRACEPOINTS=y
162CONFIG_OPROFILE=m 155CONFIG_OPROFILE=m
163CONFIG_HAVE_OPROFILE=y 156CONFIG_HAVE_OPROFILE=y
164CONFIG_KPROBES=y 157CONFIG_KPROBES=y
@@ -357,6 +350,7 @@ CONFIG_ISA_DMA_API=y
357# Bus options 350# Bus options
358# 351#
359CONFIG_ZONE_DMA=y 352CONFIG_ZONE_DMA=y
353CONFIG_NEED_DMA_MAP_STATE=y
360CONFIG_GENERIC_ISA_DMA=y 354CONFIG_GENERIC_ISA_DMA=y
361CONFIG_PPC_INDIRECT_PCI=y 355CONFIG_PPC_INDIRECT_PCI=y
362CONFIG_PCI=y 356CONFIG_PCI=y
@@ -365,7 +359,6 @@ CONFIG_PCI_SYSCALL=y
365# CONFIG_PCIEPORTBUS is not set 359# CONFIG_PCIEPORTBUS is not set
366CONFIG_ARCH_SUPPORTS_MSI=y 360CONFIG_ARCH_SUPPORTS_MSI=y
367CONFIG_PCI_MSI=y 361CONFIG_PCI_MSI=y
368# CONFIG_PCI_LEGACY is not set
369# CONFIG_PCI_DEBUG is not set 362# CONFIG_PCI_DEBUG is not set
370# CONFIG_PCI_STUB is not set 363# CONFIG_PCI_STUB is not set
371# CONFIG_PCI_IOV is not set 364# CONFIG_PCI_IOV is not set
@@ -396,7 +389,6 @@ CONFIG_NET=y
396# Networking options 389# Networking options
397# 390#
398CONFIG_PACKET=y 391CONFIG_PACKET=y
399CONFIG_PACKET_MMAP=y
400CONFIG_UNIX=y 392CONFIG_UNIX=y
401CONFIG_XFRM=y 393CONFIG_XFRM=y
402CONFIG_XFRM_USER=y 394CONFIG_XFRM_USER=y
@@ -527,6 +519,7 @@ CONFIG_IP_VS_PROTO_UDP=y
527CONFIG_IP_VS_PROTO_AH_ESP=y 519CONFIG_IP_VS_PROTO_AH_ESP=y
528CONFIG_IP_VS_PROTO_ESP=y 520CONFIG_IP_VS_PROTO_ESP=y
529CONFIG_IP_VS_PROTO_AH=y 521CONFIG_IP_VS_PROTO_AH=y
522# CONFIG_IP_VS_PROTO_SCTP is not set
530 523
531# 524#
532# IPVS scheduler 525# IPVS scheduler
@@ -630,6 +623,7 @@ CONFIG_ATM_BR2684=m
630# CONFIG_ATM_BR2684_IPFILTER is not set 623# CONFIG_ATM_BR2684_IPFILTER is not set
631CONFIG_STP=m 624CONFIG_STP=m
632CONFIG_BRIDGE=m 625CONFIG_BRIDGE=m
626CONFIG_BRIDGE_IGMP_SNOOPING=y
633# CONFIG_NET_DSA is not set 627# CONFIG_NET_DSA is not set
634CONFIG_VLAN_8021Q=m 628CONFIG_VLAN_8021Q=m
635# CONFIG_VLAN_8021Q_GVRP is not set 629# CONFIG_VLAN_8021Q_GVRP is not set
@@ -690,7 +684,6 @@ CONFIG_NET_SCH_FIFO=y
690# 684#
691# CONFIG_NET_PKTGEN is not set 685# CONFIG_NET_PKTGEN is not set
692# CONFIG_NET_TCPPROBE is not set 686# CONFIG_NET_TCPPROBE is not set
693# CONFIG_NET_DROP_MONITOR is not set
694# CONFIG_HAMRADIO is not set 687# CONFIG_HAMRADIO is not set
695# CONFIG_CAN is not set 688# CONFIG_CAN is not set
696# CONFIG_IRDA is not set 689# CONFIG_IRDA is not set
@@ -833,6 +826,8 @@ CONFIG_MTD_PHYSMAP_OF=y
833# UBI - Unsorted block images 826# UBI - Unsorted block images
834# 827#
835# CONFIG_MTD_UBI is not set 828# CONFIG_MTD_UBI is not set
829CONFIG_OF_FLATTREE=y
830CONFIG_OF_DYNAMIC=y
836CONFIG_OF_DEVICE=y 831CONFIG_OF_DEVICE=y
837CONFIG_OF_I2C=m 832CONFIG_OF_I2C=m
838CONFIG_OF_MDIO=y 833CONFIG_OF_MDIO=y
@@ -867,6 +862,7 @@ CONFIG_HAVE_IDE=y
867# 862#
868# SCSI device support 863# SCSI device support
869# 864#
865CONFIG_SCSI_MOD=m
870# CONFIG_RAID_ATTRS is not set 866# CONFIG_RAID_ATTRS is not set
871CONFIG_SCSI=m 867CONFIG_SCSI=m
872CONFIG_SCSI_DMA=y 868CONFIG_SCSI_DMA=y
@@ -1179,6 +1175,7 @@ CONFIG_SERIAL_MPSC_CONSOLE=y
1179CONFIG_SERIAL_CORE=y 1175CONFIG_SERIAL_CORE=y
1180CONFIG_SERIAL_CORE_CONSOLE=y 1176CONFIG_SERIAL_CORE_CONSOLE=y
1181# CONFIG_SERIAL_JSM is not set 1177# CONFIG_SERIAL_JSM is not set
1178# CONFIG_SERIAL_TIMBERDALE is not set
1182# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1179# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1183CONFIG_UNIX98_PTYS=y 1180CONFIG_UNIX98_PTYS=y
1184# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1181# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1231,6 +1228,7 @@ CONFIG_I2C_HELPER_AUTO=y
1231CONFIG_I2C_MV64XXX=m 1228CONFIG_I2C_MV64XXX=m
1232# CONFIG_I2C_OCORES is not set 1229# CONFIG_I2C_OCORES is not set
1233# CONFIG_I2C_SIMTEC is not set 1230# CONFIG_I2C_SIMTEC is not set
1231# CONFIG_I2C_XILINX is not set
1234 1232
1235# 1233#
1236# External I2C/SMBus adapter drivers 1234# External I2C/SMBus adapter drivers
@@ -1244,15 +1242,9 @@ CONFIG_I2C_MV64XXX=m
1244# 1242#
1245# CONFIG_I2C_PCA_PLATFORM is not set 1243# CONFIG_I2C_PCA_PLATFORM is not set
1246# CONFIG_I2C_STUB is not set 1244# CONFIG_I2C_STUB is not set
1247
1248#
1249# Miscellaneous I2C Chip support
1250#
1251# CONFIG_SENSORS_TSL2550 is not set
1252# CONFIG_I2C_DEBUG_CORE is not set 1245# CONFIG_I2C_DEBUG_CORE is not set
1253# CONFIG_I2C_DEBUG_ALGO is not set 1246# CONFIG_I2C_DEBUG_ALGO is not set
1254# CONFIG_I2C_DEBUG_BUS is not set 1247# CONFIG_I2C_DEBUG_BUS is not set
1255# CONFIG_I2C_DEBUG_CHIP is not set
1256# CONFIG_SPI is not set 1248# CONFIG_SPI is not set
1257 1249
1258# 1250#
@@ -1278,10 +1270,11 @@ CONFIG_SENSORS_ADM1026=m
1278# CONFIG_SENSORS_ADM1029 is not set 1270# CONFIG_SENSORS_ADM1029 is not set
1279CONFIG_SENSORS_ADM1031=m 1271CONFIG_SENSORS_ADM1031=m
1280# CONFIG_SENSORS_ADM9240 is not set 1272# CONFIG_SENSORS_ADM9240 is not set
1273# CONFIG_SENSORS_ADT7411 is not set
1281# CONFIG_SENSORS_ADT7462 is not set 1274# CONFIG_SENSORS_ADT7462 is not set
1282# CONFIG_SENSORS_ADT7470 is not set 1275# CONFIG_SENSORS_ADT7470 is not set
1283# CONFIG_SENSORS_ADT7473 is not set
1284# CONFIG_SENSORS_ADT7475 is not set 1276# CONFIG_SENSORS_ADT7475 is not set
1277# CONFIG_SENSORS_ASC7621 is not set
1285# CONFIG_SENSORS_ATXP1 is not set 1278# CONFIG_SENSORS_ATXP1 is not set
1286CONFIG_SENSORS_DS1621=m 1279CONFIG_SENSORS_DS1621=m
1287# CONFIG_SENSORS_I5K_AMB is not set 1280# CONFIG_SENSORS_I5K_AMB is not set
@@ -1318,6 +1311,7 @@ CONFIG_SENSORS_SMSC47M1=m
1318# CONFIG_SENSORS_SMSC47M192 is not set 1311# CONFIG_SENSORS_SMSC47M192 is not set
1319CONFIG_SENSORS_SMSC47B397=m 1312CONFIG_SENSORS_SMSC47B397=m
1320# CONFIG_SENSORS_ADS7828 is not set 1313# CONFIG_SENSORS_ADS7828 is not set
1314# CONFIG_SENSORS_AMC6821 is not set
1321# CONFIG_SENSORS_THMC50 is not set 1315# CONFIG_SENSORS_THMC50 is not set
1322# CONFIG_SENSORS_TMP401 is not set 1316# CONFIG_SENSORS_TMP401 is not set
1323# CONFIG_SENSORS_TMP421 is not set 1317# CONFIG_SENSORS_TMP421 is not set
@@ -1369,9 +1363,9 @@ CONFIG_SSB_POSSIBLE=y
1369# CONFIG_HTC_PASIC3 is not set 1363# CONFIG_HTC_PASIC3 is not set
1370# CONFIG_MFD_TMIO is not set 1364# CONFIG_MFD_TMIO is not set
1371# CONFIG_MFD_WM8400 is not set 1365# CONFIG_MFD_WM8400 is not set
1372# CONFIG_MFD_WM8350_I2C is not set 1366# CONFIG_MFD_WM8994 is not set
1373# CONFIG_MFD_PCF50633 is not set 1367# CONFIG_MFD_PCF50633 is not set
1374# CONFIG_AB3100_CORE is not set 1368# CONFIG_LPC_SCH is not set
1375# CONFIG_REGULATOR is not set 1369# CONFIG_REGULATOR is not set
1376# CONFIG_MEDIA_SUPPORT is not set 1370# CONFIG_MEDIA_SUPPORT is not set
1377 1371
@@ -1380,6 +1374,7 @@ CONFIG_SSB_POSSIBLE=y
1380# 1374#
1381# CONFIG_AGP is not set 1375# CONFIG_AGP is not set
1382CONFIG_VGA_ARB=y 1376CONFIG_VGA_ARB=y
1377CONFIG_VGA_ARB_MAX_GPUS=16
1383# CONFIG_DRM is not set 1378# CONFIG_DRM is not set
1384# CONFIG_VGASTATE is not set 1379# CONFIG_VGASTATE is not set
1385# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1380# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1413,7 +1408,6 @@ CONFIG_USB=m
1413CONFIG_USB_DEVICEFS=y 1408CONFIG_USB_DEVICEFS=y
1414# CONFIG_USB_DEVICE_CLASS is not set 1409# CONFIG_USB_DEVICE_CLASS is not set
1415# CONFIG_USB_DYNAMIC_MINORS is not set 1410# CONFIG_USB_DYNAMIC_MINORS is not set
1416CONFIG_USB_SUSPEND=y
1417# CONFIG_USB_OTG is not set 1411# CONFIG_USB_OTG is not set
1418CONFIG_USB_MON=m 1412CONFIG_USB_MON=m
1419# CONFIG_USB_WUSB is not set 1413# CONFIG_USB_WUSB is not set
@@ -1535,6 +1529,7 @@ CONFIG_USB_SERIAL_MCT_U232=m
1535# CONFIG_USB_SERIAL_NAVMAN is not set 1529# CONFIG_USB_SERIAL_NAVMAN is not set
1536CONFIG_USB_SERIAL_PL2303=m 1530CONFIG_USB_SERIAL_PL2303=m
1537# CONFIG_USB_SERIAL_OTI6858 is not set 1531# CONFIG_USB_SERIAL_OTI6858 is not set
1532# CONFIG_USB_SERIAL_QCAUX is not set
1538# CONFIG_USB_SERIAL_QUALCOMM is not set 1533# CONFIG_USB_SERIAL_QUALCOMM is not set
1539# CONFIG_USB_SERIAL_SPCP8X5 is not set 1534# CONFIG_USB_SERIAL_SPCP8X5 is not set
1540# CONFIG_USB_SERIAL_HP4X is not set 1535# CONFIG_USB_SERIAL_HP4X is not set
@@ -1549,6 +1544,7 @@ CONFIG_USB_SERIAL_XIRCOM=m
1549# CONFIG_USB_SERIAL_OPTION is not set 1544# CONFIG_USB_SERIAL_OPTION is not set
1550CONFIG_USB_SERIAL_OMNINET=m 1545CONFIG_USB_SERIAL_OMNINET=m
1551# CONFIG_USB_SERIAL_OPTICON is not set 1546# CONFIG_USB_SERIAL_OPTICON is not set
1547# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set
1552# CONFIG_USB_SERIAL_DEBUG is not set 1548# CONFIG_USB_SERIAL_DEBUG is not set
1553 1549
1554# 1550#
@@ -1561,7 +1557,6 @@ CONFIG_USB_EMI62=m
1561CONFIG_USB_RIO500=m 1557CONFIG_USB_RIO500=m
1562CONFIG_USB_LEGOTOWER=m 1558CONFIG_USB_LEGOTOWER=m
1563CONFIG_USB_LCD=m 1559CONFIG_USB_LCD=m
1564# CONFIG_USB_BERRY_CHARGE is not set
1565CONFIG_USB_LED=m 1560CONFIG_USB_LED=m
1566# CONFIG_USB_CYPRESS_CY7C63 is not set 1561# CONFIG_USB_CYPRESS_CY7C63 is not set
1567# CONFIG_USB_CYTHERM is not set 1562# CONFIG_USB_CYTHERM is not set
@@ -1574,7 +1569,6 @@ CONFIG_USB_LED=m
1574# CONFIG_USB_IOWARRIOR is not set 1569# CONFIG_USB_IOWARRIOR is not set
1575CONFIG_USB_TEST=m 1570CONFIG_USB_TEST=m
1576# CONFIG_USB_ISIGHTFW is not set 1571# CONFIG_USB_ISIGHTFW is not set
1577# CONFIG_USB_VST is not set
1578CONFIG_USB_ATM=m 1572CONFIG_USB_ATM=m
1579CONFIG_USB_SPEEDTOUCH=m 1573CONFIG_USB_SPEEDTOUCH=m
1580# CONFIG_USB_CXACRU is not set 1574# CONFIG_USB_CXACRU is not set
@@ -1611,6 +1605,7 @@ CONFIG_INFINIBAND_SRP=m
1611# CONFIG_EDAC is not set 1605# CONFIG_EDAC is not set
1612# CONFIG_RTC_CLASS is not set 1606# CONFIG_RTC_CLASS is not set
1613CONFIG_DMADEVICES=y 1607CONFIG_DMADEVICES=y
1608# CONFIG_DMADEVICES_DEBUG is not set
1614 1609
1615# 1610#
1616# DMA Devices 1611# DMA Devices
@@ -1714,6 +1709,7 @@ CONFIG_JFFS2_ZLIB=y
1714# CONFIG_JFFS2_LZO is not set 1709# CONFIG_JFFS2_LZO is not set
1715CONFIG_JFFS2_RTIME=y 1710CONFIG_JFFS2_RTIME=y
1716# CONFIG_JFFS2_RUBIN is not set 1711# CONFIG_JFFS2_RUBIN is not set
1712# CONFIG_LOGFS is not set
1717CONFIG_CRAMFS=m 1713CONFIG_CRAMFS=m
1718# CONFIG_SQUASHFS is not set 1714# CONFIG_SQUASHFS is not set
1719CONFIG_VXFS_FS=m 1715CONFIG_VXFS_FS=m
@@ -1742,6 +1738,7 @@ CONFIG_SUNRPC_XPRT_RDMA=m
1742CONFIG_RPCSEC_GSS_KRB5=y 1738CONFIG_RPCSEC_GSS_KRB5=y
1743CONFIG_RPCSEC_GSS_SPKM3=m 1739CONFIG_RPCSEC_GSS_SPKM3=m
1744# CONFIG_SMB_FS is not set 1740# CONFIG_SMB_FS is not set
1741# CONFIG_CEPH_FS is not set
1745CONFIG_CIFS=m 1742CONFIG_CIFS=m
1746# CONFIG_CIFS_STATS is not set 1743# CONFIG_CIFS_STATS is not set
1747# CONFIG_CIFS_WEAK_PW_HASH is not set 1744# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1817,7 +1814,7 @@ CONFIG_NLS_KOI8_R=m
1817CONFIG_NLS_KOI8_U=m 1814CONFIG_NLS_KOI8_U=m
1818CONFIG_NLS_UTF8=m 1815CONFIG_NLS_UTF8=m
1819# CONFIG_DLM is not set 1816# CONFIG_DLM is not set
1820CONFIG_BINARY_PRINTF=y 1817# CONFIG_BINARY_PRINTF is not set
1821 1818
1822# 1819#
1823# Library routines 1820# Library routines
@@ -1833,9 +1830,11 @@ CONFIG_CRC32=y
1833CONFIG_LIBCRC32C=m 1830CONFIG_LIBCRC32C=m
1834CONFIG_ZLIB_INFLATE=y 1831CONFIG_ZLIB_INFLATE=y
1835CONFIG_ZLIB_DEFLATE=y 1832CONFIG_ZLIB_DEFLATE=y
1833CONFIG_LZO_DECOMPRESS=y
1836CONFIG_DECOMPRESS_GZIP=y 1834CONFIG_DECOMPRESS_GZIP=y
1837CONFIG_DECOMPRESS_BZIP2=y 1835CONFIG_DECOMPRESS_BZIP2=y
1838CONFIG_DECOMPRESS_LZMA=y 1836CONFIG_DECOMPRESS_LZMA=y
1837CONFIG_DECOMPRESS_LZO=y
1839CONFIG_HAS_IOMEM=y 1838CONFIG_HAS_IOMEM=y
1840CONFIG_HAS_IOPORT=y 1839CONFIG_HAS_IOPORT=y
1841CONFIG_HAS_DMA=y 1840CONFIG_HAS_DMA=y
@@ -1880,7 +1879,6 @@ CONFIG_DEBUG_SPINLOCK=y
1880# CONFIG_LOCK_STAT is not set 1879# CONFIG_LOCK_STAT is not set
1881CONFIG_DEBUG_SPINLOCK_SLEEP=y 1880CONFIG_DEBUG_SPINLOCK_SLEEP=y
1882# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1881# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1883CONFIG_STACKTRACE=y
1884# CONFIG_DEBUG_KOBJECT is not set 1882# CONFIG_DEBUG_KOBJECT is not set
1885CONFIG_DEBUG_HIGHMEM=y 1883CONFIG_DEBUG_HIGHMEM=y
1886CONFIG_DEBUG_BUGVERBOSE=y 1884CONFIG_DEBUG_BUGVERBOSE=y
@@ -1903,16 +1901,12 @@ CONFIG_DEBUG_MEMORY_INIT=y
1903# CONFIG_LATENCYTOP is not set 1901# CONFIG_LATENCYTOP is not set
1904CONFIG_SYSCTL_SYSCALL_CHECK=y 1902CONFIG_SYSCTL_SYSCALL_CHECK=y
1905# CONFIG_DEBUG_PAGEALLOC is not set 1903# CONFIG_DEBUG_PAGEALLOC is not set
1906CONFIG_NOP_TRACER=y
1907CONFIG_HAVE_FUNCTION_TRACER=y 1904CONFIG_HAVE_FUNCTION_TRACER=y
1908CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1905CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1909CONFIG_HAVE_DYNAMIC_FTRACE=y 1906CONFIG_HAVE_DYNAMIC_FTRACE=y
1910CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1907CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1911CONFIG_RING_BUFFER=y 1908CONFIG_RING_BUFFER=y
1912CONFIG_EVENT_TRACING=y
1913CONFIG_CONTEXT_SWITCH_TRACER=y
1914CONFIG_RING_BUFFER_ALLOW_SWAP=y 1909CONFIG_RING_BUFFER_ALLOW_SWAP=y
1915CONFIG_TRACING=y
1916CONFIG_TRACING_SUPPORT=y 1910CONFIG_TRACING_SUPPORT=y
1917CONFIG_FTRACE=y 1911CONFIG_FTRACE=y
1918# CONFIG_FUNCTION_TRACER is not set 1912# CONFIG_FUNCTION_TRACER is not set
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig
index c6d2baa7aaeb..943371954317 100644
--- a/arch/powerpc/configs/cell_defconfig
+++ b/arch/powerpc/configs/cell_defconfig
@@ -83,8 +83,7 @@ CONFIG_CPUSETS=y
83# CONFIG_CGROUP_SCHED is not set 83# CONFIG_CGROUP_SCHED is not set
84# CONFIG_CGROUP_CPUACCT is not set 84# CONFIG_CGROUP_CPUACCT is not set
85# CONFIG_RESOURCE_COUNTERS is not set 85# CONFIG_RESOURCE_COUNTERS is not set
86CONFIG_SYSFS_DEPRECATED=y 86# CONFIG_SYSFS_DEPRECATED_V2 is not set
87CONFIG_SYSFS_DEPRECATED_V2=y
88CONFIG_PROC_PID_CPUSET=y 87CONFIG_PROC_PID_CPUSET=y
89# CONFIG_RELAY is not set 88# CONFIG_RELAY is not set
90CONFIG_NAMESPACES=y 89CONFIG_NAMESPACES=y
diff --git a/arch/powerpc/configs/celleb_defconfig b/arch/powerpc/configs/celleb_defconfig
index d2123779512a..6be6c09eba6d 100644
--- a/arch/powerpc/configs/celleb_defconfig
+++ b/arch/powerpc/configs/celleb_defconfig
@@ -78,8 +78,7 @@ CONFIG_LOG_BUF_SHIFT=15
78# CONFIG_GROUP_SCHED is not set 78# CONFIG_GROUP_SCHED is not set
79# CONFIG_USER_SCHED is not set 79# CONFIG_USER_SCHED is not set
80# CONFIG_CGROUP_SCHED is not set 80# CONFIG_CGROUP_SCHED is not set
81CONFIG_SYSFS_DEPRECATED=y 81# CONFIG_SYSFS_DEPRECATED_V2 is not set
82CONFIG_SYSFS_DEPRECATED_V2=y
83# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
84CONFIG_NAMESPACES=y 83CONFIG_NAMESPACES=y
85# CONFIG_UTS_NS is not set 84# CONFIG_UTS_NS is not set
diff --git a/arch/powerpc/configs/chrp32_defconfig b/arch/powerpc/configs/chrp32_defconfig
index 5094a65a4493..2fdab660fce3 100644
--- a/arch/powerpc/configs/chrp32_defconfig
+++ b/arch/powerpc/configs/chrp32_defconfig
@@ -77,8 +77,7 @@ CONFIG_IKCONFIG_PROC=y
77CONFIG_LOG_BUF_SHIFT=15 77CONFIG_LOG_BUF_SHIFT=15
78# CONFIG_CGROUPS is not set 78# CONFIG_CGROUPS is not set
79# CONFIG_GROUP_SCHED is not set 79# CONFIG_GROUP_SCHED is not set
80CONFIG_SYSFS_DEPRECATED=y 80# CONFIG_SYSFS_DEPRECATED_V2 is not set
81CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
83CONFIG_NAMESPACES=y 82CONFIG_NAMESPACES=y
84# CONFIG_UTS_NS is not set 83# CONFIG_UTS_NS is not set
diff --git a/arch/powerpc/configs/ep8248e_defconfig b/arch/powerpc/configs/ep8248e_defconfig
index 79105413884e..6b708395a7c6 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:23:59 2010 4# Mon Apr 19 23:16:24 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,8 +96,7 @@ CONFIG_IKCONFIG=y
96CONFIG_IKCONFIG_PROC=y 96CONFIG_IKCONFIG_PROC=y
97CONFIG_LOG_BUF_SHIFT=14 97CONFIG_LOG_BUF_SHIFT=14
98# CONFIG_CGROUPS is not set 98# CONFIG_CGROUPS is not set
99CONFIG_SYSFS_DEPRECATED=y 99# CONFIG_SYSFS_DEPRECATED_V2 is not set
100CONFIG_SYSFS_DEPRECATED_V2=y
101# CONFIG_RELAY is not set 100# CONFIG_RELAY is not set
102# CONFIG_NAMESPACES is not set 101# CONFIG_NAMESPACES is not set
103# CONFIG_BLK_DEV_INITRD is not set 102# CONFIG_BLK_DEV_INITRD is not set
@@ -298,6 +297,7 @@ CONFIG_ISA_DMA_API=y
298# Bus options 297# Bus options
299# 298#
300CONFIG_ZONE_DMA=y 299CONFIG_ZONE_DMA=y
300# CONFIG_NEED_DMA_MAP_STATE is not set
301CONFIG_PPC_INDIRECT_PCI=y 301CONFIG_PPC_INDIRECT_PCI=y
302CONFIG_FSL_SOC=y 302CONFIG_FSL_SOC=y
303CONFIG_PPC_PCI_CHOICE=y 303CONFIG_PPC_PCI_CHOICE=y
@@ -308,7 +308,6 @@ CONFIG_PCI_8260=y
308# CONFIG_PCIEPORTBUS is not set 308# CONFIG_PCIEPORTBUS is not set
309CONFIG_ARCH_SUPPORTS_MSI=y 309CONFIG_ARCH_SUPPORTS_MSI=y
310# CONFIG_PCI_MSI is not set 310# CONFIG_PCI_MSI is not set
311# CONFIG_PCI_LEGACY is not set
312# CONFIG_PCI_DEBUG is not set 311# CONFIG_PCI_DEBUG is not set
313# CONFIG_PCI_STUB is not set 312# CONFIG_PCI_STUB is not set
314# CONFIG_PCI_IOV is not set 313# CONFIG_PCI_IOV is not set
@@ -335,7 +334,6 @@ CONFIG_NET=y
335# Networking options 334# Networking options
336# 335#
337CONFIG_PACKET=y 336CONFIG_PACKET=y
338# CONFIG_PACKET_MMAP is not set
339CONFIG_UNIX=y 337CONFIG_UNIX=y
340CONFIG_XFRM=y 338CONFIG_XFRM=y
341# CONFIG_XFRM_USER is not set 339# CONFIG_XFRM_USER is not set
@@ -537,6 +535,8 @@ CONFIG_MTD_PHYSMAP_OF=y
537# UBI - Unsorted block images 535# UBI - Unsorted block images
538# 536#
539# CONFIG_MTD_UBI is not set 537# CONFIG_MTD_UBI is not set
538CONFIG_OF_FLATTREE=y
539CONFIG_OF_DYNAMIC=y
540CONFIG_OF_DEVICE=y 540CONFIG_OF_DEVICE=y
541CONFIG_OF_GPIO=y 541CONFIG_OF_GPIO=y
542CONFIG_OF_MDIO=y 542CONFIG_OF_MDIO=y
@@ -566,6 +566,7 @@ CONFIG_HAVE_IDE=y
566# 566#
567# SCSI device support 567# SCSI device support
568# 568#
569CONFIG_SCSI_MOD=y
569# CONFIG_RAID_ATTRS is not set 570# CONFIG_RAID_ATTRS is not set
570# CONFIG_SCSI is not set 571# CONFIG_SCSI is not set
571# CONFIG_SCSI_DMA is not set 572# CONFIG_SCSI_DMA is not set
@@ -671,6 +672,8 @@ CONFIG_NETDEV_10000=y
671# CONFIG_CHELSIO_T1 is not set 672# CONFIG_CHELSIO_T1 is not set
672CONFIG_CHELSIO_T3_DEPENDS=y 673CONFIG_CHELSIO_T3_DEPENDS=y
673# CONFIG_CHELSIO_T3 is not set 674# CONFIG_CHELSIO_T3 is not set
675CONFIG_CHELSIO_T4_DEPENDS=y
676# CONFIG_CHELSIO_T4 is not set
674# CONFIG_ENIC is not set 677# CONFIG_ENIC is not set
675# CONFIG_IXGBE is not set 678# CONFIG_IXGBE is not set
676# CONFIG_IXGB is not set 679# CONFIG_IXGB is not set
@@ -683,6 +686,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
683# CONFIG_MLX4_CORE is not set 686# CONFIG_MLX4_CORE is not set
684# CONFIG_TEHUTI is not set 687# CONFIG_TEHUTI is not set
685# CONFIG_BNX2X is not set 688# CONFIG_BNX2X is not set
689# CONFIG_QLCNIC is not set
686# CONFIG_QLGE is not set 690# CONFIG_QLGE is not set
687# CONFIG_SFC is not set 691# CONFIG_SFC is not set
688# CONFIG_BE2NET is not set 692# CONFIG_BE2NET is not set
@@ -737,6 +741,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
737CONFIG_SERIAL_CPM=y 741CONFIG_SERIAL_CPM=y
738CONFIG_SERIAL_CPM_CONSOLE=y 742CONFIG_SERIAL_CPM_CONSOLE=y
739# CONFIG_SERIAL_JSM is not set 743# CONFIG_SERIAL_JSM is not set
744# CONFIG_SERIAL_TIMBERDALE is not set
740# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 745# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
741CONFIG_UNIX98_PTYS=y 746CONFIG_UNIX98_PTYS=y
742# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 747# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -765,7 +770,9 @@ CONFIG_GPIOLIB=y
765# 770#
766# Memory mapped GPIO expanders: 771# Memory mapped GPIO expanders:
767# 772#
773# CONFIG_GPIO_IT8761E is not set
768# CONFIG_GPIO_XILINX is not set 774# CONFIG_GPIO_XILINX is not set
775# CONFIG_GPIO_SCH is not set
769 776
770# 777#
771# I2C GPIO expanders: 778# I2C GPIO expanders:
@@ -804,6 +811,8 @@ CONFIG_SSB_POSSIBLE=y
804# CONFIG_MFD_SM501 is not set 811# CONFIG_MFD_SM501 is not set
805# CONFIG_HTC_PASIC3 is not set 812# CONFIG_HTC_PASIC3 is not set
806# CONFIG_MFD_TMIO is not set 813# CONFIG_MFD_TMIO is not set
814# CONFIG_MFD_TIMBERDALE is not set
815# CONFIG_LPC_SCH is not set
807# CONFIG_REGULATOR is not set 816# CONFIG_REGULATOR is not set
808# CONFIG_MEDIA_SUPPORT is not set 817# CONFIG_MEDIA_SUPPORT is not set
809 818
@@ -812,6 +821,7 @@ CONFIG_SSB_POSSIBLE=y
812# 821#
813# CONFIG_AGP is not set 822# CONFIG_AGP is not set
814CONFIG_VGA_ARB=y 823CONFIG_VGA_ARB=y
824CONFIG_VGA_ARB_MAX_GPUS=16
815# CONFIG_DRM is not set 825# CONFIG_DRM is not set
816# CONFIG_VGASTATE is not set 826# CONFIG_VGASTATE is not set
817# CONFIG_VIDEO_OUTPUT_CONTROL is not set 827# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -869,6 +879,7 @@ CONFIG_AUTOFS4_FS=y
869# 879#
870# Caches 880# Caches
871# 881#
882# CONFIG_FSCACHE is not set
872 883
873# 884#
874# CD-ROM/DVD Filesystems 885# CD-ROM/DVD Filesystems
diff --git a/arch/powerpc/configs/ep88xc_defconfig b/arch/powerpc/configs/ep88xc_defconfig
index 58f7ca71a59d..1cee889dd9ec 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:00 2010 4# Mon Apr 19 23:16:24 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -90,14 +90,8 @@ CONFIG_RCU_FANOUT=32
90# CONFIG_TREE_RCU_TRACE is not set 90# CONFIG_TREE_RCU_TRACE is not set
91# CONFIG_IKCONFIG is not set 91# CONFIG_IKCONFIG is not set
92CONFIG_LOG_BUF_SHIFT=14 92CONFIG_LOG_BUF_SHIFT=14
93CONFIG_GROUP_SCHED=y
94# CONFIG_FAIR_GROUP_SCHED is not set
95# CONFIG_RT_GROUP_SCHED is not set
96CONFIG_USER_SCHED=y
97# CONFIG_CGROUP_SCHED is not set
98# CONFIG_CGROUPS is not set 93# CONFIG_CGROUPS is not set
99CONFIG_SYSFS_DEPRECATED=y 94# CONFIG_SYSFS_DEPRECATED_V2 is not set
100CONFIG_SYSFS_DEPRECATED_V2=y
101# CONFIG_RELAY is not set 95# CONFIG_RELAY is not set
102# CONFIG_NAMESPACES is not set 96# CONFIG_NAMESPACES is not set
103# CONFIG_BLK_DEV_INITRD is not set 97# CONFIG_BLK_DEV_INITRD is not set
@@ -306,6 +300,7 @@ CONFIG_ISA_DMA_API=y
306# Bus options 300# Bus options
307# 301#
308CONFIG_ZONE_DMA=y 302CONFIG_ZONE_DMA=y
303CONFIG_NEED_DMA_MAP_STATE=y
309CONFIG_FSL_SOC=y 304CONFIG_FSL_SOC=y
310# CONFIG_PCI is not set 305# CONFIG_PCI is not set
311# CONFIG_PCI_DOMAINS is not set 306# CONFIG_PCI_DOMAINS is not set
@@ -335,7 +330,6 @@ CONFIG_NET=y
335# Networking options 330# Networking options
336# 331#
337CONFIG_PACKET=y 332CONFIG_PACKET=y
338# CONFIG_PACKET_MMAP is not set
339CONFIG_UNIX=y 333CONFIG_UNIX=y
340# CONFIG_NET_KEY is not set 334# CONFIG_NET_KEY is not set
341CONFIG_INET=y 335CONFIG_INET=y
@@ -504,6 +498,8 @@ CONFIG_MTD_PHYSMAP_OF=y
504# UBI - Unsorted block images 498# UBI - Unsorted block images
505# 499#
506# CONFIG_MTD_UBI is not set 500# CONFIG_MTD_UBI is not set
501CONFIG_OF_FLATTREE=y
502CONFIG_OF_DYNAMIC=y
507CONFIG_OF_DEVICE=y 503CONFIG_OF_DEVICE=y
508CONFIG_OF_MDIO=y 504CONFIG_OF_MDIO=y
509# CONFIG_PARPORT is not set 505# CONFIG_PARPORT is not set
@@ -515,6 +511,7 @@ CONFIG_HAVE_IDE=y
515# 511#
516# SCSI device support 512# SCSI device support
517# 513#
514CONFIG_SCSI_MOD=y
518# CONFIG_RAID_ATTRS is not set 515# CONFIG_RAID_ATTRS is not set
519# CONFIG_SCSI is not set 516# CONFIG_SCSI is not set
520# CONFIG_SCSI_DMA is not set 517# CONFIG_SCSI_DMA is not set
@@ -616,6 +613,7 @@ CONFIG_SERIAL_CORE=y
616CONFIG_SERIAL_CORE_CONSOLE=y 613CONFIG_SERIAL_CORE_CONSOLE=y
617CONFIG_SERIAL_CPM=y 614CONFIG_SERIAL_CPM=y
618CONFIG_SERIAL_CPM_CONSOLE=y 615CONFIG_SERIAL_CPM_CONSOLE=y
616# CONFIG_SERIAL_TIMBERDALE is not set
619# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 617# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
620CONFIG_UNIX98_PTYS=y 618CONFIG_UNIX98_PTYS=y
621# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 619# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -753,6 +751,7 @@ CONFIG_MISC_FILESYSTEMS=y
753# CONFIG_BFS_FS is not set 751# CONFIG_BFS_FS is not set
754# CONFIG_EFS_FS is not set 752# CONFIG_EFS_FS is not set
755# CONFIG_JFFS2_FS is not set 753# CONFIG_JFFS2_FS is not set
754# CONFIG_LOGFS is not set
756CONFIG_CRAMFS=y 755CONFIG_CRAMFS=y
757# CONFIG_SQUASHFS is not set 756# CONFIG_SQUASHFS is not set
758# CONFIG_VXFS_FS is not set 757# CONFIG_VXFS_FS is not set
@@ -777,6 +776,7 @@ CONFIG_SUNRPC=y
777# CONFIG_RPCSEC_GSS_KRB5 is not set 776# CONFIG_RPCSEC_GSS_KRB5 is not set
778# CONFIG_RPCSEC_GSS_SPKM3 is not set 777# CONFIG_RPCSEC_GSS_SPKM3 is not set
779# CONFIG_SMB_FS is not set 778# CONFIG_SMB_FS is not set
779# CONFIG_CEPH_FS is not set
780# CONFIG_CIFS is not set 780# CONFIG_CIFS is not set
781# CONFIG_NCP_FS is not set 781# CONFIG_NCP_FS is not set
782# CONFIG_CODA_FS is not set 782# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_defconfig
index 826a65d3f002..57d3ffa3026a 100644
--- a/arch/powerpc/configs/g5_defconfig
+++ b/arch/powerpc/configs/g5_defconfig
@@ -82,8 +82,7 @@ CONFIG_IKCONFIG_PROC=y
82CONFIG_LOG_BUF_SHIFT=17 82CONFIG_LOG_BUF_SHIFT=17
83# CONFIG_CGROUPS is not set 83# CONFIG_CGROUPS is not set
84# CONFIG_GROUP_SCHED is not set 84# CONFIG_GROUP_SCHED is not set
85CONFIG_SYSFS_DEPRECATED=y 85# CONFIG_SYSFS_DEPRECATED_V2 is not set
86CONFIG_SYSFS_DEPRECATED_V2=y
87# CONFIG_RELAY is not set 86# CONFIG_RELAY is not set
88CONFIG_NAMESPACES=y 87CONFIG_NAMESPACES=y
89# CONFIG_UTS_NS is not set 88# CONFIG_UTS_NS is not set
diff --git a/arch/powerpc/configs/gamecube_defconfig b/arch/powerpc/configs/gamecube_defconfig
index 942e1193e9e4..1c2dbf07ac35 100644
--- a/arch/powerpc/configs/gamecube_defconfig
+++ b/arch/powerpc/configs/gamecube_defconfig
@@ -101,8 +101,7 @@ CONFIG_FAIR_GROUP_SCHED=y
101CONFIG_USER_SCHED=y 101CONFIG_USER_SCHED=y
102# CONFIG_CGROUP_SCHED is not set 102# CONFIG_CGROUP_SCHED is not set
103# CONFIG_CGROUPS is not set 103# CONFIG_CGROUPS is not set
104CONFIG_SYSFS_DEPRECATED=y 104# CONFIG_SYSFS_DEPRECATED_V2 is not set
105CONFIG_SYSFS_DEPRECATED_V2=y
106# CONFIG_RELAY is not set 105# CONFIG_RELAY is not set
107# CONFIG_NAMESPACES is not set 106# CONFIG_NAMESPACES is not set
108CONFIG_BLK_DEV_INITRD=y 107CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/holly_defconfig b/arch/powerpc/configs/holly_defconfig
index a211a79959ca..a60d61bee48d 100644
--- a/arch/powerpc/configs/holly_defconfig
+++ b/arch/powerpc/configs/holly_defconfig
@@ -73,7 +73,6 @@ CONFIG_SYSVIPC_SYSCTL=y
73CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
74# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
75# CONFIG_FAIR_GROUP_SCHED is not set 75# CONFIG_FAIR_GROUP_SCHED is not set
76CONFIG_SYSFS_DEPRECATED=y
77# CONFIG_RELAY is not set 76# CONFIG_RELAY is not set
78CONFIG_BLK_DEV_INITRD=y 77CONFIG_BLK_DEV_INITRD=y
79CONFIG_INITRAMFS_SOURCE="" 78CONFIG_INITRAMFS_SOURCE=""
diff --git a/arch/powerpc/configs/iseries_defconfig b/arch/powerpc/configs/iseries_defconfig
index 76982c51a4c7..151c8e14f3ab 100644
--- a/arch/powerpc/configs/iseries_defconfig
+++ b/arch/powerpc/configs/iseries_defconfig
@@ -81,8 +81,7 @@ CONFIG_IKCONFIG_PROC=y
81CONFIG_LOG_BUF_SHIFT=17 81CONFIG_LOG_BUF_SHIFT=17
82# CONFIG_CGROUPS is not set 82# CONFIG_CGROUPS is not set
83# CONFIG_GROUP_SCHED is not set 83# CONFIG_GROUP_SCHED is not set
84CONFIG_SYSFS_DEPRECATED=y 84# CONFIG_SYSFS_DEPRECATED_V2 is not set
85CONFIG_SYSFS_DEPRECATED_V2=y
86# CONFIG_RELAY is not set 85# CONFIG_RELAY is not set
87CONFIG_NAMESPACES=y 86CONFIG_NAMESPACES=y
88# CONFIG_UTS_NS is not set 87# CONFIG_UTS_NS is not set
diff --git a/arch/powerpc/configs/linkstation_defconfig b/arch/powerpc/configs/linkstation_defconfig
index 9a0c981277eb..8ecacf74d3e5 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:01 2010 4# Mon Apr 19 23:16:25 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,14 +96,8 @@ CONFIG_RCU_FANOUT=32
96CONFIG_IKCONFIG=y 96CONFIG_IKCONFIG=y
97CONFIG_IKCONFIG_PROC=y 97CONFIG_IKCONFIG_PROC=y
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99CONFIG_GROUP_SCHED=y
100# CONFIG_FAIR_GROUP_SCHED is not set
101# CONFIG_RT_GROUP_SCHED is not set
102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
108CONFIG_NAMESPACES=y 102CONFIG_NAMESPACES=y
109# CONFIG_UTS_NS is not set 103# CONFIG_UTS_NS is not set
@@ -116,6 +110,7 @@ CONFIG_INITRAMFS_SOURCE=""
116CONFIG_RD_GZIP=y 110CONFIG_RD_GZIP=y
117CONFIG_RD_BZIP2=y 111CONFIG_RD_BZIP2=y
118CONFIG_RD_LZMA=y 112CONFIG_RD_LZMA=y
113CONFIG_RD_LZO=y
119CONFIG_CC_OPTIMIZE_FOR_SIZE=y 114CONFIG_CC_OPTIMIZE_FOR_SIZE=y
120CONFIG_SYSCTL=y 115CONFIG_SYSCTL=y
121CONFIG_ANON_INODES=y 116CONFIG_ANON_INODES=y
@@ -328,6 +323,7 @@ CONFIG_ISA_DMA_API=y
328# Bus options 323# Bus options
329# 324#
330CONFIG_ZONE_DMA=y 325CONFIG_ZONE_DMA=y
326# CONFIG_NEED_DMA_MAP_STATE is not set
331CONFIG_GENERIC_ISA_DMA=y 327CONFIG_GENERIC_ISA_DMA=y
332CONFIG_PPC_INDIRECT_PCI=y 328CONFIG_PPC_INDIRECT_PCI=y
333CONFIG_FSL_SOC=y 329CONFIG_FSL_SOC=y
@@ -337,7 +333,6 @@ CONFIG_PCI_SYSCALL=y
337# CONFIG_PCIEPORTBUS is not set 333# CONFIG_PCIEPORTBUS is not set
338CONFIG_ARCH_SUPPORTS_MSI=y 334CONFIG_ARCH_SUPPORTS_MSI=y
339# CONFIG_PCI_MSI is not set 335# CONFIG_PCI_MSI is not set
340# CONFIG_PCI_LEGACY is not set
341# CONFIG_PCI_DEBUG is not set 336# CONFIG_PCI_DEBUG is not set
342# CONFIG_PCI_STUB is not set 337# CONFIG_PCI_STUB is not set
343# CONFIG_PCI_IOV is not set 338# CONFIG_PCI_IOV is not set
@@ -364,7 +359,6 @@ CONFIG_NET=y
364# Networking options 359# Networking options
365# 360#
366CONFIG_PACKET=y 361CONFIG_PACKET=y
367CONFIG_PACKET_MMAP=y
368CONFIG_UNIX=y 362CONFIG_UNIX=y
369CONFIG_XFRM=y 363CONFIG_XFRM=y
370# CONFIG_XFRM_USER is not set 364# CONFIG_XFRM_USER is not set
@@ -433,6 +427,7 @@ CONFIG_NF_CONNTRACK_TFTP=m
433CONFIG_NETFILTER_XTABLES=m 427CONFIG_NETFILTER_XTABLES=m
434# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 428# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
435# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set 429# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
430# CONFIG_NETFILTER_XT_TARGET_CT is not set
436# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 431# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
437CONFIG_NETFILTER_XT_TARGET_HL=m 432CONFIG_NETFILTER_XT_TARGET_HL=m
438# CONFIG_NETFILTER_XT_TARGET_MARK is not set 433# CONFIG_NETFILTER_XT_TARGET_MARK is not set
@@ -665,6 +660,8 @@ CONFIG_MTD_PHYSMAP=y
665# UBI - Unsorted block images 660# UBI - Unsorted block images
666# 661#
667# CONFIG_MTD_UBI is not set 662# CONFIG_MTD_UBI is not set
663CONFIG_OF_FLATTREE=y
664CONFIG_OF_DYNAMIC=y
668CONFIG_OF_DEVICE=y 665CONFIG_OF_DEVICE=y
669CONFIG_OF_I2C=y 666CONFIG_OF_I2C=y
670# CONFIG_PARPORT is not set 667# CONFIG_PARPORT is not set
@@ -700,6 +697,7 @@ CONFIG_MISC_DEVICES=y
700# CONFIG_ENCLOSURE_SERVICES is not set 697# CONFIG_ENCLOSURE_SERVICES is not set
701# CONFIG_HP_ILO is not set 698# CONFIG_HP_ILO is not set
702# CONFIG_ISL29003 is not set 699# CONFIG_ISL29003 is not set
700# CONFIG_SENSORS_TSL2550 is not set
703# CONFIG_DS1682 is not set 701# CONFIG_DS1682 is not set
704# CONFIG_C2PORT is not set 702# CONFIG_C2PORT is not set
705 703
@@ -717,6 +715,7 @@ CONFIG_HAVE_IDE=y
717# 715#
718# SCSI device support 716# SCSI device support
719# 717#
718CONFIG_SCSI_MOD=y
720# CONFIG_RAID_ATTRS is not set 719# CONFIG_RAID_ATTRS is not set
721CONFIG_SCSI=y 720CONFIG_SCSI=y
722CONFIG_SCSI_DMA=y 721CONFIG_SCSI_DMA=y
@@ -840,6 +839,7 @@ CONFIG_ATA_SFF=y
840CONFIG_PATA_IT821X=y 839CONFIG_PATA_IT821X=y
841# CONFIG_PATA_IT8213 is not set 840# CONFIG_PATA_IT8213 is not set
842# CONFIG_PATA_JMICRON is not set 841# CONFIG_PATA_JMICRON is not set
842# CONFIG_PATA_LEGACY is not set
843# CONFIG_PATA_TRIFLEX is not set 843# CONFIG_PATA_TRIFLEX is not set
844# CONFIG_PATA_MARVELL is not set 844# CONFIG_PATA_MARVELL is not set
845# CONFIG_PATA_MPIIX is not set 845# CONFIG_PATA_MPIIX is not set
@@ -954,6 +954,8 @@ CONFIG_NETDEV_10000=y
954# CONFIG_CHELSIO_T1 is not set 954# CONFIG_CHELSIO_T1 is not set
955CONFIG_CHELSIO_T3_DEPENDS=y 955CONFIG_CHELSIO_T3_DEPENDS=y
956# CONFIG_CHELSIO_T3 is not set 956# CONFIG_CHELSIO_T3 is not set
957CONFIG_CHELSIO_T4_DEPENDS=y
958# CONFIG_CHELSIO_T4 is not set
957# CONFIG_ENIC is not set 959# CONFIG_ENIC is not set
958# CONFIG_IXGBE is not set 960# CONFIG_IXGBE is not set
959# CONFIG_IXGB is not set 961# CONFIG_IXGB is not set
@@ -966,6 +968,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
966# CONFIG_MLX4_CORE is not set 968# CONFIG_MLX4_CORE is not set
967# CONFIG_TEHUTI is not set 969# CONFIG_TEHUTI is not set
968# CONFIG_BNX2X is not set 970# CONFIG_BNX2X is not set
971# CONFIG_QLCNIC is not set
969# CONFIG_QLGE is not set 972# CONFIG_QLGE is not set
970# CONFIG_SFC is not set 973# CONFIG_SFC is not set
971# CONFIG_BE2NET is not set 974# CONFIG_BE2NET is not set
@@ -1082,6 +1085,7 @@ CONFIG_SERIAL_CORE=y
1082CONFIG_SERIAL_CORE_CONSOLE=y 1085CONFIG_SERIAL_CORE_CONSOLE=y
1083# CONFIG_SERIAL_JSM is not set 1086# CONFIG_SERIAL_JSM is not set
1084# CONFIG_SERIAL_OF_PLATFORM is not set 1087# CONFIG_SERIAL_OF_PLATFORM is not set
1088# CONFIG_SERIAL_TIMBERDALE is not set
1085# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1089# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1086CONFIG_UNIX98_PTYS=y 1090CONFIG_UNIX98_PTYS=y
1087# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1091# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1131,6 +1135,7 @@ CONFIG_I2C_HELPER_AUTO=y
1131CONFIG_I2C_MPC=y 1135CONFIG_I2C_MPC=y
1132# CONFIG_I2C_OCORES is not set 1136# CONFIG_I2C_OCORES is not set
1133# CONFIG_I2C_SIMTEC is not set 1137# CONFIG_I2C_SIMTEC is not set
1138# CONFIG_I2C_XILINX is not set
1134 1139
1135# 1140#
1136# External I2C/SMBus adapter drivers 1141# External I2C/SMBus adapter drivers
@@ -1144,15 +1149,9 @@ CONFIG_I2C_MPC=y
1144# 1149#
1145# CONFIG_I2C_PCA_PLATFORM is not set 1150# CONFIG_I2C_PCA_PLATFORM is not set
1146# CONFIG_I2C_STUB is not set 1151# CONFIG_I2C_STUB is not set
1147
1148#
1149# Miscellaneous I2C Chip support
1150#
1151# CONFIG_SENSORS_TSL2550 is not set
1152# CONFIG_I2C_DEBUG_CORE is not set 1152# CONFIG_I2C_DEBUG_CORE is not set
1153# CONFIG_I2C_DEBUG_ALGO is not set 1153# CONFIG_I2C_DEBUG_ALGO is not set
1154# CONFIG_I2C_DEBUG_BUS is not set 1154# CONFIG_I2C_DEBUG_BUS is not set
1155# CONFIG_I2C_DEBUG_CHIP is not set
1156# CONFIG_SPI is not set 1155# CONFIG_SPI is not set
1157 1156
1158# 1157#
@@ -1178,10 +1177,11 @@ CONFIG_HWMON=y
1178# CONFIG_SENSORS_ADM1029 is not set 1177# CONFIG_SENSORS_ADM1029 is not set
1179# CONFIG_SENSORS_ADM1031 is not set 1178# CONFIG_SENSORS_ADM1031 is not set
1180# CONFIG_SENSORS_ADM9240 is not set 1179# CONFIG_SENSORS_ADM9240 is not set
1180# CONFIG_SENSORS_ADT7411 is not set
1181# CONFIG_SENSORS_ADT7462 is not set 1181# CONFIG_SENSORS_ADT7462 is not set
1182# CONFIG_SENSORS_ADT7470 is not set 1182# CONFIG_SENSORS_ADT7470 is not set
1183# CONFIG_SENSORS_ADT7473 is not set
1184# CONFIG_SENSORS_ADT7475 is not set 1183# CONFIG_SENSORS_ADT7475 is not set
1184# CONFIG_SENSORS_ASC7621 is not set
1185# CONFIG_SENSORS_ATXP1 is not set 1185# CONFIG_SENSORS_ATXP1 is not set
1186# CONFIG_SENSORS_DS1621 is not set 1186# CONFIG_SENSORS_DS1621 is not set
1187# CONFIG_SENSORS_I5K_AMB is not set 1187# CONFIG_SENSORS_I5K_AMB is not set
@@ -1218,6 +1218,7 @@ CONFIG_HWMON=y
1218# CONFIG_SENSORS_SMSC47M192 is not set 1218# CONFIG_SENSORS_SMSC47M192 is not set
1219# CONFIG_SENSORS_SMSC47B397 is not set 1219# CONFIG_SENSORS_SMSC47B397 is not set
1220# CONFIG_SENSORS_ADS7828 is not set 1220# CONFIG_SENSORS_ADS7828 is not set
1221# CONFIG_SENSORS_AMC6821 is not set
1221# CONFIG_SENSORS_THMC50 is not set 1222# CONFIG_SENSORS_THMC50 is not set
1222# CONFIG_SENSORS_TMP401 is not set 1223# CONFIG_SENSORS_TMP401 is not set
1223# CONFIG_SENSORS_TMP421 is not set 1224# CONFIG_SENSORS_TMP421 is not set
@@ -1246,18 +1247,21 @@ CONFIG_SSB_POSSIBLE=y
1246# Multifunction device drivers 1247# Multifunction device drivers
1247# 1248#
1248# CONFIG_MFD_CORE is not set 1249# CONFIG_MFD_CORE is not set
1250# CONFIG_MFD_88PM860X is not set
1249# CONFIG_MFD_SM501 is not set 1251# CONFIG_MFD_SM501 is not set
1250# CONFIG_HTC_PASIC3 is not set 1252# CONFIG_HTC_PASIC3 is not set
1251# CONFIG_TWL4030_CORE is not set 1253# CONFIG_TWL4030_CORE is not set
1252# CONFIG_MFD_TMIO is not set 1254# CONFIG_MFD_TMIO is not set
1253# CONFIG_PMIC_DA903X is not set 1255# CONFIG_PMIC_DA903X is not set
1254# CONFIG_PMIC_ADP5520 is not set 1256# CONFIG_PMIC_ADP5520 is not set
1257# CONFIG_MFD_MAX8925 is not set
1255# CONFIG_MFD_WM8400 is not set 1258# CONFIG_MFD_WM8400 is not set
1256# CONFIG_MFD_WM831X is not set 1259# CONFIG_MFD_WM831X is not set
1257# CONFIG_MFD_WM8350_I2C is not set 1260# CONFIG_MFD_WM8350_I2C is not set
1261# CONFIG_MFD_WM8994 is not set
1258# CONFIG_MFD_PCF50633 is not set 1262# CONFIG_MFD_PCF50633 is not set
1259# CONFIG_AB3100_CORE is not set 1263# CONFIG_AB3100_CORE is not set
1260# CONFIG_MFD_88PM8607 is not set 1264# CONFIG_LPC_SCH is not set
1261# CONFIG_REGULATOR is not set 1265# CONFIG_REGULATOR is not set
1262# CONFIG_MEDIA_SUPPORT is not set 1266# CONFIG_MEDIA_SUPPORT is not set
1263 1267
@@ -1266,6 +1270,7 @@ CONFIG_SSB_POSSIBLE=y
1266# 1270#
1267# CONFIG_AGP is not set 1271# CONFIG_AGP is not set
1268CONFIG_VGA_ARB=y 1272CONFIG_VGA_ARB=y
1273CONFIG_VGA_ARB_MAX_GPUS=16
1269# CONFIG_DRM is not set 1274# CONFIG_DRM is not set
1270# CONFIG_VGASTATE is not set 1275# CONFIG_VGASTATE is not set
1271CONFIG_VIDEO_OUTPUT_CONTROL=m 1276CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1417,6 +1422,7 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1417# CONFIG_USB_SERIAL_NAVMAN is not set 1422# CONFIG_USB_SERIAL_NAVMAN is not set
1418# CONFIG_USB_SERIAL_PL2303 is not set 1423# CONFIG_USB_SERIAL_PL2303 is not set
1419# CONFIG_USB_SERIAL_OTI6858 is not set 1424# CONFIG_USB_SERIAL_OTI6858 is not set
1425# CONFIG_USB_SERIAL_QCAUX is not set
1420# CONFIG_USB_SERIAL_QUALCOMM is not set 1426# CONFIG_USB_SERIAL_QUALCOMM is not set
1421# CONFIG_USB_SERIAL_SPCP8X5 is not set 1427# CONFIG_USB_SERIAL_SPCP8X5 is not set
1422# CONFIG_USB_SERIAL_HP4X is not set 1428# CONFIG_USB_SERIAL_HP4X is not set
@@ -1430,6 +1436,7 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1430# CONFIG_USB_SERIAL_OPTION is not set 1436# CONFIG_USB_SERIAL_OPTION is not set
1431# CONFIG_USB_SERIAL_OMNINET is not set 1437# CONFIG_USB_SERIAL_OMNINET is not set
1432# CONFIG_USB_SERIAL_OPTICON is not set 1438# CONFIG_USB_SERIAL_OPTICON is not set
1439# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set
1433# CONFIG_USB_SERIAL_DEBUG is not set 1440# CONFIG_USB_SERIAL_DEBUG is not set
1434 1441
1435# 1442#
@@ -1442,7 +1449,6 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1442# CONFIG_USB_RIO500 is not set 1449# CONFIG_USB_RIO500 is not set
1443# CONFIG_USB_LEGOTOWER is not set 1450# CONFIG_USB_LEGOTOWER is not set
1444# CONFIG_USB_LCD is not set 1451# CONFIG_USB_LCD is not set
1445# CONFIG_USB_BERRY_CHARGE is not set
1446# CONFIG_USB_LED is not set 1452# CONFIG_USB_LED is not set
1447# CONFIG_USB_CYPRESS_CY7C63 is not set 1453# CONFIG_USB_CYPRESS_CY7C63 is not set
1448# CONFIG_USB_CYTHERM is not set 1454# CONFIG_USB_CYTHERM is not set
@@ -1455,7 +1461,6 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1455# CONFIG_USB_IOWARRIOR is not set 1461# CONFIG_USB_IOWARRIOR is not set
1456# CONFIG_USB_TEST is not set 1462# CONFIG_USB_TEST is not set
1457# CONFIG_USB_ISIGHTFW is not set 1463# CONFIG_USB_ISIGHTFW is not set
1458# CONFIG_USB_VST is not set
1459# CONFIG_USB_GADGET is not set 1464# CONFIG_USB_GADGET is not set
1460 1465
1461# 1466#
@@ -1620,6 +1625,7 @@ CONFIG_MISC_FILESYSTEMS=y
1620# CONFIG_BFS_FS is not set 1625# CONFIG_BFS_FS is not set
1621# CONFIG_EFS_FS is not set 1626# CONFIG_EFS_FS is not set
1622# CONFIG_JFFS2_FS is not set 1627# CONFIG_JFFS2_FS is not set
1628# CONFIG_LOGFS is not set
1623# CONFIG_CRAMFS is not set 1629# CONFIG_CRAMFS is not set
1624# CONFIG_SQUASHFS is not set 1630# CONFIG_SQUASHFS is not set
1625# CONFIG_VXFS_FS is not set 1631# CONFIG_VXFS_FS is not set
@@ -1651,6 +1657,7 @@ CONFIG_SUNRPC_GSS=y
1651CONFIG_RPCSEC_GSS_KRB5=y 1657CONFIG_RPCSEC_GSS_KRB5=y
1652# CONFIG_RPCSEC_GSS_SPKM3 is not set 1658# CONFIG_RPCSEC_GSS_SPKM3 is not set
1653# CONFIG_SMB_FS is not set 1659# CONFIG_SMB_FS is not set
1660# CONFIG_CEPH_FS is not set
1654CONFIG_CIFS=m 1661CONFIG_CIFS=m
1655# CONFIG_CIFS_STATS is not set 1662# CONFIG_CIFS_STATS is not set
1656# CONFIG_CIFS_WEAK_PW_HASH is not set 1663# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1723,9 +1730,11 @@ CONFIG_CRC32=y
1723CONFIG_LIBCRC32C=m 1730CONFIG_LIBCRC32C=m
1724CONFIG_ZLIB_INFLATE=y 1731CONFIG_ZLIB_INFLATE=y
1725CONFIG_ZLIB_DEFLATE=m 1732CONFIG_ZLIB_DEFLATE=m
1733CONFIG_LZO_DECOMPRESS=y
1726CONFIG_DECOMPRESS_GZIP=y 1734CONFIG_DECOMPRESS_GZIP=y
1727CONFIG_DECOMPRESS_BZIP2=y 1735CONFIG_DECOMPRESS_BZIP2=y
1728CONFIG_DECOMPRESS_LZMA=y 1736CONFIG_DECOMPRESS_LZMA=y
1737CONFIG_DECOMPRESS_LZO=y
1729CONFIG_TEXTSEARCH=y 1738CONFIG_TEXTSEARCH=y
1730CONFIG_TEXTSEARCH_KMP=m 1739CONFIG_TEXTSEARCH_KMP=m
1731CONFIG_HAS_IOMEM=y 1740CONFIG_HAS_IOMEM=y
diff --git a/arch/powerpc/configs/maple_defconfig b/arch/powerpc/configs/maple_defconfig
index 8b244003b9e1..dc50eec58e78 100644
--- a/arch/powerpc/configs/maple_defconfig
+++ b/arch/powerpc/configs/maple_defconfig
@@ -78,8 +78,7 @@ CONFIG_IKCONFIG_PROC=y
78CONFIG_LOG_BUF_SHIFT=17 78CONFIG_LOG_BUF_SHIFT=17
79# CONFIG_CGROUPS is not set 79# CONFIG_CGROUPS is not set
80# CONFIG_GROUP_SCHED is not set 80# CONFIG_GROUP_SCHED is not set
81CONFIG_SYSFS_DEPRECATED=y 81# CONFIG_SYSFS_DEPRECATED_V2 is not set
82CONFIG_SYSFS_DEPRECATED_V2=y
83# CONFIG_RELAY is not set 82# CONFIG_RELAY is not set
84CONFIG_NAMESPACES=y 83CONFIG_NAMESPACES=y
85# CONFIG_UTS_NS is not set 84# CONFIG_UTS_NS is not set
diff --git a/arch/powerpc/configs/mgcoge_defconfig b/arch/powerpc/configs/mgcoge_defconfig
index 4c2c877f9363..b36ebb7e843e 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:02 2010 4# Mon Apr 19 23:16:26 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,8 +96,7 @@ CONFIG_IKCONFIG=y
96CONFIG_IKCONFIG_PROC=y 96CONFIG_IKCONFIG_PROC=y
97CONFIG_LOG_BUF_SHIFT=14 97CONFIG_LOG_BUF_SHIFT=14
98# CONFIG_CGROUPS is not set 98# CONFIG_CGROUPS is not set
99CONFIG_SYSFS_DEPRECATED=y 99# CONFIG_SYSFS_DEPRECATED_V2 is not set
100CONFIG_SYSFS_DEPRECATED_V2=y
101# CONFIG_RELAY is not set 100# CONFIG_RELAY is not set
102# CONFIG_NAMESPACES is not set 101# CONFIG_NAMESPACES is not set
103CONFIG_BLK_DEV_INITRD=y 102CONFIG_BLK_DEV_INITRD=y
@@ -105,6 +104,7 @@ CONFIG_INITRAMFS_SOURCE=""
105CONFIG_RD_GZIP=y 104CONFIG_RD_GZIP=y
106# CONFIG_RD_BZIP2 is not set 105# CONFIG_RD_BZIP2 is not set
107# CONFIG_RD_LZMA is not set 106# CONFIG_RD_LZMA is not set
107# CONFIG_RD_LZO is not set
108CONFIG_CC_OPTIMIZE_FOR_SIZE=y 108CONFIG_CC_OPTIMIZE_FOR_SIZE=y
109CONFIG_SYSCTL=y 109CONFIG_SYSCTL=y
110CONFIG_ANON_INODES=y 110CONFIG_ANON_INODES=y
@@ -311,6 +311,7 @@ CONFIG_ISA_DMA_API=y
311# 311#
312# CONFIG_ISA is not set 312# CONFIG_ISA is not set
313CONFIG_ZONE_DMA=y 313CONFIG_ZONE_DMA=y
314# CONFIG_NEED_DMA_MAP_STATE is not set
314CONFIG_PPC_INDIRECT_PCI=y 315CONFIG_PPC_INDIRECT_PCI=y
315CONFIG_FSL_SOC=y 316CONFIG_FSL_SOC=y
316CONFIG_PPC_PCI_CHOICE=y 317CONFIG_PPC_PCI_CHOICE=y
@@ -321,7 +322,6 @@ CONFIG_PCI_8260=y
321# CONFIG_PCIEPORTBUS is not set 322# CONFIG_PCIEPORTBUS is not set
322CONFIG_ARCH_SUPPORTS_MSI=y 323CONFIG_ARCH_SUPPORTS_MSI=y
323# CONFIG_PCI_MSI is not set 324# CONFIG_PCI_MSI is not set
324# CONFIG_PCI_LEGACY is not set
325# CONFIG_PCI_DEBUG is not set 325# CONFIG_PCI_DEBUG is not set
326# CONFIG_PCI_STUB is not set 326# CONFIG_PCI_STUB is not set
327# CONFIG_PCI_IOV is not set 327# CONFIG_PCI_IOV is not set
@@ -348,7 +348,6 @@ CONFIG_NET=y
348# Networking options 348# Networking options
349# 349#
350CONFIG_PACKET=y 350CONFIG_PACKET=y
351# CONFIG_PACKET_MMAP is not set
352CONFIG_UNIX=y 351CONFIG_UNIX=y
353CONFIG_XFRM=y 352CONFIG_XFRM=y
354# CONFIG_XFRM_USER is not set 353# CONFIG_XFRM_USER is not set
@@ -536,6 +535,8 @@ CONFIG_MTD_PHYSMAP_OF=y
536# UBI - Unsorted block images 535# UBI - Unsorted block images
537# 536#
538# CONFIG_MTD_UBI is not set 537# CONFIG_MTD_UBI is not set
538CONFIG_OF_FLATTREE=y
539CONFIG_OF_DYNAMIC=y
539CONFIG_OF_DEVICE=y 540CONFIG_OF_DEVICE=y
540CONFIG_OF_GPIO=y 541CONFIG_OF_GPIO=y
541CONFIG_OF_I2C=y 542CONFIG_OF_I2C=y
@@ -570,6 +571,7 @@ CONFIG_HAVE_IDE=y
570# 571#
571# SCSI device support 572# SCSI device support
572# 573#
574CONFIG_SCSI_MOD=y
573# CONFIG_RAID_ATTRS is not set 575# CONFIG_RAID_ATTRS is not set
574# CONFIG_SCSI is not set 576# CONFIG_SCSI is not set
575# CONFIG_SCSI_DMA is not set 577# CONFIG_SCSI_DMA is not set
@@ -704,6 +706,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
704CONFIG_SERIAL_CPM=y 706CONFIG_SERIAL_CPM=y
705CONFIG_SERIAL_CPM_CONSOLE=y 707CONFIG_SERIAL_CPM_CONSOLE=y
706# CONFIG_SERIAL_JSM is not set 708# CONFIG_SERIAL_JSM is not set
709# CONFIG_SERIAL_TIMBERDALE is not set
707# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 710# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
708CONFIG_UNIX98_PTYS=y 711CONFIG_UNIX98_PTYS=y
709# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 712# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -769,14 +772,9 @@ CONFIG_I2C_CPM=y
769# Other I2C/SMBus bus drivers 772# Other I2C/SMBus bus drivers
770# 773#
771# CONFIG_I2C_PCA_PLATFORM is not set 774# CONFIG_I2C_PCA_PLATFORM is not set
772
773#
774# Miscellaneous I2C Chip support
775#
776# CONFIG_I2C_DEBUG_CORE is not set 775# CONFIG_I2C_DEBUG_CORE is not set
777# CONFIG_I2C_DEBUG_ALGO is not set 776# CONFIG_I2C_DEBUG_ALGO is not set
778# CONFIG_I2C_DEBUG_BUS is not set 777# CONFIG_I2C_DEBUG_BUS is not set
779# CONFIG_I2C_DEBUG_CHIP is not set
780# CONFIG_SPI is not set 778# CONFIG_SPI is not set
781 779
782# 780#
@@ -790,14 +788,18 @@ CONFIG_GPIOLIB=y
790# 788#
791# Memory mapped GPIO expanders: 789# Memory mapped GPIO expanders:
792# 790#
791# CONFIG_GPIO_IT8761E is not set
793# CONFIG_GPIO_XILINX is not set 792# CONFIG_GPIO_XILINX is not set
793# CONFIG_GPIO_SCH is not set
794 794
795# 795#
796# I2C GPIO expanders: 796# I2C GPIO expanders:
797# 797#
798# CONFIG_GPIO_MAX7300 is not set
798# CONFIG_GPIO_MAX732X is not set 799# CONFIG_GPIO_MAX732X is not set
799# CONFIG_GPIO_PCA953X is not set 800# CONFIG_GPIO_PCA953X is not set
800# CONFIG_GPIO_PCF857X is not set 801# CONFIG_GPIO_PCF857X is not set
802# CONFIG_GPIO_ADP5588 is not set
801 803
802# 804#
803# PCI GPIO expanders: 805# PCI GPIO expanders:
@@ -829,19 +831,24 @@ CONFIG_SSB_POSSIBLE=y
829# Multifunction device drivers 831# Multifunction device drivers
830# 832#
831# CONFIG_MFD_CORE is not set 833# CONFIG_MFD_CORE is not set
834# CONFIG_MFD_88PM860X is not set
832# CONFIG_MFD_SM501 is not set 835# CONFIG_MFD_SM501 is not set
833# CONFIG_HTC_PASIC3 is not set 836# CONFIG_HTC_PASIC3 is not set
837# CONFIG_HTC_I2CPLD is not set
834# CONFIG_TPS65010 is not set 838# CONFIG_TPS65010 is not set
835# CONFIG_TWL4030_CORE is not set 839# CONFIG_TWL4030_CORE is not set
836# CONFIG_MFD_TMIO is not set 840# CONFIG_MFD_TMIO is not set
837# CONFIG_PMIC_DA903X is not set 841# CONFIG_PMIC_DA903X is not set
838# CONFIG_PMIC_ADP5520 is not set 842# CONFIG_PMIC_ADP5520 is not set
843# CONFIG_MFD_MAX8925 is not set
839# CONFIG_MFD_WM8400 is not set 844# CONFIG_MFD_WM8400 is not set
840# CONFIG_MFD_WM831X is not set 845# CONFIG_MFD_WM831X is not set
841# CONFIG_MFD_WM8350_I2C is not set 846# CONFIG_MFD_WM8350_I2C is not set
847# CONFIG_MFD_WM8994 is not set
842# CONFIG_MFD_PCF50633 is not set 848# CONFIG_MFD_PCF50633 is not set
843# CONFIG_AB3100_CORE is not set 849# CONFIG_AB3100_CORE is not set
844# CONFIG_MFD_88PM8607 is not set 850# CONFIG_MFD_TIMBERDALE is not set
851# CONFIG_LPC_SCH is not set
845# CONFIG_REGULATOR is not set 852# CONFIG_REGULATOR is not set
846# CONFIG_MEDIA_SUPPORT is not set 853# CONFIG_MEDIA_SUPPORT is not set
847 854
@@ -850,6 +857,7 @@ CONFIG_SSB_POSSIBLE=y
850# 857#
851# CONFIG_AGP is not set 858# CONFIG_AGP is not set
852CONFIG_VGA_ARB=y 859CONFIG_VGA_ARB=y
860CONFIG_VGA_ARB_MAX_GPUS=16
853# CONFIG_DRM is not set 861# CONFIG_DRM is not set
854# CONFIG_VGASTATE is not set 862# CONFIG_VGASTATE is not set
855# CONFIG_VIDEO_OUTPUT_CONTROL is not set 863# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -908,6 +916,7 @@ CONFIG_AUTOFS4_FS=y
908# 916#
909# Caches 917# Caches
910# 918#
919# CONFIG_FSCACHE is not set
911 920
912# 921#
913# CD-ROM/DVD Filesystems 922# CD-ROM/DVD Filesystems
@@ -1100,6 +1109,7 @@ CONFIG_DEBUG_INFO=y
1100# CONFIG_BACKTRACE_SELF_TEST is not set 1109# CONFIG_BACKTRACE_SELF_TEST is not set
1101# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1110# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1102# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1111# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1112# CONFIG_LKDTM is not set
1103# CONFIG_FAULT_INJECTION is not set 1113# CONFIG_FAULT_INJECTION is not set
1104# CONFIG_LATENCYTOP is not set 1114# CONFIG_LATENCYTOP is not set
1105CONFIG_SYSCTL_SYSCALL_CHECK=y 1115CONFIG_SYSCTL_SYSCALL_CHECK=y
diff --git a/arch/powerpc/configs/mgsuvd_defconfig b/arch/powerpc/configs/mgsuvd_defconfig
index 9e090f2c7e36..0dd5015ea81d 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:03 2010 4# Mon Apr 19 23:16:27 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -89,14 +89,8 @@ CONFIG_RCU_FANOUT=32
89# CONFIG_TREE_RCU_TRACE is not set 89# CONFIG_TREE_RCU_TRACE is not set
90# CONFIG_IKCONFIG is not set 90# CONFIG_IKCONFIG is not set
91CONFIG_LOG_BUF_SHIFT=17 91CONFIG_LOG_BUF_SHIFT=17
92CONFIG_GROUP_SCHED=y
93CONFIG_FAIR_GROUP_SCHED=y
94# CONFIG_RT_GROUP_SCHED is not set
95CONFIG_USER_SCHED=y
96# CONFIG_CGROUP_SCHED is not set
97# CONFIG_CGROUPS is not set 92# CONFIG_CGROUPS is not set
98CONFIG_SYSFS_DEPRECATED=y 93# CONFIG_SYSFS_DEPRECATED_V2 is not set
99CONFIG_SYSFS_DEPRECATED_V2=y
100# CONFIG_RELAY is not set 94# CONFIG_RELAY is not set
101# CONFIG_NAMESPACES is not set 95# CONFIG_NAMESPACES is not set
102CONFIG_BLK_DEV_INITRD=y 96CONFIG_BLK_DEV_INITRD=y
@@ -104,6 +98,7 @@ CONFIG_INITRAMFS_SOURCE=""
104CONFIG_RD_GZIP=y 98CONFIG_RD_GZIP=y
105# CONFIG_RD_BZIP2 is not set 99# CONFIG_RD_BZIP2 is not set
106# CONFIG_RD_LZMA is not set 100# CONFIG_RD_LZMA is not set
101# CONFIG_RD_LZO is not set
107# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 102# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
108CONFIG_SYSCTL=y 103CONFIG_SYSCTL=y
109CONFIG_ANON_INODES=y 104CONFIG_ANON_INODES=y
@@ -309,6 +304,7 @@ CONFIG_ISA_DMA_API=y
309# Bus options 304# Bus options
310# 305#
311CONFIG_ZONE_DMA=y 306CONFIG_ZONE_DMA=y
307CONFIG_NEED_DMA_MAP_STATE=y
312CONFIG_FSL_SOC=y 308CONFIG_FSL_SOC=y
313# CONFIG_PCI is not set 309# CONFIG_PCI is not set
314# CONFIG_PCI_DOMAINS is not set 310# CONFIG_PCI_DOMAINS is not set
@@ -337,7 +333,6 @@ CONFIG_NET=y
337# Networking options 333# Networking options
338# 334#
339CONFIG_PACKET=y 335CONFIG_PACKET=y
340# CONFIG_PACKET_MMAP is not set
341CONFIG_UNIX=y 336CONFIG_UNIX=y
342CONFIG_XFRM=y 337CONFIG_XFRM=y
343# CONFIG_XFRM_USER is not set 338# CONFIG_XFRM_USER is not set
@@ -515,6 +510,8 @@ CONFIG_MTD_PHYSMAP_OF=y
515# UBI - Unsorted block images 510# UBI - Unsorted block images
516# 511#
517# CONFIG_MTD_UBI is not set 512# CONFIG_MTD_UBI is not set
513CONFIG_OF_FLATTREE=y
514CONFIG_OF_DYNAMIC=y
518CONFIG_OF_DEVICE=y 515CONFIG_OF_DEVICE=y
519CONFIG_OF_MDIO=y 516CONFIG_OF_MDIO=y
520# CONFIG_PARPORT is not set 517# CONFIG_PARPORT is not set
@@ -542,6 +539,7 @@ CONFIG_HAVE_IDE=y
542# 539#
543# SCSI device support 540# SCSI device support
544# 541#
542CONFIG_SCSI_MOD=y
545# CONFIG_RAID_ATTRS is not set 543# CONFIG_RAID_ATTRS is not set
546# CONFIG_SCSI is not set 544# CONFIG_SCSI is not set
547# CONFIG_SCSI_DMA is not set 545# CONFIG_SCSI_DMA is not set
@@ -643,6 +641,7 @@ CONFIG_SERIAL_CORE=y
643CONFIG_SERIAL_CORE_CONSOLE=y 641CONFIG_SERIAL_CORE_CONSOLE=y
644CONFIG_SERIAL_CPM=y 642CONFIG_SERIAL_CPM=y
645CONFIG_SERIAL_CPM_CONSOLE=y 643CONFIG_SERIAL_CPM_CONSOLE=y
644# CONFIG_SERIAL_TIMBERDALE is not set
646# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 645# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
647CONFIG_UNIX98_PTYS=y 646CONFIG_UNIX98_PTYS=y
648# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 647# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -801,6 +800,7 @@ CONFIG_JFFS2_ZLIB=y
801# CONFIG_JFFS2_LZO is not set 800# CONFIG_JFFS2_LZO is not set
802CONFIG_JFFS2_RTIME=y 801CONFIG_JFFS2_RTIME=y
803# CONFIG_JFFS2_RUBIN is not set 802# CONFIG_JFFS2_RUBIN is not set
803# CONFIG_LOGFS is not set
804CONFIG_CRAMFS=y 804CONFIG_CRAMFS=y
805# CONFIG_SQUASHFS is not set 805# CONFIG_SQUASHFS is not set
806# CONFIG_VXFS_FS is not set 806# CONFIG_VXFS_FS is not set
@@ -825,6 +825,7 @@ CONFIG_SUNRPC=y
825# CONFIG_RPCSEC_GSS_KRB5 is not set 825# CONFIG_RPCSEC_GSS_KRB5 is not set
826# CONFIG_RPCSEC_GSS_SPKM3 is not set 826# CONFIG_RPCSEC_GSS_SPKM3 is not set
827# CONFIG_SMB_FS is not set 827# CONFIG_SMB_FS is not set
828# CONFIG_CEPH_FS is not set
828# CONFIG_CIFS is not set 829# CONFIG_CIFS is not set
829# CONFIG_NCP_FS is not set 830# CONFIG_NCP_FS is not set
830# CONFIG_CODA_FS is not set 831# CONFIG_CODA_FS is not set
@@ -892,6 +893,7 @@ CONFIG_DEBUG_FS=y
892# CONFIG_DEBUG_KERNEL is not set 893# CONFIG_DEBUG_KERNEL is not set
893# CONFIG_DEBUG_MEMORY_INIT is not set 894# CONFIG_DEBUG_MEMORY_INIT is not set
894# CONFIG_RCU_CPU_STALL_DETECTOR is not set 895# CONFIG_RCU_CPU_STALL_DETECTOR is not set
896# CONFIG_LKDTM is not set
895# CONFIG_LATENCYTOP is not set 897# CONFIG_LATENCYTOP is not set
896# CONFIG_SYSCTL_SYSCALL_CHECK is not set 898# CONFIG_SYSCTL_SYSCALL_CHECK is not set
897CONFIG_HAVE_FUNCTION_TRACER=y 899CONFIG_HAVE_FUNCTION_TRACER=y
diff --git a/arch/powerpc/configs/mpc512x_defconfig b/arch/powerpc/configs/mpc512x_defconfig
index a04727295d46..aa2654e6edeb 100644
--- a/arch/powerpc/configs/mpc512x_defconfig
+++ b/arch/powerpc/configs/mpc512x_defconfig
@@ -97,8 +97,7 @@ CONFIG_RCU_FANOUT=32
97CONFIG_LOG_BUF_SHIFT=16 97CONFIG_LOG_BUF_SHIFT=16
98# CONFIG_GROUP_SCHED is not set 98# CONFIG_GROUP_SCHED is not set
99# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
100CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
101CONFIG_SYSFS_DEPRECATED_V2=y
102# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
103CONFIG_NAMESPACES=y 102CONFIG_NAMESPACES=y
104# CONFIG_UTS_NS is not set 103# CONFIG_UTS_NS is not set
diff --git a/arch/powerpc/configs/mpc5200_defconfig b/arch/powerpc/configs/mpc5200_defconfig
index 7012ac0134f0..f875ec21c91c 100644
--- a/arch/powerpc/configs/mpc5200_defconfig
+++ b/arch/powerpc/configs/mpc5200_defconfig
@@ -97,8 +97,7 @@ CONFIG_RCU_FANOUT=32
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
100CONFIG_SYSFS_DEPRECATED=y 100# CONFIG_SYSFS_DEPRECATED_V2 is not set
101CONFIG_SYSFS_DEPRECATED_V2=y
102# CONFIG_RELAY is not set 101# CONFIG_RELAY is not set
103CONFIG_NAMESPACES=y 102CONFIG_NAMESPACES=y
104# CONFIG_UTS_NS is not set 103# CONFIG_UTS_NS is not set
diff --git a/arch/powerpc/configs/mpc7448_hpc2_defconfig b/arch/powerpc/configs/mpc7448_hpc2_defconfig
index 1315b775a6d2..b1e88fe1d9fb 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:04 2010 4# Mon Apr 19 23:16:28 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -94,14 +94,8 @@ CONFIG_RCU_FANOUT=32
94# CONFIG_TREE_RCU_TRACE is not set 94# CONFIG_TREE_RCU_TRACE is not set
95# CONFIG_IKCONFIG is not set 95# CONFIG_IKCONFIG is not set
96CONFIG_LOG_BUF_SHIFT=14 96CONFIG_LOG_BUF_SHIFT=14
97CONFIG_GROUP_SCHED=y
98# CONFIG_FAIR_GROUP_SCHED is not set
99# CONFIG_RT_GROUP_SCHED is not set
100CONFIG_USER_SCHED=y
101# CONFIG_CGROUP_SCHED is not set
102# CONFIG_CGROUPS is not set 97# CONFIG_CGROUPS is not set
103CONFIG_SYSFS_DEPRECATED=y 98# CONFIG_SYSFS_DEPRECATED_V2 is not set
104CONFIG_SYSFS_DEPRECATED_V2=y
105# CONFIG_RELAY is not set 99# CONFIG_RELAY is not set
106# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
107CONFIG_BLK_DEV_INITRD=y 101CONFIG_BLK_DEV_INITRD=y
@@ -109,6 +103,7 @@ CONFIG_INITRAMFS_SOURCE=""
109CONFIG_RD_GZIP=y 103CONFIG_RD_GZIP=y
110# CONFIG_RD_BZIP2 is not set 104# CONFIG_RD_BZIP2 is not set
111# CONFIG_RD_LZMA is not set 105# CONFIG_RD_LZMA is not set
106# CONFIG_RD_LZO is not set
112# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 107# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
113CONFIG_SYSCTL=y 108CONFIG_SYSCTL=y
114CONFIG_ANON_INODES=y 109CONFIG_ANON_INODES=y
@@ -311,6 +306,7 @@ CONFIG_ISA_DMA_API=y
311# Bus options 306# Bus options
312# 307#
313CONFIG_ZONE_DMA=y 308CONFIG_ZONE_DMA=y
309# CONFIG_NEED_DMA_MAP_STATE is not set
314CONFIG_GENERIC_ISA_DMA=y 310CONFIG_GENERIC_ISA_DMA=y
315# CONFIG_PPC_INDIRECT_PCI is not set 311# CONFIG_PPC_INDIRECT_PCI is not set
316CONFIG_PCI=y 312CONFIG_PCI=y
@@ -319,7 +315,6 @@ CONFIG_PCI_SYSCALL=y
319# CONFIG_PCIEPORTBUS is not set 315# CONFIG_PCIEPORTBUS is not set
320CONFIG_ARCH_SUPPORTS_MSI=y 316CONFIG_ARCH_SUPPORTS_MSI=y
321# CONFIG_PCI_MSI is not set 317# CONFIG_PCI_MSI is not set
322# CONFIG_PCI_LEGACY is not set
323# CONFIG_PCI_STUB is not set 318# CONFIG_PCI_STUB is not set
324# CONFIG_PCI_IOV is not set 319# CONFIG_PCI_IOV is not set
325# CONFIG_PCCARD is not set 320# CONFIG_PCCARD is not set
@@ -345,7 +340,6 @@ CONFIG_NET=y
345# Networking options 340# Networking options
346# 341#
347CONFIG_PACKET=y 342CONFIG_PACKET=y
348# CONFIG_PACKET_MMAP is not set
349CONFIG_UNIX=y 343CONFIG_UNIX=y
350CONFIG_XFRM=y 344CONFIG_XFRM=y
351CONFIG_XFRM_USER=y 345CONFIG_XFRM_USER=y
@@ -440,6 +434,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
440# CONFIG_SYS_HYPERVISOR is not set 434# CONFIG_SYS_HYPERVISOR is not set
441# CONFIG_CONNECTOR is not set 435# CONFIG_CONNECTOR is not set
442# CONFIG_MTD is not set 436# CONFIG_MTD is not set
437CONFIG_OF_FLATTREE=y
438CONFIG_OF_DYNAMIC=y
443CONFIG_OF_DEVICE=y 439CONFIG_OF_DEVICE=y
444CONFIG_OF_MDIO=y 440CONFIG_OF_MDIO=y
445# CONFIG_PARPORT is not set 441# CONFIG_PARPORT is not set
@@ -484,6 +480,7 @@ CONFIG_HAVE_IDE=y
484# 480#
485# SCSI device support 481# SCSI device support
486# 482#
483CONFIG_SCSI_MOD=y
487# CONFIG_RAID_ATTRS is not set 484# CONFIG_RAID_ATTRS is not set
488CONFIG_SCSI=y 485CONFIG_SCSI=y
489CONFIG_SCSI_DMA=y 486CONFIG_SCSI_DMA=y
@@ -605,6 +602,7 @@ CONFIG_SATA_MV=y
605# CONFIG_PATA_IT821X is not set 602# CONFIG_PATA_IT821X is not set
606# CONFIG_PATA_IT8213 is not set 603# CONFIG_PATA_IT8213 is not set
607# CONFIG_PATA_JMICRON is not set 604# CONFIG_PATA_JMICRON is not set
605# CONFIG_PATA_LEGACY is not set
608# CONFIG_PATA_TRIFLEX is not set 606# CONFIG_PATA_TRIFLEX is not set
609# CONFIG_PATA_MARVELL is not set 607# CONFIG_PATA_MARVELL is not set
610# CONFIG_PATA_MPIIX is not set 608# CONFIG_PATA_MPIIX is not set
@@ -696,6 +694,7 @@ CONFIG_NET_PCI=y
696# CONFIG_PCNET32 is not set 694# CONFIG_PCNET32 is not set
697# CONFIG_AMD8111_ETH is not set 695# CONFIG_AMD8111_ETH is not set
698# CONFIG_ADAPTEC_STARFIRE is not set 696# CONFIG_ADAPTEC_STARFIRE is not set
697# CONFIG_KSZ884X_PCI is not set
699# CONFIG_B44 is not set 698# CONFIG_B44 is not set
700# CONFIG_FORCEDETH is not set 699# CONFIG_FORCEDETH is not set
701CONFIG_E100=y 700CONFIG_E100=y
@@ -750,6 +749,8 @@ CONFIG_NETDEV_10000=y
750# CONFIG_CHELSIO_T1 is not set 749# CONFIG_CHELSIO_T1 is not set
751CONFIG_CHELSIO_T3_DEPENDS=y 750CONFIG_CHELSIO_T3_DEPENDS=y
752# CONFIG_CHELSIO_T3 is not set 751# CONFIG_CHELSIO_T3 is not set
752CONFIG_CHELSIO_T4_DEPENDS=y
753# CONFIG_CHELSIO_T4 is not set
753# CONFIG_ENIC is not set 754# CONFIG_ENIC is not set
754# CONFIG_IXGBE is not set 755# CONFIG_IXGBE is not set
755# CONFIG_IXGB is not set 756# CONFIG_IXGB is not set
@@ -762,6 +763,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
762# CONFIG_MLX4_CORE is not set 763# CONFIG_MLX4_CORE is not set
763# CONFIG_TEHUTI is not set 764# CONFIG_TEHUTI is not set
764# CONFIG_BNX2X is not set 765# CONFIG_BNX2X is not set
766# CONFIG_QLCNIC is not set
765# CONFIG_QLGE is not set 767# CONFIG_QLGE is not set
766# CONFIG_SFC is not set 768# CONFIG_SFC is not set
767# CONFIG_BE2NET is not set 769# CONFIG_BE2NET is not set
@@ -846,6 +848,7 @@ CONFIG_SERIAL_CORE=y
846CONFIG_SERIAL_CORE_CONSOLE=y 848CONFIG_SERIAL_CORE_CONSOLE=y
847# CONFIG_SERIAL_JSM is not set 849# CONFIG_SERIAL_JSM is not set
848# CONFIG_SERIAL_OF_PLATFORM is not set 850# CONFIG_SERIAL_OF_PLATFORM is not set
851# CONFIG_SERIAL_TIMBERDALE is not set
849# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 852# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
850CONFIG_UNIX98_PTYS=y 853CONFIG_UNIX98_PTYS=y
851# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 854# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -910,6 +913,7 @@ CONFIG_SSB_POSSIBLE=y
910# CONFIG_MFD_SM501 is not set 913# CONFIG_MFD_SM501 is not set
911# CONFIG_HTC_PASIC3 is not set 914# CONFIG_HTC_PASIC3 is not set
912# CONFIG_MFD_TMIO is not set 915# CONFIG_MFD_TMIO is not set
916# CONFIG_LPC_SCH is not set
913# CONFIG_REGULATOR is not set 917# CONFIG_REGULATOR is not set
914# CONFIG_MEDIA_SUPPORT is not set 918# CONFIG_MEDIA_SUPPORT is not set
915 919
@@ -918,6 +922,7 @@ CONFIG_SSB_POSSIBLE=y
918# 922#
919# CONFIG_AGP is not set 923# CONFIG_AGP is not set
920CONFIG_VGA_ARB=y 924CONFIG_VGA_ARB=y
925CONFIG_VGA_ARB_MAX_GPUS=16
921# CONFIG_DRM is not set 926# CONFIG_DRM is not set
922# CONFIG_VGASTATE is not set 927# CONFIG_VGASTATE is not set
923CONFIG_VIDEO_OUTPUT_CONTROL=y 928CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1044,6 +1049,7 @@ CONFIG_MISC_FILESYSTEMS=y
1044# CONFIG_BEFS_FS is not set 1049# CONFIG_BEFS_FS is not set
1045# CONFIG_BFS_FS is not set 1050# CONFIG_BFS_FS is not set
1046# CONFIG_EFS_FS is not set 1051# CONFIG_EFS_FS is not set
1052# CONFIG_LOGFS is not set
1047# CONFIG_CRAMFS is not set 1053# CONFIG_CRAMFS is not set
1048# CONFIG_SQUASHFS is not set 1054# CONFIG_SQUASHFS is not set
1049# CONFIG_VXFS_FS is not set 1055# CONFIG_VXFS_FS is not set
@@ -1066,6 +1072,7 @@ CONFIG_SUNRPC=y
1066# CONFIG_RPCSEC_GSS_KRB5 is not set 1072# CONFIG_RPCSEC_GSS_KRB5 is not set
1067# CONFIG_RPCSEC_GSS_SPKM3 is not set 1073# CONFIG_RPCSEC_GSS_SPKM3 is not set
1068# CONFIG_SMB_FS is not set 1074# CONFIG_SMB_FS is not set
1075# CONFIG_CEPH_FS is not set
1069# CONFIG_CIFS is not set 1076# CONFIG_CIFS is not set
1070# CONFIG_NCP_FS is not set 1077# CONFIG_NCP_FS is not set
1071# CONFIG_CODA_FS is not set 1078# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/mpc8272_ads_defconfig b/arch/powerpc/configs/mpc8272_ads_defconfig
index 9073778d3575..6875fb89377e 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:05 2010 4# Mon Apr 19 23:16:29 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,8 +96,7 @@ CONFIG_IKCONFIG=y
96CONFIG_IKCONFIG_PROC=y 96CONFIG_IKCONFIG_PROC=y
97CONFIG_LOG_BUF_SHIFT=14 97CONFIG_LOG_BUF_SHIFT=14
98# CONFIG_CGROUPS is not set 98# CONFIG_CGROUPS is not set
99CONFIG_SYSFS_DEPRECATED=y 99# CONFIG_SYSFS_DEPRECATED_V2 is not set
100CONFIG_SYSFS_DEPRECATED_V2=y
101# CONFIG_RELAY is not set 100# CONFIG_RELAY is not set
102# CONFIG_NAMESPACES is not set 101# CONFIG_NAMESPACES is not set
103# CONFIG_BLK_DEV_INITRD is not set 102# CONFIG_BLK_DEV_INITRD is not set
@@ -301,6 +300,7 @@ CONFIG_ISA_DMA_API=y
301# Bus options 300# Bus options
302# 301#
303CONFIG_ZONE_DMA=y 302CONFIG_ZONE_DMA=y
303# CONFIG_NEED_DMA_MAP_STATE is not set
304CONFIG_PPC_INDIRECT_PCI=y 304CONFIG_PPC_INDIRECT_PCI=y
305CONFIG_FSL_SOC=y 305CONFIG_FSL_SOC=y
306CONFIG_PPC_PCI_CHOICE=y 306CONFIG_PPC_PCI_CHOICE=y
@@ -311,7 +311,6 @@ CONFIG_PCI_8260=y
311# CONFIG_PCIEPORTBUS is not set 311# CONFIG_PCIEPORTBUS is not set
312CONFIG_ARCH_SUPPORTS_MSI=y 312CONFIG_ARCH_SUPPORTS_MSI=y
313# CONFIG_PCI_MSI is not set 313# CONFIG_PCI_MSI is not set
314# CONFIG_PCI_LEGACY is not set
315# CONFIG_PCI_DEBUG is not set 314# CONFIG_PCI_DEBUG is not set
316# CONFIG_PCI_STUB is not set 315# CONFIG_PCI_STUB is not set
317# CONFIG_PCI_IOV is not set 316# CONFIG_PCI_IOV is not set
@@ -338,7 +337,6 @@ CONFIG_NET=y
338# Networking options 337# Networking options
339# 338#
340CONFIG_PACKET=y 339CONFIG_PACKET=y
341# CONFIG_PACKET_MMAP is not set
342CONFIG_UNIX=y 340CONFIG_UNIX=y
343CONFIG_XFRM=y 341CONFIG_XFRM=y
344# CONFIG_XFRM_USER is not set 342# CONFIG_XFRM_USER is not set
@@ -540,6 +538,8 @@ CONFIG_MTD_PHYSMAP_OF=y
540# UBI - Unsorted block images 538# UBI - Unsorted block images
541# 539#
542# CONFIG_MTD_UBI is not set 540# CONFIG_MTD_UBI is not set
541CONFIG_OF_FLATTREE=y
542CONFIG_OF_DYNAMIC=y
543CONFIG_OF_DEVICE=y 543CONFIG_OF_DEVICE=y
544CONFIG_OF_GPIO=y 544CONFIG_OF_GPIO=y
545CONFIG_OF_MDIO=y 545CONFIG_OF_MDIO=y
@@ -569,6 +569,7 @@ CONFIG_HAVE_IDE=y
569# 569#
570# SCSI device support 570# SCSI device support
571# 571#
572CONFIG_SCSI_MOD=y
572# CONFIG_RAID_ATTRS is not set 573# CONFIG_RAID_ATTRS is not set
573# CONFIG_SCSI is not set 574# CONFIG_SCSI is not set
574# CONFIG_SCSI_DMA is not set 575# CONFIG_SCSI_DMA is not set
@@ -674,6 +675,8 @@ CONFIG_NETDEV_10000=y
674# CONFIG_CHELSIO_T1 is not set 675# CONFIG_CHELSIO_T1 is not set
675CONFIG_CHELSIO_T3_DEPENDS=y 676CONFIG_CHELSIO_T3_DEPENDS=y
676# CONFIG_CHELSIO_T3 is not set 677# CONFIG_CHELSIO_T3 is not set
678CONFIG_CHELSIO_T4_DEPENDS=y
679# CONFIG_CHELSIO_T4 is not set
677# CONFIG_ENIC is not set 680# CONFIG_ENIC is not set
678# CONFIG_IXGBE is not set 681# CONFIG_IXGBE is not set
679# CONFIG_IXGB is not set 682# CONFIG_IXGB is not set
@@ -686,6 +689,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
686# CONFIG_MLX4_CORE is not set 689# CONFIG_MLX4_CORE is not set
687# CONFIG_TEHUTI is not set 690# CONFIG_TEHUTI is not set
688# CONFIG_BNX2X is not set 691# CONFIG_BNX2X is not set
692# CONFIG_QLCNIC is not set
689# CONFIG_QLGE is not set 693# CONFIG_QLGE is not set
690# CONFIG_SFC is not set 694# CONFIG_SFC is not set
691# CONFIG_BE2NET is not set 695# CONFIG_BE2NET is not set
@@ -797,6 +801,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
797CONFIG_SERIAL_CPM=y 801CONFIG_SERIAL_CPM=y
798CONFIG_SERIAL_CPM_CONSOLE=y 802CONFIG_SERIAL_CPM_CONSOLE=y
799# CONFIG_SERIAL_JSM is not set 803# CONFIG_SERIAL_JSM is not set
804# CONFIG_SERIAL_TIMBERDALE is not set
800# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 805# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
801CONFIG_UNIX98_PTYS=y 806CONFIG_UNIX98_PTYS=y
802# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 807# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -825,7 +830,9 @@ CONFIG_GPIOLIB=y
825# 830#
826# Memory mapped GPIO expanders: 831# Memory mapped GPIO expanders:
827# 832#
833# CONFIG_GPIO_IT8761E is not set
828# CONFIG_GPIO_XILINX is not set 834# CONFIG_GPIO_XILINX is not set
835# CONFIG_GPIO_SCH is not set
829 836
830# 837#
831# I2C GPIO expanders: 838# I2C GPIO expanders:
@@ -864,6 +871,8 @@ CONFIG_SSB_POSSIBLE=y
864# CONFIG_MFD_SM501 is not set 871# CONFIG_MFD_SM501 is not set
865# CONFIG_HTC_PASIC3 is not set 872# CONFIG_HTC_PASIC3 is not set
866# CONFIG_MFD_TMIO is not set 873# CONFIG_MFD_TMIO is not set
874# CONFIG_MFD_TIMBERDALE is not set
875# CONFIG_LPC_SCH is not set
867# CONFIG_REGULATOR is not set 876# CONFIG_REGULATOR is not set
868# CONFIG_MEDIA_SUPPORT is not set 877# CONFIG_MEDIA_SUPPORT is not set
869 878
@@ -872,6 +881,7 @@ CONFIG_SSB_POSSIBLE=y
872# 881#
873# CONFIG_AGP is not set 882# CONFIG_AGP is not set
874CONFIG_VGA_ARB=y 883CONFIG_VGA_ARB=y
884CONFIG_VGA_ARB_MAX_GPUS=16
875# CONFIG_DRM is not set 885# CONFIG_DRM is not set
876# CONFIG_VGASTATE is not set 886# CONFIG_VGASTATE is not set
877# CONFIG_VIDEO_OUTPUT_CONTROL is not set 887# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -933,6 +943,7 @@ CONFIG_AUTOFS4_FS=y
933# 943#
934# Caches 944# Caches
935# 945#
946# CONFIG_FSCACHE is not set
936 947
937# 948#
938# CD-ROM/DVD Filesystems 949# CD-ROM/DVD Filesystems
diff --git a/arch/powerpc/configs/mpc83xx_defconfig b/arch/powerpc/configs/mpc83xx_defconfig
index 05bec4835687..bbe5ae61d979 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:06 2010 4# Mon Apr 19 23:16:30 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -98,14 +98,8 @@ CONFIG_RCU_FANOUT=32
98# CONFIG_TREE_RCU_TRACE is not set 98# CONFIG_TREE_RCU_TRACE is not set
99# CONFIG_IKCONFIG is not set 99# CONFIG_IKCONFIG is not set
100CONFIG_LOG_BUF_SHIFT=14 100CONFIG_LOG_BUF_SHIFT=14
101CONFIG_GROUP_SCHED=y
102CONFIG_FAIR_GROUP_SCHED=y
103# CONFIG_RT_GROUP_SCHED is not set
104CONFIG_USER_SCHED=y
105# CONFIG_CGROUP_SCHED is not set
106# CONFIG_CGROUPS is not set 101# CONFIG_CGROUPS is not set
107CONFIG_SYSFS_DEPRECATED=y 102# CONFIG_SYSFS_DEPRECATED_V2 is not set
108CONFIG_SYSFS_DEPRECATED_V2=y
109# CONFIG_RELAY is not set 103# CONFIG_RELAY is not set
110# CONFIG_NAMESPACES is not set 104# CONFIG_NAMESPACES is not set
111CONFIG_BLK_DEV_INITRD=y 105CONFIG_BLK_DEV_INITRD=y
@@ -113,6 +107,7 @@ CONFIG_INITRAMFS_SOURCE=""
113CONFIG_RD_GZIP=y 107CONFIG_RD_GZIP=y
114# CONFIG_RD_BZIP2 is not set 108# CONFIG_RD_BZIP2 is not set
115# CONFIG_RD_LZMA is not set 109# CONFIG_RD_LZMA is not set
110# CONFIG_RD_LZO is not set
116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 111# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
117CONFIG_SYSCTL=y 112CONFIG_SYSCTL=y
118CONFIG_ANON_INODES=y 113CONFIG_ANON_INODES=y
@@ -126,7 +121,7 @@ CONFIG_BUG=y
126CONFIG_ELF_CORE=y 121CONFIG_ELF_CORE=y
127CONFIG_BASE_FULL=y 122CONFIG_BASE_FULL=y
128CONFIG_FUTEX=y 123CONFIG_FUTEX=y
129# CONFIG_EPOLL is not set 124CONFIG_EPOLL=y
130CONFIG_SIGNALFD=y 125CONFIG_SIGNALFD=y
131CONFIG_TIMERFD=y 126CONFIG_TIMERFD=y
132CONFIG_EVENTFD=y 127CONFIG_EVENTFD=y
@@ -331,6 +326,7 @@ CONFIG_ISA_DMA_API=y
331# Bus options 326# Bus options
332# 327#
333CONFIG_ZONE_DMA=y 328CONFIG_ZONE_DMA=y
329# CONFIG_NEED_DMA_MAP_STATE is not set
334CONFIG_GENERIC_ISA_DMA=y 330CONFIG_GENERIC_ISA_DMA=y
335CONFIG_PPC_INDIRECT_PCI=y 331CONFIG_PPC_INDIRECT_PCI=y
336CONFIG_FSL_SOC=y 332CONFIG_FSL_SOC=y
@@ -344,7 +340,6 @@ CONFIG_PCI_SYSCALL=y
344# CONFIG_PCIEPORTBUS is not set 340# CONFIG_PCIEPORTBUS is not set
345CONFIG_ARCH_SUPPORTS_MSI=y 341CONFIG_ARCH_SUPPORTS_MSI=y
346# CONFIG_PCI_MSI is not set 342# CONFIG_PCI_MSI is not set
347# CONFIG_PCI_LEGACY is not set
348# CONFIG_PCI_STUB is not set 343# CONFIG_PCI_STUB is not set
349# CONFIG_PCI_IOV is not set 344# CONFIG_PCI_IOV is not set
350# CONFIG_PCCARD is not set 345# CONFIG_PCCARD is not set
@@ -370,7 +365,6 @@ CONFIG_NET=y
370# Networking options 365# Networking options
371# 366#
372CONFIG_PACKET=y 367CONFIG_PACKET=y
373# CONFIG_PACKET_MMAP is not set
374CONFIG_UNIX=y 368CONFIG_UNIX=y
375CONFIG_XFRM=y 369CONFIG_XFRM=y
376CONFIG_XFRM_USER=m 370CONFIG_XFRM_USER=m
@@ -560,6 +554,8 @@ CONFIG_MTD_NAND_FSL_ELBC=y
560# UBI - Unsorted block images 554# UBI - Unsorted block images
561# 555#
562# CONFIG_MTD_UBI is not set 556# CONFIG_MTD_UBI is not set
557CONFIG_OF_FLATTREE=y
558CONFIG_OF_DYNAMIC=y
563CONFIG_OF_DEVICE=y 559CONFIG_OF_DEVICE=y
564CONFIG_OF_GPIO=y 560CONFIG_OF_GPIO=y
565CONFIG_OF_I2C=y 561CONFIG_OF_I2C=y
@@ -597,6 +593,7 @@ CONFIG_MISC_DEVICES=y
597# CONFIG_ENCLOSURE_SERVICES is not set 593# CONFIG_ENCLOSURE_SERVICES is not set
598# CONFIG_HP_ILO is not set 594# CONFIG_HP_ILO is not set
599# CONFIG_ISL29003 is not set 595# CONFIG_ISL29003 is not set
596# CONFIG_SENSORS_TSL2550 is not set
600# CONFIG_DS1682 is not set 597# CONFIG_DS1682 is not set
601# CONFIG_C2PORT is not set 598# CONFIG_C2PORT is not set
602 599
@@ -614,6 +611,7 @@ CONFIG_HAVE_IDE=y
614# 611#
615# SCSI device support 612# SCSI device support
616# 613#
614CONFIG_SCSI_MOD=y
617# CONFIG_RAID_ATTRS is not set 615# CONFIG_RAID_ATTRS is not set
618CONFIG_SCSI=y 616CONFIG_SCSI=y
619CONFIG_SCSI_DMA=y 617CONFIG_SCSI_DMA=y
@@ -712,7 +710,7 @@ CONFIG_ATA_SFF=y
712# CONFIG_SATA_QSTOR is not set 710# CONFIG_SATA_QSTOR is not set
713# CONFIG_SATA_PROMISE is not set 711# CONFIG_SATA_PROMISE is not set
714# CONFIG_SATA_SX4 is not set 712# CONFIG_SATA_SX4 is not set
715# CONFIG_SATA_SIL is not set 713CONFIG_SATA_SIL=y
716# CONFIG_SATA_SIS is not set 714# CONFIG_SATA_SIS is not set
717# CONFIG_SATA_ULI is not set 715# CONFIG_SATA_ULI is not set
718# CONFIG_SATA_VIA is not set 716# CONFIG_SATA_VIA is not set
@@ -737,6 +735,7 @@ CONFIG_ATA_SFF=y
737# CONFIG_PATA_IT821X is not set 735# CONFIG_PATA_IT821X is not set
738# CONFIG_PATA_IT8213 is not set 736# CONFIG_PATA_IT8213 is not set
739# CONFIG_PATA_JMICRON is not set 737# CONFIG_PATA_JMICRON is not set
738# CONFIG_PATA_LEGACY is not set
740# CONFIG_PATA_TRIFLEX is not set 739# CONFIG_PATA_TRIFLEX is not set
741# CONFIG_PATA_MARVELL is not set 740# CONFIG_PATA_MARVELL is not set
742# CONFIG_PATA_MPIIX is not set 741# CONFIG_PATA_MPIIX is not set
@@ -863,6 +862,8 @@ CONFIG_NETDEV_10000=y
863# CONFIG_CHELSIO_T1 is not set 862# CONFIG_CHELSIO_T1 is not set
864CONFIG_CHELSIO_T3_DEPENDS=y 863CONFIG_CHELSIO_T3_DEPENDS=y
865# CONFIG_CHELSIO_T3 is not set 864# CONFIG_CHELSIO_T3 is not set
865CONFIG_CHELSIO_T4_DEPENDS=y
866# CONFIG_CHELSIO_T4 is not set
866# CONFIG_ENIC is not set 867# CONFIG_ENIC is not set
867# CONFIG_IXGBE is not set 868# CONFIG_IXGBE is not set
868# CONFIG_IXGB is not set 869# CONFIG_IXGB is not set
@@ -875,6 +876,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
875# CONFIG_MLX4_CORE is not set 876# CONFIG_MLX4_CORE is not set
876# CONFIG_TEHUTI is not set 877# CONFIG_TEHUTI is not set
877# CONFIG_BNX2X is not set 878# CONFIG_BNX2X is not set
879# CONFIG_QLCNIC is not set
878# CONFIG_QLGE is not set 880# CONFIG_QLGE is not set
879# CONFIG_SFC is not set 881# CONFIG_SFC is not set
880# CONFIG_BE2NET is not set 882# CONFIG_BE2NET is not set
@@ -970,6 +972,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
970# CONFIG_SERIAL_JSM is not set 972# CONFIG_SERIAL_JSM is not set
971# CONFIG_SERIAL_OF_PLATFORM is not set 973# CONFIG_SERIAL_OF_PLATFORM is not set
972# CONFIG_SERIAL_QE is not set 974# CONFIG_SERIAL_QE is not set
975# CONFIG_SERIAL_TIMBERDALE is not set
973# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 976# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
974CONFIG_UNIX98_PTYS=y 977CONFIG_UNIX98_PTYS=y
975# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 978# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -980,8 +983,6 @@ CONFIG_LEGACY_PTY_COUNT=256
980CONFIG_HW_RANDOM=y 983CONFIG_HW_RANDOM=y
981# CONFIG_HW_RANDOM_TIMERIOMEM is not set 984# CONFIG_HW_RANDOM_TIMERIOMEM is not set
982# CONFIG_NVRAM is not set 985# CONFIG_NVRAM is not set
983CONFIG_GEN_RTC=y
984# CONFIG_GEN_RTC_X is not set
985# CONFIG_R3964 is not set 986# CONFIG_R3964 is not set
986# CONFIG_APPLICOM is not set 987# CONFIG_APPLICOM is not set
987# CONFIG_RAW_DRIVER is not set 988# CONFIG_RAW_DRIVER is not set
@@ -1022,6 +1023,7 @@ CONFIG_I2C_HELPER_AUTO=y
1022CONFIG_I2C_MPC=y 1023CONFIG_I2C_MPC=y
1023# CONFIG_I2C_OCORES is not set 1024# CONFIG_I2C_OCORES is not set
1024# CONFIG_I2C_SIMTEC is not set 1025# CONFIG_I2C_SIMTEC is not set
1026# CONFIG_I2C_XILINX is not set
1025 1027
1026# 1028#
1027# External I2C/SMBus adapter drivers 1029# External I2C/SMBus adapter drivers
@@ -1035,15 +1037,9 @@ CONFIG_I2C_MPC=y
1035# 1037#
1036# CONFIG_I2C_PCA_PLATFORM is not set 1038# CONFIG_I2C_PCA_PLATFORM is not set
1037# CONFIG_I2C_STUB is not set 1039# CONFIG_I2C_STUB is not set
1038
1039#
1040# Miscellaneous I2C Chip support
1041#
1042# CONFIG_SENSORS_TSL2550 is not set
1043# CONFIG_I2C_DEBUG_CORE is not set 1040# CONFIG_I2C_DEBUG_CORE is not set
1044# CONFIG_I2C_DEBUG_ALGO is not set 1041# CONFIG_I2C_DEBUG_ALGO is not set
1045# CONFIG_I2C_DEBUG_BUS is not set 1042# CONFIG_I2C_DEBUG_BUS is not set
1046# CONFIG_I2C_DEBUG_CHIP is not set
1047# CONFIG_SPI is not set 1043# CONFIG_SPI is not set
1048 1044
1049# 1045#
@@ -1058,14 +1054,18 @@ CONFIG_GPIOLIB=y
1058# 1054#
1059# Memory mapped GPIO expanders: 1055# Memory mapped GPIO expanders:
1060# 1056#
1057# CONFIG_GPIO_IT8761E is not set
1061# CONFIG_GPIO_XILINX is not set 1058# CONFIG_GPIO_XILINX is not set
1059# CONFIG_GPIO_SCH is not set
1062 1060
1063# 1061#
1064# I2C GPIO expanders: 1062# I2C GPIO expanders:
1065# 1063#
1064# CONFIG_GPIO_MAX7300 is not set
1066# CONFIG_GPIO_MAX732X is not set 1065# CONFIG_GPIO_MAX732X is not set
1067# CONFIG_GPIO_PCA953X is not set 1066# CONFIG_GPIO_PCA953X is not set
1068# CONFIG_GPIO_PCF857X is not set 1067# CONFIG_GPIO_PCF857X is not set
1068# CONFIG_GPIO_ADP5588 is not set
1069 1069
1070# 1070#
1071# PCI GPIO expanders: 1071# PCI GPIO expanders:
@@ -1098,10 +1098,11 @@ CONFIG_HWMON=y
1098# CONFIG_SENSORS_ADM1029 is not set 1098# CONFIG_SENSORS_ADM1029 is not set
1099# CONFIG_SENSORS_ADM1031 is not set 1099# CONFIG_SENSORS_ADM1031 is not set
1100# CONFIG_SENSORS_ADM9240 is not set 1100# CONFIG_SENSORS_ADM9240 is not set
1101# CONFIG_SENSORS_ADT7411 is not set
1101# CONFIG_SENSORS_ADT7462 is not set 1102# CONFIG_SENSORS_ADT7462 is not set
1102# CONFIG_SENSORS_ADT7470 is not set 1103# CONFIG_SENSORS_ADT7470 is not set
1103# CONFIG_SENSORS_ADT7473 is not set
1104# CONFIG_SENSORS_ADT7475 is not set 1104# CONFIG_SENSORS_ADT7475 is not set
1105# CONFIG_SENSORS_ASC7621 is not set
1105# CONFIG_SENSORS_ATXP1 is not set 1106# CONFIG_SENSORS_ATXP1 is not set
1106# CONFIG_SENSORS_DS1621 is not set 1107# CONFIG_SENSORS_DS1621 is not set
1107# CONFIG_SENSORS_I5K_AMB is not set 1108# CONFIG_SENSORS_I5K_AMB is not set
@@ -1139,6 +1140,7 @@ CONFIG_HWMON=y
1139# CONFIG_SENSORS_SMSC47M192 is not set 1140# CONFIG_SENSORS_SMSC47M192 is not set
1140# CONFIG_SENSORS_SMSC47B397 is not set 1141# CONFIG_SENSORS_SMSC47B397 is not set
1141# CONFIG_SENSORS_ADS7828 is not set 1142# CONFIG_SENSORS_ADS7828 is not set
1143# CONFIG_SENSORS_AMC6821 is not set
1142# CONFIG_SENSORS_THMC50 is not set 1144# CONFIG_SENSORS_THMC50 is not set
1143# CONFIG_SENSORS_TMP401 is not set 1145# CONFIG_SENSORS_TMP401 is not set
1144# CONFIG_SENSORS_TMP421 is not set 1146# CONFIG_SENSORS_TMP421 is not set
@@ -1186,19 +1188,24 @@ CONFIG_SSB_POSSIBLE=y
1186# Multifunction device drivers 1188# Multifunction device drivers
1187# 1189#
1188# CONFIG_MFD_CORE is not set 1190# CONFIG_MFD_CORE is not set
1191# CONFIG_MFD_88PM860X is not set
1189# CONFIG_MFD_SM501 is not set 1192# CONFIG_MFD_SM501 is not set
1190# CONFIG_HTC_PASIC3 is not set 1193# CONFIG_HTC_PASIC3 is not set
1194# CONFIG_HTC_I2CPLD is not set
1191# CONFIG_TPS65010 is not set 1195# CONFIG_TPS65010 is not set
1192# CONFIG_TWL4030_CORE is not set 1196# CONFIG_TWL4030_CORE is not set
1193# CONFIG_MFD_TMIO is not set 1197# CONFIG_MFD_TMIO is not set
1194# CONFIG_PMIC_DA903X is not set 1198# CONFIG_PMIC_DA903X is not set
1195# CONFIG_PMIC_ADP5520 is not set 1199# CONFIG_PMIC_ADP5520 is not set
1200# CONFIG_MFD_MAX8925 is not set
1196# CONFIG_MFD_WM8400 is not set 1201# CONFIG_MFD_WM8400 is not set
1197# CONFIG_MFD_WM831X is not set 1202# CONFIG_MFD_WM831X is not set
1198# CONFIG_MFD_WM8350_I2C is not set 1203# CONFIG_MFD_WM8350_I2C is not set
1204# CONFIG_MFD_WM8994 is not set
1199# CONFIG_MFD_PCF50633 is not set 1205# CONFIG_MFD_PCF50633 is not set
1200# CONFIG_AB3100_CORE is not set 1206# CONFIG_AB3100_CORE is not set
1201# CONFIG_MFD_88PM8607 is not set 1207# CONFIG_MFD_TIMBERDALE is not set
1208# CONFIG_LPC_SCH is not set
1202# CONFIG_REGULATOR is not set 1209# CONFIG_REGULATOR is not set
1203# CONFIG_MEDIA_SUPPORT is not set 1210# CONFIG_MEDIA_SUPPORT is not set
1204 1211
@@ -1207,6 +1214,7 @@ CONFIG_SSB_POSSIBLE=y
1207# 1214#
1208# CONFIG_AGP is not set 1215# CONFIG_AGP is not set
1209CONFIG_VGA_ARB=y 1216CONFIG_VGA_ARB=y
1217CONFIG_VGA_ARB_MAX_GPUS=16
1210# CONFIG_DRM is not set 1218# CONFIG_DRM is not set
1211# CONFIG_VGASTATE is not set 1219# CONFIG_VGASTATE is not set
1212CONFIG_VIDEO_OUTPUT_CONTROL=m 1220CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1232,6 +1240,7 @@ CONFIG_USB_HID=y
1232# 1240#
1233# Special HID drivers 1241# Special HID drivers
1234# 1242#
1243# CONFIG_HID_3M_PCT is not set
1235CONFIG_HID_A4TECH=y 1244CONFIG_HID_A4TECH=y
1236CONFIG_HID_APPLE=y 1245CONFIG_HID_APPLE=y
1237CONFIG_HID_BELKIN=y 1246CONFIG_HID_BELKIN=y
@@ -1247,14 +1256,19 @@ CONFIG_HID_GYRATION=y
1247CONFIG_HID_LOGITECH=y 1256CONFIG_HID_LOGITECH=y
1248# CONFIG_LOGITECH_FF is not set 1257# CONFIG_LOGITECH_FF is not set
1249# CONFIG_LOGIRUMBLEPAD2_FF is not set 1258# CONFIG_LOGIRUMBLEPAD2_FF is not set
1259# CONFIG_LOGIG940_FF is not set
1250CONFIG_HID_MICROSOFT=y 1260CONFIG_HID_MICROSOFT=y
1261# CONFIG_HID_MOSART is not set
1251CONFIG_HID_MONTEREY=y 1262CONFIG_HID_MONTEREY=y
1252# CONFIG_HID_NTRIG is not set 1263# CONFIG_HID_NTRIG is not set
1264# CONFIG_HID_ORTEK is not set
1253CONFIG_HID_PANTHERLORD=y 1265CONFIG_HID_PANTHERLORD=y
1254# CONFIG_PANTHERLORD_FF is not set 1266# CONFIG_PANTHERLORD_FF is not set
1255CONFIG_HID_PETALYNX=y 1267CONFIG_HID_PETALYNX=y
1268# CONFIG_HID_QUANTA is not set
1256CONFIG_HID_SAMSUNG=y 1269CONFIG_HID_SAMSUNG=y
1257CONFIG_HID_SONY=y 1270CONFIG_HID_SONY=y
1271# CONFIG_HID_STANTUM is not set
1258CONFIG_HID_SUNPLUS=y 1272CONFIG_HID_SUNPLUS=y
1259# CONFIG_HID_GREENASIA is not set 1273# CONFIG_HID_GREENASIA is not set
1260# CONFIG_HID_SMARTJOYPLUS is not set 1274# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1344,7 +1358,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1344# CONFIG_USB_RIO500 is not set 1358# CONFIG_USB_RIO500 is not set
1345# CONFIG_USB_LEGOTOWER is not set 1359# CONFIG_USB_LEGOTOWER is not set
1346# CONFIG_USB_LCD is not set 1360# CONFIG_USB_LCD is not set
1347# CONFIG_USB_BERRY_CHARGE is not set
1348# CONFIG_USB_LED is not set 1361# CONFIG_USB_LED is not set
1349# CONFIG_USB_CYPRESS_CY7C63 is not set 1362# CONFIG_USB_CYPRESS_CY7C63 is not set
1350# CONFIG_USB_CYTHERM is not set 1363# CONFIG_USB_CYTHERM is not set
@@ -1357,7 +1370,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1357# CONFIG_USB_IOWARRIOR is not set 1370# CONFIG_USB_IOWARRIOR is not set
1358# CONFIG_USB_TEST is not set 1371# CONFIG_USB_TEST is not set
1359# CONFIG_USB_ISIGHTFW is not set 1372# CONFIG_USB_ISIGHTFW is not set
1360# CONFIG_USB_VST is not set
1361# CONFIG_USB_GADGET is not set 1373# CONFIG_USB_GADGET is not set
1362 1374
1363# 1375#
@@ -1372,7 +1384,65 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
1372# CONFIG_ACCESSIBILITY is not set 1384# CONFIG_ACCESSIBILITY is not set
1373# CONFIG_INFINIBAND is not set 1385# CONFIG_INFINIBAND is not set
1374# CONFIG_EDAC is not set 1386# CONFIG_EDAC is not set
1375# CONFIG_RTC_CLASS is not set 1387CONFIG_RTC_LIB=y
1388CONFIG_RTC_CLASS=y
1389CONFIG_RTC_HCTOSYS=y
1390CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1391# CONFIG_RTC_DEBUG is not set
1392
1393#
1394# RTC interfaces
1395#
1396CONFIG_RTC_INTF_SYSFS=y
1397CONFIG_RTC_INTF_PROC=y
1398CONFIG_RTC_INTF_DEV=y
1399# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1400# CONFIG_RTC_DRV_TEST is not set
1401
1402#
1403# I2C RTC drivers
1404#
1405CONFIG_RTC_DRV_DS1307=y
1406CONFIG_RTC_DRV_DS1374=y
1407# CONFIG_RTC_DRV_DS1672 is not set
1408# CONFIG_RTC_DRV_MAX6900 is not set
1409# CONFIG_RTC_DRV_RS5C372 is not set
1410# CONFIG_RTC_DRV_ISL1208 is not set
1411# CONFIG_RTC_DRV_X1205 is not set
1412# CONFIG_RTC_DRV_PCF8563 is not set
1413# CONFIG_RTC_DRV_PCF8583 is not set
1414# CONFIG_RTC_DRV_M41T80 is not set
1415# CONFIG_RTC_DRV_BQ32K is not set
1416# CONFIG_RTC_DRV_S35390A is not set
1417# CONFIG_RTC_DRV_FM3130 is not set
1418# CONFIG_RTC_DRV_RX8581 is not set
1419# CONFIG_RTC_DRV_RX8025 is not set
1420
1421#
1422# SPI RTC drivers
1423#
1424
1425#
1426# Platform RTC drivers
1427#
1428# CONFIG_RTC_DRV_CMOS is not set
1429# CONFIG_RTC_DRV_DS1286 is not set
1430# CONFIG_RTC_DRV_DS1511 is not set
1431# CONFIG_RTC_DRV_DS1553 is not set
1432# CONFIG_RTC_DRV_DS1742 is not set
1433# CONFIG_RTC_DRV_STK17TA8 is not set
1434# CONFIG_RTC_DRV_M48T86 is not set
1435# CONFIG_RTC_DRV_M48T35 is not set
1436# CONFIG_RTC_DRV_M48T59 is not set
1437# CONFIG_RTC_DRV_MSM6242 is not set
1438# CONFIG_RTC_DRV_BQ4802 is not set
1439# CONFIG_RTC_DRV_RP5C01 is not set
1440# CONFIG_RTC_DRV_V3020 is not set
1441
1442#
1443# on-CPU RTC drivers
1444#
1445# CONFIG_RTC_DRV_GENERIC is not set
1376# CONFIG_DMADEVICES is not set 1446# CONFIG_DMADEVICES is not set
1377# CONFIG_AUXDISPLAY is not set 1447# CONFIG_AUXDISPLAY is not set
1378# CONFIG_UIO is not set 1448# CONFIG_UIO is not set
@@ -1453,6 +1523,7 @@ CONFIG_MISC_FILESYSTEMS=y
1453# CONFIG_BFS_FS is not set 1523# CONFIG_BFS_FS is not set
1454# CONFIG_EFS_FS is not set 1524# CONFIG_EFS_FS is not set
1455# CONFIG_JFFS2_FS is not set 1525# CONFIG_JFFS2_FS is not set
1526# CONFIG_LOGFS is not set
1456# CONFIG_CRAMFS is not set 1527# CONFIG_CRAMFS is not set
1457# CONFIG_SQUASHFS is not set 1528# CONFIG_SQUASHFS is not set
1458# CONFIG_VXFS_FS is not set 1529# CONFIG_VXFS_FS is not set
@@ -1479,6 +1550,7 @@ CONFIG_SUNRPC_GSS=y
1479CONFIG_RPCSEC_GSS_KRB5=y 1550CONFIG_RPCSEC_GSS_KRB5=y
1480# CONFIG_RPCSEC_GSS_SPKM3 is not set 1551# CONFIG_RPCSEC_GSS_SPKM3 is not set
1481# CONFIG_SMB_FS is not set 1552# CONFIG_SMB_FS is not set
1553# CONFIG_CEPH_FS is not set
1482# CONFIG_CIFS is not set 1554# CONFIG_CIFS is not set
1483# CONFIG_NCP_FS is not set 1555# CONFIG_NCP_FS is not set
1484# CONFIG_CODA_FS is not set 1556# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig
index 8f35f8049c92..cfebef9f9123 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:06 2010 4# Mon Apr 19 23:16:31 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -68,6 +68,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
68# CONFIG_PPC_DCR_NATIVE is not set 68# CONFIG_PPC_DCR_NATIVE is not set
69# CONFIG_PPC_DCR_MMIO is not set 69# CONFIG_PPC_DCR_MMIO is not set
70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 70CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
71CONFIG_PPC_ADV_DEBUG_REGS=y
72CONFIG_PPC_ADV_DEBUG_IACS=2
73CONFIG_PPC_ADV_DEBUG_DACS=2
74CONFIG_PPC_ADV_DEBUG_DVCS=0
71CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 75CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
72CONFIG_CONSTRUCTORS=y 76CONFIG_CONSTRUCTORS=y
73 77
@@ -103,14 +107,8 @@ CONFIG_RCU_FANOUT=32
103CONFIG_IKCONFIG=y 107CONFIG_IKCONFIG=y
104CONFIG_IKCONFIG_PROC=y 108CONFIG_IKCONFIG_PROC=y
105CONFIG_LOG_BUF_SHIFT=14 109CONFIG_LOG_BUF_SHIFT=14
106CONFIG_GROUP_SCHED=y
107# CONFIG_FAIR_GROUP_SCHED is not set
108# CONFIG_RT_GROUP_SCHED is not set
109CONFIG_USER_SCHED=y
110# CONFIG_CGROUP_SCHED is not set
111# CONFIG_CGROUPS is not set 110# CONFIG_CGROUPS is not set
112CONFIG_SYSFS_DEPRECATED=y 111# CONFIG_SYSFS_DEPRECATED_V2 is not set
113CONFIG_SYSFS_DEPRECATED_V2=y
114# CONFIG_RELAY is not set 112# CONFIG_RELAY is not set
115# CONFIG_NAMESPACES is not set 113# CONFIG_NAMESPACES is not set
116CONFIG_BLK_DEV_INITRD=y 114CONFIG_BLK_DEV_INITRD=y
@@ -118,6 +116,7 @@ CONFIG_INITRAMFS_SOURCE=""
118CONFIG_RD_GZIP=y 116CONFIG_RD_GZIP=y
119# CONFIG_RD_BZIP2 is not set 117# CONFIG_RD_BZIP2 is not set
120# CONFIG_RD_LZMA is not set 118# CONFIG_RD_LZMA is not set
119# CONFIG_RD_LZO is not set
121# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 120# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
122CONFIG_SYSCTL=y 121CONFIG_SYSCTL=y
123CONFIG_ANON_INODES=y 122CONFIG_ANON_INODES=y
@@ -334,6 +333,7 @@ CONFIG_ISA_DMA_API=y
334# Bus options 333# Bus options
335# 334#
336CONFIG_ZONE_DMA=y 335CONFIG_ZONE_DMA=y
336# CONFIG_NEED_DMA_MAP_STATE is not set
337CONFIG_GENERIC_ISA_DMA=y 337CONFIG_GENERIC_ISA_DMA=y
338CONFIG_PPC_INDIRECT_PCI=y 338CONFIG_PPC_INDIRECT_PCI=y
339CONFIG_FSL_SOC=y 339CONFIG_FSL_SOC=y
@@ -345,7 +345,6 @@ CONFIG_PCI_SYSCALL=y
345# CONFIG_PCIEPORTBUS is not set 345# CONFIG_PCIEPORTBUS is not set
346CONFIG_ARCH_SUPPORTS_MSI=y 346CONFIG_ARCH_SUPPORTS_MSI=y
347CONFIG_PCI_MSI=y 347CONFIG_PCI_MSI=y
348# CONFIG_PCI_LEGACY is not set
349# CONFIG_PCI_DEBUG is not set 348# CONFIG_PCI_DEBUG is not set
350# CONFIG_PCI_STUB is not set 349# CONFIG_PCI_STUB is not set
351# CONFIG_PCI_IOV is not set 350# CONFIG_PCI_IOV is not set
@@ -376,7 +375,6 @@ CONFIG_NET=y
376# Networking options 375# Networking options
377# 376#
378CONFIG_PACKET=y 377CONFIG_PACKET=y
379# CONFIG_PACKET_MMAP is not set
380CONFIG_UNIX=y 378CONFIG_UNIX=y
381CONFIG_XFRM=y 379CONFIG_XFRM=y
382CONFIG_XFRM_USER=y 380CONFIG_XFRM_USER=y
@@ -509,6 +507,8 @@ CONFIG_EXTRA_FIRMWARE=""
509# CONFIG_SYS_HYPERVISOR is not set 507# CONFIG_SYS_HYPERVISOR is not set
510# CONFIG_CONNECTOR is not set 508# CONFIG_CONNECTOR is not set
511# CONFIG_MTD is not set 509# CONFIG_MTD is not set
510CONFIG_OF_FLATTREE=y
511CONFIG_OF_DYNAMIC=y
512CONFIG_OF_DEVICE=y 512CONFIG_OF_DEVICE=y
513CONFIG_OF_GPIO=y 513CONFIG_OF_GPIO=y
514CONFIG_OF_I2C=y 514CONFIG_OF_I2C=y
@@ -546,6 +546,7 @@ CONFIG_MISC_DEVICES=y
546# CONFIG_ENCLOSURE_SERVICES is not set 546# CONFIG_ENCLOSURE_SERVICES is not set
547# CONFIG_HP_ILO is not set 547# CONFIG_HP_ILO is not set
548# CONFIG_ISL29003 is not set 548# CONFIG_ISL29003 is not set
549# CONFIG_SENSORS_TSL2550 is not set
549# CONFIG_DS1682 is not set 550# CONFIG_DS1682 is not set
550# CONFIG_C2PORT is not set 551# CONFIG_C2PORT is not set
551 552
@@ -563,6 +564,7 @@ CONFIG_HAVE_IDE=y
563# 564#
564# SCSI device support 565# SCSI device support
565# 566#
567CONFIG_SCSI_MOD=y
566# CONFIG_RAID_ATTRS is not set 568# CONFIG_RAID_ATTRS is not set
567CONFIG_SCSI=y 569CONFIG_SCSI=y
568CONFIG_SCSI_DMA=y 570CONFIG_SCSI_DMA=y
@@ -687,6 +689,7 @@ CONFIG_PATA_ALI=y
687# CONFIG_PATA_IT821X is not set 689# CONFIG_PATA_IT821X is not set
688# CONFIG_PATA_IT8213 is not set 690# CONFIG_PATA_IT8213 is not set
689# CONFIG_PATA_JMICRON is not set 691# CONFIG_PATA_JMICRON is not set
692# CONFIG_PATA_LEGACY is not set
690# CONFIG_PATA_TRIFLEX is not set 693# CONFIG_PATA_TRIFLEX is not set
691# CONFIG_PATA_MARVELL is not set 694# CONFIG_PATA_MARVELL is not set
692# CONFIG_PATA_MPIIX is not set 695# CONFIG_PATA_MPIIX is not set
@@ -817,8 +820,11 @@ CONFIG_NETDEV_10000=y
817# CONFIG_CHELSIO_T1 is not set 820# CONFIG_CHELSIO_T1 is not set
818CONFIG_CHELSIO_T3_DEPENDS=y 821CONFIG_CHELSIO_T3_DEPENDS=y
819# CONFIG_CHELSIO_T3 is not set 822# CONFIG_CHELSIO_T3 is not set
823CONFIG_CHELSIO_T4_DEPENDS=y
824# CONFIG_CHELSIO_T4 is not set
820# CONFIG_ENIC is not set 825# CONFIG_ENIC is not set
821# CONFIG_IXGBE is not set 826# CONFIG_IXGBE is not set
827# CONFIG_IXGBEVF is not set
822# CONFIG_IXGB is not set 828# CONFIG_IXGB is not set
823# CONFIG_S2IO is not set 829# CONFIG_S2IO is not set
824# CONFIG_VXGE is not set 830# CONFIG_VXGE is not set
@@ -829,6 +835,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
829# CONFIG_MLX4_CORE is not set 835# CONFIG_MLX4_CORE is not set
830# CONFIG_TEHUTI is not set 836# CONFIG_TEHUTI is not set
831# CONFIG_BNX2X is not set 837# CONFIG_BNX2X is not set
838# CONFIG_QLCNIC is not set
832# CONFIG_QLGE is not set 839# CONFIG_QLGE is not set
833# CONFIG_SFC is not set 840# CONFIG_SFC is not set
834# CONFIG_BE2NET is not set 841# CONFIG_BE2NET is not set
@@ -941,6 +948,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
941# CONFIG_SERIAL_JSM is not set 948# CONFIG_SERIAL_JSM is not set
942# CONFIG_SERIAL_OF_PLATFORM is not set 949# CONFIG_SERIAL_OF_PLATFORM is not set
943CONFIG_SERIAL_QE=m 950CONFIG_SERIAL_QE=m
951# CONFIG_SERIAL_TIMBERDALE is not set
944# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 952# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
945CONFIG_UNIX98_PTYS=y 953CONFIG_UNIX98_PTYS=y
946# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 954# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -993,6 +1001,7 @@ CONFIG_I2C_CPM=m
993CONFIG_I2C_MPC=y 1001CONFIG_I2C_MPC=y
994# CONFIG_I2C_OCORES is not set 1002# CONFIG_I2C_OCORES is not set
995# CONFIG_I2C_SIMTEC is not set 1003# CONFIG_I2C_SIMTEC is not set
1004# CONFIG_I2C_XILINX is not set
996 1005
997# 1006#
998# External I2C/SMBus adapter drivers 1007# External I2C/SMBus adapter drivers
@@ -1006,15 +1015,9 @@ CONFIG_I2C_MPC=y
1006# 1015#
1007# CONFIG_I2C_PCA_PLATFORM is not set 1016# CONFIG_I2C_PCA_PLATFORM is not set
1008# CONFIG_I2C_STUB is not set 1017# CONFIG_I2C_STUB is not set
1009
1010#
1011# Miscellaneous I2C Chip support
1012#
1013# CONFIG_SENSORS_TSL2550 is not set
1014# CONFIG_I2C_DEBUG_CORE is not set 1018# CONFIG_I2C_DEBUG_CORE is not set
1015# CONFIG_I2C_DEBUG_ALGO is not set 1019# CONFIG_I2C_DEBUG_ALGO is not set
1016# CONFIG_I2C_DEBUG_BUS is not set 1020# CONFIG_I2C_DEBUG_BUS is not set
1017# CONFIG_I2C_DEBUG_CHIP is not set
1018# CONFIG_SPI is not set 1021# CONFIG_SPI is not set
1019 1022
1020# 1023#
@@ -1030,14 +1033,18 @@ CONFIG_GPIOLIB=y
1030# 1033#
1031# Memory mapped GPIO expanders: 1034# Memory mapped GPIO expanders:
1032# 1035#
1036# CONFIG_GPIO_IT8761E is not set
1033# CONFIG_GPIO_XILINX is not set 1037# CONFIG_GPIO_XILINX is not set
1038# CONFIG_GPIO_SCH is not set
1034 1039
1035# 1040#
1036# I2C GPIO expanders: 1041# I2C GPIO expanders:
1037# 1042#
1043# CONFIG_GPIO_MAX7300 is not set
1038# CONFIG_GPIO_MAX732X is not set 1044# CONFIG_GPIO_MAX732X is not set
1039# CONFIG_GPIO_PCA953X is not set 1045# CONFIG_GPIO_PCA953X is not set
1040# CONFIG_GPIO_PCF857X is not set 1046# CONFIG_GPIO_PCF857X is not set
1047# CONFIG_GPIO_ADP5588 is not set
1041 1048
1042# 1049#
1043# PCI GPIO expanders: 1050# PCI GPIO expanders:
@@ -1069,20 +1076,25 @@ CONFIG_SSB_POSSIBLE=y
1069# Multifunction device drivers 1076# Multifunction device drivers
1070# 1077#
1071# CONFIG_MFD_CORE is not set 1078# CONFIG_MFD_CORE is not set
1079# CONFIG_MFD_88PM860X is not set
1072# CONFIG_MFD_SM501 is not set 1080# CONFIG_MFD_SM501 is not set
1073# CONFIG_HTC_PASIC3 is not set 1081# CONFIG_HTC_PASIC3 is not set
1082# CONFIG_HTC_I2CPLD is not set
1074# CONFIG_UCB1400_CORE is not set 1083# CONFIG_UCB1400_CORE is not set
1075# CONFIG_TPS65010 is not set 1084# CONFIG_TPS65010 is not set
1076# CONFIG_TWL4030_CORE is not set 1085# CONFIG_TWL4030_CORE is not set
1077# CONFIG_MFD_TMIO is not set 1086# CONFIG_MFD_TMIO is not set
1078# CONFIG_PMIC_DA903X is not set 1087# CONFIG_PMIC_DA903X is not set
1079# CONFIG_PMIC_ADP5520 is not set 1088# CONFIG_PMIC_ADP5520 is not set
1089# CONFIG_MFD_MAX8925 is not set
1080# CONFIG_MFD_WM8400 is not set 1090# CONFIG_MFD_WM8400 is not set
1081# CONFIG_MFD_WM831X is not set 1091# CONFIG_MFD_WM831X is not set
1082# CONFIG_MFD_WM8350_I2C is not set 1092# CONFIG_MFD_WM8350_I2C is not set
1093# CONFIG_MFD_WM8994 is not set
1083# CONFIG_MFD_PCF50633 is not set 1094# CONFIG_MFD_PCF50633 is not set
1084# CONFIG_AB3100_CORE is not set 1095# CONFIG_AB3100_CORE is not set
1085# CONFIG_MFD_88PM8607 is not set 1096# CONFIG_MFD_TIMBERDALE is not set
1097# CONFIG_LPC_SCH is not set
1086# CONFIG_REGULATOR is not set 1098# CONFIG_REGULATOR is not set
1087# CONFIG_MEDIA_SUPPORT is not set 1099# CONFIG_MEDIA_SUPPORT is not set
1088 1100
@@ -1091,6 +1103,7 @@ CONFIG_SSB_POSSIBLE=y
1091# 1103#
1092# CONFIG_AGP is not set 1104# CONFIG_AGP is not set
1093CONFIG_VGA_ARB=y 1105CONFIG_VGA_ARB=y
1106CONFIG_VGA_ARB_MAX_GPUS=16
1094# CONFIG_DRM is not set 1107# CONFIG_DRM is not set
1095# CONFIG_VGASTATE is not set 1108# CONFIG_VGASTATE is not set
1096CONFIG_VIDEO_OUTPUT_CONTROL=y 1109CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1208,6 +1221,7 @@ CONFIG_SND_INTEL8X0=y
1208CONFIG_SND_PPC=y 1221CONFIG_SND_PPC=y
1209CONFIG_SND_USB=y 1222CONFIG_SND_USB=y
1210# CONFIG_SND_USB_AUDIO is not set 1223# CONFIG_SND_USB_AUDIO is not set
1224# CONFIG_SND_USB_UA101 is not set
1211# CONFIG_SND_USB_USX2Y is not set 1225# CONFIG_SND_USB_USX2Y is not set
1212# CONFIG_SND_USB_CAIAQ is not set 1226# CONFIG_SND_USB_CAIAQ is not set
1213# CONFIG_SND_SOC is not set 1227# CONFIG_SND_SOC is not set
@@ -1227,6 +1241,7 @@ CONFIG_USB_HID=y
1227# 1241#
1228# Special HID drivers 1242# Special HID drivers
1229# 1243#
1244# CONFIG_HID_3M_PCT is not set
1230CONFIG_HID_A4TECH=y 1245CONFIG_HID_A4TECH=y
1231CONFIG_HID_APPLE=y 1246CONFIG_HID_APPLE=y
1232CONFIG_HID_BELKIN=y 1247CONFIG_HID_BELKIN=y
@@ -1242,14 +1257,19 @@ CONFIG_HID_GYRATION=y
1242CONFIG_HID_LOGITECH=y 1257CONFIG_HID_LOGITECH=y
1243# CONFIG_LOGITECH_FF is not set 1258# CONFIG_LOGITECH_FF is not set
1244# CONFIG_LOGIRUMBLEPAD2_FF is not set 1259# CONFIG_LOGIRUMBLEPAD2_FF is not set
1260# CONFIG_LOGIG940_FF is not set
1245CONFIG_HID_MICROSOFT=y 1261CONFIG_HID_MICROSOFT=y
1262# CONFIG_HID_MOSART is not set
1246CONFIG_HID_MONTEREY=y 1263CONFIG_HID_MONTEREY=y
1247# CONFIG_HID_NTRIG is not set 1264# CONFIG_HID_NTRIG is not set
1265# CONFIG_HID_ORTEK is not set
1248CONFIG_HID_PANTHERLORD=y 1266CONFIG_HID_PANTHERLORD=y
1249# CONFIG_PANTHERLORD_FF is not set 1267# CONFIG_PANTHERLORD_FF is not set
1250CONFIG_HID_PETALYNX=y 1268CONFIG_HID_PETALYNX=y
1269# CONFIG_HID_QUANTA is not set
1251CONFIG_HID_SAMSUNG=y 1270CONFIG_HID_SAMSUNG=y
1252CONFIG_HID_SONY=y 1271CONFIG_HID_SONY=y
1272# CONFIG_HID_STANTUM is not set
1253CONFIG_HID_SUNPLUS=y 1273CONFIG_HID_SUNPLUS=y
1254# CONFIG_HID_GREENASIA is not set 1274# CONFIG_HID_GREENASIA is not set
1255# CONFIG_HID_SMARTJOYPLUS is not set 1275# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1358,7 +1378,6 @@ CONFIG_USB_STORAGE=y
1358# CONFIG_USB_RIO500 is not set 1378# CONFIG_USB_RIO500 is not set
1359# CONFIG_USB_LEGOTOWER is not set 1379# CONFIG_USB_LEGOTOWER is not set
1360# CONFIG_USB_LCD is not set 1380# CONFIG_USB_LCD is not set
1361# CONFIG_USB_BERRY_CHARGE is not set
1362# CONFIG_USB_LED is not set 1381# CONFIG_USB_LED is not set
1363# CONFIG_USB_CYPRESS_CY7C63 is not set 1382# CONFIG_USB_CYPRESS_CY7C63 is not set
1364# CONFIG_USB_CYTHERM is not set 1383# CONFIG_USB_CYTHERM is not set
@@ -1371,7 +1390,6 @@ CONFIG_USB_STORAGE=y
1371# CONFIG_USB_IOWARRIOR is not set 1390# CONFIG_USB_IOWARRIOR is not set
1372# CONFIG_USB_TEST is not set 1391# CONFIG_USB_TEST is not set
1373# CONFIG_USB_ISIGHTFW is not set 1392# CONFIG_USB_ISIGHTFW is not set
1374# CONFIG_USB_VST is not set
1375# CONFIG_USB_GADGET is not set 1393# CONFIG_USB_GADGET is not set
1376 1394
1377# 1395#
@@ -1452,6 +1470,7 @@ CONFIG_RTC_DRV_CMOS=y
1452# 1470#
1453# CONFIG_RTC_DRV_GENERIC is not set 1471# CONFIG_RTC_DRV_GENERIC is not set
1454CONFIG_DMADEVICES=y 1472CONFIG_DMADEVICES=y
1473# CONFIG_DMADEVICES_DEBUG is not set
1455 1474
1456# 1475#
1457# DMA Devices 1476# DMA Devices
@@ -1554,6 +1573,7 @@ CONFIG_BEFS_FS=m
1554# CONFIG_BEFS_DEBUG is not set 1573# CONFIG_BEFS_DEBUG is not set
1555CONFIG_BFS_FS=m 1574CONFIG_BFS_FS=m
1556CONFIG_EFS_FS=m 1575CONFIG_EFS_FS=m
1576# CONFIG_LOGFS is not set
1557CONFIG_CRAMFS=y 1577CONFIG_CRAMFS=y
1558# CONFIG_SQUASHFS is not set 1578# CONFIG_SQUASHFS is not set
1559CONFIG_VXFS_FS=m 1579CONFIG_VXFS_FS=m
@@ -1585,6 +1605,7 @@ CONFIG_SUNRPC_GSS=y
1585CONFIG_RPCSEC_GSS_KRB5=y 1605CONFIG_RPCSEC_GSS_KRB5=y
1586# CONFIG_RPCSEC_GSS_SPKM3 is not set 1606# CONFIG_RPCSEC_GSS_SPKM3 is not set
1587# CONFIG_SMB_FS is not set 1607# CONFIG_SMB_FS is not set
1608# CONFIG_CEPH_FS is not set
1588# CONFIG_CIFS is not set 1609# CONFIG_CIFS is not set
1589# CONFIG_NCP_FS is not set 1610# CONFIG_NCP_FS is not set
1590# CONFIG_CODA_FS is not set 1611# CONFIG_CODA_FS is not set
@@ -1730,6 +1751,7 @@ CONFIG_DEBUG_INFO=y
1730# CONFIG_BACKTRACE_SELF_TEST is not set 1751# CONFIG_BACKTRACE_SELF_TEST is not set
1731# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1752# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1732# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1753# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1754# CONFIG_LKDTM is not set
1733# CONFIG_FAULT_INJECTION is not set 1755# CONFIG_FAULT_INJECTION is not set
1734# CONFIG_LATENCYTOP is not set 1756# CONFIG_LATENCYTOP is not set
1735CONFIG_SYSCTL_SYSCALL_CHECK=y 1757CONFIG_SYSCTL_SYSCALL_CHECK=y
diff --git a/arch/powerpc/configs/mpc85xx_smp_defconfig b/arch/powerpc/configs/mpc85xx_smp_defconfig
index 8755ea3c7f5f..f5451d80f19b 100644
--- a/arch/powerpc/configs/mpc85xx_smp_defconfig
+++ b/arch/powerpc/configs/mpc85xx_smp_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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:07 2010 4# Mon Apr 19 23:16:31 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -69,6 +69,10 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
69# CONFIG_PPC_DCR_NATIVE is not set 69# CONFIG_PPC_DCR_NATIVE is not set
70# CONFIG_PPC_DCR_MMIO is not set 70# CONFIG_PPC_DCR_MMIO is not set
71CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 71CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
72CONFIG_PPC_ADV_DEBUG_REGS=y
73CONFIG_PPC_ADV_DEBUG_IACS=2
74CONFIG_PPC_ADV_DEBUG_DACS=2
75CONFIG_PPC_ADV_DEBUG_DVCS=0
72CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 76CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
73CONFIG_CONSTRUCTORS=y 77CONFIG_CONSTRUCTORS=y
74 78
@@ -100,18 +104,13 @@ CONFIG_TREE_RCU=y
100# CONFIG_RCU_TRACE is not set 104# CONFIG_RCU_TRACE is not set
101CONFIG_RCU_FANOUT=32 105CONFIG_RCU_FANOUT=32
102# CONFIG_RCU_FANOUT_EXACT is not set 106# CONFIG_RCU_FANOUT_EXACT is not set
107# CONFIG_RCU_FAST_NO_HZ is not set
103# CONFIG_TREE_RCU_TRACE is not set 108# CONFIG_TREE_RCU_TRACE is not set
104CONFIG_IKCONFIG=y 109CONFIG_IKCONFIG=y
105CONFIG_IKCONFIG_PROC=y 110CONFIG_IKCONFIG_PROC=y
106CONFIG_LOG_BUF_SHIFT=14 111CONFIG_LOG_BUF_SHIFT=14
107CONFIG_GROUP_SCHED=y
108# CONFIG_FAIR_GROUP_SCHED is not set
109# CONFIG_RT_GROUP_SCHED is not set
110CONFIG_USER_SCHED=y
111# CONFIG_CGROUP_SCHED is not set
112# CONFIG_CGROUPS is not set 112# CONFIG_CGROUPS is not set
113CONFIG_SYSFS_DEPRECATED=y 113# CONFIG_SYSFS_DEPRECATED_V2 is not set
114CONFIG_SYSFS_DEPRECATED_V2=y
115# CONFIG_RELAY is not set 114# CONFIG_RELAY is not set
116# CONFIG_NAMESPACES is not set 115# CONFIG_NAMESPACES is not set
117CONFIG_BLK_DEV_INITRD=y 116CONFIG_BLK_DEV_INITRD=y
@@ -119,6 +118,7 @@ CONFIG_INITRAMFS_SOURCE=""
119CONFIG_RD_GZIP=y 118CONFIG_RD_GZIP=y
120# CONFIG_RD_BZIP2 is not set 119# CONFIG_RD_BZIP2 is not set
121# CONFIG_RD_LZMA is not set 120# CONFIG_RD_LZMA is not set
121# CONFIG_RD_LZO is not set
122# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 122# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
123CONFIG_SYSCTL=y 123CONFIG_SYSCTL=y
124CONFIG_ANON_INODES=y 124CONFIG_ANON_INODES=y
@@ -338,6 +338,7 @@ CONFIG_ISA_DMA_API=y
338# Bus options 338# Bus options
339# 339#
340CONFIG_ZONE_DMA=y 340CONFIG_ZONE_DMA=y
341# CONFIG_NEED_DMA_MAP_STATE is not set
341CONFIG_GENERIC_ISA_DMA=y 342CONFIG_GENERIC_ISA_DMA=y
342CONFIG_PPC_INDIRECT_PCI=y 343CONFIG_PPC_INDIRECT_PCI=y
343CONFIG_FSL_SOC=y 344CONFIG_FSL_SOC=y
@@ -349,7 +350,6 @@ CONFIG_PCI_SYSCALL=y
349# CONFIG_PCIEPORTBUS is not set 350# CONFIG_PCIEPORTBUS is not set
350CONFIG_ARCH_SUPPORTS_MSI=y 351CONFIG_ARCH_SUPPORTS_MSI=y
351CONFIG_PCI_MSI=y 352CONFIG_PCI_MSI=y
352# CONFIG_PCI_LEGACY is not set
353# CONFIG_PCI_DEBUG is not set 353# CONFIG_PCI_DEBUG is not set
354# CONFIG_PCI_STUB is not set 354# CONFIG_PCI_STUB is not set
355# CONFIG_PCI_IOV is not set 355# CONFIG_PCI_IOV is not set
@@ -380,7 +380,6 @@ CONFIG_NET=y
380# Networking options 380# Networking options
381# 381#
382CONFIG_PACKET=y 382CONFIG_PACKET=y
383# CONFIG_PACKET_MMAP is not set
384CONFIG_UNIX=y 383CONFIG_UNIX=y
385CONFIG_XFRM=y 384CONFIG_XFRM=y
386CONFIG_XFRM_USER=y 385CONFIG_XFRM_USER=y
@@ -513,6 +512,8 @@ CONFIG_EXTRA_FIRMWARE=""
513# CONFIG_SYS_HYPERVISOR is not set 512# CONFIG_SYS_HYPERVISOR is not set
514# CONFIG_CONNECTOR is not set 513# CONFIG_CONNECTOR is not set
515# CONFIG_MTD is not set 514# CONFIG_MTD is not set
515CONFIG_OF_FLATTREE=y
516CONFIG_OF_DYNAMIC=y
516CONFIG_OF_DEVICE=y 517CONFIG_OF_DEVICE=y
517CONFIG_OF_GPIO=y 518CONFIG_OF_GPIO=y
518CONFIG_OF_I2C=y 519CONFIG_OF_I2C=y
@@ -550,6 +551,7 @@ CONFIG_MISC_DEVICES=y
550# CONFIG_ENCLOSURE_SERVICES is not set 551# CONFIG_ENCLOSURE_SERVICES is not set
551# CONFIG_HP_ILO is not set 552# CONFIG_HP_ILO is not set
552# CONFIG_ISL29003 is not set 553# CONFIG_ISL29003 is not set
554# CONFIG_SENSORS_TSL2550 is not set
553# CONFIG_DS1682 is not set 555# CONFIG_DS1682 is not set
554# CONFIG_C2PORT is not set 556# CONFIG_C2PORT is not set
555 557
@@ -567,6 +569,7 @@ CONFIG_HAVE_IDE=y
567# 569#
568# SCSI device support 570# SCSI device support
569# 571#
572CONFIG_SCSI_MOD=y
570# CONFIG_RAID_ATTRS is not set 573# CONFIG_RAID_ATTRS is not set
571CONFIG_SCSI=y 574CONFIG_SCSI=y
572CONFIG_SCSI_DMA=y 575CONFIG_SCSI_DMA=y
@@ -691,6 +694,7 @@ CONFIG_PATA_ALI=y
691# CONFIG_PATA_IT821X is not set 694# CONFIG_PATA_IT821X is not set
692# CONFIG_PATA_IT8213 is not set 695# CONFIG_PATA_IT8213 is not set
693# CONFIG_PATA_JMICRON is not set 696# CONFIG_PATA_JMICRON is not set
697# CONFIG_PATA_LEGACY is not set
694# CONFIG_PATA_TRIFLEX is not set 698# CONFIG_PATA_TRIFLEX is not set
695# CONFIG_PATA_MARVELL is not set 699# CONFIG_PATA_MARVELL is not set
696# CONFIG_PATA_MPIIX is not set 700# CONFIG_PATA_MPIIX is not set
@@ -821,8 +825,11 @@ CONFIG_NETDEV_10000=y
821# CONFIG_CHELSIO_T1 is not set 825# CONFIG_CHELSIO_T1 is not set
822CONFIG_CHELSIO_T3_DEPENDS=y 826CONFIG_CHELSIO_T3_DEPENDS=y
823# CONFIG_CHELSIO_T3 is not set 827# CONFIG_CHELSIO_T3 is not set
828CONFIG_CHELSIO_T4_DEPENDS=y
829# CONFIG_CHELSIO_T4 is not set
824# CONFIG_ENIC is not set 830# CONFIG_ENIC is not set
825# CONFIG_IXGBE is not set 831# CONFIG_IXGBE is not set
832# CONFIG_IXGBEVF is not set
826# CONFIG_IXGB is not set 833# CONFIG_IXGB is not set
827# CONFIG_S2IO is not set 834# CONFIG_S2IO is not set
828# CONFIG_VXGE is not set 835# CONFIG_VXGE is not set
@@ -833,6 +840,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
833# CONFIG_MLX4_CORE is not set 840# CONFIG_MLX4_CORE is not set
834# CONFIG_TEHUTI is not set 841# CONFIG_TEHUTI is not set
835# CONFIG_BNX2X is not set 842# CONFIG_BNX2X is not set
843# CONFIG_QLCNIC is not set
836# CONFIG_QLGE is not set 844# CONFIG_QLGE is not set
837# CONFIG_SFC is not set 845# CONFIG_SFC is not set
838# CONFIG_BE2NET is not set 846# CONFIG_BE2NET is not set
@@ -945,6 +953,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
945# CONFIG_SERIAL_JSM is not set 953# CONFIG_SERIAL_JSM is not set
946# CONFIG_SERIAL_OF_PLATFORM is not set 954# CONFIG_SERIAL_OF_PLATFORM is not set
947CONFIG_SERIAL_QE=m 955CONFIG_SERIAL_QE=m
956# CONFIG_SERIAL_TIMBERDALE is not set
948# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 957# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
949CONFIG_UNIX98_PTYS=y 958CONFIG_UNIX98_PTYS=y
950# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 959# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -997,6 +1006,7 @@ CONFIG_I2C_CPM=m
997CONFIG_I2C_MPC=y 1006CONFIG_I2C_MPC=y
998# CONFIG_I2C_OCORES is not set 1007# CONFIG_I2C_OCORES is not set
999# CONFIG_I2C_SIMTEC is not set 1008# CONFIG_I2C_SIMTEC is not set
1009# CONFIG_I2C_XILINX is not set
1000 1010
1001# 1011#
1002# External I2C/SMBus adapter drivers 1012# External I2C/SMBus adapter drivers
@@ -1010,15 +1020,9 @@ CONFIG_I2C_MPC=y
1010# 1020#
1011# CONFIG_I2C_PCA_PLATFORM is not set 1021# CONFIG_I2C_PCA_PLATFORM is not set
1012# CONFIG_I2C_STUB is not set 1022# CONFIG_I2C_STUB is not set
1013
1014#
1015# Miscellaneous I2C Chip support
1016#
1017# CONFIG_SENSORS_TSL2550 is not set
1018# CONFIG_I2C_DEBUG_CORE is not set 1023# CONFIG_I2C_DEBUG_CORE is not set
1019# CONFIG_I2C_DEBUG_ALGO is not set 1024# CONFIG_I2C_DEBUG_ALGO is not set
1020# CONFIG_I2C_DEBUG_BUS is not set 1025# CONFIG_I2C_DEBUG_BUS is not set
1021# CONFIG_I2C_DEBUG_CHIP is not set
1022# CONFIG_SPI is not set 1026# CONFIG_SPI is not set
1023 1027
1024# 1028#
@@ -1034,14 +1038,18 @@ CONFIG_GPIOLIB=y
1034# 1038#
1035# Memory mapped GPIO expanders: 1039# Memory mapped GPIO expanders:
1036# 1040#
1041# CONFIG_GPIO_IT8761E is not set
1037# CONFIG_GPIO_XILINX is not set 1042# CONFIG_GPIO_XILINX is not set
1043# CONFIG_GPIO_SCH is not set
1038 1044
1039# 1045#
1040# I2C GPIO expanders: 1046# I2C GPIO expanders:
1041# 1047#
1048# CONFIG_GPIO_MAX7300 is not set
1042# CONFIG_GPIO_MAX732X is not set 1049# CONFIG_GPIO_MAX732X is not set
1043# CONFIG_GPIO_PCA953X is not set 1050# CONFIG_GPIO_PCA953X is not set
1044# CONFIG_GPIO_PCF857X is not set 1051# CONFIG_GPIO_PCF857X is not set
1052# CONFIG_GPIO_ADP5588 is not set
1045 1053
1046# 1054#
1047# PCI GPIO expanders: 1055# PCI GPIO expanders:
@@ -1073,20 +1081,25 @@ CONFIG_SSB_POSSIBLE=y
1073# Multifunction device drivers 1081# Multifunction device drivers
1074# 1082#
1075# CONFIG_MFD_CORE is not set 1083# CONFIG_MFD_CORE is not set
1084# CONFIG_MFD_88PM860X is not set
1076# CONFIG_MFD_SM501 is not set 1085# CONFIG_MFD_SM501 is not set
1077# CONFIG_HTC_PASIC3 is not set 1086# CONFIG_HTC_PASIC3 is not set
1087# CONFIG_HTC_I2CPLD is not set
1078# CONFIG_UCB1400_CORE is not set 1088# CONFIG_UCB1400_CORE is not set
1079# CONFIG_TPS65010 is not set 1089# CONFIG_TPS65010 is not set
1080# CONFIG_TWL4030_CORE is not set 1090# CONFIG_TWL4030_CORE is not set
1081# CONFIG_MFD_TMIO is not set 1091# CONFIG_MFD_TMIO is not set
1082# CONFIG_PMIC_DA903X is not set 1092# CONFIG_PMIC_DA903X is not set
1083# CONFIG_PMIC_ADP5520 is not set 1093# CONFIG_PMIC_ADP5520 is not set
1094# CONFIG_MFD_MAX8925 is not set
1084# CONFIG_MFD_WM8400 is not set 1095# CONFIG_MFD_WM8400 is not set
1085# CONFIG_MFD_WM831X is not set 1096# CONFIG_MFD_WM831X is not set
1086# CONFIG_MFD_WM8350_I2C is not set 1097# CONFIG_MFD_WM8350_I2C is not set
1098# CONFIG_MFD_WM8994 is not set
1087# CONFIG_MFD_PCF50633 is not set 1099# CONFIG_MFD_PCF50633 is not set
1088# CONFIG_AB3100_CORE is not set 1100# CONFIG_AB3100_CORE is not set
1089# CONFIG_MFD_88PM8607 is not set 1101# CONFIG_MFD_TIMBERDALE is not set
1102# CONFIG_LPC_SCH is not set
1090# CONFIG_REGULATOR is not set 1103# CONFIG_REGULATOR is not set
1091# CONFIG_MEDIA_SUPPORT is not set 1104# CONFIG_MEDIA_SUPPORT is not set
1092 1105
@@ -1095,6 +1108,7 @@ CONFIG_SSB_POSSIBLE=y
1095# 1108#
1096# CONFIG_AGP is not set 1109# CONFIG_AGP is not set
1097CONFIG_VGA_ARB=y 1110CONFIG_VGA_ARB=y
1111CONFIG_VGA_ARB_MAX_GPUS=16
1098# CONFIG_DRM is not set 1112# CONFIG_DRM is not set
1099# CONFIG_VGASTATE is not set 1113# CONFIG_VGASTATE is not set
1100CONFIG_VIDEO_OUTPUT_CONTROL=y 1114CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1212,6 +1226,7 @@ CONFIG_SND_INTEL8X0=y
1212CONFIG_SND_PPC=y 1226CONFIG_SND_PPC=y
1213CONFIG_SND_USB=y 1227CONFIG_SND_USB=y
1214# CONFIG_SND_USB_AUDIO is not set 1228# CONFIG_SND_USB_AUDIO is not set
1229# CONFIG_SND_USB_UA101 is not set
1215# CONFIG_SND_USB_USX2Y is not set 1230# CONFIG_SND_USB_USX2Y is not set
1216# CONFIG_SND_USB_CAIAQ is not set 1231# CONFIG_SND_USB_CAIAQ is not set
1217# CONFIG_SND_SOC is not set 1232# CONFIG_SND_SOC is not set
@@ -1231,6 +1246,7 @@ CONFIG_USB_HID=y
1231# 1246#
1232# Special HID drivers 1247# Special HID drivers
1233# 1248#
1249# CONFIG_HID_3M_PCT is not set
1234CONFIG_HID_A4TECH=y 1250CONFIG_HID_A4TECH=y
1235CONFIG_HID_APPLE=y 1251CONFIG_HID_APPLE=y
1236CONFIG_HID_BELKIN=y 1252CONFIG_HID_BELKIN=y
@@ -1246,14 +1262,19 @@ CONFIG_HID_GYRATION=y
1246CONFIG_HID_LOGITECH=y 1262CONFIG_HID_LOGITECH=y
1247# CONFIG_LOGITECH_FF is not set 1263# CONFIG_LOGITECH_FF is not set
1248# CONFIG_LOGIRUMBLEPAD2_FF is not set 1264# CONFIG_LOGIRUMBLEPAD2_FF is not set
1265# CONFIG_LOGIG940_FF is not set
1249CONFIG_HID_MICROSOFT=y 1266CONFIG_HID_MICROSOFT=y
1267# CONFIG_HID_MOSART is not set
1250CONFIG_HID_MONTEREY=y 1268CONFIG_HID_MONTEREY=y
1251# CONFIG_HID_NTRIG is not set 1269# CONFIG_HID_NTRIG is not set
1270# CONFIG_HID_ORTEK is not set
1252CONFIG_HID_PANTHERLORD=y 1271CONFIG_HID_PANTHERLORD=y
1253# CONFIG_PANTHERLORD_FF is not set 1272# CONFIG_PANTHERLORD_FF is not set
1254CONFIG_HID_PETALYNX=y 1273CONFIG_HID_PETALYNX=y
1274# CONFIG_HID_QUANTA is not set
1255CONFIG_HID_SAMSUNG=y 1275CONFIG_HID_SAMSUNG=y
1256CONFIG_HID_SONY=y 1276CONFIG_HID_SONY=y
1277# CONFIG_HID_STANTUM is not set
1257CONFIG_HID_SUNPLUS=y 1278CONFIG_HID_SUNPLUS=y
1258# CONFIG_HID_GREENASIA is not set 1279# CONFIG_HID_GREENASIA is not set
1259# CONFIG_HID_SMARTJOYPLUS is not set 1280# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1362,7 +1383,6 @@ CONFIG_USB_STORAGE=y
1362# CONFIG_USB_RIO500 is not set 1383# CONFIG_USB_RIO500 is not set
1363# CONFIG_USB_LEGOTOWER is not set 1384# CONFIG_USB_LEGOTOWER is not set
1364# CONFIG_USB_LCD is not set 1385# CONFIG_USB_LCD is not set
1365# CONFIG_USB_BERRY_CHARGE is not set
1366# CONFIG_USB_LED is not set 1386# CONFIG_USB_LED is not set
1367# CONFIG_USB_CYPRESS_CY7C63 is not set 1387# CONFIG_USB_CYPRESS_CY7C63 is not set
1368# CONFIG_USB_CYTHERM is not set 1388# CONFIG_USB_CYTHERM is not set
@@ -1375,7 +1395,6 @@ CONFIG_USB_STORAGE=y
1375# CONFIG_USB_IOWARRIOR is not set 1395# CONFIG_USB_IOWARRIOR is not set
1376# CONFIG_USB_TEST is not set 1396# CONFIG_USB_TEST is not set
1377# CONFIG_USB_ISIGHTFW is not set 1397# CONFIG_USB_ISIGHTFW is not set
1378# CONFIG_USB_VST is not set
1379# CONFIG_USB_GADGET is not set 1398# CONFIG_USB_GADGET is not set
1380 1399
1381# 1400#
@@ -1456,6 +1475,7 @@ CONFIG_RTC_DRV_CMOS=y
1456# 1475#
1457# CONFIG_RTC_DRV_GENERIC is not set 1476# CONFIG_RTC_DRV_GENERIC is not set
1458CONFIG_DMADEVICES=y 1477CONFIG_DMADEVICES=y
1478# CONFIG_DMADEVICES_DEBUG is not set
1459 1479
1460# 1480#
1461# DMA Devices 1481# DMA Devices
@@ -1558,6 +1578,7 @@ CONFIG_BEFS_FS=m
1558# CONFIG_BEFS_DEBUG is not set 1578# CONFIG_BEFS_DEBUG is not set
1559CONFIG_BFS_FS=m 1579CONFIG_BFS_FS=m
1560CONFIG_EFS_FS=m 1580CONFIG_EFS_FS=m
1581# CONFIG_LOGFS is not set
1561CONFIG_CRAMFS=y 1582CONFIG_CRAMFS=y
1562# CONFIG_SQUASHFS is not set 1583# CONFIG_SQUASHFS is not set
1563CONFIG_VXFS_FS=m 1584CONFIG_VXFS_FS=m
@@ -1589,6 +1610,7 @@ CONFIG_SUNRPC_GSS=y
1589CONFIG_RPCSEC_GSS_KRB5=y 1610CONFIG_RPCSEC_GSS_KRB5=y
1590# CONFIG_RPCSEC_GSS_SPKM3 is not set 1611# CONFIG_RPCSEC_GSS_SPKM3 is not set
1591# CONFIG_SMB_FS is not set 1612# CONFIG_SMB_FS is not set
1613# CONFIG_CEPH_FS is not set
1592# CONFIG_CIFS is not set 1614# CONFIG_CIFS is not set
1593# CONFIG_NCP_FS is not set 1615# CONFIG_NCP_FS is not set
1594# CONFIG_CODA_FS is not set 1616# CONFIG_CODA_FS is not set
@@ -1734,6 +1756,7 @@ CONFIG_DEBUG_INFO=y
1734# CONFIG_BACKTRACE_SELF_TEST is not set 1756# CONFIG_BACKTRACE_SELF_TEST is not set
1735# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1757# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1736# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1758# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1759# CONFIG_LKDTM is not set
1737# CONFIG_FAULT_INJECTION is not set 1760# CONFIG_FAULT_INJECTION is not set
1738# CONFIG_LATENCYTOP is not set 1761# CONFIG_LATENCYTOP is not set
1739CONFIG_SYSCTL_SYSCALL_CHECK=y 1762CONFIG_SYSCTL_SYSCALL_CHECK=y
@@ -1806,6 +1829,7 @@ CONFIG_CRYPTO_MANAGER=y
1806CONFIG_CRYPTO_MANAGER2=y 1829CONFIG_CRYPTO_MANAGER2=y
1807# CONFIG_CRYPTO_GF128MUL is not set 1830# CONFIG_CRYPTO_GF128MUL is not set
1808# CONFIG_CRYPTO_NULL is not set 1831# CONFIG_CRYPTO_NULL is not set
1832# CONFIG_CRYPTO_PCRYPT is not set
1809CONFIG_CRYPTO_WORKQUEUE=y 1833CONFIG_CRYPTO_WORKQUEUE=y
1810# CONFIG_CRYPTO_CRYPTD is not set 1834# CONFIG_CRYPTO_CRYPTD is not set
1811CONFIG_CRYPTO_AUTHENC=y 1835CONFIG_CRYPTO_AUTHENC=y
diff --git a/arch/powerpc/configs/mpc866_ads_defconfig b/arch/powerpc/configs/mpc866_ads_defconfig
index 3f6b11b6f4f3..d8d3d1d60c84 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:08 2010 4# Mon Apr 19 23:16:32 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -89,14 +89,8 @@ CONFIG_RCU_FANOUT=32
89# CONFIG_TREE_RCU_TRACE is not set 89# CONFIG_TREE_RCU_TRACE is not set
90# CONFIG_IKCONFIG is not set 90# CONFIG_IKCONFIG is not set
91CONFIG_LOG_BUF_SHIFT=14 91CONFIG_LOG_BUF_SHIFT=14
92CONFIG_GROUP_SCHED=y
93# CONFIG_FAIR_GROUP_SCHED is not set
94# CONFIG_RT_GROUP_SCHED is not set
95CONFIG_USER_SCHED=y
96# CONFIG_CGROUP_SCHED is not set
97# CONFIG_CGROUPS is not set 92# CONFIG_CGROUPS is not set
98CONFIG_SYSFS_DEPRECATED=y 93# CONFIG_SYSFS_DEPRECATED_V2 is not set
99CONFIG_SYSFS_DEPRECATED_V2=y
100# CONFIG_RELAY is not set 94# CONFIG_RELAY is not set
101# CONFIG_NAMESPACES is not set 95# CONFIG_NAMESPACES is not set
102# CONFIG_BLK_DEV_INITRD is not set 96# CONFIG_BLK_DEV_INITRD is not set
@@ -305,6 +299,7 @@ CONFIG_ISA_DMA_API=y
305# Bus options 299# Bus options
306# 300#
307CONFIG_ZONE_DMA=y 301CONFIG_ZONE_DMA=y
302CONFIG_NEED_DMA_MAP_STATE=y
308CONFIG_FSL_SOC=y 303CONFIG_FSL_SOC=y
309# CONFIG_PCI is not set 304# CONFIG_PCI is not set
310# CONFIG_PCI_DOMAINS is not set 305# CONFIG_PCI_DOMAINS is not set
@@ -333,7 +328,6 @@ CONFIG_NET=y
333# Networking options 328# Networking options
334# 329#
335CONFIG_PACKET=y 330CONFIG_PACKET=y
336# CONFIG_PACKET_MMAP is not set
337CONFIG_UNIX=y 331CONFIG_UNIX=y
338CONFIG_XFRM=y 332CONFIG_XFRM=y
339# CONFIG_XFRM_USER is not set 333# CONFIG_XFRM_USER is not set
@@ -425,6 +419,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
425# CONFIG_SYS_HYPERVISOR is not set 419# CONFIG_SYS_HYPERVISOR is not set
426# CONFIG_CONNECTOR is not set 420# CONFIG_CONNECTOR is not set
427# CONFIG_MTD is not set 421# CONFIG_MTD is not set
422CONFIG_OF_FLATTREE=y
423CONFIG_OF_DYNAMIC=y
428CONFIG_OF_DEVICE=y 424CONFIG_OF_DEVICE=y
429CONFIG_OF_MDIO=y 425CONFIG_OF_MDIO=y
430# CONFIG_PARPORT is not set 426# CONFIG_PARPORT is not set
@@ -456,6 +452,7 @@ CONFIG_HAVE_IDE=y
456# 452#
457# SCSI device support 453# SCSI device support
458# 454#
455CONFIG_SCSI_MOD=y
459# CONFIG_RAID_ATTRS is not set 456# CONFIG_RAID_ATTRS is not set
460# CONFIG_SCSI is not set 457# CONFIG_SCSI is not set
461# CONFIG_SCSI_DMA is not set 458# CONFIG_SCSI_DMA is not set
@@ -607,6 +604,7 @@ CONFIG_SERIAL_CORE=y
607CONFIG_SERIAL_CORE_CONSOLE=y 604CONFIG_SERIAL_CORE_CONSOLE=y
608CONFIG_SERIAL_CPM=y 605CONFIG_SERIAL_CPM=y
609CONFIG_SERIAL_CPM_CONSOLE=y 606CONFIG_SERIAL_CPM_CONSOLE=y
607# CONFIG_SERIAL_TIMBERDALE is not set
610# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 608# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
611CONFIG_UNIX98_PTYS=y 609CONFIG_UNIX98_PTYS=y
612# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 610# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -795,6 +793,7 @@ CONFIG_MISC_FILESYSTEMS=y
795# CONFIG_BEFS_FS is not set 793# CONFIG_BEFS_FS is not set
796# CONFIG_BFS_FS is not set 794# CONFIG_BFS_FS is not set
797# CONFIG_EFS_FS is not set 795# CONFIG_EFS_FS is not set
796# CONFIG_LOGFS is not set
798CONFIG_CRAMFS=y 797CONFIG_CRAMFS=y
799# CONFIG_SQUASHFS is not set 798# CONFIG_SQUASHFS is not set
800# CONFIG_VXFS_FS is not set 799# CONFIG_VXFS_FS is not set
@@ -819,6 +818,7 @@ CONFIG_SUNRPC=y
819# CONFIG_RPCSEC_GSS_KRB5 is not set 818# CONFIG_RPCSEC_GSS_KRB5 is not set
820# CONFIG_RPCSEC_GSS_SPKM3 is not set 819# CONFIG_RPCSEC_GSS_SPKM3 is not set
821# CONFIG_SMB_FS is not set 820# CONFIG_SMB_FS is not set
821# CONFIG_CEPH_FS is not set
822# CONFIG_CIFS is not set 822# CONFIG_CIFS is not set
823# CONFIG_NCP_FS is not set 823# CONFIG_NCP_FS is not set
824# CONFIG_CODA_FS is not set 824# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/mpc86xx_defconfig b/arch/powerpc/configs/mpc86xx_defconfig
index 41884c97a4f3..624eae9a7e20 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:09 2010 4# Mon Apr 19 23:16:33 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -98,18 +98,13 @@ CONFIG_TREE_RCU=y
98# CONFIG_RCU_TRACE is not set 98# CONFIG_RCU_TRACE is not set
99CONFIG_RCU_FANOUT=32 99CONFIG_RCU_FANOUT=32
100# CONFIG_RCU_FANOUT_EXACT is not set 100# CONFIG_RCU_FANOUT_EXACT is not set
101# CONFIG_RCU_FAST_NO_HZ is not set
101# CONFIG_TREE_RCU_TRACE is not set 102# CONFIG_TREE_RCU_TRACE is not set
102CONFIG_IKCONFIG=y 103CONFIG_IKCONFIG=y
103CONFIG_IKCONFIG_PROC=y 104CONFIG_IKCONFIG_PROC=y
104CONFIG_LOG_BUF_SHIFT=14 105CONFIG_LOG_BUF_SHIFT=14
105CONFIG_GROUP_SCHED=y
106# CONFIG_FAIR_GROUP_SCHED is not set
107# CONFIG_RT_GROUP_SCHED is not set
108CONFIG_USER_SCHED=y
109# CONFIG_CGROUP_SCHED is not set
110# CONFIG_CGROUPS is not set 106# CONFIG_CGROUPS is not set
111CONFIG_SYSFS_DEPRECATED=y 107# CONFIG_SYSFS_DEPRECATED_V2 is not set
112CONFIG_SYSFS_DEPRECATED_V2=y
113# CONFIG_RELAY is not set 108# CONFIG_RELAY is not set
114# CONFIG_NAMESPACES is not set 109# CONFIG_NAMESPACES is not set
115CONFIG_BLK_DEV_INITRD=y 110CONFIG_BLK_DEV_INITRD=y
@@ -117,6 +112,7 @@ CONFIG_INITRAMFS_SOURCE=""
117CONFIG_RD_GZIP=y 112CONFIG_RD_GZIP=y
118# CONFIG_RD_BZIP2 is not set 113# CONFIG_RD_BZIP2 is not set
119# CONFIG_RD_LZMA is not set 114# CONFIG_RD_LZMA is not set
115# CONFIG_RD_LZO is not set
120# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 116# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
121CONFIG_SYSCTL=y 117CONFIG_SYSCTL=y
122CONFIG_ANON_INODES=y 118CONFIG_ANON_INODES=y
@@ -328,6 +324,7 @@ CONFIG_ISA_DMA_API=y
328# Bus options 324# Bus options
329# 325#
330CONFIG_ZONE_DMA=y 326CONFIG_ZONE_DMA=y
327# CONFIG_NEED_DMA_MAP_STATE is not set
331CONFIG_GENERIC_ISA_DMA=y 328CONFIG_GENERIC_ISA_DMA=y
332CONFIG_PPC_INDIRECT_PCI=y 329CONFIG_PPC_INDIRECT_PCI=y
333CONFIG_FSL_SOC=y 330CONFIG_FSL_SOC=y
@@ -339,7 +336,6 @@ CONFIG_PCI_SYSCALL=y
339# CONFIG_PCIEPORTBUS is not set 336# CONFIG_PCIEPORTBUS is not set
340CONFIG_ARCH_SUPPORTS_MSI=y 337CONFIG_ARCH_SUPPORTS_MSI=y
341# CONFIG_PCI_MSI is not set 338# CONFIG_PCI_MSI is not set
342# CONFIG_PCI_LEGACY is not set
343# CONFIG_PCI_DEBUG is not set 339# CONFIG_PCI_DEBUG is not set
344# CONFIG_PCI_STUB is not set 340# CONFIG_PCI_STUB is not set
345# CONFIG_PCI_IOV is not set 341# CONFIG_PCI_IOV is not set
@@ -367,7 +363,6 @@ CONFIG_NET=y
367# Networking options 363# Networking options
368# 364#
369CONFIG_PACKET=y 365CONFIG_PACKET=y
370# CONFIG_PACKET_MMAP is not set
371CONFIG_UNIX=y 366CONFIG_UNIX=y
372CONFIG_XFRM=y 367CONFIG_XFRM=y
373CONFIG_XFRM_USER=y 368CONFIG_XFRM_USER=y
@@ -500,6 +495,8 @@ CONFIG_EXTRA_FIRMWARE=""
500# CONFIG_SYS_HYPERVISOR is not set 495# CONFIG_SYS_HYPERVISOR is not set
501# CONFIG_CONNECTOR is not set 496# CONFIG_CONNECTOR is not set
502# CONFIG_MTD is not set 497# CONFIG_MTD is not set
498CONFIG_OF_FLATTREE=y
499CONFIG_OF_DYNAMIC=y
503CONFIG_OF_DEVICE=y 500CONFIG_OF_DEVICE=y
504CONFIG_OF_GPIO=y 501CONFIG_OF_GPIO=y
505CONFIG_OF_I2C=y 502CONFIG_OF_I2C=y
@@ -537,6 +534,7 @@ CONFIG_MISC_DEVICES=y
537# CONFIG_ENCLOSURE_SERVICES is not set 534# CONFIG_ENCLOSURE_SERVICES is not set
538# CONFIG_HP_ILO is not set 535# CONFIG_HP_ILO is not set
539# CONFIG_ISL29003 is not set 536# CONFIG_ISL29003 is not set
537# CONFIG_SENSORS_TSL2550 is not set
540# CONFIG_DS1682 is not set 538# CONFIG_DS1682 is not set
541# CONFIG_C2PORT is not set 539# CONFIG_C2PORT is not set
542 540
@@ -554,6 +552,7 @@ CONFIG_HAVE_IDE=y
554# 552#
555# SCSI device support 553# SCSI device support
556# 554#
555CONFIG_SCSI_MOD=y
557# CONFIG_RAID_ATTRS is not set 556# CONFIG_RAID_ATTRS is not set
558CONFIG_SCSI=y 557CONFIG_SCSI=y
559CONFIG_SCSI_DMA=y 558CONFIG_SCSI_DMA=y
@@ -678,6 +677,7 @@ CONFIG_PATA_ALI=y
678# CONFIG_PATA_IT821X is not set 677# CONFIG_PATA_IT821X is not set
679# CONFIG_PATA_IT8213 is not set 678# CONFIG_PATA_IT8213 is not set
680# CONFIG_PATA_JMICRON is not set 679# CONFIG_PATA_JMICRON is not set
680# CONFIG_PATA_LEGACY is not set
681# CONFIG_PATA_TRIFLEX is not set 681# CONFIG_PATA_TRIFLEX is not set
682# CONFIG_PATA_MARVELL is not set 682# CONFIG_PATA_MARVELL is not set
683# CONFIG_PATA_MPIIX is not set 683# CONFIG_PATA_MPIIX is not set
@@ -802,6 +802,8 @@ CONFIG_NETDEV_10000=y
802# CONFIG_CHELSIO_T1 is not set 802# CONFIG_CHELSIO_T1 is not set
803CONFIG_CHELSIO_T3_DEPENDS=y 803CONFIG_CHELSIO_T3_DEPENDS=y
804# CONFIG_CHELSIO_T3 is not set 804# CONFIG_CHELSIO_T3 is not set
805CONFIG_CHELSIO_T4_DEPENDS=y
806# CONFIG_CHELSIO_T4 is not set
805# CONFIG_ENIC is not set 807# CONFIG_ENIC is not set
806# CONFIG_IXGBE is not set 808# CONFIG_IXGBE is not set
807# CONFIG_IXGB is not set 809# CONFIG_IXGB is not set
@@ -814,6 +816,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
814# CONFIG_MLX4_CORE is not set 816# CONFIG_MLX4_CORE is not set
815# CONFIG_TEHUTI is not set 817# CONFIG_TEHUTI is not set
816# CONFIG_BNX2X is not set 818# CONFIG_BNX2X is not set
819# CONFIG_QLCNIC is not set
817# CONFIG_QLGE is not set 820# CONFIG_QLGE is not set
818# CONFIG_SFC is not set 821# CONFIG_SFC is not set
819# CONFIG_BE2NET is not set 822# CONFIG_BE2NET is not set
@@ -923,6 +926,7 @@ CONFIG_SERIAL_CORE=y
923CONFIG_SERIAL_CORE_CONSOLE=y 926CONFIG_SERIAL_CORE_CONSOLE=y
924# CONFIG_SERIAL_JSM is not set 927# CONFIG_SERIAL_JSM is not set
925# CONFIG_SERIAL_OF_PLATFORM is not set 928# CONFIG_SERIAL_OF_PLATFORM is not set
929# CONFIG_SERIAL_TIMBERDALE is not set
926# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 930# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
927CONFIG_UNIX98_PTYS=y 931CONFIG_UNIX98_PTYS=y
928# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 932# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -972,6 +976,7 @@ CONFIG_I2C_HELPER_AUTO=y
972CONFIG_I2C_MPC=y 976CONFIG_I2C_MPC=y
973# CONFIG_I2C_OCORES is not set 977# CONFIG_I2C_OCORES is not set
974# CONFIG_I2C_SIMTEC is not set 978# CONFIG_I2C_SIMTEC is not set
979# CONFIG_I2C_XILINX is not set
975 980
976# 981#
977# External I2C/SMBus adapter drivers 982# External I2C/SMBus adapter drivers
@@ -985,15 +990,9 @@ CONFIG_I2C_MPC=y
985# 990#
986# CONFIG_I2C_PCA_PLATFORM is not set 991# CONFIG_I2C_PCA_PLATFORM is not set
987# CONFIG_I2C_STUB is not set 992# CONFIG_I2C_STUB is not set
988
989#
990# Miscellaneous I2C Chip support
991#
992# CONFIG_SENSORS_TSL2550 is not set
993# CONFIG_I2C_DEBUG_CORE is not set 993# CONFIG_I2C_DEBUG_CORE is not set
994# CONFIG_I2C_DEBUG_ALGO is not set 994# CONFIG_I2C_DEBUG_ALGO is not set
995# CONFIG_I2C_DEBUG_BUS is not set 995# CONFIG_I2C_DEBUG_BUS is not set
996# CONFIG_I2C_DEBUG_CHIP is not set
997# CONFIG_SPI is not set 996# CONFIG_SPI is not set
998 997
999# 998#
@@ -1009,14 +1008,18 @@ CONFIG_GPIOLIB=y
1009# 1008#
1010# Memory mapped GPIO expanders: 1009# Memory mapped GPIO expanders:
1011# 1010#
1011# CONFIG_GPIO_IT8761E is not set
1012# CONFIG_GPIO_XILINX is not set 1012# CONFIG_GPIO_XILINX is not set
1013# CONFIG_GPIO_SCH is not set
1013 1014
1014# 1015#
1015# I2C GPIO expanders: 1016# I2C GPIO expanders:
1016# 1017#
1018# CONFIG_GPIO_MAX7300 is not set
1017# CONFIG_GPIO_MAX732X is not set 1019# CONFIG_GPIO_MAX732X is not set
1018# CONFIG_GPIO_PCA953X is not set 1020# CONFIG_GPIO_PCA953X is not set
1019# CONFIG_GPIO_PCF857X is not set 1021# CONFIG_GPIO_PCF857X is not set
1022# CONFIG_GPIO_ADP5588 is not set
1020 1023
1021# 1024#
1022# PCI GPIO expanders: 1025# PCI GPIO expanders:
@@ -1048,20 +1051,25 @@ CONFIG_SSB_POSSIBLE=y
1048# Multifunction device drivers 1051# Multifunction device drivers
1049# 1052#
1050# CONFIG_MFD_CORE is not set 1053# CONFIG_MFD_CORE is not set
1054# CONFIG_MFD_88PM860X is not set
1051# CONFIG_MFD_SM501 is not set 1055# CONFIG_MFD_SM501 is not set
1052# CONFIG_HTC_PASIC3 is not set 1056# CONFIG_HTC_PASIC3 is not set
1057# CONFIG_HTC_I2CPLD is not set
1053# CONFIG_UCB1400_CORE is not set 1058# CONFIG_UCB1400_CORE is not set
1054# CONFIG_TPS65010 is not set 1059# CONFIG_TPS65010 is not set
1055# CONFIG_TWL4030_CORE is not set 1060# CONFIG_TWL4030_CORE is not set
1056# CONFIG_MFD_TMIO is not set 1061# CONFIG_MFD_TMIO is not set
1057# CONFIG_PMIC_DA903X is not set 1062# CONFIG_PMIC_DA903X is not set
1058# CONFIG_PMIC_ADP5520 is not set 1063# CONFIG_PMIC_ADP5520 is not set
1064# CONFIG_MFD_MAX8925 is not set
1059# CONFIG_MFD_WM8400 is not set 1065# CONFIG_MFD_WM8400 is not set
1060# CONFIG_MFD_WM831X is not set 1066# CONFIG_MFD_WM831X is not set
1061# CONFIG_MFD_WM8350_I2C is not set 1067# CONFIG_MFD_WM8350_I2C is not set
1068# CONFIG_MFD_WM8994 is not set
1062# CONFIG_MFD_PCF50633 is not set 1069# CONFIG_MFD_PCF50633 is not set
1063# CONFIG_AB3100_CORE is not set 1070# CONFIG_AB3100_CORE is not set
1064# CONFIG_MFD_88PM8607 is not set 1071# CONFIG_MFD_TIMBERDALE is not set
1072# CONFIG_LPC_SCH is not set
1065# CONFIG_REGULATOR is not set 1073# CONFIG_REGULATOR is not set
1066# CONFIG_MEDIA_SUPPORT is not set 1074# CONFIG_MEDIA_SUPPORT is not set
1067 1075
@@ -1070,6 +1078,7 @@ CONFIG_SSB_POSSIBLE=y
1070# 1078#
1071# CONFIG_AGP is not set 1079# CONFIG_AGP is not set
1072CONFIG_VGA_ARB=y 1080CONFIG_VGA_ARB=y
1081CONFIG_VGA_ARB_MAX_GPUS=16
1073# CONFIG_DRM is not set 1082# CONFIG_DRM is not set
1074# CONFIG_VGASTATE is not set 1083# CONFIG_VGASTATE is not set
1075CONFIG_VIDEO_OUTPUT_CONTROL=y 1084CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1187,6 +1196,7 @@ CONFIG_SND_INTEL8X0=y
1187CONFIG_SND_PPC=y 1196CONFIG_SND_PPC=y
1188CONFIG_SND_USB=y 1197CONFIG_SND_USB=y
1189# CONFIG_SND_USB_AUDIO is not set 1198# CONFIG_SND_USB_AUDIO is not set
1199# CONFIG_SND_USB_UA101 is not set
1190# CONFIG_SND_USB_USX2Y is not set 1200# CONFIG_SND_USB_USX2Y is not set
1191# CONFIG_SND_USB_CAIAQ is not set 1201# CONFIG_SND_USB_CAIAQ is not set
1192# CONFIG_SND_SOC is not set 1202# CONFIG_SND_SOC is not set
@@ -1206,6 +1216,7 @@ CONFIG_USB_HID=y
1206# 1216#
1207# Special HID drivers 1217# Special HID drivers
1208# 1218#
1219# CONFIG_HID_3M_PCT is not set
1209CONFIG_HID_A4TECH=y 1220CONFIG_HID_A4TECH=y
1210CONFIG_HID_APPLE=y 1221CONFIG_HID_APPLE=y
1211CONFIG_HID_BELKIN=y 1222CONFIG_HID_BELKIN=y
@@ -1221,14 +1232,19 @@ CONFIG_HID_GYRATION=y
1221CONFIG_HID_LOGITECH=y 1232CONFIG_HID_LOGITECH=y
1222# CONFIG_LOGITECH_FF is not set 1233# CONFIG_LOGITECH_FF is not set
1223# CONFIG_LOGIRUMBLEPAD2_FF is not set 1234# CONFIG_LOGIRUMBLEPAD2_FF is not set
1235# CONFIG_LOGIG940_FF is not set
1224CONFIG_HID_MICROSOFT=y 1236CONFIG_HID_MICROSOFT=y
1237# CONFIG_HID_MOSART is not set
1225CONFIG_HID_MONTEREY=y 1238CONFIG_HID_MONTEREY=y
1226# CONFIG_HID_NTRIG is not set 1239# CONFIG_HID_NTRIG is not set
1240# CONFIG_HID_ORTEK is not set
1227CONFIG_HID_PANTHERLORD=y 1241CONFIG_HID_PANTHERLORD=y
1228# CONFIG_PANTHERLORD_FF is not set 1242# CONFIG_PANTHERLORD_FF is not set
1229CONFIG_HID_PETALYNX=y 1243CONFIG_HID_PETALYNX=y
1244# CONFIG_HID_QUANTA is not set
1230CONFIG_HID_SAMSUNG=y 1245CONFIG_HID_SAMSUNG=y
1231CONFIG_HID_SONY=y 1246CONFIG_HID_SONY=y
1247# CONFIG_HID_STANTUM is not set
1232CONFIG_HID_SUNPLUS=y 1248CONFIG_HID_SUNPLUS=y
1233# CONFIG_HID_GREENASIA is not set 1249# CONFIG_HID_GREENASIA is not set
1234# CONFIG_HID_SMARTJOYPLUS is not set 1250# CONFIG_HID_SMARTJOYPLUS is not set
@@ -1336,7 +1352,6 @@ CONFIG_USB_STORAGE=y
1336# CONFIG_USB_RIO500 is not set 1352# CONFIG_USB_RIO500 is not set
1337# CONFIG_USB_LEGOTOWER is not set 1353# CONFIG_USB_LEGOTOWER is not set
1338# CONFIG_USB_LCD is not set 1354# CONFIG_USB_LCD is not set
1339# CONFIG_USB_BERRY_CHARGE is not set
1340# CONFIG_USB_LED is not set 1355# CONFIG_USB_LED is not set
1341# CONFIG_USB_CYPRESS_CY7C63 is not set 1356# CONFIG_USB_CYPRESS_CY7C63 is not set
1342# CONFIG_USB_CYTHERM is not set 1357# CONFIG_USB_CYTHERM is not set
@@ -1349,7 +1364,6 @@ CONFIG_USB_STORAGE=y
1349# CONFIG_USB_IOWARRIOR is not set 1364# CONFIG_USB_IOWARRIOR is not set
1350# CONFIG_USB_TEST is not set 1365# CONFIG_USB_TEST is not set
1351# CONFIG_USB_ISIGHTFW is not set 1366# CONFIG_USB_ISIGHTFW is not set
1352# CONFIG_USB_VST is not set
1353# CONFIG_USB_GADGET is not set 1367# CONFIG_USB_GADGET is not set
1354 1368
1355# 1369#
@@ -1512,6 +1526,7 @@ CONFIG_BEFS_FS=m
1512# CONFIG_BEFS_DEBUG is not set 1526# CONFIG_BEFS_DEBUG is not set
1513CONFIG_BFS_FS=m 1527CONFIG_BFS_FS=m
1514CONFIG_EFS_FS=m 1528CONFIG_EFS_FS=m
1529# CONFIG_LOGFS is not set
1515CONFIG_CRAMFS=y 1530CONFIG_CRAMFS=y
1516# CONFIG_SQUASHFS is not set 1531# CONFIG_SQUASHFS is not set
1517CONFIG_VXFS_FS=m 1532CONFIG_VXFS_FS=m
@@ -1543,6 +1558,7 @@ CONFIG_SUNRPC_GSS=y
1543CONFIG_RPCSEC_GSS_KRB5=y 1558CONFIG_RPCSEC_GSS_KRB5=y
1544# CONFIG_RPCSEC_GSS_SPKM3 is not set 1559# CONFIG_RPCSEC_GSS_SPKM3 is not set
1545# CONFIG_SMB_FS is not set 1560# CONFIG_SMB_FS is not set
1561# CONFIG_CEPH_FS is not set
1546# CONFIG_CIFS is not set 1562# CONFIG_CIFS is not set
1547# CONFIG_NCP_FS is not set 1563# CONFIG_NCP_FS is not set
1548# CONFIG_CODA_FS is not set 1564# CONFIG_CODA_FS is not set
@@ -1754,6 +1770,7 @@ CONFIG_CRYPTO_MANAGER=y
1754CONFIG_CRYPTO_MANAGER2=y 1770CONFIG_CRYPTO_MANAGER2=y
1755# CONFIG_CRYPTO_GF128MUL is not set 1771# CONFIG_CRYPTO_GF128MUL is not set
1756# CONFIG_CRYPTO_NULL is not set 1772# CONFIG_CRYPTO_NULL is not set
1773# CONFIG_CRYPTO_PCRYPT is not set
1757CONFIG_CRYPTO_WORKQUEUE=y 1774CONFIG_CRYPTO_WORKQUEUE=y
1758# CONFIG_CRYPTO_CRYPTD is not set 1775# CONFIG_CRYPTO_CRYPTD is not set
1759# CONFIG_CRYPTO_AUTHENC is not set 1776# CONFIG_CRYPTO_AUTHENC is not set
diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig
index 6b9e6bd2c98d..45bd499630d0 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:10 2010 4# Mon Apr 19 23:16:34 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -90,14 +90,8 @@ CONFIG_RCU_FANOUT=32
90# CONFIG_TREE_RCU_TRACE is not set 90# CONFIG_TREE_RCU_TRACE is not set
91# CONFIG_IKCONFIG is not set 91# CONFIG_IKCONFIG is not set
92CONFIG_LOG_BUF_SHIFT=14 92CONFIG_LOG_BUF_SHIFT=14
93CONFIG_GROUP_SCHED=y
94# CONFIG_FAIR_GROUP_SCHED is not set
95# CONFIG_RT_GROUP_SCHED is not set
96CONFIG_USER_SCHED=y
97# CONFIG_CGROUP_SCHED is not set
98# CONFIG_CGROUPS is not set 93# CONFIG_CGROUPS is not set
99CONFIG_SYSFS_DEPRECATED=y 94# CONFIG_SYSFS_DEPRECATED_V2 is not set
100CONFIG_SYSFS_DEPRECATED_V2=y
101# CONFIG_RELAY is not set 95# CONFIG_RELAY is not set
102# CONFIG_NAMESPACES is not set 96# CONFIG_NAMESPACES is not set
103# CONFIG_BLK_DEV_INITRD is not set 97# CONFIG_BLK_DEV_INITRD is not set
@@ -313,6 +307,7 @@ CONFIG_ISA_DMA_API=y
313# Bus options 307# Bus options
314# 308#
315CONFIG_ZONE_DMA=y 309CONFIG_ZONE_DMA=y
310CONFIG_NEED_DMA_MAP_STATE=y
316CONFIG_FSL_SOC=y 311CONFIG_FSL_SOC=y
317# CONFIG_PCI is not set 312# CONFIG_PCI is not set
318# CONFIG_PCI_DOMAINS is not set 313# CONFIG_PCI_DOMAINS is not set
@@ -342,7 +337,6 @@ CONFIG_NET=y
342# Networking options 337# Networking options
343# 338#
344CONFIG_PACKET=y 339CONFIG_PACKET=y
345# CONFIG_PACKET_MMAP is not set
346CONFIG_UNIX=y 340CONFIG_UNIX=y
347# CONFIG_NET_KEY is not set 341# CONFIG_NET_KEY is not set
348CONFIG_INET=y 342CONFIG_INET=y
@@ -515,6 +509,8 @@ CONFIG_MTD_PHYSMAP_OF=y
515# UBI - Unsorted block images 509# UBI - Unsorted block images
516# 510#
517# CONFIG_MTD_UBI is not set 511# CONFIG_MTD_UBI is not set
512CONFIG_OF_FLATTREE=y
513CONFIG_OF_DYNAMIC=y
518CONFIG_OF_DEVICE=y 514CONFIG_OF_DEVICE=y
519CONFIG_OF_MDIO=y 515CONFIG_OF_MDIO=y
520# CONFIG_PARPORT is not set 516# CONFIG_PARPORT is not set
@@ -526,6 +522,7 @@ CONFIG_HAVE_IDE=y
526# 522#
527# SCSI device support 523# SCSI device support
528# 524#
525CONFIG_SCSI_MOD=y
529# CONFIG_RAID_ATTRS is not set 526# CONFIG_RAID_ATTRS is not set
530# CONFIG_SCSI is not set 527# CONFIG_SCSI is not set
531# CONFIG_SCSI_DMA is not set 528# CONFIG_SCSI_DMA is not set
@@ -627,6 +624,7 @@ CONFIG_SERIAL_CORE=y
627CONFIG_SERIAL_CORE_CONSOLE=y 624CONFIG_SERIAL_CORE_CONSOLE=y
628CONFIG_SERIAL_CPM=y 625CONFIG_SERIAL_CPM=y
629CONFIG_SERIAL_CPM_CONSOLE=y 626CONFIG_SERIAL_CPM_CONSOLE=y
627# CONFIG_SERIAL_TIMBERDALE is not set
630# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 628# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
631CONFIG_UNIX98_PTYS=y 629CONFIG_UNIX98_PTYS=y
632# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 630# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -764,6 +762,7 @@ CONFIG_MISC_FILESYSTEMS=y
764# CONFIG_BFS_FS is not set 762# CONFIG_BFS_FS is not set
765# CONFIG_EFS_FS is not set 763# CONFIG_EFS_FS is not set
766# CONFIG_JFFS2_FS is not set 764# CONFIG_JFFS2_FS is not set
765# CONFIG_LOGFS is not set
767CONFIG_CRAMFS=y 766CONFIG_CRAMFS=y
768# CONFIG_SQUASHFS is not set 767# CONFIG_SQUASHFS is not set
769# CONFIG_VXFS_FS is not set 768# CONFIG_VXFS_FS is not set
@@ -788,6 +787,7 @@ CONFIG_SUNRPC=y
788# CONFIG_RPCSEC_GSS_KRB5 is not set 787# CONFIG_RPCSEC_GSS_KRB5 is not set
789# CONFIG_RPCSEC_GSS_SPKM3 is not set 788# CONFIG_RPCSEC_GSS_SPKM3 is not set
790# CONFIG_SMB_FS is not set 789# CONFIG_SMB_FS is not set
790# CONFIG_CEPH_FS is not set
791# CONFIG_CIFS is not set 791# CONFIG_CIFS is not set
792# CONFIG_NCP_FS is not set 792# CONFIG_NCP_FS is not set
793# CONFIG_CODA_FS is not set 793# CONFIG_CODA_FS is not set
diff --git a/arch/powerpc/configs/pasemi_defconfig b/arch/powerpc/configs/pasemi_defconfig
index 20ba0cfff8ba..74a7216183e8 100644
--- a/arch/powerpc/configs/pasemi_defconfig
+++ b/arch/powerpc/configs/pasemi_defconfig
@@ -98,8 +98,7 @@ CONFIG_RCU_FANOUT=64
98CONFIG_LOG_BUF_SHIFT=17 98CONFIG_LOG_BUF_SHIFT=17
99# CONFIG_GROUP_SCHED is not set 99# CONFIG_GROUP_SCHED is not set
100# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
101CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
102CONFIG_SYSFS_DEPRECATED_V2=y
103# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
104CONFIG_NAMESPACES=y 103CONFIG_NAMESPACES=y
105# CONFIG_UTS_NS is not set 104# CONFIG_UTS_NS is not set
diff --git a/arch/powerpc/configs/pmac32_defconfig b/arch/powerpc/configs/pmac32_defconfig
index ea8870a34482..753bb7912e28 100644
--- a/arch/powerpc/configs/pmac32_defconfig
+++ b/arch/powerpc/configs/pmac32_defconfig
@@ -93,8 +93,7 @@ CONFIG_IKCONFIG_PROC=y
93CONFIG_LOG_BUF_SHIFT=14 93CONFIG_LOG_BUF_SHIFT=14
94# CONFIG_GROUP_SCHED is not set 94# CONFIG_GROUP_SCHED is not set
95# CONFIG_CGROUPS is not set 95# CONFIG_CGROUPS is not set
96CONFIG_SYSFS_DEPRECATED=y 96# CONFIG_SYSFS_DEPRECATED_V2 is not set
97CONFIG_SYSFS_DEPRECATED_V2=y
98# CONFIG_RELAY is not set 97# CONFIG_RELAY is not set
99CONFIG_NAMESPACES=y 98CONFIG_NAMESPACES=y
100# CONFIG_UTS_NS is not set 99# CONFIG_UTS_NS is not set
diff --git a/arch/powerpc/configs/ppc40x_defconfig b/arch/powerpc/configs/ppc40x_defconfig
index 35b60683cde5..afb4d1bb2ba9 100644
--- a/arch/powerpc/configs/ppc40x_defconfig
+++ b/arch/powerpc/configs/ppc40x_defconfig
@@ -99,8 +99,7 @@ CONFIG_FAIR_GROUP_SCHED=y
99CONFIG_USER_SCHED=y 99CONFIG_USER_SCHED=y
100# CONFIG_CGROUP_SCHED is not set 100# CONFIG_CGROUP_SCHED is not set
101# CONFIG_CGROUPS is not set 101# CONFIG_CGROUPS is not set
102CONFIG_SYSFS_DEPRECATED=y 102# CONFIG_SYSFS_DEPRECATED_V2 is not set
103CONFIG_SYSFS_DEPRECATED_V2=y
104# CONFIG_RELAY is not set 103# CONFIG_RELAY is not set
105# CONFIG_NAMESPACES is not set 104# CONFIG_NAMESPACES is not set
106CONFIG_BLK_DEV_INITRD=y 105CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/ppc44x_defconfig b/arch/powerpc/configs/ppc44x_defconfig
index 46f5c47e9f85..bd3d23fb4dd3 100644
--- a/arch/powerpc/configs/ppc44x_defconfig
+++ b/arch/powerpc/configs/ppc44x_defconfig
@@ -103,8 +103,7 @@ CONFIG_FAIR_GROUP_SCHED=y
103CONFIG_USER_SCHED=y 103CONFIG_USER_SCHED=y
104# CONFIG_CGROUP_SCHED is not set 104# CONFIG_CGROUP_SCHED is not set
105# CONFIG_CGROUPS is not set 105# CONFIG_CGROUPS is not set
106CONFIG_SYSFS_DEPRECATED=y 106# CONFIG_SYSFS_DEPRECATED_V2 is not set
107CONFIG_SYSFS_DEPRECATED_V2=y
108# CONFIG_RELAY is not set 107# CONFIG_RELAY is not set
109# CONFIG_NAMESPACES is not set 108# CONFIG_NAMESPACES is not set
110CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/configs/ppc64_defconfig b/arch/powerpc/configs/ppc64_defconfig
index 12980d544654..369f4e02c5dd 100644
--- a/arch/powerpc/configs/ppc64_defconfig
+++ b/arch/powerpc/configs/ppc64_defconfig
@@ -93,8 +93,7 @@ CONFIG_CPUSETS=y
93# CONFIG_GROUP_SCHED is not set 93# CONFIG_GROUP_SCHED is not set
94# CONFIG_CGROUP_CPUACCT is not set 94# CONFIG_CGROUP_CPUACCT is not set
95# CONFIG_RESOURCE_COUNTERS is not set 95# CONFIG_RESOURCE_COUNTERS is not set
96CONFIG_SYSFS_DEPRECATED=y 96# CONFIG_SYSFS_DEPRECATED_V2 is not set
97CONFIG_SYSFS_DEPRECATED_V2=y
98CONFIG_PROC_PID_CPUSET=y 97CONFIG_PROC_PID_CPUSET=y
99CONFIG_RELAY=y 98CONFIG_RELAY=y
100CONFIG_NAMESPACES=y 99CONFIG_NAMESPACES=y
@@ -988,7 +987,7 @@ CONFIG_ACENIC=m
988CONFIG_ACENIC_OMIT_TIGON_I=y 987CONFIG_ACENIC_OMIT_TIGON_I=y
989# CONFIG_DL2K is not set 988# CONFIG_DL2K is not set
990CONFIG_E1000=y 989CONFIG_E1000=y
991CONFIG_E1000E=m 990CONFIG_E1000E=y
992# CONFIG_IP1000 is not set 991# CONFIG_IP1000 is not set
993# CONFIG_IGB is not set 992# CONFIG_IGB is not set
994# CONFIG_NS83820 is not set 993# CONFIG_NS83820 is not set
diff --git a/arch/powerpc/configs/ppc64e_defconfig b/arch/powerpc/configs/ppc64e_defconfig
index 8195f1650cbf..403e82e2e83c 100644
--- a/arch/powerpc/configs/ppc64e_defconfig
+++ b/arch/powerpc/configs/ppc64e_defconfig
@@ -107,8 +107,7 @@ CONFIG_CPUSETS=y
107CONFIG_PROC_PID_CPUSET=y 107CONFIG_PROC_PID_CPUSET=y
108# CONFIG_CGROUP_CPUACCT is not set 108# CONFIG_CGROUP_CPUACCT is not set
109# CONFIG_RESOURCE_COUNTERS is not set 109# CONFIG_RESOURCE_COUNTERS is not set
110CONFIG_SYSFS_DEPRECATED=y 110# CONFIG_SYSFS_DEPRECATED_V2 is not set
111CONFIG_SYSFS_DEPRECATED_V2=y
112CONFIG_RELAY=y 111CONFIG_RELAY=y
113CONFIG_NAMESPACES=y 112CONFIG_NAMESPACES=y
114# CONFIG_UTS_NS is not set 113# CONFIG_UTS_NS is not set
diff --git a/arch/powerpc/configs/pq2fads_defconfig b/arch/powerpc/configs/pq2fads_defconfig
index 5d06f2cb8e5e..12c8ee8dd12b 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:11 2010 4# Mon Apr 19 23:16:35 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,8 +96,7 @@ CONFIG_IKCONFIG=y
96CONFIG_IKCONFIG_PROC=y 96CONFIG_IKCONFIG_PROC=y
97CONFIG_LOG_BUF_SHIFT=14 97CONFIG_LOG_BUF_SHIFT=14
98# CONFIG_CGROUPS is not set 98# CONFIG_CGROUPS is not set
99CONFIG_SYSFS_DEPRECATED=y 99# CONFIG_SYSFS_DEPRECATED_V2 is not set
100CONFIG_SYSFS_DEPRECATED_V2=y
101# CONFIG_RELAY is not set 100# CONFIG_RELAY is not set
102# CONFIG_NAMESPACES is not set 101# CONFIG_NAMESPACES is not set
103CONFIG_BLK_DEV_INITRD=y 102CONFIG_BLK_DEV_INITRD=y
@@ -105,6 +104,7 @@ CONFIG_INITRAMFS_SOURCE=""
105CONFIG_RD_GZIP=y 104CONFIG_RD_GZIP=y
106# CONFIG_RD_BZIP2 is not set 105# CONFIG_RD_BZIP2 is not set
107# CONFIG_RD_LZMA is not set 106# CONFIG_RD_LZMA is not set
107# CONFIG_RD_LZO is not set
108CONFIG_CC_OPTIMIZE_FOR_SIZE=y 108CONFIG_CC_OPTIMIZE_FOR_SIZE=y
109CONFIG_SYSCTL=y 109CONFIG_SYSCTL=y
110CONFIG_ANON_INODES=y 110CONFIG_ANON_INODES=y
@@ -304,6 +304,7 @@ CONFIG_ISA_DMA_API=y
304# Bus options 304# Bus options
305# 305#
306CONFIG_ZONE_DMA=y 306CONFIG_ZONE_DMA=y
307# CONFIG_NEED_DMA_MAP_STATE is not set
307CONFIG_PPC_INDIRECT_PCI=y 308CONFIG_PPC_INDIRECT_PCI=y
308CONFIG_FSL_SOC=y 309CONFIG_FSL_SOC=y
309CONFIG_PPC_PCI_CHOICE=y 310CONFIG_PPC_PCI_CHOICE=y
@@ -315,7 +316,6 @@ CONFIG_PCI_8260=y
315# CONFIG_PCIEPORTBUS is not set 316# CONFIG_PCIEPORTBUS is not set
316CONFIG_ARCH_SUPPORTS_MSI=y 317CONFIG_ARCH_SUPPORTS_MSI=y
317# CONFIG_PCI_MSI is not set 318# CONFIG_PCI_MSI is not set
318# CONFIG_PCI_LEGACY is not set
319# CONFIG_PCI_DEBUG is not set 319# CONFIG_PCI_DEBUG is not set
320# CONFIG_PCI_STUB is not set 320# CONFIG_PCI_STUB is not set
321# CONFIG_PCI_IOV is not set 321# CONFIG_PCI_IOV is not set
@@ -342,7 +342,6 @@ CONFIG_NET=y
342# Networking options 342# Networking options
343# 343#
344CONFIG_PACKET=y 344CONFIG_PACKET=y
345# CONFIG_PACKET_MMAP is not set
346CONFIG_UNIX=y 345CONFIG_UNIX=y
347CONFIG_XFRM=y 346CONFIG_XFRM=y
348# CONFIG_XFRM_USER is not set 347# CONFIG_XFRM_USER is not set
@@ -544,6 +543,8 @@ CONFIG_MTD_PHYSMAP_OF=y
544# UBI - Unsorted block images 543# UBI - Unsorted block images
545# 544#
546# CONFIG_MTD_UBI is not set 545# CONFIG_MTD_UBI is not set
546CONFIG_OF_FLATTREE=y
547CONFIG_OF_DYNAMIC=y
547CONFIG_OF_DEVICE=y 548CONFIG_OF_DEVICE=y
548CONFIG_OF_GPIO=y 549CONFIG_OF_GPIO=y
549CONFIG_OF_MDIO=y 550CONFIG_OF_MDIO=y
@@ -629,6 +630,7 @@ CONFIG_IDE_PROC_FS=y
629# 630#
630# SCSI device support 631# SCSI device support
631# 632#
633CONFIG_SCSI_MOD=y
632# CONFIG_RAID_ATTRS is not set 634# CONFIG_RAID_ATTRS is not set
633# CONFIG_SCSI is not set 635# CONFIG_SCSI is not set
634# CONFIG_SCSI_DMA is not set 636# CONFIG_SCSI_DMA is not set
@@ -734,6 +736,8 @@ CONFIG_NETDEV_10000=y
734# CONFIG_CHELSIO_T1 is not set 736# CONFIG_CHELSIO_T1 is not set
735CONFIG_CHELSIO_T3_DEPENDS=y 737CONFIG_CHELSIO_T3_DEPENDS=y
736# CONFIG_CHELSIO_T3 is not set 738# CONFIG_CHELSIO_T3 is not set
739CONFIG_CHELSIO_T4_DEPENDS=y
740# CONFIG_CHELSIO_T4 is not set
737# CONFIG_ENIC is not set 741# CONFIG_ENIC is not set
738# CONFIG_IXGBE is not set 742# CONFIG_IXGBE is not set
739# CONFIG_IXGB is not set 743# CONFIG_IXGB is not set
@@ -746,6 +750,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
746# CONFIG_MLX4_CORE is not set 750# CONFIG_MLX4_CORE is not set
747# CONFIG_TEHUTI is not set 751# CONFIG_TEHUTI is not set
748# CONFIG_BNX2X is not set 752# CONFIG_BNX2X is not set
753# CONFIG_QLCNIC is not set
749# CONFIG_QLGE is not set 754# CONFIG_QLGE is not set
750# CONFIG_SFC is not set 755# CONFIG_SFC is not set
751# CONFIG_BE2NET is not set 756# CONFIG_BE2NET is not set
@@ -859,6 +864,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
859CONFIG_SERIAL_CPM=y 864CONFIG_SERIAL_CPM=y
860CONFIG_SERIAL_CPM_CONSOLE=y 865CONFIG_SERIAL_CPM_CONSOLE=y
861# CONFIG_SERIAL_JSM is not set 866# CONFIG_SERIAL_JSM is not set
867# CONFIG_SERIAL_TIMBERDALE is not set
862# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 868# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
863CONFIG_UNIX98_PTYS=y 869CONFIG_UNIX98_PTYS=y
864# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 870# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -887,7 +893,9 @@ CONFIG_GPIOLIB=y
887# 893#
888# Memory mapped GPIO expanders: 894# Memory mapped GPIO expanders:
889# 895#
896# CONFIG_GPIO_IT8761E is not set
890# CONFIG_GPIO_XILINX is not set 897# CONFIG_GPIO_XILINX is not set
898# CONFIG_GPIO_SCH is not set
891 899
892# 900#
893# I2C GPIO expanders: 901# I2C GPIO expanders:
@@ -926,6 +934,8 @@ CONFIG_SSB_POSSIBLE=y
926# CONFIG_MFD_SM501 is not set 934# CONFIG_MFD_SM501 is not set
927# CONFIG_HTC_PASIC3 is not set 935# CONFIG_HTC_PASIC3 is not set
928# CONFIG_MFD_TMIO is not set 936# CONFIG_MFD_TMIO is not set
937# CONFIG_MFD_TIMBERDALE is not set
938# CONFIG_LPC_SCH is not set
929# CONFIG_REGULATOR is not set 939# CONFIG_REGULATOR is not set
930# CONFIG_MEDIA_SUPPORT is not set 940# CONFIG_MEDIA_SUPPORT is not set
931 941
@@ -934,6 +944,7 @@ CONFIG_SSB_POSSIBLE=y
934# 944#
935# CONFIG_AGP is not set 945# CONFIG_AGP is not set
936CONFIG_VGA_ARB=y 946CONFIG_VGA_ARB=y
947CONFIG_VGA_ARB_MAX_GPUS=16
937# CONFIG_DRM is not set 948# CONFIG_DRM is not set
938# CONFIG_VGASTATE is not set 949# CONFIG_VGASTATE is not set
939CONFIG_VIDEO_OUTPUT_CONTROL=y 950CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -996,6 +1007,7 @@ CONFIG_USB_ETH_RNDIS=y
996# CONFIG_USB_MIDI_GADGET is not set 1007# CONFIG_USB_MIDI_GADGET is not set
997# CONFIG_USB_G_PRINTER is not set 1008# CONFIG_USB_G_PRINTER is not set
998# CONFIG_USB_CDC_COMPOSITE is not set 1009# CONFIG_USB_CDC_COMPOSITE is not set
1010# CONFIG_USB_G_NOKIA is not set
999# CONFIG_USB_G_MULTI is not set 1011# CONFIG_USB_G_MULTI is not set
1000 1012
1001# 1013#
@@ -1051,6 +1063,7 @@ CONFIG_AUTOFS4_FS=y
1051# 1063#
1052# Caches 1064# Caches
1053# 1065#
1066# CONFIG_FSCACHE is not set
1054 1067
1055# 1068#
1056# CD-ROM/DVD Filesystems 1069# CD-ROM/DVD Filesystems
diff --git a/arch/powerpc/configs/prpmc2800_defconfig b/arch/powerpc/configs/prpmc2800_defconfig
index 57ab5748a34d..a18f597c6e5f 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:12 2010 4# Mon Apr 19 23:16:36 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -97,14 +97,8 @@ CONFIG_RCU_FANOUT=32
97# CONFIG_TREE_RCU_TRACE is not set 97# CONFIG_TREE_RCU_TRACE is not set
98# CONFIG_IKCONFIG is not set 98# CONFIG_IKCONFIG is not set
99CONFIG_LOG_BUF_SHIFT=14 99CONFIG_LOG_BUF_SHIFT=14
100CONFIG_GROUP_SCHED=y
101# CONFIG_FAIR_GROUP_SCHED is not set
102# CONFIG_RT_GROUP_SCHED is not set
103CONFIG_USER_SCHED=y
104# CONFIG_CGROUP_SCHED is not set
105# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
106CONFIG_SYSFS_DEPRECATED=y 101# CONFIG_SYSFS_DEPRECATED_V2 is not set
107CONFIG_SYSFS_DEPRECATED_V2=y
108# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
109CONFIG_NAMESPACES=y 103CONFIG_NAMESPACES=y
110# CONFIG_UTS_NS is not set 104# CONFIG_UTS_NS is not set
@@ -117,6 +111,7 @@ CONFIG_INITRAMFS_SOURCE=""
117CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
118CONFIG_RD_BZIP2=y 112CONFIG_RD_BZIP2=y
119CONFIG_RD_LZMA=y 113CONFIG_RD_LZMA=y
114CONFIG_RD_LZO=y
120# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
121CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
122CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
@@ -319,6 +314,7 @@ CONFIG_ISA_DMA_API=y
319# Bus options 314# Bus options
320# 315#
321CONFIG_ZONE_DMA=y 316CONFIG_ZONE_DMA=y
317CONFIG_NEED_DMA_MAP_STATE=y
322CONFIG_GENERIC_ISA_DMA=y 318CONFIG_GENERIC_ISA_DMA=y
323CONFIG_PPC_INDIRECT_PCI=y 319CONFIG_PPC_INDIRECT_PCI=y
324CONFIG_PCI=y 320CONFIG_PCI=y
@@ -327,7 +323,6 @@ CONFIG_PCI_SYSCALL=y
327# CONFIG_PCIEPORTBUS is not set 323# CONFIG_PCIEPORTBUS is not set
328CONFIG_ARCH_SUPPORTS_MSI=y 324CONFIG_ARCH_SUPPORTS_MSI=y
329# CONFIG_PCI_MSI is not set 325# CONFIG_PCI_MSI is not set
330# CONFIG_PCI_LEGACY is not set
331# CONFIG_PCI_STUB is not set 326# CONFIG_PCI_STUB is not set
332# CONFIG_PCI_IOV is not set 327# CONFIG_PCI_IOV is not set
333# CONFIG_PCCARD is not set 328# CONFIG_PCCARD is not set
@@ -354,7 +349,6 @@ CONFIG_NET=y
354# Networking options 349# Networking options
355# 350#
356CONFIG_PACKET=y 351CONFIG_PACKET=y
357# CONFIG_PACKET_MMAP is not set
358CONFIG_UNIX=y 352CONFIG_UNIX=y
359CONFIG_XFRM=y 353CONFIG_XFRM=y
360CONFIG_XFRM_USER=y 354CONFIG_XFRM_USER=y
@@ -533,6 +527,8 @@ CONFIG_MTD_PHYSMAP_OF=y
533# UBI - Unsorted block images 527# UBI - Unsorted block images
534# 528#
535# CONFIG_MTD_UBI is not set 529# CONFIG_MTD_UBI is not set
530CONFIG_OF_FLATTREE=y
531CONFIG_OF_DYNAMIC=y
536CONFIG_OF_DEVICE=y 532CONFIG_OF_DEVICE=y
537CONFIG_OF_I2C=y 533CONFIG_OF_I2C=y
538CONFIG_OF_MDIO=y 534CONFIG_OF_MDIO=y
@@ -569,6 +565,7 @@ CONFIG_MISC_DEVICES=y
569# CONFIG_ENCLOSURE_SERVICES is not set 565# CONFIG_ENCLOSURE_SERVICES is not set
570# CONFIG_HP_ILO is not set 566# CONFIG_HP_ILO is not set
571# CONFIG_ISL29003 is not set 567# CONFIG_ISL29003 is not set
568# CONFIG_SENSORS_TSL2550 is not set
572# CONFIG_DS1682 is not set 569# CONFIG_DS1682 is not set
573# CONFIG_C2PORT is not set 570# CONFIG_C2PORT is not set
574 571
@@ -640,6 +637,7 @@ CONFIG_BLK_DEV_IDEDMA=y
640# 637#
641# SCSI device support 638# SCSI device support
642# 639#
640CONFIG_SCSI_MOD=y
643# CONFIG_RAID_ATTRS is not set 641# CONFIG_RAID_ATTRS is not set
644CONFIG_SCSI=y 642CONFIG_SCSI=y
645CONFIG_SCSI_DMA=y 643CONFIG_SCSI_DMA=y
@@ -761,6 +759,7 @@ CONFIG_SATA_MV=y
761# CONFIG_PATA_IT821X is not set 759# CONFIG_PATA_IT821X is not set
762# CONFIG_PATA_IT8213 is not set 760# CONFIG_PATA_IT8213 is not set
763# CONFIG_PATA_JMICRON is not set 761# CONFIG_PATA_JMICRON is not set
762# CONFIG_PATA_LEGACY is not set
764# CONFIG_PATA_TRIFLEX is not set 763# CONFIG_PATA_TRIFLEX is not set
765# CONFIG_PATA_MARVELL is not set 764# CONFIG_PATA_MARVELL is not set
766# CONFIG_PATA_MPIIX is not set 765# CONFIG_PATA_MPIIX is not set
@@ -854,6 +853,7 @@ CONFIG_NET_PCI=y
854# CONFIG_PCNET32 is not set 853# CONFIG_PCNET32 is not set
855# CONFIG_AMD8111_ETH is not set 854# CONFIG_AMD8111_ETH is not set
856# CONFIG_ADAPTEC_STARFIRE is not set 855# CONFIG_ADAPTEC_STARFIRE is not set
856# CONFIG_KSZ884X_PCI is not set
857# CONFIG_B44 is not set 857# CONFIG_B44 is not set
858# CONFIG_FORCEDETH is not set 858# CONFIG_FORCEDETH is not set
859CONFIG_E100=y 859CONFIG_E100=y
@@ -907,6 +907,8 @@ CONFIG_NETDEV_10000=y
907# CONFIG_CHELSIO_T1 is not set 907# CONFIG_CHELSIO_T1 is not set
908CONFIG_CHELSIO_T3_DEPENDS=y 908CONFIG_CHELSIO_T3_DEPENDS=y
909# CONFIG_CHELSIO_T3 is not set 909# CONFIG_CHELSIO_T3 is not set
910CONFIG_CHELSIO_T4_DEPENDS=y
911# CONFIG_CHELSIO_T4 is not set
910# CONFIG_ENIC is not set 912# CONFIG_ENIC is not set
911# CONFIG_IXGBE is not set 913# CONFIG_IXGBE is not set
912# CONFIG_IXGB is not set 914# CONFIG_IXGB is not set
@@ -919,6 +921,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
919# CONFIG_MLX4_CORE is not set 921# CONFIG_MLX4_CORE is not set
920# CONFIG_TEHUTI is not set 922# CONFIG_TEHUTI is not set
921# CONFIG_BNX2X is not set 923# CONFIG_BNX2X is not set
924# CONFIG_QLCNIC is not set
922# CONFIG_QLGE is not set 925# CONFIG_QLGE is not set
923# CONFIG_SFC is not set 926# CONFIG_SFC is not set
924# CONFIG_BE2NET is not set 927# CONFIG_BE2NET is not set
@@ -1016,6 +1019,7 @@ CONFIG_SERIAL_MPSC_CONSOLE=y
1016CONFIG_SERIAL_CORE=y 1019CONFIG_SERIAL_CORE=y
1017CONFIG_SERIAL_CORE_CONSOLE=y 1020CONFIG_SERIAL_CORE_CONSOLE=y
1018# CONFIG_SERIAL_JSM is not set 1021# CONFIG_SERIAL_JSM is not set
1022# CONFIG_SERIAL_TIMBERDALE is not set
1019# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 1023# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
1020CONFIG_UNIX98_PTYS=y 1024CONFIG_UNIX98_PTYS=y
1021# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1025# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1065,6 +1069,7 @@ CONFIG_I2C_HELPER_AUTO=y
1065CONFIG_I2C_MV64XXX=y 1069CONFIG_I2C_MV64XXX=y
1066# CONFIG_I2C_OCORES is not set 1070# CONFIG_I2C_OCORES is not set
1067# CONFIG_I2C_SIMTEC is not set 1071# CONFIG_I2C_SIMTEC is not set
1072# CONFIG_I2C_XILINX is not set
1068 1073
1069# 1074#
1070# External I2C/SMBus adapter drivers 1075# External I2C/SMBus adapter drivers
@@ -1077,15 +1082,9 @@ CONFIG_I2C_MV64XXX=y
1077# Other I2C/SMBus bus drivers 1082# Other I2C/SMBus bus drivers
1078# 1083#
1079# CONFIG_I2C_PCA_PLATFORM is not set 1084# CONFIG_I2C_PCA_PLATFORM is not set
1080
1081#
1082# Miscellaneous I2C Chip support
1083#
1084# CONFIG_SENSORS_TSL2550 is not set
1085# CONFIG_I2C_DEBUG_CORE is not set 1085# CONFIG_I2C_DEBUG_CORE is not set
1086# CONFIG_I2C_DEBUG_ALGO is not set 1086# CONFIG_I2C_DEBUG_ALGO is not set
1087# CONFIG_I2C_DEBUG_BUS is not set 1087# CONFIG_I2C_DEBUG_BUS is not set
1088# CONFIG_I2C_DEBUG_CHIP is not set
1089# CONFIG_SPI is not set 1088# CONFIG_SPI is not set
1090 1089
1091# 1090#
@@ -1111,10 +1110,11 @@ CONFIG_HWMON=y
1111# CONFIG_SENSORS_ADM1029 is not set 1110# CONFIG_SENSORS_ADM1029 is not set
1112# CONFIG_SENSORS_ADM1031 is not set 1111# CONFIG_SENSORS_ADM1031 is not set
1113# CONFIG_SENSORS_ADM9240 is not set 1112# CONFIG_SENSORS_ADM9240 is not set
1113# CONFIG_SENSORS_ADT7411 is not set
1114# CONFIG_SENSORS_ADT7462 is not set 1114# CONFIG_SENSORS_ADT7462 is not set
1115# CONFIG_SENSORS_ADT7470 is not set 1115# CONFIG_SENSORS_ADT7470 is not set
1116# CONFIG_SENSORS_ADT7473 is not set
1117# CONFIG_SENSORS_ADT7475 is not set 1116# CONFIG_SENSORS_ADT7475 is not set
1117# CONFIG_SENSORS_ASC7621 is not set
1118# CONFIG_SENSORS_ATXP1 is not set 1118# CONFIG_SENSORS_ATXP1 is not set
1119# CONFIG_SENSORS_DS1621 is not set 1119# CONFIG_SENSORS_DS1621 is not set
1120# CONFIG_SENSORS_I5K_AMB is not set 1120# CONFIG_SENSORS_I5K_AMB is not set
@@ -1151,6 +1151,7 @@ CONFIG_HWMON=y
1151# CONFIG_SENSORS_SMSC47M192 is not set 1151# CONFIG_SENSORS_SMSC47M192 is not set
1152# CONFIG_SENSORS_SMSC47B397 is not set 1152# CONFIG_SENSORS_SMSC47B397 is not set
1153# CONFIG_SENSORS_ADS7828 is not set 1153# CONFIG_SENSORS_ADS7828 is not set
1154# CONFIG_SENSORS_AMC6821 is not set
1154# CONFIG_SENSORS_THMC50 is not set 1155# CONFIG_SENSORS_THMC50 is not set
1155# CONFIG_SENSORS_TMP401 is not set 1156# CONFIG_SENSORS_TMP401 is not set
1156# CONFIG_SENSORS_TMP421 is not set 1157# CONFIG_SENSORS_TMP421 is not set
@@ -1179,18 +1180,21 @@ CONFIG_SSB_POSSIBLE=y
1179# Multifunction device drivers 1180# Multifunction device drivers
1180# 1181#
1181# CONFIG_MFD_CORE is not set 1182# CONFIG_MFD_CORE is not set
1183# CONFIG_MFD_88PM860X is not set
1182# CONFIG_MFD_SM501 is not set 1184# CONFIG_MFD_SM501 is not set
1183# CONFIG_HTC_PASIC3 is not set 1185# CONFIG_HTC_PASIC3 is not set
1184# CONFIG_TWL4030_CORE is not set 1186# CONFIG_TWL4030_CORE is not set
1185# CONFIG_MFD_TMIO is not set 1187# CONFIG_MFD_TMIO is not set
1186# CONFIG_PMIC_DA903X is not set 1188# CONFIG_PMIC_DA903X is not set
1187# CONFIG_PMIC_ADP5520 is not set 1189# CONFIG_PMIC_ADP5520 is not set
1190# CONFIG_MFD_MAX8925 is not set
1188# CONFIG_MFD_WM8400 is not set 1191# CONFIG_MFD_WM8400 is not set
1189# CONFIG_MFD_WM831X is not set 1192# CONFIG_MFD_WM831X is not set
1190# CONFIG_MFD_WM8350_I2C is not set 1193# CONFIG_MFD_WM8350_I2C is not set
1194# CONFIG_MFD_WM8994 is not set
1191# CONFIG_MFD_PCF50633 is not set 1195# CONFIG_MFD_PCF50633 is not set
1192# CONFIG_AB3100_CORE is not set 1196# CONFIG_AB3100_CORE is not set
1193# CONFIG_MFD_88PM8607 is not set 1197# CONFIG_LPC_SCH is not set
1194# CONFIG_REGULATOR is not set 1198# CONFIG_REGULATOR is not set
1195# CONFIG_MEDIA_SUPPORT is not set 1199# CONFIG_MEDIA_SUPPORT is not set
1196 1200
@@ -1199,6 +1203,7 @@ CONFIG_SSB_POSSIBLE=y
1199# 1203#
1200# CONFIG_AGP is not set 1204# CONFIG_AGP is not set
1201CONFIG_VGA_ARB=y 1205CONFIG_VGA_ARB=y
1206CONFIG_VGA_ARB_MAX_GPUS=16
1202# CONFIG_DRM is not set 1207# CONFIG_DRM is not set
1203# CONFIG_VGASTATE is not set 1208# CONFIG_VGASTATE is not set
1204CONFIG_VIDEO_OUTPUT_CONTROL=y 1209CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -1231,6 +1236,7 @@ CONFIG_USB_HID=y
1231# 1236#
1232# Special HID drivers 1237# Special HID drivers
1233# 1238#
1239# CONFIG_HID_3M_PCT is not set
1234CONFIG_HID_A4TECH=y 1240CONFIG_HID_A4TECH=y
1235CONFIG_HID_APPLE=y 1241CONFIG_HID_APPLE=y
1236CONFIG_HID_BELKIN=y 1242CONFIG_HID_BELKIN=y
@@ -1247,14 +1253,19 @@ CONFIG_HID_KENSINGTON=y
1247CONFIG_HID_LOGITECH=y 1253CONFIG_HID_LOGITECH=y
1248# CONFIG_LOGITECH_FF is not set 1254# CONFIG_LOGITECH_FF is not set
1249# CONFIG_LOGIRUMBLEPAD2_FF is not set 1255# CONFIG_LOGIRUMBLEPAD2_FF is not set
1256# CONFIG_LOGIG940_FF is not set
1250CONFIG_HID_MICROSOFT=y 1257CONFIG_HID_MICROSOFT=y
1258# CONFIG_HID_MOSART is not set
1251CONFIG_HID_MONTEREY=y 1259CONFIG_HID_MONTEREY=y
1252CONFIG_HID_NTRIG=y 1260CONFIG_HID_NTRIG=y
1261CONFIG_HID_ORTEK=y
1253CONFIG_HID_PANTHERLORD=y 1262CONFIG_HID_PANTHERLORD=y
1254# CONFIG_PANTHERLORD_FF is not set 1263# CONFIG_PANTHERLORD_FF is not set
1255CONFIG_HID_PETALYNX=y 1264CONFIG_HID_PETALYNX=y
1265# CONFIG_HID_QUANTA is not set
1256CONFIG_HID_SAMSUNG=y 1266CONFIG_HID_SAMSUNG=y
1257CONFIG_HID_SONY=y 1267CONFIG_HID_SONY=y
1268# CONFIG_HID_STANTUM is not set
1258CONFIG_HID_SUNPLUS=y 1269CONFIG_HID_SUNPLUS=y
1259CONFIG_HID_GREENASIA=y 1270CONFIG_HID_GREENASIA=y
1260# CONFIG_GREENASIA_FF is not set 1271# CONFIG_GREENASIA_FF is not set
@@ -1350,7 +1361,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1350# CONFIG_USB_RIO500 is not set 1361# CONFIG_USB_RIO500 is not set
1351# CONFIG_USB_LEGOTOWER is not set 1362# CONFIG_USB_LEGOTOWER is not set
1352# CONFIG_USB_LCD is not set 1363# CONFIG_USB_LCD is not set
1353# CONFIG_USB_BERRY_CHARGE is not set
1354# CONFIG_USB_LED is not set 1364# CONFIG_USB_LED is not set
1355# CONFIG_USB_CYPRESS_CY7C63 is not set 1365# CONFIG_USB_CYPRESS_CY7C63 is not set
1356# CONFIG_USB_CYTHERM is not set 1366# CONFIG_USB_CYTHERM is not set
@@ -1363,7 +1373,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1363# CONFIG_USB_IOWARRIOR is not set 1373# CONFIG_USB_IOWARRIOR is not set
1364# CONFIG_USB_TEST is not set 1374# CONFIG_USB_TEST is not set
1365# CONFIG_USB_ISIGHTFW is not set 1375# CONFIG_USB_ISIGHTFW is not set
1366# CONFIG_USB_VST is not set
1367# CONFIG_USB_GADGET is not set 1376# CONFIG_USB_GADGET is not set
1368 1377
1369# 1378#
@@ -1516,6 +1525,7 @@ CONFIG_MISC_FILESYSTEMS=y
1516# CONFIG_BFS_FS is not set 1525# CONFIG_BFS_FS is not set
1517# CONFIG_EFS_FS is not set 1526# CONFIG_EFS_FS is not set
1518# CONFIG_JFFS2_FS is not set 1527# CONFIG_JFFS2_FS is not set
1528# CONFIG_LOGFS is not set
1519# CONFIG_CRAMFS is not set 1529# CONFIG_CRAMFS is not set
1520# CONFIG_SQUASHFS is not set 1530# CONFIG_SQUASHFS is not set
1521# CONFIG_VXFS_FS is not set 1531# CONFIG_VXFS_FS is not set
@@ -1538,6 +1548,7 @@ CONFIG_SUNRPC=y
1538# CONFIG_RPCSEC_GSS_KRB5 is not set 1548# CONFIG_RPCSEC_GSS_KRB5 is not set
1539# CONFIG_RPCSEC_GSS_SPKM3 is not set 1549# CONFIG_RPCSEC_GSS_SPKM3 is not set
1540# CONFIG_SMB_FS is not set 1550# CONFIG_SMB_FS is not set
1551# CONFIG_CEPH_FS is not set
1541# CONFIG_CIFS is not set 1552# CONFIG_CIFS is not set
1542# CONFIG_NCP_FS is not set 1553# CONFIG_NCP_FS is not set
1543# CONFIG_CODA_FS is not set 1554# CONFIG_CODA_FS is not set
@@ -1620,9 +1631,11 @@ CONFIG_CRC32=y
1620# CONFIG_CRC7 is not set 1631# CONFIG_CRC7 is not set
1621# CONFIG_LIBCRC32C is not set 1632# CONFIG_LIBCRC32C is not set
1622CONFIG_ZLIB_INFLATE=y 1633CONFIG_ZLIB_INFLATE=y
1634CONFIG_LZO_DECOMPRESS=y
1623CONFIG_DECOMPRESS_GZIP=y 1635CONFIG_DECOMPRESS_GZIP=y
1624CONFIG_DECOMPRESS_BZIP2=y 1636CONFIG_DECOMPRESS_BZIP2=y
1625CONFIG_DECOMPRESS_LZMA=y 1637CONFIG_DECOMPRESS_LZMA=y
1638CONFIG_DECOMPRESS_LZO=y
1626CONFIG_HAS_IOMEM=y 1639CONFIG_HAS_IOMEM=y
1627CONFIG_HAS_IOPORT=y 1640CONFIG_HAS_IOPORT=y
1628CONFIG_HAS_DMA=y 1641CONFIG_HAS_DMA=y
diff --git a/arch/powerpc/configs/ps3_defconfig b/arch/powerpc/configs/ps3_defconfig
index 32f7058bb173..3808bc2be86f 100644
--- a/arch/powerpc/configs/ps3_defconfig
+++ b/arch/powerpc/configs/ps3_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.31-rc7 3# Linux kernel version: 2.6.34-rc4
4# Mon Aug 24 17:38:50 2009 4# Thu Apr 15 11:32:15 2010
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -9,6 +9,7 @@ CONFIG_PPC64=y
9# Processor support 9# Processor support
10# 10#
11CONFIG_PPC_BOOK3S_64=y 11CONFIG_PPC_BOOK3S_64=y
12# CONFIG_PPC_BOOK3E_64 is not set
12CONFIG_PPC_BOOK3S=y 13CONFIG_PPC_BOOK3S=y
13# CONFIG_POWER4_ONLY is not set 14# CONFIG_POWER4_ONLY is not set
14CONFIG_POWER3=y 15CONFIG_POWER3=y
@@ -35,7 +36,9 @@ CONFIG_GENERIC_CLOCKEVENTS=y
35CONFIG_GENERIC_HARDIRQS=y 36CONFIG_GENERIC_HARDIRQS=y
36CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 37CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
37CONFIG_HAVE_SETUP_PER_CPU_AREA=y 38CONFIG_HAVE_SETUP_PER_CPU_AREA=y
39CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
38CONFIG_IRQ_PER_CPU=y 40CONFIG_IRQ_PER_CPU=y
41CONFIG_NR_IRQS=512
39CONFIG_STACKTRACE_SUPPORT=y 42CONFIG_STACKTRACE_SUPPORT=y
40CONFIG_HAVE_LATENCYTOP_SUPPORT=y 43CONFIG_HAVE_LATENCYTOP_SUPPORT=y
41CONFIG_TRACE_IRQFLAGS_SUPPORT=y 44CONFIG_TRACE_IRQFLAGS_SUPPORT=y
@@ -60,6 +63,7 @@ CONFIG_AUDIT_ARCH=y
60CONFIG_GENERIC_BUG=y 63CONFIG_GENERIC_BUG=y
61CONFIG_DTC=y 64CONFIG_DTC=y
62# CONFIG_DEFAULT_UIMAGE is not set 65# CONFIG_DEFAULT_UIMAGE is not set
66CONFIG_ARCH_HIBERNATION_POSSIBLE=y
63# CONFIG_PPC_DCR_NATIVE is not set 67# CONFIG_PPC_DCR_NATIVE is not set
64# CONFIG_PPC_DCR_MMIO is not set 68# CONFIG_PPC_DCR_MMIO is not set
65CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y 69CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
@@ -86,14 +90,15 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
86# 90#
87# RCU Subsystem 91# RCU Subsystem
88# 92#
89CONFIG_CLASSIC_RCU=y 93CONFIG_TREE_RCU=y
90# CONFIG_TREE_RCU is not set 94# CONFIG_TREE_PREEMPT_RCU is not set
91# CONFIG_PREEMPT_RCU is not set 95# CONFIG_TINY_RCU is not set
96# CONFIG_RCU_TRACE is not set
97CONFIG_RCU_FANOUT=64
98# CONFIG_RCU_FANOUT_EXACT is not set
92# CONFIG_TREE_RCU_TRACE is not set 99# CONFIG_TREE_RCU_TRACE is not set
93# CONFIG_PREEMPT_RCU_TRACE is not set
94# CONFIG_IKCONFIG is not set 100# CONFIG_IKCONFIG is not set
95CONFIG_LOG_BUF_SHIFT=17 101CONFIG_LOG_BUF_SHIFT=17
96# CONFIG_GROUP_SCHED is not set
97# CONFIG_CGROUPS is not set 102# CONFIG_CGROUPS is not set
98# CONFIG_SYSFS_DEPRECATED_V2 is not set 103# CONFIG_SYSFS_DEPRECATED_V2 is not set
99# CONFIG_RELAY is not set 104# CONFIG_RELAY is not set
@@ -108,6 +113,7 @@ CONFIG_INITRAMFS_SOURCE=""
108CONFIG_RD_GZIP=y 113CONFIG_RD_GZIP=y
109# CONFIG_RD_BZIP2 is not set 114# CONFIG_RD_BZIP2 is not set
110# CONFIG_RD_LZMA is not set 115# CONFIG_RD_LZMA is not set
116# CONFIG_RD_LZO is not set
111CONFIG_CC_OPTIMIZE_FOR_SIZE=y 117CONFIG_CC_OPTIMIZE_FOR_SIZE=y
112CONFIG_SYSCTL=y 118CONFIG_SYSCTL=y
113CONFIG_ANON_INODES=y 119CONFIG_ANON_INODES=y
@@ -128,21 +134,19 @@ CONFIG_TIMERFD=y
128CONFIG_EVENTFD=y 134CONFIG_EVENTFD=y
129CONFIG_SHMEM=y 135CONFIG_SHMEM=y
130CONFIG_AIO=y 136CONFIG_AIO=y
131CONFIG_HAVE_PERF_COUNTERS=y 137CONFIG_HAVE_PERF_EVENTS=y
132 138
133# 139#
134# Performance Counters 140# Kernel Performance Events And Counters
135# 141#
142# CONFIG_PERF_EVENTS is not set
136# CONFIG_PERF_COUNTERS is not set 143# CONFIG_PERF_COUNTERS is not set
137CONFIG_VM_EVENT_COUNTERS=y 144CONFIG_VM_EVENT_COUNTERS=y
138# CONFIG_STRIP_ASM_SYMS is not set
139# CONFIG_COMPAT_BRK is not set 145# CONFIG_COMPAT_BRK is not set
140CONFIG_SLAB=y 146CONFIG_SLAB=y
141# CONFIG_SLUB is not set 147# CONFIG_SLUB is not set
142# CONFIG_SLOB is not set 148# CONFIG_SLOB is not set
143CONFIG_PROFILING=y 149CONFIG_PROFILING=y
144CONFIG_TRACEPOINTS=y
145CONFIG_MARKERS=y
146CONFIG_OPROFILE=m 150CONFIG_OPROFILE=m
147CONFIG_HAVE_OPROFILE=y 151CONFIG_HAVE_OPROFILE=y
148# CONFIG_KPROBES is not set 152# CONFIG_KPROBES is not set
@@ -154,12 +158,14 @@ CONFIG_HAVE_KRETPROBES=y
154CONFIG_HAVE_ARCH_TRACEHOOK=y 158CONFIG_HAVE_ARCH_TRACEHOOK=y
155CONFIG_HAVE_DMA_ATTRS=y 159CONFIG_HAVE_DMA_ATTRS=y
156CONFIG_USE_GENERIC_SMP_HELPERS=y 160CONFIG_USE_GENERIC_SMP_HELPERS=y
161CONFIG_HAVE_DMA_API_DEBUG=y
157 162
158# 163#
159# GCOV-based kernel profiling 164# GCOV-based kernel profiling
160# 165#
161# CONFIG_GCOV_KERNEL is not set 166# CONFIG_GCOV_KERNEL is not set
162# CONFIG_SLOW_WORK is not set 167CONFIG_SLOW_WORK=y
168# CONFIG_SLOW_WORK_DEBUG is not set
163# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 169# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
164CONFIG_SLABINFO=y 170CONFIG_SLABINFO=y
165CONFIG_RT_MUTEXES=y 171CONFIG_RT_MUTEXES=y
@@ -180,14 +186,41 @@ CONFIG_BLOCK_COMPAT=y
180# IO Schedulers 186# IO Schedulers
181# 187#
182CONFIG_IOSCHED_NOOP=y 188CONFIG_IOSCHED_NOOP=y
183CONFIG_IOSCHED_AS=y
184CONFIG_IOSCHED_DEADLINE=y 189CONFIG_IOSCHED_DEADLINE=y
185CONFIG_IOSCHED_CFQ=y 190CONFIG_IOSCHED_CFQ=y
186CONFIG_DEFAULT_AS=y
187# CONFIG_DEFAULT_DEADLINE is not set 191# CONFIG_DEFAULT_DEADLINE is not set
188# CONFIG_DEFAULT_CFQ is not set 192CONFIG_DEFAULT_CFQ=y
189# CONFIG_DEFAULT_NOOP is not set 193# CONFIG_DEFAULT_NOOP is not set
190CONFIG_DEFAULT_IOSCHED="anticipatory" 194CONFIG_DEFAULT_IOSCHED="cfq"
195# CONFIG_INLINE_SPIN_TRYLOCK is not set
196# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
197# CONFIG_INLINE_SPIN_LOCK is not set
198# CONFIG_INLINE_SPIN_LOCK_BH is not set
199# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
200# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
201# CONFIG_INLINE_SPIN_UNLOCK is not set
202# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
203# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
204# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
205# CONFIG_INLINE_READ_TRYLOCK is not set
206# CONFIG_INLINE_READ_LOCK is not set
207# CONFIG_INLINE_READ_LOCK_BH is not set
208# CONFIG_INLINE_READ_LOCK_IRQ is not set
209# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
210# CONFIG_INLINE_READ_UNLOCK is not set
211# CONFIG_INLINE_READ_UNLOCK_BH is not set
212# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
213# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
214# CONFIG_INLINE_WRITE_TRYLOCK is not set
215# CONFIG_INLINE_WRITE_LOCK is not set
216# CONFIG_INLINE_WRITE_LOCK_BH is not set
217# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
218# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
219# CONFIG_INLINE_WRITE_UNLOCK is not set
220# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
221# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
222# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
223# CONFIG_MUTEX_SPIN_ON_OWNER is not set
191# CONFIG_FREEZER is not set 224# CONFIG_FREEZER is not set
192 225
193# 226#
@@ -226,7 +259,6 @@ CONFIG_PPC_CELL=y
226# 259#
227CONFIG_SPU_FS=m 260CONFIG_SPU_FS=m
228CONFIG_SPU_FS_64K_LS=y 261CONFIG_SPU_FS_64K_LS=y
229# CONFIG_SPU_TRACE is not set
230CONFIG_SPU_BASE=y 262CONFIG_SPU_BASE=y
231# CONFIG_PQ2ADS is not set 263# CONFIG_PQ2ADS is not set
232# CONFIG_PPC_OF_BOOT_TRAMPOLINE is not set 264# CONFIG_PPC_OF_BOOT_TRAMPOLINE is not set
@@ -267,7 +299,6 @@ CONFIG_COMPAT_BINFMT_ELF=y
267# CONFIG_HAVE_AOUT is not set 299# CONFIG_HAVE_AOUT is not set
268CONFIG_BINFMT_MISC=y 300CONFIG_BINFMT_MISC=y
269CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 301CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
270# CONFIG_IOMMU_VMERGE is not set
271CONFIG_IOMMU_HELPER=y 302CONFIG_IOMMU_HELPER=y
272# CONFIG_SWIOTLB is not set 303# CONFIG_SWIOTLB is not set
273CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 304CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -276,12 +307,15 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
276CONFIG_KEXEC=y 307CONFIG_KEXEC=y
277# CONFIG_CRASH_DUMP is not set 308# CONFIG_CRASH_DUMP is not set
278# CONFIG_IRQ_ALL_CPUS is not set 309# CONFIG_IRQ_ALL_CPUS is not set
310CONFIG_SPARSE_IRQ=y
279# CONFIG_NUMA is not set 311# CONFIG_NUMA is not set
312CONFIG_MAX_ACTIVE_REGIONS=256
280CONFIG_ARCH_SELECT_MEMORY_MODEL=y 313CONFIG_ARCH_SELECT_MEMORY_MODEL=y
281CONFIG_ARCH_FLATMEM_ENABLE=y 314CONFIG_ARCH_FLATMEM_ENABLE=y
282CONFIG_ARCH_SPARSEMEM_ENABLE=y 315CONFIG_ARCH_SPARSEMEM_ENABLE=y
283CONFIG_ARCH_SPARSEMEM_DEFAULT=y 316CONFIG_ARCH_SPARSEMEM_DEFAULT=y
284CONFIG_ARCH_POPULATES_NODE_MAP=y 317CONFIG_ARCH_POPULATES_NODE_MAP=y
318CONFIG_SYS_SUPPORTS_HUGETLBFS=y
285CONFIG_SELECT_MEMORY_MODEL=y 319CONFIG_SELECT_MEMORY_MODEL=y
286# CONFIG_FLATMEM_MANUAL is not set 320# CONFIG_FLATMEM_MANUAL is not set
287# CONFIG_DISCONTIGMEM_MANUAL is not set 321# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -295,13 +329,12 @@ CONFIG_MEMORY_HOTPLUG=y
295CONFIG_MEMORY_HOTPLUG_SPARSE=y 329CONFIG_MEMORY_HOTPLUG_SPARSE=y
296# CONFIG_MEMORY_HOTREMOVE is not set 330# CONFIG_MEMORY_HOTREMOVE is not set
297CONFIG_PAGEFLAGS_EXTENDED=y 331CONFIG_PAGEFLAGS_EXTENDED=y
298CONFIG_SPLIT_PTLOCK_CPUS=4 332CONFIG_SPLIT_PTLOCK_CPUS=999999
299CONFIG_MIGRATION=y 333CONFIG_MIGRATION=y
300CONFIG_PHYS_ADDR_T_64BIT=y 334CONFIG_PHYS_ADDR_T_64BIT=y
301CONFIG_ZONE_DMA_FLAG=1 335CONFIG_ZONE_DMA_FLAG=1
302CONFIG_BOUNCE=y 336CONFIG_BOUNCE=y
303CONFIG_HAVE_MLOCK=y 337# CONFIG_KSM is not set
304CONFIG_HAVE_MLOCKED_PAGE_BIT=y
305CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 338CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
306CONFIG_ARCH_MEMORY_PROBE=y 339CONFIG_ARCH_MEMORY_PROBE=y
307CONFIG_PPC_HAS_HASH_64K=y 340CONFIG_PPC_HAS_HASH_64K=y
@@ -312,11 +345,15 @@ CONFIG_PPC_4K_PAGES=y
312CONFIG_FORCE_MAX_ZONEORDER=13 345CONFIG_FORCE_MAX_ZONEORDER=13
313CONFIG_SCHED_SMT=y 346CONFIG_SCHED_SMT=y
314CONFIG_PROC_DEVICETREE=y 347CONFIG_PROC_DEVICETREE=y
315# CONFIG_CMDLINE_BOOL is not set 348CONFIG_CMDLINE_BOOL=y
349CONFIG_CMDLINE=""
316CONFIG_EXTRA_TARGETS="" 350CONFIG_EXTRA_TARGETS=""
317CONFIG_PM=y 351CONFIG_PM=y
318CONFIG_PM_DEBUG=y 352CONFIG_PM_DEBUG=y
353# CONFIG_PM_ADVANCED_DEBUG is not set
319# CONFIG_PM_VERBOSE is not set 354# CONFIG_PM_VERBOSE is not set
355# CONFIG_HIBERNATION is not set
356# CONFIG_PM_RUNTIME is not set
320# CONFIG_SECCOMP is not set 357# CONFIG_SECCOMP is not set
321CONFIG_ISA_DMA_API=y 358CONFIG_ISA_DMA_API=y
322 359
@@ -324,6 +361,7 @@ CONFIG_ISA_DMA_API=y
324# Bus options 361# Bus options
325# 362#
326CONFIG_ZONE_DMA=y 363CONFIG_ZONE_DMA=y
364CONFIG_NEED_DMA_MAP_STATE=y
327CONFIG_GENERIC_ISA_DMA=y 365CONFIG_GENERIC_ISA_DMA=y
328CONFIG_PPC_PCI_CHOICE=y 366CONFIG_PPC_PCI_CHOICE=y
329# CONFIG_PCI is not set 367# CONFIG_PCI is not set
@@ -337,12 +375,12 @@ CONFIG_PAGE_OFFSET=0xc000000000000000
337CONFIG_KERNEL_START=0xc000000000000000 375CONFIG_KERNEL_START=0xc000000000000000
338CONFIG_PHYSICAL_START=0x00000000 376CONFIG_PHYSICAL_START=0x00000000
339CONFIG_NET=y 377CONFIG_NET=y
378CONFIG_COMPAT_NETLINK_MESSAGES=y
340 379
341# 380#
342# Networking options 381# Networking options
343# 382#
344CONFIG_PACKET=y 383CONFIG_PACKET=y
345CONFIG_PACKET_MMAP=y
346CONFIG_UNIX=y 384CONFIG_UNIX=y
347CONFIG_XFRM=y 385CONFIG_XFRM=y
348# CONFIG_XFRM_USER is not set 386# CONFIG_XFRM_USER is not set
@@ -392,6 +430,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y
392CONFIG_INET6_XFRM_MODE_BEET=y 430CONFIG_INET6_XFRM_MODE_BEET=y
393# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 431# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
394CONFIG_IPV6_SIT=y 432CONFIG_IPV6_SIT=y
433# CONFIG_IPV6_SIT_6RD is not set
395CONFIG_IPV6_NDISC_NODETYPE=y 434CONFIG_IPV6_NDISC_NODETYPE=y
396# CONFIG_IPV6_TUNNEL is not set 435# CONFIG_IPV6_TUNNEL is not set
397# CONFIG_IPV6_MULTIPLE_TABLES is not set 436# CONFIG_IPV6_MULTIPLE_TABLES is not set
@@ -400,6 +439,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
400# CONFIG_NETFILTER is not set 439# CONFIG_NETFILTER is not set
401# CONFIG_IP_DCCP is not set 440# CONFIG_IP_DCCP is not set
402# CONFIG_IP_SCTP is not set 441# CONFIG_IP_SCTP is not set
442# CONFIG_RDS is not set
403# CONFIG_TIPC is not set 443# CONFIG_TIPC is not set
404# CONFIG_ATM is not set 444# CONFIG_ATM is not set
405# CONFIG_BRIDGE is not set 445# CONFIG_BRIDGE is not set
@@ -422,7 +462,6 @@ CONFIG_IPV6_NDISC_NODETYPE=y
422# Network testing 462# Network testing
423# 463#
424# CONFIG_NET_PKTGEN is not set 464# CONFIG_NET_PKTGEN is not set
425# CONFIG_NET_DROP_MONITOR is not set
426# CONFIG_HAMRADIO is not set 465# CONFIG_HAMRADIO is not set
427# CONFIG_CAN is not set 466# CONFIG_CAN is not set
428# CONFIG_IRDA is not set 467# CONFIG_IRDA is not set
@@ -445,27 +484,30 @@ CONFIG_BT_HCIBTUSB=m
445# CONFIG_BT_HCIBPA10X is not set 484# CONFIG_BT_HCIBPA10X is not set
446# CONFIG_BT_HCIBFUSB is not set 485# CONFIG_BT_HCIBFUSB is not set
447# CONFIG_BT_HCIVHCI is not set 486# CONFIG_BT_HCIVHCI is not set
487# CONFIG_BT_MRVL is not set
488# CONFIG_BT_ATH3K is not set
448# CONFIG_AF_RXRPC is not set 489# CONFIG_AF_RXRPC is not set
449CONFIG_WIRELESS=y 490CONFIG_WIRELESS=y
491CONFIG_WIRELESS_EXT=y
492CONFIG_WEXT_CORE=y
493CONFIG_WEXT_PROC=y
450CONFIG_CFG80211=m 494CONFIG_CFG80211=m
495# CONFIG_NL80211_TESTMODE is not set
496# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
451# CONFIG_CFG80211_REG_DEBUG is not set 497# CONFIG_CFG80211_REG_DEBUG is not set
498CONFIG_CFG80211_DEFAULT_PS=y
452# CONFIG_CFG80211_DEBUGFS is not set 499# CONFIG_CFG80211_DEBUGFS is not set
453# CONFIG_WIRELESS_OLD_REGULATORY is not set 500# CONFIG_CFG80211_INTERNAL_REGDB is not set
454CONFIG_WIRELESS_EXT=y 501CONFIG_CFG80211_WEXT=y
455# CONFIG_WIRELESS_EXT_SYSFS is not set 502# CONFIG_WIRELESS_EXT_SYSFS is not set
456# CONFIG_LIB80211 is not set 503# CONFIG_LIB80211 is not set
457CONFIG_MAC80211=m 504CONFIG_MAC80211=m
458CONFIG_MAC80211_DEFAULT_PS=y
459CONFIG_MAC80211_DEFAULT_PS_VALUE=1
460
461#
462# Rate control algorithm selection
463#
464CONFIG_MAC80211_RC_PID=y 505CONFIG_MAC80211_RC_PID=y
465# CONFIG_MAC80211_RC_MINSTREL is not set 506# CONFIG_MAC80211_RC_MINSTREL is not set
466CONFIG_MAC80211_RC_DEFAULT_PID=y 507CONFIG_MAC80211_RC_DEFAULT_PID=y
467# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set 508# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set
468CONFIG_MAC80211_RC_DEFAULT="pid" 509CONFIG_MAC80211_RC_DEFAULT="pid"
510# CONFIG_MAC80211_MESH is not set
469# CONFIG_MAC80211_LEDS is not set 511# CONFIG_MAC80211_LEDS is not set
470# CONFIG_MAC80211_DEBUGFS is not set 512# CONFIG_MAC80211_DEBUGFS is not set
471# CONFIG_MAC80211_DEBUG_MENU is not set 513# CONFIG_MAC80211_DEBUG_MENU is not set
@@ -481,6 +523,7 @@ CONFIG_MAC80211_RC_DEFAULT="pid"
481# Generic Driver Options 523# Generic Driver Options
482# 524#
483CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 525CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
526# CONFIG_DEVTMPFS is not set
484CONFIG_STANDALONE=y 527CONFIG_STANDALONE=y
485CONFIG_PREVENT_FIRMWARE_BUILD=y 528CONFIG_PREVENT_FIRMWARE_BUILD=y
486CONFIG_FW_LOADER=y 529CONFIG_FW_LOADER=y
@@ -491,6 +534,8 @@ CONFIG_EXTRA_FIRMWARE=""
491# CONFIG_SYS_HYPERVISOR is not set 534# CONFIG_SYS_HYPERVISOR is not set
492# CONFIG_CONNECTOR is not set 535# CONFIG_CONNECTOR is not set
493# CONFIG_MTD is not set 536# CONFIG_MTD is not set
537CONFIG_OF_FLATTREE=y
538CONFIG_OF_DYNAMIC=y
494CONFIG_OF_DEVICE=y 539CONFIG_OF_DEVICE=y
495# CONFIG_PARPORT is not set 540# CONFIG_PARPORT is not set
496CONFIG_BLK_DEV=y 541CONFIG_BLK_DEV=y
@@ -498,6 +543,10 @@ CONFIG_BLK_DEV=y
498# CONFIG_BLK_DEV_COW_COMMON is not set 543# CONFIG_BLK_DEV_COW_COMMON is not set
499CONFIG_BLK_DEV_LOOP=y 544CONFIG_BLK_DEV_LOOP=y
500# CONFIG_BLK_DEV_CRYPTOLOOP is not set 545# CONFIG_BLK_DEV_CRYPTOLOOP is not set
546
547#
548# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
549#
501# CONFIG_BLK_DEV_NBD is not set 550# CONFIG_BLK_DEV_NBD is not set
502# CONFIG_BLK_DEV_UB is not set 551# CONFIG_BLK_DEV_UB is not set
503CONFIG_BLK_DEV_RAM=y 552CONFIG_BLK_DEV_RAM=y
@@ -521,6 +570,7 @@ CONFIG_HAVE_IDE=y
521# 570#
522# SCSI device support 571# SCSI device support
523# 572#
573CONFIG_SCSI_MOD=y
524# CONFIG_RAID_ATTRS is not set 574# CONFIG_RAID_ATTRS is not set
525CONFIG_SCSI=y 575CONFIG_SCSI=y
526CONFIG_SCSI_DMA=y 576CONFIG_SCSI_DMA=y
@@ -590,30 +640,27 @@ CONFIG_MII=m
590# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 640# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
591# CONFIG_B44 is not set 641# CONFIG_B44 is not set
592# CONFIG_KS8842 is not set 642# CONFIG_KS8842 is not set
643# CONFIG_KS8851_MLL is not set
593CONFIG_NETDEV_1000=y 644CONFIG_NETDEV_1000=y
594CONFIG_GELIC_NET=y 645CONFIG_GELIC_NET=y
595CONFIG_GELIC_WIRELESS=y 646CONFIG_GELIC_WIRELESS=y
596# CONFIG_NETDEV_10000 is not set 647# CONFIG_NETDEV_10000 is not set
597 648CONFIG_WLAN=y
598#
599# Wireless LAN
600#
601# CONFIG_WLAN_PRE80211 is not set
602CONFIG_WLAN_80211=y
603# CONFIG_LIBERTAS is not set
604# CONFIG_LIBERTAS_THINFIRM is not set 649# CONFIG_LIBERTAS_THINFIRM is not set
605# CONFIG_AT76C50X_USB is not set 650# CONFIG_AT76C50X_USB is not set
606# CONFIG_USB_ZD1201 is not set 651# CONFIG_USB_ZD1201 is not set
607# CONFIG_USB_NET_RNDIS_WLAN is not set 652# CONFIG_USB_NET_RNDIS_WLAN is not set
608# CONFIG_RTL8187 is not set 653# CONFIG_RTL8187 is not set
609# CONFIG_MAC80211_HWSIM is not set 654# CONFIG_MAC80211_HWSIM is not set
610# CONFIG_P54_COMMON is not set 655# CONFIG_ATH_COMMON is not set
611# CONFIG_AR9170_USB is not set
612# CONFIG_HOSTAP is not set
613# CONFIG_B43 is not set 656# CONFIG_B43 is not set
614# CONFIG_B43LEGACY is not set 657# CONFIG_B43LEGACY is not set
615# CONFIG_ZD1211RW is not set 658# CONFIG_HOSTAP is not set
659# CONFIG_LIBERTAS is not set
660# CONFIG_P54_COMMON is not set
616# CONFIG_RT2X00 is not set 661# CONFIG_RT2X00 is not set
662# CONFIG_WL12XX is not set
663# CONFIG_ZD1211RW is not set
617 664
618# 665#
619# Enable WiMAX (Networking options) to see the WiMAX drivers 666# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -631,6 +678,7 @@ CONFIG_USB_NET_AX8817X=m
631# CONFIG_USB_NET_CDCETHER is not set 678# CONFIG_USB_NET_CDCETHER is not set
632# CONFIG_USB_NET_CDC_EEM is not set 679# CONFIG_USB_NET_CDC_EEM is not set
633# CONFIG_USB_NET_DM9601 is not set 680# CONFIG_USB_NET_DM9601 is not set
681# CONFIG_USB_NET_SMSC75XX is not set
634# CONFIG_USB_NET_SMSC95XX is not set 682# CONFIG_USB_NET_SMSC95XX is not set
635# CONFIG_USB_NET_GL620A is not set 683# CONFIG_USB_NET_GL620A is not set
636# CONFIG_USB_NET_NET1080 is not set 684# CONFIG_USB_NET_NET1080 is not set
@@ -665,6 +713,7 @@ CONFIG_SLHC=m
665CONFIG_INPUT=y 713CONFIG_INPUT=y
666CONFIG_INPUT_FF_MEMLESS=m 714CONFIG_INPUT_FF_MEMLESS=m
667# CONFIG_INPUT_POLLDEV is not set 715# CONFIG_INPUT_POLLDEV is not set
716# CONFIG_INPUT_SPARSEKMAP is not set
668 717
669# 718#
670# Userland interfaces 719# Userland interfaces
@@ -712,6 +761,8 @@ CONFIG_DEVKMEM=y
712# 761#
713# Non-8250 serial port support 762# Non-8250 serial port support
714# 763#
764# CONFIG_SERIAL_TIMBERDALE is not set
765# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
715CONFIG_UNIX98_PTYS=y 766CONFIG_UNIX98_PTYS=y
716# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 767# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
717# CONFIG_LEGACY_PTYS is not set 768# CONFIG_LEGACY_PTYS is not set
@@ -735,7 +786,6 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
735# CONFIG_POWER_SUPPLY is not set 786# CONFIG_POWER_SUPPLY is not set
736# CONFIG_HWMON is not set 787# CONFIG_HWMON is not set
737# CONFIG_THERMAL is not set 788# CONFIG_THERMAL is not set
738# CONFIG_THERMAL_HWMON is not set
739# CONFIG_WATCHDOG is not set 789# CONFIG_WATCHDOG is not set
740CONFIG_SSB_POSSIBLE=y 790CONFIG_SSB_POSSIBLE=y
741 791
@@ -841,13 +891,13 @@ CONFIG_SND_PS3=m
841CONFIG_SND_PS3_DEFAULT_START_DELAY=2000 891CONFIG_SND_PS3_DEFAULT_START_DELAY=2000
842CONFIG_SND_USB=y 892CONFIG_SND_USB=y
843CONFIG_SND_USB_AUDIO=m 893CONFIG_SND_USB_AUDIO=m
894# CONFIG_SND_USB_UA101 is not set
844# CONFIG_SND_USB_USX2Y is not set 895# CONFIG_SND_USB_USX2Y is not set
845# CONFIG_SND_USB_CAIAQ is not set 896# CONFIG_SND_USB_CAIAQ is not set
846# CONFIG_SND_SOC is not set 897# CONFIG_SND_SOC is not set
847# CONFIG_SOUND_PRIME is not set 898# CONFIG_SOUND_PRIME is not set
848CONFIG_HID_SUPPORT=y 899CONFIG_HID_SUPPORT=y
849CONFIG_HID=y 900CONFIG_HID=y
850# CONFIG_HID_DEBUG is not set
851CONFIG_HIDRAW=y 901CONFIG_HIDRAW=y
852 902
853# 903#
@@ -866,6 +916,7 @@ CONFIG_USB_HIDDEV=y
866# 916#
867# Special HID drivers 917# Special HID drivers
868# 918#
919# CONFIG_HID_3M_PCT is not set
869# CONFIG_HID_A4TECH is not set 920# CONFIG_HID_A4TECH is not set
870CONFIG_HID_APPLE=m 921CONFIG_HID_APPLE=m
871CONFIG_HID_BELKIN=m 922CONFIG_HID_BELKIN=m
@@ -876,17 +927,24 @@ CONFIG_HID_CHERRY=m
876CONFIG_HID_EZKEY=m 927CONFIG_HID_EZKEY=m
877# CONFIG_HID_KYE is not set 928# CONFIG_HID_KYE is not set
878# CONFIG_HID_GYRATION is not set 929# CONFIG_HID_GYRATION is not set
930CONFIG_HID_TWINHAN=m
879# CONFIG_HID_KENSINGTON is not set 931# CONFIG_HID_KENSINGTON is not set
880CONFIG_HID_LOGITECH=m 932CONFIG_HID_LOGITECH=m
881# CONFIG_LOGITECH_FF is not set 933# CONFIG_LOGITECH_FF is not set
882# CONFIG_LOGIRUMBLEPAD2_FF is not set 934# CONFIG_LOGIRUMBLEPAD2_FF is not set
935# CONFIG_LOGIG940_FF is not set
936# CONFIG_HID_MAGICMOUSE is not set
883CONFIG_HID_MICROSOFT=m 937CONFIG_HID_MICROSOFT=m
938# CONFIG_HID_MOSART is not set
884# CONFIG_HID_MONTEREY is not set 939# CONFIG_HID_MONTEREY is not set
885# CONFIG_HID_NTRIG is not set 940# CONFIG_HID_NTRIG is not set
941# CONFIG_HID_ORTEK is not set
886# CONFIG_HID_PANTHERLORD is not set 942# CONFIG_HID_PANTHERLORD is not set
887# CONFIG_HID_PETALYNX is not set 943# CONFIG_HID_PETALYNX is not set
944# CONFIG_HID_QUANTA is not set
888# CONFIG_HID_SAMSUNG is not set 945# CONFIG_HID_SAMSUNG is not set
889CONFIG_HID_SONY=m 946CONFIG_HID_SONY=m
947# CONFIG_HID_STANTUM is not set
890CONFIG_HID_SUNPLUS=m 948CONFIG_HID_SUNPLUS=m
891# CONFIG_HID_GREENASIA is not set 949# CONFIG_HID_GREENASIA is not set
892CONFIG_HID_SMARTJOYPLUS=m 950CONFIG_HID_SMARTJOYPLUS=m
@@ -901,7 +959,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
901CONFIG_USB_ARCH_HAS_EHCI=y 959CONFIG_USB_ARCH_HAS_EHCI=y
902CONFIG_USB=m 960CONFIG_USB=m
903# CONFIG_USB_DEBUG is not set 961# CONFIG_USB_DEBUG is not set
904# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set 962CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
905 963
906# 964#
907# Miscellaneous USB options 965# Miscellaneous USB options
@@ -909,7 +967,6 @@ CONFIG_USB=m
909CONFIG_USB_DEVICEFS=y 967CONFIG_USB_DEVICEFS=y
910# CONFIG_USB_DEVICE_CLASS is not set 968# CONFIG_USB_DEVICE_CLASS is not set
911# CONFIG_USB_DYNAMIC_MINORS is not set 969# CONFIG_USB_DYNAMIC_MINORS is not set
912CONFIG_USB_SUSPEND=y
913# CONFIG_USB_OTG is not set 970# CONFIG_USB_OTG is not set
914# CONFIG_USB_OTG_WHITELIST is not set 971# CONFIG_USB_OTG_WHITELIST is not set
915# CONFIG_USB_OTG_BLACKLIST_HUB is not set 972# CONFIG_USB_OTG_BLACKLIST_HUB is not set
@@ -923,12 +980,13 @@ CONFIG_USB_MON=m
923# CONFIG_USB_C67X00_HCD is not set 980# CONFIG_USB_C67X00_HCD is not set
924CONFIG_USB_EHCI_HCD=m 981CONFIG_USB_EHCI_HCD=m
925# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 982# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
926# CONFIG_USB_EHCI_TT_NEWSCHED is not set 983CONFIG_USB_EHCI_TT_NEWSCHED=y
927CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y 984CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y
928# CONFIG_USB_EHCI_HCD_PPC_OF is not set 985# CONFIG_USB_EHCI_HCD_PPC_OF is not set
929# CONFIG_USB_OXU210HP_HCD is not set 986# CONFIG_USB_OXU210HP_HCD is not set
930# CONFIG_USB_ISP116X_HCD is not set 987# CONFIG_USB_ISP116X_HCD is not set
931# CONFIG_USB_ISP1760_HCD is not set 988# CONFIG_USB_ISP1760_HCD is not set
989# CONFIG_USB_ISP1362_HCD is not set
932CONFIG_USB_OHCI_HCD=m 990CONFIG_USB_OHCI_HCD=m
933# CONFIG_USB_OHCI_HCD_PPC_OF_BE is not set 991# CONFIG_USB_OHCI_HCD_PPC_OF_BE is not set
934# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set 992# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set
@@ -995,7 +1053,6 @@ CONFIG_USB_STORAGE=m
995# CONFIG_USB_RIO500 is not set 1053# CONFIG_USB_RIO500 is not set
996# CONFIG_USB_LEGOTOWER is not set 1054# CONFIG_USB_LEGOTOWER is not set
997# CONFIG_USB_LCD is not set 1055# CONFIG_USB_LCD is not set
998# CONFIG_USB_BERRY_CHARGE is not set
999# CONFIG_USB_LED is not set 1056# CONFIG_USB_LED is not set
1000# CONFIG_USB_CYPRESS_CY7C63 is not set 1057# CONFIG_USB_CYPRESS_CY7C63 is not set
1001# CONFIG_USB_CYTHERM is not set 1058# CONFIG_USB_CYTHERM is not set
@@ -1008,7 +1065,6 @@ CONFIG_USB_STORAGE=m
1008# CONFIG_USB_IOWARRIOR is not set 1065# CONFIG_USB_IOWARRIOR is not set
1009# CONFIG_USB_TEST is not set 1066# CONFIG_USB_TEST is not set
1010# CONFIG_USB_ISIGHTFW is not set 1067# CONFIG_USB_ISIGHTFW is not set
1011# CONFIG_USB_VST is not set
1012# CONFIG_USB_GADGET is not set 1068# CONFIG_USB_GADGET is not set
1013 1069
1014# 1070#
@@ -1048,7 +1104,9 @@ CONFIG_RTC_INTF_DEV=y
1048# CONFIG_RTC_DRV_M48T86 is not set 1104# CONFIG_RTC_DRV_M48T86 is not set
1049# CONFIG_RTC_DRV_M48T35 is not set 1105# CONFIG_RTC_DRV_M48T35 is not set
1050# CONFIG_RTC_DRV_M48T59 is not set 1106# CONFIG_RTC_DRV_M48T59 is not set
1107# CONFIG_RTC_DRV_MSM6242 is not set
1051# CONFIG_RTC_DRV_BQ4802 is not set 1108# CONFIG_RTC_DRV_BQ4802 is not set
1109# CONFIG_RTC_DRV_RP5C01 is not set
1052# CONFIG_RTC_DRV_V3020 is not set 1110# CONFIG_RTC_DRV_V3020 is not set
1053 1111
1054# 1112#
@@ -1077,10 +1135,10 @@ CONFIG_EXT3_FS_XATTR=y
1077# CONFIG_EXT3_FS_POSIX_ACL is not set 1135# CONFIG_EXT3_FS_POSIX_ACL is not set
1078# CONFIG_EXT3_FS_SECURITY is not set 1136# CONFIG_EXT3_FS_SECURITY is not set
1079CONFIG_EXT4_FS=y 1137CONFIG_EXT4_FS=y
1080# CONFIG_EXT4DEV_COMPAT is not set
1081CONFIG_EXT4_FS_XATTR=y 1138CONFIG_EXT4_FS_XATTR=y
1082# CONFIG_EXT4_FS_POSIX_ACL is not set 1139# CONFIG_EXT4_FS_POSIX_ACL is not set
1083# CONFIG_EXT4_FS_SECURITY is not set 1140# CONFIG_EXT4_FS_SECURITY is not set
1141# CONFIG_EXT4_DEBUG is not set
1084CONFIG_JBD=m 1142CONFIG_JBD=m
1085# CONFIG_JBD_DEBUG is not set 1143# CONFIG_JBD_DEBUG is not set
1086CONFIG_JBD2=y 1144CONFIG_JBD2=y
@@ -1093,6 +1151,7 @@ CONFIG_FS_MBCACHE=y
1093# CONFIG_GFS2_FS is not set 1151# CONFIG_GFS2_FS is not set
1094# CONFIG_OCFS2_FS is not set 1152# CONFIG_OCFS2_FS is not set
1095# CONFIG_BTRFS_FS is not set 1153# CONFIG_BTRFS_FS is not set
1154# CONFIG_NILFS2_FS is not set
1096CONFIG_FILE_LOCKING=y 1155CONFIG_FILE_LOCKING=y
1097CONFIG_FSNOTIFY=y 1156CONFIG_FSNOTIFY=y
1098CONFIG_DNOTIFY=y 1157CONFIG_DNOTIFY=y
@@ -1154,6 +1213,7 @@ CONFIG_MISC_FILESYSTEMS=y
1154# CONFIG_BEFS_FS is not set 1213# CONFIG_BEFS_FS is not set
1155# CONFIG_BFS_FS is not set 1214# CONFIG_BFS_FS is not set
1156# CONFIG_EFS_FS is not set 1215# CONFIG_EFS_FS is not set
1216# CONFIG_LOGFS is not set
1157# CONFIG_CRAMFS is not set 1217# CONFIG_CRAMFS is not set
1158# CONFIG_SQUASHFS is not set 1218# CONFIG_SQUASHFS is not set
1159# CONFIG_VXFS_FS is not set 1219# CONFIG_VXFS_FS is not set
@@ -1164,7 +1224,6 @@ CONFIG_MISC_FILESYSTEMS=y
1164# CONFIG_ROMFS_FS is not set 1224# CONFIG_ROMFS_FS is not set
1165# CONFIG_SYSV_FS is not set 1225# CONFIG_SYSV_FS is not set
1166# CONFIG_UFS_FS is not set 1226# CONFIG_UFS_FS is not set
1167# CONFIG_NILFS2_FS is not set
1168CONFIG_NETWORK_FILESYSTEMS=y 1227CONFIG_NETWORK_FILESYSTEMS=y
1169CONFIG_NFS_FS=y 1228CONFIG_NFS_FS=y
1170CONFIG_NFS_V3=y 1229CONFIG_NFS_V3=y
@@ -1181,6 +1240,7 @@ CONFIG_SUNRPC_GSS=y
1181CONFIG_RPCSEC_GSS_KRB5=y 1240CONFIG_RPCSEC_GSS_KRB5=y
1182# CONFIG_RPCSEC_GSS_SPKM3 is not set 1241# CONFIG_RPCSEC_GSS_SPKM3 is not set
1183# CONFIG_SMB_FS is not set 1242# CONFIG_SMB_FS is not set
1243# CONFIG_CEPH_FS is not set
1184CONFIG_CIFS=m 1244CONFIG_CIFS=m
1185# CONFIG_CIFS_STATS is not set 1245# CONFIG_CIFS_STATS is not set
1186# CONFIG_CIFS_WEAK_PW_HASH is not set 1246# CONFIG_CIFS_WEAK_PW_HASH is not set
@@ -1237,7 +1297,7 @@ CONFIG_NLS_ISO8859_1=y
1237# CONFIG_NLS_KOI8_U is not set 1297# CONFIG_NLS_KOI8_U is not set
1238# CONFIG_NLS_UTF8 is not set 1298# CONFIG_NLS_UTF8 is not set
1239# CONFIG_DLM is not set 1299# CONFIG_DLM is not set
1240CONFIG_BINARY_PRINTF=y 1300# CONFIG_BINARY_PRINTF is not set
1241 1301
1242# 1302#
1243# Library routines 1303# Library routines
@@ -1270,6 +1330,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1270CONFIG_ENABLE_MUST_CHECK=y 1330CONFIG_ENABLE_MUST_CHECK=y
1271CONFIG_FRAME_WARN=2048 1331CONFIG_FRAME_WARN=2048
1272CONFIG_MAGIC_SYSRQ=y 1332CONFIG_MAGIC_SYSRQ=y
1333# CONFIG_STRIP_ASM_SYMS is not set
1273# CONFIG_UNUSED_SYMBOLS is not set 1334# CONFIG_UNUSED_SYMBOLS is not set
1274CONFIG_DEBUG_FS=y 1335CONFIG_DEBUG_FS=y
1275# CONFIG_HEADERS_CHECK is not set 1336# CONFIG_HEADERS_CHECK is not set
@@ -1292,6 +1353,7 @@ CONFIG_DEBUG_SPINLOCK=y
1292CONFIG_DEBUG_MUTEXES=y 1353CONFIG_DEBUG_MUTEXES=y
1293CONFIG_DEBUG_LOCK_ALLOC=y 1354CONFIG_DEBUG_LOCK_ALLOC=y
1294CONFIG_PROVE_LOCKING=y 1355CONFIG_PROVE_LOCKING=y
1356# CONFIG_PROVE_RCU is not set
1295CONFIG_LOCKDEP=y 1357CONFIG_LOCKDEP=y
1296# CONFIG_LOCK_STAT is not set 1358# CONFIG_LOCK_STAT is not set
1297CONFIG_DEBUG_LOCKDEP=y 1359CONFIG_DEBUG_LOCKDEP=y
@@ -1308,26 +1370,27 @@ CONFIG_DEBUG_MEMORY_INIT=y
1308CONFIG_DEBUG_LIST=y 1370CONFIG_DEBUG_LIST=y
1309# CONFIG_DEBUG_SG is not set 1371# CONFIG_DEBUG_SG is not set
1310# CONFIG_DEBUG_NOTIFIERS is not set 1372# CONFIG_DEBUG_NOTIFIERS is not set
1373# CONFIG_DEBUG_CREDENTIALS is not set
1311# CONFIG_RCU_TORTURE_TEST is not set 1374# CONFIG_RCU_TORTURE_TEST is not set
1312# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1375# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1313# CONFIG_BACKTRACE_SELF_TEST is not set 1376# CONFIG_BACKTRACE_SELF_TEST is not set
1314# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1377# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1378# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1379# CONFIG_LKDTM is not set
1315# CONFIG_FAULT_INJECTION is not set 1380# CONFIG_FAULT_INJECTION is not set
1316# CONFIG_LATENCYTOP is not set 1381# CONFIG_LATENCYTOP is not set
1317CONFIG_SYSCTL_SYSCALL_CHECK=y 1382CONFIG_SYSCTL_SYSCALL_CHECK=y
1318# CONFIG_DEBUG_PAGEALLOC is not set 1383# CONFIG_DEBUG_PAGEALLOC is not set
1319CONFIG_NOP_TRACER=y
1320CONFIG_HAVE_FUNCTION_TRACER=y 1384CONFIG_HAVE_FUNCTION_TRACER=y
1321CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1385CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1322CONFIG_HAVE_DYNAMIC_FTRACE=y 1386CONFIG_HAVE_DYNAMIC_FTRACE=y
1323CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y 1387CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1324CONFIG_RING_BUFFER=y 1388CONFIG_RING_BUFFER=y
1325CONFIG_EVENT_TRACING=y 1389CONFIG_RING_BUFFER_ALLOW_SWAP=y
1326CONFIG_CONTEXT_SWITCH_TRACER=y
1327CONFIG_TRACING=y
1328CONFIG_TRACING_SUPPORT=y 1390CONFIG_TRACING_SUPPORT=y
1329# CONFIG_FTRACE is not set 1391# CONFIG_FTRACE is not set
1330# CONFIG_DYNAMIC_DEBUG is not set 1392# CONFIG_DYNAMIC_DEBUG is not set
1393# CONFIG_DMA_API_DEBUG is not set
1331# CONFIG_SAMPLES is not set 1394# CONFIG_SAMPLES is not set
1332CONFIG_HAVE_ARCH_KGDB=y 1395CONFIG_HAVE_ARCH_KGDB=y
1333# CONFIG_KGDB is not set 1396# CONFIG_KGDB is not set
@@ -1352,13 +1415,16 @@ CONFIG_IRQSTACKS=y
1352# CONFIG_KEYS is not set 1415# CONFIG_KEYS is not set
1353# CONFIG_SECURITY is not set 1416# CONFIG_SECURITY is not set
1354# CONFIG_SECURITYFS is not set 1417# CONFIG_SECURITYFS is not set
1355# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1418# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1419# CONFIG_DEFAULT_SECURITY_SMACK is not set
1420# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1421CONFIG_DEFAULT_SECURITY_DAC=y
1422CONFIG_DEFAULT_SECURITY=""
1356CONFIG_CRYPTO=y 1423CONFIG_CRYPTO=y
1357 1424
1358# 1425#
1359# Crypto core or helper 1426# Crypto core or helper
1360# 1427#
1361# CONFIG_CRYPTO_FIPS is not set
1362CONFIG_CRYPTO_ALGAPI=y 1428CONFIG_CRYPTO_ALGAPI=y
1363CONFIG_CRYPTO_ALGAPI2=y 1429CONFIG_CRYPTO_ALGAPI2=y
1364CONFIG_CRYPTO_AEAD=m 1430CONFIG_CRYPTO_AEAD=m
@@ -1374,6 +1440,7 @@ CONFIG_CRYPTO_MANAGER=y
1374CONFIG_CRYPTO_MANAGER2=y 1440CONFIG_CRYPTO_MANAGER2=y
1375CONFIG_CRYPTO_GF128MUL=m 1441CONFIG_CRYPTO_GF128MUL=m
1376# CONFIG_CRYPTO_NULL is not set 1442# CONFIG_CRYPTO_NULL is not set
1443# CONFIG_CRYPTO_PCRYPT is not set
1377CONFIG_CRYPTO_WORKQUEUE=y 1444CONFIG_CRYPTO_WORKQUEUE=y
1378# CONFIG_CRYPTO_CRYPTD is not set 1445# CONFIG_CRYPTO_CRYPTD is not set
1379# CONFIG_CRYPTO_AUTHENC is not set 1446# CONFIG_CRYPTO_AUTHENC is not set
@@ -1402,11 +1469,13 @@ CONFIG_CRYPTO_PCBC=m
1402# 1469#
1403# CONFIG_CRYPTO_HMAC is not set 1470# CONFIG_CRYPTO_HMAC is not set
1404# CONFIG_CRYPTO_XCBC is not set 1471# CONFIG_CRYPTO_XCBC is not set
1472# CONFIG_CRYPTO_VMAC is not set
1405 1473
1406# 1474#
1407# Digest 1475# Digest
1408# 1476#
1409# CONFIG_CRYPTO_CRC32C is not set 1477# CONFIG_CRYPTO_CRC32C is not set
1478CONFIG_CRYPTO_GHASH=m
1410# CONFIG_CRYPTO_MD4 is not set 1479# CONFIG_CRYPTO_MD4 is not set
1411CONFIG_CRYPTO_MD5=y 1480CONFIG_CRYPTO_MD5=y
1412CONFIG_CRYPTO_MICHAEL_MIC=m 1481CONFIG_CRYPTO_MICHAEL_MIC=m
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig
index 41de3ddc9f24..16ae717d1958 100644
--- a/arch/powerpc/configs/pseries_defconfig
+++ b/arch/powerpc/configs/pseries_defconfig
@@ -92,8 +92,7 @@ CONFIG_CPUSETS=y
92# CONFIG_GROUP_SCHED is not set 92# CONFIG_GROUP_SCHED is not set
93CONFIG_CGROUP_CPUACCT=y 93CONFIG_CGROUP_CPUACCT=y
94# CONFIG_RESOURCE_COUNTERS is not set 94# CONFIG_RESOURCE_COUNTERS is not set
95CONFIG_SYSFS_DEPRECATED=y 95# CONFIG_SYSFS_DEPRECATED_V2 is not set
96CONFIG_SYSFS_DEPRECATED_V2=y
97CONFIG_PROC_PID_CPUSET=y 96CONFIG_PROC_PID_CPUSET=y
98CONFIG_RELAY=y 97CONFIG_RELAY=y
99CONFIG_NAMESPACES=y 98CONFIG_NAMESPACES=y
@@ -804,7 +803,7 @@ CONFIG_ACENIC=m
804CONFIG_ACENIC_OMIT_TIGON_I=y 803CONFIG_ACENIC_OMIT_TIGON_I=y
805# CONFIG_DL2K is not set 804# CONFIG_DL2K is not set
806CONFIG_E1000=y 805CONFIG_E1000=y
807CONFIG_E1000E=m 806CONFIG_E1000E=y
808# CONFIG_IP1000 is not set 807# CONFIG_IP1000 is not set
809# CONFIG_IGB is not set 808# CONFIG_IGB is not set
810# CONFIG_NS83820 is not set 809# CONFIG_NS83820 is not set
diff --git a/arch/powerpc/configs/storcenter_defconfig b/arch/powerpc/configs/storcenter_defconfig
index f2f832161463..01be0e207f40 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.33-rc3 3# Linux kernel version: 2.6.34-rc5
4# Wed Jan 6 09:24:13 2010 4# Mon Apr 19 23:16:37 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -94,14 +94,8 @@ CONFIG_RCU_FANOUT=32
94# CONFIG_TREE_RCU_TRACE is not set 94# CONFIG_TREE_RCU_TRACE is not set
95# CONFIG_IKCONFIG is not set 95# CONFIG_IKCONFIG is not set
96CONFIG_LOG_BUF_SHIFT=14 96CONFIG_LOG_BUF_SHIFT=14
97CONFIG_GROUP_SCHED=y
98CONFIG_FAIR_GROUP_SCHED=y
99# CONFIG_RT_GROUP_SCHED is not set
100CONFIG_USER_SCHED=y
101# CONFIG_CGROUP_SCHED is not set
102# CONFIG_CGROUPS is not set 97# CONFIG_CGROUPS is not set
103CONFIG_SYSFS_DEPRECATED=y 98# CONFIG_SYSFS_DEPRECATED_V2 is not set
104CONFIG_SYSFS_DEPRECATED_V2=y
105# CONFIG_RELAY is not set 99# CONFIG_RELAY is not set
106# CONFIG_NAMESPACES is not set 100# CONFIG_NAMESPACES is not set
107# CONFIG_BLK_DEV_INITRD is not set 101# CONFIG_BLK_DEV_INITRD is not set
@@ -314,6 +308,7 @@ CONFIG_ISA_DMA_API=y
314# Bus options 308# Bus options
315# 309#
316CONFIG_ZONE_DMA=y 310CONFIG_ZONE_DMA=y
311# CONFIG_NEED_DMA_MAP_STATE is not set
317CONFIG_GENERIC_ISA_DMA=y 312CONFIG_GENERIC_ISA_DMA=y
318CONFIG_PPC_INDIRECT_PCI=y 313CONFIG_PPC_INDIRECT_PCI=y
319CONFIG_FSL_SOC=y 314CONFIG_FSL_SOC=y
@@ -323,7 +318,6 @@ CONFIG_PCI_SYSCALL=y
323# CONFIG_PCIEPORTBUS is not set 318# CONFIG_PCIEPORTBUS is not set
324CONFIG_ARCH_SUPPORTS_MSI=y 319CONFIG_ARCH_SUPPORTS_MSI=y
325# CONFIG_PCI_MSI is not set 320# CONFIG_PCI_MSI is not set
326# CONFIG_PCI_LEGACY is not set
327# CONFIG_PCI_STUB is not set 321# CONFIG_PCI_STUB is not set
328# CONFIG_PCI_IOV is not set 322# CONFIG_PCI_IOV is not set
329# CONFIG_PCCARD is not set 323# CONFIG_PCCARD is not set
@@ -349,7 +343,6 @@ CONFIG_NET=y
349# Networking options 343# Networking options
350# 344#
351CONFIG_PACKET=m 345CONFIG_PACKET=m
352# CONFIG_PACKET_MMAP is not set
353CONFIG_UNIX=y 346CONFIG_UNIX=y
354# CONFIG_NET_KEY is not set 347# CONFIG_NET_KEY is not set
355CONFIG_INET=y 348CONFIG_INET=y
@@ -524,6 +517,8 @@ CONFIG_MTD_PHYSMAP=y
524# UBI - Unsorted block images 517# UBI - Unsorted block images
525# 518#
526# CONFIG_MTD_UBI is not set 519# CONFIG_MTD_UBI is not set
520CONFIG_OF_FLATTREE=y
521CONFIG_OF_DYNAMIC=y
527CONFIG_OF_DEVICE=y 522CONFIG_OF_DEVICE=y
528CONFIG_OF_I2C=y 523CONFIG_OF_I2C=y
529# CONFIG_PARPORT is not set 524# CONFIG_PARPORT is not set
@@ -555,6 +550,7 @@ CONFIG_MISC_DEVICES=y
555# CONFIG_ENCLOSURE_SERVICES is not set 550# CONFIG_ENCLOSURE_SERVICES is not set
556# CONFIG_HP_ILO is not set 551# CONFIG_HP_ILO is not set
557# CONFIG_ISL29003 is not set 552# CONFIG_ISL29003 is not set
553# CONFIG_SENSORS_TSL2550 is not set
558# CONFIG_DS1682 is not set 554# CONFIG_DS1682 is not set
559# CONFIG_C2PORT is not set 555# CONFIG_C2PORT is not set
560 556
@@ -626,6 +622,7 @@ CONFIG_BLK_DEV_IDEDMA=y
626# 622#
627# SCSI device support 623# SCSI device support
628# 624#
625CONFIG_SCSI_MOD=y
629# CONFIG_RAID_ATTRS is not set 626# CONFIG_RAID_ATTRS is not set
630CONFIG_SCSI=y 627CONFIG_SCSI=y
631CONFIG_SCSI_DMA=y 628CONFIG_SCSI_DMA=y
@@ -846,6 +843,7 @@ CONFIG_SERIAL_CORE=y
846CONFIG_SERIAL_CORE_CONSOLE=y 843CONFIG_SERIAL_CORE_CONSOLE=y
847# CONFIG_SERIAL_JSM is not set 844# CONFIG_SERIAL_JSM is not set
848# CONFIG_SERIAL_OF_PLATFORM is not set 845# CONFIG_SERIAL_OF_PLATFORM is not set
846# CONFIG_SERIAL_TIMBERDALE is not set
849# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 847# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
850CONFIG_UNIX98_PTYS=y 848CONFIG_UNIX98_PTYS=y
851# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 849# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -895,6 +893,7 @@ CONFIG_I2C_HELPER_AUTO=y
895CONFIG_I2C_MPC=y 893CONFIG_I2C_MPC=y
896# CONFIG_I2C_OCORES is not set 894# CONFIG_I2C_OCORES is not set
897# CONFIG_I2C_SIMTEC is not set 895# CONFIG_I2C_SIMTEC is not set
896# CONFIG_I2C_XILINX is not set
898 897
899# 898#
900# External I2C/SMBus adapter drivers 899# External I2C/SMBus adapter drivers
@@ -908,15 +907,9 @@ CONFIG_I2C_MPC=y
908# 907#
909# CONFIG_I2C_PCA_PLATFORM is not set 908# CONFIG_I2C_PCA_PLATFORM is not set
910# CONFIG_I2C_STUB is not set 909# CONFIG_I2C_STUB is not set
911
912#
913# Miscellaneous I2C Chip support
914#
915# CONFIG_SENSORS_TSL2550 is not set
916# CONFIG_I2C_DEBUG_CORE is not set 910# CONFIG_I2C_DEBUG_CORE is not set
917# CONFIG_I2C_DEBUG_ALGO is not set 911# CONFIG_I2C_DEBUG_ALGO is not set
918# CONFIG_I2C_DEBUG_BUS is not set 912# CONFIG_I2C_DEBUG_BUS is not set
919# CONFIG_I2C_DEBUG_CHIP is not set
920# CONFIG_SPI is not set 913# CONFIG_SPI is not set
921 914
922# 915#
@@ -941,18 +934,21 @@ CONFIG_SSB_POSSIBLE=y
941# Multifunction device drivers 934# Multifunction device drivers
942# 935#
943# CONFIG_MFD_CORE is not set 936# CONFIG_MFD_CORE is not set
937# CONFIG_MFD_88PM860X is not set
944# CONFIG_MFD_SM501 is not set 938# CONFIG_MFD_SM501 is not set
945# CONFIG_HTC_PASIC3 is not set 939# CONFIG_HTC_PASIC3 is not set
946# CONFIG_TWL4030_CORE is not set 940# CONFIG_TWL4030_CORE is not set
947# CONFIG_MFD_TMIO is not set 941# CONFIG_MFD_TMIO is not set
948# CONFIG_PMIC_DA903X is not set 942# CONFIG_PMIC_DA903X is not set
949# CONFIG_PMIC_ADP5520 is not set 943# CONFIG_PMIC_ADP5520 is not set
944# CONFIG_MFD_MAX8925 is not set
950# CONFIG_MFD_WM8400 is not set 945# CONFIG_MFD_WM8400 is not set
951# CONFIG_MFD_WM831X is not set 946# CONFIG_MFD_WM831X is not set
952# CONFIG_MFD_WM8350_I2C is not set 947# CONFIG_MFD_WM8350_I2C is not set
948# CONFIG_MFD_WM8994 is not set
953# CONFIG_MFD_PCF50633 is not set 949# CONFIG_MFD_PCF50633 is not set
954# CONFIG_AB3100_CORE is not set 950# CONFIG_AB3100_CORE is not set
955# CONFIG_MFD_88PM8607 is not set 951# CONFIG_LPC_SCH is not set
956# CONFIG_REGULATOR is not set 952# CONFIG_REGULATOR is not set
957# CONFIG_MEDIA_SUPPORT is not set 953# CONFIG_MEDIA_SUPPORT is not set
958 954
@@ -961,6 +957,7 @@ CONFIG_SSB_POSSIBLE=y
961# 957#
962# CONFIG_AGP is not set 958# CONFIG_AGP is not set
963CONFIG_VGA_ARB=y 959CONFIG_VGA_ARB=y
960CONFIG_VGA_ARB_MAX_GPUS=16
964# CONFIG_DRM is not set 961# CONFIG_DRM is not set
965# CONFIG_VGASTATE is not set 962# CONFIG_VGASTATE is not set
966# CONFIG_VIDEO_OUTPUT_CONTROL is not set 963# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1071,7 +1068,6 @@ CONFIG_USB_STORAGE=y
1071# CONFIG_USB_RIO500 is not set 1068# CONFIG_USB_RIO500 is not set
1072# CONFIG_USB_LEGOTOWER is not set 1069# CONFIG_USB_LEGOTOWER is not set
1073# CONFIG_USB_LCD is not set 1070# CONFIG_USB_LCD is not set
1074# CONFIG_USB_BERRY_CHARGE is not set
1075# CONFIG_USB_LED is not set 1071# CONFIG_USB_LED is not set
1076# CONFIG_USB_CYPRESS_CY7C63 is not set 1072# CONFIG_USB_CYPRESS_CY7C63 is not set
1077# CONFIG_USB_CYTHERM is not set 1073# CONFIG_USB_CYTHERM is not set
@@ -1084,7 +1080,6 @@ CONFIG_USB_STORAGE=y
1084# CONFIG_USB_IOWARRIOR is not set 1080# CONFIG_USB_IOWARRIOR is not set
1085# CONFIG_USB_TEST is not set 1081# CONFIG_USB_TEST is not set
1086# CONFIG_USB_ISIGHTFW is not set 1082# CONFIG_USB_ISIGHTFW is not set
1087# CONFIG_USB_VST is not set
1088# CONFIG_USB_GADGET is not set 1083# CONFIG_USB_GADGET is not set
1089 1084
1090# 1085#
@@ -1251,6 +1246,7 @@ CONFIG_JFFS2_ZLIB=y
1251# CONFIG_JFFS2_LZO is not set 1246# CONFIG_JFFS2_LZO is not set
1252CONFIG_JFFS2_RTIME=y 1247CONFIG_JFFS2_RTIME=y
1253# CONFIG_JFFS2_RUBIN is not set 1248# CONFIG_JFFS2_RUBIN is not set
1249# CONFIG_LOGFS is not set
1254# CONFIG_CRAMFS is not set 1250# CONFIG_CRAMFS is not set
1255# CONFIG_SQUASHFS is not set 1251# CONFIG_SQUASHFS is not set
1256# CONFIG_VXFS_FS is not set 1252# CONFIG_VXFS_FS is not set
diff --git a/arch/powerpc/configs/wii_defconfig b/arch/powerpc/configs/wii_defconfig
index c386828c639a..ee054f8118be 100644
--- a/arch/powerpc/configs/wii_defconfig
+++ b/arch/powerpc/configs/wii_defconfig
@@ -102,8 +102,7 @@ CONFIG_FAIR_GROUP_SCHED=y
102CONFIG_USER_SCHED=y 102CONFIG_USER_SCHED=y
103# CONFIG_CGROUP_SCHED is not set 103# CONFIG_CGROUP_SCHED is not set
104# CONFIG_CGROUPS is not set 104# CONFIG_CGROUPS is not set
105CONFIG_SYSFS_DEPRECATED=y 105# CONFIG_SYSFS_DEPRECATED_V2 is not set
106CONFIG_SYSFS_DEPRECATED_V2=y
107CONFIG_RELAY=y 106CONFIG_RELAY=y
108# CONFIG_NAMESPACES is not set 107# CONFIG_NAMESPACES is not set
109CONFIG_BLK_DEV_INITRD=y 108CONFIG_BLK_DEV_INITRD=y
diff --git a/arch/powerpc/include/asm/abs_addr.h b/arch/powerpc/include/asm/abs_addr.h
index 98324c5a8286..9a846efe6382 100644
--- a/arch/powerpc/include/asm/abs_addr.h
+++ b/arch/powerpc/include/asm/abs_addr.h
@@ -12,7 +12,7 @@
12 * 2 of the License, or (at your option) any later version. 12 * 2 of the License, or (at your option) any later version.
13 */ 13 */
14 14
15#include <linux/lmb.h> 15#include <linux/memblock.h>
16 16
17#include <asm/types.h> 17#include <asm/types.h>
18#include <asm/page.h> 18#include <asm/page.h>
diff --git a/arch/powerpc/include/asm/asm-compat.h b/arch/powerpc/include/asm/asm-compat.h
index c1b475a941eb..2048a6aeea91 100644
--- a/arch/powerpc/include/asm/asm-compat.h
+++ b/arch/powerpc/include/asm/asm-compat.h
@@ -21,6 +21,7 @@
21/* operations for longs and pointers */ 21/* operations for longs and pointers */
22#define PPC_LL stringify_in_c(ld) 22#define PPC_LL stringify_in_c(ld)
23#define PPC_STL stringify_in_c(std) 23#define PPC_STL stringify_in_c(std)
24#define PPC_STLU stringify_in_c(stdu)
24#define PPC_LCMPI stringify_in_c(cmpdi) 25#define PPC_LCMPI stringify_in_c(cmpdi)
25#define PPC_LONG stringify_in_c(.llong) 26#define PPC_LONG stringify_in_c(.llong)
26#define PPC_LONG_ALIGN stringify_in_c(.balign 8) 27#define PPC_LONG_ALIGN stringify_in_c(.balign 8)
@@ -28,6 +29,7 @@
28#define PPC_LLARX(t, a, b, eh) PPC_LDARX(t, a, b, eh) 29#define PPC_LLARX(t, a, b, eh) PPC_LDARX(t, a, b, eh)
29#define PPC_STLCX stringify_in_c(stdcx.) 30#define PPC_STLCX stringify_in_c(stdcx.)
30#define PPC_CNTLZL stringify_in_c(cntlzd) 31#define PPC_CNTLZL stringify_in_c(cntlzd)
32#define PPC_LR_STKOFF 16
31 33
32/* Move to CR, single-entry optimized version. Only available 34/* Move to CR, single-entry optimized version. Only available
33 * on POWER4 and later. 35 * on POWER4 and later.
@@ -43,6 +45,7 @@
43/* operations for longs and pointers */ 45/* operations for longs and pointers */
44#define PPC_LL stringify_in_c(lwz) 46#define PPC_LL stringify_in_c(lwz)
45#define PPC_STL stringify_in_c(stw) 47#define PPC_STL stringify_in_c(stw)
48#define PPC_STLU stringify_in_c(stwu)
46#define PPC_LCMPI stringify_in_c(cmpwi) 49#define PPC_LCMPI stringify_in_c(cmpwi)
47#define PPC_LONG stringify_in_c(.long) 50#define PPC_LONG stringify_in_c(.long)
48#define PPC_LONG_ALIGN stringify_in_c(.balign 4) 51#define PPC_LONG_ALIGN stringify_in_c(.balign 4)
@@ -51,6 +54,7 @@
51#define PPC_STLCX stringify_in_c(stwcx.) 54#define PPC_STLCX stringify_in_c(stwcx.)
52#define PPC_CNTLZL stringify_in_c(cntlzw) 55#define PPC_CNTLZL stringify_in_c(cntlzw)
53#define PPC_MTOCRF stringify_in_c(mtcrf) 56#define PPC_MTOCRF stringify_in_c(mtcrf)
57#define PPC_LR_STKOFF 4
54 58
55#endif 59#endif
56 60
diff --git a/arch/powerpc/include/asm/bug.h b/arch/powerpc/include/asm/bug.h
index 2c15212e1700..065c590c991d 100644
--- a/arch/powerpc/include/asm/bug.h
+++ b/arch/powerpc/include/asm/bug.h
@@ -85,12 +85,12 @@
85 } \ 85 } \
86} while (0) 86} while (0)
87 87
88#define __WARN() do { \ 88#define __WARN_TAINT(taint) do { \
89 __asm__ __volatile__( \ 89 __asm__ __volatile__( \
90 "1: twi 31,0,0\n" \ 90 "1: twi 31,0,0\n" \
91 _EMIT_BUG_ENTRY \ 91 _EMIT_BUG_ENTRY \
92 : : "i" (__FILE__), "i" (__LINE__), \ 92 : : "i" (__FILE__), "i" (__LINE__), \
93 "i" (BUGFLAG_WARNING), \ 93 "i" (BUGFLAG_TAINT(taint)), \
94 "i" (sizeof(struct bug_entry))); \ 94 "i" (sizeof(struct bug_entry))); \
95} while (0) 95} while (0)
96 96
@@ -104,7 +104,7 @@
104 "1: "PPC_TLNEI" %4,0\n" \ 104 "1: "PPC_TLNEI" %4,0\n" \
105 _EMIT_BUG_ENTRY \ 105 _EMIT_BUG_ENTRY \
106 : : "i" (__FILE__), "i" (__LINE__), \ 106 : : "i" (__FILE__), "i" (__LINE__), \
107 "i" (BUGFLAG_WARNING), \ 107 "i" (BUGFLAG_TAINT(TAINT_WARN)), \
108 "i" (sizeof(struct bug_entry)), \ 108 "i" (sizeof(struct bug_entry)), \
109 "r" (__ret_warn_on)); \ 109 "r" (__ret_warn_on)); \
110 } \ 110 } \
diff --git a/arch/powerpc/include/asm/cache.h b/arch/powerpc/include/asm/cache.h
index 81de6eb3455d..4b509411ad8a 100644
--- a/arch/powerpc/include/asm/cache.h
+++ b/arch/powerpc/include/asm/cache.h
@@ -12,8 +12,12 @@
12#define L1_CACHE_SHIFT 6 12#define L1_CACHE_SHIFT 6
13#define MAX_COPY_PREFETCH 4 13#define MAX_COPY_PREFETCH 4
14#elif defined(CONFIG_PPC32) 14#elif defined(CONFIG_PPC32)
15#define L1_CACHE_SHIFT 5
16#define MAX_COPY_PREFETCH 4 15#define MAX_COPY_PREFETCH 4
16#if defined(CONFIG_PPC_47x)
17#define L1_CACHE_SHIFT 7
18#else
19#define L1_CACHE_SHIFT 5
20#endif
17#else /* CONFIG_PPC64 */ 21#else /* CONFIG_PPC64 */
18#define L1_CACHE_SHIFT 7 22#define L1_CACHE_SHIFT 7
19#endif 23#endif
@@ -38,7 +42,7 @@ extern struct ppc64_caches ppc64_caches;
38#endif /* __powerpc64__ && ! __ASSEMBLY__ */ 42#endif /* __powerpc64__ && ! __ASSEMBLY__ */
39 43
40#if !defined(__ASSEMBLY__) 44#if !defined(__ASSEMBLY__)
41#define __read_mostly __attribute__((__section__(".data.read_mostly"))) 45#define __read_mostly __attribute__((__section__(".data..read_mostly")))
42#endif 46#endif
43 47
44#endif /* __KERNEL__ */ 48#endif /* __KERNEL__ */
diff --git a/arch/powerpc/include/asm/cpm.h b/arch/powerpc/include/asm/cpm.h
index 0835eb977ba9..e50323fe941f 100644
--- a/arch/powerpc/include/asm/cpm.h
+++ b/arch/powerpc/include/asm/cpm.h
@@ -7,6 +7,30 @@
7#include <linux/of.h> 7#include <linux/of.h>
8 8
9/* 9/*
10 * SPI Parameter RAM common to QE and CPM.
11 */
12struct spi_pram {
13 __be16 rbase; /* Rx Buffer descriptor base address */
14 __be16 tbase; /* Tx Buffer descriptor base address */
15 u8 rfcr; /* Rx function code */
16 u8 tfcr; /* Tx function code */
17 __be16 mrblr; /* Max receive buffer length */
18 __be32 rstate; /* Internal */
19 __be32 rdp; /* Internal */
20 __be16 rbptr; /* Internal */
21 __be16 rbc; /* Internal */
22 __be32 rxtmp; /* Internal */
23 __be32 tstate; /* Internal */
24 __be32 tdp; /* Internal */
25 __be16 tbptr; /* Internal */
26 __be16 tbc; /* Internal */
27 __be32 txtmp; /* Internal */
28 __be32 res; /* Tx temp. */
29 __be16 rpbase; /* Relocation pointer (CPM1 only) */
30 __be16 res1; /* Reserved */
31};
32
33/*
10 * USB Controller pram common to QE and CPM. 34 * USB Controller pram common to QE and CPM.
11 */ 35 */
12struct usb_ctlr { 36struct usb_ctlr {
diff --git a/arch/powerpc/include/asm/cpm1.h b/arch/powerpc/include/asm/cpm1.h
index 81b01192f440..bd07650dca56 100644
--- a/arch/powerpc/include/asm/cpm1.h
+++ b/arch/powerpc/include/asm/cpm1.h
@@ -17,6 +17,7 @@
17#ifndef __CPM1__ 17#ifndef __CPM1__
18#define __CPM1__ 18#define __CPM1__
19 19
20#include <linux/init.h>
20#include <asm/8xx_immap.h> 21#include <asm/8xx_immap.h>
21#include <asm/ptrace.h> 22#include <asm/ptrace.h>
22#include <asm/cpm.h> 23#include <asm/cpm.h>
@@ -54,7 +55,7 @@ extern cpm8xx_t __iomem *cpmp; /* Pointer to comm processor */
54 55
55extern void cpm_setbrg(uint brg, uint rate); 56extern void cpm_setbrg(uint brg, uint rate);
56 57
57extern void cpm_load_patch(cpm8xx_t *cp); 58extern void __init cpm_load_patch(cpm8xx_t *cp);
58 59
59extern void cpm_reset(void); 60extern void cpm_reset(void);
60 61
diff --git a/arch/powerpc/include/asm/cputable.h b/arch/powerpc/include/asm/cputable.h
index abb833b0e58f..b0b21134f61a 100644
--- a/arch/powerpc/include/asm/cputable.h
+++ b/arch/powerpc/include/asm/cputable.h
@@ -70,8 +70,10 @@ struct pt_regs;
70extern int machine_check_generic(struct pt_regs *regs); 70extern int machine_check_generic(struct pt_regs *regs);
71extern int machine_check_4xx(struct pt_regs *regs); 71extern int machine_check_4xx(struct pt_regs *regs);
72extern int machine_check_440A(struct pt_regs *regs); 72extern int machine_check_440A(struct pt_regs *regs);
73extern int machine_check_e500mc(struct pt_regs *regs);
73extern int machine_check_e500(struct pt_regs *regs); 74extern int machine_check_e500(struct pt_regs *regs);
74extern int machine_check_e200(struct pt_regs *regs); 75extern int machine_check_e200(struct pt_regs *regs);
76extern int machine_check_47x(struct pt_regs *regs);
75 77
76/* NOTE WELL: Update identify_cpu() if fields are added or removed! */ 78/* NOTE WELL: Update identify_cpu() if fields are added or removed! */
77struct cpu_spec { 79struct cpu_spec {
@@ -365,6 +367,7 @@ extern const char *powerpc_base_platform;
365#define CPU_FTRS_44X (CPU_FTR_USE_TB | CPU_FTR_NODSISRALIGN | CPU_FTR_NOEXECUTE) 367#define CPU_FTRS_44X (CPU_FTR_USE_TB | CPU_FTR_NODSISRALIGN | CPU_FTR_NOEXECUTE)
366#define CPU_FTRS_440x6 (CPU_FTR_USE_TB | CPU_FTR_NODSISRALIGN | CPU_FTR_NOEXECUTE | \ 368#define CPU_FTRS_440x6 (CPU_FTR_USE_TB | CPU_FTR_NODSISRALIGN | CPU_FTR_NOEXECUTE | \
367 CPU_FTR_INDEXED_DCR) 369 CPU_FTR_INDEXED_DCR)
370#define CPU_FTRS_47X (CPU_FTRS_440x6)
368#define CPU_FTRS_E200 (CPU_FTR_USE_TB | CPU_FTR_SPE_COMP | \ 371#define CPU_FTRS_E200 (CPU_FTR_USE_TB | CPU_FTR_SPE_COMP | \
369 CPU_FTR_NODSISRALIGN | CPU_FTR_COHERENT_ICACHE | \ 372 CPU_FTR_NODSISRALIGN | CPU_FTR_COHERENT_ICACHE | \
370 CPU_FTR_UNIFIED_ID_CACHE | CPU_FTR_NOEXECUTE) 373 CPU_FTR_UNIFIED_ID_CACHE | CPU_FTR_NOEXECUTE)
@@ -453,6 +456,9 @@ enum {
453#ifdef CONFIG_44x 456#ifdef CONFIG_44x
454 CPU_FTRS_44X | CPU_FTRS_440x6 | 457 CPU_FTRS_44X | CPU_FTRS_440x6 |
455#endif 458#endif
459#ifdef CONFIG_PPC_47x
460 CPU_FTRS_47X |
461#endif
456#ifdef CONFIG_E200 462#ifdef CONFIG_E200
457 CPU_FTRS_E200 | 463 CPU_FTRS_E200 |
458#endif 464#endif
diff --git a/arch/powerpc/include/asm/device.h b/arch/powerpc/include/asm/device.h
index 6d94d27ed850..a3954e4fcbe2 100644
--- a/arch/powerpc/include/asm/device.h
+++ b/arch/powerpc/include/asm/device.h
@@ -10,9 +10,6 @@ struct dma_map_ops;
10struct device_node; 10struct device_node;
11 11
12struct dev_archdata { 12struct dev_archdata {
13 /* Optional pointer to an OF device node */
14 struct device_node *of_node;
15
16 /* DMA operations on that device */ 13 /* DMA operations on that device */
17 struct dma_map_ops *dma_ops; 14 struct dma_map_ops *dma_ops;
18 15
@@ -30,19 +27,8 @@ struct dev_archdata {
30#endif 27#endif
31}; 28};
32 29
33static inline void dev_archdata_set_node(struct dev_archdata *ad,
34 struct device_node *np)
35{
36 ad->of_node = np;
37}
38
39static inline struct device_node *
40dev_archdata_get_node(const struct dev_archdata *ad)
41{
42 return ad->of_node;
43}
44
45struct pdev_archdata { 30struct pdev_archdata {
31 u64 dma_mask;
46}; 32};
47 33
48#endif /* _ASM_POWERPC_DEVICE_H */ 34#endif /* _ASM_POWERPC_DEVICE_H */
diff --git a/arch/powerpc/include/asm/hvcall.h b/arch/powerpc/include/asm/hvcall.h
index f0275818b95c..5119b7db3142 100644
--- a/arch/powerpc/include/asm/hvcall.h
+++ b/arch/powerpc/include/asm/hvcall.h
@@ -228,6 +228,7 @@
228#define H_JOIN 0x298 228#define H_JOIN 0x298
229#define H_VASI_STATE 0x2A4 229#define H_VASI_STATE 0x2A4
230#define H_ENABLE_CRQ 0x2B0 230#define H_ENABLE_CRQ 0x2B0
231#define H_GET_EM_PARMS 0x2B8
231#define H_SET_MPP 0x2D0 232#define H_SET_MPP 0x2D0
232#define H_GET_MPP 0x2D4 233#define H_GET_MPP 0x2D4
233#define MAX_HCALL_OPCODE H_GET_MPP 234#define MAX_HCALL_OPCODE H_GET_MPP
@@ -281,6 +282,7 @@ long plpar_hcall_raw(unsigned long opcode, unsigned long *retbuf, ...);
281 */ 282 */
282#define PLPAR_HCALL9_BUFSIZE 9 283#define PLPAR_HCALL9_BUFSIZE 9
283long plpar_hcall9(unsigned long opcode, unsigned long *retbuf, ...); 284long plpar_hcall9(unsigned long opcode, unsigned long *retbuf, ...);
285long plpar_hcall9_raw(unsigned long opcode, unsigned long *retbuf, ...);
284 286
285/* For hcall instrumentation. One structure per-hcall, per-CPU */ 287/* For hcall instrumentation. One structure per-hcall, per-CPU */
286struct hcall_stats { 288struct hcall_stats {
diff --git a/arch/powerpc/include/asm/hw_irq.h b/arch/powerpc/include/asm/hw_irq.h
index 9f4c9d4f5803..bd100fcf40d0 100644
--- a/arch/powerpc/include/asm/hw_irq.h
+++ b/arch/powerpc/include/asm/hw_irq.h
@@ -130,43 +130,5 @@ static inline int irqs_disabled_flags(unsigned long flags)
130 */ 130 */
131struct irq_chip; 131struct irq_chip;
132 132
133#ifdef CONFIG_PERF_EVENTS
134
135#ifdef CONFIG_PPC64
136static inline unsigned long test_perf_event_pending(void)
137{
138 unsigned long x;
139
140 asm volatile("lbz %0,%1(13)"
141 : "=r" (x)
142 : "i" (offsetof(struct paca_struct, perf_event_pending)));
143 return x;
144}
145
146static inline void set_perf_event_pending(void)
147{
148 asm volatile("stb %0,%1(13)" : :
149 "r" (1),
150 "i" (offsetof(struct paca_struct, perf_event_pending)));
151}
152
153static inline void clear_perf_event_pending(void)
154{
155 asm volatile("stb %0,%1(13)" : :
156 "r" (0),
157 "i" (offsetof(struct paca_struct, perf_event_pending)));
158}
159#endif /* CONFIG_PPC64 */
160
161#else /* CONFIG_PERF_EVENTS */
162
163static inline unsigned long test_perf_event_pending(void)
164{
165 return 0;
166}
167
168static inline void clear_perf_event_pending(void) {}
169#endif /* CONFIG_PERF_EVENTS */
170
171#endif /* __KERNEL__ */ 133#endif /* __KERNEL__ */
172#endif /* _ASM_POWERPC_HW_IRQ_H */ 134#endif /* _ASM_POWERPC_HW_IRQ_H */
diff --git a/arch/powerpc/include/asm/irq.h b/arch/powerpc/include/asm/irq.h
index e054baef1845..ecba37a91749 100644
--- a/arch/powerpc/include/asm/irq.h
+++ b/arch/powerpc/include/asm/irq.h
@@ -358,7 +358,6 @@ extern void exc_lvl_ctx_init(void);
358#define exc_lvl_ctx_init() 358#define exc_lvl_ctx_init()
359#endif 359#endif
360 360
361#ifdef CONFIG_IRQSTACKS
362/* 361/*
363 * Per-cpu stacks for handling hard and soft interrupts. 362 * Per-cpu stacks for handling hard and soft interrupts.
364 */ 363 */
@@ -369,11 +368,6 @@ extern void irq_ctx_init(void);
369extern void call_do_softirq(struct thread_info *tp); 368extern void call_do_softirq(struct thread_info *tp);
370extern int call_handle_irq(int irq, void *p1, 369extern int call_handle_irq(int irq, void *p1,
371 struct thread_info *tp, void *func); 370 struct thread_info *tp, void *func);
372#else
373#define irq_ctx_init()
374
375#endif /* CONFIG_IRQSTACKS */
376
377extern void do_IRQ(struct pt_regs *regs); 371extern void do_IRQ(struct pt_regs *regs);
378 372
379#endif /* _ASM_IRQ_H */ 373#endif /* _ASM_IRQ_H */
diff --git a/arch/powerpc/include/asm/kdump.h b/arch/powerpc/include/asm/kdump.h
index 5ebfe5d3c61f..6857af58b02e 100644
--- a/arch/powerpc/include/asm/kdump.h
+++ b/arch/powerpc/include/asm/kdump.h
@@ -3,8 +3,17 @@
3 3
4#include <asm/page.h> 4#include <asm/page.h>
5 5
6/* Kdump kernel runs at 32 MB, change at your peril. */ 6/*
7 * If CONFIG_RELOCATABLE is enabled we can place the kdump kernel anywhere.
8 * To keep enough space in the RMO for the first stage kernel on 64bit, we
9 * place it at 64MB. If CONFIG_RELOCATABLE is not enabled we must place
10 * the second stage at 32MB.
11 */
12#if defined(CONFIG_RELOCATABLE) && defined(CONFIG_PPC64)
13#define KDUMP_KERNELBASE 0x4000000
14#else
7#define KDUMP_KERNELBASE 0x2000000 15#define KDUMP_KERNELBASE 0x2000000
16#endif
8 17
9/* How many bytes to reserve at zero for kdump. The reserve limit should 18/* How many bytes to reserve at zero for kdump. The reserve limit should
10 * be greater or equal to the trampoline's end address. 19 * be greater or equal to the trampoline's end address.
diff --git a/arch/powerpc/include/asm/kexec.h b/arch/powerpc/include/asm/kexec.h
index 7e06b43720d3..076327f2eff7 100644
--- a/arch/powerpc/include/asm/kexec.h
+++ b/arch/powerpc/include/asm/kexec.h
@@ -2,6 +2,18 @@
2#define _ASM_POWERPC_KEXEC_H 2#define _ASM_POWERPC_KEXEC_H
3#ifdef __KERNEL__ 3#ifdef __KERNEL__
4 4
5#ifdef CONFIG_FSL_BOOKE
6
7/*
8 * On FSL-BookE we setup a 1:1 mapping which covers the first 2GiB of memory
9 * and therefore we can only deal with memory within this range
10 */
11#define KEXEC_SOURCE_MEMORY_LIMIT (2 * 1024 * 1024 * 1024UL - 1)
12#define KEXEC_DESTINATION_MEMORY_LIMIT (2 * 1024 * 1024 * 1024UL - 1)
13#define KEXEC_CONTROL_MEMORY_LIMIT (2 * 1024 * 1024 * 1024UL - 1)
14
15#else
16
5/* 17/*
6 * Maximum page that is mapped directly into kernel memory. 18 * Maximum page that is mapped directly into kernel memory.
7 * XXX: Since we copy virt we can use any page we allocate 19 * XXX: Since we copy virt we can use any page we allocate
@@ -21,6 +33,7 @@
21/* TASK_SIZE, probably left over from use_mm ?? */ 33/* TASK_SIZE, probably left over from use_mm ?? */
22#define KEXEC_CONTROL_MEMORY_LIMIT TASK_SIZE 34#define KEXEC_CONTROL_MEMORY_LIMIT TASK_SIZE
23#endif 35#endif
36#endif
24 37
25#define KEXEC_CONTROL_PAGE_SIZE 4096 38#define KEXEC_CONTROL_PAGE_SIZE 4096
26 39
@@ -31,6 +44,10 @@
31#define KEXEC_ARCH KEXEC_ARCH_PPC 44#define KEXEC_ARCH KEXEC_ARCH_PPC
32#endif 45#endif
33 46
47#define KEXEC_STATE_NONE 0
48#define KEXEC_STATE_IRQS_OFF 1
49#define KEXEC_STATE_REAL_MODE 2
50
34#ifndef __ASSEMBLY__ 51#ifndef __ASSEMBLY__
35#include <linux/cpumask.h> 52#include <linux/cpumask.h>
36#include <asm/reg.h> 53#include <asm/reg.h>
diff --git a/arch/powerpc/include/asm/kmap_types.h b/arch/powerpc/include/asm/kmap_types.h
index 916369575c97..bca8fdcd2542 100644
--- a/arch/powerpc/include/asm/kmap_types.h
+++ b/arch/powerpc/include/asm/kmap_types.h
@@ -26,6 +26,7 @@ enum km_type {
26 KM_SOFTIRQ1, 26 KM_SOFTIRQ1,
27 KM_PPC_SYNC_PAGE, 27 KM_PPC_SYNC_PAGE,
28 KM_PPC_SYNC_ICACHE, 28 KM_PPC_SYNC_ICACHE,
29 KM_KDB,
29 KM_TYPE_NR 30 KM_TYPE_NR
30}; 31};
31 32
diff --git a/arch/powerpc/include/asm/kvm.h b/arch/powerpc/include/asm/kvm.h
index 81f3b0b5601e..6c5547d82bbe 100644
--- a/arch/powerpc/include/asm/kvm.h
+++ b/arch/powerpc/include/asm/kvm.h
@@ -77,4 +77,14 @@ struct kvm_debug_exit_arch {
77struct kvm_guest_debug_arch { 77struct kvm_guest_debug_arch {
78}; 78};
79 79
80#define KVM_REG_MASK 0x001f
81#define KVM_REG_EXT_MASK 0xffe0
82#define KVM_REG_GPR 0x0000
83#define KVM_REG_FPR 0x0020
84#define KVM_REG_QPR 0x0040
85#define KVM_REG_FQPR 0x0060
86
87#define KVM_INTERRUPT_SET -1U
88#define KVM_INTERRUPT_UNSET -2U
89
80#endif /* __LINUX_KVM_POWERPC_H */ 90#endif /* __LINUX_KVM_POWERPC_H */
diff --git a/arch/powerpc/include/asm/kvm_asm.h b/arch/powerpc/include/asm/kvm_asm.h
index aadf2dd6f84e..c5ea4cda34b3 100644
--- a/arch/powerpc/include/asm/kvm_asm.h
+++ b/arch/powerpc/include/asm/kvm_asm.h
@@ -88,6 +88,8 @@
88 88
89#define BOOK3S_HFLAG_DCBZ32 0x1 89#define BOOK3S_HFLAG_DCBZ32 0x1
90#define BOOK3S_HFLAG_SLB 0x2 90#define BOOK3S_HFLAG_SLB 0x2
91#define BOOK3S_HFLAG_PAIRED_SINGLE 0x4
92#define BOOK3S_HFLAG_NATIVE_PS 0x8
91 93
92#define RESUME_FLAG_NV (1<<0) /* Reload guest nonvolatile state? */ 94#define RESUME_FLAG_NV (1<<0) /* Reload guest nonvolatile state? */
93#define RESUME_FLAG_HOST (1<<1) /* Resume host? */ 95#define RESUME_FLAG_HOST (1<<1) /* Resume host? */
diff --git a/arch/powerpc/include/asm/kvm_book3s.h b/arch/powerpc/include/asm/kvm_book3s.h
index db7db0a96967..8274a2d43925 100644
--- a/arch/powerpc/include/asm/kvm_book3s.h
+++ b/arch/powerpc/include/asm/kvm_book3s.h
@@ -22,46 +22,47 @@
22 22
23#include <linux/types.h> 23#include <linux/types.h>
24#include <linux/kvm_host.h> 24#include <linux/kvm_host.h>
25#include <asm/kvm_book3s_64_asm.h> 25#include <asm/kvm_book3s_asm.h>
26 26
27struct kvmppc_slb { 27struct kvmppc_slb {
28 u64 esid; 28 u64 esid;
29 u64 vsid; 29 u64 vsid;
30 u64 orige; 30 u64 orige;
31 u64 origv; 31 u64 origv;
32 bool valid; 32 bool valid : 1;
33 bool Ks; 33 bool Ks : 1;
34 bool Kp; 34 bool Kp : 1;
35 bool nx; 35 bool nx : 1;
36 bool large; /* PTEs are 16MB */ 36 bool large : 1; /* PTEs are 16MB */
37 bool tb; /* 1TB segment */ 37 bool tb : 1; /* 1TB segment */
38 bool class; 38 bool class : 1;
39}; 39};
40 40
41struct kvmppc_sr { 41struct kvmppc_sr {
42 u32 raw; 42 u32 raw;
43 u32 vsid; 43 u32 vsid;
44 bool Ks; 44 bool Ks : 1;
45 bool Kp; 45 bool Kp : 1;
46 bool nx; 46 bool nx : 1;
47 bool valid : 1;
47}; 48};
48 49
49struct kvmppc_bat { 50struct kvmppc_bat {
50 u64 raw; 51 u64 raw;
51 u32 bepi; 52 u32 bepi;
52 u32 bepi_mask; 53 u32 bepi_mask;
53 bool vs;
54 bool vp;
55 u32 brpn; 54 u32 brpn;
56 u8 wimg; 55 u8 wimg;
57 u8 pp; 56 u8 pp;
57 bool vs : 1;
58 bool vp : 1;
58}; 59};
59 60
60struct kvmppc_sid_map { 61struct kvmppc_sid_map {
61 u64 guest_vsid; 62 u64 guest_vsid;
62 u64 guest_esid; 63 u64 guest_esid;
63 u64 host_vsid; 64 u64 host_vsid;
64 bool valid; 65 bool valid : 1;
65}; 66};
66 67
67#define SID_MAP_BITS 9 68#define SID_MAP_BITS 9
@@ -70,7 +71,7 @@ struct kvmppc_sid_map {
70 71
71struct kvmppc_vcpu_book3s { 72struct kvmppc_vcpu_book3s {
72 struct kvm_vcpu vcpu; 73 struct kvm_vcpu vcpu;
73 struct kvmppc_book3s_shadow_vcpu shadow_vcpu; 74 struct kvmppc_book3s_shadow_vcpu *shadow_vcpu;
74 struct kvmppc_sid_map sid_map[SID_MAP_NUM]; 75 struct kvmppc_sid_map sid_map[SID_MAP_NUM];
75 struct kvmppc_slb slb[64]; 76 struct kvmppc_slb slb[64];
76 struct { 77 struct {
@@ -82,9 +83,10 @@ struct kvmppc_vcpu_book3s {
82 struct kvmppc_bat ibat[8]; 83 struct kvmppc_bat ibat[8];
83 struct kvmppc_bat dbat[8]; 84 struct kvmppc_bat dbat[8];
84 u64 hid[6]; 85 u64 hid[6];
86 u64 gqr[8];
85 int slb_nr; 87 int slb_nr;
88 u32 dsisr;
86 u64 sdr1; 89 u64 sdr1;
87 u64 dsisr;
88 u64 hior; 90 u64 hior;
89 u64 msr_mask; 91 u64 msr_mask;
90 u64 vsid_first; 92 u64 vsid_first;
@@ -98,27 +100,37 @@ struct kvmppc_vcpu_book3s {
98#define CONTEXT_GUEST 1 100#define CONTEXT_GUEST 1
99#define CONTEXT_GUEST_END 2 101#define CONTEXT_GUEST_END 2
100 102
101#define VSID_REAL 0xfffffffffff00000 103#define VSID_REAL 0x1fffffffffc00000ULL
102#define VSID_REAL_DR 0xffffffffffe00000 104#define VSID_BAT 0x1fffffffffb00000ULL
103#define VSID_REAL_IR 0xffffffffffd00000 105#define VSID_REAL_DR 0x2000000000000000ULL
104#define VSID_BAT 0xffffffffffc00000 106#define VSID_REAL_IR 0x4000000000000000ULL
105#define VSID_PR 0x8000000000000000 107#define VSID_PR 0x8000000000000000ULL
106 108
107extern void kvmppc_mmu_pte_flush(struct kvm_vcpu *vcpu, u64 ea, u64 ea_mask); 109extern void kvmppc_mmu_pte_flush(struct kvm_vcpu *vcpu, ulong ea, ulong ea_mask);
108extern void kvmppc_mmu_pte_vflush(struct kvm_vcpu *vcpu, u64 vp, u64 vp_mask); 110extern void kvmppc_mmu_pte_vflush(struct kvm_vcpu *vcpu, u64 vp, u64 vp_mask);
109extern void kvmppc_mmu_pte_pflush(struct kvm_vcpu *vcpu, u64 pa_start, u64 pa_end); 111extern void kvmppc_mmu_pte_pflush(struct kvm_vcpu *vcpu, ulong pa_start, ulong pa_end);
110extern void kvmppc_set_msr(struct kvm_vcpu *vcpu, u64 new_msr); 112extern void kvmppc_set_msr(struct kvm_vcpu *vcpu, u64 new_msr);
111extern void kvmppc_mmu_book3s_64_init(struct kvm_vcpu *vcpu); 113extern void kvmppc_mmu_book3s_64_init(struct kvm_vcpu *vcpu);
112extern void kvmppc_mmu_book3s_32_init(struct kvm_vcpu *vcpu); 114extern void kvmppc_mmu_book3s_32_init(struct kvm_vcpu *vcpu);
113extern int kvmppc_mmu_map_page(struct kvm_vcpu *vcpu, struct kvmppc_pte *pte); 115extern int kvmppc_mmu_map_page(struct kvm_vcpu *vcpu, struct kvmppc_pte *pte);
114extern int kvmppc_mmu_map_segment(struct kvm_vcpu *vcpu, ulong eaddr); 116extern int kvmppc_mmu_map_segment(struct kvm_vcpu *vcpu, ulong eaddr);
115extern void kvmppc_mmu_flush_segments(struct kvm_vcpu *vcpu); 117extern void kvmppc_mmu_flush_segments(struct kvm_vcpu *vcpu);
116extern struct kvmppc_pte *kvmppc_mmu_find_pte(struct kvm_vcpu *vcpu, u64 ea, bool data); 118
117extern int kvmppc_ld(struct kvm_vcpu *vcpu, ulong eaddr, int size, void *ptr, bool data); 119extern void kvmppc_mmu_hpte_cache_map(struct kvm_vcpu *vcpu, struct hpte_cache *pte);
118extern int kvmppc_st(struct kvm_vcpu *vcpu, ulong eaddr, int size, void *ptr); 120extern struct hpte_cache *kvmppc_mmu_hpte_cache_next(struct kvm_vcpu *vcpu);
121extern void kvmppc_mmu_hpte_destroy(struct kvm_vcpu *vcpu);
122extern int kvmppc_mmu_hpte_init(struct kvm_vcpu *vcpu);
123extern void kvmppc_mmu_invalidate_pte(struct kvm_vcpu *vcpu, struct hpte_cache *pte);
124extern int kvmppc_mmu_hpte_sysinit(void);
125extern void kvmppc_mmu_hpte_sysexit(void);
126
127extern int kvmppc_ld(struct kvm_vcpu *vcpu, ulong *eaddr, int size, void *ptr, bool data);
128extern int kvmppc_st(struct kvm_vcpu *vcpu, ulong *eaddr, int size, void *ptr, bool data);
119extern void kvmppc_book3s_queue_irqprio(struct kvm_vcpu *vcpu, unsigned int vec); 129extern void kvmppc_book3s_queue_irqprio(struct kvm_vcpu *vcpu, unsigned int vec);
120extern void kvmppc_set_bat(struct kvm_vcpu *vcpu, struct kvmppc_bat *bat, 130extern void kvmppc_set_bat(struct kvm_vcpu *vcpu, struct kvmppc_bat *bat,
121 bool upper, u32 val); 131 bool upper, u32 val);
132extern void kvmppc_giveup_ext(struct kvm_vcpu *vcpu, ulong msr);
133extern int kvmppc_emulate_paired_single(struct kvm_run *run, struct kvm_vcpu *vcpu);
122 134
123extern u32 kvmppc_trampoline_lowmem; 135extern u32 kvmppc_trampoline_lowmem;
124extern u32 kvmppc_trampoline_enter; 136extern u32 kvmppc_trampoline_enter;
@@ -126,6 +138,8 @@ extern void kvmppc_rmcall(ulong srr0, ulong srr1);
126extern void kvmppc_load_up_fpu(void); 138extern void kvmppc_load_up_fpu(void);
127extern void kvmppc_load_up_altivec(void); 139extern void kvmppc_load_up_altivec(void);
128extern void kvmppc_load_up_vsx(void); 140extern void kvmppc_load_up_vsx(void);
141extern u32 kvmppc_alignment_dsisr(struct kvm_vcpu *vcpu, unsigned int inst);
142extern ulong kvmppc_alignment_dar(struct kvm_vcpu *vcpu, unsigned int inst);
129 143
130static inline struct kvmppc_vcpu_book3s *to_book3s(struct kvm_vcpu *vcpu) 144static inline struct kvmppc_vcpu_book3s *to_book3s(struct kvm_vcpu *vcpu)
131{ 145{
@@ -140,7 +154,108 @@ static inline ulong dsisr(void)
140} 154}
141 155
142extern void kvm_return_point(void); 156extern void kvm_return_point(void);
157static inline struct kvmppc_book3s_shadow_vcpu *to_svcpu(struct kvm_vcpu *vcpu);
158
159static inline void kvmppc_set_gpr(struct kvm_vcpu *vcpu, int num, ulong val)
160{
161 if ( num < 14 ) {
162 to_svcpu(vcpu)->gpr[num] = val;
163 to_book3s(vcpu)->shadow_vcpu->gpr[num] = val;
164 } else
165 vcpu->arch.gpr[num] = val;
166}
167
168static inline ulong kvmppc_get_gpr(struct kvm_vcpu *vcpu, int num)
169{
170 if ( num < 14 )
171 return to_svcpu(vcpu)->gpr[num];
172 else
173 return vcpu->arch.gpr[num];
174}
175
176static inline void kvmppc_set_cr(struct kvm_vcpu *vcpu, u32 val)
177{
178 to_svcpu(vcpu)->cr = val;
179 to_book3s(vcpu)->shadow_vcpu->cr = val;
180}
181
182static inline u32 kvmppc_get_cr(struct kvm_vcpu *vcpu)
183{
184 return to_svcpu(vcpu)->cr;
185}
186
187static inline void kvmppc_set_xer(struct kvm_vcpu *vcpu, u32 val)
188{
189 to_svcpu(vcpu)->xer = val;
190 to_book3s(vcpu)->shadow_vcpu->xer = val;
191}
192
193static inline u32 kvmppc_get_xer(struct kvm_vcpu *vcpu)
194{
195 return to_svcpu(vcpu)->xer;
196}
197
198static inline void kvmppc_set_ctr(struct kvm_vcpu *vcpu, ulong val)
199{
200 to_svcpu(vcpu)->ctr = val;
201}
202
203static inline ulong kvmppc_get_ctr(struct kvm_vcpu *vcpu)
204{
205 return to_svcpu(vcpu)->ctr;
206}
207
208static inline void kvmppc_set_lr(struct kvm_vcpu *vcpu, ulong val)
209{
210 to_svcpu(vcpu)->lr = val;
211}
212
213static inline ulong kvmppc_get_lr(struct kvm_vcpu *vcpu)
214{
215 return to_svcpu(vcpu)->lr;
216}
217
218static inline void kvmppc_set_pc(struct kvm_vcpu *vcpu, ulong val)
219{
220 to_svcpu(vcpu)->pc = val;
221}
222
223static inline ulong kvmppc_get_pc(struct kvm_vcpu *vcpu)
224{
225 return to_svcpu(vcpu)->pc;
226}
227
228static inline u32 kvmppc_get_last_inst(struct kvm_vcpu *vcpu)
229{
230 ulong pc = kvmppc_get_pc(vcpu);
231 struct kvmppc_book3s_shadow_vcpu *svcpu = to_svcpu(vcpu);
232
233 /* Load the instruction manually if it failed to do so in the
234 * exit path */
235 if (svcpu->last_inst == KVM_INST_FETCH_FAILED)
236 kvmppc_ld(vcpu, &pc, sizeof(u32), &svcpu->last_inst, false);
237
238 return svcpu->last_inst;
239}
240
241static inline ulong kvmppc_get_fault_dar(struct kvm_vcpu *vcpu)
242{
243 return to_svcpu(vcpu)->fault_dar;
244}
245
246/* Magic register values loaded into r3 and r4 before the 'sc' assembly
247 * instruction for the OSI hypercalls */
248#define OSI_SC_MAGIC_R3 0x113724FA
249#define OSI_SC_MAGIC_R4 0x77810F9B
143 250
144#define INS_DCBZ 0x7c0007ec 251#define INS_DCBZ 0x7c0007ec
145 252
253/* Also add subarch specific defines */
254
255#ifdef CONFIG_PPC_BOOK3S_32
256#include <asm/kvm_book3s_32.h>
257#else
258#include <asm/kvm_book3s_64.h>
259#endif
260
146#endif /* __ASM_KVM_BOOK3S_H__ */ 261#endif /* __ASM_KVM_BOOK3S_H__ */
diff --git a/arch/powerpc/include/asm/kvm_book3s_32.h b/arch/powerpc/include/asm/kvm_book3s_32.h
new file mode 100644
index 000000000000..de604db135f5
--- /dev/null
+++ b/arch/powerpc/include/asm/kvm_book3s_32.h
@@ -0,0 +1,42 @@
1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License, version 2, as
4 * published by the Free Software Foundation.
5 *
6 * This program is distributed in the hope that it will be useful,
7 * but WITHOUT ANY WARRANTY; without even the implied warranty of
8 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9 * GNU General Public License for more details.
10 *
11 * You should have received a copy of the GNU General Public License
12 * along with this program; if not, write to the Free Software
13 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
14 *
15 * Copyright SUSE Linux Products GmbH 2010
16 *
17 * Authors: Alexander Graf <agraf@suse.de>
18 */
19
20#ifndef __ASM_KVM_BOOK3S_32_H__
21#define __ASM_KVM_BOOK3S_32_H__
22
23static inline struct kvmppc_book3s_shadow_vcpu *to_svcpu(struct kvm_vcpu *vcpu)
24{
25 return to_book3s(vcpu)->shadow_vcpu;
26}
27
28#define PTE_SIZE 12
29#define VSID_ALL 0
30#define SR_INVALID 0x00000001 /* VSID 1 should always be unused */
31#define SR_KP 0x20000000
32#define PTE_V 0x80000000
33#define PTE_SEC 0x00000040
34#define PTE_M 0x00000010
35#define PTE_R 0x00000100
36#define PTE_C 0x00000080
37
38#define SID_SHIFT 28
39#define ESID_MASK 0xf0000000
40#define VSID_MASK 0x00fffffff0000000ULL
41
42#endif /* __ASM_KVM_BOOK3S_32_H__ */
diff --git a/arch/powerpc/include/asm/kvm_book3s_64.h b/arch/powerpc/include/asm/kvm_book3s_64.h
new file mode 100644
index 000000000000..4cadd612d575
--- /dev/null
+++ b/arch/powerpc/include/asm/kvm_book3s_64.h
@@ -0,0 +1,28 @@
1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License, version 2, as
4 * published by the Free Software Foundation.
5 *
6 * This program is distributed in the hope that it will be useful,
7 * but WITHOUT ANY WARRANTY; without even the implied warranty of
8 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9 * GNU General Public License for more details.
10 *
11 * You should have received a copy of the GNU General Public License
12 * along with this program; if not, write to the Free Software
13 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
14 *
15 * Copyright SUSE Linux Products GmbH 2010
16 *
17 * Authors: Alexander Graf <agraf@suse.de>
18 */
19
20#ifndef __ASM_KVM_BOOK3S_64_H__
21#define __ASM_KVM_BOOK3S_64_H__
22
23static inline struct kvmppc_book3s_shadow_vcpu *to_svcpu(struct kvm_vcpu *vcpu)
24{
25 return &get_paca()->shadow_vcpu;
26}
27
28#endif /* __ASM_KVM_BOOK3S_64_H__ */
diff --git a/arch/powerpc/include/asm/kvm_book3s_64_asm.h b/arch/powerpc/include/asm/kvm_book3s_asm.h
index 183461b48407..36fdb3aff30b 100644
--- a/arch/powerpc/include/asm/kvm_book3s_64_asm.h
+++ b/arch/powerpc/include/asm/kvm_book3s_asm.h
@@ -22,7 +22,7 @@
22 22
23#ifdef __ASSEMBLY__ 23#ifdef __ASSEMBLY__
24 24
25#ifdef CONFIG_KVM_BOOK3S_64_HANDLER 25#ifdef CONFIG_KVM_BOOK3S_HANDLER
26 26
27#include <asm/kvm_asm.h> 27#include <asm/kvm_asm.h>
28 28
@@ -55,7 +55,7 @@ kvmppc_resume_\intno:
55.macro DO_KVM intno 55.macro DO_KVM intno
56.endm 56.endm
57 57
58#endif /* CONFIG_KVM_BOOK3S_64_HANDLER */ 58#endif /* CONFIG_KVM_BOOK3S_HANDLER */
59 59
60#else /*__ASSEMBLY__ */ 60#else /*__ASSEMBLY__ */
61 61
@@ -63,12 +63,33 @@ struct kvmppc_book3s_shadow_vcpu {
63 ulong gpr[14]; 63 ulong gpr[14];
64 u32 cr; 64 u32 cr;
65 u32 xer; 65 u32 xer;
66
67 u32 fault_dsisr;
68 u32 last_inst;
69 ulong ctr;
70 ulong lr;
71 ulong pc;
72 ulong shadow_srr1;
73 ulong fault_dar;
74
66 ulong host_r1; 75 ulong host_r1;
67 ulong host_r2; 76 ulong host_r2;
68 ulong handler; 77 ulong handler;
69 ulong scratch0; 78 ulong scratch0;
70 ulong scratch1; 79 ulong scratch1;
71 ulong vmhandler; 80 ulong vmhandler;
81 u8 in_guest;
82
83#ifdef CONFIG_PPC_BOOK3S_32
84 u32 sr[16]; /* Guest SRs */
85#endif
86#ifdef CONFIG_PPC_BOOK3S_64
87 u8 slb_max; /* highest used guest slb entry */
88 struct {
89 u64 esid;
90 u64 vsid;
91 } slb[64]; /* guest SLB */
92#endif
72}; 93};
73 94
74#endif /*__ASSEMBLY__ */ 95#endif /*__ASSEMBLY__ */
diff --git a/arch/powerpc/include/asm/kvm_booke.h b/arch/powerpc/include/asm/kvm_booke.h
new file mode 100644
index 000000000000..9c9ba3d59b1b
--- /dev/null
+++ b/arch/powerpc/include/asm/kvm_booke.h
@@ -0,0 +1,96 @@
1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License, version 2, as
4 * published by the Free Software Foundation.
5 *
6 * This program is distributed in the hope that it will be useful,
7 * but WITHOUT ANY WARRANTY; without even the implied warranty of
8 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9 * GNU General Public License for more details.
10 *
11 * You should have received a copy of the GNU General Public License
12 * along with this program; if not, write to the Free Software
13 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
14 *
15 * Copyright SUSE Linux Products GmbH 2010
16 *
17 * Authors: Alexander Graf <agraf@suse.de>
18 */
19
20#ifndef __ASM_KVM_BOOKE_H__
21#define __ASM_KVM_BOOKE_H__
22
23#include <linux/types.h>
24#include <linux/kvm_host.h>
25
26static inline void kvmppc_set_gpr(struct kvm_vcpu *vcpu, int num, ulong val)
27{
28 vcpu->arch.gpr[num] = val;
29}
30
31static inline ulong kvmppc_get_gpr(struct kvm_vcpu *vcpu, int num)
32{
33 return vcpu->arch.gpr[num];
34}
35
36static inline void kvmppc_set_cr(struct kvm_vcpu *vcpu, u32 val)
37{
38 vcpu->arch.cr = val;
39}
40
41static inline u32 kvmppc_get_cr(struct kvm_vcpu *vcpu)
42{
43 return vcpu->arch.cr;
44}
45
46static inline void kvmppc_set_xer(struct kvm_vcpu *vcpu, u32 val)
47{
48 vcpu->arch.xer = val;
49}
50
51static inline u32 kvmppc_get_xer(struct kvm_vcpu *vcpu)
52{
53 return vcpu->arch.xer;
54}
55
56static inline u32 kvmppc_get_last_inst(struct kvm_vcpu *vcpu)
57{
58 return vcpu->arch.last_inst;
59}
60
61static inline void kvmppc_set_ctr(struct kvm_vcpu *vcpu, ulong val)
62{
63 vcpu->arch.ctr = val;
64}
65
66static inline ulong kvmppc_get_ctr(struct kvm_vcpu *vcpu)
67{
68 return vcpu->arch.ctr;
69}
70
71static inline void kvmppc_set_lr(struct kvm_vcpu *vcpu, ulong val)
72{
73 vcpu->arch.lr = val;
74}
75
76static inline ulong kvmppc_get_lr(struct kvm_vcpu *vcpu)
77{
78 return vcpu->arch.lr;
79}
80
81static inline void kvmppc_set_pc(struct kvm_vcpu *vcpu, ulong val)
82{
83 vcpu->arch.pc = val;
84}
85
86static inline ulong kvmppc_get_pc(struct kvm_vcpu *vcpu)
87{
88 return vcpu->arch.pc;
89}
90
91static inline ulong kvmppc_get_fault_dar(struct kvm_vcpu *vcpu)
92{
93 return vcpu->arch.fault_dear;
94}
95
96#endif /* __ASM_KVM_BOOKE_H__ */
diff --git a/arch/powerpc/include/asm/kvm_fpu.h b/arch/powerpc/include/asm/kvm_fpu.h
new file mode 100644
index 000000000000..c3d4f0518a67
--- /dev/null
+++ b/arch/powerpc/include/asm/kvm_fpu.h
@@ -0,0 +1,88 @@
1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License, version 2, as
4 * published by the Free Software Foundation.
5 *
6 * This program is distributed in the hope that it will be useful,
7 * but WITHOUT ANY WARRANTY; without even the implied warranty of
8 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9 * GNU General Public License for more details.
10 *
11 * You should have received a copy of the GNU General Public License
12 * along with this program; if not, write to the Free Software
13 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
14 *
15 * Copyright Novell Inc. 2010
16 *
17 * Authors: Alexander Graf <agraf@suse.de>
18 */
19
20#ifndef __ASM_KVM_FPU_H__
21#define __ASM_KVM_FPU_H__
22
23#include <linux/types.h>
24
25extern void fps_fres(u64 *fpscr, u32 *dst, u32 *src1);
26extern void fps_frsqrte(u64 *fpscr, u32 *dst, u32 *src1);
27extern void fps_fsqrts(u64 *fpscr, u32 *dst, u32 *src1);
28
29extern void fps_fadds(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2);
30extern void fps_fdivs(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2);
31extern void fps_fmuls(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2);
32extern void fps_fsubs(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2);
33
34extern void fps_fmadds(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2,
35 u32 *src3);
36extern void fps_fmsubs(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2,
37 u32 *src3);
38extern void fps_fnmadds(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2,
39 u32 *src3);
40extern void fps_fnmsubs(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2,
41 u32 *src3);
42extern void fps_fsel(u64 *fpscr, u32 *dst, u32 *src1, u32 *src2,
43 u32 *src3);
44
45#define FPD_ONE_IN(name) extern void fpd_ ## name(u64 *fpscr, u32 *cr, \
46 u64 *dst, u64 *src1);
47#define FPD_TWO_IN(name) extern void fpd_ ## name(u64 *fpscr, u32 *cr, \
48 u64 *dst, u64 *src1, u64 *src2);
49#define FPD_THREE_IN(name) extern void fpd_ ## name(u64 *fpscr, u32 *cr, \
50 u64 *dst, u64 *src1, u64 *src2, u64 *src3);
51
52extern void fpd_fcmpu(u64 *fpscr, u32 *cr, u64 *src1, u64 *src2);
53extern void fpd_fcmpo(u64 *fpscr, u32 *cr, u64 *src1, u64 *src2);
54
55FPD_ONE_IN(fsqrts)
56FPD_ONE_IN(frsqrtes)
57FPD_ONE_IN(fres)
58FPD_ONE_IN(frsp)
59FPD_ONE_IN(fctiw)
60FPD_ONE_IN(fctiwz)
61FPD_ONE_IN(fsqrt)
62FPD_ONE_IN(fre)
63FPD_ONE_IN(frsqrte)
64FPD_ONE_IN(fneg)
65FPD_ONE_IN(fabs)
66FPD_TWO_IN(fadds)
67FPD_TWO_IN(fsubs)
68FPD_TWO_IN(fdivs)
69FPD_TWO_IN(fmuls)
70FPD_TWO_IN(fcpsgn)
71FPD_TWO_IN(fdiv)
72FPD_TWO_IN(fadd)
73FPD_TWO_IN(fmul)
74FPD_TWO_IN(fsub)
75FPD_THREE_IN(fmsubs)
76FPD_THREE_IN(fmadds)
77FPD_THREE_IN(fnmsubs)
78FPD_THREE_IN(fnmadds)
79FPD_THREE_IN(fsel)
80FPD_THREE_IN(fmsub)
81FPD_THREE_IN(fmadd)
82FPD_THREE_IN(fnmsub)
83FPD_THREE_IN(fnmadd)
84
85extern void kvm_cvt_fd(u32 *from, u64 *to, u64 *fpscr);
86extern void kvm_cvt_df(u64 *from, u32 *to, u64 *fpscr);
87
88#endif
diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
index 5e5bae7e152f..b0b23c007d6e 100644
--- a/arch/powerpc/include/asm/kvm_host.h
+++ b/arch/powerpc/include/asm/kvm_host.h
@@ -35,10 +35,17 @@
35#define KVM_COALESCED_MMIO_PAGE_OFFSET 1 35#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
36 36
37/* We don't currently support large pages. */ 37/* We don't currently support large pages. */
38#define KVM_HPAGE_GFN_SHIFT(x) 0
38#define KVM_NR_PAGE_SIZES 1 39#define KVM_NR_PAGE_SIZES 1
39#define KVM_PAGES_PER_HPAGE(x) (1UL<<31) 40#define KVM_PAGES_PER_HPAGE(x) (1UL<<31)
40 41
41#define HPTEG_CACHE_NUM 1024 42#define HPTEG_CACHE_NUM (1 << 15)
43#define HPTEG_HASH_BITS_PTE 13
44#define HPTEG_HASH_BITS_VPTE 13
45#define HPTEG_HASH_BITS_VPTE_LONG 5
46#define HPTEG_HASH_NUM_PTE (1 << HPTEG_HASH_BITS_PTE)
47#define HPTEG_HASH_NUM_VPTE (1 << HPTEG_HASH_BITS_VPTE)
48#define HPTEG_HASH_NUM_VPTE_LONG (1 << HPTEG_HASH_BITS_VPTE_LONG)
42 49
43struct kvm; 50struct kvm;
44struct kvm_run; 51struct kvm_run;
@@ -66,7 +73,7 @@ struct kvm_vcpu_stat {
66 u32 dec_exits; 73 u32 dec_exits;
67 u32 ext_intr_exits; 74 u32 ext_intr_exits;
68 u32 halt_wakeup; 75 u32 halt_wakeup;
69#ifdef CONFIG_PPC64 76#ifdef CONFIG_PPC_BOOK3S
70 u32 pf_storage; 77 u32 pf_storage;
71 u32 pf_instruc; 78 u32 pf_instruc;
72 u32 sp_storage; 79 u32 sp_storage;
@@ -124,12 +131,12 @@ struct kvm_arch {
124}; 131};
125 132
126struct kvmppc_pte { 133struct kvmppc_pte {
127 u64 eaddr; 134 ulong eaddr;
128 u64 vpage; 135 u64 vpage;
129 u64 raddr; 136 ulong raddr;
130 bool may_read; 137 bool may_read : 1;
131 bool may_write; 138 bool may_write : 1;
132 bool may_execute; 139 bool may_execute : 1;
133}; 140};
134 141
135struct kvmppc_mmu { 142struct kvmppc_mmu {
@@ -145,12 +152,15 @@ struct kvmppc_mmu {
145 int (*xlate)(struct kvm_vcpu *vcpu, gva_t eaddr, struct kvmppc_pte *pte, bool data); 152 int (*xlate)(struct kvm_vcpu *vcpu, gva_t eaddr, struct kvmppc_pte *pte, bool data);
146 void (*reset_msr)(struct kvm_vcpu *vcpu); 153 void (*reset_msr)(struct kvm_vcpu *vcpu);
147 void (*tlbie)(struct kvm_vcpu *vcpu, ulong addr, bool large); 154 void (*tlbie)(struct kvm_vcpu *vcpu, ulong addr, bool large);
148 int (*esid_to_vsid)(struct kvm_vcpu *vcpu, u64 esid, u64 *vsid); 155 int (*esid_to_vsid)(struct kvm_vcpu *vcpu, ulong esid, u64 *vsid);
149 u64 (*ea_to_vp)(struct kvm_vcpu *vcpu, gva_t eaddr, bool data); 156 u64 (*ea_to_vp)(struct kvm_vcpu *vcpu, gva_t eaddr, bool data);
150 bool (*is_dcbz32)(struct kvm_vcpu *vcpu); 157 bool (*is_dcbz32)(struct kvm_vcpu *vcpu);
151}; 158};
152 159
153struct hpte_cache { 160struct hpte_cache {
161 struct hlist_node list_pte;
162 struct hlist_node list_vpte;
163 struct hlist_node list_vpte_long;
154 u64 host_va; 164 u64 host_va;
155 u64 pfn; 165 u64 pfn;
156 ulong slot; 166 ulong slot;
@@ -160,7 +170,7 @@ struct hpte_cache {
160struct kvm_vcpu_arch { 170struct kvm_vcpu_arch {
161 ulong host_stack; 171 ulong host_stack;
162 u32 host_pid; 172 u32 host_pid;
163#ifdef CONFIG_PPC64 173#ifdef CONFIG_PPC_BOOK3S
164 ulong host_msr; 174 ulong host_msr;
165 ulong host_r2; 175 ulong host_r2;
166 void *host_retip; 176 void *host_retip;
@@ -175,7 +185,7 @@ struct kvm_vcpu_arch {
175 ulong gpr[32]; 185 ulong gpr[32];
176 186
177 u64 fpr[32]; 187 u64 fpr[32];
178 u32 fpscr; 188 u64 fpscr;
179 189
180#ifdef CONFIG_ALTIVEC 190#ifdef CONFIG_ALTIVEC
181 vector128 vr[32]; 191 vector128 vr[32];
@@ -186,19 +196,23 @@ struct kvm_vcpu_arch {
186 u64 vsr[32]; 196 u64 vsr[32];
187#endif 197#endif
188 198
199#ifdef CONFIG_PPC_BOOK3S
200 /* For Gekko paired singles */
201 u32 qpr[32];
202#endif
203
204#ifdef CONFIG_BOOKE
189 ulong pc; 205 ulong pc;
190 ulong ctr; 206 ulong ctr;
191 ulong lr; 207 ulong lr;
192 208
193#ifdef CONFIG_BOOKE
194 ulong xer; 209 ulong xer;
195 u32 cr; 210 u32 cr;
196#endif 211#endif
197 212
198 ulong msr; 213 ulong msr;
199#ifdef CONFIG_PPC64 214#ifdef CONFIG_PPC_BOOK3S
200 ulong shadow_msr; 215 ulong shadow_msr;
201 ulong shadow_srr1;
202 ulong hflags; 216 ulong hflags;
203 ulong guest_owned_ext; 217 ulong guest_owned_ext;
204#endif 218#endif
@@ -253,20 +267,22 @@ struct kvm_vcpu_arch {
253 struct dentry *debugfs_exit_timing; 267 struct dentry *debugfs_exit_timing;
254#endif 268#endif
255 269
270#ifdef CONFIG_BOOKE
256 u32 last_inst; 271 u32 last_inst;
257#ifdef CONFIG_PPC64
258 ulong fault_dsisr;
259#endif
260 ulong fault_dear; 272 ulong fault_dear;
261 ulong fault_esr; 273 ulong fault_esr;
262 ulong queued_dear; 274 ulong queued_dear;
263 ulong queued_esr; 275 ulong queued_esr;
276#endif
264 gpa_t paddr_accessed; 277 gpa_t paddr_accessed;
265 278
266 u8 io_gpr; /* GPR used as IO source/target */ 279 u8 io_gpr; /* GPR used as IO source/target */
267 u8 mmio_is_bigendian; 280 u8 mmio_is_bigendian;
281 u8 mmio_sign_extend;
268 u8 dcr_needed; 282 u8 dcr_needed;
269 u8 dcr_is_write; 283 u8 dcr_is_write;
284 u8 osi_needed;
285 u8 osi_enabled;
270 286
271 u32 cpr0_cfgaddr; /* holds the last set cpr0_cfgaddr */ 287 u32 cpr0_cfgaddr; /* holds the last set cpr0_cfgaddr */
272 288
@@ -275,9 +291,11 @@ struct kvm_vcpu_arch {
275 u64 dec_jiffies; 291 u64 dec_jiffies;
276 unsigned long pending_exceptions; 292 unsigned long pending_exceptions;
277 293
278#ifdef CONFIG_PPC64 294#ifdef CONFIG_PPC_BOOK3S
279 struct hpte_cache hpte_cache[HPTEG_CACHE_NUM]; 295 struct hlist_head hpte_hash_pte[HPTEG_HASH_NUM_PTE];
280 int hpte_cache_offset; 296 struct hlist_head hpte_hash_vpte[HPTEG_HASH_NUM_VPTE];
297 struct hlist_head hpte_hash_vpte_long[HPTEG_HASH_NUM_VPTE_LONG];
298 int hpte_cache_count;
281#endif 299#endif
282}; 300};
283 301
diff --git a/arch/powerpc/include/asm/kvm_ppc.h b/arch/powerpc/include/asm/kvm_ppc.h
index e2642829e435..18d139ec2d22 100644
--- a/arch/powerpc/include/asm/kvm_ppc.h
+++ b/arch/powerpc/include/asm/kvm_ppc.h
@@ -30,6 +30,8 @@
30#include <linux/kvm_host.h> 30#include <linux/kvm_host.h>
31#ifdef CONFIG_PPC_BOOK3S 31#ifdef CONFIG_PPC_BOOK3S
32#include <asm/kvm_book3s.h> 32#include <asm/kvm_book3s.h>
33#else
34#include <asm/kvm_booke.h>
33#endif 35#endif
34 36
35enum emulation_result { 37enum emulation_result {
@@ -37,6 +39,7 @@ enum emulation_result {
37 EMULATE_DO_MMIO, /* kvm_run filled with MMIO request */ 39 EMULATE_DO_MMIO, /* kvm_run filled with MMIO request */
38 EMULATE_DO_DCR, /* kvm_run filled with DCR request */ 40 EMULATE_DO_DCR, /* kvm_run filled with DCR request */
39 EMULATE_FAIL, /* can't emulate this instruction */ 41 EMULATE_FAIL, /* can't emulate this instruction */
42 EMULATE_AGAIN, /* something went wrong. go again */
40}; 43};
41 44
42extern int __kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu); 45extern int __kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu);
@@ -48,8 +51,11 @@ extern void kvmppc_dump_vcpu(struct kvm_vcpu *vcpu);
48extern int kvmppc_handle_load(struct kvm_run *run, struct kvm_vcpu *vcpu, 51extern int kvmppc_handle_load(struct kvm_run *run, struct kvm_vcpu *vcpu,
49 unsigned int rt, unsigned int bytes, 52 unsigned int rt, unsigned int bytes,
50 int is_bigendian); 53 int is_bigendian);
54extern int kvmppc_handle_loads(struct kvm_run *run, struct kvm_vcpu *vcpu,
55 unsigned int rt, unsigned int bytes,
56 int is_bigendian);
51extern int kvmppc_handle_store(struct kvm_run *run, struct kvm_vcpu *vcpu, 57extern int kvmppc_handle_store(struct kvm_run *run, struct kvm_vcpu *vcpu,
52 u32 val, unsigned int bytes, int is_bigendian); 58 u64 val, unsigned int bytes, int is_bigendian);
53 59
54extern int kvmppc_emulate_instruction(struct kvm_run *run, 60extern int kvmppc_emulate_instruction(struct kvm_run *run,
55 struct kvm_vcpu *vcpu); 61 struct kvm_vcpu *vcpu);
@@ -63,6 +69,7 @@ extern void kvmppc_mmu_map(struct kvm_vcpu *vcpu, u64 gvaddr, gpa_t gpaddr,
63extern void kvmppc_mmu_priv_switch(struct kvm_vcpu *vcpu, int usermode); 69extern void kvmppc_mmu_priv_switch(struct kvm_vcpu *vcpu, int usermode);
64extern void kvmppc_mmu_switch_pid(struct kvm_vcpu *vcpu, u32 pid); 70extern void kvmppc_mmu_switch_pid(struct kvm_vcpu *vcpu, u32 pid);
65extern void kvmppc_mmu_destroy(struct kvm_vcpu *vcpu); 71extern void kvmppc_mmu_destroy(struct kvm_vcpu *vcpu);
72extern int kvmppc_mmu_init(struct kvm_vcpu *vcpu);
66extern int kvmppc_mmu_dtlb_index(struct kvm_vcpu *vcpu, gva_t eaddr); 73extern int kvmppc_mmu_dtlb_index(struct kvm_vcpu *vcpu, gva_t eaddr);
67extern int kvmppc_mmu_itlb_index(struct kvm_vcpu *vcpu, gva_t eaddr); 74extern int kvmppc_mmu_itlb_index(struct kvm_vcpu *vcpu, gva_t eaddr);
68extern gpa_t kvmppc_mmu_xlate(struct kvm_vcpu *vcpu, unsigned int gtlb_index, 75extern gpa_t kvmppc_mmu_xlate(struct kvm_vcpu *vcpu, unsigned int gtlb_index,
@@ -88,6 +95,8 @@ extern void kvmppc_core_queue_dec(struct kvm_vcpu *vcpu);
88extern void kvmppc_core_dequeue_dec(struct kvm_vcpu *vcpu); 95extern void kvmppc_core_dequeue_dec(struct kvm_vcpu *vcpu);
89extern void kvmppc_core_queue_external(struct kvm_vcpu *vcpu, 96extern void kvmppc_core_queue_external(struct kvm_vcpu *vcpu,
90 struct kvm_interrupt *irq); 97 struct kvm_interrupt *irq);
98extern void kvmppc_core_dequeue_external(struct kvm_vcpu *vcpu,
99 struct kvm_interrupt *irq);
91 100
92extern int kvmppc_core_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu, 101extern int kvmppc_core_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu,
93 unsigned int op, int *advance); 102 unsigned int op, int *advance);
@@ -99,81 +108,37 @@ extern void kvmppc_booke_exit(void);
99 108
100extern void kvmppc_core_destroy_mmu(struct kvm_vcpu *vcpu); 109extern void kvmppc_core_destroy_mmu(struct kvm_vcpu *vcpu);
101 110
102#ifdef CONFIG_PPC_BOOK3S 111/*
103 112 * Cuts out inst bits with ordering according to spec.
104/* We assume we're always acting on the current vcpu */ 113 * That means the leftmost bit is zero. All given bits are included.
105 114 */
106static inline void kvmppc_set_gpr(struct kvm_vcpu *vcpu, int num, ulong val) 115static inline u32 kvmppc_get_field(u64 inst, int msb, int lsb)
107{
108 if ( num < 14 ) {
109 get_paca()->shadow_vcpu.gpr[num] = val;
110 to_book3s(vcpu)->shadow_vcpu.gpr[num] = val;
111 } else
112 vcpu->arch.gpr[num] = val;
113}
114
115static inline ulong kvmppc_get_gpr(struct kvm_vcpu *vcpu, int num)
116{
117 if ( num < 14 )
118 return get_paca()->shadow_vcpu.gpr[num];
119 else
120 return vcpu->arch.gpr[num];
121}
122
123static inline void kvmppc_set_cr(struct kvm_vcpu *vcpu, u32 val)
124{
125 get_paca()->shadow_vcpu.cr = val;
126 to_book3s(vcpu)->shadow_vcpu.cr = val;
127}
128
129static inline u32 kvmppc_get_cr(struct kvm_vcpu *vcpu)
130{
131 return get_paca()->shadow_vcpu.cr;
132}
133
134static inline void kvmppc_set_xer(struct kvm_vcpu *vcpu, u32 val)
135{
136 get_paca()->shadow_vcpu.xer = val;
137 to_book3s(vcpu)->shadow_vcpu.xer = val;
138}
139
140static inline u32 kvmppc_get_xer(struct kvm_vcpu *vcpu)
141{ 116{
142 return get_paca()->shadow_vcpu.xer; 117 u32 r;
143} 118 u32 mask;
144 119
145#else 120 BUG_ON(msb > lsb);
146 121
147static inline void kvmppc_set_gpr(struct kvm_vcpu *vcpu, int num, ulong val) 122 mask = (1 << (lsb - msb + 1)) - 1;
148{ 123 r = (inst >> (63 - lsb)) & mask;
149 vcpu->arch.gpr[num] = val;
150}
151 124
152static inline ulong kvmppc_get_gpr(struct kvm_vcpu *vcpu, int num) 125 return r;
153{
154 return vcpu->arch.gpr[num];
155} 126}
156 127
157static inline void kvmppc_set_cr(struct kvm_vcpu *vcpu, u32 val) 128/*
129 * Replaces inst bits with ordering according to spec.
130 */
131static inline u32 kvmppc_set_field(u64 inst, int msb, int lsb, int value)
158{ 132{
159 vcpu->arch.cr = val; 133 u32 r;
160} 134 u32 mask;
161 135
162static inline u32 kvmppc_get_cr(struct kvm_vcpu *vcpu) 136 BUG_ON(msb > lsb);
163{
164 return vcpu->arch.cr;
165}
166 137
167static inline void kvmppc_set_xer(struct kvm_vcpu *vcpu, u32 val) 138 mask = ((1 << (lsb - msb + 1)) - 1) << (63 - lsb);
168{ 139 r = (inst & ~mask) | ((value << (63 - lsb)) & mask);
169 vcpu->arch.xer = val;
170}
171 140
172static inline u32 kvmppc_get_xer(struct kvm_vcpu *vcpu) 141 return r;
173{
174 return vcpu->arch.xer;
175} 142}
176 143
177#endif
178
179#endif /* __POWERPC_KVM_PPC_H__ */ 144#endif /* __POWERPC_KVM_PPC_H__ */
diff --git a/arch/powerpc/include/asm/lmb.h b/arch/powerpc/include/asm/lmb.h
deleted file mode 100644
index 6f5fdf0a19ae..000000000000
--- a/arch/powerpc/include/asm/lmb.h
+++ /dev/null
@@ -1,15 +0,0 @@
1#ifndef _ASM_POWERPC_LMB_H
2#define _ASM_POWERPC_LMB_H
3
4#include <asm/udbg.h>
5
6#define LMB_DBG(fmt...) udbg_printf(fmt)
7
8#ifdef CONFIG_PPC32
9extern phys_addr_t lowmem_end_addr;
10#define LMB_REAL_LIMIT lowmem_end_addr
11#else
12#define LMB_REAL_LIMIT 0
13#endif
14
15#endif /* _ASM_POWERPC_LMB_H */
diff --git a/arch/powerpc/include/asm/macio.h b/arch/powerpc/include/asm/macio.h
index a062c57696d0..675e159b5ef4 100644
--- a/arch/powerpc/include/asm/macio.h
+++ b/arch/powerpc/include/asm/macio.h
@@ -108,7 +108,7 @@ static inline void* macio_get_drvdata(struct macio_dev *dev)
108 108
109static inline struct device_node *macio_get_of_node(struct macio_dev *mdev) 109static inline struct device_node *macio_get_of_node(struct macio_dev *mdev)
110{ 110{
111 return mdev->ofdev.node; 111 return mdev->ofdev.dev.of_node;
112} 112}
113 113
114#ifdef CONFIG_PCI 114#ifdef CONFIG_PCI
@@ -123,10 +123,6 @@ static inline struct pci_dev *macio_get_pci_dev(struct macio_dev *mdev)
123 */ 123 */
124struct macio_driver 124struct macio_driver
125{ 125{
126 char *name;
127 struct of_device_id *match_table;
128 struct module *owner;
129
130 int (*probe)(struct macio_dev* dev, const struct of_device_id *match); 126 int (*probe)(struct macio_dev* dev, const struct of_device_id *match);
131 int (*remove)(struct macio_dev* dev); 127 int (*remove)(struct macio_dev* dev);
132 128
diff --git a/arch/powerpc/include/asm/memblock.h b/arch/powerpc/include/asm/memblock.h
new file mode 100644
index 000000000000..3c29728b56b1
--- /dev/null
+++ b/arch/powerpc/include/asm/memblock.h
@@ -0,0 +1,15 @@
1#ifndef _ASM_POWERPC_MEMBLOCK_H
2#define _ASM_POWERPC_MEMBLOCK_H
3
4#include <asm/udbg.h>
5
6#define MEMBLOCK_DBG(fmt...) udbg_printf(fmt)
7
8#ifdef CONFIG_PPC32
9extern phys_addr_t lowmem_end_addr;
10#define MEMBLOCK_REAL_LIMIT lowmem_end_addr
11#else
12#define MEMBLOCK_REAL_LIMIT 0
13#endif
14
15#endif /* _ASM_POWERPC_MEMBLOCK_H */
diff --git a/arch/powerpc/include/asm/mmu-44x.h b/arch/powerpc/include/asm/mmu-44x.h
index 0372669383a8..bf52d704fc47 100644
--- a/arch/powerpc/include/asm/mmu-44x.h
+++ b/arch/powerpc/include/asm/mmu-44x.h
@@ -40,7 +40,7 @@
40#define PPC44x_TLB_I 0x00000400 /* Caching is inhibited */ 40#define PPC44x_TLB_I 0x00000400 /* Caching is inhibited */
41#define PPC44x_TLB_M 0x00000200 /* Memory is coherent */ 41#define PPC44x_TLB_M 0x00000200 /* Memory is coherent */
42#define PPC44x_TLB_G 0x00000100 /* Memory is guarded */ 42#define PPC44x_TLB_G 0x00000100 /* Memory is guarded */
43#define PPC44x_TLB_E 0x00000080 /* Memory is guarded */ 43#define PPC44x_TLB_E 0x00000080 /* Memory is little endian */
44 44
45#define PPC44x_TLB_PERM_MASK 0x0000003f 45#define PPC44x_TLB_PERM_MASK 0x0000003f
46#define PPC44x_TLB_UX 0x00000020 /* User execution */ 46#define PPC44x_TLB_UX 0x00000020 /* User execution */
@@ -53,6 +53,52 @@
53/* Number of TLB entries */ 53/* Number of TLB entries */
54#define PPC44x_TLB_SIZE 64 54#define PPC44x_TLB_SIZE 64
55 55
56/* 47x bits */
57#define PPC47x_MMUCR_TID 0x0000ffff
58#define PPC47x_MMUCR_STS 0x00010000
59
60/* Page identification fields */
61#define PPC47x_TLB0_EPN_MASK 0xfffff000 /* Effective Page Number */
62#define PPC47x_TLB0_VALID 0x00000800 /* Valid flag */
63#define PPC47x_TLB0_TS 0x00000400 /* Translation address space */
64#define PPC47x_TLB0_4K 0x00000000
65#define PPC47x_TLB0_16K 0x00000010
66#define PPC47x_TLB0_64K 0x00000030
67#define PPC47x_TLB0_1M 0x00000070
68#define PPC47x_TLB0_16M 0x000000f0
69#define PPC47x_TLB0_256M 0x000001f0
70#define PPC47x_TLB0_1G 0x000003f0
71#define PPC47x_TLB0_BOLTED_R 0x00000008 /* tlbre only */
72
73/* Translation fields */
74#define PPC47x_TLB1_RPN_MASK 0xfffff000 /* Real Page Number */
75#define PPC47x_TLB1_ERPN_MASK 0x000003ff
76
77/* Storage attribute and access control fields */
78#define PPC47x_TLB2_ATTR_MASK 0x0003ff80
79#define PPC47x_TLB2_IL1I 0x00020000 /* Memory is guarded */
80#define PPC47x_TLB2_IL1D 0x00010000 /* Memory is guarded */
81#define PPC47x_TLB2_U0 0x00008000 /* User 0 */
82#define PPC47x_TLB2_U1 0x00004000 /* User 1 */
83#define PPC47x_TLB2_U2 0x00002000 /* User 2 */
84#define PPC47x_TLB2_U3 0x00001000 /* User 3 */
85#define PPC47x_TLB2_W 0x00000800 /* Caching is write-through */
86#define PPC47x_TLB2_I 0x00000400 /* Caching is inhibited */
87#define PPC47x_TLB2_M 0x00000200 /* Memory is coherent */
88#define PPC47x_TLB2_G 0x00000100 /* Memory is guarded */
89#define PPC47x_TLB2_E 0x00000080 /* Memory is little endian */
90#define PPC47x_TLB2_PERM_MASK 0x0000003f
91#define PPC47x_TLB2_UX 0x00000020 /* User execution */
92#define PPC47x_TLB2_UW 0x00000010 /* User write */
93#define PPC47x_TLB2_UR 0x00000008 /* User read */
94#define PPC47x_TLB2_SX 0x00000004 /* Super execution */
95#define PPC47x_TLB2_SW 0x00000002 /* Super write */
96#define PPC47x_TLB2_SR 0x00000001 /* Super read */
97#define PPC47x_TLB2_U_RWX (PPC47x_TLB2_UX|PPC47x_TLB2_UW|PPC47x_TLB2_UR)
98#define PPC47x_TLB2_S_RWX (PPC47x_TLB2_SX|PPC47x_TLB2_SW|PPC47x_TLB2_SR)
99#define PPC47x_TLB2_S_RW (PPC47x_TLB2_SW | PPC47x_TLB2_SR)
100#define PPC47x_TLB2_IMG (PPC47x_TLB2_I | PPC47x_TLB2_M | PPC47x_TLB2_G)
101
56#ifndef __ASSEMBLY__ 102#ifndef __ASSEMBLY__
57 103
58extern unsigned int tlb_44x_hwater; 104extern unsigned int tlb_44x_hwater;
@@ -79,12 +125,15 @@ typedef struct {
79 125
80#if (PAGE_SHIFT == 12) 126#if (PAGE_SHIFT == 12)
81#define PPC44x_TLBE_SIZE PPC44x_TLB_4K 127#define PPC44x_TLBE_SIZE PPC44x_TLB_4K
128#define PPC47x_TLBE_SIZE PPC47x_TLB0_4K
82#define mmu_virtual_psize MMU_PAGE_4K 129#define mmu_virtual_psize MMU_PAGE_4K
83#elif (PAGE_SHIFT == 14) 130#elif (PAGE_SHIFT == 14)
84#define PPC44x_TLBE_SIZE PPC44x_TLB_16K 131#define PPC44x_TLBE_SIZE PPC44x_TLB_16K
132#define PPC47x_TLBE_SIZE PPC47x_TLB0_16K
85#define mmu_virtual_psize MMU_PAGE_16K 133#define mmu_virtual_psize MMU_PAGE_16K
86#elif (PAGE_SHIFT == 16) 134#elif (PAGE_SHIFT == 16)
87#define PPC44x_TLBE_SIZE PPC44x_TLB_64K 135#define PPC44x_TLBE_SIZE PPC44x_TLB_64K
136#define PPC47x_TLBE_SIZE PPC47x_TLB0_64K
88#define mmu_virtual_psize MMU_PAGE_64K 137#define mmu_virtual_psize MMU_PAGE_64K
89#elif (PAGE_SHIFT == 18) 138#elif (PAGE_SHIFT == 18)
90#define PPC44x_TLBE_SIZE PPC44x_TLB_256K 139#define PPC44x_TLBE_SIZE PPC44x_TLB_256K
diff --git a/arch/powerpc/include/asm/mmu-hash64.h b/arch/powerpc/include/asm/mmu-hash64.h
index 2102b214a87c..0e398cfee2c8 100644
--- a/arch/powerpc/include/asm/mmu-hash64.h
+++ b/arch/powerpc/include/asm/mmu-hash64.h
@@ -250,7 +250,9 @@ extern int hash_page(unsigned long ea, unsigned long access, unsigned long trap)
250int __hash_page_huge(unsigned long ea, unsigned long access, unsigned long vsid, 250int __hash_page_huge(unsigned long ea, unsigned long access, unsigned long vsid,
251 pte_t *ptep, unsigned long trap, int local, int ssize, 251 pte_t *ptep, unsigned long trap, int local, int ssize,
252 unsigned int shift, unsigned int mmu_psize); 252 unsigned int shift, unsigned int mmu_psize);
253 253extern void hash_failure_debug(unsigned long ea, unsigned long access,
254 unsigned long vsid, unsigned long trap,
255 int ssize, int psize, unsigned long pte);
254extern int htab_bolt_mapping(unsigned long vstart, unsigned long vend, 256extern int htab_bolt_mapping(unsigned long vstart, unsigned long vend,
255 unsigned long pstart, unsigned long prot, 257 unsigned long pstart, unsigned long prot,
256 int psize, int ssize); 258 int psize, int ssize);
diff --git a/arch/powerpc/include/asm/mmu.h b/arch/powerpc/include/asm/mmu.h
index 7ffbb65ff7a9..7ebf42ed84a2 100644
--- a/arch/powerpc/include/asm/mmu.h
+++ b/arch/powerpc/include/asm/mmu.h
@@ -18,6 +18,7 @@
18#define MMU_FTR_TYPE_44x ASM_CONST(0x00000008) 18#define MMU_FTR_TYPE_44x ASM_CONST(0x00000008)
19#define MMU_FTR_TYPE_FSL_E ASM_CONST(0x00000010) 19#define MMU_FTR_TYPE_FSL_E ASM_CONST(0x00000010)
20#define MMU_FTR_TYPE_3E ASM_CONST(0x00000020) 20#define MMU_FTR_TYPE_3E ASM_CONST(0x00000020)
21#define MMU_FTR_TYPE_47x ASM_CONST(0x00000040)
21 22
22/* 23/*
23 * This is individual features 24 * This is individual features
diff --git a/arch/powerpc/include/asm/mmu_context.h b/arch/powerpc/include/asm/mmu_context.h
index 26383e0778aa..81fb41289d6c 100644
--- a/arch/powerpc/include/asm/mmu_context.h
+++ b/arch/powerpc/include/asm/mmu_context.h
@@ -27,6 +27,8 @@ extern int __init_new_context(void);
27extern void __destroy_context(int context_id); 27extern void __destroy_context(int context_id);
28static inline void mmu_context_init(void) { } 28static inline void mmu_context_init(void) { }
29#else 29#else
30extern unsigned long __init_new_context(void);
31extern void __destroy_context(unsigned long context_id);
30extern void mmu_context_init(void); 32extern void mmu_context_init(void);
31#endif 33#endif
32 34
diff --git a/arch/powerpc/include/asm/mmzone.h b/arch/powerpc/include/asm/mmzone.h
index 35acac90c8ca..aac87cbceb57 100644
--- a/arch/powerpc/include/asm/mmzone.h
+++ b/arch/powerpc/include/asm/mmzone.h
@@ -30,7 +30,7 @@ extern struct pglist_data *node_data[];
30 */ 30 */
31 31
32extern int numa_cpu_lookup_table[]; 32extern int numa_cpu_lookup_table[];
33extern cpumask_t numa_cpumask_lookup_table[]; 33extern cpumask_var_t node_to_cpumask_map[];
34#ifdef CONFIG_MEMORY_HOTPLUG 34#ifdef CONFIG_MEMORY_HOTPLUG
35extern unsigned long max_pfn; 35extern unsigned long max_pfn;
36#endif 36#endif
diff --git a/arch/powerpc/include/asm/mpc52xx_psc.h b/arch/powerpc/include/asm/mpc52xx_psc.h
index 42561f4f032d..ecc4fc69ac13 100644
--- a/arch/powerpc/include/asm/mpc52xx_psc.h
+++ b/arch/powerpc/include/asm/mpc52xx_psc.h
@@ -248,6 +248,7 @@ struct mpc52xx_psc_fifo {
248 u16 tflwfptr; /* PSC + 0x9e */ 248 u16 tflwfptr; /* PSC + 0x9e */
249}; 249};
250 250
251#define MPC512x_PSC_FIFO_EOF 0x100
251#define MPC512x_PSC_FIFO_RESET_SLICE 0x80 252#define MPC512x_PSC_FIFO_RESET_SLICE 0x80
252#define MPC512x_PSC_FIFO_ENABLE_SLICE 0x01 253#define MPC512x_PSC_FIFO_ENABLE_SLICE 0x01
253#define MPC512x_PSC_FIFO_ENABLE_DMA 0x04 254#define MPC512x_PSC_FIFO_ENABLE_DMA 0x04
diff --git a/arch/powerpc/include/asm/mpic.h b/arch/powerpc/include/asm/mpic.h
index 61913d9a21a0..e000cce8f6dd 100644
--- a/arch/powerpc/include/asm/mpic.h
+++ b/arch/powerpc/include/asm/mpic.h
@@ -463,9 +463,6 @@ extern void mpic_cpu_set_priority(int prio);
463/* Request IPIs on primary mpic */ 463/* Request IPIs on primary mpic */
464extern void mpic_request_ipis(void); 464extern void mpic_request_ipis(void);
465 465
466/* Send an IPI (non offseted number 0..3) */
467extern void mpic_send_ipi(unsigned int ipi_no, unsigned int cpu_mask);
468
469/* Send a message (IPI) to a given target (cpu number or MSG_*) */ 466/* Send a message (IPI) to a given target (cpu number or MSG_*) */
470void smp_mpic_message_pass(int target, int msg); 467void smp_mpic_message_pass(int target, int msg);
471 468
diff --git a/arch/powerpc/include/asm/of_device.h b/arch/powerpc/include/asm/of_device.h
index a64debf177dc..444e97e2982e 100644
--- a/arch/powerpc/include/asm/of_device.h
+++ b/arch/powerpc/include/asm/of_device.h
@@ -12,9 +12,8 @@
12 */ 12 */
13struct of_device 13struct of_device
14{ 14{
15 struct device_node *node; /* to be obsoleted */
16 u64 dma_mask; /* DMA mask */
17 struct device dev; /* Generic device interface */ 15 struct device dev; /* Generic device interface */
16 struct pdev_archdata archdata;
18}; 17};
19 18
20extern struct of_device *of_device_alloc(struct device_node *np, 19extern struct of_device *of_device_alloc(struct device_node *np,
diff --git a/arch/powerpc/include/asm/paca.h b/arch/powerpc/include/asm/paca.h
index a011603d4079..8ce7963ad41d 100644
--- a/arch/powerpc/include/asm/paca.h
+++ b/arch/powerpc/include/asm/paca.h
@@ -23,7 +23,7 @@
23#include <asm/page.h> 23#include <asm/page.h>
24#include <asm/exception-64e.h> 24#include <asm/exception-64e.h>
25#ifdef CONFIG_KVM_BOOK3S_64_HANDLER 25#ifdef CONFIG_KVM_BOOK3S_64_HANDLER
26#include <asm/kvm_book3s_64_asm.h> 26#include <asm/kvm_book3s_asm.h>
27#endif 27#endif
28 28
29register struct paca_struct *local_paca asm("r13"); 29register struct paca_struct *local_paca asm("r13");
@@ -82,6 +82,7 @@ struct paca_struct {
82 s16 hw_cpu_id; /* Physical processor number */ 82 s16 hw_cpu_id; /* Physical processor number */
83 u8 cpu_start; /* At startup, processor spins until */ 83 u8 cpu_start; /* At startup, processor spins until */
84 /* this becomes non-zero. */ 84 /* this becomes non-zero. */
85 u8 kexec_state; /* set when kexec down has irqs off */
85#ifdef CONFIG_PPC_STD_MMU_64 86#ifdef CONFIG_PPC_STD_MMU_64
86 struct slb_shadow *slb_shadow_ptr; 87 struct slb_shadow *slb_shadow_ptr;
87 88
@@ -136,15 +137,9 @@ struct paca_struct {
136 u64 startpurr; /* PURR/TB value snapshot */ 137 u64 startpurr; /* PURR/TB value snapshot */
137 u64 startspurr; /* SPURR value snapshot */ 138 u64 startspurr; /* SPURR value snapshot */
138 139
139#ifdef CONFIG_KVM_BOOK3S_64_HANDLER 140#ifdef CONFIG_KVM_BOOK3S_HANDLER
140 struct {
141 u64 esid;
142 u64 vsid;
143 } kvm_slb[64]; /* guest SLB */
144 /* We use this to store guest state in */ 141 /* We use this to store guest state in */
145 struct kvmppc_book3s_shadow_vcpu shadow_vcpu; 142 struct kvmppc_book3s_shadow_vcpu shadow_vcpu;
146 u8 kvm_slb_max; /* highest used guest slb entry */
147 u8 kvm_in_guest; /* are we inside the guest? */
148#endif 143#endif
149}; 144};
150 145
diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h
index e96d52a516ba..53b64be40eb2 100644
--- a/arch/powerpc/include/asm/page.h
+++ b/arch/powerpc/include/asm/page.h
@@ -108,8 +108,21 @@ extern phys_addr_t kernstart_addr;
108#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) 108#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)
109#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) 109#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
110 110
111#define __va(x) ((void *)((unsigned long)(x) + PAGE_OFFSET - MEMORY_START)) 111/*
112 * On Book-E parts we need __va to parse the device tree and we can't
113 * determine MEMORY_START until then. However we can determine PHYSICAL_START
114 * from information at hand (program counter, TLB lookup).
115 *
116 * On non-Book-E PPC64 PAGE_OFFSET and MEMORY_START are constants so use
117 * the other definitions for __va & __pa.
118 */
119#ifdef CONFIG_BOOKE
120#define __va(x) ((void *)(unsigned long)((phys_addr_t)(x) - PHYSICAL_START + KERNELBASE))
121#define __pa(x) ((unsigned long)(x) + PHYSICAL_START - KERNELBASE)
122#else
123#define __va(x) ((void *)(unsigned long)((phys_addr_t)(x) + PAGE_OFFSET - MEMORY_START))
112#define __pa(x) ((unsigned long)(x) - PAGE_OFFSET + MEMORY_START) 124#define __pa(x) ((unsigned long)(x) - PAGE_OFFSET + MEMORY_START)
125#endif
113 126
114/* 127/*
115 * Unfortunately the PLT is in the BSS in the PPC32 ELF ABI, 128 * Unfortunately the PLT is in the BSS in the PPC32 ELF ABI,
diff --git a/arch/powerpc/include/asm/page_64.h b/arch/powerpc/include/asm/page_64.h
index bfc4e027e2ad..358ff14ea25e 100644
--- a/arch/powerpc/include/asm/page_64.h
+++ b/arch/powerpc/include/asm/page_64.h
@@ -162,14 +162,6 @@ do { \
162 162
163#endif /* !CONFIG_HUGETLB_PAGE */ 163#endif /* !CONFIG_HUGETLB_PAGE */
164 164
165#ifdef MODULE
166#define __page_aligned __attribute__((__aligned__(PAGE_SIZE)))
167#else
168#define __page_aligned \
169 __attribute__((__aligned__(PAGE_SIZE), \
170 __section__(".data.page_aligned")))
171#endif
172
173#define VM_DATA_DEFAULT_FLAGS \ 165#define VM_DATA_DEFAULT_FLAGS \
174 (test_thread_flag(TIF_32BIT) ? \ 166 (test_thread_flag(TIF_32BIT) ? \
175 VM_DATA_DEFAULT_FLAGS32 : VM_DATA_DEFAULT_FLAGS64) 167 VM_DATA_DEFAULT_FLAGS32 : VM_DATA_DEFAULT_FLAGS64)
diff --git a/arch/powerpc/include/asm/parport.h b/arch/powerpc/include/asm/parport.h
index 94942d60ddfd..1ca1102b4a2f 100644
--- a/arch/powerpc/include/asm/parport.h
+++ b/arch/powerpc/include/asm/parport.h
@@ -19,6 +19,8 @@ static int __devinit parport_pc_find_nonpci_ports (int autoirq, int autodma)
19 u32 io1, io2; 19 u32 io1, io2;
20 int propsize; 20 int propsize;
21 int count = 0; 21 int count = 0;
22 int virq;
23
22 for (np = NULL; (np = of_find_compatible_node(np, 24 for (np = NULL; (np = of_find_compatible_node(np,
23 "parallel", 25 "parallel",
24 "pnpPNP,400")) != NULL;) { 26 "pnpPNP,400")) != NULL;) {
@@ -26,10 +28,13 @@ static int __devinit parport_pc_find_nonpci_ports (int autoirq, int autodma)
26 if (!prop || propsize > 6*sizeof(u32)) 28 if (!prop || propsize > 6*sizeof(u32))
27 continue; 29 continue;
28 io1 = prop[1]; io2 = prop[2]; 30 io1 = prop[1]; io2 = prop[2];
29 prop = of_get_property(np, "interrupts", NULL); 31
30 if (!prop) 32 virq = irq_of_parse_and_map(np, 0);
33 if (virq == NO_IRQ)
31 continue; 34 continue;
32 if (parport_pc_probe_port(io1, io2, prop[0], autodma, NULL, 0) != NULL) 35
36 if (parport_pc_probe_port(io1, io2, virq, autodma, NULL, 0)
37 != NULL)
33 count++; 38 count++;
34 } 39 }
35 return count; 40 return count;
diff --git a/arch/powerpc/include/asm/pgalloc-64.h b/arch/powerpc/include/asm/pgalloc-64.h
index 605f5c5398d1..292725cec2e3 100644
--- a/arch/powerpc/include/asm/pgalloc-64.h
+++ b/arch/powerpc/include/asm/pgalloc-64.h
@@ -11,6 +11,12 @@
11#include <linux/cpumask.h> 11#include <linux/cpumask.h>
12#include <linux/percpu.h> 12#include <linux/percpu.h>
13 13
14struct vmemmap_backing {
15 struct vmemmap_backing *list;
16 unsigned long phys;
17 unsigned long virt_addr;
18};
19
14/* 20/*
15 * Functions that deal with pagetables that could be at any level of 21 * Functions that deal with pagetables that could be at any level of
16 * the table need to be passed an "index_size" so they know how to 22 * the table need to be passed an "index_size" so they know how to
diff --git a/arch/powerpc/include/asm/pgtable-ppc32.h b/arch/powerpc/include/asm/pgtable-ppc32.h
index 55646adfa843..a7db96f2b5c3 100644
--- a/arch/powerpc/include/asm/pgtable-ppc32.h
+++ b/arch/powerpc/include/asm/pgtable-ppc32.h
@@ -287,7 +287,7 @@ static inline void __ptep_set_access_flags(pte_t *ptep, pte_t entry)
287#define pmd_page_vaddr(pmd) \ 287#define pmd_page_vaddr(pmd) \
288 ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK)) 288 ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK))
289#define pmd_page(pmd) \ 289#define pmd_page(pmd) \
290 (mem_map + (pmd_val(pmd) >> PAGE_SHIFT)) 290 pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT)
291#else 291#else
292#define pmd_page_vaddr(pmd) \ 292#define pmd_page_vaddr(pmd) \
293 ((unsigned long) (pmd_val(pmd) & PAGE_MASK)) 293 ((unsigned long) (pmd_val(pmd) & PAGE_MASK))
diff --git a/arch/powerpc/include/asm/ppc-opcode.h b/arch/powerpc/include/asm/ppc-opcode.h
index aea714797590..d553bbeb726c 100644
--- a/arch/powerpc/include/asm/ppc-opcode.h
+++ b/arch/powerpc/include/asm/ppc-opcode.h
@@ -25,7 +25,7 @@
25#define PPC_INST_LDARX 0x7c0000a8 25#define PPC_INST_LDARX 0x7c0000a8
26#define PPC_INST_LSWI 0x7c0004aa 26#define PPC_INST_LSWI 0x7c0004aa
27#define PPC_INST_LSWX 0x7c00042a 27#define PPC_INST_LSWX 0x7c00042a
28#define PPC_INST_LWARX 0x7c000029 28#define PPC_INST_LWARX 0x7c000028
29#define PPC_INST_LWSYNC 0x7c2004ac 29#define PPC_INST_LWSYNC 0x7c2004ac
30#define PPC_INST_LXVD2X 0x7c000698 30#define PPC_INST_LXVD2X 0x7c000698
31#define PPC_INST_MCRXR 0x7c000400 31#define PPC_INST_MCRXR 0x7c000400
@@ -62,8 +62,8 @@
62#define __PPC_T_TLB(t) (((t) & 0x3) << 21) 62#define __PPC_T_TLB(t) (((t) & 0x3) << 21)
63#define __PPC_WC(w) (((w) & 0x3) << 21) 63#define __PPC_WC(w) (((w) & 0x3) << 21)
64/* 64/*
65 * Only use the larx hint bit on 64bit CPUs. Once we verify it doesn't have 65 * Only use the larx hint bit on 64bit CPUs. e500v1/v2 based CPUs will treat a
66 * any side effects on all 32bit processors, we can do this all the time. 66 * larx with EH set as an illegal instruction.
67 */ 67 */
68#ifdef CONFIG_PPC64 68#ifdef CONFIG_PPC64
69#define __PPC_EH(eh) (((eh) & 0x1) << 0) 69#define __PPC_EH(eh) (((eh) & 0x1) << 0)
diff --git a/arch/powerpc/include/asm/processor.h b/arch/powerpc/include/asm/processor.h
index 221ba6240464..7492fe8ad6e4 100644
--- a/arch/powerpc/include/asm/processor.h
+++ b/arch/powerpc/include/asm/processor.h
@@ -229,6 +229,9 @@ struct thread_struct {
229 unsigned long spefscr; /* SPE & eFP status */ 229 unsigned long spefscr; /* SPE & eFP status */
230 int used_spe; /* set if process has used spe */ 230 int used_spe; /* set if process has used spe */
231#endif /* CONFIG_SPE */ 231#endif /* CONFIG_SPE */
232#ifdef CONFIG_KVM_BOOK3S_32_HANDLER
233 void* kvm_shadow_vcpu; /* KVM internal data */
234#endif /* CONFIG_KVM_BOOK3S_32_HANDLER */
232}; 235};
233 236
234#define ARCH_MIN_TASKALIGN 16 237#define ARCH_MIN_TASKALIGN 16
diff --git a/arch/powerpc/include/asm/ptrace.h b/arch/powerpc/include/asm/ptrace.h
index 9e2d84c06b74..0175a676b34b 100644
--- a/arch/powerpc/include/asm/ptrace.h
+++ b/arch/powerpc/include/asm/ptrace.h
@@ -24,11 +24,7 @@
24 * 2 of the License, or (at your option) any later version. 24 * 2 of the License, or (at your option) any later version.
25 */ 25 */
26 26
27#ifdef __KERNEL__
28#include <linux/types.h> 27#include <linux/types.h>
29#else
30#include <stdint.h>
31#endif
32 28
33#ifndef __ASSEMBLY__ 29#ifndef __ASSEMBLY__
34 30
@@ -89,6 +85,7 @@ struct pt_regs {
89 85
90#define instruction_pointer(regs) ((regs)->nip) 86#define instruction_pointer(regs) ((regs)->nip)
91#define user_stack_pointer(regs) ((regs)->gpr[1]) 87#define user_stack_pointer(regs) ((regs)->gpr[1])
88#define kernel_stack_pointer(regs) ((regs)->gpr[1])
92#define regs_return_value(regs) ((regs)->gpr[3]) 89#define regs_return_value(regs) ((regs)->gpr[3])
93 90
94#ifdef CONFIG_SMP 91#ifdef CONFIG_SMP
@@ -141,6 +138,69 @@ do { \
141#define arch_has_block_step() (!cpu_has_feature(CPU_FTR_601)) 138#define arch_has_block_step() (!cpu_has_feature(CPU_FTR_601))
142#define ARCH_HAS_USER_SINGLE_STEP_INFO 139#define ARCH_HAS_USER_SINGLE_STEP_INFO
143 140
141/*
142 * kprobe-based event tracer support
143 */
144
145#include <linux/stddef.h>
146#include <linux/thread_info.h>
147extern int regs_query_register_offset(const char *name);
148extern const char *regs_query_register_name(unsigned int offset);
149#define MAX_REG_OFFSET (offsetof(struct pt_regs, dsisr))
150
151/**
152 * regs_get_register() - get register value from its offset
153 * @regs: pt_regs from which register value is gotten
154 * @offset: offset number of the register.
155 *
156 * regs_get_register returns the value of a register whose offset from @regs.
157 * The @offset is the offset of the register in struct pt_regs.
158 * If @offset is bigger than MAX_REG_OFFSET, this returns 0.
159 */
160static inline unsigned long regs_get_register(struct pt_regs *regs,
161 unsigned int offset)
162{
163 if (unlikely(offset > MAX_REG_OFFSET))
164 return 0;
165 return *(unsigned long *)((unsigned long)regs + offset);
166}
167
168/**
169 * regs_within_kernel_stack() - check the address in the stack
170 * @regs: pt_regs which contains kernel stack pointer.
171 * @addr: address which is checked.
172 *
173 * regs_within_kernel_stack() checks @addr is within the kernel stack page(s).
174 * If @addr is within the kernel stack, it returns true. If not, returns false.
175 */
176
177static inline bool regs_within_kernel_stack(struct pt_regs *regs,
178 unsigned long addr)
179{
180 return ((addr & ~(THREAD_SIZE - 1)) ==
181 (kernel_stack_pointer(regs) & ~(THREAD_SIZE - 1)));
182}
183
184/**
185 * regs_get_kernel_stack_nth() - get Nth entry of the stack
186 * @regs: pt_regs which contains kernel stack pointer.
187 * @n: stack entry number.
188 *
189 * regs_get_kernel_stack_nth() returns @n th entry of the kernel stack which
190 * is specified by @regs. If the @n th entry is NOT in the kernel stack,
191 * this returns 0.
192 */
193static inline unsigned long regs_get_kernel_stack_nth(struct pt_regs *regs,
194 unsigned int n)
195{
196 unsigned long *addr = (unsigned long *)kernel_stack_pointer(regs);
197 addr += n;
198 if (regs_within_kernel_stack(regs, (unsigned long)addr))
199 return *addr;
200 else
201 return 0;
202}
203
144#endif /* __ASSEMBLY__ */ 204#endif /* __ASSEMBLY__ */
145 205
146#endif /* __KERNEL__ */ 206#endif /* __KERNEL__ */
@@ -300,13 +360,13 @@ do { \
300#ifndef __ASSEMBLY__ 360#ifndef __ASSEMBLY__
301 361
302struct ppc_debug_info { 362struct ppc_debug_info {
303 uint32_t version; /* Only version 1 exists to date */ 363 __u32 version; /* Only version 1 exists to date */
304 uint32_t num_instruction_bps; 364 __u32 num_instruction_bps;
305 uint32_t num_data_bps; 365 __u32 num_data_bps;
306 uint32_t num_condition_regs; 366 __u32 num_condition_regs;
307 uint32_t data_bp_alignment; 367 __u32 data_bp_alignment;
308 uint32_t sizeof_condition; /* size of the DVC register */ 368 __u32 sizeof_condition; /* size of the DVC register */
309 uint64_t features; 369 __u64 features;
310}; 370};
311 371
312#endif /* __ASSEMBLY__ */ 372#endif /* __ASSEMBLY__ */
@@ -322,13 +382,13 @@ struct ppc_debug_info {
322#ifndef __ASSEMBLY__ 382#ifndef __ASSEMBLY__
323 383
324struct ppc_hw_breakpoint { 384struct ppc_hw_breakpoint {
325 uint32_t version; /* currently, version must be 1 */ 385 __u32 version; /* currently, version must be 1 */
326 uint32_t trigger_type; /* only some combinations allowed */ 386 __u32 trigger_type; /* only some combinations allowed */
327 uint32_t addr_mode; /* address match mode */ 387 __u32 addr_mode; /* address match mode */
328 uint32_t condition_mode; /* break/watchpoint condition flags */ 388 __u32 condition_mode; /* break/watchpoint condition flags */
329 uint64_t addr; /* break/watchpoint address */ 389 __u64 addr; /* break/watchpoint address */
330 uint64_t addr2; /* range end or mask */ 390 __u64 addr2; /* range end or mask */
331 uint64_t condition_value; /* contents of the DVC register */ 391 __u64 condition_value; /* contents of the DVC register */
332}; 392};
333 393
334#endif /* __ASSEMBLY__ */ 394#endif /* __ASSEMBLY__ */
diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
index 5572e86223f4..d62fdf4e504b 100644
--- a/arch/powerpc/include/asm/reg.h
+++ b/arch/powerpc/include/asm/reg.h
@@ -293,10 +293,12 @@
293#define HID1_ABE (1<<10) /* 7450 Address Broadcast Enable */ 293#define HID1_ABE (1<<10) /* 7450 Address Broadcast Enable */
294#define HID1_PS (1<<16) /* 750FX PLL selection */ 294#define HID1_PS (1<<16) /* 750FX PLL selection */
295#define SPRN_HID2 0x3F8 /* Hardware Implementation Register 2 */ 295#define SPRN_HID2 0x3F8 /* Hardware Implementation Register 2 */
296#define SPRN_HID2_GEKKO 0x398 /* Gekko HID2 Register */
296#define SPRN_IABR 0x3F2 /* Instruction Address Breakpoint Register */ 297#define SPRN_IABR 0x3F2 /* Instruction Address Breakpoint Register */
297#define SPRN_IABR2 0x3FA /* 83xx */ 298#define SPRN_IABR2 0x3FA /* 83xx */
298#define SPRN_IBCR 0x135 /* 83xx Insn Breakpoint Control Reg */ 299#define SPRN_IBCR 0x135 /* 83xx Insn Breakpoint Control Reg */
299#define SPRN_HID4 0x3F4 /* 970 HID4 */ 300#define SPRN_HID4 0x3F4 /* 970 HID4 */
301#define SPRN_HID4_GEKKO 0x3F3 /* Gekko HID4 */
300#define SPRN_HID5 0x3F6 /* 970 HID5 */ 302#define SPRN_HID5 0x3F6 /* 970 HID5 */
301#define SPRN_HID6 0x3F9 /* BE HID 6 */ 303#define SPRN_HID6 0x3F9 /* BE HID 6 */
302#define HID6_LB (0x0F<<12) /* Concurrent Large Page Modes */ 304#define HID6_LB (0x0F<<12) /* Concurrent Large Page Modes */
@@ -465,6 +467,14 @@
465#define SPRN_VRSAVE 0x100 /* Vector Register Save Register */ 467#define SPRN_VRSAVE 0x100 /* Vector Register Save Register */
466#define SPRN_XER 0x001 /* Fixed Point Exception Register */ 468#define SPRN_XER 0x001 /* Fixed Point Exception Register */
467 469
470#define SPRN_MMCR0_GEKKO 0x3B8 /* Gekko Monitor Mode Control Register 0 */
471#define SPRN_MMCR1_GEKKO 0x3BC /* Gekko Monitor Mode Control Register 1 */
472#define SPRN_PMC1_GEKKO 0x3B9 /* Gekko Performance Monitor Control 1 */
473#define SPRN_PMC2_GEKKO 0x3BA /* Gekko Performance Monitor Control 2 */
474#define SPRN_PMC3_GEKKO 0x3BD /* Gekko Performance Monitor Control 3 */
475#define SPRN_PMC4_GEKKO 0x3BE /* Gekko Performance Monitor Control 4 */
476#define SPRN_WPAR_GEKKO 0x399 /* Gekko Write Pipe Address Register */
477
468#define SPRN_SCOMC 0x114 /* SCOM Access Control */ 478#define SPRN_SCOMC 0x114 /* SCOM Access Control */
469#define SPRN_SCOMD 0x115 /* SCOM Access DATA */ 479#define SPRN_SCOMD 0x115 /* SCOM Access DATA */
470 480
@@ -817,6 +827,7 @@
817#define PVR_403GC 0x00200200 827#define PVR_403GC 0x00200200
818#define PVR_403GCX 0x00201400 828#define PVR_403GCX 0x00201400
819#define PVR_405GP 0x40110000 829#define PVR_405GP 0x40110000
830#define PVR_476 0x11a52000
820#define PVR_STB03XXX 0x40310000 831#define PVR_STB03XXX 0x40310000
821#define PVR_NP405H 0x41410000 832#define PVR_NP405H 0x41410000
822#define PVR_NP405L 0x41610000 833#define PVR_NP405L 0x41610000
@@ -853,6 +864,9 @@
853#define PVR_8245 0x80811014 864#define PVR_8245 0x80811014
854#define PVR_8260 PVR_8240 865#define PVR_8260 PVR_8240
855 866
867/* 476 Simulator seems to currently have the PVR of the 602... */
868#define PVR_476_ISS 0x00052000
869
856/* 64-bit processors */ 870/* 64-bit processors */
857/* XXX the prefix should be PVR_, we'll do a global sweep to fix it one day */ 871/* XXX the prefix should be PVR_, we'll do a global sweep to fix it one day */
858#define PV_NORTHSTAR 0x0033 872#define PV_NORTHSTAR 0x0033
diff --git a/arch/powerpc/include/asm/reg_booke.h b/arch/powerpc/include/asm/reg_booke.h
index 414d434a66d0..2360317179a9 100644
--- a/arch/powerpc/include/asm/reg_booke.h
+++ b/arch/powerpc/include/asm/reg_booke.h
@@ -4,6 +4,12 @@
4 * are not true Book E PowerPCs, they borrowed a number of features 4 * are not true Book E PowerPCs, they borrowed a number of features
5 * before Book E was finalized, and are included here as well. Unfortunatly, 5 * before Book E was finalized, and are included here as well. Unfortunatly,
6 * they sometimes used different locations than true Book E CPUs did. 6 * they sometimes used different locations than true Book E CPUs did.
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License version 2
10 * as published by the Free Software Foundation.
11 *
12 * Copyright 2009-2010 Freescale Semiconductor, Inc.
7 */ 13 */
8#ifdef __KERNEL__ 14#ifdef __KERNEL__
9#ifndef __ASM_POWERPC_REG_BOOKE_H__ 15#ifndef __ASM_POWERPC_REG_BOOKE_H__
@@ -88,6 +94,7 @@
88#define SPRN_IVOR35 0x213 /* Interrupt Vector Offset Register 35 */ 94#define SPRN_IVOR35 0x213 /* Interrupt Vector Offset Register 35 */
89#define SPRN_IVOR36 0x214 /* Interrupt Vector Offset Register 36 */ 95#define SPRN_IVOR36 0x214 /* Interrupt Vector Offset Register 36 */
90#define SPRN_IVOR37 0x215 /* Interrupt Vector Offset Register 37 */ 96#define SPRN_IVOR37 0x215 /* Interrupt Vector Offset Register 37 */
97#define SPRN_MCARU 0x239 /* Machine Check Address Register Upper */
91#define SPRN_MCSRR0 0x23A /* Machine Check Save and Restore Register 0 */ 98#define SPRN_MCSRR0 0x23A /* Machine Check Save and Restore Register 0 */
92#define SPRN_MCSRR1 0x23B /* Machine Check Save and Restore Register 1 */ 99#define SPRN_MCSRR1 0x23B /* Machine Check Save and Restore Register 1 */
93#define SPRN_MCSR 0x23C /* Machine Check Status Register */ 100#define SPRN_MCSR 0x23C /* Machine Check Status Register */
@@ -191,9 +198,16 @@
191#define MCSR_DCFP 0x01000000 /* D-Cache Flush Parity Error */ 198#define MCSR_DCFP 0x01000000 /* D-Cache Flush Parity Error */
192#define MCSR_IMPE 0x00800000 /* Imprecise Machine Check Exception */ 199#define MCSR_IMPE 0x00800000 /* Imprecise Machine Check Exception */
193 200
201#define PPC47x_MCSR_GPR 0x01000000 /* GPR parity error */
202#define PPC47x_MCSR_FPR 0x00800000 /* FPR parity error */
203#define PPC47x_MCSR_IPR 0x00400000 /* Imprecise Machine Check Exception */
204
194#ifdef CONFIG_E500 205#ifdef CONFIG_E500
206/* All e500 */
195#define MCSR_MCP 0x80000000UL /* Machine Check Input Pin */ 207#define MCSR_MCP 0x80000000UL /* Machine Check Input Pin */
196#define MCSR_ICPERR 0x40000000UL /* I-Cache Parity Error */ 208#define MCSR_ICPERR 0x40000000UL /* I-Cache Parity Error */
209
210/* e500v1/v2 */
197#define MCSR_DCP_PERR 0x20000000UL /* D-Cache Push Parity Error */ 211#define MCSR_DCP_PERR 0x20000000UL /* D-Cache Push Parity Error */
198#define MCSR_DCPERR 0x10000000UL /* D-Cache Parity Error */ 212#define MCSR_DCPERR 0x10000000UL /* D-Cache Parity Error */
199#define MCSR_BUS_IAERR 0x00000080UL /* Instruction Address Error */ 213#define MCSR_BUS_IAERR 0x00000080UL /* Instruction Address Error */
@@ -205,12 +219,20 @@
205#define MCSR_BUS_IPERR 0x00000002UL /* Instruction parity Error */ 219#define MCSR_BUS_IPERR 0x00000002UL /* Instruction parity Error */
206#define MCSR_BUS_RPERR 0x00000001UL /* Read parity Error */ 220#define MCSR_BUS_RPERR 0x00000001UL /* Read parity Error */
207 221
208/* e500 parts may set unused bits in MCSR; mask these off */ 222/* e500mc */
209#define MCSR_MASK (MCSR_MCP | MCSR_ICPERR | MCSR_DCP_PERR | \ 223#define MCSR_DCPERR_MC 0x20000000UL /* D-Cache Parity Error */
210 MCSR_DCPERR | MCSR_BUS_IAERR | MCSR_BUS_RAERR | \ 224#define MCSR_L2MMU_MHIT 0x04000000UL /* Hit on multiple TLB entries */
211 MCSR_BUS_WAERR | MCSR_BUS_IBERR | MCSR_BUS_RBERR | \ 225#define MCSR_NMI 0x00100000UL /* Non-Maskable Interrupt */
212 MCSR_BUS_WBERR | MCSR_BUS_IPERR | MCSR_BUS_RPERR) 226#define MCSR_MAV 0x00080000UL /* MCAR address valid */
227#define MCSR_MEA 0x00040000UL /* MCAR is effective address */
228#define MCSR_IF 0x00010000UL /* Instruction Fetch */
229#define MCSR_LD 0x00008000UL /* Load */
230#define MCSR_ST 0x00004000UL /* Store */
231#define MCSR_LDG 0x00002000UL /* Guarded Load */
232#define MCSR_TLBSYNC 0x00000002UL /* Multiple tlbsyncs detected */
233#define MCSR_BSL2_ERR 0x00000001UL /* Backside L2 cache error */
213#endif 234#endif
235
214#ifdef CONFIG_E200 236#ifdef CONFIG_E200
215#define MCSR_MCP 0x80000000UL /* Machine Check Input Pin */ 237#define MCSR_MCP 0x80000000UL /* Machine Check Input Pin */
216#define MCSR_CP_PERR 0x20000000UL /* Cache Push Parity Error */ 238#define MCSR_CP_PERR 0x20000000UL /* Cache Push Parity Error */
@@ -221,11 +243,6 @@
221#define MCSR_BUS_DRERR 0x00000008UL /* Read Bus Error on data load */ 243#define MCSR_BUS_DRERR 0x00000008UL /* Read Bus Error on data load */
222#define MCSR_BUS_WRERR 0x00000004UL /* Write Bus Error on buffered 244#define MCSR_BUS_WRERR 0x00000004UL /* Write Bus Error on buffered
223 store or cache line push */ 245 store or cache line push */
224
225/* e200 parts may set unused bits in MCSR; mask these off */
226#define MCSR_MASK (MCSR_MCP | MCSR_CP_PERR | MCSR_CPERR | \
227 MCSR_EXCP_ERR | MCSR_BUS_IRERR | MCSR_BUS_DRERR | \
228 MCSR_BUS_WRERR)
229#endif 246#endif
230 247
231/* Bit definitions for the DBSR. */ 248/* Bit definitions for the DBSR. */
@@ -604,5 +621,25 @@
604#define DBCR_JOI 0x00000002 /* JTAG Serial Outbound Int. Enable */ 621#define DBCR_JOI 0x00000002 /* JTAG Serial Outbound Int. Enable */
605#define DBCR_JII 0x00000001 /* JTAG Serial Inbound Int. Enable */ 622#define DBCR_JII 0x00000001 /* JTAG Serial Inbound Int. Enable */
606#endif /* 403GCX */ 623#endif /* 403GCX */
624
625/* Some 476 specific registers */
626#define SPRN_SSPCR 830
627#define SPRN_USPCR 831
628#define SPRN_ISPCR 829
629#define SPRN_MMUBE0 820
630#define MMUBE0_IBE0_SHIFT 24
631#define MMUBE0_IBE1_SHIFT 16
632#define MMUBE0_IBE2_SHIFT 8
633#define MMUBE0_VBE0 0x00000004
634#define MMUBE0_VBE1 0x00000002
635#define MMUBE0_VBE2 0x00000001
636#define SPRN_MMUBE1 821
637#define MMUBE1_IBE3_SHIFT 24
638#define MMUBE1_IBE4_SHIFT 16
639#define MMUBE1_IBE5_SHIFT 8
640#define MMUBE1_VBE3 0x00000004
641#define MMUBE1_VBE4 0x00000002
642#define MMUBE1_VBE5 0x00000001
643
607#endif /* __ASM_POWERPC_REG_BOOKE_H__ */ 644#endif /* __ASM_POWERPC_REG_BOOKE_H__ */
608#endif /* __KERNEL__ */ 645#endif /* __KERNEL__ */
diff --git a/arch/powerpc/include/asm/scatterlist.h b/arch/powerpc/include/asm/scatterlist.h
index 912bf597870f..34cc78fd0ef4 100644
--- a/arch/powerpc/include/asm/scatterlist.h
+++ b/arch/powerpc/include/asm/scatterlist.h
@@ -9,38 +9,12 @@
9 * 2 of the License, or (at your option) any later version. 9 * 2 of the License, or (at your option) any later version.
10 */ 10 */
11 11
12#ifdef __KERNEL__
13#include <linux/types.h>
14#include <asm/dma.h> 12#include <asm/dma.h>
15 13#include <asm-generic/scatterlist.h>
16struct scatterlist {
17#ifdef CONFIG_DEBUG_SG
18 unsigned long sg_magic;
19#endif
20 unsigned long page_link;
21 unsigned int offset;
22 unsigned int length;
23
24 /* For TCE or SWIOTLB support */
25 dma_addr_t dma_address;
26 u32 dma_length;
27};
28
29/*
30 * These macros should be used after a dma_map_sg call has been done
31 * to get bus addresses of each of the SG entries and their lengths.
32 * You should only work with the number of sg entries pci_map_sg
33 * returns, or alternatively stop on the first sg_dma_len(sg) which
34 * is 0.
35 */
36#define sg_dma_address(sg) ((sg)->dma_address)
37#define sg_dma_len(sg) ((sg)->dma_length)
38 14
39#ifdef __powerpc64__ 15#ifdef __powerpc64__
40#define ISA_DMA_THRESHOLD (~0UL) 16#define ISA_DMA_THRESHOLD (~0UL)
41#endif 17#endif
42
43#define ARCH_HAS_SG_CHAIN 18#define ARCH_HAS_SG_CHAIN
44 19
45#endif /* __KERNEL__ */
46#endif /* _ASM_POWERPC_SCATTERLIST_H */ 20#endif /* _ASM_POWERPC_SCATTERLIST_H */
diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h
index 1d3b270d3083..66e237bbe15f 100644
--- a/arch/powerpc/include/asm/smp.h
+++ b/arch/powerpc/include/asm/smp.h
@@ -40,7 +40,7 @@ extern void smp_message_recv(int);
40DECLARE_PER_CPU(unsigned int, cpu_pvr); 40DECLARE_PER_CPU(unsigned int, cpu_pvr);
41 41
42#ifdef CONFIG_HOTPLUG_CPU 42#ifdef CONFIG_HOTPLUG_CPU
43extern void fixup_irqs(cpumask_t map); 43extern void fixup_irqs(const struct cpumask *map);
44int generic_cpu_disable(void); 44int generic_cpu_disable(void);
45int generic_cpu_enable(unsigned int cpu); 45int generic_cpu_enable(unsigned int cpu);
46void generic_cpu_die(unsigned int cpu); 46void generic_cpu_die(unsigned int cpu);
@@ -68,8 +68,19 @@ static inline void set_hard_smp_processor_id(int cpu, int phys)
68} 68}
69#endif 69#endif
70 70
71DECLARE_PER_CPU(cpumask_t, cpu_sibling_map); 71DECLARE_PER_CPU(cpumask_var_t, cpu_sibling_map);
72DECLARE_PER_CPU(cpumask_t, cpu_core_map); 72DECLARE_PER_CPU(cpumask_var_t, cpu_core_map);
73
74static inline struct cpumask *cpu_sibling_mask(int cpu)
75{
76 return per_cpu(cpu_sibling_map, cpu);
77}
78
79static inline struct cpumask *cpu_core_mask(int cpu)
80{
81 return per_cpu(cpu_core_map, cpu);
82}
83
73extern int cpu_to_core_id(int cpu); 84extern int cpu_to_core_id(int cpu);
74 85
75/* Since OpenPIC has only 4 IPIs, we use slightly different message numbers. 86/* Since OpenPIC has only 4 IPIs, we use slightly different message numbers.
@@ -93,7 +104,6 @@ void smp_init_pSeries(void);
93void smp_init_cell(void); 104void smp_init_cell(void);
94void smp_init_celleb(void); 105void smp_init_celleb(void);
95void smp_setup_cpu_maps(void); 106void smp_setup_cpu_maps(void);
96void smp_setup_cpu_sibling_map(void);
97 107
98extern int __cpu_disable(void); 108extern int __cpu_disable(void);
99extern void __cpu_die(unsigned int cpu); 109extern void __cpu_die(unsigned int cpu);
diff --git a/arch/powerpc/include/asm/syscall.h b/arch/powerpc/include/asm/syscall.h
index efa7f0b879f3..23913e902fc3 100644
--- a/arch/powerpc/include/asm/syscall.h
+++ b/arch/powerpc/include/asm/syscall.h
@@ -30,7 +30,7 @@ static inline void syscall_rollback(struct task_struct *task,
30static inline long syscall_get_error(struct task_struct *task, 30static inline long syscall_get_error(struct task_struct *task,
31 struct pt_regs *regs) 31 struct pt_regs *regs)
32{ 32{
33 return (regs->ccr & 0x1000) ? -regs->gpr[3] : 0; 33 return (regs->ccr & 0x10000000) ? -regs->gpr[3] : 0;
34} 34}
35 35
36static inline long syscall_get_return_value(struct task_struct *task, 36static inline long syscall_get_return_value(struct task_struct *task,
@@ -44,10 +44,10 @@ static inline void syscall_set_return_value(struct task_struct *task,
44 int error, long val) 44 int error, long val)
45{ 45{
46 if (error) { 46 if (error) {
47 regs->ccr |= 0x1000L; 47 regs->ccr |= 0x10000000L;
48 regs->gpr[3] = -error; 48 regs->gpr[3] = -error;
49 } else { 49 } else {
50 regs->ccr &= ~0x1000L; 50 regs->ccr &= ~0x10000000L;
51 regs->gpr[3] = val; 51 regs->gpr[3] = val;
52 } 52 }
53} 53}
diff --git a/arch/powerpc/include/asm/system.h b/arch/powerpc/include/asm/system.h
index a6297c67c3d6..6c294acac848 100644
--- a/arch/powerpc/include/asm/system.h
+++ b/arch/powerpc/include/asm/system.h
@@ -515,11 +515,8 @@ __cmpxchg_local(volatile void *ptr, unsigned long old, unsigned long new,
515 * powers of 2 writes until it reaches sufficient alignment). 515 * powers of 2 writes until it reaches sufficient alignment).
516 * 516 *
517 * Based on this we disable the IP header alignment in network drivers. 517 * Based on this we disable the IP header alignment in network drivers.
518 * We also modify NET_SKB_PAD to be a cacheline in size, thus maintaining
519 * cacheline alignment of buffers.
520 */ 518 */
521#define NET_IP_ALIGN 0 519#define NET_IP_ALIGN 0
522#define NET_SKB_PAD L1_CACHE_BYTES
523 520
524#define cmpxchg64(ptr, o, n) \ 521#define cmpxchg64(ptr, o, n) \
525 ({ \ 522 ({ \
diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
index aa9d383a1c09..65eb85976a03 100644
--- a/arch/powerpc/include/asm/thread_info.h
+++ b/arch/powerpc/include/asm/thread_info.h
@@ -104,7 +104,7 @@ static inline struct thread_info *current_thread_info(void)
104#define TIF_PERFMON_CTXSW 6 /* perfmon needs ctxsw calls */ 104#define TIF_PERFMON_CTXSW 6 /* perfmon needs ctxsw calls */
105#define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */ 105#define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */
106#define TIF_SINGLESTEP 8 /* singlestepping active */ 106#define TIF_SINGLESTEP 8 /* singlestepping active */
107#define TIF_MEMDIE 9 107#define TIF_MEMDIE 9 /* is terminating due to OOM killer */
108#define TIF_SECCOMP 10 /* secure computing */ 108#define TIF_SECCOMP 10 /* secure computing */
109#define TIF_RESTOREALL 11 /* Restore all regs (implies NOERROR) */ 109#define TIF_RESTOREALL 11 /* Restore all regs (implies NOERROR) */
110#define TIF_NOERROR 12 /* Force successful syscall return */ 110#define TIF_NOERROR 12 /* Force successful syscall return */
diff --git a/arch/powerpc/include/asm/topology.h b/arch/powerpc/include/asm/topology.h
index 8eaec310a25b..32adf7280720 100644
--- a/arch/powerpc/include/asm/topology.h
+++ b/arch/powerpc/include/asm/topology.h
@@ -8,6 +8,26 @@ struct device_node;
8 8
9#ifdef CONFIG_NUMA 9#ifdef CONFIG_NUMA
10 10
11/*
12 * Before going off node we want the VM to try and reclaim from the local
13 * node. It does this if the remote distance is larger than RECLAIM_DISTANCE.
14 * With the default REMOTE_DISTANCE of 20 and the default RECLAIM_DISTANCE of
15 * 20, we never reclaim and go off node straight away.
16 *
17 * To fix this we choose a smaller value of RECLAIM_DISTANCE.
18 */
19#define RECLAIM_DISTANCE 10
20
21/*
22 * Before going off node we want the VM to try and reclaim from the local
23 * node. It does this if the remote distance is larger than RECLAIM_DISTANCE.
24 * With the default REMOTE_DISTANCE of 20 and the default RECLAIM_DISTANCE of
25 * 20, we never reclaim and go off node straight away.
26 *
27 * To fix this we choose a smaller value of RECLAIM_DISTANCE.
28 */
29#define RECLAIM_DISTANCE 10
30
11#include <asm/mmzone.h> 31#include <asm/mmzone.h>
12 32
13static inline int cpu_to_node(int cpu) 33static inline int cpu_to_node(int cpu)
@@ -19,7 +39,7 @@ static inline int cpu_to_node(int cpu)
19 39
20#define cpumask_of_node(node) ((node) == -1 ? \ 40#define cpumask_of_node(node) ((node) == -1 ? \
21 cpu_all_mask : \ 41 cpu_all_mask : \
22 &numa_cpumask_lookup_table[node]) 42 node_to_cpumask_map[node])
23 43
24int of_node_to_nid(struct device_node *device); 44int of_node_to_nid(struct device_node *device);
25 45
@@ -102,8 +122,8 @@ static inline void sysfs_remove_device_from_node(struct sys_device *dev,
102#ifdef CONFIG_PPC64 122#ifdef CONFIG_PPC64
103#include <asm/smp.h> 123#include <asm/smp.h>
104 124
105#define topology_thread_cpumask(cpu) (&per_cpu(cpu_sibling_map, cpu)) 125#define topology_thread_cpumask(cpu) (per_cpu(cpu_sibling_map, cpu))
106#define topology_core_cpumask(cpu) (&per_cpu(cpu_core_map, cpu)) 126#define topology_core_cpumask(cpu) (per_cpu(cpu_core_map, cpu))
107#define topology_core_id(cpu) (cpu_to_core_id(cpu)) 127#define topology_core_id(cpu) (cpu_to_core_id(cpu))
108#endif 128#endif
109#endif 129#endif
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
index 877326320e74..58d0572de6f9 100644
--- a/arch/powerpc/kernel/Makefile
+++ b/arch/powerpc/kernel/Makefile
@@ -57,8 +57,12 @@ obj-$(CONFIG_CRASH_DUMP) += crash_dump.o
57obj-$(CONFIG_E500) += idle_e500.o 57obj-$(CONFIG_E500) += idle_e500.o
58obj-$(CONFIG_6xx) += idle_6xx.o l2cr_6xx.o cpu_setup_6xx.o 58obj-$(CONFIG_6xx) += idle_6xx.o l2cr_6xx.o cpu_setup_6xx.o
59obj-$(CONFIG_TAU) += tau_6xx.o 59obj-$(CONFIG_TAU) += tau_6xx.o
60obj-$(CONFIG_HIBERNATION) += swsusp.o suspend.o \ 60obj-$(CONFIG_HIBERNATION) += swsusp.o suspend.o
61 swsusp_$(CONFIG_WORD_SIZE).o 61ifeq ($(CONFIG_FSL_BOOKE),y)
62obj-$(CONFIG_HIBERNATION) += swsusp_booke.o
63else
64obj-$(CONFIG_HIBERNATION) += swsusp_$(CONFIG_WORD_SIZE).o
65endif
62obj64-$(CONFIG_HIBERNATION) += swsusp_asm64.o 66obj64-$(CONFIG_HIBERNATION) += swsusp_asm64.o
63obj-$(CONFIG_MODULES) += module.o module_$(CONFIG_WORD_SIZE).o 67obj-$(CONFIG_MODULES) += module.o module_$(CONFIG_WORD_SIZE).o
64obj-$(CONFIG_44x) += cpu_setup_44x.o 68obj-$(CONFIG_44x) += cpu_setup_44x.o
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
index 957ceb7059c5..496cc5b3984f 100644
--- a/arch/powerpc/kernel/asm-offsets.c
+++ b/arch/powerpc/kernel/asm-offsets.c
@@ -50,6 +50,9 @@
50#endif 50#endif
51#ifdef CONFIG_KVM 51#ifdef CONFIG_KVM
52#include <linux/kvm_host.h> 52#include <linux/kvm_host.h>
53#ifndef CONFIG_BOOKE
54#include <asm/kvm_book3s.h>
55#endif
53#endif 56#endif
54 57
55#ifdef CONFIG_PPC32 58#ifdef CONFIG_PPC32
@@ -105,6 +108,9 @@ int main(void)
105 DEFINE(THREAD_USED_SPE, offsetof(struct thread_struct, used_spe)); 108 DEFINE(THREAD_USED_SPE, offsetof(struct thread_struct, used_spe));
106#endif /* CONFIG_SPE */ 109#endif /* CONFIG_SPE */
107#endif /* CONFIG_PPC64 */ 110#endif /* CONFIG_PPC64 */
111#ifdef CONFIG_KVM_BOOK3S_32_HANDLER
112 DEFINE(THREAD_KVM_SVCPU, offsetof(struct thread_struct, kvm_shadow_vcpu));
113#endif
108 114
109 DEFINE(TI_FLAGS, offsetof(struct thread_info, flags)); 115 DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
110 DEFINE(TI_LOCAL_FLAGS, offsetof(struct thread_info, local_flags)); 116 DEFINE(TI_LOCAL_FLAGS, offsetof(struct thread_info, local_flags));
@@ -133,7 +139,6 @@ int main(void)
133 DEFINE(PACAKMSR, offsetof(struct paca_struct, kernel_msr)); 139 DEFINE(PACAKMSR, offsetof(struct paca_struct, kernel_msr));
134 DEFINE(PACASOFTIRQEN, offsetof(struct paca_struct, soft_enabled)); 140 DEFINE(PACASOFTIRQEN, offsetof(struct paca_struct, soft_enabled));
135 DEFINE(PACAHARDIRQEN, offsetof(struct paca_struct, hard_enabled)); 141 DEFINE(PACAHARDIRQEN, offsetof(struct paca_struct, hard_enabled));
136 DEFINE(PACAPERFPEND, offsetof(struct paca_struct, perf_event_pending));
137 DEFINE(PACACONTEXTID, offsetof(struct paca_struct, context.id)); 142 DEFINE(PACACONTEXTID, offsetof(struct paca_struct, context.id));
138#ifdef CONFIG_PPC_MM_SLICES 143#ifdef CONFIG_PPC_MM_SLICES
139 DEFINE(PACALOWSLICESPSIZE, offsetof(struct paca_struct, 144 DEFINE(PACALOWSLICESPSIZE, offsetof(struct paca_struct,
@@ -184,6 +189,7 @@ int main(void)
184#endif /* CONFIG_PPC_STD_MMU_64 */ 189#endif /* CONFIG_PPC_STD_MMU_64 */
185 DEFINE(PACAEMERGSP, offsetof(struct paca_struct, emergency_sp)); 190 DEFINE(PACAEMERGSP, offsetof(struct paca_struct, emergency_sp));
186 DEFINE(PACAHWCPUID, offsetof(struct paca_struct, hw_cpu_id)); 191 DEFINE(PACAHWCPUID, offsetof(struct paca_struct, hw_cpu_id));
192 DEFINE(PACAKEXECSTATE, offsetof(struct paca_struct, kexec_state));
187 DEFINE(PACA_STARTPURR, offsetof(struct paca_struct, startpurr)); 193 DEFINE(PACA_STARTPURR, offsetof(struct paca_struct, startpurr));
188 DEFINE(PACA_STARTSPURR, offsetof(struct paca_struct, startspurr)); 194 DEFINE(PACA_STARTSPURR, offsetof(struct paca_struct, startspurr));
189 DEFINE(PACA_USER_TIME, offsetof(struct paca_struct, user_time)); 195 DEFINE(PACA_USER_TIME, offsetof(struct paca_struct, user_time));
@@ -191,33 +197,9 @@ int main(void)
191 DEFINE(PACA_DATA_OFFSET, offsetof(struct paca_struct, data_offset)); 197 DEFINE(PACA_DATA_OFFSET, offsetof(struct paca_struct, data_offset));
192 DEFINE(PACA_TRAP_SAVE, offsetof(struct paca_struct, trap_save)); 198 DEFINE(PACA_TRAP_SAVE, offsetof(struct paca_struct, trap_save));
193#ifdef CONFIG_KVM_BOOK3S_64_HANDLER 199#ifdef CONFIG_KVM_BOOK3S_64_HANDLER
194 DEFINE(PACA_KVM_IN_GUEST, offsetof(struct paca_struct, kvm_in_guest)); 200 DEFINE(PACA_KVM_SVCPU, offsetof(struct paca_struct, shadow_vcpu));
195 DEFINE(PACA_KVM_SLB, offsetof(struct paca_struct, kvm_slb)); 201 DEFINE(SVCPU_SLB, offsetof(struct kvmppc_book3s_shadow_vcpu, slb));
196 DEFINE(PACA_KVM_SLB_MAX, offsetof(struct paca_struct, kvm_slb_max)); 202 DEFINE(SVCPU_SLB_MAX, offsetof(struct kvmppc_book3s_shadow_vcpu, slb_max));
197 DEFINE(PACA_KVM_CR, offsetof(struct paca_struct, shadow_vcpu.cr));
198 DEFINE(PACA_KVM_XER, offsetof(struct paca_struct, shadow_vcpu.xer));
199 DEFINE(PACA_KVM_R0, offsetof(struct paca_struct, shadow_vcpu.gpr[0]));
200 DEFINE(PACA_KVM_R1, offsetof(struct paca_struct, shadow_vcpu.gpr[1]));
201 DEFINE(PACA_KVM_R2, offsetof(struct paca_struct, shadow_vcpu.gpr[2]));
202 DEFINE(PACA_KVM_R3, offsetof(struct paca_struct, shadow_vcpu.gpr[3]));
203 DEFINE(PACA_KVM_R4, offsetof(struct paca_struct, shadow_vcpu.gpr[4]));
204 DEFINE(PACA_KVM_R5, offsetof(struct paca_struct, shadow_vcpu.gpr[5]));
205 DEFINE(PACA_KVM_R6, offsetof(struct paca_struct, shadow_vcpu.gpr[6]));
206 DEFINE(PACA_KVM_R7, offsetof(struct paca_struct, shadow_vcpu.gpr[7]));
207 DEFINE(PACA_KVM_R8, offsetof(struct paca_struct, shadow_vcpu.gpr[8]));
208 DEFINE(PACA_KVM_R9, offsetof(struct paca_struct, shadow_vcpu.gpr[9]));
209 DEFINE(PACA_KVM_R10, offsetof(struct paca_struct, shadow_vcpu.gpr[10]));
210 DEFINE(PACA_KVM_R11, offsetof(struct paca_struct, shadow_vcpu.gpr[11]));
211 DEFINE(PACA_KVM_R12, offsetof(struct paca_struct, shadow_vcpu.gpr[12]));
212 DEFINE(PACA_KVM_R13, offsetof(struct paca_struct, shadow_vcpu.gpr[13]));
213 DEFINE(PACA_KVM_HOST_R1, offsetof(struct paca_struct, shadow_vcpu.host_r1));
214 DEFINE(PACA_KVM_HOST_R2, offsetof(struct paca_struct, shadow_vcpu.host_r2));
215 DEFINE(PACA_KVM_VMHANDLER, offsetof(struct paca_struct,
216 shadow_vcpu.vmhandler));
217 DEFINE(PACA_KVM_SCRATCH0, offsetof(struct paca_struct,
218 shadow_vcpu.scratch0));
219 DEFINE(PACA_KVM_SCRATCH1, offsetof(struct paca_struct,
220 shadow_vcpu.scratch1));
221#endif 203#endif
222#endif /* CONFIG_PPC64 */ 204#endif /* CONFIG_PPC64 */
223 205
@@ -228,8 +210,8 @@ int main(void)
228 /* Interrupt register frame */ 210 /* Interrupt register frame */
229 DEFINE(STACK_FRAME_OVERHEAD, STACK_FRAME_OVERHEAD); 211 DEFINE(STACK_FRAME_OVERHEAD, STACK_FRAME_OVERHEAD);
230 DEFINE(INT_FRAME_SIZE, STACK_INT_FRAME_SIZE); 212 DEFINE(INT_FRAME_SIZE, STACK_INT_FRAME_SIZE);
231#ifdef CONFIG_PPC64
232 DEFINE(SWITCH_FRAME_SIZE, STACK_FRAME_OVERHEAD + sizeof(struct pt_regs)); 213 DEFINE(SWITCH_FRAME_SIZE, STACK_FRAME_OVERHEAD + sizeof(struct pt_regs));
214#ifdef CONFIG_PPC64
233 /* Create extra stack space for SRR0 and SRR1 when calling prom/rtas. */ 215 /* Create extra stack space for SRR0 and SRR1 when calling prom/rtas. */
234 DEFINE(PROM_FRAME_SIZE, STACK_FRAME_OVERHEAD + sizeof(struct pt_regs) + 16); 216 DEFINE(PROM_FRAME_SIZE, STACK_FRAME_OVERHEAD + sizeof(struct pt_regs) + 16);
235 DEFINE(RTAS_FRAME_SIZE, STACK_FRAME_OVERHEAD + sizeof(struct pt_regs) + 16); 217 DEFINE(RTAS_FRAME_SIZE, STACK_FRAME_OVERHEAD + sizeof(struct pt_regs) + 16);
@@ -412,9 +394,6 @@ int main(void)
412 DEFINE(VCPU_HOST_STACK, offsetof(struct kvm_vcpu, arch.host_stack)); 394 DEFINE(VCPU_HOST_STACK, offsetof(struct kvm_vcpu, arch.host_stack));
413 DEFINE(VCPU_HOST_PID, offsetof(struct kvm_vcpu, arch.host_pid)); 395 DEFINE(VCPU_HOST_PID, offsetof(struct kvm_vcpu, arch.host_pid));
414 DEFINE(VCPU_GPRS, offsetof(struct kvm_vcpu, arch.gpr)); 396 DEFINE(VCPU_GPRS, offsetof(struct kvm_vcpu, arch.gpr));
415 DEFINE(VCPU_LR, offsetof(struct kvm_vcpu, arch.lr));
416 DEFINE(VCPU_CTR, offsetof(struct kvm_vcpu, arch.ctr));
417 DEFINE(VCPU_PC, offsetof(struct kvm_vcpu, arch.pc));
418 DEFINE(VCPU_MSR, offsetof(struct kvm_vcpu, arch.msr)); 397 DEFINE(VCPU_MSR, offsetof(struct kvm_vcpu, arch.msr));
419 DEFINE(VCPU_SPRG4, offsetof(struct kvm_vcpu, arch.sprg4)); 398 DEFINE(VCPU_SPRG4, offsetof(struct kvm_vcpu, arch.sprg4));
420 DEFINE(VCPU_SPRG5, offsetof(struct kvm_vcpu, arch.sprg5)); 399 DEFINE(VCPU_SPRG5, offsetof(struct kvm_vcpu, arch.sprg5));
@@ -422,32 +401,81 @@ int main(void)
422 DEFINE(VCPU_SPRG7, offsetof(struct kvm_vcpu, arch.sprg7)); 401 DEFINE(VCPU_SPRG7, offsetof(struct kvm_vcpu, arch.sprg7));
423 DEFINE(VCPU_SHADOW_PID, offsetof(struct kvm_vcpu, arch.shadow_pid)); 402 DEFINE(VCPU_SHADOW_PID, offsetof(struct kvm_vcpu, arch.shadow_pid));
424 403
425 DEFINE(VCPU_LAST_INST, offsetof(struct kvm_vcpu, arch.last_inst)); 404 /* book3s */
426 DEFINE(VCPU_FAULT_DEAR, offsetof(struct kvm_vcpu, arch.fault_dear)); 405#ifdef CONFIG_PPC_BOOK3S
427 DEFINE(VCPU_FAULT_ESR, offsetof(struct kvm_vcpu, arch.fault_esr));
428
429 /* book3s_64 */
430#ifdef CONFIG_PPC64
431 DEFINE(VCPU_FAULT_DSISR, offsetof(struct kvm_vcpu, arch.fault_dsisr));
432 DEFINE(VCPU_HOST_RETIP, offsetof(struct kvm_vcpu, arch.host_retip)); 406 DEFINE(VCPU_HOST_RETIP, offsetof(struct kvm_vcpu, arch.host_retip));
433 DEFINE(VCPU_HOST_R2, offsetof(struct kvm_vcpu, arch.host_r2));
434 DEFINE(VCPU_HOST_MSR, offsetof(struct kvm_vcpu, arch.host_msr)); 407 DEFINE(VCPU_HOST_MSR, offsetof(struct kvm_vcpu, arch.host_msr));
435 DEFINE(VCPU_SHADOW_MSR, offsetof(struct kvm_vcpu, arch.shadow_msr)); 408 DEFINE(VCPU_SHADOW_MSR, offsetof(struct kvm_vcpu, arch.shadow_msr));
436 DEFINE(VCPU_SHADOW_SRR1, offsetof(struct kvm_vcpu, arch.shadow_srr1));
437 DEFINE(VCPU_TRAMPOLINE_LOWMEM, offsetof(struct kvm_vcpu, arch.trampoline_lowmem)); 409 DEFINE(VCPU_TRAMPOLINE_LOWMEM, offsetof(struct kvm_vcpu, arch.trampoline_lowmem));
438 DEFINE(VCPU_TRAMPOLINE_ENTER, offsetof(struct kvm_vcpu, arch.trampoline_enter)); 410 DEFINE(VCPU_TRAMPOLINE_ENTER, offsetof(struct kvm_vcpu, arch.trampoline_enter));
439 DEFINE(VCPU_HIGHMEM_HANDLER, offsetof(struct kvm_vcpu, arch.highmem_handler)); 411 DEFINE(VCPU_HIGHMEM_HANDLER, offsetof(struct kvm_vcpu, arch.highmem_handler));
440 DEFINE(VCPU_RMCALL, offsetof(struct kvm_vcpu, arch.rmcall)); 412 DEFINE(VCPU_RMCALL, offsetof(struct kvm_vcpu, arch.rmcall));
441 DEFINE(VCPU_HFLAGS, offsetof(struct kvm_vcpu, arch.hflags)); 413 DEFINE(VCPU_HFLAGS, offsetof(struct kvm_vcpu, arch.hflags));
414 DEFINE(VCPU_SVCPU, offsetof(struct kvmppc_vcpu_book3s, shadow_vcpu) -
415 offsetof(struct kvmppc_vcpu_book3s, vcpu));
416 DEFINE(SVCPU_CR, offsetof(struct kvmppc_book3s_shadow_vcpu, cr));
417 DEFINE(SVCPU_XER, offsetof(struct kvmppc_book3s_shadow_vcpu, xer));
418 DEFINE(SVCPU_CTR, offsetof(struct kvmppc_book3s_shadow_vcpu, ctr));
419 DEFINE(SVCPU_LR, offsetof(struct kvmppc_book3s_shadow_vcpu, lr));
420 DEFINE(SVCPU_PC, offsetof(struct kvmppc_book3s_shadow_vcpu, pc));
421 DEFINE(SVCPU_R0, offsetof(struct kvmppc_book3s_shadow_vcpu, gpr[0]));
422 DEFINE(SVCPU_R1, offsetof(struct kvmppc_book3s_shadow_vcpu, gpr[1]));
423 DEFINE(SVCPU_R2, offsetof(struct kvmppc_book3s_shadow_vcpu, gpr[2]));
424 DEFINE(SVCPU_R3, offsetof(struct kvmppc_book3s_shadow_vcpu, gpr[3]));
425 DEFINE(SVCPU_R4, offsetof(struct kvmppc_book3s_shadow_vcpu, gpr[4]));
426 DEFINE(SVCPU_R5, offsetof(struct kvmppc_book3s_shadow_vcpu, gpr[5]));
427 DEFINE(SVCPU_R6, offsetof(struct kvmppc_book3s_shadow_vcpu, gpr[6]));
428 DEFINE(SVCPU_R7, offsetof(struct kvmppc_book3s_shadow_vcpu, gpr[7]));
429 DEFINE(SVCPU_R8, offsetof(struct kvmppc_book3s_shadow_vcpu, gpr[8]));
430 DEFINE(SVCPU_R9, offsetof(struct kvmppc_book3s_shadow_vcpu, gpr[9]));
431 DEFINE(SVCPU_R10, offsetof(struct kvmppc_book3s_shadow_vcpu, gpr[10]));
432 DEFINE(SVCPU_R11, offsetof(struct kvmppc_book3s_shadow_vcpu, gpr[11]));
433 DEFINE(SVCPU_R12, offsetof(struct kvmppc_book3s_shadow_vcpu, gpr[12]));
434 DEFINE(SVCPU_R13, offsetof(struct kvmppc_book3s_shadow_vcpu, gpr[13]));
435 DEFINE(SVCPU_HOST_R1, offsetof(struct kvmppc_book3s_shadow_vcpu, host_r1));
436 DEFINE(SVCPU_HOST_R2, offsetof(struct kvmppc_book3s_shadow_vcpu, host_r2));
437 DEFINE(SVCPU_VMHANDLER, offsetof(struct kvmppc_book3s_shadow_vcpu,
438 vmhandler));
439 DEFINE(SVCPU_SCRATCH0, offsetof(struct kvmppc_book3s_shadow_vcpu,
440 scratch0));
441 DEFINE(SVCPU_SCRATCH1, offsetof(struct kvmppc_book3s_shadow_vcpu,
442 scratch1));
443 DEFINE(SVCPU_IN_GUEST, offsetof(struct kvmppc_book3s_shadow_vcpu,
444 in_guest));
445 DEFINE(SVCPU_FAULT_DSISR, offsetof(struct kvmppc_book3s_shadow_vcpu,
446 fault_dsisr));
447 DEFINE(SVCPU_FAULT_DAR, offsetof(struct kvmppc_book3s_shadow_vcpu,
448 fault_dar));
449 DEFINE(SVCPU_LAST_INST, offsetof(struct kvmppc_book3s_shadow_vcpu,
450 last_inst));
451 DEFINE(SVCPU_SHADOW_SRR1, offsetof(struct kvmppc_book3s_shadow_vcpu,
452 shadow_srr1));
453#ifdef CONFIG_PPC_BOOK3S_32
454 DEFINE(SVCPU_SR, offsetof(struct kvmppc_book3s_shadow_vcpu, sr));
455#endif
442#else 456#else
443 DEFINE(VCPU_CR, offsetof(struct kvm_vcpu, arch.cr)); 457 DEFINE(VCPU_CR, offsetof(struct kvm_vcpu, arch.cr));
444 DEFINE(VCPU_XER, offsetof(struct kvm_vcpu, arch.xer)); 458 DEFINE(VCPU_XER, offsetof(struct kvm_vcpu, arch.xer));
445#endif /* CONFIG_PPC64 */ 459 DEFINE(VCPU_LR, offsetof(struct kvm_vcpu, arch.lr));
460 DEFINE(VCPU_CTR, offsetof(struct kvm_vcpu, arch.ctr));
461 DEFINE(VCPU_PC, offsetof(struct kvm_vcpu, arch.pc));
462 DEFINE(VCPU_LAST_INST, offsetof(struct kvm_vcpu, arch.last_inst));
463 DEFINE(VCPU_FAULT_DEAR, offsetof(struct kvm_vcpu, arch.fault_dear));
464 DEFINE(VCPU_FAULT_ESR, offsetof(struct kvm_vcpu, arch.fault_esr));
465#endif /* CONFIG_PPC_BOOK3S */
446#endif 466#endif
447#ifdef CONFIG_44x 467#ifdef CONFIG_44x
448 DEFINE(PGD_T_LOG2, PGD_T_LOG2); 468 DEFINE(PGD_T_LOG2, PGD_T_LOG2);
449 DEFINE(PTE_T_LOG2, PTE_T_LOG2); 469 DEFINE(PTE_T_LOG2, PTE_T_LOG2);
450#endif 470#endif
471#ifdef CONFIG_FSL_BOOKE
472 DEFINE(TLBCAM_SIZE, sizeof(struct tlbcam));
473 DEFINE(TLBCAM_MAS0, offsetof(struct tlbcam, MAS0));
474 DEFINE(TLBCAM_MAS1, offsetof(struct tlbcam, MAS1));
475 DEFINE(TLBCAM_MAS2, offsetof(struct tlbcam, MAS2));
476 DEFINE(TLBCAM_MAS3, offsetof(struct tlbcam, MAS3));
477 DEFINE(TLBCAM_MAS7, offsetof(struct tlbcam, MAS7));
478#endif
451 479
452#ifdef CONFIG_KVM_EXIT_TIMING 480#ifdef CONFIG_KVM_EXIT_TIMING
453 DEFINE(VCPU_TIMING_EXIT_TBU, offsetof(struct kvm_vcpu, 481 DEFINE(VCPU_TIMING_EXIT_TBU, offsetof(struct kvm_vcpu,
diff --git a/arch/powerpc/kernel/btext.c b/arch/powerpc/kernel/btext.c
index 26e58630ed7b..625942ae5585 100644
--- a/arch/powerpc/kernel/btext.c
+++ b/arch/powerpc/kernel/btext.c
@@ -7,7 +7,7 @@
7#include <linux/string.h> 7#include <linux/string.h>
8#include <linux/init.h> 8#include <linux/init.h>
9#include <linux/module.h> 9#include <linux/module.h>
10#include <linux/lmb.h> 10#include <linux/memblock.h>
11 11
12#include <asm/sections.h> 12#include <asm/sections.h>
13#include <asm/prom.h> 13#include <asm/prom.h>
diff --git a/arch/powerpc/kernel/cacheinfo.c b/arch/powerpc/kernel/cacheinfo.c
index 01fe9ce28379..a3c684b4c862 100644
--- a/arch/powerpc/kernel/cacheinfo.c
+++ b/arch/powerpc/kernel/cacheinfo.c
@@ -19,6 +19,7 @@
19#include <linux/notifier.h> 19#include <linux/notifier.h>
20#include <linux/of.h> 20#include <linux/of.h>
21#include <linux/percpu.h> 21#include <linux/percpu.h>
22#include <linux/slab.h>
22#include <asm/prom.h> 23#include <asm/prom.h>
23 24
24#include "cacheinfo.h" 25#include "cacheinfo.h"
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
index 8af4949434b2..87aa0f3c6047 100644
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
@@ -1701,6 +1701,35 @@ static struct cpu_spec __initdata cpu_specs[] = {
1701 .machine_check = machine_check_440A, 1701 .machine_check = machine_check_440A,
1702 .platform = "ppc440", 1702 .platform = "ppc440",
1703 }, 1703 },
1704 { /* 476 core */
1705 .pvr_mask = 0xffff0000,
1706 .pvr_value = 0x11a50000,
1707 .cpu_name = "476",
1708 .cpu_features = CPU_FTRS_47X,
1709 .cpu_user_features = COMMON_USER_BOOKE |
1710 PPC_FEATURE_HAS_FPU,
1711 .mmu_features = MMU_FTR_TYPE_47x |
1712 MMU_FTR_USE_TLBIVAX_BCAST | MMU_FTR_LOCK_BCAST_INVAL,
1713 .icache_bsize = 32,
1714 .dcache_bsize = 128,
1715 .machine_check = machine_check_47x,
1716 .platform = "ppc470",
1717 },
1718 { /* 476 iss */
1719 .pvr_mask = 0xffff0000,
1720 .pvr_value = 0x00050000,
1721 .cpu_name = "476",
1722 .cpu_features = CPU_FTRS_47X,
1723 .cpu_user_features = COMMON_USER_BOOKE |
1724 PPC_FEATURE_HAS_FPU,
1725 .cpu_user_features = COMMON_USER_BOOKE,
1726 .mmu_features = MMU_FTR_TYPE_47x |
1727 MMU_FTR_USE_TLBIVAX_BCAST | MMU_FTR_LOCK_BCAST_INVAL,
1728 .icache_bsize = 32,
1729 .dcache_bsize = 128,
1730 .machine_check = machine_check_47x,
1731 .platform = "ppc470",
1732 },
1704 { /* default match */ 1733 { /* default match */
1705 .pvr_mask = 0x00000000, 1734 .pvr_mask = 0x00000000,
1706 .pvr_value = 0x00000000, 1735 .pvr_value = 0x00000000,
@@ -1811,7 +1840,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
1811 .oprofile_cpu_type = "ppc/e500mc", 1840 .oprofile_cpu_type = "ppc/e500mc",
1812 .oprofile_type = PPC_OPROFILE_FSL_EMB, 1841 .oprofile_type = PPC_OPROFILE_FSL_EMB,
1813 .cpu_setup = __setup_cpu_e500mc, 1842 .cpu_setup = __setup_cpu_e500mc,
1814 .machine_check = machine_check_e500, 1843 .machine_check = machine_check_e500mc,
1815 .platform = "ppce500mc", 1844 .platform = "ppce500mc",
1816 }, 1845 },
1817 { /* default match */ 1846 { /* default match */
diff --git a/arch/powerpc/kernel/crash.c b/arch/powerpc/kernel/crash.c
index 6f4613dd05ef..417f7b05a9ce 100644
--- a/arch/powerpc/kernel/crash.c
+++ b/arch/powerpc/kernel/crash.c
@@ -24,7 +24,7 @@
24#include <linux/init.h> 24#include <linux/init.h>
25#include <linux/irq.h> 25#include <linux/irq.h>
26#include <linux/types.h> 26#include <linux/types.h>
27#include <linux/lmb.h> 27#include <linux/memblock.h>
28 28
29#include <asm/processor.h> 29#include <asm/processor.h>
30#include <asm/machdep.h> 30#include <asm/machdep.h>
@@ -162,6 +162,34 @@ static void crash_kexec_prepare_cpus(int cpu)
162 /* Leave the IPI callback set */ 162 /* Leave the IPI callback set */
163} 163}
164 164
165/* wait for all the CPUs to hit real mode but timeout if they don't come in */
166#ifdef CONFIG_PPC_STD_MMU_64
167static void crash_kexec_wait_realmode(int cpu)
168{
169 unsigned int msecs;
170 int i;
171
172 msecs = 10000;
173 for (i=0; i < NR_CPUS && msecs > 0; i++) {
174 if (i == cpu)
175 continue;
176
177 while (paca[i].kexec_state < KEXEC_STATE_REAL_MODE) {
178 barrier();
179 if (!cpu_possible(i)) {
180 break;
181 }
182 if (!cpu_online(i)) {
183 break;
184 }
185 msecs--;
186 mdelay(1);
187 }
188 }
189 mb();
190}
191#endif
192
165/* 193/*
166 * This function will be called by secondary cpus or by kexec cpu 194 * This function will be called by secondary cpus or by kexec cpu
167 * if soft-reset is activated to stop some CPUs. 195 * if soft-reset is activated to stop some CPUs.
@@ -347,10 +375,12 @@ int crash_shutdown_unregister(crash_shutdown_t handler)
347EXPORT_SYMBOL(crash_shutdown_unregister); 375EXPORT_SYMBOL(crash_shutdown_unregister);
348 376
349static unsigned long crash_shutdown_buf[JMP_BUF_LEN]; 377static unsigned long crash_shutdown_buf[JMP_BUF_LEN];
378static int crash_shutdown_cpu = -1;
350 379
351static int handle_fault(struct pt_regs *regs) 380static int handle_fault(struct pt_regs *regs)
352{ 381{
353 longjmp(crash_shutdown_buf, 1); 382 if (crash_shutdown_cpu == smp_processor_id())
383 longjmp(crash_shutdown_buf, 1);
354 return 0; 384 return 0;
355} 385}
356 386
@@ -375,11 +405,14 @@ void default_machine_crash_shutdown(struct pt_regs *regs)
375 for_each_irq(i) { 405 for_each_irq(i) {
376 struct irq_desc *desc = irq_to_desc(i); 406 struct irq_desc *desc = irq_to_desc(i);
377 407
408 if (!desc || !desc->chip || !desc->chip->eoi)
409 continue;
410
378 if (desc->status & IRQ_INPROGRESS) 411 if (desc->status & IRQ_INPROGRESS)
379 desc->chip->eoi(i); 412 desc->chip->eoi(i);
380 413
381 if (!(desc->status & IRQ_DISABLED)) 414 if (!(desc->status & IRQ_DISABLED))
382 desc->chip->disable(i); 415 desc->chip->shutdown(i);
383 } 416 }
384 417
385 /* 418 /*
@@ -388,6 +421,7 @@ void default_machine_crash_shutdown(struct pt_regs *regs)
388 */ 421 */
389 old_handler = __debugger_fault_handler; 422 old_handler = __debugger_fault_handler;
390 __debugger_fault_handler = handle_fault; 423 __debugger_fault_handler = handle_fault;
424 crash_shutdown_cpu = smp_processor_id();
391 for (i = 0; crash_shutdown_handles[i]; i++) { 425 for (i = 0; crash_shutdown_handles[i]; i++) {
392 if (setjmp(crash_shutdown_buf) == 0) { 426 if (setjmp(crash_shutdown_buf) == 0) {
393 /* 427 /*
@@ -401,6 +435,7 @@ void default_machine_crash_shutdown(struct pt_regs *regs)
401 asm volatile("sync; isync"); 435 asm volatile("sync; isync");
402 } 436 }
403 } 437 }
438 crash_shutdown_cpu = -1;
404 __debugger_fault_handler = old_handler; 439 __debugger_fault_handler = old_handler;
405 440
406 /* 441 /*
@@ -412,6 +447,9 @@ void default_machine_crash_shutdown(struct pt_regs *regs)
412 crash_kexec_prepare_cpus(crashing_cpu); 447 crash_kexec_prepare_cpus(crashing_cpu);
413 cpu_set(crashing_cpu, cpus_in_crash); 448 cpu_set(crashing_cpu, cpus_in_crash);
414 crash_kexec_stop_spus(); 449 crash_kexec_stop_spus();
450#if defined(CONFIG_PPC_STD_MMU_64) && defined(CONFIG_SMP)
451 crash_kexec_wait_realmode(crashing_cpu);
452#endif
415 if (ppc_md.kexec_cpu_down) 453 if (ppc_md.kexec_cpu_down)
416 ppc_md.kexec_cpu_down(1, 0); 454 ppc_md.kexec_cpu_down(1, 0);
417} 455}
diff --git a/arch/powerpc/kernel/crash_dump.c b/arch/powerpc/kernel/crash_dump.c
index 5fb667a60894..40f524643ba6 100644
--- a/arch/powerpc/kernel/crash_dump.c
+++ b/arch/powerpc/kernel/crash_dump.c
@@ -13,7 +13,7 @@
13 13
14#include <linux/crash_dump.h> 14#include <linux/crash_dump.h>
15#include <linux/bootmem.h> 15#include <linux/bootmem.h>
16#include <linux/lmb.h> 16#include <linux/memblock.h>
17#include <asm/code-patching.h> 17#include <asm/code-patching.h>
18#include <asm/kdump.h> 18#include <asm/kdump.h>
19#include <asm/prom.h> 19#include <asm/prom.h>
@@ -33,7 +33,7 @@ unsigned long long elfcorehdr_addr = ELFCORE_ADDR_MAX;
33#ifndef CONFIG_RELOCATABLE 33#ifndef CONFIG_RELOCATABLE
34void __init reserve_kdump_trampoline(void) 34void __init reserve_kdump_trampoline(void)
35{ 35{
36 lmb_reserve(0, KDUMP_RESERVE_LIMIT); 36 memblock_reserve(0, KDUMP_RESERVE_LIMIT);
37} 37}
38 38
39static void __init create_trampoline(unsigned long addr) 39static void __init create_trampoline(unsigned long addr)
diff --git a/arch/powerpc/kernel/dma-swiotlb.c b/arch/powerpc/kernel/dma-swiotlb.c
index 59c928564a03..02f724f36753 100644
--- a/arch/powerpc/kernel/dma-swiotlb.c
+++ b/arch/powerpc/kernel/dma-swiotlb.c
@@ -1,7 +1,8 @@
1/* 1/*
2 * Contains routines needed to support swiotlb for ppc. 2 * Contains routines needed to support swiotlb for ppc.
3 * 3 *
4 * Copyright (C) 2009 Becky Bruce, Freescale Semiconductor 4 * Copyright (C) 2009-2010 Freescale Semiconductor, Inc.
5 * Author: Becky Bruce
5 * 6 *
6 * This program is free software; you can redistribute it and/or modify it 7 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the 8 * under the terms of the GNU General Public License as published by the
@@ -38,8 +39,8 @@ struct dma_map_ops swiotlb_dma_ops = {
38 .dma_supported = swiotlb_dma_supported, 39 .dma_supported = swiotlb_dma_supported,
39 .map_page = swiotlb_map_page, 40 .map_page = swiotlb_map_page,
40 .unmap_page = swiotlb_unmap_page, 41 .unmap_page = swiotlb_unmap_page,
41 .sync_single_range_for_cpu = swiotlb_sync_single_range_for_cpu, 42 .sync_single_for_cpu = swiotlb_sync_single_for_cpu,
42 .sync_single_range_for_device = swiotlb_sync_single_range_for_device, 43 .sync_single_for_device = swiotlb_sync_single_for_device,
43 .sync_sg_for_cpu = swiotlb_sync_sg_for_cpu, 44 .sync_sg_for_cpu = swiotlb_sync_sg_for_cpu,
44 .sync_sg_for_device = swiotlb_sync_sg_for_device, 45 .sync_sg_for_device = swiotlb_sync_sg_for_device,
45 .mapping_error = swiotlb_dma_mapping_error, 46 .mapping_error = swiotlb_dma_mapping_error,
@@ -70,7 +71,7 @@ static int ppc_swiotlb_bus_notify(struct notifier_block *nb,
70 sd->max_direct_dma_addr = 0; 71 sd->max_direct_dma_addr = 0;
71 72
72 /* May need to bounce if the device can't address all of DRAM */ 73 /* May need to bounce if the device can't address all of DRAM */
73 if (dma_get_mask(dev) < lmb_end_of_DRAM()) 74 if ((dma_get_mask(dev) + 1) < memblock_end_of_DRAM())
74 set_dma_ops(dev, &swiotlb_dma_ops); 75 set_dma_ops(dev, &swiotlb_dma_ops);
75 76
76 return NOTIFY_DONE; 77 return NOTIFY_DONE;
diff --git a/arch/powerpc/kernel/dma.c b/arch/powerpc/kernel/dma.c
index 6215062caf8c..84d6367ec003 100644
--- a/arch/powerpc/kernel/dma.c
+++ b/arch/powerpc/kernel/dma.c
@@ -8,7 +8,8 @@
8#include <linux/device.h> 8#include <linux/device.h>
9#include <linux/dma-mapping.h> 9#include <linux/dma-mapping.h>
10#include <linux/dma-debug.h> 10#include <linux/dma-debug.h>
11#include <linux/lmb.h> 11#include <linux/gfp.h>
12#include <linux/memblock.h>
12#include <asm/bug.h> 13#include <asm/bug.h>
13#include <asm/abs_addr.h> 14#include <asm/abs_addr.h>
14 15
@@ -88,7 +89,7 @@ static int dma_direct_dma_supported(struct device *dev, u64 mask)
88 /* Could be improved so platforms can set the limit in case 89 /* Could be improved so platforms can set the limit in case
89 * they have limited DMA windows 90 * they have limited DMA windows
90 */ 91 */
91 return mask >= (lmb_end_of_DRAM() - 1); 92 return mask >= (memblock_end_of_DRAM() - 1);
92#else 93#else
93 return 1; 94 return 1;
94#endif 95#endif
@@ -126,11 +127,11 @@ static inline void dma_direct_sync_sg(struct device *dev,
126 __dma_sync_page(sg_page(sg), sg->offset, sg->length, direction); 127 __dma_sync_page(sg_page(sg), sg->offset, sg->length, direction);
127} 128}
128 129
129static inline void dma_direct_sync_single_range(struct device *dev, 130static inline void dma_direct_sync_single(struct device *dev,
130 dma_addr_t dma_handle, unsigned long offset, size_t size, 131 dma_addr_t dma_handle, size_t size,
131 enum dma_data_direction direction) 132 enum dma_data_direction direction)
132{ 133{
133 __dma_sync(bus_to_virt(dma_handle+offset), size, direction); 134 __dma_sync(bus_to_virt(dma_handle), size, direction);
134} 135}
135#endif 136#endif
136 137
@@ -143,8 +144,8 @@ struct dma_map_ops dma_direct_ops = {
143 .map_page = dma_direct_map_page, 144 .map_page = dma_direct_map_page,
144 .unmap_page = dma_direct_unmap_page, 145 .unmap_page = dma_direct_unmap_page,
145#ifdef CONFIG_NOT_COHERENT_CACHE 146#ifdef CONFIG_NOT_COHERENT_CACHE
146 .sync_single_range_for_cpu = dma_direct_sync_single_range, 147 .sync_single_for_cpu = dma_direct_sync_single,
147 .sync_single_range_for_device = dma_direct_sync_single_range, 148 .sync_single_for_device = dma_direct_sync_single,
148 .sync_sg_for_cpu = dma_direct_sync_sg, 149 .sync_sg_for_cpu = dma_direct_sync_sg,
149 .sync_sg_for_device = dma_direct_sync_sg, 150 .sync_sg_for_device = dma_direct_sync_sg,
150#endif 151#endif
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S
index 1175a8539e6c..ed4aeb96398b 100644
--- a/arch/powerpc/kernel/entry_32.S
+++ b/arch/powerpc/kernel/entry_32.S
@@ -373,11 +373,13 @@ syscall_exit_cont:
373 bnel- load_dbcr0 373 bnel- load_dbcr0
374#endif 374#endif
375#ifdef CONFIG_44x 375#ifdef CONFIG_44x
376BEGIN_MMU_FTR_SECTION
376 lis r4,icache_44x_need_flush@ha 377 lis r4,icache_44x_need_flush@ha
377 lwz r5,icache_44x_need_flush@l(r4) 378 lwz r5,icache_44x_need_flush@l(r4)
378 cmplwi cr0,r5,0 379 cmplwi cr0,r5,0
379 bne- 2f 380 bne- 2f
3801: 3811:
382END_MMU_FTR_SECTION_IFCLR(MMU_FTR_TYPE_47x)
381#endif /* CONFIG_44x */ 383#endif /* CONFIG_44x */
382BEGIN_FTR_SECTION 384BEGIN_FTR_SECTION
383 lwarx r7,0,r1 385 lwarx r7,0,r1
@@ -848,6 +850,9 @@ resume_kernel:
848 /* interrupts are hard-disabled at this point */ 850 /* interrupts are hard-disabled at this point */
849restore: 851restore:
850#ifdef CONFIG_44x 852#ifdef CONFIG_44x
853BEGIN_MMU_FTR_SECTION
854 b 1f
855END_MMU_FTR_SECTION_IFSET(MMU_FTR_TYPE_47x)
851 lis r4,icache_44x_need_flush@ha 856 lis r4,icache_44x_need_flush@ha
852 lwz r5,icache_44x_need_flush@l(r4) 857 lwz r5,icache_44x_need_flush@l(r4)
853 cmplwi cr0,r5,0 858 cmplwi cr0,r5,0
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S
index 07109d843787..42e9d908914a 100644
--- a/arch/powerpc/kernel/entry_64.S
+++ b/arch/powerpc/kernel/entry_64.S
@@ -556,15 +556,6 @@ ALT_FW_FTR_SECTION_END_IFCLR(FW_FEATURE_ISERIES)
5562: 5562:
557 TRACE_AND_RESTORE_IRQ(r5); 557 TRACE_AND_RESTORE_IRQ(r5);
558 558
559#ifdef CONFIG_PERF_EVENTS
560 /* check paca->perf_event_pending if we're enabling ints */
561 lbz r3,PACAPERFPEND(r13)
562 and. r3,r3,r5
563 beq 27f
564 bl .perf_event_do_pending
56527:
566#endif /* CONFIG_PERF_EVENTS */
567
568 /* extract EE bit and use it to restore paca->hard_enabled */ 559 /* extract EE bit and use it to restore paca->hard_enabled */
569 ld r3,_MSR(r1) 560 ld r3,_MSR(r1)
570 rldicl r4,r3,49,63 /* r0 = (r3 >> 15) & 1 */ 561 rldicl r4,r3,49,63 /* r0 = (r3 >> 15) & 1 */
diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
index e3be98ffe2a7..3e423fbad6bc 100644
--- a/arch/powerpc/kernel/exceptions-64s.S
+++ b/arch/powerpc/kernel/exceptions-64s.S
@@ -735,8 +735,11 @@ _STATIC(do_hash_page)
735 std r3,_DAR(r1) 735 std r3,_DAR(r1)
736 std r4,_DSISR(r1) 736 std r4,_DSISR(r1)
737 737
738 andis. r0,r4,0xa450 /* weird error? */ 738 andis. r0,r4,0xa410 /* weird error? */
739 bne- handle_page_fault /* if not, try to insert a HPTE */ 739 bne- handle_page_fault /* if not, try to insert a HPTE */
740 andis. r0,r4,DSISR_DABRMATCH@h
741 bne- handle_dabr_fault
742
740BEGIN_FTR_SECTION 743BEGIN_FTR_SECTION
741 andis. r0,r4,0x0020 /* Is it a segment table fault? */ 744 andis. r0,r4,0x0020 /* Is it a segment table fault? */
742 bne- do_ste_alloc /* If so handle it */ 745 bne- do_ste_alloc /* If so handle it */
@@ -823,6 +826,14 @@ END_FW_FTR_SECTION_IFCLR(FW_FEATURE_ISERIES)
823 bl .raw_local_irq_restore 826 bl .raw_local_irq_restore
824 b 11f 827 b 11f
825 828
829/* We have a data breakpoint exception - handle it */
830handle_dabr_fault:
831 ld r4,_DAR(r1)
832 ld r5,_DSISR(r1)
833 addi r3,r1,STACK_FRAME_OVERHEAD
834 bl .do_dabr
835 b .ret_from_except_lite
836
826/* Here we have a page fault that hash_page can't handle. */ 837/* Here we have a page fault that hash_page can't handle. */
827handle_page_fault: 838handle_page_fault:
828 ENABLE_INTS 839 ENABLE_INTS
diff --git a/arch/powerpc/kernel/fsl_booke_entry_mapping.S b/arch/powerpc/kernel/fsl_booke_entry_mapping.S
new file mode 100644
index 000000000000..a92c79be2728
--- /dev/null
+++ b/arch/powerpc/kernel/fsl_booke_entry_mapping.S
@@ -0,0 +1,235 @@
1
2/* 1. Find the index of the entry we're executing in */
3 bl invstr /* Find our address */
4invstr: mflr r6 /* Make it accessible */
5 mfmsr r7
6 rlwinm r4,r7,27,31,31 /* extract MSR[IS] */
7 mfspr r7, SPRN_PID0
8 slwi r7,r7,16
9 or r7,r7,r4
10 mtspr SPRN_MAS6,r7
11 tlbsx 0,r6 /* search MSR[IS], SPID=PID0 */
12 mfspr r7,SPRN_MAS1
13 andis. r7,r7,MAS1_VALID@h
14 bne match_TLB
15
16 mfspr r7,SPRN_MMUCFG
17 rlwinm r7,r7,21,28,31 /* extract MMUCFG[NPIDS] */
18 cmpwi r7,3
19 bne match_TLB /* skip if NPIDS != 3 */
20
21 mfspr r7,SPRN_PID1
22 slwi r7,r7,16
23 or r7,r7,r4
24 mtspr SPRN_MAS6,r7
25 tlbsx 0,r6 /* search MSR[IS], SPID=PID1 */
26 mfspr r7,SPRN_MAS1
27 andis. r7,r7,MAS1_VALID@h
28 bne match_TLB
29 mfspr r7, SPRN_PID2
30 slwi r7,r7,16
31 or r7,r7,r4
32 mtspr SPRN_MAS6,r7
33 tlbsx 0,r6 /* Fall through, we had to match */
34
35match_TLB:
36 mfspr r7,SPRN_MAS0
37 rlwinm r3,r7,16,20,31 /* Extract MAS0(Entry) */
38
39 mfspr r7,SPRN_MAS1 /* Insure IPROT set */
40 oris r7,r7,MAS1_IPROT@h
41 mtspr SPRN_MAS1,r7
42 tlbwe
43
44/* 2. Invalidate all entries except the entry we're executing in */
45 mfspr r9,SPRN_TLB1CFG
46 andi. r9,r9,0xfff
47 li r6,0 /* Set Entry counter to 0 */
481: lis r7,0x1000 /* Set MAS0(TLBSEL) = 1 */
49 rlwimi r7,r6,16,4,15 /* Setup MAS0 = TLBSEL | ESEL(r6) */
50 mtspr SPRN_MAS0,r7
51 tlbre
52 mfspr r7,SPRN_MAS1
53 rlwinm r7,r7,0,2,31 /* Clear MAS1 Valid and IPROT */
54 cmpw r3,r6
55 beq skpinv /* Dont update the current execution TLB */
56 mtspr SPRN_MAS1,r7
57 tlbwe
58 isync
59skpinv: addi r6,r6,1 /* Increment */
60 cmpw r6,r9 /* Are we done? */
61 bne 1b /* If not, repeat */
62
63 /* Invalidate TLB0 */
64 li r6,0x04
65 tlbivax 0,r6
66 TLBSYNC
67 /* Invalidate TLB1 */
68 li r6,0x0c
69 tlbivax 0,r6
70 TLBSYNC
71
72/* 3. Setup a temp mapping and jump to it */
73 andi. r5, r3, 0x1 /* Find an entry not used and is non-zero */
74 addi r5, r5, 0x1
75 lis r7,0x1000 /* Set MAS0(TLBSEL) = 1 */
76 rlwimi r7,r3,16,4,15 /* Setup MAS0 = TLBSEL | ESEL(r3) */
77 mtspr SPRN_MAS0,r7
78 tlbre
79
80 /* grab and fixup the RPN */
81 mfspr r6,SPRN_MAS1 /* extract MAS1[SIZE] */
82 rlwinm r6,r6,25,27,31
83 li r8,-1
84 addi r6,r6,10
85 slw r6,r8,r6 /* convert to mask */
86
87 bl 1f /* Find our address */
881: mflr r7
89
90 mfspr r8,SPRN_MAS3
91#ifdef CONFIG_PHYS_64BIT
92 mfspr r23,SPRN_MAS7
93#endif
94 and r8,r6,r8
95 subfic r9,r6,-4096
96 and r9,r9,r7
97
98 or r25,r8,r9
99 ori r8,r25,(MAS3_SX|MAS3_SW|MAS3_SR)
100
101 /* Just modify the entry ID and EPN for the temp mapping */
102 lis r7,0x1000 /* Set MAS0(TLBSEL) = 1 */
103 rlwimi r7,r5,16,4,15 /* Setup MAS0 = TLBSEL | ESEL(r5) */
104 mtspr SPRN_MAS0,r7
105 xori r6,r4,1 /* Setup TMP mapping in the other Address space */
106 slwi r6,r6,12
107 oris r6,r6,(MAS1_VALID|MAS1_IPROT)@h
108 ori r6,r6,(MAS1_TSIZE(BOOK3E_PAGESZ_4K))@l
109 mtspr SPRN_MAS1,r6
110 mfspr r6,SPRN_MAS2
111 li r7,0 /* temp EPN = 0 */
112 rlwimi r7,r6,0,20,31
113 mtspr SPRN_MAS2,r7
114 mtspr SPRN_MAS3,r8
115 tlbwe
116
117 xori r6,r4,1
118 slwi r6,r6,5 /* setup new context with other address space */
119 bl 1f /* Find our address */
1201: mflr r9
121 rlwimi r7,r9,0,20,31
122 addi r7,r7,(2f - 1b)
123 mtspr SPRN_SRR0,r7
124 mtspr SPRN_SRR1,r6
125 rfi
1262:
127/* 4. Clear out PIDs & Search info */
128 li r6,0
129 mtspr SPRN_MAS6,r6
130 mtspr SPRN_PID0,r6
131
132 mfspr r7,SPRN_MMUCFG
133 rlwinm r7,r7,21,28,31 /* extract MMUCFG[NPIDS] */
134 cmpwi r7,3
135 bne 2f /* skip if NPIDS != 3 */
136
137 mtspr SPRN_PID1,r6
138 mtspr SPRN_PID2,r6
139
140/* 5. Invalidate mapping we started in */
1412:
142 lis r7,0x1000 /* Set MAS0(TLBSEL) = 1 */
143 rlwimi r7,r3,16,4,15 /* Setup MAS0 = TLBSEL | ESEL(r3) */
144 mtspr SPRN_MAS0,r7
145 tlbre
146 mfspr r6,SPRN_MAS1
147 rlwinm r6,r6,0,2,0 /* clear IPROT */
148 mtspr SPRN_MAS1,r6
149 tlbwe
150 /* Invalidate TLB1 */
151 li r9,0x0c
152 tlbivax 0,r9
153 TLBSYNC
154
155/* The mapping only needs to be cache-coherent on SMP */
156#ifdef CONFIG_SMP
157#define M_IF_SMP MAS2_M
158#else
159#define M_IF_SMP 0
160#endif
161
162#if defined(ENTRY_MAPPING_BOOT_SETUP)
163
164/* 6. Setup KERNELBASE mapping in TLB1[0] */
165 lis r6,0x1000 /* Set MAS0(TLBSEL) = TLB1(1), ESEL = 0 */
166 mtspr SPRN_MAS0,r6
167 lis r6,(MAS1_VALID|MAS1_IPROT)@h
168 ori r6,r6,(MAS1_TSIZE(BOOK3E_PAGESZ_64M))@l
169 mtspr SPRN_MAS1,r6
170 lis r6,MAS2_VAL(PAGE_OFFSET, BOOK3E_PAGESZ_64M, M_IF_SMP)@h
171 ori r6,r6,MAS2_VAL(PAGE_OFFSET, BOOK3E_PAGESZ_64M, M_IF_SMP)@l
172 mtspr SPRN_MAS2,r6
173 mtspr SPRN_MAS3,r8
174 tlbwe
175
176/* 7. Jump to KERNELBASE mapping */
177 lis r6,(KERNELBASE & ~0xfff)@h
178 ori r6,r6,(KERNELBASE & ~0xfff)@l
179
180#elif defined(ENTRY_MAPPING_KEXEC_SETUP)
181/*
182 * 6. Setup a 1:1 mapping in TLB1. Esel 0 is unsued, 1 or 2 contains the tmp
183 * mapping so we start at 3. We setup 8 mappings, each 256MiB in size. This
184 * will cover the first 2GiB of memory.
185 */
186
187 lis r10, (MAS1_VALID|MAS1_IPROT)@h
188 ori r10,r10, (MAS1_TSIZE(BOOK3E_PAGESZ_256M))@l
189 li r11, 0
190 li r0, 8
191 mtctr r0
192
193next_tlb_setup:
194 addi r0, r11, 3
195 rlwinm r0, r0, 16, 4, 15 // Compute esel
196 rlwinm r9, r11, 28, 0, 3 // Compute [ER]PN
197 oris r0, r0, (MAS0_TLBSEL(1))@h
198 mtspr SPRN_MAS0,r0
199 mtspr SPRN_MAS1,r10
200 mtspr SPRN_MAS2,r9
201 ori r9, r9, (MAS3_SX|MAS3_SW|MAS3_SR)
202 mtspr SPRN_MAS3,r9
203 tlbwe
204 addi r11, r11, 1
205 bdnz+ next_tlb_setup
206
207/* 7. Jump to our 1:1 mapping */
208 mr r6, r25
209#else
210 #error You need to specify the mapping or not use this at all.
211#endif
212
213 lis r7,MSR_KERNEL@h
214 ori r7,r7,MSR_KERNEL@l
215 bl 1f /* Find our address */
2161: mflr r9
217 rlwimi r6,r9,0,20,31
218 addi r6,r6,(2f - 1b)
219 mtspr SPRN_SRR0,r6
220 mtspr SPRN_SRR1,r7
221 rfi /* start execution out of TLB1[0] entry */
222
223/* 8. Clear out the temp mapping */
2242: lis r7,0x1000 /* Set MAS0(TLBSEL) = 1 */
225 rlwimi r7,r5,16,4,15 /* Setup MAS0 = TLBSEL | ESEL(r5) */
226 mtspr SPRN_MAS0,r7
227 tlbre
228 mfspr r8,SPRN_MAS1
229 rlwinm r8,r8,0,2,0 /* clear IPROT */
230 mtspr SPRN_MAS1,r8
231 tlbwe
232 /* Invalidate TLB1 */
233 li r9,0x0c
234 tlbivax 0,r9
235 TLBSYNC
diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S
index e025e89fe93e..98c4b29a56f4 100644
--- a/arch/powerpc/kernel/head_32.S
+++ b/arch/powerpc/kernel/head_32.S
@@ -33,6 +33,7 @@
33#include <asm/asm-offsets.h> 33#include <asm/asm-offsets.h>
34#include <asm/ptrace.h> 34#include <asm/ptrace.h>
35#include <asm/bug.h> 35#include <asm/bug.h>
36#include <asm/kvm_book3s_asm.h>
36 37
37/* 601 only have IBAT; cr0.eq is set on 601 when using this macro */ 38/* 601 only have IBAT; cr0.eq is set on 601 when using this macro */
38#define LOAD_BAT(n, reg, RA, RB) \ 39#define LOAD_BAT(n, reg, RA, RB) \
@@ -303,6 +304,7 @@ __secondary_hold_acknowledge:
303 */ 304 */
304#define EXCEPTION(n, label, hdlr, xfer) \ 305#define EXCEPTION(n, label, hdlr, xfer) \
305 . = n; \ 306 . = n; \
307 DO_KVM n; \
306label: \ 308label: \
307 EXCEPTION_PROLOG; \ 309 EXCEPTION_PROLOG; \
308 addi r3,r1,STACK_FRAME_OVERHEAD; \ 310 addi r3,r1,STACK_FRAME_OVERHEAD; \
@@ -358,6 +360,7 @@ i##n: \
358 * -- paulus. 360 * -- paulus.
359 */ 361 */
360 . = 0x200 362 . = 0x200
363 DO_KVM 0x200
361 mtspr SPRN_SPRG_SCRATCH0,r10 364 mtspr SPRN_SPRG_SCRATCH0,r10
362 mtspr SPRN_SPRG_SCRATCH1,r11 365 mtspr SPRN_SPRG_SCRATCH1,r11
363 mfcr r10 366 mfcr r10
@@ -381,6 +384,7 @@ i##n: \
381 384
382/* Data access exception. */ 385/* Data access exception. */
383 . = 0x300 386 . = 0x300
387 DO_KVM 0x300
384DataAccess: 388DataAccess:
385 EXCEPTION_PROLOG 389 EXCEPTION_PROLOG
386 mfspr r10,SPRN_DSISR 390 mfspr r10,SPRN_DSISR
@@ -397,6 +401,7 @@ DataAccess:
397 401
398/* Instruction access exception. */ 402/* Instruction access exception. */
399 . = 0x400 403 . = 0x400
404 DO_KVM 0x400
400InstructionAccess: 405InstructionAccess:
401 EXCEPTION_PROLOG 406 EXCEPTION_PROLOG
402 andis. r0,r9,0x4000 /* no pte found? */ 407 andis. r0,r9,0x4000 /* no pte found? */
@@ -413,6 +418,7 @@ InstructionAccess:
413 418
414/* Alignment exception */ 419/* Alignment exception */
415 . = 0x600 420 . = 0x600
421 DO_KVM 0x600
416Alignment: 422Alignment:
417 EXCEPTION_PROLOG 423 EXCEPTION_PROLOG
418 mfspr r4,SPRN_DAR 424 mfspr r4,SPRN_DAR
@@ -427,6 +433,7 @@ Alignment:
427 433
428/* Floating-point unavailable */ 434/* Floating-point unavailable */
429 . = 0x800 435 . = 0x800
436 DO_KVM 0x800
430FPUnavailable: 437FPUnavailable:
431BEGIN_FTR_SECTION 438BEGIN_FTR_SECTION
432/* 439/*
@@ -450,6 +457,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_FPU_UNAVAILABLE)
450 457
451/* System call */ 458/* System call */
452 . = 0xc00 459 . = 0xc00
460 DO_KVM 0xc00
453SystemCall: 461SystemCall:
454 EXCEPTION_PROLOG 462 EXCEPTION_PROLOG
455 EXC_XFER_EE_LITE(0xc00, DoSyscall) 463 EXC_XFER_EE_LITE(0xc00, DoSyscall)
@@ -467,9 +475,11 @@ SystemCall:
467 * by executing an altivec instruction. 475 * by executing an altivec instruction.
468 */ 476 */
469 . = 0xf00 477 . = 0xf00
478 DO_KVM 0xf00
470 b PerformanceMonitor 479 b PerformanceMonitor
471 480
472 . = 0xf20 481 . = 0xf20
482 DO_KVM 0xf20
473 b AltiVecUnavailable 483 b AltiVecUnavailable
474 484
475/* 485/*
@@ -882,6 +892,10 @@ __secondary_start:
882 RFI 892 RFI
883#endif /* CONFIG_SMP */ 893#endif /* CONFIG_SMP */
884 894
895#ifdef CONFIG_KVM_BOOK3S_HANDLER
896#include "../kvm/book3s_rmhandlers.S"
897#endif
898
885/* 899/*
886 * Those generic dummy functions are kept for CPUs not 900 * Those generic dummy functions are kept for CPUs not
887 * included in CONFIG_6xx 901 * included in CONFIG_6xx
diff --git a/arch/powerpc/kernel/head_44x.S b/arch/powerpc/kernel/head_44x.S
index 711368b993f2..5ab484ef06a7 100644
--- a/arch/powerpc/kernel/head_44x.S
+++ b/arch/powerpc/kernel/head_44x.S
@@ -37,6 +37,7 @@
37#include <asm/thread_info.h> 37#include <asm/thread_info.h>
38#include <asm/ppc_asm.h> 38#include <asm/ppc_asm.h>
39#include <asm/asm-offsets.h> 39#include <asm/asm-offsets.h>
40#include <asm/synch.h>
40#include "head_booke.h" 41#include "head_booke.h"
41 42
42 43
@@ -69,165 +70,7 @@ _ENTRY(_start);
69 mr r27,r7 70 mr r27,r7
70 li r24,0 /* CPU number */ 71 li r24,0 /* CPU number */
71 72
72/* 73 bl init_cpu_state
73 * In case the firmware didn't do it, we apply some workarounds
74 * that are good for all 440 core variants here
75 */
76 mfspr r3,SPRN_CCR0
77 rlwinm r3,r3,0,0,27 /* disable icache prefetch */
78 isync
79 mtspr SPRN_CCR0,r3
80 isync
81 sync
82
83/*
84 * Set up the initial MMU state
85 *
86 * We are still executing code at the virtual address
87 * mappings set by the firmware for the base of RAM.
88 *
89 * We first invalidate all TLB entries but the one
90 * we are running from. We then load the KERNELBASE
91 * mappings so we can begin to use kernel addresses
92 * natively and so the interrupt vector locations are
93 * permanently pinned (necessary since Book E
94 * implementations always have translation enabled).
95 *
96 * TODO: Use the known TLB entry we are running from to
97 * determine which physical region we are located
98 * in. This can be used to determine where in RAM
99 * (on a shared CPU system) or PCI memory space
100 * (on a DRAMless system) we are located.
101 * For now, we assume a perfect world which means
102 * we are located at the base of DRAM (physical 0).
103 */
104
105/*
106 * Search TLB for entry that we are currently using.
107 * Invalidate all entries but the one we are using.
108 */
109 /* Load our current PID->MMUCR TID and MSR IS->MMUCR STS */
110 mfspr r3,SPRN_PID /* Get PID */
111 mfmsr r4 /* Get MSR */
112 andi. r4,r4,MSR_IS@l /* TS=1? */
113 beq wmmucr /* If not, leave STS=0 */
114 oris r3,r3,PPC44x_MMUCR_STS@h /* Set STS=1 */
115wmmucr: mtspr SPRN_MMUCR,r3 /* Put MMUCR */
116 sync
117
118 bl invstr /* Find our address */
119invstr: mflr r5 /* Make it accessible */
120 tlbsx r23,0,r5 /* Find entry we are in */
121 li r4,0 /* Start at TLB entry 0 */
122 li r3,0 /* Set PAGEID inval value */
1231: cmpw r23,r4 /* Is this our entry? */
124 beq skpinv /* If so, skip the inval */
125 tlbwe r3,r4,PPC44x_TLB_PAGEID /* If not, inval the entry */
126skpinv: addi r4,r4,1 /* Increment */
127 cmpwi r4,64 /* Are we done? */
128 bne 1b /* If not, repeat */
129 isync /* If so, context change */
130
131/*
132 * Configure and load pinned entry into TLB slot 63.
133 */
134
135 lis r3,PAGE_OFFSET@h
136 ori r3,r3,PAGE_OFFSET@l
137
138 /* Kernel is at the base of RAM */
139 li r4, 0 /* Load the kernel physical address */
140
141 /* Load the kernel PID = 0 */
142 li r0,0
143 mtspr SPRN_PID,r0
144 sync
145
146 /* Initialize MMUCR */
147 li r5,0
148 mtspr SPRN_MMUCR,r5
149 sync
150
151 /* pageid fields */
152 clrrwi r3,r3,10 /* Mask off the effective page number */
153 ori r3,r3,PPC44x_TLB_VALID | PPC44x_TLB_256M
154
155 /* xlat fields */
156 clrrwi r4,r4,10 /* Mask off the real page number */
157 /* ERPN is 0 for first 4GB page */
158
159 /* attrib fields */
160 /* Added guarded bit to protect against speculative loads/stores */
161 li r5,0
162 ori r5,r5,(PPC44x_TLB_SW | PPC44x_TLB_SR | PPC44x_TLB_SX | PPC44x_TLB_G)
163
164 li r0,63 /* TLB slot 63 */
165
166 tlbwe r3,r0,PPC44x_TLB_PAGEID /* Load the pageid fields */
167 tlbwe r4,r0,PPC44x_TLB_XLAT /* Load the translation fields */
168 tlbwe r5,r0,PPC44x_TLB_ATTRIB /* Load the attrib/access fields */
169
170 /* Force context change */
171 mfmsr r0
172 mtspr SPRN_SRR1, r0
173 lis r0,3f@h
174 ori r0,r0,3f@l
175 mtspr SPRN_SRR0,r0
176 sync
177 rfi
178
179 /* If necessary, invalidate original entry we used */
1803: cmpwi r23,63
181 beq 4f
182 li r6,0
183 tlbwe r6,r23,PPC44x_TLB_PAGEID
184 isync
185
1864:
187#ifdef CONFIG_PPC_EARLY_DEBUG_44x
188 /* Add UART mapping for early debug. */
189
190 /* pageid fields */
191 lis r3,PPC44x_EARLY_DEBUG_VIRTADDR@h
192 ori r3,r3,PPC44x_TLB_VALID|PPC44x_TLB_TS|PPC44x_TLB_64K
193
194 /* xlat fields */
195 lis r4,CONFIG_PPC_EARLY_DEBUG_44x_PHYSLOW@h
196 ori r4,r4,CONFIG_PPC_EARLY_DEBUG_44x_PHYSHIGH
197
198 /* attrib fields */
199 li r5,(PPC44x_TLB_SW|PPC44x_TLB_SR|PPC44x_TLB_I|PPC44x_TLB_G)
200 li r0,62 /* TLB slot 0 */
201
202 tlbwe r3,r0,PPC44x_TLB_PAGEID
203 tlbwe r4,r0,PPC44x_TLB_XLAT
204 tlbwe r5,r0,PPC44x_TLB_ATTRIB
205
206 /* Force context change */
207 isync
208#endif /* CONFIG_PPC_EARLY_DEBUG_44x */
209
210 /* Establish the interrupt vector offsets */
211 SET_IVOR(0, CriticalInput);
212 SET_IVOR(1, MachineCheck);
213 SET_IVOR(2, DataStorage);
214 SET_IVOR(3, InstructionStorage);
215 SET_IVOR(4, ExternalInput);
216 SET_IVOR(5, Alignment);
217 SET_IVOR(6, Program);
218 SET_IVOR(7, FloatingPointUnavailable);
219 SET_IVOR(8, SystemCall);
220 SET_IVOR(9, AuxillaryProcessorUnavailable);
221 SET_IVOR(10, Decrementer);
222 SET_IVOR(11, FixedIntervalTimer);
223 SET_IVOR(12, WatchdogTimer);
224 SET_IVOR(13, DataTLBError);
225 SET_IVOR(14, InstructionTLBError);
226 SET_IVOR(15, DebugCrit);
227
228 /* Establish the interrupt vector base */
229 lis r4,interrupt_base@h /* IVPR only uses the high 16-bits */
230 mtspr SPRN_IVPR,r4
231 74
232 /* 75 /*
233 * This is where the main kernel code starts. 76 * This is where the main kernel code starts.
@@ -349,7 +192,7 @@ interrupt_base:
349#endif 192#endif
350 193
351 /* Data TLB Error Interrupt */ 194 /* Data TLB Error Interrupt */
352 START_EXCEPTION(DataTLBError) 195 START_EXCEPTION(DataTLBError44x)
353 mtspr SPRN_SPRG_WSCRATCH0, r10 /* Save some working registers */ 196 mtspr SPRN_SPRG_WSCRATCH0, r10 /* Save some working registers */
354 mtspr SPRN_SPRG_WSCRATCH1, r11 197 mtspr SPRN_SPRG_WSCRATCH1, r11
355 mtspr SPRN_SPRG_WSCRATCH2, r12 198 mtspr SPRN_SPRG_WSCRATCH2, r12
@@ -440,7 +283,7 @@ tlb_44x_patch_hwater_D:
440 mfspr r10,SPRN_DEAR 283 mfspr r10,SPRN_DEAR
441 284
442 /* Jump to common tlb load */ 285 /* Jump to common tlb load */
443 b finish_tlb_load 286 b finish_tlb_load_44x
444 287
4452: 2882:
446 /* The bailout. Restore registers to pre-exception conditions 289 /* The bailout. Restore registers to pre-exception conditions
@@ -460,7 +303,7 @@ tlb_44x_patch_hwater_D:
460 * information from different registers and bailout 303 * information from different registers and bailout
461 * to a different point. 304 * to a different point.
462 */ 305 */
463 START_EXCEPTION(InstructionTLBError) 306 START_EXCEPTION(InstructionTLBError44x)
464 mtspr SPRN_SPRG_WSCRATCH0, r10 /* Save some working registers */ 307 mtspr SPRN_SPRG_WSCRATCH0, r10 /* Save some working registers */
465 mtspr SPRN_SPRG_WSCRATCH1, r11 308 mtspr SPRN_SPRG_WSCRATCH1, r11
466 mtspr SPRN_SPRG_WSCRATCH2, r12 309 mtspr SPRN_SPRG_WSCRATCH2, r12
@@ -536,7 +379,7 @@ tlb_44x_patch_hwater_I:
536 mfspr r10,SPRN_SRR0 379 mfspr r10,SPRN_SRR0
537 380
538 /* Jump to common TLB load point */ 381 /* Jump to common TLB load point */
539 b finish_tlb_load 382 b finish_tlb_load_44x
540 383
5412: 3842:
542 /* The bailout. Restore registers to pre-exception conditions 385 /* The bailout. Restore registers to pre-exception conditions
@@ -550,15 +393,7 @@ tlb_44x_patch_hwater_I:
550 mfspr r10, SPRN_SPRG_RSCRATCH0 393 mfspr r10, SPRN_SPRG_RSCRATCH0
551 b InstructionStorage 394 b InstructionStorage
552 395
553 /* Debug Interrupt */
554 DEBUG_CRIT_EXCEPTION
555
556/*
557 * Local functions
558 */
559
560/* 396/*
561
562 * Both the instruction and data TLB miss get to this 397 * Both the instruction and data TLB miss get to this
563 * point to load the TLB. 398 * point to load the TLB.
564 * r10 - EA of fault 399 * r10 - EA of fault
@@ -568,7 +403,7 @@ tlb_44x_patch_hwater_I:
568 * MMUCR - loaded with proper value when we get here 403 * MMUCR - loaded with proper value when we get here
569 * Upon exit, we reload everything and RFI. 404 * Upon exit, we reload everything and RFI.
570 */ 405 */
571finish_tlb_load: 406finish_tlb_load_44x:
572 /* Combine RPN & ERPN an write WS 0 */ 407 /* Combine RPN & ERPN an write WS 0 */
573 rlwimi r11,r12,0,0,31-PAGE_SHIFT 408 rlwimi r11,r12,0,0,31-PAGE_SHIFT
574 tlbwe r11,r13,PPC44x_TLB_XLAT 409 tlbwe r11,r13,PPC44x_TLB_XLAT
@@ -601,6 +436,227 @@ finish_tlb_load:
601 mfspr r10, SPRN_SPRG_RSCRATCH0 436 mfspr r10, SPRN_SPRG_RSCRATCH0
602 rfi /* Force context change */ 437 rfi /* Force context change */
603 438
439/* TLB error interrupts for 476
440 */
441#ifdef CONFIG_PPC_47x
442 START_EXCEPTION(DataTLBError47x)
443 mtspr SPRN_SPRG_WSCRATCH0,r10 /* Save some working registers */
444 mtspr SPRN_SPRG_WSCRATCH1,r11
445 mtspr SPRN_SPRG_WSCRATCH2,r12
446 mtspr SPRN_SPRG_WSCRATCH3,r13
447 mfcr r11
448 mtspr SPRN_SPRG_WSCRATCH4,r11
449 mfspr r10,SPRN_DEAR /* Get faulting address */
450
451 /* If we are faulting a kernel address, we have to use the
452 * kernel page tables.
453 */
454 lis r11,PAGE_OFFSET@h
455 cmplw cr0,r10,r11
456 blt+ 3f
457 lis r11,swapper_pg_dir@h
458 ori r11,r11, swapper_pg_dir@l
459 li r12,0 /* MMUCR = 0 */
460 b 4f
461
462 /* Get the PGD for the current thread and setup MMUCR */
4633: mfspr r11,SPRN_SPRG3
464 lwz r11,PGDIR(r11)
465 mfspr r12,SPRN_PID /* Get PID */
4664: mtspr SPRN_MMUCR,r12 /* Set MMUCR */
467
468 /* Mask of required permission bits. Note that while we
469 * do copy ESR:ST to _PAGE_RW position as trying to write
470 * to an RO page is pretty common, we don't do it with
471 * _PAGE_DIRTY. We could do it, but it's a fairly rare
472 * event so I'd rather take the overhead when it happens
473 * rather than adding an instruction here. We should measure
474 * whether the whole thing is worth it in the first place
475 * as we could avoid loading SPRN_ESR completely in the first
476 * place...
477 *
478 * TODO: Is it worth doing that mfspr & rlwimi in the first
479 * place or can we save a couple of instructions here ?
480 */
481 mfspr r12,SPRN_ESR
482 li r13,_PAGE_PRESENT|_PAGE_ACCESSED
483 rlwimi r13,r12,10,30,30
484
485 /* Load the PTE */
486 /* Compute pgdir/pmd offset */
487 rlwinm r12,r10,PPC44x_PGD_OFF_SHIFT,PPC44x_PGD_OFF_MASK_BIT,29
488 lwzx r11,r12,r11 /* Get pgd/pmd entry */
489
490 /* Word 0 is EPN,V,TS,DSIZ */
491 li r12,PPC47x_TLB0_VALID | PPC47x_TLBE_SIZE
492 rlwimi r10,r12,0,32-PAGE_SHIFT,31 /* Insert valid and page size*/
493 li r12,0
494 tlbwe r10,r12,0
495
496 /* XXX can we do better ? Need to make sure tlbwe has established
497 * latch V bit in MMUCR0 before the PTE is loaded further down */
498#ifdef CONFIG_SMP
499 isync
500#endif
501
502 rlwinm. r12,r11,0,0,20 /* Extract pt base address */
503 /* Compute pte address */
504 rlwimi r12,r10,PPC44x_PTE_ADD_SHIFT,PPC44x_PTE_ADD_MASK_BIT,28
505 beq 2f /* Bail if no table */
506 lwz r11,0(r12) /* Get high word of pte entry */
507
508 /* XXX can we do better ? maybe insert a known 0 bit from r11 into the
509 * bottom of r12 to create a data dependency... We can also use r10
510 * as destination nowadays
511 */
512#ifdef CONFIG_SMP
513 lwsync
514#endif
515 lwz r12,4(r12) /* Get low word of pte entry */
516
517 andc. r13,r13,r12 /* Check permission */
518
519 /* Jump to common tlb load */
520 beq finish_tlb_load_47x
521
5222: /* The bailout. Restore registers to pre-exception conditions
523 * and call the heavyweights to help us out.
524 */
525 mfspr r11,SPRN_SPRG_RSCRATCH4
526 mtcr r11
527 mfspr r13,SPRN_SPRG_RSCRATCH3
528 mfspr r12,SPRN_SPRG_RSCRATCH2
529 mfspr r11,SPRN_SPRG_RSCRATCH1
530 mfspr r10,SPRN_SPRG_RSCRATCH0
531 b DataStorage
532
533 /* Instruction TLB Error Interrupt */
534 /*
535 * Nearly the same as above, except we get our
536 * information from different registers and bailout
537 * to a different point.
538 */
539 START_EXCEPTION(InstructionTLBError47x)
540 mtspr SPRN_SPRG_WSCRATCH0,r10 /* Save some working registers */
541 mtspr SPRN_SPRG_WSCRATCH1,r11
542 mtspr SPRN_SPRG_WSCRATCH2,r12
543 mtspr SPRN_SPRG_WSCRATCH3,r13
544 mfcr r11
545 mtspr SPRN_SPRG_WSCRATCH4,r11
546 mfspr r10,SPRN_SRR0 /* Get faulting address */
547
548 /* If we are faulting a kernel address, we have to use the
549 * kernel page tables.
550 */
551 lis r11,PAGE_OFFSET@h
552 cmplw cr0,r10,r11
553 blt+ 3f
554 lis r11,swapper_pg_dir@h
555 ori r11,r11, swapper_pg_dir@l
556 li r12,0 /* MMUCR = 0 */
557 b 4f
558
559 /* Get the PGD for the current thread and setup MMUCR */
5603: mfspr r11,SPRN_SPRG_THREAD
561 lwz r11,PGDIR(r11)
562 mfspr r12,SPRN_PID /* Get PID */
5634: mtspr SPRN_MMUCR,r12 /* Set MMUCR */
564
565 /* Make up the required permissions */
566 li r13,_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_EXEC
567
568 /* Load PTE */
569 /* Compute pgdir/pmd offset */
570 rlwinm r12,r10,PPC44x_PGD_OFF_SHIFT,PPC44x_PGD_OFF_MASK_BIT,29
571 lwzx r11,r12,r11 /* Get pgd/pmd entry */
572
573 /* Word 0 is EPN,V,TS,DSIZ */
574 li r12,PPC47x_TLB0_VALID | PPC47x_TLBE_SIZE
575 rlwimi r10,r12,0,32-PAGE_SHIFT,31 /* Insert valid and page size*/
576 li r12,0
577 tlbwe r10,r12,0
578
579 /* XXX can we do better ? Need to make sure tlbwe has established
580 * latch V bit in MMUCR0 before the PTE is loaded further down */
581#ifdef CONFIG_SMP
582 isync
583#endif
584
585 rlwinm. r12,r11,0,0,20 /* Extract pt base address */
586 /* Compute pte address */
587 rlwimi r12,r10,PPC44x_PTE_ADD_SHIFT,PPC44x_PTE_ADD_MASK_BIT,28
588 beq 2f /* Bail if no table */
589
590 lwz r11,0(r12) /* Get high word of pte entry */
591 /* XXX can we do better ? maybe insert a known 0 bit from r11 into the
592 * bottom of r12 to create a data dependency... We can also use r10
593 * as destination nowadays
594 */
595#ifdef CONFIG_SMP
596 lwsync
597#endif
598 lwz r12,4(r12) /* Get low word of pte entry */
599
600 andc. r13,r13,r12 /* Check permission */
601
602 /* Jump to common TLB load point */
603 beq finish_tlb_load_47x
604
6052: /* The bailout. Restore registers to pre-exception conditions
606 * and call the heavyweights to help us out.
607 */
608 mfspr r11, SPRN_SPRG_RSCRATCH4
609 mtcr r11
610 mfspr r13, SPRN_SPRG_RSCRATCH3
611 mfspr r12, SPRN_SPRG_RSCRATCH2
612 mfspr r11, SPRN_SPRG_RSCRATCH1
613 mfspr r10, SPRN_SPRG_RSCRATCH0
614 b InstructionStorage
615
616/*
617 * Both the instruction and data TLB miss get to this
618 * point to load the TLB.
619 * r10 - free to use
620 * r11 - PTE high word value
621 * r12 - PTE low word value
622 * r13 - free to use
623 * MMUCR - loaded with proper value when we get here
624 * Upon exit, we reload everything and RFI.
625 */
626finish_tlb_load_47x:
627 /* Combine RPN & ERPN an write WS 1 */
628 rlwimi r11,r12,0,0,31-PAGE_SHIFT
629 tlbwe r11,r13,1
630
631 /* And make up word 2 */
632 li r10,0xf85 /* Mask to apply from PTE */
633 rlwimi r10,r12,29,30,30 /* DIRTY -> SW position */
634 and r11,r12,r10 /* Mask PTE bits to keep */
635 andi. r10,r12,_PAGE_USER /* User page ? */
636 beq 1f /* nope, leave U bits empty */
637 rlwimi r11,r11,3,26,28 /* yes, copy S bits to U */
6381: tlbwe r11,r13,2
639
640 /* Done...restore registers and get out of here.
641 */
642 mfspr r11, SPRN_SPRG_RSCRATCH4
643 mtcr r11
644 mfspr r13, SPRN_SPRG_RSCRATCH3
645 mfspr r12, SPRN_SPRG_RSCRATCH2
646 mfspr r11, SPRN_SPRG_RSCRATCH1
647 mfspr r10, SPRN_SPRG_RSCRATCH0
648 rfi
649
650#endif /* CONFIG_PPC_47x */
651
652 /* Debug Interrupt */
653 /*
654 * This statement needs to exist at the end of the IVPR
655 * definition just in case you end up taking a debug
656 * exception within another exception.
657 */
658 DEBUG_CRIT_EXCEPTION
659
604/* 660/*
605 * Global functions 661 * Global functions
606 */ 662 */
@@ -647,6 +703,428 @@ _GLOBAL(set_context)
647 blr 703 blr
648 704
649/* 705/*
706 * Init CPU state. This is called at boot time or for secondary CPUs
707 * to setup initial TLB entries, setup IVORs, etc...
708 *
709 */
710_GLOBAL(init_cpu_state)
711 mflr r22
712#ifdef CONFIG_PPC_47x
713 /* We use the PVR to differenciate 44x cores from 476 */
714 mfspr r3,SPRN_PVR
715 srwi r3,r3,16
716 cmplwi cr0,r3,PVR_476@h
717 beq head_start_47x
718 cmplwi cr0,r3,PVR_476_ISS@h
719 beq head_start_47x
720#endif /* CONFIG_PPC_47x */
721
722/*
723 * In case the firmware didn't do it, we apply some workarounds
724 * that are good for all 440 core variants here
725 */
726 mfspr r3,SPRN_CCR0
727 rlwinm r3,r3,0,0,27 /* disable icache prefetch */
728 isync
729 mtspr SPRN_CCR0,r3
730 isync
731 sync
732
733/*
734 * Set up the initial MMU state for 44x
735 *
736 * We are still executing code at the virtual address
737 * mappings set by the firmware for the base of RAM.
738 *
739 * We first invalidate all TLB entries but the one
740 * we are running from. We then load the KERNELBASE
741 * mappings so we can begin to use kernel addresses
742 * natively and so the interrupt vector locations are
743 * permanently pinned (necessary since Book E
744 * implementations always have translation enabled).
745 *
746 * TODO: Use the known TLB entry we are running from to
747 * determine which physical region we are located
748 * in. This can be used to determine where in RAM
749 * (on a shared CPU system) or PCI memory space
750 * (on a DRAMless system) we are located.
751 * For now, we assume a perfect world which means
752 * we are located at the base of DRAM (physical 0).
753 */
754
755/*
756 * Search TLB for entry that we are currently using.
757 * Invalidate all entries but the one we are using.
758 */
759 /* Load our current PID->MMUCR TID and MSR IS->MMUCR STS */
760 mfspr r3,SPRN_PID /* Get PID */
761 mfmsr r4 /* Get MSR */
762 andi. r4,r4,MSR_IS@l /* TS=1? */
763 beq wmmucr /* If not, leave STS=0 */
764 oris r3,r3,PPC44x_MMUCR_STS@h /* Set STS=1 */
765wmmucr: mtspr SPRN_MMUCR,r3 /* Put MMUCR */
766 sync
767
768 bl invstr /* Find our address */
769invstr: mflr r5 /* Make it accessible */
770 tlbsx r23,0,r5 /* Find entry we are in */
771 li r4,0 /* Start at TLB entry 0 */
772 li r3,0 /* Set PAGEID inval value */
7731: cmpw r23,r4 /* Is this our entry? */
774 beq skpinv /* If so, skip the inval */
775 tlbwe r3,r4,PPC44x_TLB_PAGEID /* If not, inval the entry */
776skpinv: addi r4,r4,1 /* Increment */
777 cmpwi r4,64 /* Are we done? */
778 bne 1b /* If not, repeat */
779 isync /* If so, context change */
780
781/*
782 * Configure and load pinned entry into TLB slot 63.
783 */
784
785 lis r3,PAGE_OFFSET@h
786 ori r3,r3,PAGE_OFFSET@l
787
788 /* Kernel is at the base of RAM */
789 li r4, 0 /* Load the kernel physical address */
790
791 /* Load the kernel PID = 0 */
792 li r0,0
793 mtspr SPRN_PID,r0
794 sync
795
796 /* Initialize MMUCR */
797 li r5,0
798 mtspr SPRN_MMUCR,r5
799 sync
800
801 /* pageid fields */
802 clrrwi r3,r3,10 /* Mask off the effective page number */
803 ori r3,r3,PPC44x_TLB_VALID | PPC44x_TLB_256M
804
805 /* xlat fields */
806 clrrwi r4,r4,10 /* Mask off the real page number */
807 /* ERPN is 0 for first 4GB page */
808
809 /* attrib fields */
810 /* Added guarded bit to protect against speculative loads/stores */
811 li r5,0
812 ori r5,r5,(PPC44x_TLB_SW | PPC44x_TLB_SR | PPC44x_TLB_SX | PPC44x_TLB_G)
813
814 li r0,63 /* TLB slot 63 */
815
816 tlbwe r3,r0,PPC44x_TLB_PAGEID /* Load the pageid fields */
817 tlbwe r4,r0,PPC44x_TLB_XLAT /* Load the translation fields */
818 tlbwe r5,r0,PPC44x_TLB_ATTRIB /* Load the attrib/access fields */
819
820 /* Force context change */
821 mfmsr r0
822 mtspr SPRN_SRR1, r0
823 lis r0,3f@h
824 ori r0,r0,3f@l
825 mtspr SPRN_SRR0,r0
826 sync
827 rfi
828
829 /* If necessary, invalidate original entry we used */
8303: cmpwi r23,63
831 beq 4f
832 li r6,0
833 tlbwe r6,r23,PPC44x_TLB_PAGEID
834 isync
835
8364:
837#ifdef CONFIG_PPC_EARLY_DEBUG_44x
838 /* Add UART mapping for early debug. */
839
840 /* pageid fields */
841 lis r3,PPC44x_EARLY_DEBUG_VIRTADDR@h
842 ori r3,r3,PPC44x_TLB_VALID|PPC44x_TLB_TS|PPC44x_TLB_64K
843
844 /* xlat fields */
845 lis r4,CONFIG_PPC_EARLY_DEBUG_44x_PHYSLOW@h
846 ori r4,r4,CONFIG_PPC_EARLY_DEBUG_44x_PHYSHIGH
847
848 /* attrib fields */
849 li r5,(PPC44x_TLB_SW|PPC44x_TLB_SR|PPC44x_TLB_I|PPC44x_TLB_G)
850 li r0,62 /* TLB slot 0 */
851
852 tlbwe r3,r0,PPC44x_TLB_PAGEID
853 tlbwe r4,r0,PPC44x_TLB_XLAT
854 tlbwe r5,r0,PPC44x_TLB_ATTRIB
855
856 /* Force context change */
857 isync
858#endif /* CONFIG_PPC_EARLY_DEBUG_44x */
859
860 /* Establish the interrupt vector offsets */
861 SET_IVOR(0, CriticalInput);
862 SET_IVOR(1, MachineCheck);
863 SET_IVOR(2, DataStorage);
864 SET_IVOR(3, InstructionStorage);
865 SET_IVOR(4, ExternalInput);
866 SET_IVOR(5, Alignment);
867 SET_IVOR(6, Program);
868 SET_IVOR(7, FloatingPointUnavailable);
869 SET_IVOR(8, SystemCall);
870 SET_IVOR(9, AuxillaryProcessorUnavailable);
871 SET_IVOR(10, Decrementer);
872 SET_IVOR(11, FixedIntervalTimer);
873 SET_IVOR(12, WatchdogTimer);
874 SET_IVOR(13, DataTLBError44x);
875 SET_IVOR(14, InstructionTLBError44x);
876 SET_IVOR(15, DebugCrit);
877
878 b head_start_common
879
880
881#ifdef CONFIG_PPC_47x
882
883#ifdef CONFIG_SMP
884
885/* Entry point for secondary 47x processors */
886_GLOBAL(start_secondary_47x)
887 mr r24,r3 /* CPU number */
888
889 bl init_cpu_state
890
891 /* Now we need to bolt the rest of kernel memory which
892 * is done in C code. We must be careful because our task
893 * struct or our stack can (and will probably) be out
894 * of reach of the initial 256M TLB entry, so we use a
895 * small temporary stack in .bss for that. This works
896 * because only one CPU at a time can be in this code
897 */
898 lis r1,temp_boot_stack@h
899 ori r1,r1,temp_boot_stack@l
900 addi r1,r1,1024-STACK_FRAME_OVERHEAD
901 li r0,0
902 stw r0,0(r1)
903 bl mmu_init_secondary
904
905 /* Now we can get our task struct and real stack pointer */
906
907 /* Get current_thread_info and current */
908 lis r1,secondary_ti@ha
909 lwz r1,secondary_ti@l(r1)
910 lwz r2,TI_TASK(r1)
911
912 /* Current stack pointer */
913 addi r1,r1,THREAD_SIZE-STACK_FRAME_OVERHEAD
914 li r0,0
915 stw r0,0(r1)
916
917 /* Kernel stack for exception entry in SPRG3 */
918 addi r4,r2,THREAD /* init task's THREAD */
919 mtspr SPRN_SPRG3,r4
920
921 b start_secondary
922
923#endif /* CONFIG_SMP */
924
925/*
926 * Set up the initial MMU state for 44x
927 *
928 * We are still executing code at the virtual address
929 * mappings set by the firmware for the base of RAM.
930 */
931
932head_start_47x:
933 /* Load our current PID->MMUCR TID and MSR IS->MMUCR STS */
934 mfspr r3,SPRN_PID /* Get PID */
935 mfmsr r4 /* Get MSR */
936 andi. r4,r4,MSR_IS@l /* TS=1? */
937 beq 1f /* If not, leave STS=0 */
938 oris r3,r3,PPC47x_MMUCR_STS@h /* Set STS=1 */
9391: mtspr SPRN_MMUCR,r3 /* Put MMUCR */
940 sync
941
942 /* Find the entry we are running from */
943 bl 1f
9441: mflr r23
945 tlbsx r23,0,r23
946 tlbre r24,r23,0
947 tlbre r25,r23,1
948 tlbre r26,r23,2
949
950/*
951 * Cleanup time
952 */
953
954 /* Initialize MMUCR */
955 li r5,0
956 mtspr SPRN_MMUCR,r5
957 sync
958
959clear_all_utlb_entries:
960
961 #; Set initial values.
962
963 addis r3,0,0x8000
964 addi r4,0,0
965 addi r5,0,0
966 b clear_utlb_entry
967
968 #; Align the loop to speed things up.
969
970 .align 6
971
972clear_utlb_entry:
973
974 tlbwe r4,r3,0
975 tlbwe r5,r3,1
976 tlbwe r5,r3,2
977 addis r3,r3,0x2000
978 cmpwi r3,0
979 bne clear_utlb_entry
980 addis r3,0,0x8000
981 addis r4,r4,0x100
982 cmpwi r4,0
983 bne clear_utlb_entry
984
985 #; Restore original entry.
986
987 oris r23,r23,0x8000 /* specify the way */
988 tlbwe r24,r23,0
989 tlbwe r25,r23,1
990 tlbwe r26,r23,2
991
992/*
993 * Configure and load pinned entry into TLB for the kernel core
994 */
995
996 lis r3,PAGE_OFFSET@h
997 ori r3,r3,PAGE_OFFSET@l
998
999 /* Kernel is at the base of RAM */
1000 li r4, 0 /* Load the kernel physical address */
1001
1002 /* Load the kernel PID = 0 */
1003 li r0,0
1004 mtspr SPRN_PID,r0
1005 sync
1006
1007 /* Word 0 */
1008 clrrwi r3,r3,12 /* Mask off the effective page number */
1009 ori r3,r3,PPC47x_TLB0_VALID | PPC47x_TLB0_256M
1010
1011 /* Word 1 */
1012 clrrwi r4,r4,12 /* Mask off the real page number */
1013 /* ERPN is 0 for first 4GB page */
1014 /* Word 2 */
1015 li r5,0
1016 ori r5,r5,PPC47x_TLB2_S_RWX
1017#ifdef CONFIG_SMP
1018 ori r5,r5,PPC47x_TLB2_M
1019#endif
1020
1021 /* We write to way 0 and bolted 0 */
1022 lis r0,0x8800
1023 tlbwe r3,r0,0
1024 tlbwe r4,r0,1
1025 tlbwe r5,r0,2
1026
1027/*
1028 * Configure SSPCR, ISPCR and USPCR for now to search everything, we can fix
1029 * them up later
1030 */
1031 LOAD_REG_IMMEDIATE(r3, 0x9abcdef0)
1032 mtspr SPRN_SSPCR,r3
1033 mtspr SPRN_USPCR,r3
1034 LOAD_REG_IMMEDIATE(r3, 0x12345670)
1035 mtspr SPRN_ISPCR,r3
1036
1037 /* Force context change */
1038 mfmsr r0
1039 mtspr SPRN_SRR1, r0
1040 lis r0,3f@h
1041 ori r0,r0,3f@l
1042 mtspr SPRN_SRR0,r0
1043 sync
1044 rfi
1045
1046 /* Invalidate original entry we used */
10473:
1048 rlwinm r24,r24,0,21,19 /* clear the "valid" bit */
1049 tlbwe r24,r23,0
1050 addi r24,0,0
1051 tlbwe r24,r23,1
1052 tlbwe r24,r23,2
1053 isync /* Clear out the shadow TLB entries */
1054
1055#ifdef CONFIG_PPC_EARLY_DEBUG_44x
1056 /* Add UART mapping for early debug. */
1057
1058 /* Word 0 */
1059 lis r3,PPC44x_EARLY_DEBUG_VIRTADDR@h
1060 ori r3,r3,PPC47x_TLB0_VALID | PPC47x_TLB0_TS | PPC47x_TLB0_1M
1061
1062 /* Word 1 */
1063 lis r4,CONFIG_PPC_EARLY_DEBUG_44x_PHYSLOW@h
1064 ori r4,r4,CONFIG_PPC_EARLY_DEBUG_44x_PHYSHIGH
1065
1066 /* Word 2 */
1067 li r5,(PPC47x_TLB2_S_RW | PPC47x_TLB2_IMG)
1068
1069 /* Bolted in way 0, bolt slot 5, we -hope- we don't hit the same
1070 * congruence class as the kernel, we need to make sure of it at
1071 * some point
1072 */
1073 lis r0,0x8d00
1074 tlbwe r3,r0,0
1075 tlbwe r4,r0,1
1076 tlbwe r5,r0,2
1077
1078 /* Force context change */
1079 isync
1080#endif /* CONFIG_PPC_EARLY_DEBUG_44x */
1081
1082 /* Establish the interrupt vector offsets */
1083 SET_IVOR(0, CriticalInput);
1084 SET_IVOR(1, MachineCheckA);
1085 SET_IVOR(2, DataStorage);
1086 SET_IVOR(3, InstructionStorage);
1087 SET_IVOR(4, ExternalInput);
1088 SET_IVOR(5, Alignment);
1089 SET_IVOR(6, Program);
1090 SET_IVOR(7, FloatingPointUnavailable);
1091 SET_IVOR(8, SystemCall);
1092 SET_IVOR(9, AuxillaryProcessorUnavailable);
1093 SET_IVOR(10, Decrementer);
1094 SET_IVOR(11, FixedIntervalTimer);
1095 SET_IVOR(12, WatchdogTimer);
1096 SET_IVOR(13, DataTLBError47x);
1097 SET_IVOR(14, InstructionTLBError47x);
1098 SET_IVOR(15, DebugCrit);
1099
1100 /* We configure icbi to invalidate 128 bytes at a time since the
1101 * current 32-bit kernel code isn't too happy with icache != dcache
1102 * block size
1103 */
1104 mfspr r3,SPRN_CCR0
1105 oris r3,r3,0x0020
1106 mtspr SPRN_CCR0,r3
1107 isync
1108
1109#endif /* CONFIG_PPC_47x */
1110
1111/*
1112 * Here we are back to code that is common between 44x and 47x
1113 *
1114 * We proceed to further kernel initialization and return to the
1115 * main kernel entry
1116 */
1117head_start_common:
1118 /* Establish the interrupt vector base */
1119 lis r4,interrupt_base@h /* IVPR only uses the high 16-bits */
1120 mtspr SPRN_IVPR,r4
1121
1122 addis r22,r22,KERNELBASE@h
1123 mtlr r22
1124 isync
1125 blr
1126
1127/*
650 * We put a few things here that have to be page-aligned. This stuff 1128 * We put a few things here that have to be page-aligned. This stuff
651 * goes at the beginning of the data segment, which is page-aligned. 1129 * goes at the beginning of the data segment, which is page-aligned.
652 */ 1130 */
@@ -671,3 +1149,9 @@ swapper_pg_dir:
671 */ 1149 */
672abatron_pteptrs: 1150abatron_pteptrs:
673 .space 8 1151 .space 8
1152
1153#ifdef CONFIG_SMP
1154 .align 12
1155temp_boot_stack:
1156 .space 1024
1157#endif /* CONFIG_SMP */
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S
index bed9a29ee383..844a44b64472 100644
--- a/arch/powerpc/kernel/head_64.S
+++ b/arch/powerpc/kernel/head_64.S
@@ -37,7 +37,7 @@
37#include <asm/firmware.h> 37#include <asm/firmware.h>
38#include <asm/page_64.h> 38#include <asm/page_64.h>
39#include <asm/irqflags.h> 39#include <asm/irqflags.h>
40#include <asm/kvm_book3s_64_asm.h> 40#include <asm/kvm_book3s_asm.h>
41 41
42/* The physical memory is layed out such that the secondary processor 42/* The physical memory is layed out such that the secondary processor
43 * spin code sits at 0x0000...0x00ff. On server, the vectors follow 43 * spin code sits at 0x0000...0x00ff. On server, the vectors follow
@@ -169,7 +169,7 @@ exception_marker:
169/* KVM trampoline code needs to be close to the interrupt handlers */ 169/* KVM trampoline code needs to be close to the interrupt handlers */
170 170
171#ifdef CONFIG_KVM_BOOK3S_64_HANDLER 171#ifdef CONFIG_KVM_BOOK3S_64_HANDLER
172#include "../kvm/book3s_64_rmhandlers.S" 172#include "../kvm/book3s_rmhandlers.S"
173#endif 173#endif
174 174
175_GLOBAL(generic_secondary_thread_init) 175_GLOBAL(generic_secondary_thread_init)
diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S
index 3ef743fa5d7c..1f1a04b5c2a4 100644
--- a/arch/powerpc/kernel/head_8xx.S
+++ b/arch/powerpc/kernel/head_8xx.S
@@ -71,9 +71,6 @@ _ENTRY(_start);
71 * in the first level table, but that would require many changes to the 71 * in the first level table, but that would require many changes to the
72 * Linux page directory/table functions that I don't want to do right now. 72 * Linux page directory/table functions that I don't want to do right now.
73 * 73 *
74 * I used to use SPRG2 for a temporary register in the TLB handler, but it
75 * has since been put to other uses. I now use a hack to save a register
76 * and the CCR at memory location 0.....Someday I'll fix this.....
77 * -- Dan 74 * -- Dan
78 */ 75 */
79 .globl __start 76 .globl __start
@@ -302,8 +299,13 @@ InstructionTLBMiss:
302 DO_8xx_CPU6(0x3f80, r3) 299 DO_8xx_CPU6(0x3f80, r3)
303 mtspr SPRN_M_TW, r10 /* Save a couple of working registers */ 300 mtspr SPRN_M_TW, r10 /* Save a couple of working registers */
304 mfcr r10 301 mfcr r10
302#ifdef CONFIG_8xx_CPU6
305 stw r10, 0(r0) 303 stw r10, 0(r0)
306 stw r11, 4(r0) 304 stw r11, 4(r0)
305#else
306 mtspr SPRN_DAR, r10
307 mtspr SPRN_SPRG2, r11
308#endif
307 mfspr r10, SPRN_SRR0 /* Get effective address of fault */ 309 mfspr r10, SPRN_SRR0 /* Get effective address of fault */
308#ifdef CONFIG_8xx_CPU15 310#ifdef CONFIG_8xx_CPU15
309 addi r11, r10, 0x1000 311 addi r11, r10, 0x1000
@@ -318,12 +320,16 @@ InstructionTLBMiss:
318 /* If we are faulting a kernel address, we have to use the 320 /* If we are faulting a kernel address, we have to use the
319 * kernel page tables. 321 * kernel page tables.
320 */ 322 */
323#ifdef CONFIG_MODULES
324 /* Only modules will cause ITLB Misses as we always
325 * pin the first 8MB of kernel memory */
321 andi. r11, r10, 0x0800 /* Address >= 0x80000000 */ 326 andi. r11, r10, 0x0800 /* Address >= 0x80000000 */
322 beq 3f 327 beq 3f
323 lis r11, swapper_pg_dir@h 328 lis r11, swapper_pg_dir@h
324 ori r11, r11, swapper_pg_dir@l 329 ori r11, r11, swapper_pg_dir@l
325 rlwimi r10, r11, 0, 2, 19 330 rlwimi r10, r11, 0, 2, 19
3263: 3313:
332#endif
327 lwz r11, 0(r10) /* Get the level 1 entry */ 333 lwz r11, 0(r10) /* Get the level 1 entry */
328 rlwinm. r10, r11,0,0,19 /* Extract page descriptor page address */ 334 rlwinm. r10, r11,0,0,19 /* Extract page descriptor page address */
329 beq 2f /* If zero, don't try to find a pte */ 335 beq 2f /* If zero, don't try to find a pte */
@@ -339,31 +345,35 @@ InstructionTLBMiss:
339 mfspr r11, SPRN_MD_TWC /* ....and get the pte address */ 345 mfspr r11, SPRN_MD_TWC /* ....and get the pte address */
340 lwz r10, 0(r11) /* Get the pte */ 346 lwz r10, 0(r11) /* Get the pte */
341 347
348#ifdef CONFIG_SWAP
342 andi. r11, r10, _PAGE_ACCESSED | _PAGE_PRESENT 349 andi. r11, r10, _PAGE_ACCESSED | _PAGE_PRESENT
343 cmpwi cr0, r11, _PAGE_ACCESSED | _PAGE_PRESENT 350 cmpwi cr0, r11, _PAGE_ACCESSED | _PAGE_PRESENT
344 bne- cr0, 2f 351 bne- cr0, 2f
345 352#endif
346 /* Clear PP lsb, 0x400 */
347 rlwinm r10, r10, 0, 22, 20
348
349 /* The Linux PTE won't go exactly into the MMU TLB. 353 /* The Linux PTE won't go exactly into the MMU TLB.
350 * Software indicator bits 22 and 28 must be clear. 354 * Software indicator bits 21 and 28 must be clear.
351 * Software indicator bits 24, 25, 26, and 27 must be 355 * Software indicator bits 24, 25, 26, and 27 must be
352 * set. All other Linux PTE bits control the behavior 356 * set. All other Linux PTE bits control the behavior
353 * of the MMU. 357 * of the MMU.
354 */ 358 */
355 li r11, 0x00f0 359 li r11, 0x00f0
356 rlwimi r10, r11, 0, 24, 28 /* Set 24-27, clear 28 */ 360 rlwimi r10, r11, 0, 0x07f8 /* Set 24-27, clear 21-23,28 */
357 DO_8xx_CPU6(0x2d80, r3) 361 DO_8xx_CPU6(0x2d80, r3)
358 mtspr SPRN_MI_RPN, r10 /* Update TLB entry */ 362 mtspr SPRN_MI_RPN, r10 /* Update TLB entry */
359 363
360 mfspr r10, SPRN_M_TW /* Restore registers */ 364 /* Restore registers */
365#ifndef CONFIG_8xx_CPU6
366 mfspr r10, SPRN_DAR
367 mtcr r10
368 mtspr SPRN_DAR, r11 /* Tag DAR */
369 mfspr r11, SPRN_SPRG2
370#else
361 lwz r11, 0(r0) 371 lwz r11, 0(r0)
362 mtcr r11 372 mtcr r11
363 lwz r11, 4(r0) 373 lwz r11, 4(r0)
364#ifdef CONFIG_8xx_CPU6
365 lwz r3, 8(r0) 374 lwz r3, 8(r0)
366#endif 375#endif
376 mfspr r10, SPRN_M_TW
367 rfi 377 rfi
3682: 3782:
369 mfspr r11, SPRN_SRR1 379 mfspr r11, SPRN_SRR1
@@ -373,13 +383,20 @@ InstructionTLBMiss:
373 rlwinm r11, r11, 0, 0xffff 383 rlwinm r11, r11, 0, 0xffff
374 mtspr SPRN_SRR1, r11 384 mtspr SPRN_SRR1, r11
375 385
376 mfspr r10, SPRN_M_TW /* Restore registers */ 386 /* Restore registers */
387#ifndef CONFIG_8xx_CPU6
388 mfspr r10, SPRN_DAR
389 mtcr r10
390 li r11, 0x00f0
391 mtspr SPRN_DAR, r11 /* Tag DAR */
392 mfspr r11, SPRN_SPRG2
393#else
377 lwz r11, 0(r0) 394 lwz r11, 0(r0)
378 mtcr r11 395 mtcr r11
379 lwz r11, 4(r0) 396 lwz r11, 4(r0)
380#ifdef CONFIG_8xx_CPU6
381 lwz r3, 8(r0) 397 lwz r3, 8(r0)
382#endif 398#endif
399 mfspr r10, SPRN_M_TW
383 b InstructionAccess 400 b InstructionAccess
384 401
385 . = 0x1200 402 . = 0x1200
@@ -390,8 +407,13 @@ DataStoreTLBMiss:
390 DO_8xx_CPU6(0x3f80, r3) 407 DO_8xx_CPU6(0x3f80, r3)
391 mtspr SPRN_M_TW, r10 /* Save a couple of working registers */ 408 mtspr SPRN_M_TW, r10 /* Save a couple of working registers */
392 mfcr r10 409 mfcr r10
410#ifdef CONFIG_8xx_CPU6
393 stw r10, 0(r0) 411 stw r10, 0(r0)
394 stw r11, 4(r0) 412 stw r11, 4(r0)
413#else
414 mtspr SPRN_DAR, r10
415 mtspr SPRN_SPRG2, r11
416#endif
395 mfspr r10, SPRN_M_TWB /* Get level 1 table entry address */ 417 mfspr r10, SPRN_M_TWB /* Get level 1 table entry address */
396 418
397 /* If we are faulting a kernel address, we have to use the 419 /* If we are faulting a kernel address, we have to use the
@@ -438,15 +460,14 @@ DataStoreTLBMiss:
438 * r11 = ((r10 & PRESENT) & ((r10 & ACCESSED) >> 5)); 460 * r11 = ((r10 & PRESENT) & ((r10 & ACCESSED) >> 5));
439 * r10 = (r10 & ~PRESENT) | r11; 461 * r10 = (r10 & ~PRESENT) | r11;
440 */ 462 */
463#ifdef CONFIG_SWAP
441 rlwinm r11, r10, 32-5, _PAGE_PRESENT 464 rlwinm r11, r10, 32-5, _PAGE_PRESENT
442 and r11, r11, r10 465 and r11, r11, r10
443 rlwimi r10, r11, 0, _PAGE_PRESENT 466 rlwimi r10, r11, 0, _PAGE_PRESENT
444 467#endif
445 /* Honour kernel RO, User NA */ 468 /* Honour kernel RO, User NA */
446 /* 0x200 == Extended encoding, bit 22 */ 469 /* 0x200 == Extended encoding, bit 22 */
447 /* r11 = (r10 & _PAGE_USER) >> 2 */ 470 rlwimi r10, r10, 32-2, 0x200 /* Copy USER to bit 22, 0x200 */
448 rlwinm r11, r10, 32-2, 0x200
449 or r10, r11, r10
450 /* r11 = (r10 & _PAGE_RW) >> 1 */ 471 /* r11 = (r10 & _PAGE_RW) >> 1 */
451 rlwinm r11, r10, 32-1, 0x200 472 rlwinm r11, r10, 32-1, 0x200
452 or r10, r11, r10 473 or r10, r11, r10
@@ -460,18 +481,24 @@ DataStoreTLBMiss:
460 * of the MMU. 481 * of the MMU.
461 */ 482 */
4622: li r11, 0x00f0 4832: li r11, 0x00f0
463 mtspr SPRN_DAR,r11 /* Tag DAR */
464 rlwimi r10, r11, 0, 24, 28 /* Set 24-27, clear 28 */ 484 rlwimi r10, r11, 0, 24, 28 /* Set 24-27, clear 28 */
465 DO_8xx_CPU6(0x3d80, r3) 485 DO_8xx_CPU6(0x3d80, r3)
466 mtspr SPRN_MD_RPN, r10 /* Update TLB entry */ 486 mtspr SPRN_MD_RPN, r10 /* Update TLB entry */
467 487
468 mfspr r10, SPRN_M_TW /* Restore registers */ 488 /* Restore registers */
489#ifndef CONFIG_8xx_CPU6
490 mfspr r10, SPRN_DAR
491 mtcr r10
492 mtspr SPRN_DAR, r11 /* Tag DAR */
493 mfspr r11, SPRN_SPRG2
494#else
495 mtspr SPRN_DAR, r11 /* Tag DAR */
469 lwz r11, 0(r0) 496 lwz r11, 0(r0)
470 mtcr r11 497 mtcr r11
471 lwz r11, 4(r0) 498 lwz r11, 4(r0)
472#ifdef CONFIG_8xx_CPU6
473 lwz r3, 8(r0) 499 lwz r3, 8(r0)
474#endif 500#endif
501 mfspr r10, SPRN_M_TW
475 rfi 502 rfi
476 503
477/* This is an instruction TLB error on the MPC8xx. This could be due 504/* This is an instruction TLB error on the MPC8xx. This could be due
@@ -683,9 +710,6 @@ start_here:
683 tophys(r4,r2) 710 tophys(r4,r2)
684 addi r4,r4,THREAD /* init task's THREAD */ 711 addi r4,r4,THREAD /* init task's THREAD */
685 mtspr SPRN_SPRG_THREAD,r4 712 mtspr SPRN_SPRG_THREAD,r4
686 li r3,0
687 /* XXX What is that for ? SPRG2 appears otherwise unused on 8xx */
688 mtspr SPRN_SPRG2,r3 /* 0 => r1 has kernel sp */
689 713
690 /* stack */ 714 /* stack */
691 lis r1,init_thread_union@ha 715 lis r1,init_thread_union@ha
diff --git a/arch/powerpc/kernel/head_booke.h b/arch/powerpc/kernel/head_booke.h
index 50504ae39cb7..a0bf158c8b47 100644
--- a/arch/powerpc/kernel/head_booke.h
+++ b/arch/powerpc/kernel/head_booke.h
@@ -1,6 +1,7 @@
1#ifndef __HEAD_BOOKE_H__ 1#ifndef __HEAD_BOOKE_H__
2#define __HEAD_BOOKE_H__ 2#define __HEAD_BOOKE_H__
3 3
4#include <asm/ptrace.h> /* for STACK_FRAME_REGS_MARKER */
4/* 5/*
5 * Macros used for common Book-e exception handling 6 * Macros used for common Book-e exception handling
6 */ 7 */
@@ -48,6 +49,9 @@
48 stw r10,0(r11); \ 49 stw r10,0(r11); \
49 rlwinm r9,r9,0,14,12; /* clear MSR_WE (necessary?) */\ 50 rlwinm r9,r9,0,14,12; /* clear MSR_WE (necessary?) */\
50 stw r0,GPR0(r11); \ 51 stw r0,GPR0(r11); \
52 lis r10, STACK_FRAME_REGS_MARKER@ha;/* exception frame marker */ \
53 addi r10, r10, STACK_FRAME_REGS_MARKER@l; \
54 stw r10, 8(r11); \
51 SAVE_4GPRS(3, r11); \ 55 SAVE_4GPRS(3, r11); \
52 SAVE_2GPRS(7, r11) 56 SAVE_2GPRS(7, r11)
53 57
diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S
index 25793bb0e782..4faeba247854 100644
--- a/arch/powerpc/kernel/head_fsl_booke.S
+++ b/arch/powerpc/kernel/head_fsl_booke.S
@@ -94,204 +94,10 @@ _ENTRY(_start);
94 */ 94 */
95 95
96_ENTRY(__early_start) 96_ENTRY(__early_start)
97/* 1. Find the index of the entry we're executing in */
98 bl invstr /* Find our address */
99invstr: mflr r6 /* Make it accessible */
100 mfmsr r7
101 rlwinm r4,r7,27,31,31 /* extract MSR[IS] */
102 mfspr r7, SPRN_PID0
103 slwi r7,r7,16
104 or r7,r7,r4
105 mtspr SPRN_MAS6,r7
106 tlbsx 0,r6 /* search MSR[IS], SPID=PID0 */
107 mfspr r7,SPRN_MAS1
108 andis. r7,r7,MAS1_VALID@h
109 bne match_TLB
110
111 mfspr r7,SPRN_MMUCFG
112 rlwinm r7,r7,21,28,31 /* extract MMUCFG[NPIDS] */
113 cmpwi r7,3
114 bne match_TLB /* skip if NPIDS != 3 */
115
116 mfspr r7,SPRN_PID1
117 slwi r7,r7,16
118 or r7,r7,r4
119 mtspr SPRN_MAS6,r7
120 tlbsx 0,r6 /* search MSR[IS], SPID=PID1 */
121 mfspr r7,SPRN_MAS1
122 andis. r7,r7,MAS1_VALID@h
123 bne match_TLB
124 mfspr r7, SPRN_PID2
125 slwi r7,r7,16
126 or r7,r7,r4
127 mtspr SPRN_MAS6,r7
128 tlbsx 0,r6 /* Fall through, we had to match */
129
130match_TLB:
131 mfspr r7,SPRN_MAS0
132 rlwinm r3,r7,16,20,31 /* Extract MAS0(Entry) */
133
134 mfspr r7,SPRN_MAS1 /* Insure IPROT set */
135 oris r7,r7,MAS1_IPROT@h
136 mtspr SPRN_MAS1,r7
137 tlbwe
138 97
139/* 2. Invalidate all entries except the entry we're executing in */ 98#define ENTRY_MAPPING_BOOT_SETUP
140 mfspr r9,SPRN_TLB1CFG 99#include "fsl_booke_entry_mapping.S"
141 andi. r9,r9,0xfff 100#undef ENTRY_MAPPING_BOOT_SETUP
142 li r6,0 /* Set Entry counter to 0 */
1431: lis r7,0x1000 /* Set MAS0(TLBSEL) = 1 */
144 rlwimi r7,r6,16,4,15 /* Setup MAS0 = TLBSEL | ESEL(r6) */
145 mtspr SPRN_MAS0,r7
146 tlbre
147 mfspr r7,SPRN_MAS1
148 rlwinm r7,r7,0,2,31 /* Clear MAS1 Valid and IPROT */
149 cmpw r3,r6
150 beq skpinv /* Dont update the current execution TLB */
151 mtspr SPRN_MAS1,r7
152 tlbwe
153 isync
154skpinv: addi r6,r6,1 /* Increment */
155 cmpw r6,r9 /* Are we done? */
156 bne 1b /* If not, repeat */
157
158 /* Invalidate TLB0 */
159 li r6,0x04
160 tlbivax 0,r6
161 TLBSYNC
162 /* Invalidate TLB1 */
163 li r6,0x0c
164 tlbivax 0,r6
165 TLBSYNC
166
167/* 3. Setup a temp mapping and jump to it */
168 andi. r5, r3, 0x1 /* Find an entry not used and is non-zero */
169 addi r5, r5, 0x1
170 lis r7,0x1000 /* Set MAS0(TLBSEL) = 1 */
171 rlwimi r7,r3,16,4,15 /* Setup MAS0 = TLBSEL | ESEL(r3) */
172 mtspr SPRN_MAS0,r7
173 tlbre
174
175 /* grab and fixup the RPN */
176 mfspr r6,SPRN_MAS1 /* extract MAS1[SIZE] */
177 rlwinm r6,r6,25,27,31
178 li r8,-1
179 addi r6,r6,10
180 slw r6,r8,r6 /* convert to mask */
181
182 bl 1f /* Find our address */
1831: mflr r7
184
185 mfspr r8,SPRN_MAS3
186#ifdef CONFIG_PHYS_64BIT
187 mfspr r23,SPRN_MAS7
188#endif
189 and r8,r6,r8
190 subfic r9,r6,-4096
191 and r9,r9,r7
192
193 or r25,r8,r9
194 ori r8,r25,(MAS3_SX|MAS3_SW|MAS3_SR)
195
196 /* Just modify the entry ID and EPN for the temp mapping */
197 lis r7,0x1000 /* Set MAS0(TLBSEL) = 1 */
198 rlwimi r7,r5,16,4,15 /* Setup MAS0 = TLBSEL | ESEL(r5) */
199 mtspr SPRN_MAS0,r7
200 xori r6,r4,1 /* Setup TMP mapping in the other Address space */
201 slwi r6,r6,12
202 oris r6,r6,(MAS1_VALID|MAS1_IPROT)@h
203 ori r6,r6,(MAS1_TSIZE(BOOK3E_PAGESZ_4K))@l
204 mtspr SPRN_MAS1,r6
205 mfspr r6,SPRN_MAS2
206 li r7,0 /* temp EPN = 0 */
207 rlwimi r7,r6,0,20,31
208 mtspr SPRN_MAS2,r7
209 mtspr SPRN_MAS3,r8
210 tlbwe
211
212 xori r6,r4,1
213 slwi r6,r6,5 /* setup new context with other address space */
214 bl 1f /* Find our address */
2151: mflr r9
216 rlwimi r7,r9,0,20,31
217 addi r7,r7,(2f - 1b)
218 mtspr SPRN_SRR0,r7
219 mtspr SPRN_SRR1,r6
220 rfi
2212:
222/* 4. Clear out PIDs & Search info */
223 li r6,0
224 mtspr SPRN_MAS6,r6
225 mtspr SPRN_PID0,r6
226
227 mfspr r7,SPRN_MMUCFG
228 rlwinm r7,r7,21,28,31 /* extract MMUCFG[NPIDS] */
229 cmpwi r7,3
230 bne 2f /* skip if NPIDS != 3 */
231
232 mtspr SPRN_PID1,r6
233 mtspr SPRN_PID2,r6
234
235/* 5. Invalidate mapping we started in */
2362:
237 lis r7,0x1000 /* Set MAS0(TLBSEL) = 1 */
238 rlwimi r7,r3,16,4,15 /* Setup MAS0 = TLBSEL | ESEL(r3) */
239 mtspr SPRN_MAS0,r7
240 tlbre
241 mfspr r6,SPRN_MAS1
242 rlwinm r6,r6,0,2,0 /* clear IPROT */
243 mtspr SPRN_MAS1,r6
244 tlbwe
245 /* Invalidate TLB1 */
246 li r9,0x0c
247 tlbivax 0,r9
248 TLBSYNC
249
250/* The mapping only needs to be cache-coherent on SMP */
251#ifdef CONFIG_SMP
252#define M_IF_SMP MAS2_M
253#else
254#define M_IF_SMP 0
255#endif
256
257/* 6. Setup KERNELBASE mapping in TLB1[0] */
258 lis r6,0x1000 /* Set MAS0(TLBSEL) = TLB1(1), ESEL = 0 */
259 mtspr SPRN_MAS0,r6
260 lis r6,(MAS1_VALID|MAS1_IPROT)@h
261 ori r6,r6,(MAS1_TSIZE(BOOK3E_PAGESZ_64M))@l
262 mtspr SPRN_MAS1,r6
263 lis r6,MAS2_VAL(PAGE_OFFSET, BOOK3E_PAGESZ_64M, M_IF_SMP)@h
264 ori r6,r6,MAS2_VAL(PAGE_OFFSET, BOOK3E_PAGESZ_64M, M_IF_SMP)@l
265 mtspr SPRN_MAS2,r6
266 mtspr SPRN_MAS3,r8
267 tlbwe
268
269/* 7. Jump to KERNELBASE mapping */
270 lis r6,(KERNELBASE & ~0xfff)@h
271 ori r6,r6,(KERNELBASE & ~0xfff)@l
272 lis r7,MSR_KERNEL@h
273 ori r7,r7,MSR_KERNEL@l
274 bl 1f /* Find our address */
2751: mflr r9
276 rlwimi r6,r9,0,20,31
277 addi r6,r6,(2f - 1b)
278 mtspr SPRN_SRR0,r6
279 mtspr SPRN_SRR1,r7
280 rfi /* start execution out of TLB1[0] entry */
281
282/* 8. Clear out the temp mapping */
2832: lis r7,0x1000 /* Set MAS0(TLBSEL) = 1 */
284 rlwimi r7,r5,16,4,15 /* Setup MAS0 = TLBSEL | ESEL(r5) */
285 mtspr SPRN_MAS0,r7
286 tlbre
287 mfspr r8,SPRN_MAS1
288 rlwinm r8,r8,0,2,0 /* clear IPROT */
289 mtspr SPRN_MAS1,r8
290 tlbwe
291 /* Invalidate TLB1 */
292 li r9,0x0c
293 tlbivax 0,r9
294 TLBSYNC
295 101
296 /* Establish the interrupt vector offsets */ 102 /* Establish the interrupt vector offsets */
297 SET_IVOR(0, CriticalInput); 103 SET_IVOR(0, CriticalInput);
@@ -639,6 +445,13 @@ interrupt_base:
639 rlwinm r12,r12,0,16,1 445 rlwinm r12,r12,0,16,1
640 mtspr SPRN_MAS1,r12 446 mtspr SPRN_MAS1,r12
641 447
448 /* Make up the required permissions for kernel code */
449#ifdef CONFIG_PTE_64BIT
450 li r13,_PAGE_PRESENT | _PAGE_BAP_SX
451 oris r13,r13,_PAGE_ACCESSED@h
452#else
453 li r13,_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_EXEC
454#endif
642 b 4f 455 b 4f
643 456
644 /* Get the PGD for the current thread */ 457 /* Get the PGD for the current thread */
@@ -646,15 +459,15 @@ interrupt_base:
646 mfspr r11,SPRN_SPRG_THREAD 459 mfspr r11,SPRN_SPRG_THREAD
647 lwz r11,PGDIR(r11) 460 lwz r11,PGDIR(r11)
648 461
6494: 462 /* Make up the required permissions for user code */
650 /* Make up the required permissions */
651#ifdef CONFIG_PTE_64BIT 463#ifdef CONFIG_PTE_64BIT
652 li r13,_PAGE_PRESENT | _PAGE_EXEC 464 li r13,_PAGE_PRESENT | _PAGE_BAP_UX
653 oris r13,r13,_PAGE_ACCESSED@h 465 oris r13,r13,_PAGE_ACCESSED@h
654#else 466#else
655 li r13,_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_EXEC 467 li r13,_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_EXEC
656#endif 468#endif
657 469
4704:
658 FIND_PTE 471 FIND_PTE
659 andc. r13,r13,r11 /* Check permission */ 472 andc. r13,r13,r11 /* Check permission */
660 473
@@ -747,9 +560,6 @@ finish_tlb_load:
747#else 560#else
748 rlwimi r12, r11, 26, 27, 31 /* extract WIMGE from pte */ 561 rlwimi r12, r11, 26, 27, 31 /* extract WIMGE from pte */
749#endif 562#endif
750#ifdef CONFIG_SMP
751 ori r12, r12, MAS2_M
752#endif
753 mtspr SPRN_MAS2, r12 563 mtspr SPRN_MAS2, r12
754 564
755#ifdef CONFIG_PTE_64BIT 565#ifdef CONFIG_PTE_64BIT
@@ -887,13 +697,17 @@ KernelSPE:
887 lwz r3,_MSR(r1) 697 lwz r3,_MSR(r1)
888 oris r3,r3,MSR_SPE@h 698 oris r3,r3,MSR_SPE@h
889 stw r3,_MSR(r1) /* enable use of SPE after return */ 699 stw r3,_MSR(r1) /* enable use of SPE after return */
700#ifdef CONFIG_PRINTK
890 lis r3,87f@h 701 lis r3,87f@h
891 ori r3,r3,87f@l 702 ori r3,r3,87f@l
892 mr r4,r2 /* current */ 703 mr r4,r2 /* current */
893 lwz r5,_NIP(r1) 704 lwz r5,_NIP(r1)
894 bl printk 705 bl printk
706#endif
895 b ret_from_except 707 b ret_from_except
708#ifdef CONFIG_PRINTK
89687: .string "SPE used in kernel (task=%p, pc=%x) \n" 70987: .string "SPE used in kernel (task=%p, pc=%x) \n"
710#endif
897 .align 4,0 711 .align 4,0
898 712
899#endif /* CONFIG_SPE */ 713#endif /* CONFIG_SPE */
diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c
index a4c8b38b0ba1..21266abfbda6 100644
--- a/arch/powerpc/kernel/ibmebus.c
+++ b/arch/powerpc/kernel/ibmebus.c
@@ -42,6 +42,7 @@
42#include <linux/dma-mapping.h> 42#include <linux/dma-mapping.h>
43#include <linux/interrupt.h> 43#include <linux/interrupt.h>
44#include <linux/of.h> 44#include <linux/of.h>
45#include <linux/slab.h>
45#include <linux/of_platform.h> 46#include <linux/of_platform.h>
46#include <asm/ibmebus.h> 47#include <asm/ibmebus.h>
47#include <asm/abs_addr.h> 48#include <asm/abs_addr.h>
@@ -139,14 +140,14 @@ static struct dma_map_ops ibmebus_dma_ops = {
139 140
140static int ibmebus_match_path(struct device *dev, void *data) 141static int ibmebus_match_path(struct device *dev, void *data)
141{ 142{
142 struct device_node *dn = to_of_device(dev)->node; 143 struct device_node *dn = to_of_device(dev)->dev.of_node;
143 return (dn->full_name && 144 return (dn->full_name &&
144 (strcasecmp((char *)data, dn->full_name) == 0)); 145 (strcasecmp((char *)data, dn->full_name) == 0));
145} 146}
146 147
147static int ibmebus_match_node(struct device *dev, void *data) 148static int ibmebus_match_node(struct device *dev, void *data)
148{ 149{
149 return to_of_device(dev)->node == data; 150 return to_of_device(dev)->dev.of_node == data;
150} 151}
151 152
152static int ibmebus_create_device(struct device_node *dn) 153static int ibmebus_create_device(struct device_node *dn)
@@ -201,7 +202,7 @@ static int ibmebus_create_devices(const struct of_device_id *matches)
201int ibmebus_register_driver(struct of_platform_driver *drv) 202int ibmebus_register_driver(struct of_platform_driver *drv)
202{ 203{
203 /* If the driver uses devices that ibmebus doesn't know, add them */ 204 /* If the driver uses devices that ibmebus doesn't know, add them */
204 ibmebus_create_devices(drv->match_table); 205 ibmebus_create_devices(drv->driver.of_match_table);
205 206
206 return of_register_driver(drv, &ibmebus_bus_type); 207 return of_register_driver(drv, &ibmebus_bus_type);
207} 208}
diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c
index 5547ae6e6b0b..d5839179ec77 100644
--- a/arch/powerpc/kernel/iommu.c
+++ b/arch/powerpc/kernel/iommu.c
@@ -42,26 +42,10 @@
42 42
43#define DBG(...) 43#define DBG(...)
44 44
45#ifdef CONFIG_IOMMU_VMERGE 45static int novmerge;
46static int novmerge = 0;
47#else
48static int novmerge = 1;
49#endif
50
51static int protect4gb = 1;
52 46
53static void __iommu_free(struct iommu_table *, dma_addr_t, unsigned int); 47static void __iommu_free(struct iommu_table *, dma_addr_t, unsigned int);
54 48
55static int __init setup_protect4gb(char *str)
56{
57 if (strcmp(str, "on") == 0)
58 protect4gb = 1;
59 else if (strcmp(str, "off") == 0)
60 protect4gb = 0;
61
62 return 1;
63}
64
65static int __init setup_iommu(char *str) 49static int __init setup_iommu(char *str)
66{ 50{
67 if (!strcmp(str, "novmerge")) 51 if (!strcmp(str, "novmerge"))
@@ -71,7 +55,6 @@ static int __init setup_iommu(char *str)
71 return 1; 55 return 1;
72} 56}
73 57
74__setup("protect4gb=", setup_protect4gb);
75__setup("iommu=", setup_iommu); 58__setup("iommu=", setup_iommu);
76 59
77static unsigned long iommu_range_alloc(struct device *dev, 60static unsigned long iommu_range_alloc(struct device *dev,
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
index 64f6f2031c22..77be3d058a65 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -53,7 +53,6 @@
53#include <linux/bootmem.h> 53#include <linux/bootmem.h>
54#include <linux/pci.h> 54#include <linux/pci.h>
55#include <linux/debugfs.h> 55#include <linux/debugfs.h>
56#include <linux/perf_event.h>
57 56
58#include <asm/uaccess.h> 57#include <asm/uaccess.h>
59#include <asm/system.h> 58#include <asm/system.h>
@@ -145,11 +144,6 @@ notrace void raw_local_irq_restore(unsigned long en)
145 } 144 }
146#endif /* CONFIG_PPC_STD_MMU_64 */ 145#endif /* CONFIG_PPC_STD_MMU_64 */
147 146
148 if (test_perf_event_pending()) {
149 clear_perf_event_pending();
150 perf_event_do_pending();
151 }
152
153 /* 147 /*
154 * if (get_paca()->hard_enabled) return; 148 * if (get_paca()->hard_enabled) return;
155 * But again we need to take care that gcc gets hard_enabled directly 149 * But again we need to take care that gcc gets hard_enabled directly
@@ -290,37 +284,42 @@ u64 arch_irq_stat_cpu(unsigned int cpu)
290} 284}
291 285
292#ifdef CONFIG_HOTPLUG_CPU 286#ifdef CONFIG_HOTPLUG_CPU
293void fixup_irqs(cpumask_t map) 287void fixup_irqs(const struct cpumask *map)
294{ 288{
295 struct irq_desc *desc; 289 struct irq_desc *desc;
296 unsigned int irq; 290 unsigned int irq;
297 static int warned; 291 static int warned;
292 cpumask_var_t mask;
298 293
299 for_each_irq(irq) { 294 alloc_cpumask_var(&mask, GFP_KERNEL);
300 cpumask_t mask;
301 295
296 for_each_irq(irq) {
302 desc = irq_to_desc(irq); 297 desc = irq_to_desc(irq);
303 if (desc && desc->status & IRQ_PER_CPU) 298 if (!desc)
299 continue;
300
301 if (desc->status & IRQ_PER_CPU)
304 continue; 302 continue;
305 303
306 cpumask_and(&mask, desc->affinity, &map); 304 cpumask_and(mask, desc->affinity, map);
307 if (any_online_cpu(mask) == NR_CPUS) { 305 if (cpumask_any(mask) >= nr_cpu_ids) {
308 printk("Breaking affinity for irq %i\n", irq); 306 printk("Breaking affinity for irq %i\n", irq);
309 mask = map; 307 cpumask_copy(mask, map);
310 } 308 }
311 if (desc->chip->set_affinity) 309 if (desc->chip->set_affinity)
312 desc->chip->set_affinity(irq, &mask); 310 desc->chip->set_affinity(irq, mask);
313 else if (desc->action && !(warned++)) 311 else if (desc->action && !(warned++))
314 printk("Cannot set affinity for irq %i\n", irq); 312 printk("Cannot set affinity for irq %i\n", irq);
315 } 313 }
316 314
315 free_cpumask_var(mask);
316
317 local_irq_enable(); 317 local_irq_enable();
318 mdelay(1); 318 mdelay(1);
319 local_irq_disable(); 319 local_irq_disable();
320} 320}
321#endif 321#endif
322 322
323#ifdef CONFIG_IRQSTACKS
324static inline void handle_one_irq(unsigned int irq) 323static inline void handle_one_irq(unsigned int irq)
325{ 324{
326 struct thread_info *curtp, *irqtp; 325 struct thread_info *curtp, *irqtp;
@@ -361,12 +360,6 @@ static inline void handle_one_irq(unsigned int irq)
361 if (irqtp->flags) 360 if (irqtp->flags)
362 set_bits(irqtp->flags, &curtp->flags); 361 set_bits(irqtp->flags, &curtp->flags);
363} 362}
364#else
365static inline void handle_one_irq(unsigned int irq)
366{
367 generic_handle_irq(irq);
368}
369#endif
370 363
371static inline void check_stack_overflow(void) 364static inline void check_stack_overflow(void)
372{ 365{
@@ -458,7 +451,6 @@ void exc_lvl_ctx_init(void)
458} 451}
459#endif 452#endif
460 453
461#ifdef CONFIG_IRQSTACKS
462struct thread_info *softirq_ctx[NR_CPUS] __read_mostly; 454struct thread_info *softirq_ctx[NR_CPUS] __read_mostly;
463struct thread_info *hardirq_ctx[NR_CPUS] __read_mostly; 455struct thread_info *hardirq_ctx[NR_CPUS] __read_mostly;
464 456
@@ -495,10 +487,6 @@ static inline void do_softirq_onstack(void)
495 irqtp->task = NULL; 487 irqtp->task = NULL;
496} 488}
497 489
498#else
499#define do_softirq_onstack() __do_softirq()
500#endif /* CONFIG_IRQSTACKS */
501
502void do_softirq(void) 490void do_softirq(void)
503{ 491{
504 unsigned long flags; 492 unsigned long flags;
diff --git a/arch/powerpc/kernel/kgdb.c b/arch/powerpc/kernel/kgdb.c
index 41bada0298c8..82a7b228c81a 100644
--- a/arch/powerpc/kernel/kgdb.c
+++ b/arch/powerpc/kernel/kgdb.c
@@ -20,6 +20,7 @@
20#include <linux/smp.h> 20#include <linux/smp.h>
21#include <linux/signal.h> 21#include <linux/signal.h>
22#include <linux/ptrace.h> 22#include <linux/ptrace.h>
23#include <linux/kdebug.h>
23#include <asm/current.h> 24#include <asm/current.h>
24#include <asm/processor.h> 25#include <asm/processor.h>
25#include <asm/machdep.h> 26#include <asm/machdep.h>
@@ -115,7 +116,8 @@ void kgdb_roundup_cpus(unsigned long flags)
115/* KGDB functions to use existing PowerPC64 hooks. */ 116/* KGDB functions to use existing PowerPC64 hooks. */
116static int kgdb_debugger(struct pt_regs *regs) 117static int kgdb_debugger(struct pt_regs *regs)
117{ 118{
118 return kgdb_handle_exception(0, computeSignal(TRAP(regs)), 0, regs); 119 return !kgdb_handle_exception(1, computeSignal(TRAP(regs)),
120 DIE_OOPS, regs);
119} 121}
120 122
121static int kgdb_handle_breakpoint(struct pt_regs *regs) 123static int kgdb_handle_breakpoint(struct pt_regs *regs)
@@ -123,7 +125,7 @@ static int kgdb_handle_breakpoint(struct pt_regs *regs)
123 if (user_mode(regs)) 125 if (user_mode(regs))
124 return 0; 126 return 0;
125 127
126 if (kgdb_handle_exception(0, SIGTRAP, 0, regs) != 0) 128 if (kgdb_handle_exception(1, SIGTRAP, 0, regs) != 0)
127 return 0; 129 return 0;
128 130
129 if (*(u32 *) (regs->nip) == *(u32 *) (&arch_kgdb_ops.gdb_bpt_instr)) 131 if (*(u32 *) (regs->nip) == *(u32 *) (&arch_kgdb_ops.gdb_bpt_instr))
@@ -309,6 +311,11 @@ void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs)
309 (unsigned long)(((void *)gdb_regs) + NUMREGBYTES)); 311 (unsigned long)(((void *)gdb_regs) + NUMREGBYTES));
310} 312}
311 313
314void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc)
315{
316 regs->nip = pc;
317}
318
312/* 319/*
313 * This function does PowerPC specific procesing for interfacing to gdb. 320 * This function does PowerPC specific procesing for interfacing to gdb.
314 */ 321 */
diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c
index 3fd1af902112..bc47352deb1f 100644
--- a/arch/powerpc/kernel/kprobes.c
+++ b/arch/powerpc/kernel/kprobes.c
@@ -31,6 +31,7 @@
31#include <linux/preempt.h> 31#include <linux/preempt.h>
32#include <linux/module.h> 32#include <linux/module.h>
33#include <linux/kdebug.h> 33#include <linux/kdebug.h>
34#include <linux/slab.h>
34#include <asm/cacheflush.h> 35#include <asm/cacheflush.h>
35#include <asm/sstep.h> 36#include <asm/sstep.h>
36#include <asm/uaccess.h> 37#include <asm/uaccess.h>
@@ -113,6 +114,9 @@ static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs)
113#ifdef CONFIG_PPC_ADV_DEBUG_REGS 114#ifdef CONFIG_PPC_ADV_DEBUG_REGS
114 regs->msr &= ~MSR_CE; 115 regs->msr &= ~MSR_CE;
115 mtspr(SPRN_DBCR0, mfspr(SPRN_DBCR0) | DBCR0_IC | DBCR0_IDM); 116 mtspr(SPRN_DBCR0, mfspr(SPRN_DBCR0) | DBCR0_IC | DBCR0_IDM);
117#ifdef CONFIG_PPC_47x
118 isync();
119#endif
116#endif 120#endif
117 121
118 /* 122 /*
@@ -374,17 +378,6 @@ static int __kprobes trampoline_probe_handler(struct kprobe *p,
374 * single-stepped a copy of the instruction. The address of this 378 * single-stepped a copy of the instruction. The address of this
375 * copy is p->ainsn.insn. 379 * copy is p->ainsn.insn.
376 */ 380 */
377static void __kprobes resume_execution(struct kprobe *p, struct pt_regs *regs)
378{
379 int ret;
380 unsigned int insn = *p->ainsn.insn;
381
382 regs->nip = (unsigned long)p->addr;
383 ret = emulate_step(regs, insn);
384 if (ret == 0)
385 regs->nip = (unsigned long)p->addr + 4;
386}
387
388static int __kprobes post_kprobe_handler(struct pt_regs *regs) 381static int __kprobes post_kprobe_handler(struct pt_regs *regs)
389{ 382{
390 struct kprobe *cur = kprobe_running(); 383 struct kprobe *cur = kprobe_running();
@@ -402,7 +395,8 @@ static int __kprobes post_kprobe_handler(struct pt_regs *regs)
402 cur->post_handler(cur, regs, 0); 395 cur->post_handler(cur, regs, 0);
403 } 396 }
404 397
405 resume_execution(cur, regs); 398 /* Adjust nip to after the single-stepped instruction */
399 regs->nip = (unsigned long)cur->addr + 4;
406 regs->msr |= kcb->kprobe_saved_msr; 400 regs->msr |= kcb->kprobe_saved_msr;
407 401
408 /*Restore back the original saved kprobes variables and continue. */ 402 /*Restore back the original saved kprobes variables and continue. */
diff --git a/arch/powerpc/kernel/lparcfg.c b/arch/powerpc/kernel/lparcfg.c
index d09d1c615150..50362b6ef6e9 100644
--- a/arch/powerpc/kernel/lparcfg.c
+++ b/arch/powerpc/kernel/lparcfg.c
@@ -24,6 +24,7 @@
24#include <linux/proc_fs.h> 24#include <linux/proc_fs.h>
25#include <linux/init.h> 25#include <linux/init.h>
26#include <linux/seq_file.h> 26#include <linux/seq_file.h>
27#include <linux/slab.h>
27#include <asm/uaccess.h> 28#include <asm/uaccess.h>
28#include <asm/iseries/hv_lp_config.h> 29#include <asm/iseries/hv_lp_config.h>
29#include <asm/lppaca.h> 30#include <asm/lppaca.h>
@@ -37,7 +38,7 @@
37#include <asm/vio.h> 38#include <asm/vio.h>
38#include <asm/mmu.h> 39#include <asm/mmu.h>
39 40
40#define MODULE_VERS "1.8" 41#define MODULE_VERS "1.9"
41#define MODULE_NAME "lparcfg" 42#define MODULE_NAME "lparcfg"
42 43
43/* #define LPARCFG_DEBUG */ 44/* #define LPARCFG_DEBUG */
@@ -486,6 +487,14 @@ static void splpar_dispatch_data(struct seq_file *m)
486 seq_printf(m, "dispatch_dispersions=%lu\n", dispatch_dispersions); 487 seq_printf(m, "dispatch_dispersions=%lu\n", dispatch_dispersions);
487} 488}
488 489
490static void parse_em_data(struct seq_file *m)
491{
492 unsigned long retbuf[PLPAR_HCALL_BUFSIZE];
493
494 if (plpar_hcall(H_GET_EM_PARMS, retbuf) == H_SUCCESS)
495 seq_printf(m, "power_mode_data=%016lx\n", retbuf[0]);
496}
497
489static int pseries_lparcfg_data(struct seq_file *m, void *v) 498static int pseries_lparcfg_data(struct seq_file *m, void *v)
490{ 499{
491 int partition_potential_processors; 500 int partition_potential_processors;
@@ -540,6 +549,8 @@ static int pseries_lparcfg_data(struct seq_file *m, void *v)
540 549
541 seq_printf(m, "slb_size=%d\n", mmu_slb_size); 550 seq_printf(m, "slb_size=%d\n", mmu_slb_size);
542 551
552 parse_em_data(m);
553
543 return 0; 554 return 0;
544} 555}
545 556
diff --git a/arch/powerpc/kernel/machine_kexec.c b/arch/powerpc/kernel/machine_kexec.c
index bb3d893a8353..89f005116aac 100644
--- a/arch/powerpc/kernel/machine_kexec.c
+++ b/arch/powerpc/kernel/machine_kexec.c
@@ -12,7 +12,7 @@
12#include <linux/kexec.h> 12#include <linux/kexec.h>
13#include <linux/reboot.h> 13#include <linux/reboot.h>
14#include <linux/threads.h> 14#include <linux/threads.h>
15#include <linux/lmb.h> 15#include <linux/memblock.h>
16#include <linux/of.h> 16#include <linux/of.h>
17#include <asm/machdep.h> 17#include <asm/machdep.h>
18#include <asm/prom.h> 18#include <asm/prom.h>
@@ -66,11 +66,11 @@ void __init reserve_crashkernel(void)
66 unsigned long long crash_size, crash_base; 66 unsigned long long crash_size, crash_base;
67 int ret; 67 int ret;
68 68
69 /* this is necessary because of lmb_phys_mem_size() */ 69 /* this is necessary because of memblock_phys_mem_size() */
70 lmb_analyze(); 70 memblock_analyze();
71 71
72 /* use common parsing */ 72 /* use common parsing */
73 ret = parse_crashkernel(boot_command_line, lmb_phys_mem_size(), 73 ret = parse_crashkernel(boot_command_line, memblock_phys_mem_size(),
74 &crash_size, &crash_base); 74 &crash_size, &crash_base);
75 if (ret == 0 && crash_size > 0) { 75 if (ret == 0 && crash_size > 0) {
76 crashk_res.start = crash_base; 76 crashk_res.start = crash_base;
@@ -133,9 +133,9 @@ void __init reserve_crashkernel(void)
133 "for crashkernel (System RAM: %ldMB)\n", 133 "for crashkernel (System RAM: %ldMB)\n",
134 (unsigned long)(crash_size >> 20), 134 (unsigned long)(crash_size >> 20),
135 (unsigned long)(crashk_res.start >> 20), 135 (unsigned long)(crashk_res.start >> 20),
136 (unsigned long)(lmb_phys_mem_size() >> 20)); 136 (unsigned long)(memblock_phys_mem_size() >> 20));
137 137
138 lmb_reserve(crashk_res.start, crash_size); 138 memblock_reserve(crashk_res.start, crash_size);
139} 139}
140 140
141int overlaps_crashkernel(unsigned long start, unsigned long size) 141int overlaps_crashkernel(unsigned long start, unsigned long size)
diff --git a/arch/powerpc/kernel/machine_kexec_64.c b/arch/powerpc/kernel/machine_kexec_64.c
index 040bd1de8d99..ed31a29c4ff7 100644
--- a/arch/powerpc/kernel/machine_kexec_64.c
+++ b/arch/powerpc/kernel/machine_kexec_64.c
@@ -155,66 +155,70 @@ void kexec_copy_flush(struct kimage *image)
155 155
156#ifdef CONFIG_SMP 156#ifdef CONFIG_SMP
157 157
158/* FIXME: we should schedule this function to be called on all cpus based 158static int kexec_all_irq_disabled = 0;
159 * on calling the interrupts, but we would like to call it off irq level 159
160 * so that the interrupt controller is clean.
161 */
162static void kexec_smp_down(void *arg) 160static void kexec_smp_down(void *arg)
163{ 161{
162 local_irq_disable();
163 mb(); /* make sure our irqs are disabled before we say they are */
164 get_paca()->kexec_state = KEXEC_STATE_IRQS_OFF;
165 while(kexec_all_irq_disabled == 0)
166 cpu_relax();
167 mb(); /* make sure all irqs are disabled before this */
168 /*
169 * Now every CPU has IRQs off, we can clear out any pending
170 * IPIs and be sure that no more will come in after this.
171 */
164 if (ppc_md.kexec_cpu_down) 172 if (ppc_md.kexec_cpu_down)
165 ppc_md.kexec_cpu_down(0, 1); 173 ppc_md.kexec_cpu_down(0, 1);
166 174
167 local_irq_disable();
168 kexec_smp_wait(); 175 kexec_smp_wait();
169 /* NOTREACHED */ 176 /* NOTREACHED */
170} 177}
171 178
172static void kexec_prepare_cpus(void) 179static void kexec_prepare_cpus_wait(int wait_state)
173{ 180{
174 int my_cpu, i, notified=-1; 181 int my_cpu, i, notified=-1;
175 182
176 smp_call_function(kexec_smp_down, NULL, /* wait */0);
177 my_cpu = get_cpu(); 183 my_cpu = get_cpu();
178 184 /* Make sure each CPU has atleast made it to the state we need */
179 /* check the others cpus are now down (via paca hw cpu id == -1) */ 185 for_each_online_cpu(i) {
180 for (i=0; i < NR_CPUS; i++) {
181 if (i == my_cpu) 186 if (i == my_cpu)
182 continue; 187 continue;
183 188
184 while (paca[i].hw_cpu_id != -1) { 189 while (paca[i].kexec_state < wait_state) {
185 barrier(); 190 barrier();
186 if (!cpu_possible(i)) {
187 printk("kexec: cpu %d hw_cpu_id %d is not"
188 " possible, ignoring\n",
189 i, paca[i].hw_cpu_id);
190 break;
191 }
192 if (!cpu_online(i)) {
193 /* Fixme: this can be spinning in
194 * pSeries_secondary_wait with a paca
195 * waiting for it to go online.
196 */
197 printk("kexec: cpu %d hw_cpu_id %d is not"
198 " online, ignoring\n",
199 i, paca[i].hw_cpu_id);
200 break;
201 }
202 if (i != notified) { 191 if (i != notified) {
203 printk( "kexec: waiting for cpu %d (physical" 192 printk( "kexec: waiting for cpu %d (physical"
204 " %d) to go down\n", 193 " %d) to enter %i state\n",
205 i, paca[i].hw_cpu_id); 194 i, paca[i].hw_cpu_id, wait_state);
206 notified = i; 195 notified = i;
207 } 196 }
208 } 197 }
209 } 198 }
199 mb();
200}
201
202static void kexec_prepare_cpus(void)
203{
204
205 smp_call_function(kexec_smp_down, NULL, /* wait */0);
206 local_irq_disable();
207 mb(); /* make sure IRQs are disabled before we say they are */
208 get_paca()->kexec_state = KEXEC_STATE_IRQS_OFF;
209
210 kexec_prepare_cpus_wait(KEXEC_STATE_IRQS_OFF);
211 /* we are sure every CPU has IRQs off at this point */
212 kexec_all_irq_disabled = 1;
210 213
211 /* after we tell the others to go down */ 214 /* after we tell the others to go down */
212 if (ppc_md.kexec_cpu_down) 215 if (ppc_md.kexec_cpu_down)
213 ppc_md.kexec_cpu_down(0, 0); 216 ppc_md.kexec_cpu_down(0, 0);
214 217
215 put_cpu(); 218 /* Before removing MMU mapings make sure all CPUs have entered real mode */
219 kexec_prepare_cpus_wait(KEXEC_STATE_REAL_MODE);
216 220
217 local_irq_disable(); 221 put_cpu();
218} 222}
219 223
220#else /* ! SMP */ 224#else /* ! SMP */
diff --git a/arch/powerpc/kernel/misc.S b/arch/powerpc/kernel/misc.S
index 2d29752cbe16..22e507c8a556 100644
--- a/arch/powerpc/kernel/misc.S
+++ b/arch/powerpc/kernel/misc.S
@@ -127,3 +127,29 @@ _GLOBAL(__setup_cpu_power7)
127_GLOBAL(__restore_cpu_power7) 127_GLOBAL(__restore_cpu_power7)
128 /* place holder */ 128 /* place holder */
129 blr 129 blr
130
131/*
132 * Get a minimal set of registers for our caller's nth caller.
133 * r3 = regs pointer, r5 = n.
134 *
135 * We only get R1 (stack pointer), NIP (next instruction pointer)
136 * and LR (link register). These are all we can get in the
137 * general case without doing complicated stack unwinding, but
138 * fortunately they are enough to do a stack backtrace, which
139 * is all we need them for.
140 */
141_GLOBAL(perf_arch_fetch_caller_regs)
142 mr r6,r1
143 cmpwi r5,0
144 mflr r4
145 ble 2f
146 mtctr r5
1471: PPC_LL r6,0(r6)
148 bdnz 1b
149 PPC_LL r4,PPC_LR_STKOFF(r6)
1502: PPC_LL r7,0(r6)
151 PPC_LL r7,PPC_LR_STKOFF(r7)
152 PPC_STL r6,GPR1-STACK_FRAME_OVERHEAD(r3)
153 PPC_STL r4,_NIP-STACK_FRAME_OVERHEAD(r3)
154 PPC_STL r7,_LINK-STACK_FRAME_OVERHEAD(r3)
155 blr
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S
index 8649f536f8df..6bbd7a604d24 100644
--- a/arch/powerpc/kernel/misc_32.S
+++ b/arch/powerpc/kernel/misc_32.S
@@ -33,7 +33,6 @@
33 33
34 .text 34 .text
35 35
36#ifdef CONFIG_IRQSTACKS
37_GLOBAL(call_do_softirq) 36_GLOBAL(call_do_softirq)
38 mflr r0 37 mflr r0
39 stw r0,4(r1) 38 stw r0,4(r1)
@@ -56,7 +55,6 @@ _GLOBAL(call_handle_irq)
56 lwz r0,4(r1) 55 lwz r0,4(r1)
57 mtlr r0 56 mtlr r0
58 blr 57 blr
59#endif /* CONFIG_IRQSTACKS */
60 58
61/* 59/*
62 * This returns the high 64 bits of the product of two 64-bit numbers. 60 * This returns the high 64 bits of the product of two 64-bit numbers.
@@ -441,7 +439,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE)
441 addi r3,r3,L1_CACHE_BYTES 439 addi r3,r3,L1_CACHE_BYTES
442 bdnz 0b 440 bdnz 0b
443 sync 441 sync
444#ifndef CONFIG_44x 442#ifdef CONFIG_44x
445 /* We don't flush the icache on 44x. Those have a virtual icache 443 /* We don't flush the icache on 44x. Those have a virtual icache
446 * and we don't have access to the virtual address here (it's 444 * and we don't have access to the virtual address here (it's
447 * not the page vaddr but where it's mapped in user space). The 445 * not the page vaddr but where it's mapped in user space). The
@@ -449,15 +447,19 @@ END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE)
449 * a change in the address space occurs, before returning to 447 * a change in the address space occurs, before returning to
450 * user space 448 * user space
451 */ 449 */
450BEGIN_MMU_FTR_SECTION
451 blr
452END_MMU_FTR_SECTION_IFSET(MMU_FTR_TYPE_44x)
453#endif /* CONFIG_44x */
452 mtctr r4 454 mtctr r4
4531: icbi 0,r6 4551: icbi 0,r6
454 addi r6,r6,L1_CACHE_BYTES 456 addi r6,r6,L1_CACHE_BYTES
455 bdnz 1b 457 bdnz 1b
456 sync 458 sync
457 isync 459 isync
458#endif /* CONFIG_44x */
459 blr 460 blr
460 461
462#ifndef CONFIG_BOOKE
461/* 463/*
462 * Flush a particular page from the data cache to RAM, identified 464 * Flush a particular page from the data cache to RAM, identified
463 * by its physical address. We turn off the MMU so we can just use 465 * by its physical address. We turn off the MMU so we can just use
@@ -490,6 +492,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE)
490 mtmsr r10 /* restore DR */ 492 mtmsr r10 /* restore DR */
491 isync 493 isync
492 blr 494 blr
495#endif /* CONFIG_BOOKE */
493 496
494/* 497/*
495 * Clear pages using the dcbz instruction, which doesn't cause any 498 * Clear pages using the dcbz instruction, which doesn't cause any
@@ -706,6 +709,22 @@ relocate_new_kernel:
706 /* r4 = reboot_code_buffer */ 709 /* r4 = reboot_code_buffer */
707 /* r5 = start_address */ 710 /* r5 = start_address */
708 711
712#ifdef CONFIG_FSL_BOOKE
713
714 mr r29, r3
715 mr r30, r4
716 mr r31, r5
717
718#define ENTRY_MAPPING_KEXEC_SETUP
719#include "fsl_booke_entry_mapping.S"
720#undef ENTRY_MAPPING_KEXEC_SETUP
721
722 mr r3, r29
723 mr r4, r30
724 mr r5, r31
725
726 li r0, 0
727#else
709 li r0, 0 728 li r0, 0
710 729
711 /* 730 /*
@@ -722,6 +741,7 @@ relocate_new_kernel:
722 rfi 741 rfi
723 742
7241: 7431:
744#endif
725 /* from this point address translation is turned off */ 745 /* from this point address translation is turned off */
726 /* and interrupts are disabled */ 746 /* and interrupts are disabled */
727 747
diff --git a/arch/powerpc/kernel/misc_64.S b/arch/powerpc/kernel/misc_64.S
index a5cf9c1356a6..e5144906a56d 100644
--- a/arch/powerpc/kernel/misc_64.S
+++ b/arch/powerpc/kernel/misc_64.S
@@ -24,10 +24,10 @@
24#include <asm/asm-offsets.h> 24#include <asm/asm-offsets.h>
25#include <asm/cputable.h> 25#include <asm/cputable.h>
26#include <asm/thread_info.h> 26#include <asm/thread_info.h>
27#include <asm/kexec.h>
27 28
28 .text 29 .text
29 30
30#ifdef CONFIG_IRQSTACKS
31_GLOBAL(call_do_softirq) 31_GLOBAL(call_do_softirq)
32 mflr r0 32 mflr r0
33 std r0,16(r1) 33 std r0,16(r1)
@@ -51,7 +51,6 @@ _GLOBAL(call_handle_irq)
51 ld r0,16(r1) 51 ld r0,16(r1)
52 mtlr r0 52 mtlr r0
53 blr 53 blr
54#endif /* CONFIG_IRQSTACKS */
55 54
56 .section ".toc","aw" 55 .section ".toc","aw"
57PPC64_CACHES: 56PPC64_CACHES:
@@ -471,6 +470,10 @@ _GLOBAL(kexec_wait)
4711: mflr r5 4701: mflr r5
472 addi r5,r5,kexec_flag-1b 471 addi r5,r5,kexec_flag-1b
473 472
473 li r4,KEXEC_STATE_REAL_MODE
474 stb r4,PACAKEXECSTATE(r13)
475 SYNC
476
47499: HMT_LOW 47799: HMT_LOW
475#ifdef CONFIG_KEXEC /* use no memory without kexec */ 478#ifdef CONFIG_KEXEC /* use no memory without kexec */
476 lwz r4,0(r5) 479 lwz r4,0(r5)
@@ -494,14 +497,11 @@ kexec_flag:
494 * note: this is a terminal routine, it does not save lr 497 * note: this is a terminal routine, it does not save lr
495 * 498 *
496 * get phys id from paca 499 * get phys id from paca
497 * set paca id to -1 to say we got here
498 * switch to real mode 500 * switch to real mode
499 * join other cpus in kexec_wait(phys_id) 501 * join other cpus in kexec_wait(phys_id)
500 */ 502 */
501_GLOBAL(kexec_smp_wait) 503_GLOBAL(kexec_smp_wait)
502 lhz r3,PACAHWCPUID(r13) 504 lhz r3,PACAHWCPUID(r13)
503 li r4,-1
504 sth r4,PACAHWCPUID(r13) /* let others know we left */
505 bl real_mode 505 bl real_mode
506 b .kexec_wait 506 b .kexec_wait
507 507
diff --git a/arch/powerpc/kernel/of_device.c b/arch/powerpc/kernel/of_device.c
index a359cb08e900..df78e0236a02 100644
--- a/arch/powerpc/kernel/of_device.c
+++ b/arch/powerpc/kernel/of_device.c
@@ -13,7 +13,7 @@
13static void of_device_make_bus_id(struct of_device *dev) 13static void of_device_make_bus_id(struct of_device *dev)
14{ 14{
15 static atomic_t bus_no_reg_magic; 15 static atomic_t bus_no_reg_magic;
16 struct device_node *node = dev->node; 16 struct device_node *node = dev->dev.of_node;
17 const u32 *reg; 17 const u32 *reg;
18 u64 addr; 18 u64 addr;
19 int magic; 19 int magic;
@@ -69,11 +69,10 @@ struct of_device *of_device_alloc(struct device_node *np,
69 if (!dev) 69 if (!dev)
70 return NULL; 70 return NULL;
71 71
72 dev->node = of_node_get(np); 72 dev->dev.of_node = of_node_get(np);
73 dev->dev.dma_mask = &dev->dma_mask; 73 dev->dev.dma_mask = &dev->archdata.dma_mask;
74 dev->dev.parent = parent; 74 dev->dev.parent = parent;
75 dev->dev.release = of_release_dev; 75 dev->dev.release = of_release_dev;
76 dev->dev.archdata.of_node = np;
77 76
78 if (bus_id) 77 if (bus_id)
79 dev_set_name(&dev->dev, "%s", bus_id); 78 dev_set_name(&dev->dev, "%s", bus_id);
@@ -95,17 +94,17 @@ int of_device_uevent(struct device *dev, struct kobj_uevent_env *env)
95 94
96 ofdev = to_of_device(dev); 95 ofdev = to_of_device(dev);
97 96
98 if (add_uevent_var(env, "OF_NAME=%s", ofdev->node->name)) 97 if (add_uevent_var(env, "OF_NAME=%s", ofdev->dev.of_node->name))
99 return -ENOMEM; 98 return -ENOMEM;
100 99
101 if (add_uevent_var(env, "OF_TYPE=%s", ofdev->node->type)) 100 if (add_uevent_var(env, "OF_TYPE=%s", ofdev->dev.of_node->type))
102 return -ENOMEM; 101 return -ENOMEM;
103 102
104 /* Since the compatible field can contain pretty much anything 103 /* Since the compatible field can contain pretty much anything
105 * it's not really legal to split it out with commas. We split it 104 * it's not really legal to split it out with commas. We split it
106 * up using a number of environment variables instead. */ 105 * up using a number of environment variables instead. */
107 106
108 compat = of_get_property(ofdev->node, "compatible", &cplen); 107 compat = of_get_property(ofdev->dev.of_node, "compatible", &cplen);
109 while (compat && *compat && cplen > 0) { 108 while (compat && *compat && cplen > 0) {
110 if (add_uevent_var(env, "OF_COMPATIBLE_%d=%s", seen, compat)) 109 if (add_uevent_var(env, "OF_COMPATIBLE_%d=%s", seen, compat))
111 return -ENOMEM; 110 return -ENOMEM;
diff --git a/arch/powerpc/kernel/of_platform.c b/arch/powerpc/kernel/of_platform.c
index 666d08db319e..487a98851ba6 100644
--- a/arch/powerpc/kernel/of_platform.c
+++ b/arch/powerpc/kernel/of_platform.c
@@ -17,7 +17,6 @@
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/module.h> 18#include <linux/module.h>
19#include <linux/mod_devicetable.h> 19#include <linux/mod_devicetable.h>
20#include <linux/slab.h>
21#include <linux/pci.h> 20#include <linux/pci.h>
22#include <linux/of.h> 21#include <linux/of.h>
23#include <linux/of_device.h> 22#include <linux/of_device.h>
@@ -75,7 +74,7 @@ struct of_device* of_platform_device_create(struct device_node *np,
75 if (!dev) 74 if (!dev)
76 return NULL; 75 return NULL;
77 76
78 dev->dma_mask = 0xffffffffUL; 77 dev->archdata.dma_mask = 0xffffffffUL;
79 dev->dev.coherent_dma_mask = DMA_BIT_MASK(32); 78 dev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
80 79
81 dev->dev.bus = &of_platform_bus_type; 80 dev->dev.bus = &of_platform_bus_type;
@@ -196,7 +195,7 @@ EXPORT_SYMBOL(of_platform_bus_probe);
196 195
197static int of_dev_node_match(struct device *dev, void *data) 196static int of_dev_node_match(struct device *dev, void *data)
198{ 197{
199 return to_of_device(dev)->node == data; 198 return to_of_device(dev)->dev.of_node == data;
200} 199}
201 200
202struct of_device *of_find_device_by_node(struct device_node *np) 201struct of_device *of_find_device_by_node(struct device_node *np)
@@ -214,7 +213,7 @@ EXPORT_SYMBOL(of_find_device_by_node);
214static int of_dev_phandle_match(struct device *dev, void *data) 213static int of_dev_phandle_match(struct device *dev, void *data)
215{ 214{
216 phandle *ph = data; 215 phandle *ph = data;
217 return to_of_device(dev)->node->phandle == *ph; 216 return to_of_device(dev)->dev.of_node->phandle == *ph;
218} 217}
219 218
220struct of_device *of_find_device_by_phandle(phandle ph) 219struct of_device *of_find_device_by_phandle(phandle ph)
@@ -247,10 +246,10 @@ static int __devinit of_pci_phb_probe(struct of_device *dev,
247 if (ppc_md.pci_setup_phb == NULL) 246 if (ppc_md.pci_setup_phb == NULL)
248 return -ENODEV; 247 return -ENODEV;
249 248
250 printk(KERN_INFO "Setting up PCI bus %s\n", dev->node->full_name); 249 pr_info("Setting up PCI bus %s\n", dev->dev.of_node->full_name);
251 250
252 /* Alloc and setup PHB data structure */ 251 /* Alloc and setup PHB data structure */
253 phb = pcibios_alloc_controller(dev->node); 252 phb = pcibios_alloc_controller(dev->dev.of_node);
254 if (!phb) 253 if (!phb)
255 return -ENODEV; 254 return -ENODEV;
256 255
@@ -264,19 +263,19 @@ static int __devinit of_pci_phb_probe(struct of_device *dev,
264 } 263 }
265 264
266 /* Process "ranges" property */ 265 /* Process "ranges" property */
267 pci_process_bridge_OF_ranges(phb, dev->node, 0); 266 pci_process_bridge_OF_ranges(phb, dev->dev.of_node, 0);
268 267
269 /* Init pci_dn data structures */ 268 /* Init pci_dn data structures */
270 pci_devs_phb_init_dynamic(phb); 269 pci_devs_phb_init_dynamic(phb);
271 270
272 /* Register devices with EEH */ 271 /* Register devices with EEH */
273#ifdef CONFIG_EEH 272#ifdef CONFIG_EEH
274 if (dev->node->child) 273 if (dev->dev.of_node->child)
275 eeh_add_device_tree_early(dev->node); 274 eeh_add_device_tree_early(dev->dev.of_node);
276#endif /* CONFIG_EEH */ 275#endif /* CONFIG_EEH */
277 276
278 /* Scan the bus */ 277 /* Scan the bus */
279 pcibios_scan_phb(phb, dev->node); 278 pcibios_scan_phb(phb, dev->dev.of_node);
280 if (phb->bus == NULL) 279 if (phb->bus == NULL)
281 return -ENXIO; 280 return -ENXIO;
282 281
@@ -307,10 +306,11 @@ static struct of_device_id of_pci_phb_ids[] = {
307}; 306};
308 307
309static struct of_platform_driver of_pci_phb_driver = { 308static struct of_platform_driver of_pci_phb_driver = {
310 .match_table = of_pci_phb_ids,
311 .probe = of_pci_phb_probe, 309 .probe = of_pci_phb_probe,
312 .driver = { 310 .driver = {
313 .name = "of-pci", 311 .name = "of-pci",
312 .owner = THIS_MODULE,
313 .of_match_table = of_pci_phb_ids,
314 }, 314 },
315}; 315};
316 316
diff --git a/arch/powerpc/kernel/paca.c b/arch/powerpc/kernel/paca.c
index 0c40c6f476fe..139a773853f4 100644
--- a/arch/powerpc/kernel/paca.c
+++ b/arch/powerpc/kernel/paca.c
@@ -9,7 +9,7 @@
9 9
10#include <linux/threads.h> 10#include <linux/threads.h>
11#include <linux/module.h> 11#include <linux/module.h>
12#include <linux/lmb.h> 12#include <linux/memblock.h>
13 13
14#include <asm/firmware.h> 14#include <asm/firmware.h>
15#include <asm/lppaca.h> 15#include <asm/lppaca.h>
@@ -18,6 +18,7 @@
18#include <asm/pgtable.h> 18#include <asm/pgtable.h>
19#include <asm/iseries/lpar_map.h> 19#include <asm/iseries/lpar_map.h>
20#include <asm/iseries/hv_types.h> 20#include <asm/iseries/hv_types.h>
21#include <asm/kexec.h>
21 22
22/* This symbol is provided by the linker - let it fill in the paca 23/* This symbol is provided by the linker - let it fill in the paca
23 * field correctly */ 24 * field correctly */
@@ -97,6 +98,7 @@ void __init initialise_paca(struct paca_struct *new_paca, int cpu)
97 new_paca->kernelbase = (unsigned long) _stext; 98 new_paca->kernelbase = (unsigned long) _stext;
98 new_paca->kernel_msr = MSR_KERNEL; 99 new_paca->kernel_msr = MSR_KERNEL;
99 new_paca->hw_cpu_id = 0xffff; 100 new_paca->hw_cpu_id = 0xffff;
101 new_paca->kexec_state = KEXEC_STATE_NONE;
100 new_paca->__current = &init_task; 102 new_paca->__current = &init_task;
101#ifdef CONFIG_PPC_STD_MMU_64 103#ifdef CONFIG_PPC_STD_MMU_64
102 new_paca->slb_shadow_ptr = &slb_shadow[cpu]; 104 new_paca->slb_shadow_ptr = &slb_shadow[cpu];
@@ -115,7 +117,7 @@ void __init allocate_pacas(void)
115 * the first segment. On iSeries they must be within the area mapped 117 * the first segment. On iSeries they must be within the area mapped
116 * by the HV, which is HvPagesToMap * HVPAGESIZE bytes. 118 * by the HV, which is HvPagesToMap * HVPAGESIZE bytes.
117 */ 119 */
118 limit = min(0x10000000ULL, lmb.rmo_size); 120 limit = min(0x10000000ULL, memblock.rmo_size);
119 if (firmware_has_feature(FW_FEATURE_ISERIES)) 121 if (firmware_has_feature(FW_FEATURE_ISERIES))
120 limit = min(limit, HvPagesToMap * HVPAGESIZE); 122 limit = min(limit, HvPagesToMap * HVPAGESIZE);
121 123
@@ -126,7 +128,7 @@ void __init allocate_pacas(void)
126 128
127 paca_size = PAGE_ALIGN(sizeof(struct paca_struct) * nr_cpus); 129 paca_size = PAGE_ALIGN(sizeof(struct paca_struct) * nr_cpus);
128 130
129 paca = __va(lmb_alloc_base(paca_size, PAGE_SIZE, limit)); 131 paca = __va(memblock_alloc_base(paca_size, PAGE_SIZE, limit));
130 memset(paca, 0, paca_size); 132 memset(paca, 0, paca_size);
131 133
132 printk(KERN_DEBUG "Allocated %u bytes for %d pacas at %p\n", 134 printk(KERN_DEBUG "Allocated %u bytes for %d pacas at %p\n",
@@ -146,7 +148,7 @@ void __init free_unused_pacas(void)
146 if (new_size >= paca_size) 148 if (new_size >= paca_size)
147 return; 149 return;
148 150
149 lmb_free(__pa(paca) + new_size, paca_size - new_size); 151 memblock_free(__pa(paca) + new_size, paca_size - new_size);
150 152
151 printk(KERN_DEBUG "Freed %u bytes for unused pacas\n", 153 printk(KERN_DEBUG "Freed %u bytes for unused pacas\n",
152 paca_size - new_size); 154 paca_size - new_size);
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index f3c42ce516e7..5b38f6ae2b29 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -26,6 +26,7 @@
26#include <linux/syscalls.h> 26#include <linux/syscalls.h>
27#include <linux/irq.h> 27#include <linux/irq.h>
28#include <linux/vmalloc.h> 28#include <linux/vmalloc.h>
29#include <linux/slab.h>
29 30
30#include <asm/processor.h> 31#include <asm/processor.h>
31#include <asm/io.h> 32#include <asm/io.h>
@@ -1096,8 +1097,8 @@ void __devinit pcibios_setup_bus_devices(struct pci_bus *bus)
1096 if (dev->is_added) 1097 if (dev->is_added)
1097 continue; 1098 continue;
1098 1099
1099 /* Setup OF node pointer in archdata */ 1100 /* Setup OF node pointer in the device */
1100 sd->of_node = pci_device_to_OF_node(dev); 1101 dev->dev.of_node = pci_device_to_OF_node(dev);
1101 1102
1102 /* Fixup NUMA node as it may not be setup yet by the generic 1103 /* Fixup NUMA node as it may not be setup yet by the generic
1103 * code and is needed by the DMA init 1104 * code and is needed by the DMA init
@@ -1308,6 +1309,7 @@ void pcibios_allocate_bus_resources(struct pci_bus *bus)
1308 printk(KERN_WARNING "PCI: Cannot allocate resource region " 1309 printk(KERN_WARNING "PCI: Cannot allocate resource region "
1309 "%d of PCI bridge %d, will remap\n", i, bus->number); 1310 "%d of PCI bridge %d, will remap\n", i, bus->number);
1310clear_resource: 1311clear_resource:
1312 res->start = res->end = 0;
1311 res->flags = 0; 1313 res->flags = 0;
1312 } 1314 }
1313 1315
diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c
index c13668cf36d9..e7db5b48004a 100644
--- a/arch/powerpc/kernel/pci_32.c
+++ b/arch/powerpc/kernel/pci_32.c
@@ -14,6 +14,7 @@
14#include <linux/irq.h> 14#include <linux/irq.h>
15#include <linux/list.h> 15#include <linux/list.h>
16#include <linux/of.h> 16#include <linux/of.h>
17#include <linux/slab.h>
17 18
18#include <asm/processor.h> 19#include <asm/processor.h>
19#include <asm/io.h> 20#include <asm/io.h>
diff --git a/arch/powerpc/kernel/pci_dn.c b/arch/powerpc/kernel/pci_dn.c
index d5e36e5dc7c2..d56b35ee7f74 100644
--- a/arch/powerpc/kernel/pci_dn.c
+++ b/arch/powerpc/kernel/pci_dn.c
@@ -23,6 +23,7 @@
23#include <linux/pci.h> 23#include <linux/pci.h>
24#include <linux/string.h> 24#include <linux/string.h>
25#include <linux/init.h> 25#include <linux/init.h>
26#include <linux/gfp.h>
26 27
27#include <asm/io.h> 28#include <asm/io.h>
28#include <asm/prom.h> 29#include <asm/prom.h>
diff --git a/arch/powerpc/kernel/pci_of_scan.c b/arch/powerpc/kernel/pci_of_scan.c
index cd11d5ca80df..6ddb795f83e8 100644
--- a/arch/powerpc/kernel/pci_of_scan.c
+++ b/arch/powerpc/kernel/pci_of_scan.c
@@ -310,6 +310,8 @@ static void __devinit __of_scan_bus(struct device_node *node,
310 /* Scan direct children */ 310 /* Scan direct children */
311 for_each_child_of_node(node, child) { 311 for_each_child_of_node(node, child) {
312 pr_debug(" * %s\n", child->full_name); 312 pr_debug(" * %s\n", child->full_name);
313 if (!of_device_is_available(child))
314 continue;
313 reg = of_get_property(child, "reg", &reglen); 315 reg = of_get_property(child, "reg", &reglen);
314 if (reg == NULL || reglen < 20) 316 if (reg == NULL || reglen < 20)
315 continue; 317 continue;
diff --git a/arch/powerpc/kernel/perf_event.c b/arch/powerpc/kernel/perf_event.c
index 08460a2e9f41..5c14ffe51258 100644
--- a/arch/powerpc/kernel/perf_event.c
+++ b/arch/powerpc/kernel/perf_event.c
@@ -35,6 +35,9 @@ struct cpu_hw_events {
35 u64 alternatives[MAX_HWEVENTS][MAX_EVENT_ALTERNATIVES]; 35 u64 alternatives[MAX_HWEVENTS][MAX_EVENT_ALTERNATIVES];
36 unsigned long amasks[MAX_HWEVENTS][MAX_EVENT_ALTERNATIVES]; 36 unsigned long amasks[MAX_HWEVENTS][MAX_EVENT_ALTERNATIVES];
37 unsigned long avalues[MAX_HWEVENTS][MAX_EVENT_ALTERNATIVES]; 37 unsigned long avalues[MAX_HWEVENTS][MAX_EVENT_ALTERNATIVES];
38
39 unsigned int group_flag;
40 int n_txn_start;
38}; 41};
39DEFINE_PER_CPU(struct cpu_hw_events, cpu_hw_events); 42DEFINE_PER_CPU(struct cpu_hw_events, cpu_hw_events);
40 43
@@ -718,66 +721,6 @@ static int collect_events(struct perf_event *group, int max_count,
718 return n; 721 return n;
719} 722}
720 723
721static void event_sched_in(struct perf_event *event)
722{
723 event->state = PERF_EVENT_STATE_ACTIVE;
724 event->oncpu = smp_processor_id();
725 event->tstamp_running += event->ctx->time - event->tstamp_stopped;
726 if (is_software_event(event))
727 event->pmu->enable(event);
728}
729
730/*
731 * Called to enable a whole group of events.
732 * Returns 1 if the group was enabled, or -EAGAIN if it could not be.
733 * Assumes the caller has disabled interrupts and has
734 * frozen the PMU with hw_perf_save_disable.
735 */
736int hw_perf_group_sched_in(struct perf_event *group_leader,
737 struct perf_cpu_context *cpuctx,
738 struct perf_event_context *ctx)
739{
740 struct cpu_hw_events *cpuhw;
741 long i, n, n0;
742 struct perf_event *sub;
743
744 if (!ppmu)
745 return 0;
746 cpuhw = &__get_cpu_var(cpu_hw_events);
747 n0 = cpuhw->n_events;
748 n = collect_events(group_leader, ppmu->n_counter - n0,
749 &cpuhw->event[n0], &cpuhw->events[n0],
750 &cpuhw->flags[n0]);
751 if (n < 0)
752 return -EAGAIN;
753 if (check_excludes(cpuhw->event, cpuhw->flags, n0, n))
754 return -EAGAIN;
755 i = power_check_constraints(cpuhw, cpuhw->events, cpuhw->flags, n + n0);
756 if (i < 0)
757 return -EAGAIN;
758 cpuhw->n_events = n0 + n;
759 cpuhw->n_added += n;
760
761 /*
762 * OK, this group can go on; update event states etc.,
763 * and enable any software events
764 */
765 for (i = n0; i < n0 + n; ++i)
766 cpuhw->event[i]->hw.config = cpuhw->events[i];
767 cpuctx->active_oncpu += n;
768 n = 1;
769 event_sched_in(group_leader);
770 list_for_each_entry(sub, &group_leader->sibling_list, group_entry) {
771 if (sub->state != PERF_EVENT_STATE_OFF) {
772 event_sched_in(sub);
773 ++n;
774 }
775 }
776 ctx->nr_active += n;
777
778 return 1;
779}
780
781/* 724/*
782 * Add a event to the PMU. 725 * Add a event to the PMU.
783 * If all events are not already frozen, then we disable and 726 * If all events are not already frozen, then we disable and
@@ -805,12 +748,22 @@ static int power_pmu_enable(struct perf_event *event)
805 cpuhw->event[n0] = event; 748 cpuhw->event[n0] = event;
806 cpuhw->events[n0] = event->hw.config; 749 cpuhw->events[n0] = event->hw.config;
807 cpuhw->flags[n0] = event->hw.event_base; 750 cpuhw->flags[n0] = event->hw.event_base;
751
752 /*
753 * If group events scheduling transaction was started,
754 * skip the schedulability test here, it will be peformed
755 * at commit time(->commit_txn) as a whole
756 */
757 if (cpuhw->group_flag & PERF_EVENT_TXN_STARTED)
758 goto nocheck;
759
808 if (check_excludes(cpuhw->event, cpuhw->flags, n0, 1)) 760 if (check_excludes(cpuhw->event, cpuhw->flags, n0, 1))
809 goto out; 761 goto out;
810 if (power_check_constraints(cpuhw, cpuhw->events, cpuhw->flags, n0 + 1)) 762 if (power_check_constraints(cpuhw, cpuhw->events, cpuhw->flags, n0 + 1))
811 goto out; 763 goto out;
812
813 event->hw.config = cpuhw->events[n0]; 764 event->hw.config = cpuhw->events[n0];
765
766nocheck:
814 ++cpuhw->n_events; 767 ++cpuhw->n_events;
815 ++cpuhw->n_added; 768 ++cpuhw->n_added;
816 769
@@ -838,8 +791,11 @@ static void power_pmu_disable(struct perf_event *event)
838 cpuhw = &__get_cpu_var(cpu_hw_events); 791 cpuhw = &__get_cpu_var(cpu_hw_events);
839 for (i = 0; i < cpuhw->n_events; ++i) { 792 for (i = 0; i < cpuhw->n_events; ++i) {
840 if (event == cpuhw->event[i]) { 793 if (event == cpuhw->event[i]) {
841 while (++i < cpuhw->n_events) 794 while (++i < cpuhw->n_events) {
842 cpuhw->event[i-1] = cpuhw->event[i]; 795 cpuhw->event[i-1] = cpuhw->event[i];
796 cpuhw->events[i-1] = cpuhw->events[i];
797 cpuhw->flags[i-1] = cpuhw->flags[i];
798 }
843 --cpuhw->n_events; 799 --cpuhw->n_events;
844 ppmu->disable_pmc(event->hw.idx - 1, cpuhw->mmcr); 800 ppmu->disable_pmc(event->hw.idx - 1, cpuhw->mmcr);
845 if (event->hw.idx) { 801 if (event->hw.idx) {
@@ -896,11 +852,65 @@ static void power_pmu_unthrottle(struct perf_event *event)
896 local_irq_restore(flags); 852 local_irq_restore(flags);
897} 853}
898 854
855/*
856 * Start group events scheduling transaction
857 * Set the flag to make pmu::enable() not perform the
858 * schedulability test, it will be performed at commit time
859 */
860void power_pmu_start_txn(const struct pmu *pmu)
861{
862 struct cpu_hw_events *cpuhw = &__get_cpu_var(cpu_hw_events);
863
864 cpuhw->group_flag |= PERF_EVENT_TXN_STARTED;
865 cpuhw->n_txn_start = cpuhw->n_events;
866}
867
868/*
869 * Stop group events scheduling transaction
870 * Clear the flag and pmu::enable() will perform the
871 * schedulability test.
872 */
873void power_pmu_cancel_txn(const struct pmu *pmu)
874{
875 struct cpu_hw_events *cpuhw = &__get_cpu_var(cpu_hw_events);
876
877 cpuhw->group_flag &= ~PERF_EVENT_TXN_STARTED;
878}
879
880/*
881 * Commit group events scheduling transaction
882 * Perform the group schedulability test as a whole
883 * Return 0 if success
884 */
885int power_pmu_commit_txn(const struct pmu *pmu)
886{
887 struct cpu_hw_events *cpuhw;
888 long i, n;
889
890 if (!ppmu)
891 return -EAGAIN;
892 cpuhw = &__get_cpu_var(cpu_hw_events);
893 n = cpuhw->n_events;
894 if (check_excludes(cpuhw->event, cpuhw->flags, 0, n))
895 return -EAGAIN;
896 i = power_check_constraints(cpuhw, cpuhw->events, cpuhw->flags, n);
897 if (i < 0)
898 return -EAGAIN;
899
900 for (i = cpuhw->n_txn_start; i < n; ++i)
901 cpuhw->event[i]->hw.config = cpuhw->events[i];
902
903 return 0;
904}
905
899struct pmu power_pmu = { 906struct pmu power_pmu = {
900 .enable = power_pmu_enable, 907 .enable = power_pmu_enable,
901 .disable = power_pmu_disable, 908 .disable = power_pmu_disable,
902 .read = power_pmu_read, 909 .read = power_pmu_read,
903 .unthrottle = power_pmu_unthrottle, 910 .unthrottle = power_pmu_unthrottle,
911 .start_txn = power_pmu_start_txn,
912 .cancel_txn = power_pmu_cancel_txn,
913 .commit_txn = power_pmu_commit_txn,
904}; 914};
905 915
906/* 916/*
diff --git a/arch/powerpc/kernel/perf_event_fsl_emb.c b/arch/powerpc/kernel/perf_event_fsl_emb.c
index 369872f6cf78..babcceecd2ea 100644
--- a/arch/powerpc/kernel/perf_event_fsl_emb.c
+++ b/arch/powerpc/kernel/perf_event_fsl_emb.c
@@ -566,9 +566,9 @@ static void record_and_restart(struct perf_event *event, unsigned long val,
566 * Finally record data if requested. 566 * Finally record data if requested.
567 */ 567 */
568 if (record) { 568 if (record) {
569 struct perf_sample_data data = { 569 struct perf_sample_data data;
570 .period = event->hw.last_period, 570
571 }; 571 perf_sample_data_init(&data, 0);
572 572
573 if (perf_event_overflow(event, nmi, &data, regs)) { 573 if (perf_event_overflow(event, nmi, &data, regs)) {
574 /* 574 /*
diff --git a/arch/powerpc/kernel/proc_powerpc.c b/arch/powerpc/kernel/proc_powerpc.c
index 1ed3b8d7981e..c8ae3714e79b 100644
--- a/arch/powerpc/kernel/proc_powerpc.c
+++ b/arch/powerpc/kernel/proc_powerpc.c
@@ -19,7 +19,6 @@
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/mm.h> 20#include <linux/mm.h>
21#include <linux/proc_fs.h> 21#include <linux/proc_fs.h>
22#include <linux/slab.h>
23#include <linux/kernel.h> 22#include <linux/kernel.h>
24 23
25#include <asm/machdep.h> 24#include <asm/machdep.h>
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
index e4d71ced97ef..773424df828a 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -371,6 +371,9 @@ int set_dabr(unsigned long dabr)
371 /* XXX should we have a CPU_FTR_HAS_DABR ? */ 371 /* XXX should we have a CPU_FTR_HAS_DABR ? */
372#ifdef CONFIG_PPC_ADV_DEBUG_REGS 372#ifdef CONFIG_PPC_ADV_DEBUG_REGS
373 mtspr(SPRN_DAC1, dabr); 373 mtspr(SPRN_DAC1, dabr);
374#ifdef CONFIG_PPC_47x
375 isync();
376#endif
374#elif defined(CONFIG_PPC_BOOK3S) 377#elif defined(CONFIG_PPC_BOOK3S)
375 mtspr(SPRN_DABR, dabr); 378 mtspr(SPRN_DABR, dabr);
376#endif 379#endif
@@ -1002,7 +1005,6 @@ out:
1002 return error; 1005 return error;
1003} 1006}
1004 1007
1005#ifdef CONFIG_IRQSTACKS
1006static inline int valid_irq_stack(unsigned long sp, struct task_struct *p, 1008static inline int valid_irq_stack(unsigned long sp, struct task_struct *p,
1007 unsigned long nbytes) 1009 unsigned long nbytes)
1008{ 1010{
@@ -1027,10 +1029,6 @@ static inline int valid_irq_stack(unsigned long sp, struct task_struct *p,
1027 return 0; 1029 return 0;
1028} 1030}
1029 1031
1030#else
1031#define valid_irq_stack(sp, p, nb) 0
1032#endif /* CONFIG_IRQSTACKS */
1033
1034int validate_sp(unsigned long sp, struct task_struct *p, 1032int validate_sp(unsigned long sp, struct task_struct *p,
1035 unsigned long nbytes) 1033 unsigned long nbytes)
1036{ 1034{
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 05131d634e73..fed9bf6187d1 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -31,7 +31,7 @@
31#include <linux/kexec.h> 31#include <linux/kexec.h>
32#include <linux/debugfs.h> 32#include <linux/debugfs.h>
33#include <linux/irq.h> 33#include <linux/irq.h>
34#include <linux/lmb.h> 34#include <linux/memblock.h>
35 35
36#include <asm/prom.h> 36#include <asm/prom.h>
37#include <asm/rtas.h> 37#include <asm/rtas.h>
@@ -98,7 +98,7 @@ static void __init move_device_tree(void)
98 98
99 if ((memory_limit && (start + size) > memory_limit) || 99 if ((memory_limit && (start + size) > memory_limit) ||
100 overlaps_crashkernel(start, size)) { 100 overlaps_crashkernel(start, size)) {
101 p = __va(lmb_alloc_base(size, PAGE_SIZE, lmb.rmo_size)); 101 p = __va(memblock_alloc_base(size, PAGE_SIZE, memblock.rmo_size));
102 memcpy(p, initial_boot_params, size); 102 memcpy(p, initial_boot_params, size);
103 initial_boot_params = (struct boot_param_header *)p; 103 initial_boot_params = (struct boot_param_header *)p;
104 DBG("Moved device tree to 0x%p\n", p); 104 DBG("Moved device tree to 0x%p\n", p);
@@ -411,13 +411,13 @@ static int __init early_init_dt_scan_drconf_memory(unsigned long node)
411{ 411{
412 __be32 *dm, *ls, *usm; 412 __be32 *dm, *ls, *usm;
413 unsigned long l, n, flags; 413 unsigned long l, n, flags;
414 u64 base, size, lmb_size; 414 u64 base, size, memblock_size;
415 unsigned int is_kexec_kdump = 0, rngs; 415 unsigned int is_kexec_kdump = 0, rngs;
416 416
417 ls = of_get_flat_dt_prop(node, "ibm,lmb-size", &l); 417 ls = of_get_flat_dt_prop(node, "ibm,lmb-size", &l);
418 if (ls == NULL || l < dt_root_size_cells * sizeof(__be32)) 418 if (ls == NULL || l < dt_root_size_cells * sizeof(__be32))
419 return 0; 419 return 0;
420 lmb_size = dt_mem_next_cell(dt_root_size_cells, &ls); 420 memblock_size = dt_mem_next_cell(dt_root_size_cells, &ls);
421 421
422 dm = of_get_flat_dt_prop(node, "ibm,dynamic-memory", &l); 422 dm = of_get_flat_dt_prop(node, "ibm,dynamic-memory", &l);
423 if (dm == NULL || l < sizeof(__be32)) 423 if (dm == NULL || l < sizeof(__be32))
@@ -442,11 +442,11 @@ static int __init early_init_dt_scan_drconf_memory(unsigned long node)
442 or if the block is not assigned to this partition (0x8) */ 442 or if the block is not assigned to this partition (0x8) */
443 if ((flags & 0x80) || !(flags & 0x8)) 443 if ((flags & 0x80) || !(flags & 0x8))
444 continue; 444 continue;
445 size = lmb_size; 445 size = memblock_size;
446 rngs = 1; 446 rngs = 1;
447 if (is_kexec_kdump) { 447 if (is_kexec_kdump) {
448 /* 448 /*
449 * For each lmb in ibm,dynamic-memory, a corresponding 449 * For each memblock in ibm,dynamic-memory, a corresponding
450 * entry in linux,drconf-usable-memory property contains 450 * entry in linux,drconf-usable-memory property contains
451 * a counter 'p' followed by 'p' (base, size) duple. 451 * a counter 'p' followed by 'p' (base, size) duple.
452 * Now read the counter from 452 * Now read the counter from
@@ -469,10 +469,10 @@ static int __init early_init_dt_scan_drconf_memory(unsigned long node)
469 if ((base + size) > 0x80000000ul) 469 if ((base + size) > 0x80000000ul)
470 size = 0x80000000ul - base; 470 size = 0x80000000ul - base;
471 } 471 }
472 lmb_add(base, size); 472 memblock_add(base, size);
473 } while (--rngs); 473 } while (--rngs);
474 } 474 }
475 lmb_dump_all(); 475 memblock_dump_all();
476 return 0; 476 return 0;
477} 477}
478#else 478#else
@@ -501,14 +501,14 @@ void __init early_init_dt_add_memory_arch(u64 base, u64 size)
501 } 501 }
502#endif 502#endif
503 503
504 lmb_add(base, size); 504 memblock_add(base, size);
505 505
506 memstart_addr = min((u64)memstart_addr, base); 506 memstart_addr = min((u64)memstart_addr, base);
507} 507}
508 508
509u64 __init early_init_dt_alloc_memory_arch(u64 size, u64 align) 509u64 __init early_init_dt_alloc_memory_arch(u64 size, u64 align)
510{ 510{
511 return lmb_alloc(size, align); 511 return memblock_alloc(size, align);
512} 512}
513 513
514#ifdef CONFIG_BLK_DEV_INITRD 514#ifdef CONFIG_BLK_DEV_INITRD
@@ -534,12 +534,12 @@ static void __init early_reserve_mem(void)
534 /* before we do anything, lets reserve the dt blob */ 534 /* before we do anything, lets reserve the dt blob */
535 self_base = __pa((unsigned long)initial_boot_params); 535 self_base = __pa((unsigned long)initial_boot_params);
536 self_size = initial_boot_params->totalsize; 536 self_size = initial_boot_params->totalsize;
537 lmb_reserve(self_base, self_size); 537 memblock_reserve(self_base, self_size);
538 538
539#ifdef CONFIG_BLK_DEV_INITRD 539#ifdef CONFIG_BLK_DEV_INITRD
540 /* then reserve the initrd, if any */ 540 /* then reserve the initrd, if any */
541 if (initrd_start && (initrd_end > initrd_start)) 541 if (initrd_start && (initrd_end > initrd_start))
542 lmb_reserve(__pa(initrd_start), initrd_end - initrd_start); 542 memblock_reserve(__pa(initrd_start), initrd_end - initrd_start);
543#endif /* CONFIG_BLK_DEV_INITRD */ 543#endif /* CONFIG_BLK_DEV_INITRD */
544 544
545#ifdef CONFIG_PPC32 545#ifdef CONFIG_PPC32
@@ -560,7 +560,7 @@ static void __init early_reserve_mem(void)
560 if (base_32 == self_base && size_32 == self_size) 560 if (base_32 == self_base && size_32 == self_size)
561 continue; 561 continue;
562 DBG("reserving: %x -> %x\n", base_32, size_32); 562 DBG("reserving: %x -> %x\n", base_32, size_32);
563 lmb_reserve(base_32, size_32); 563 memblock_reserve(base_32, size_32);
564 } 564 }
565 return; 565 return;
566 } 566 }
@@ -571,7 +571,7 @@ static void __init early_reserve_mem(void)
571 if (size == 0) 571 if (size == 0)
572 break; 572 break;
573 DBG("reserving: %llx -> %llx\n", base, size); 573 DBG("reserving: %llx -> %llx\n", base, size);
574 lmb_reserve(base, size); 574 memblock_reserve(base, size);
575 } 575 }
576} 576}
577 577
@@ -594,7 +594,7 @@ static inline unsigned long phyp_dump_calculate_reserve_size(void)
594 return phyp_dump_info->reserve_bootvar; 594 return phyp_dump_info->reserve_bootvar;
595 595
596 /* divide by 20 to get 5% of value */ 596 /* divide by 20 to get 5% of value */
597 tmp = lmb_end_of_DRAM(); 597 tmp = memblock_end_of_DRAM();
598 do_div(tmp, 20); 598 do_div(tmp, 20);
599 599
600 /* round it down in multiples of 256 */ 600 /* round it down in multiples of 256 */
@@ -633,11 +633,11 @@ static void __init phyp_dump_reserve_mem(void)
633 if (phyp_dump_info->phyp_dump_is_active) { 633 if (phyp_dump_info->phyp_dump_is_active) {
634 /* Reserve *everything* above RMR.Area freed by userland tools*/ 634 /* Reserve *everything* above RMR.Area freed by userland tools*/
635 base = variable_reserve_size; 635 base = variable_reserve_size;
636 size = lmb_end_of_DRAM() - base; 636 size = memblock_end_of_DRAM() - base;
637 637
638 /* XXX crashed_ram_end is wrong, since it may be beyond 638 /* XXX crashed_ram_end is wrong, since it may be beyond
639 * the memory_limit, it will need to be adjusted. */ 639 * the memory_limit, it will need to be adjusted. */
640 lmb_reserve(base, size); 640 memblock_reserve(base, size);
641 641
642 phyp_dump_info->init_reserve_start = base; 642 phyp_dump_info->init_reserve_start = base;
643 phyp_dump_info->init_reserve_size = size; 643 phyp_dump_info->init_reserve_size = size;
@@ -645,8 +645,8 @@ static void __init phyp_dump_reserve_mem(void)
645 size = phyp_dump_info->cpu_state_size + 645 size = phyp_dump_info->cpu_state_size +
646 phyp_dump_info->hpte_region_size + 646 phyp_dump_info->hpte_region_size +
647 variable_reserve_size; 647 variable_reserve_size;
648 base = lmb_end_of_DRAM() - size; 648 base = memblock_end_of_DRAM() - size;
649 lmb_reserve(base, size); 649 memblock_reserve(base, size);
650 phyp_dump_info->init_reserve_start = base; 650 phyp_dump_info->init_reserve_start = base;
651 phyp_dump_info->init_reserve_size = size; 651 phyp_dump_info->init_reserve_size = size;
652 } 652 }
@@ -681,8 +681,8 @@ void __init early_init_devtree(void *params)
681 */ 681 */
682 of_scan_flat_dt(early_init_dt_scan_chosen, NULL); 682 of_scan_flat_dt(early_init_dt_scan_chosen, NULL);
683 683
684 /* Scan memory nodes and rebuild LMBs */ 684 /* Scan memory nodes and rebuild MEMBLOCKs */
685 lmb_init(); 685 memblock_init();
686 of_scan_flat_dt(early_init_dt_scan_root, NULL); 686 of_scan_flat_dt(early_init_dt_scan_root, NULL);
687 of_scan_flat_dt(early_init_dt_scan_memory_ppc, NULL); 687 of_scan_flat_dt(early_init_dt_scan_memory_ppc, NULL);
688 688
@@ -690,11 +690,11 @@ void __init early_init_devtree(void *params)
690 strlcpy(boot_command_line, cmd_line, COMMAND_LINE_SIZE); 690 strlcpy(boot_command_line, cmd_line, COMMAND_LINE_SIZE);
691 parse_early_param(); 691 parse_early_param();
692 692
693 /* Reserve LMB regions used by kernel, initrd, dt, etc... */ 693 /* Reserve MEMBLOCK regions used by kernel, initrd, dt, etc... */
694 lmb_reserve(PHYSICAL_START, __pa(klimit) - PHYSICAL_START); 694 memblock_reserve(PHYSICAL_START, __pa(klimit) - PHYSICAL_START);
695 /* If relocatable, reserve first 32k for interrupt vectors etc. */ 695 /* If relocatable, reserve first 32k for interrupt vectors etc. */
696 if (PHYSICAL_START > MEMORY_START) 696 if (PHYSICAL_START > MEMORY_START)
697 lmb_reserve(MEMORY_START, 0x8000); 697 memblock_reserve(MEMORY_START, 0x8000);
698 reserve_kdump_trampoline(); 698 reserve_kdump_trampoline();
699 reserve_crashkernel(); 699 reserve_crashkernel();
700 early_reserve_mem(); 700 early_reserve_mem();
@@ -706,17 +706,17 @@ void __init early_init_devtree(void *params)
706 706
707 /* Ensure that total memory size is page-aligned, because 707 /* Ensure that total memory size is page-aligned, because
708 * otherwise mark_bootmem() gets upset. */ 708 * otherwise mark_bootmem() gets upset. */
709 lmb_analyze(); 709 memblock_analyze();
710 memsize = lmb_phys_mem_size(); 710 memsize = memblock_phys_mem_size();
711 if ((memsize & PAGE_MASK) != memsize) 711 if ((memsize & PAGE_MASK) != memsize)
712 limit = memsize & PAGE_MASK; 712 limit = memsize & PAGE_MASK;
713 } 713 }
714 lmb_enforce_memory_limit(limit); 714 memblock_enforce_memory_limit(limit);
715 715
716 lmb_analyze(); 716 memblock_analyze();
717 lmb_dump_all(); 717 memblock_dump_all();
718 718
719 DBG("Phys. mem: %llx\n", lmb_phys_mem_size()); 719 DBG("Phys. mem: %llx\n", memblock_phys_mem_size());
720 720
721 /* We may need to relocate the flat tree, do it now. 721 /* We may need to relocate the flat tree, do it now.
722 * FIXME .. and the initrd too? */ 722 * FIXME .. and the initrd too? */
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
index 5f306c4946e5..3b6f8ae9b8cc 100644
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -653,6 +653,7 @@ static void __init early_cmdline_parse(void)
653#else 653#else
654#define OV5_CMO 0x00 654#define OV5_CMO 0x00
655#endif 655#endif
656#define OV5_TYPE1_AFFINITY 0x80 /* Type 1 NUMA affinity */
656 657
657/* Option Vector 6: IBM PAPR hints */ 658/* Option Vector 6: IBM PAPR hints */
658#define OV6_LINUX 0x02 /* Linux is our OS */ 659#define OV6_LINUX 0x02 /* Linux is our OS */
@@ -706,7 +707,7 @@ static unsigned char ibm_architecture_vec[] = {
706 OV5_DONATE_DEDICATE_CPU | OV5_MSI, 707 OV5_DONATE_DEDICATE_CPU | OV5_MSI,
707 0, 708 0,
708 OV5_CMO, 709 OV5_CMO,
709 0, 710 OV5_TYPE1_AFFINITY,
710 0, 711 0,
711 0, 712 0,
712 0, 713 0,
@@ -871,7 +872,7 @@ static void __init prom_send_capabilities(void)
871 "ibm_architecture_vec structure inconsistent: 0x%x !\n", 872 "ibm_architecture_vec structure inconsistent: 0x%x !\n",
872 *cores); 873 *cores);
873 } else { 874 } else {
874 *cores = NR_CPUS / prom_count_smt_threads(); 875 *cores = DIV_ROUND_UP(NR_CPUS, prom_count_smt_threads());
875 prom_printf("Max number of cores passed to firmware: 0x%x\n", 876 prom_printf("Max number of cores passed to firmware: 0x%x\n",
876 (unsigned long)*cores); 877 (unsigned long)*cores);
877 } 878 }
diff --git a/arch/powerpc/kernel/prom_init_check.sh b/arch/powerpc/kernel/prom_init_check.sh
index 1ac136b128f0..9f82f4937892 100644
--- a/arch/powerpc/kernel/prom_init_check.sh
+++ b/arch/powerpc/kernel/prom_init_check.sh
@@ -52,12 +52,18 @@ do
52 if [ "${UNDEF:0:9}" = "_restgpr_" ]; then 52 if [ "${UNDEF:0:9}" = "_restgpr_" ]; then
53 OK=1 53 OK=1
54 fi 54 fi
55 if [ "${UNDEF:0:10}" = "_restgpr0_" ]; then
56 OK=1
57 fi
55 if [ "${UNDEF:0:11}" = "_rest32gpr_" ]; then 58 if [ "${UNDEF:0:11}" = "_rest32gpr_" ]; then
56 OK=1 59 OK=1
57 fi 60 fi
58 if [ "${UNDEF:0:9}" = "_savegpr_" ]; then 61 if [ "${UNDEF:0:9}" = "_savegpr_" ]; then
59 OK=1 62 OK=1
60 fi 63 fi
64 if [ "${UNDEF:0:10}" = "_savegpr0_" ]; then
65 OK=1
66 fi
61 if [ "${UNDEF:0:11}" = "_save32gpr_" ]; then 67 if [ "${UNDEF:0:11}" = "_save32gpr_" ]; then
62 OK=1 68 OK=1
63 fi 69 fi
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
index ed2cfe17d25e..7a0c0199ea28 100644
--- a/arch/powerpc/kernel/ptrace.c
+++ b/arch/powerpc/kernel/ptrace.c
@@ -39,6 +39,109 @@
39#include <asm/system.h> 39#include <asm/system.h>
40 40
41/* 41/*
42 * The parameter save area on the stack is used to store arguments being passed
43 * to callee function and is located at fixed offset from stack pointer.
44 */
45#ifdef CONFIG_PPC32
46#define PARAMETER_SAVE_AREA_OFFSET 24 /* bytes */
47#else /* CONFIG_PPC32 */
48#define PARAMETER_SAVE_AREA_OFFSET 48 /* bytes */
49#endif
50
51struct pt_regs_offset {
52 const char *name;
53 int offset;
54};
55
56#define STR(s) #s /* convert to string */
57#define REG_OFFSET_NAME(r) {.name = #r, .offset = offsetof(struct pt_regs, r)}
58#define GPR_OFFSET_NAME(num) \
59 {.name = STR(gpr##num), .offset = offsetof(struct pt_regs, gpr[num])}
60#define REG_OFFSET_END {.name = NULL, .offset = 0}
61
62static const struct pt_regs_offset regoffset_table[] = {
63 GPR_OFFSET_NAME(0),
64 GPR_OFFSET_NAME(1),
65 GPR_OFFSET_NAME(2),
66 GPR_OFFSET_NAME(3),
67 GPR_OFFSET_NAME(4),
68 GPR_OFFSET_NAME(5),
69 GPR_OFFSET_NAME(6),
70 GPR_OFFSET_NAME(7),
71 GPR_OFFSET_NAME(8),
72 GPR_OFFSET_NAME(9),
73 GPR_OFFSET_NAME(10),
74 GPR_OFFSET_NAME(11),
75 GPR_OFFSET_NAME(12),
76 GPR_OFFSET_NAME(13),
77 GPR_OFFSET_NAME(14),
78 GPR_OFFSET_NAME(15),
79 GPR_OFFSET_NAME(16),
80 GPR_OFFSET_NAME(17),
81 GPR_OFFSET_NAME(18),
82 GPR_OFFSET_NAME(19),
83 GPR_OFFSET_NAME(20),
84 GPR_OFFSET_NAME(21),
85 GPR_OFFSET_NAME(22),
86 GPR_OFFSET_NAME(23),
87 GPR_OFFSET_NAME(24),
88 GPR_OFFSET_NAME(25),
89 GPR_OFFSET_NAME(26),
90 GPR_OFFSET_NAME(27),
91 GPR_OFFSET_NAME(28),
92 GPR_OFFSET_NAME(29),
93 GPR_OFFSET_NAME(30),
94 GPR_OFFSET_NAME(31),
95 REG_OFFSET_NAME(nip),
96 REG_OFFSET_NAME(msr),
97 REG_OFFSET_NAME(ctr),
98 REG_OFFSET_NAME(link),
99 REG_OFFSET_NAME(xer),
100 REG_OFFSET_NAME(ccr),
101#ifdef CONFIG_PPC64
102 REG_OFFSET_NAME(softe),
103#else
104 REG_OFFSET_NAME(mq),
105#endif
106 REG_OFFSET_NAME(trap),
107 REG_OFFSET_NAME(dar),
108 REG_OFFSET_NAME(dsisr),
109 REG_OFFSET_END,
110};
111
112/**
113 * regs_query_register_offset() - query register offset from its name
114 * @name: the name of a register
115 *
116 * regs_query_register_offset() returns the offset of a register in struct
117 * pt_regs from its name. If the name is invalid, this returns -EINVAL;
118 */
119int regs_query_register_offset(const char *name)
120{
121 const struct pt_regs_offset *roff;
122 for (roff = regoffset_table; roff->name != NULL; roff++)
123 if (!strcmp(roff->name, name))
124 return roff->offset;
125 return -EINVAL;
126}
127
128/**
129 * regs_query_register_name() - query register name from its offset
130 * @offset: the offset of a register in struct pt_regs.
131 *
132 * regs_query_register_name() returns the name of a register from its
133 * offset in struct pt_regs. If the @offset is invalid, this returns NULL;
134 */
135const char *regs_query_register_name(unsigned int offset)
136{
137 const struct pt_regs_offset *roff;
138 for (roff = regoffset_table; roff->name != NULL; roff++)
139 if (roff->offset == offset)
140 return roff->name;
141 return NULL;
142}
143
144/*
42 * does not yet catch signals sent when the child dies. 145 * does not yet catch signals sent when the child dies.
43 * in exit.c or in signal.c. 146 * in exit.c or in signal.c.
44 */ 147 */
diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c
index fd0d29493fd6..d0516dbee762 100644
--- a/arch/powerpc/kernel/rtas.c
+++ b/arch/powerpc/kernel/rtas.c
@@ -22,7 +22,8 @@
22#include <linux/smp.h> 22#include <linux/smp.h>
23#include <linux/completion.h> 23#include <linux/completion.h>
24#include <linux/cpumask.h> 24#include <linux/cpumask.h>
25#include <linux/lmb.h> 25#include <linux/memblock.h>
26#include <linux/slab.h>
26 27
27#include <asm/prom.h> 28#include <asm/prom.h>
28#include <asm/rtas.h> 29#include <asm/rtas.h>
@@ -690,10 +691,14 @@ void rtas_os_term(char *str)
690{ 691{
691 int status; 692 int status;
692 693
693 if (panic_timeout) 694 /*
694 return; 695 * Firmware with the ibm,extended-os-term property is guaranteed
695 696 * to always return from an ibm,os-term call. Earlier versions without
696 if (RTAS_UNKNOWN_SERVICE == rtas_token("ibm,os-term")) 697 * this property may terminate the partition which we want to avoid
698 * since it interferes with panic_timeout.
699 */
700 if (RTAS_UNKNOWN_SERVICE == rtas_token("ibm,os-term") ||
701 RTAS_UNKNOWN_SERVICE == rtas_token("ibm,extended-os-term"))
697 return; 702 return;
698 703
699 snprintf(rtas_os_term_buf, 2048, "OS panic: %s", str); 704 snprintf(rtas_os_term_buf, 2048, "OS panic: %s", str);
@@ -704,8 +709,7 @@ void rtas_os_term(char *str)
704 } while (rtas_busy_delay(status)); 709 } while (rtas_busy_delay(status));
705 710
706 if (status != 0) 711 if (status != 0)
707 printk(KERN_EMERG "ibm,os-term call failed %d\n", 712 printk(KERN_EMERG "ibm,os-term call failed %d\n", status);
708 status);
709} 713}
710 714
711static int ibm_suspend_me_token = RTAS_UNKNOWN_SERVICE; 715static int ibm_suspend_me_token = RTAS_UNKNOWN_SERVICE;
@@ -930,11 +934,11 @@ void __init rtas_initialize(void)
930 */ 934 */
931#ifdef CONFIG_PPC64 935#ifdef CONFIG_PPC64
932 if (machine_is(pseries) && firmware_has_feature(FW_FEATURE_LPAR)) { 936 if (machine_is(pseries) && firmware_has_feature(FW_FEATURE_LPAR)) {
933 rtas_region = min(lmb.rmo_size, RTAS_INSTANTIATE_MAX); 937 rtas_region = min(memblock.rmo_size, RTAS_INSTANTIATE_MAX);
934 ibm_suspend_me_token = rtas_token("ibm,suspend-me"); 938 ibm_suspend_me_token = rtas_token("ibm,suspend-me");
935 } 939 }
936#endif 940#endif
937 rtas_rmo_buf = lmb_alloc_base(RTAS_RMOBUF_MAX, PAGE_SIZE, rtas_region); 941 rtas_rmo_buf = memblock_alloc_base(RTAS_RMOBUF_MAX, PAGE_SIZE, rtas_region);
938 942
939#ifdef CONFIG_RTAS_ERROR_LOGGING 943#ifdef CONFIG_RTAS_ERROR_LOGGING
940 rtas_last_error_token = rtas_token("rtas-last-error"); 944 rtas_last_error_token = rtas_token("rtas-last-error");
diff --git a/arch/powerpc/kernel/rtas_flash.c b/arch/powerpc/kernel/rtas_flash.c
index a85117d5c9a4..67a84d8f118d 100644
--- a/arch/powerpc/kernel/rtas_flash.c
+++ b/arch/powerpc/kernel/rtas_flash.c
@@ -15,6 +15,7 @@
15 15
16#include <linux/module.h> 16#include <linux/module.h>
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/slab.h>
18#include <linux/proc_fs.h> 19#include <linux/proc_fs.h>
19#include <asm/delay.h> 20#include <asm/delay.h>
20#include <asm/uaccess.h> 21#include <asm/uaccess.h>
@@ -93,12 +94,8 @@ struct flash_block_list {
93 struct flash_block_list *next; 94 struct flash_block_list *next;
94 struct flash_block blocks[FLASH_BLOCKS_PER_NODE]; 95 struct flash_block blocks[FLASH_BLOCKS_PER_NODE];
95}; 96};
96struct flash_block_list_header { /* just the header of flash_block_list */
97 unsigned long num_blocks;
98 struct flash_block_list *next;
99};
100 97
101static struct flash_block_list_header rtas_firmware_flash_list = {0, NULL}; 98static struct flash_block_list *rtas_firmware_flash_list;
102 99
103/* Use slab cache to guarantee 4k alignment */ 100/* Use slab cache to guarantee 4k alignment */
104static struct kmem_cache *flash_block_cache = NULL; 101static struct kmem_cache *flash_block_cache = NULL;
@@ -107,13 +104,14 @@ static struct kmem_cache *flash_block_cache = NULL;
107 104
108/* Local copy of the flash block list. 105/* Local copy of the flash block list.
109 * We only allow one open of the flash proc file and create this 106 * We only allow one open of the flash proc file and create this
110 * list as we go. This list will be put in the 107 * list as we go. The rtas_firmware_flash_list varable will be
111 * rtas_firmware_flash_list var once it is fully read. 108 * set once the data is fully read.
112 * 109 *
113 * For convenience as we build the list we use virtual addrs, 110 * For convenience as we build the list we use virtual addrs,
114 * we do not fill in the version number, and the length field 111 * we do not fill in the version number, and the length field
115 * is treated as the number of entries currently in the block 112 * is treated as the number of entries currently in the block
116 * (i.e. not a byte count). This is all fixed on release. 113 * (i.e. not a byte count). This is all fixed when calling
114 * the flash routine.
117 */ 115 */
118 116
119/* Status int must be first member of struct */ 117/* Status int must be first member of struct */
@@ -200,16 +198,16 @@ static int rtas_flash_release(struct inode *inode, struct file *file)
200 if (uf->flist) { 198 if (uf->flist) {
201 /* File was opened in write mode for a new flash attempt */ 199 /* File was opened in write mode for a new flash attempt */
202 /* Clear saved list */ 200 /* Clear saved list */
203 if (rtas_firmware_flash_list.next) { 201 if (rtas_firmware_flash_list) {
204 free_flash_list(rtas_firmware_flash_list.next); 202 free_flash_list(rtas_firmware_flash_list);
205 rtas_firmware_flash_list.next = NULL; 203 rtas_firmware_flash_list = NULL;
206 } 204 }
207 205
208 if (uf->status != FLASH_AUTH) 206 if (uf->status != FLASH_AUTH)
209 uf->status = flash_list_valid(uf->flist); 207 uf->status = flash_list_valid(uf->flist);
210 208
211 if (uf->status == FLASH_IMG_READY) 209 if (uf->status == FLASH_IMG_READY)
212 rtas_firmware_flash_list.next = uf->flist; 210 rtas_firmware_flash_list = uf->flist;
213 else 211 else
214 free_flash_list(uf->flist); 212 free_flash_list(uf->flist);
215 213
@@ -592,7 +590,7 @@ static void rtas_flash_firmware(int reboot_type)
592 unsigned long rtas_block_list; 590 unsigned long rtas_block_list;
593 int i, status, update_token; 591 int i, status, update_token;
594 592
595 if (rtas_firmware_flash_list.next == NULL) 593 if (rtas_firmware_flash_list == NULL)
596 return; /* nothing to do */ 594 return; /* nothing to do */
597 595
598 if (reboot_type != SYS_RESTART) { 596 if (reboot_type != SYS_RESTART) {
@@ -609,20 +607,25 @@ static void rtas_flash_firmware(int reboot_type)
609 return; 607 return;
610 } 608 }
611 609
612 /* NOTE: the "first" block list is a global var with no data 610 /*
613 * blocks in the kernel data segment. We do this because 611 * NOTE: the "first" block must be under 4GB, so we create
614 * we want to ensure this block_list addr is under 4GB. 612 * an entry with no data blocks in the reserved buffer in
613 * the kernel data segment.
615 */ 614 */
616 rtas_firmware_flash_list.num_blocks = 0; 615 spin_lock(&rtas_data_buf_lock);
617 flist = (struct flash_block_list *)&rtas_firmware_flash_list; 616 flist = (struct flash_block_list *)&rtas_data_buf[0];
617 flist->num_blocks = 0;
618 flist->next = rtas_firmware_flash_list;
618 rtas_block_list = virt_to_abs(flist); 619 rtas_block_list = virt_to_abs(flist);
619 if (rtas_block_list >= 4UL*1024*1024*1024) { 620 if (rtas_block_list >= 4UL*1024*1024*1024) {
620 printk(KERN_ALERT "FLASH: kernel bug...flash list header addr above 4GB\n"); 621 printk(KERN_ALERT "FLASH: kernel bug...flash list header addr above 4GB\n");
622 spin_unlock(&rtas_data_buf_lock);
621 return; 623 return;
622 } 624 }
623 625
624 printk(KERN_ALERT "FLASH: preparing saved firmware image for flash\n"); 626 printk(KERN_ALERT "FLASH: preparing saved firmware image for flash\n");
625 /* Update the block_list in place. */ 627 /* Update the block_list in place. */
628 rtas_firmware_flash_list = NULL; /* too hard to backout on error */
626 image_size = 0; 629 image_size = 0;
627 for (f = flist; f; f = next) { 630 for (f = flist; f; f = next) {
628 /* Translate data addrs to absolute */ 631 /* Translate data addrs to absolute */
@@ -663,6 +666,7 @@ static void rtas_flash_firmware(int reboot_type)
663 printk(KERN_ALERT "FLASH: unknown flash return code %d\n", status); 666 printk(KERN_ALERT "FLASH: unknown flash return code %d\n", status);
664 break; 667 break;
665 } 668 }
669 spin_unlock(&rtas_data_buf_lock);
666} 670}
667 671
668static void remove_flash_pde(struct proc_dir_entry *dp) 672static void remove_flash_pde(struct proc_dir_entry *dp)
diff --git a/arch/powerpc/kernel/rtasd.c b/arch/powerpc/kernel/rtasd.c
index 2e4832ab2108..638883e23e3a 100644
--- a/arch/powerpc/kernel/rtasd.c
+++ b/arch/powerpc/kernel/rtasd.c
@@ -20,6 +20,7 @@
20#include <linux/spinlock.h> 20#include <linux/spinlock.h>
21#include <linux/cpu.h> 21#include <linux/cpu.h>
22#include <linux/workqueue.h> 22#include <linux/workqueue.h>
23#include <linux/slab.h>
23 24
24#include <asm/uaccess.h> 25#include <asm/uaccess.h>
25#include <asm/io.h> 26#include <asm/io.h>
@@ -410,9 +411,9 @@ static void rtas_event_scan(struct work_struct *w)
410 411
411 get_online_cpus(); 412 get_online_cpus();
412 413
413 cpu = next_cpu(smp_processor_id(), cpu_online_map); 414 cpu = cpumask_next(smp_processor_id(), cpu_online_mask);
414 if (cpu == NR_CPUS) { 415 if (cpu >= nr_cpu_ids) {
415 cpu = first_cpu(cpu_online_map); 416 cpu = cpumask_first(cpu_online_mask);
416 417
417 if (first_pass) { 418 if (first_pass) {
418 first_pass = 0; 419 first_pass = 0;
@@ -465,8 +466,8 @@ static void start_event_scan(void)
465 /* Retreive errors from nvram if any */ 466 /* Retreive errors from nvram if any */
466 retreive_nvram_error_log(); 467 retreive_nvram_error_log();
467 468
468 schedule_delayed_work_on(first_cpu(cpu_online_map), &event_scan_work, 469 schedule_delayed_work_on(cpumask_first(cpu_online_mask),
469 event_scan_delay); 470 &event_scan_work, event_scan_delay);
470} 471}
471 472
472static int __init rtas_init(void) 473static int __init rtas_init(void)
@@ -489,6 +490,12 @@ static int __init rtas_init(void)
489 return -ENODEV; 490 return -ENODEV;
490 } 491 }
491 492
493 if (!rtas_event_scan_rate) {
494 /* Broken firmware: take a rate of zero to mean don't scan */
495 printk(KERN_DEBUG "rtasd: scan rate is 0, not scanning\n");
496 return 0;
497 }
498
492 /* Make room for the sequence number */ 499 /* Make room for the sequence number */
493 rtas_error_log_max = rtas_get_error_log_max(); 500 rtas_error_log_max = rtas_get_error_log_max();
494 rtas_error_log_buffer_max = rtas_error_log_max + sizeof(int); 501 rtas_error_log_buffer_max = rtas_error_log_max + sizeof(int);
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index 48f0a008b20b..b7e6c7e193ae 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -33,7 +33,7 @@
33#include <linux/serial_8250.h> 33#include <linux/serial_8250.h>
34#include <linux/debugfs.h> 34#include <linux/debugfs.h>
35#include <linux/percpu.h> 35#include <linux/percpu.h>
36#include <linux/lmb.h> 36#include <linux/memblock.h>
37#include <linux/of_platform.h> 37#include <linux/of_platform.h>
38#include <asm/io.h> 38#include <asm/io.h>
39#include <asm/paca.h> 39#include <asm/paca.h>
@@ -161,45 +161,44 @@ extern u32 cpu_temp_both(unsigned long cpu);
161DEFINE_PER_CPU(unsigned int, cpu_pvr); 161DEFINE_PER_CPU(unsigned int, cpu_pvr);
162#endif 162#endif
163 163
164static int show_cpuinfo(struct seq_file *m, void *v) 164static void show_cpuinfo_summary(struct seq_file *m)
165{ 165{
166 unsigned long cpu_id = (unsigned long)v - 1; 166 struct device_node *root;
167 unsigned int pvr; 167 const char *model = NULL;
168 unsigned short maj;
169 unsigned short min;
170
171 if (cpu_id == NR_CPUS) {
172 struct device_node *root;
173 const char *model = NULL;
174#if defined(CONFIG_SMP) && defined(CONFIG_PPC32) 168#if defined(CONFIG_SMP) && defined(CONFIG_PPC32)
175 unsigned long bogosum = 0; 169 unsigned long bogosum = 0;
176 int i; 170 int i;
177 for_each_online_cpu(i) 171 for_each_online_cpu(i)
178 bogosum += loops_per_jiffy; 172 bogosum += loops_per_jiffy;
179 seq_printf(m, "total bogomips\t: %lu.%02lu\n", 173 seq_printf(m, "total bogomips\t: %lu.%02lu\n",
180 bogosum/(500000/HZ), bogosum/(5000/HZ) % 100); 174 bogosum/(500000/HZ), bogosum/(5000/HZ) % 100);
181#endif /* CONFIG_SMP && CONFIG_PPC32 */ 175#endif /* CONFIG_SMP && CONFIG_PPC32 */
182 seq_printf(m, "timebase\t: %lu\n", ppc_tb_freq); 176 seq_printf(m, "timebase\t: %lu\n", ppc_tb_freq);
183 if (ppc_md.name) 177 if (ppc_md.name)
184 seq_printf(m, "platform\t: %s\n", ppc_md.name); 178 seq_printf(m, "platform\t: %s\n", ppc_md.name);
185 root = of_find_node_by_path("/"); 179 root = of_find_node_by_path("/");
186 if (root) 180 if (root)
187 model = of_get_property(root, "model", NULL); 181 model = of_get_property(root, "model", NULL);
188 if (model) 182 if (model)
189 seq_printf(m, "model\t\t: %s\n", model); 183 seq_printf(m, "model\t\t: %s\n", model);
190 of_node_put(root); 184 of_node_put(root);
191 185
192 if (ppc_md.show_cpuinfo != NULL) 186 if (ppc_md.show_cpuinfo != NULL)
193 ppc_md.show_cpuinfo(m); 187 ppc_md.show_cpuinfo(m);
194 188
195#ifdef CONFIG_PPC32 189#ifdef CONFIG_PPC32
196 /* Display the amount of memory */ 190 /* Display the amount of memory */
197 seq_printf(m, "Memory\t\t: %d MB\n", 191 seq_printf(m, "Memory\t\t: %d MB\n",
198 (unsigned int)(total_memory / (1024 * 1024))); 192 (unsigned int)(total_memory / (1024 * 1024)));
199#endif 193#endif
194}
200 195
201 return 0; 196static int show_cpuinfo(struct seq_file *m, void *v)
202 } 197{
198 unsigned long cpu_id = (unsigned long)v - 1;
199 unsigned int pvr;
200 unsigned short maj;
201 unsigned short min;
203 202
204 /* We only show online cpus: disable preempt (overzealous, I 203 /* We only show online cpus: disable preempt (overzealous, I
205 * knew) to prevent cpu going down. */ 204 * knew) to prevent cpu going down. */
@@ -308,19 +307,28 @@ static int show_cpuinfo(struct seq_file *m, void *v)
308#endif 307#endif
309 308
310 preempt_enable(); 309 preempt_enable();
310
311 /* If this is the last cpu, print the summary */
312 if (cpumask_next(cpu_id, cpu_online_mask) >= nr_cpu_ids)
313 show_cpuinfo_summary(m);
314
311 return 0; 315 return 0;
312} 316}
313 317
314static void *c_start(struct seq_file *m, loff_t *pos) 318static void *c_start(struct seq_file *m, loff_t *pos)
315{ 319{
316 unsigned long i = *pos; 320 if (*pos == 0) /* just in case, cpu 0 is not the first */
317 321 *pos = cpumask_first(cpu_online_mask);
318 return i <= NR_CPUS ? (void *)(i + 1) : NULL; 322 else
323 *pos = cpumask_next(*pos - 1, cpu_online_mask);
324 if ((*pos) < nr_cpu_ids)
325 return (void *)(unsigned long)(*pos + 1);
326 return NULL;
319} 327}
320 328
321static void *c_next(struct seq_file *m, void *v, loff_t *pos) 329static void *c_next(struct seq_file *m, void *v, loff_t *pos)
322{ 330{
323 ++*pos; 331 (*pos)++;
324 return c_start(m, pos); 332 return c_start(m, pos);
325} 333}
326 334
@@ -386,14 +394,14 @@ static void __init cpu_init_thread_core_maps(int tpc)
386 394
387/** 395/**
388 * setup_cpu_maps - initialize the following cpu maps: 396 * setup_cpu_maps - initialize the following cpu maps:
389 * cpu_possible_map 397 * cpu_possible_mask
390 * cpu_present_map 398 * cpu_present_mask
391 * 399 *
392 * Having the possible map set up early allows us to restrict allocations 400 * Having the possible map set up early allows us to restrict allocations
393 * of things like irqstacks to num_possible_cpus() rather than NR_CPUS. 401 * of things like irqstacks to num_possible_cpus() rather than NR_CPUS.
394 * 402 *
395 * We do not initialize the online map here; cpus set their own bits in 403 * We do not initialize the online map here; cpus set their own bits in
396 * cpu_online_map as they come up. 404 * cpu_online_mask as they come up.
397 * 405 *
398 * This function is valid only for Open Firmware systems. finish_device_tree 406 * This function is valid only for Open Firmware systems. finish_device_tree
399 * must be called before using this. 407 * must be called before using this.
diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c
index b152de3e64d4..a10ffc85ada7 100644
--- a/arch/powerpc/kernel/setup_32.c
+++ b/arch/powerpc/kernel/setup_32.c
@@ -16,7 +16,7 @@
16#include <linux/root_dev.h> 16#include <linux/root_dev.h>
17#include <linux/cpu.h> 17#include <linux/cpu.h>
18#include <linux/console.h> 18#include <linux/console.h>
19#include <linux/lmb.h> 19#include <linux/memblock.h>
20 20
21#include <asm/io.h> 21#include <asm/io.h>
22#include <asm/prom.h> 22#include <asm/prom.h>
@@ -39,7 +39,6 @@
39#include <asm/serial.h> 39#include <asm/serial.h>
40#include <asm/udbg.h> 40#include <asm/udbg.h>
41#include <asm/mmu_context.h> 41#include <asm/mmu_context.h>
42#include <asm/swiotlb.h>
43 42
44#include "setup.h" 43#include "setup.h"
45 44
@@ -242,23 +241,19 @@ int __init ppc_init(void)
242 241
243arch_initcall(ppc_init); 242arch_initcall(ppc_init);
244 243
245#ifdef CONFIG_IRQSTACKS
246static void __init irqstack_early_init(void) 244static void __init irqstack_early_init(void)
247{ 245{
248 unsigned int i; 246 unsigned int i;
249 247
250 /* interrupt stacks must be in lowmem, we get that for free on ppc32 248 /* interrupt stacks must be in lowmem, we get that for free on ppc32
251 * as the lmb is limited to lowmem by LMB_REAL_LIMIT */ 249 * as the memblock is limited to lowmem by MEMBLOCK_REAL_LIMIT */
252 for_each_possible_cpu(i) { 250 for_each_possible_cpu(i) {
253 softirq_ctx[i] = (struct thread_info *) 251 softirq_ctx[i] = (struct thread_info *)
254 __va(lmb_alloc(THREAD_SIZE, THREAD_SIZE)); 252 __va(memblock_alloc(THREAD_SIZE, THREAD_SIZE));
255 hardirq_ctx[i] = (struct thread_info *) 253 hardirq_ctx[i] = (struct thread_info *)
256 __va(lmb_alloc(THREAD_SIZE, THREAD_SIZE)); 254 __va(memblock_alloc(THREAD_SIZE, THREAD_SIZE));
257 } 255 }
258} 256}
259#else
260#define irqstack_early_init()
261#endif
262 257
263#if defined(CONFIG_BOOKE) || defined(CONFIG_40x) 258#if defined(CONFIG_BOOKE) || defined(CONFIG_40x)
264static void __init exc_lvl_early_init(void) 259static void __init exc_lvl_early_init(void)
@@ -266,15 +261,15 @@ static void __init exc_lvl_early_init(void)
266 unsigned int i; 261 unsigned int i;
267 262
268 /* interrupt stacks must be in lowmem, we get that for free on ppc32 263 /* interrupt stacks must be in lowmem, we get that for free on ppc32
269 * as the lmb is limited to lowmem by LMB_REAL_LIMIT */ 264 * as the memblock is limited to lowmem by MEMBLOCK_REAL_LIMIT */
270 for_each_possible_cpu(i) { 265 for_each_possible_cpu(i) {
271 critirq_ctx[i] = (struct thread_info *) 266 critirq_ctx[i] = (struct thread_info *)
272 __va(lmb_alloc(THREAD_SIZE, THREAD_SIZE)); 267 __va(memblock_alloc(THREAD_SIZE, THREAD_SIZE));
273#ifdef CONFIG_BOOKE 268#ifdef CONFIG_BOOKE
274 dbgirq_ctx[i] = (struct thread_info *) 269 dbgirq_ctx[i] = (struct thread_info *)
275 __va(lmb_alloc(THREAD_SIZE, THREAD_SIZE)); 270 __va(memblock_alloc(THREAD_SIZE, THREAD_SIZE));
276 mcheckirq_ctx[i] = (struct thread_info *) 271 mcheckirq_ctx[i] = (struct thread_info *)
277 __va(lmb_alloc(THREAD_SIZE, THREAD_SIZE)); 272 __va(memblock_alloc(THREAD_SIZE, THREAD_SIZE));
278#endif 273#endif
279 } 274 }
280} 275}
@@ -343,11 +338,6 @@ void __init setup_arch(char **cmdline_p)
343 ppc_md.setup_arch(); 338 ppc_md.setup_arch();
344 if ( ppc_md.progress ) ppc_md.progress("arch: exit", 0x3eab); 339 if ( ppc_md.progress ) ppc_md.progress("arch: exit", 0x3eab);
345 340
346#ifdef CONFIG_SWIOTLB
347 if (ppc_swiotlb_enable)
348 swiotlb_init(1);
349#endif
350
351 paging_init(); 341 paging_init();
352 342
353 /* Initialize the MMU context management stuff */ 343 /* Initialize the MMU context management stuff */
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index 63547394048c..d135f93cb0f6 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -34,7 +34,7 @@
34#include <linux/bootmem.h> 34#include <linux/bootmem.h>
35#include <linux/pci.h> 35#include <linux/pci.h>
36#include <linux/lockdep.h> 36#include <linux/lockdep.h>
37#include <linux/lmb.h> 37#include <linux/memblock.h>
38#include <asm/io.h> 38#include <asm/io.h>
39#include <asm/kdump.h> 39#include <asm/kdump.h>
40#include <asm/prom.h> 40#include <asm/prom.h>
@@ -61,7 +61,6 @@
61#include <asm/xmon.h> 61#include <asm/xmon.h>
62#include <asm/udbg.h> 62#include <asm/udbg.h>
63#include <asm/kexec.h> 63#include <asm/kexec.h>
64#include <asm/swiotlb.h>
65#include <asm/mmu_context.h> 64#include <asm/mmu_context.h>
66 65
67#include "setup.h" 66#include "setup.h"
@@ -159,7 +158,7 @@ static void __init setup_paca(struct paca_struct *new_paca)
159 * the CPU that ignores the top 2 bits of the address in real 158 * the CPU that ignores the top 2 bits of the address in real
160 * mode so we can access kernel globals normally provided we 159 * mode so we can access kernel globals normally provided we
161 * only toy with things in the RMO region. From here, we do 160 * only toy with things in the RMO region. From here, we do
162 * some early parsing of the device-tree to setup out LMB 161 * some early parsing of the device-tree to setup out MEMBLOCK
163 * data structures, and allocate & initialize the hash table 162 * data structures, and allocate & initialize the hash table
164 * and segment tables so we can start running with translation 163 * and segment tables so we can start running with translation
165 * enabled. 164 * enabled.
@@ -405,7 +404,7 @@ void __init setup_system(void)
405 404
406 printk("-----------------------------------------------------\n"); 405 printk("-----------------------------------------------------\n");
407 printk("ppc64_pft_size = 0x%llx\n", ppc64_pft_size); 406 printk("ppc64_pft_size = 0x%llx\n", ppc64_pft_size);
408 printk("physicalMemorySize = 0x%llx\n", lmb_phys_mem_size()); 407 printk("physicalMemorySize = 0x%llx\n", memblock_phys_mem_size());
409 if (ppc64_caches.dline_size != 0x80) 408 if (ppc64_caches.dline_size != 0x80)
410 printk("ppc64_caches.dcache_line_size = 0x%x\n", 409 printk("ppc64_caches.dcache_line_size = 0x%x\n",
411 ppc64_caches.dline_size); 410 ppc64_caches.dline_size);
@@ -425,9 +424,17 @@ void __init setup_system(void)
425 DBG(" <- setup_system()\n"); 424 DBG(" <- setup_system()\n");
426} 425}
427 426
428#ifdef CONFIG_IRQSTACKS 427static u64 slb0_limit(void)
428{
429 if (cpu_has_feature(CPU_FTR_1T_SEGMENT)) {
430 return 1UL << SID_SHIFT_1T;
431 }
432 return 1UL << SID_SHIFT;
433}
434
429static void __init irqstack_early_init(void) 435static void __init irqstack_early_init(void)
430{ 436{
437 u64 limit = slb0_limit();
431 unsigned int i; 438 unsigned int i;
432 439
433 /* 440 /*
@@ -436,16 +443,13 @@ static void __init irqstack_early_init(void)
436 */ 443 */
437 for_each_possible_cpu(i) { 444 for_each_possible_cpu(i) {
438 softirq_ctx[i] = (struct thread_info *) 445 softirq_ctx[i] = (struct thread_info *)
439 __va(lmb_alloc_base(THREAD_SIZE, 446 __va(memblock_alloc_base(THREAD_SIZE,
440 THREAD_SIZE, 0x10000000)); 447 THREAD_SIZE, limit));
441 hardirq_ctx[i] = (struct thread_info *) 448 hardirq_ctx[i] = (struct thread_info *)
442 __va(lmb_alloc_base(THREAD_SIZE, 449 __va(memblock_alloc_base(THREAD_SIZE,
443 THREAD_SIZE, 0x10000000)); 450 THREAD_SIZE, limit));
444 } 451 }
445} 452}
446#else
447#define irqstack_early_init()
448#endif
449 453
450#ifdef CONFIG_PPC_BOOK3E 454#ifdef CONFIG_PPC_BOOK3E
451static void __init exc_lvl_early_init(void) 455static void __init exc_lvl_early_init(void)
@@ -454,11 +458,11 @@ static void __init exc_lvl_early_init(void)
454 458
455 for_each_possible_cpu(i) { 459 for_each_possible_cpu(i) {
456 critirq_ctx[i] = (struct thread_info *) 460 critirq_ctx[i] = (struct thread_info *)
457 __va(lmb_alloc(THREAD_SIZE, THREAD_SIZE)); 461 __va(memblock_alloc(THREAD_SIZE, THREAD_SIZE));
458 dbgirq_ctx[i] = (struct thread_info *) 462 dbgirq_ctx[i] = (struct thread_info *)
459 __va(lmb_alloc(THREAD_SIZE, THREAD_SIZE)); 463 __va(memblock_alloc(THREAD_SIZE, THREAD_SIZE));
460 mcheckirq_ctx[i] = (struct thread_info *) 464 mcheckirq_ctx[i] = (struct thread_info *)
461 __va(lmb_alloc(THREAD_SIZE, THREAD_SIZE)); 465 __va(memblock_alloc(THREAD_SIZE, THREAD_SIZE));
462 } 466 }
463} 467}
464#else 468#else
@@ -471,7 +475,7 @@ static void __init exc_lvl_early_init(void)
471 */ 475 */
472static void __init emergency_stack_init(void) 476static void __init emergency_stack_init(void)
473{ 477{
474 unsigned long limit; 478 u64 limit;
475 unsigned int i; 479 unsigned int i;
476 480
477 /* 481 /*
@@ -483,11 +487,11 @@ static void __init emergency_stack_init(void)
483 * bringup, we need to get at them in real mode. This means they 487 * bringup, we need to get at them in real mode. This means they
484 * must also be within the RMO region. 488 * must also be within the RMO region.
485 */ 489 */
486 limit = min(0x10000000ULL, lmb.rmo_size); 490 limit = min(slb0_limit(), memblock.rmo_size);
487 491
488 for_each_possible_cpu(i) { 492 for_each_possible_cpu(i) {
489 unsigned long sp; 493 unsigned long sp;
490 sp = lmb_alloc_base(THREAD_SIZE, THREAD_SIZE, limit); 494 sp = memblock_alloc_base(THREAD_SIZE, THREAD_SIZE, limit);
491 sp += THREAD_SIZE; 495 sp += THREAD_SIZE;
492 paca[i].emergency_sp = __va(sp); 496 paca[i].emergency_sp = __va(sp);
493 } 497 }
@@ -541,11 +545,6 @@ void __init setup_arch(char **cmdline_p)
541 if (ppc_md.setup_arch) 545 if (ppc_md.setup_arch)
542 ppc_md.setup_arch(); 546 ppc_md.setup_arch();
543 547
544#ifdef CONFIG_SWIOTLB
545 if (ppc_swiotlb_enable)
546 swiotlb_init(1);
547#endif
548
549 paging_init(); 548 paging_init();
550 549
551 /* Initialize the MMU context management stuff */ 550 /* Initialize the MMU context management stuff */
@@ -579,12 +578,6 @@ void ppc64_boot_msg(unsigned int src, const char *msg)
579 printk("[boot]%04x %s\n", src, msg); 578 printk("[boot]%04x %s\n", src, msg);
580} 579}
581 580
582void cpu_die(void)
583{
584 if (ppc_md.cpu_die)
585 ppc_md.cpu_die();
586}
587
588#ifdef CONFIG_SMP 581#ifdef CONFIG_SMP
589#define PCPU_DYN_SIZE () 582#define PCPU_DYN_SIZE ()
590 583
diff --git a/arch/powerpc/kernel/smp-tbsync.c b/arch/powerpc/kernel/smp-tbsync.c
index a5e54526403d..03e45c4a9ef1 100644
--- a/arch/powerpc/kernel/smp-tbsync.c
+++ b/arch/powerpc/kernel/smp-tbsync.c
@@ -10,6 +10,7 @@
10#include <linux/smp.h> 10#include <linux/smp.h>
11#include <linux/unistd.h> 11#include <linux/unistd.h>
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/slab.h>
13#include <asm/atomic.h> 14#include <asm/atomic.h>
14#include <asm/smp.h> 15#include <asm/smp.h>
15#include <asm/time.h> 16#include <asm/time.h>
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index c2ee14498077..5c196d1086d9 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -59,8 +59,8 @@
59 59
60struct thread_info *secondary_ti; 60struct thread_info *secondary_ti;
61 61
62DEFINE_PER_CPU(cpumask_t, cpu_sibling_map) = CPU_MASK_NONE; 62DEFINE_PER_CPU(cpumask_var_t, cpu_sibling_map);
63DEFINE_PER_CPU(cpumask_t, cpu_core_map) = CPU_MASK_NONE; 63DEFINE_PER_CPU(cpumask_var_t, cpu_core_map);
64 64
65EXPORT_PER_CPU_SYMBOL(cpu_sibling_map); 65EXPORT_PER_CPU_SYMBOL(cpu_sibling_map);
66EXPORT_PER_CPU_SYMBOL(cpu_core_map); 66EXPORT_PER_CPU_SYMBOL(cpu_core_map);
@@ -271,6 +271,16 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
271 smp_store_cpu_info(boot_cpuid); 271 smp_store_cpu_info(boot_cpuid);
272 cpu_callin_map[boot_cpuid] = 1; 272 cpu_callin_map[boot_cpuid] = 1;
273 273
274 for_each_possible_cpu(cpu) {
275 zalloc_cpumask_var_node(&per_cpu(cpu_sibling_map, cpu),
276 GFP_KERNEL, cpu_to_node(cpu));
277 zalloc_cpumask_var_node(&per_cpu(cpu_core_map, cpu),
278 GFP_KERNEL, cpu_to_node(cpu));
279 }
280
281 cpumask_set_cpu(boot_cpuid, cpu_sibling_mask(boot_cpuid));
282 cpumask_set_cpu(boot_cpuid, cpu_core_mask(boot_cpuid));
283
274 if (smp_ops) 284 if (smp_ops)
275 if (smp_ops->probe) 285 if (smp_ops->probe)
276 max_cpus = smp_ops->probe(); 286 max_cpus = smp_ops->probe();
@@ -289,10 +299,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
289void __devinit smp_prepare_boot_cpu(void) 299void __devinit smp_prepare_boot_cpu(void)
290{ 300{
291 BUG_ON(smp_processor_id() != boot_cpuid); 301 BUG_ON(smp_processor_id() != boot_cpuid);
292
293 set_cpu_online(boot_cpuid, true);
294 cpu_set(boot_cpuid, per_cpu(cpu_sibling_map, boot_cpuid));
295 cpu_set(boot_cpuid, per_cpu(cpu_core_map, boot_cpuid));
296#ifdef CONFIG_PPC64 302#ifdef CONFIG_PPC64
297 paca[boot_cpuid].__current = current; 303 paca[boot_cpuid].__current = current;
298#endif 304#endif
@@ -313,7 +319,7 @@ int generic_cpu_disable(void)
313 set_cpu_online(cpu, false); 319 set_cpu_online(cpu, false);
314#ifdef CONFIG_PPC64 320#ifdef CONFIG_PPC64
315 vdso_data->processorCount--; 321 vdso_data->processorCount--;
316 fixup_irqs(cpu_online_map); 322 fixup_irqs(cpu_online_mask);
317#endif 323#endif
318 return 0; 324 return 0;
319} 325}
@@ -333,7 +339,7 @@ int generic_cpu_enable(unsigned int cpu)
333 cpu_relax(); 339 cpu_relax();
334 340
335#ifdef CONFIG_PPC64 341#ifdef CONFIG_PPC64
336 fixup_irqs(cpu_online_map); 342 fixup_irqs(cpu_online_mask);
337 /* counter the irq disable in fixup_irqs */ 343 /* counter the irq disable in fixup_irqs */
338 local_irq_enable(); 344 local_irq_enable();
339#endif 345#endif
@@ -462,7 +468,7 @@ out:
462 return id; 468 return id;
463} 469}
464 470
465/* Must be called when no change can occur to cpu_present_map, 471/* Must be called when no change can occur to cpu_present_mask,
466 * i.e. during cpu online or offline. 472 * i.e. during cpu online or offline.
467 */ 473 */
468static struct device_node *cpu_to_l2cache(int cpu) 474static struct device_node *cpu_to_l2cache(int cpu)
@@ -495,6 +501,14 @@ int __devinit start_secondary(void *unused)
495 current->active_mm = &init_mm; 501 current->active_mm = &init_mm;
496 502
497 smp_store_cpu_info(cpu); 503 smp_store_cpu_info(cpu);
504
505#if defined(CONFIG_BOOKE) || defined(CONFIG_40x)
506 /* Clear any pending timer interrupts */
507 mtspr(SPRN_TSR, TSR_ENW | TSR_WIS | TSR_DIS | TSR_FIS);
508
509 /* Enable decrementer interrupt */
510 mtspr(SPRN_TCR, TCR_DIE);
511#endif
498 set_dec(tb_ticks_per_jiffy); 512 set_dec(tb_ticks_per_jiffy);
499 preempt_disable(); 513 preempt_disable();
500 cpu_callin_map[cpu] = 1; 514 cpu_callin_map[cpu] = 1;
@@ -517,15 +531,15 @@ int __devinit start_secondary(void *unused)
517 for (i = 0; i < threads_per_core; i++) { 531 for (i = 0; i < threads_per_core; i++) {
518 if (cpu_is_offline(base + i)) 532 if (cpu_is_offline(base + i))
519 continue; 533 continue;
520 cpu_set(cpu, per_cpu(cpu_sibling_map, base + i)); 534 cpumask_set_cpu(cpu, cpu_sibling_mask(base + i));
521 cpu_set(base + i, per_cpu(cpu_sibling_map, cpu)); 535 cpumask_set_cpu(base + i, cpu_sibling_mask(cpu));
522 536
523 /* cpu_core_map should be a superset of 537 /* cpu_core_map should be a superset of
524 * cpu_sibling_map even if we don't have cache 538 * cpu_sibling_map even if we don't have cache
525 * information, so update the former here, too. 539 * information, so update the former here, too.
526 */ 540 */
527 cpu_set(cpu, per_cpu(cpu_core_map, base +i)); 541 cpumask_set_cpu(cpu, cpu_core_mask(base + i));
528 cpu_set(base + i, per_cpu(cpu_core_map, cpu)); 542 cpumask_set_cpu(base + i, cpu_core_mask(cpu));
529 } 543 }
530 l2_cache = cpu_to_l2cache(cpu); 544 l2_cache = cpu_to_l2cache(cpu);
531 for_each_online_cpu(i) { 545 for_each_online_cpu(i) {
@@ -533,8 +547,8 @@ int __devinit start_secondary(void *unused)
533 if (!np) 547 if (!np)
534 continue; 548 continue;
535 if (np == l2_cache) { 549 if (np == l2_cache) {
536 cpu_set(cpu, per_cpu(cpu_core_map, i)); 550 cpumask_set_cpu(cpu, cpu_core_mask(i));
537 cpu_set(i, per_cpu(cpu_core_map, cpu)); 551 cpumask_set_cpu(i, cpu_core_mask(cpu));
538 } 552 }
539 of_node_put(np); 553 of_node_put(np);
540 } 554 }
@@ -554,19 +568,22 @@ int setup_profiling_timer(unsigned int multiplier)
554 568
555void __init smp_cpus_done(unsigned int max_cpus) 569void __init smp_cpus_done(unsigned int max_cpus)
556{ 570{
557 cpumask_t old_mask; 571 cpumask_var_t old_mask;
558 572
559 /* We want the setup_cpu() here to be called from CPU 0, but our 573 /* We want the setup_cpu() here to be called from CPU 0, but our
560 * init thread may have been "borrowed" by another CPU in the meantime 574 * init thread may have been "borrowed" by another CPU in the meantime
561 * se we pin us down to CPU 0 for a short while 575 * se we pin us down to CPU 0 for a short while
562 */ 576 */
563 old_mask = current->cpus_allowed; 577 alloc_cpumask_var(&old_mask, GFP_NOWAIT);
564 set_cpus_allowed(current, cpumask_of_cpu(boot_cpuid)); 578 cpumask_copy(old_mask, &current->cpus_allowed);
579 set_cpus_allowed_ptr(current, cpumask_of(boot_cpuid));
565 580
566 if (smp_ops && smp_ops->setup_cpu) 581 if (smp_ops && smp_ops->setup_cpu)
567 smp_ops->setup_cpu(boot_cpuid); 582 smp_ops->setup_cpu(boot_cpuid);
568 583
569 set_cpus_allowed(current, old_mask); 584 set_cpus_allowed_ptr(current, old_mask);
585
586 free_cpumask_var(old_mask);
570 587
571 snapshot_timebases(); 588 snapshot_timebases();
572 589
@@ -591,10 +608,10 @@ int __cpu_disable(void)
591 /* Update sibling maps */ 608 /* Update sibling maps */
592 base = cpu_first_thread_in_core(cpu); 609 base = cpu_first_thread_in_core(cpu);
593 for (i = 0; i < threads_per_core; i++) { 610 for (i = 0; i < threads_per_core; i++) {
594 cpu_clear(cpu, per_cpu(cpu_sibling_map, base + i)); 611 cpumask_clear_cpu(cpu, cpu_sibling_mask(base + i));
595 cpu_clear(base + i, per_cpu(cpu_sibling_map, cpu)); 612 cpumask_clear_cpu(base + i, cpu_sibling_mask(cpu));
596 cpu_clear(cpu, per_cpu(cpu_core_map, base +i)); 613 cpumask_clear_cpu(cpu, cpu_core_mask(base + i));
597 cpu_clear(base + i, per_cpu(cpu_core_map, cpu)); 614 cpumask_clear_cpu(base + i, cpu_core_mask(cpu));
598 } 615 }
599 616
600 l2_cache = cpu_to_l2cache(cpu); 617 l2_cache = cpu_to_l2cache(cpu);
@@ -603,8 +620,8 @@ int __cpu_disable(void)
603 if (!np) 620 if (!np)
604 continue; 621 continue;
605 if (np == l2_cache) { 622 if (np == l2_cache) {
606 cpu_clear(cpu, per_cpu(cpu_core_map, i)); 623 cpumask_clear_cpu(cpu, cpu_core_mask(i));
607 cpu_clear(i, per_cpu(cpu_core_map, cpu)); 624 cpumask_clear_cpu(i, cpu_core_mask(cpu));
608 } 625 }
609 of_node_put(np); 626 of_node_put(np);
610 } 627 }
@@ -631,4 +648,10 @@ void cpu_hotplug_driver_unlock()
631{ 648{
632 mutex_unlock(&powerpc_cpu_hotplug_driver_mutex); 649 mutex_unlock(&powerpc_cpu_hotplug_driver_mutex);
633} 650}
651
652void cpu_die(void)
653{
654 if (ppc_md.cpu_die)
655 ppc_md.cpu_die();
656}
634#endif 657#endif
diff --git a/arch/powerpc/kernel/softemu8xx.c b/arch/powerpc/kernel/softemu8xx.c
index 23c8c5e7dc4d..af0e8290b4fc 100644
--- a/arch/powerpc/kernel/softemu8xx.c
+++ b/arch/powerpc/kernel/softemu8xx.c
@@ -21,7 +21,6 @@
21#include <linux/stddef.h> 21#include <linux/stddef.h>
22#include <linux/unistd.h> 22#include <linux/unistd.h>
23#include <linux/ptrace.h> 23#include <linux/ptrace.h>
24#include <linux/slab.h>
25#include <linux/user.h> 24#include <linux/user.h>
26#include <linux/interrupt.h> 25#include <linux/interrupt.h>
27 26
diff --git a/arch/powerpc/kernel/suspend.c b/arch/powerpc/kernel/suspend.c
index 6fc6328dc626..0167d53da30c 100644
--- a/arch/powerpc/kernel/suspend.c
+++ b/arch/powerpc/kernel/suspend.c
@@ -3,7 +3,7 @@
3 * 3 *
4 * Distribute under GPLv2 4 * Distribute under GPLv2
5 * 5 *
6 * Copyright (c) 2002 Pavel Machek <pavel@suse.cz> 6 * Copyright (c) 2002 Pavel Machek <pavel@ucw.cz>
7 * Copyright (c) 2001 Patrick Mochel <mochel@osdl.org> 7 * Copyright (c) 2001 Patrick Mochel <mochel@osdl.org>
8 */ 8 */
9 9
diff --git a/arch/powerpc/kernel/swsusp_booke.S b/arch/powerpc/kernel/swsusp_booke.S
new file mode 100644
index 000000000000..11a39307dd71
--- /dev/null
+++ b/arch/powerpc/kernel/swsusp_booke.S
@@ -0,0 +1,193 @@
1/*
2 * Based on swsusp_32.S, modified for FSL BookE by
3 * Anton Vorontsov <avorontsov@ru.mvista.com>
4 * Copyright (c) 2009-2010 MontaVista Software, LLC.
5 */
6
7#include <linux/threads.h>
8#include <asm/processor.h>
9#include <asm/page.h>
10#include <asm/cputable.h>
11#include <asm/thread_info.h>
12#include <asm/ppc_asm.h>
13#include <asm/asm-offsets.h>
14#include <asm/mmu.h>
15
16/*
17 * Structure for storing CPU registers on the save area.
18 */
19#define SL_SP 0
20#define SL_PC 4
21#define SL_MSR 8
22#define SL_TCR 0xc
23#define SL_SPRG0 0x10
24#define SL_SPRG1 0x14
25#define SL_SPRG2 0x18
26#define SL_SPRG3 0x1c
27#define SL_SPRG4 0x20
28#define SL_SPRG5 0x24
29#define SL_SPRG6 0x28
30#define SL_SPRG7 0x2c
31#define SL_TBU 0x30
32#define SL_TBL 0x34
33#define SL_R2 0x38
34#define SL_CR 0x3c
35#define SL_LR 0x40
36#define SL_R12 0x44 /* r12 to r31 */
37#define SL_SIZE (SL_R12 + 80)
38
39 .section .data
40 .align 5
41
42_GLOBAL(swsusp_save_area)
43 .space SL_SIZE
44
45
46 .section .text
47 .align 5
48
49_GLOBAL(swsusp_arch_suspend)
50 lis r11,swsusp_save_area@h
51 ori r11,r11,swsusp_save_area@l
52
53 mflr r0
54 stw r0,SL_LR(r11)
55 mfcr r0
56 stw r0,SL_CR(r11)
57 stw r1,SL_SP(r11)
58 stw r2,SL_R2(r11)
59 stmw r12,SL_R12(r11)
60
61 /* Save MSR & TCR */
62 mfmsr r4
63 stw r4,SL_MSR(r11)
64 mfspr r4,SPRN_TCR
65 stw r4,SL_TCR(r11)
66
67 /* Get a stable timebase and save it */
681: mfspr r4,SPRN_TBRU
69 stw r4,SL_TBU(r11)
70 mfspr r5,SPRN_TBRL
71 stw r5,SL_TBL(r11)
72 mfspr r3,SPRN_TBRU
73 cmpw r3,r4
74 bne 1b
75
76 /* Save SPRGs */
77 mfsprg r4,0
78 stw r4,SL_SPRG0(r11)
79 mfsprg r4,1
80 stw r4,SL_SPRG1(r11)
81 mfsprg r4,2
82 stw r4,SL_SPRG2(r11)
83 mfsprg r4,3
84 stw r4,SL_SPRG3(r11)
85 mfsprg r4,4
86 stw r4,SL_SPRG4(r11)
87 mfsprg r4,5
88 stw r4,SL_SPRG5(r11)
89 mfsprg r4,6
90 stw r4,SL_SPRG6(r11)
91 mfsprg r4,7
92 stw r4,SL_SPRG7(r11)
93
94 /* Call the low level suspend stuff (we should probably have made
95 * a stackframe...
96 */
97 bl swsusp_save
98
99 /* Restore LR from the save area */
100 lis r11,swsusp_save_area@h
101 ori r11,r11,swsusp_save_area@l
102 lwz r0,SL_LR(r11)
103 mtlr r0
104
105 blr
106
107_GLOBAL(swsusp_arch_resume)
108 sync
109
110 /* Load ptr the list of pages to copy in r3 */
111 lis r11,(restore_pblist)@h
112 ori r11,r11,restore_pblist@l
113 lwz r3,0(r11)
114
115 /* Copy the pages. This is a very basic implementation, to
116 * be replaced by something more cache efficient */
1171:
118 li r0,256
119 mtctr r0
120 lwz r5,pbe_address(r3) /* source */
121 lwz r6,pbe_orig_address(r3) /* destination */
1222:
123 lwz r8,0(r5)
124 lwz r9,4(r5)
125 lwz r10,8(r5)
126 lwz r11,12(r5)
127 addi r5,r5,16
128 stw r8,0(r6)
129 stw r9,4(r6)
130 stw r10,8(r6)
131 stw r11,12(r6)
132 addi r6,r6,16
133 bdnz 2b
134 lwz r3,pbe_next(r3)
135 cmpwi 0,r3,0
136 bne 1b
137
138 bl flush_dcache_L1
139 bl flush_instruction_cache
140
141 lis r11,swsusp_save_area@h
142 ori r11,r11,swsusp_save_area@l
143
144 lwz r4,SL_SPRG0(r11)
145 mtsprg 0,r4
146 lwz r4,SL_SPRG1(r11)
147 mtsprg 1,r4
148 lwz r4,SL_SPRG2(r11)
149 mtsprg 2,r4
150 lwz r4,SL_SPRG3(r11)
151 mtsprg 3,r4
152 lwz r4,SL_SPRG4(r11)
153 mtsprg 4,r4
154 lwz r4,SL_SPRG5(r11)
155 mtsprg 5,r4
156 lwz r4,SL_SPRG6(r11)
157 mtsprg 6,r4
158 lwz r4,SL_SPRG7(r11)
159 mtsprg 7,r4
160
161 /* restore the MSR */
162 lwz r3,SL_MSR(r11)
163 mtmsr r3
164
165 /* Restore TB */
166 li r3,0
167 mtspr SPRN_TBWL,r3
168 lwz r3,SL_TBU(r11)
169 lwz r4,SL_TBL(r11)
170 mtspr SPRN_TBWU,r3
171 mtspr SPRN_TBWL,r4
172
173 /* Restore TCR and clear any pending bits in TSR. */
174 lwz r4,SL_TCR(r11)
175 mtspr SPRN_TCR,r4
176 lis r4, (TSR_ENW | TSR_WIS | TSR_DIS | TSR_FIS)@h
177 mtspr SPRN_TSR,r4
178
179 /* Kick decrementer */
180 li r0,1
181 mtdec r0
182
183 /* Restore the callee-saved registers and return */
184 lwz r0,SL_CR(r11)
185 mtcr r0
186 lwz r2,SL_R2(r11)
187 lmw r12,SL_R12(r11)
188 lwz r1,SL_SP(r11)
189 lwz r0,SL_LR(r11)
190 mtlr r0
191
192 li r3,0
193 blr
diff --git a/arch/powerpc/kernel/sys_ppc32.c b/arch/powerpc/kernel/sys_ppc32.c
index c5a4732bcc48..19471a1cef1a 100644
--- a/arch/powerpc/kernel/sys_ppc32.c
+++ b/arch/powerpc/kernel/sys_ppc32.c
@@ -41,6 +41,7 @@
41#include <linux/ptrace.h> 41#include <linux/ptrace.h>
42#include <linux/elf.h> 42#include <linux/elf.h>
43#include <linux/ipc.h> 43#include <linux/ipc.h>
44#include <linux/slab.h>
44 45
45#include <asm/ptrace.h> 46#include <asm/ptrace.h>
46#include <asm/types.h> 47#include <asm/types.h>
diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c
index e235e52dc4fe..c0d8c2006bf4 100644
--- a/arch/powerpc/kernel/sysfs.c
+++ b/arch/powerpc/kernel/sysfs.c
@@ -35,7 +35,7 @@ static DEFINE_PER_CPU(struct cpu, cpu_devices);
35#ifdef CONFIG_PPC64 35#ifdef CONFIG_PPC64
36 36
37/* Time in microseconds we delay before sleeping in the idle loop */ 37/* Time in microseconds we delay before sleeping in the idle loop */
38DEFINE_PER_CPU(unsigned long, smt_snooze_delay) = { 100 }; 38DEFINE_PER_CPU(long, smt_snooze_delay) = { 100 };
39 39
40static ssize_t store_smt_snooze_delay(struct sys_device *dev, 40static ssize_t store_smt_snooze_delay(struct sys_device *dev,
41 struct sysdev_attribute *attr, 41 struct sysdev_attribute *attr,
@@ -44,9 +44,9 @@ static ssize_t store_smt_snooze_delay(struct sys_device *dev,
44{ 44{
45 struct cpu *cpu = container_of(dev, struct cpu, sysdev); 45 struct cpu *cpu = container_of(dev, struct cpu, sysdev);
46 ssize_t ret; 46 ssize_t ret;
47 unsigned long snooze; 47 long snooze;
48 48
49 ret = sscanf(buf, "%lu", &snooze); 49 ret = sscanf(buf, "%ld", &snooze);
50 if (ret != 1) 50 if (ret != 1)
51 return -EINVAL; 51 return -EINVAL;
52 52
@@ -61,53 +61,23 @@ static ssize_t show_smt_snooze_delay(struct sys_device *dev,
61{ 61{
62 struct cpu *cpu = container_of(dev, struct cpu, sysdev); 62 struct cpu *cpu = container_of(dev, struct cpu, sysdev);
63 63
64 return sprintf(buf, "%lu\n", per_cpu(smt_snooze_delay, cpu->sysdev.id)); 64 return sprintf(buf, "%ld\n", per_cpu(smt_snooze_delay, cpu->sysdev.id));
65} 65}
66 66
67static SYSDEV_ATTR(smt_snooze_delay, 0644, show_smt_snooze_delay, 67static SYSDEV_ATTR(smt_snooze_delay, 0644, show_smt_snooze_delay,
68 store_smt_snooze_delay); 68 store_smt_snooze_delay);
69 69
70/* Only parse OF options if the matching cmdline option was not specified */
71static int smt_snooze_cmdline;
72
73static int __init smt_setup(void)
74{
75 struct device_node *options;
76 const unsigned int *val;
77 unsigned int cpu;
78
79 if (!cpu_has_feature(CPU_FTR_SMT))
80 return -ENODEV;
81
82 options = of_find_node_by_path("/options");
83 if (!options)
84 return -ENODEV;
85
86 val = of_get_property(options, "ibm,smt-snooze-delay", NULL);
87 if (!smt_snooze_cmdline && val) {
88 for_each_possible_cpu(cpu)
89 per_cpu(smt_snooze_delay, cpu) = *val;
90 }
91
92 of_node_put(options);
93 return 0;
94}
95__initcall(smt_setup);
96
97static int __init setup_smt_snooze_delay(char *str) 70static int __init setup_smt_snooze_delay(char *str)
98{ 71{
99 unsigned int cpu; 72 unsigned int cpu;
100 int snooze; 73 long snooze;
101 74
102 if (!cpu_has_feature(CPU_FTR_SMT)) 75 if (!cpu_has_feature(CPU_FTR_SMT))
103 return 1; 76 return 1;
104 77
105 smt_snooze_cmdline = 1; 78 snooze = simple_strtol(str, NULL, 10);
106 79 for_each_possible_cpu(cpu)
107 if (get_option(&str, &snooze)) { 80 per_cpu(smt_snooze_delay, cpu) = snooze;
108 for_each_possible_cpu(cpu)
109 per_cpu(smt_snooze_delay, cpu) = snooze;
110 }
111 81
112 return 1; 82 return 1;
113} 83}
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
index 1b16b9a3e49a..0441bbdadbd1 100644
--- a/arch/powerpc/kernel/time.c
+++ b/arch/powerpc/kernel/time.c
@@ -532,25 +532,60 @@ void __init iSeries_time_init_early(void)
532} 532}
533#endif /* CONFIG_PPC_ISERIES */ 533#endif /* CONFIG_PPC_ISERIES */
534 534
535#if defined(CONFIG_PERF_EVENTS) && defined(CONFIG_PPC32) 535#ifdef CONFIG_PERF_EVENTS
536DEFINE_PER_CPU(u8, perf_event_pending);
537 536
538void set_perf_event_pending(void) 537/*
538 * 64-bit uses a byte in the PACA, 32-bit uses a per-cpu variable...
539 */
540#ifdef CONFIG_PPC64
541static inline unsigned long test_perf_event_pending(void)
539{ 542{
540 get_cpu_var(perf_event_pending) = 1; 543 unsigned long x;
541 set_dec(1); 544
542 put_cpu_var(perf_event_pending); 545 asm volatile("lbz %0,%1(13)"
546 : "=r" (x)
547 : "i" (offsetof(struct paca_struct, perf_event_pending)));
548 return x;
543} 549}
544 550
551static inline void set_perf_event_pending_flag(void)
552{
553 asm volatile("stb %0,%1(13)" : :
554 "r" (1),
555 "i" (offsetof(struct paca_struct, perf_event_pending)));
556}
557
558static inline void clear_perf_event_pending(void)
559{
560 asm volatile("stb %0,%1(13)" : :
561 "r" (0),
562 "i" (offsetof(struct paca_struct, perf_event_pending)));
563}
564
565#else /* 32-bit */
566
567DEFINE_PER_CPU(u8, perf_event_pending);
568
569#define set_perf_event_pending_flag() __get_cpu_var(perf_event_pending) = 1
545#define test_perf_event_pending() __get_cpu_var(perf_event_pending) 570#define test_perf_event_pending() __get_cpu_var(perf_event_pending)
546#define clear_perf_event_pending() __get_cpu_var(perf_event_pending) = 0 571#define clear_perf_event_pending() __get_cpu_var(perf_event_pending) = 0
547 572
548#else /* CONFIG_PERF_EVENTS && CONFIG_PPC32 */ 573#endif /* 32 vs 64 bit */
574
575void set_perf_event_pending(void)
576{
577 preempt_disable();
578 set_perf_event_pending_flag();
579 set_dec(1);
580 preempt_enable();
581}
582
583#else /* CONFIG_PERF_EVENTS */
549 584
550#define test_perf_event_pending() 0 585#define test_perf_event_pending() 0
551#define clear_perf_event_pending() 586#define clear_perf_event_pending()
552 587
553#endif /* CONFIG_PERF_EVENTS && CONFIG_PPC32 */ 588#endif /* CONFIG_PERF_EVENTS */
554 589
555/* 590/*
556 * For iSeries shared processors, we have to let the hypervisor 591 * For iSeries shared processors, we have to let the hypervisor
@@ -582,10 +617,6 @@ void timer_interrupt(struct pt_regs * regs)
582 set_dec(DECREMENTER_MAX); 617 set_dec(DECREMENTER_MAX);
583 618
584#ifdef CONFIG_PPC32 619#ifdef CONFIG_PPC32
585 if (test_perf_event_pending()) {
586 clear_perf_event_pending();
587 perf_event_do_pending();
588 }
589 if (atomic_read(&ppc_n_lost_interrupts) != 0) 620 if (atomic_read(&ppc_n_lost_interrupts) != 0)
590 do_IRQ(regs); 621 do_IRQ(regs);
591#endif 622#endif
@@ -604,6 +635,11 @@ void timer_interrupt(struct pt_regs * regs)
604 635
605 calculate_steal_time(); 636 calculate_steal_time();
606 637
638 if (test_perf_event_pending()) {
639 clear_perf_event_pending();
640 perf_event_do_pending();
641 }
642
607#ifdef CONFIG_PPC_ISERIES 643#ifdef CONFIG_PPC_ISERIES
608 if (firmware_has_feature(FW_FEATURE_ISERIES)) 644 if (firmware_has_feature(FW_FEATURE_ISERIES))
609 get_lppaca()->int_dword.fields.decr_int = 0; 645 get_lppaca()->int_dword.fields.decr_int = 0;
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
index 696626a2e835..25fc33984c2b 100644
--- a/arch/powerpc/kernel/traps.c
+++ b/arch/powerpc/kernel/traps.c
@@ -1,5 +1,6 @@
1/* 1/*
2 * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org) 2 * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
3 * Copyright 2007-2010 Freescale Semiconductor, Inc.
3 * 4 *
4 * This program is free software; you can redistribute it and/or 5 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License 6 * modify it under the terms of the GNU General Public License
@@ -21,7 +22,6 @@
21#include <linux/stddef.h> 22#include <linux/stddef.h>
22#include <linux/unistd.h> 23#include <linux/unistd.h>
23#include <linux/ptrace.h> 24#include <linux/ptrace.h>
24#include <linux/slab.h>
25#include <linux/user.h> 25#include <linux/user.h>
26#include <linux/interrupt.h> 26#include <linux/interrupt.h>
27#include <linux/init.h> 27#include <linux/init.h>
@@ -306,7 +306,7 @@ static inline int check_io_access(struct pt_regs *regs)
306#ifndef CONFIG_FSL_BOOKE 306#ifndef CONFIG_FSL_BOOKE
307#define get_mc_reason(regs) ((regs)->dsisr) 307#define get_mc_reason(regs) ((regs)->dsisr)
308#else 308#else
309#define get_mc_reason(regs) (mfspr(SPRN_MCSR) & MCSR_MASK) 309#define get_mc_reason(regs) (mfspr(SPRN_MCSR))
310#endif 310#endif
311#define REASON_FP ESR_FP 311#define REASON_FP ESR_FP
312#define REASON_ILLEGAL (ESR_PIL | ESR_PUO) 312#define REASON_ILLEGAL (ESR_PIL | ESR_PUO)
@@ -381,7 +381,132 @@ int machine_check_440A(struct pt_regs *regs)
381 } 381 }
382 return 0; 382 return 0;
383} 383}
384
385int machine_check_47x(struct pt_regs *regs)
386{
387 unsigned long reason = get_mc_reason(regs);
388 u32 mcsr;
389
390 printk(KERN_ERR "Machine check in kernel mode.\n");
391 if (reason & ESR_IMCP) {
392 printk(KERN_ERR
393 "Instruction Synchronous Machine Check exception\n");
394 mtspr(SPRN_ESR, reason & ~ESR_IMCP);
395 return 0;
396 }
397 mcsr = mfspr(SPRN_MCSR);
398 if (mcsr & MCSR_IB)
399 printk(KERN_ERR "Instruction Read PLB Error\n");
400 if (mcsr & MCSR_DRB)
401 printk(KERN_ERR "Data Read PLB Error\n");
402 if (mcsr & MCSR_DWB)
403 printk(KERN_ERR "Data Write PLB Error\n");
404 if (mcsr & MCSR_TLBP)
405 printk(KERN_ERR "TLB Parity Error\n");
406 if (mcsr & MCSR_ICP) {
407 flush_instruction_cache();
408 printk(KERN_ERR "I-Cache Parity Error\n");
409 }
410 if (mcsr & MCSR_DCSP)
411 printk(KERN_ERR "D-Cache Search Parity Error\n");
412 if (mcsr & PPC47x_MCSR_GPR)
413 printk(KERN_ERR "GPR Parity Error\n");
414 if (mcsr & PPC47x_MCSR_FPR)
415 printk(KERN_ERR "FPR Parity Error\n");
416 if (mcsr & PPC47x_MCSR_IPR)
417 printk(KERN_ERR "Machine Check exception is imprecise\n");
418
419 /* Clear MCSR */
420 mtspr(SPRN_MCSR, mcsr);
421
422 return 0;
423}
384#elif defined(CONFIG_E500) 424#elif defined(CONFIG_E500)
425int machine_check_e500mc(struct pt_regs *regs)
426{
427 unsigned long mcsr = mfspr(SPRN_MCSR);
428 unsigned long reason = mcsr;
429 int recoverable = 1;
430
431 printk("Machine check in kernel mode.\n");
432 printk("Caused by (from MCSR=%lx): ", reason);
433
434 if (reason & MCSR_MCP)
435 printk("Machine Check Signal\n");
436
437 if (reason & MCSR_ICPERR) {
438 printk("Instruction Cache Parity Error\n");
439
440 /*
441 * This is recoverable by invalidating the i-cache.
442 */
443 mtspr(SPRN_L1CSR1, mfspr(SPRN_L1CSR1) | L1CSR1_ICFI);
444 while (mfspr(SPRN_L1CSR1) & L1CSR1_ICFI)
445 ;
446
447 /*
448 * This will generally be accompanied by an instruction
449 * fetch error report -- only treat MCSR_IF as fatal
450 * if it wasn't due to an L1 parity error.
451 */
452 reason &= ~MCSR_IF;
453 }
454
455 if (reason & MCSR_DCPERR_MC) {
456 printk("Data Cache Parity Error\n");
457 recoverable = 0;
458 }
459
460 if (reason & MCSR_L2MMU_MHIT) {
461 printk("Hit on multiple TLB entries\n");
462 recoverable = 0;
463 }
464
465 if (reason & MCSR_NMI)
466 printk("Non-maskable interrupt\n");
467
468 if (reason & MCSR_IF) {
469 printk("Instruction Fetch Error Report\n");
470 recoverable = 0;
471 }
472
473 if (reason & MCSR_LD) {
474 printk("Load Error Report\n");
475 recoverable = 0;
476 }
477
478 if (reason & MCSR_ST) {
479 printk("Store Error Report\n");
480 recoverable = 0;
481 }
482
483 if (reason & MCSR_LDG) {
484 printk("Guarded Load Error Report\n");
485 recoverable = 0;
486 }
487
488 if (reason & MCSR_TLBSYNC)
489 printk("Simultaneous tlbsync operations\n");
490
491 if (reason & MCSR_BSL2_ERR) {
492 printk("Level 2 Cache Error\n");
493 recoverable = 0;
494 }
495
496 if (reason & MCSR_MAV) {
497 u64 addr;
498
499 addr = mfspr(SPRN_MCAR);
500 addr |= (u64)mfspr(SPRN_MCARU) << 32;
501
502 printk("Machine Check %s Address: %#llx\n",
503 reason & MCSR_MEA ? "Effective" : "Physical", addr);
504 }
505
506 mtspr(SPRN_MCSR, mcsr);
507 return mfspr(SPRN_MCSR) == 0 && recoverable;
508}
509
385int machine_check_e500(struct pt_regs *regs) 510int machine_check_e500(struct pt_regs *regs)
386{ 511{
387 unsigned long reason = get_mc_reason(regs); 512 unsigned long reason = get_mc_reason(regs);
@@ -816,12 +941,15 @@ void __kprobes program_check_exception(struct pt_regs *regs)
816 return; 941 return;
817 } 942 }
818 if (reason & REASON_TRAP) { 943 if (reason & REASON_TRAP) {
944 /* Debugger is first in line to stop recursive faults in
945 * rcu_lock, notify_die, or atomic_notifier_call_chain */
946 if (debugger_bpt(regs))
947 return;
948
819 /* trap exception */ 949 /* trap exception */
820 if (notify_die(DIE_BPT, "breakpoint", regs, 5, 5, SIGTRAP) 950 if (notify_die(DIE_BPT, "breakpoint", regs, 5, 5, SIGTRAP)
821 == NOTIFY_STOP) 951 == NOTIFY_STOP)
822 return; 952 return;
823 if (debugger_bpt(regs))
824 return;
825 953
826 if (!(regs->msr & MSR_PR) && /* not user-mode */ 954 if (!(regs->msr & MSR_PR) && /* not user-mode */
827 report_bug(regs->nip, regs) == BUG_TRAP_TYPE_WARN) { 955 report_bug(regs->nip, regs) == BUG_TRAP_TYPE_WARN) {
diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c
index d84d19224a95..13002fe206e7 100644
--- a/arch/powerpc/kernel/vdso.c
+++ b/arch/powerpc/kernel/vdso.c
@@ -22,7 +22,7 @@
22#include <linux/elf.h> 22#include <linux/elf.h>
23#include <linux/security.h> 23#include <linux/security.h>
24#include <linux/bootmem.h> 24#include <linux/bootmem.h>
25#include <linux/lmb.h> 25#include <linux/memblock.h>
26 26
27#include <asm/pgtable.h> 27#include <asm/pgtable.h>
28#include <asm/system.h> 28#include <asm/system.h>
@@ -734,7 +734,7 @@ static int __init vdso_init(void)
734 vdso_data->platform = machine_is(iseries) ? 0x200 : 0x100; 734 vdso_data->platform = machine_is(iseries) ? 0x200 : 0x100;
735 if (firmware_has_feature(FW_FEATURE_LPAR)) 735 if (firmware_has_feature(FW_FEATURE_LPAR))
736 vdso_data->platform |= 1; 736 vdso_data->platform |= 1;
737 vdso_data->physicalMemorySize = lmb_phys_mem_size(); 737 vdso_data->physicalMemorySize = memblock_phys_mem_size();
738 vdso_data->dcache_size = ppc64_caches.dsize; 738 vdso_data->dcache_size = ppc64_caches.dsize;
739 vdso_data->dcache_line_size = ppc64_caches.dline_size; 739 vdso_data->dcache_line_size = ppc64_caches.dline_size;
740 vdso_data->icache_size = ppc64_caches.isize; 740 vdso_data->icache_size = ppc64_caches.isize;
diff --git a/arch/powerpc/kernel/vio.c b/arch/powerpc/kernel/vio.c
index 77f64218abf3..00b9436f7652 100644
--- a/arch/powerpc/kernel/vio.c
+++ b/arch/powerpc/kernel/vio.c
@@ -17,6 +17,7 @@
17#include <linux/types.h> 17#include <linux/types.h>
18#include <linux/device.h> 18#include <linux/device.h>
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/slab.h>
20#include <linux/console.h> 21#include <linux/console.h>
21#include <linux/module.h> 22#include <linux/module.h>
22#include <linux/mm.h> 23#include <linux/mm.h>
@@ -644,8 +645,10 @@ void vio_cmo_set_dev_desired(struct vio_dev *viodev, size_t desired)
644 found = 1; 645 found = 1;
645 break; 646 break;
646 } 647 }
647 if (!found) 648 if (!found) {
649 spin_unlock_irqrestore(&vio_cmo.lock, flags);
648 return; 650 return;
651 }
649 652
650 /* Increase/decrease in desired device entitlement */ 653 /* Increase/decrease in desired device entitlement */
651 if (desired >= viodev->cmo.desired) { 654 if (desired >= viodev->cmo.desired) {
@@ -704,7 +707,7 @@ static int vio_cmo_bus_probe(struct vio_dev *viodev)
704 * Check to see that device has a DMA window and configure 707 * Check to see that device has a DMA window and configure
705 * entitlement for the device. 708 * entitlement for the device.
706 */ 709 */
707 if (of_get_property(viodev->dev.archdata.of_node, 710 if (of_get_property(viodev->dev.of_node,
708 "ibm,my-dma-window", NULL)) { 711 "ibm,my-dma-window", NULL)) {
709 /* Check that the driver is CMO enabled and get desired DMA */ 712 /* Check that the driver is CMO enabled and get desired DMA */
710 if (!viodrv->get_desired_dma) { 713 if (!viodrv->get_desired_dma) {
@@ -957,9 +960,12 @@ viodev_cmo_rd_attr(allocated);
957 960
958static ssize_t name_show(struct device *, struct device_attribute *, char *); 961static ssize_t name_show(struct device *, struct device_attribute *, char *);
959static ssize_t devspec_show(struct device *, struct device_attribute *, char *); 962static ssize_t devspec_show(struct device *, struct device_attribute *, char *);
963static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
964 char *buf);
960static struct device_attribute vio_cmo_dev_attrs[] = { 965static struct device_attribute vio_cmo_dev_attrs[] = {
961 __ATTR_RO(name), 966 __ATTR_RO(name),
962 __ATTR_RO(devspec), 967 __ATTR_RO(devspec),
968 __ATTR_RO(modalias),
963 __ATTR(cmo_desired, S_IWUSR|S_IRUSR|S_IWGRP|S_IRGRP|S_IROTH, 969 __ATTR(cmo_desired, S_IWUSR|S_IRUSR|S_IWGRP|S_IRGRP|S_IROTH,
964 viodev_cmo_desired_show, viodev_cmo_desired_set), 970 viodev_cmo_desired_show, viodev_cmo_desired_set),
965 __ATTR(cmo_entitled, S_IRUGO, viodev_cmo_entitled_show, NULL), 971 __ATTR(cmo_entitled, S_IRUGO, viodev_cmo_entitled_show, NULL),
@@ -1048,7 +1054,7 @@ static struct iommu_table *vio_build_iommu_table(struct vio_dev *dev)
1048 if (firmware_has_feature(FW_FEATURE_ISERIES)) 1054 if (firmware_has_feature(FW_FEATURE_ISERIES))
1049 return vio_build_iommu_table_iseries(dev); 1055 return vio_build_iommu_table_iseries(dev);
1050 1056
1051 dma_window = of_get_property(dev->dev.archdata.of_node, 1057 dma_window = of_get_property(dev->dev.of_node,
1052 "ibm,my-dma-window", NULL); 1058 "ibm,my-dma-window", NULL);
1053 if (!dma_window) 1059 if (!dma_window)
1054 return NULL; 1060 return NULL;
@@ -1057,7 +1063,7 @@ static struct iommu_table *vio_build_iommu_table(struct vio_dev *dev)
1057 if (tbl == NULL) 1063 if (tbl == NULL)
1058 return NULL; 1064 return NULL;
1059 1065
1060 of_parse_dma_window(dev->dev.archdata.of_node, dma_window, 1066 of_parse_dma_window(dev->dev.of_node, dma_window,
1061 &tbl->it_index, &offset, &size); 1067 &tbl->it_index, &offset, &size);
1062 1068
1063 /* TCE table size - measured in tce entries */ 1069 /* TCE table size - measured in tce entries */
@@ -1085,7 +1091,7 @@ static const struct vio_device_id *vio_match_device(
1085{ 1091{
1086 while (ids->type[0] != '\0') { 1092 while (ids->type[0] != '\0') {
1087 if ((strncmp(dev->type, ids->type, strlen(ids->type)) == 0) && 1093 if ((strncmp(dev->type, ids->type, strlen(ids->type)) == 0) &&
1088 of_device_is_compatible(dev->dev.archdata.of_node, 1094 of_device_is_compatible(dev->dev.of_node,
1089 ids->compat)) 1095 ids->compat))
1090 return ids; 1096 return ids;
1091 ids++; 1097 ids++;
@@ -1178,7 +1184,7 @@ EXPORT_SYMBOL(vio_unregister_driver);
1178static void __devinit vio_dev_release(struct device *dev) 1184static void __devinit vio_dev_release(struct device *dev)
1179{ 1185{
1180 /* XXX should free TCE table */ 1186 /* XXX should free TCE table */
1181 of_node_put(dev->archdata.of_node); 1187 of_node_put(dev->of_node);
1182 kfree(to_vio_dev(dev)); 1188 kfree(to_vio_dev(dev));
1183} 1189}
1184 1190
@@ -1229,7 +1235,7 @@ struct vio_dev *vio_register_device_node(struct device_node *of_node)
1229 if (unit_address != NULL) 1235 if (unit_address != NULL)
1230 viodev->unit_address = *unit_address; 1236 viodev->unit_address = *unit_address;
1231 } 1237 }
1232 viodev->dev.archdata.of_node = of_node_get(of_node); 1238 viodev->dev.of_node = of_node_get(of_node);
1233 1239
1234 if (firmware_has_feature(FW_FEATURE_CMO)) 1240 if (firmware_has_feature(FW_FEATURE_CMO))
1235 vio_cmo_set_dma_ops(viodev); 1241 vio_cmo_set_dma_ops(viodev);
@@ -1314,14 +1320,32 @@ static ssize_t name_show(struct device *dev,
1314static ssize_t devspec_show(struct device *dev, 1320static ssize_t devspec_show(struct device *dev,
1315 struct device_attribute *attr, char *buf) 1321 struct device_attribute *attr, char *buf)
1316{ 1322{
1317 struct device_node *of_node = dev->archdata.of_node; 1323 struct device_node *of_node = dev->of_node;
1318 1324
1319 return sprintf(buf, "%s\n", of_node ? of_node->full_name : "none"); 1325 return sprintf(buf, "%s\n", of_node ? of_node->full_name : "none");
1320} 1326}
1321 1327
1328static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
1329 char *buf)
1330{
1331 const struct vio_dev *vio_dev = to_vio_dev(dev);
1332 struct device_node *dn;
1333 const char *cp;
1334
1335 dn = dev->of_node;
1336 if (!dn)
1337 return -ENODEV;
1338 cp = of_get_property(dn, "compatible", NULL);
1339 if (!cp)
1340 return -ENODEV;
1341
1342 return sprintf(buf, "vio:T%sS%s\n", vio_dev->type, cp);
1343}
1344
1322static struct device_attribute vio_dev_attrs[] = { 1345static struct device_attribute vio_dev_attrs[] = {
1323 __ATTR_RO(name), 1346 __ATTR_RO(name),
1324 __ATTR_RO(devspec), 1347 __ATTR_RO(devspec),
1348 __ATTR_RO(modalias),
1325 __ATTR_NULL 1349 __ATTR_NULL
1326}; 1350};
1327 1351
@@ -1346,7 +1370,7 @@ static int vio_hotplug(struct device *dev, struct kobj_uevent_env *env)
1346 struct device_node *dn; 1370 struct device_node *dn;
1347 const char *cp; 1371 const char *cp;
1348 1372
1349 dn = dev->archdata.of_node; 1373 dn = dev->of_node;
1350 if (!dn) 1374 if (!dn)
1351 return -ENODEV; 1375 return -ENODEV;
1352 cp = of_get_property(dn, "compatible", NULL); 1376 cp = of_get_property(dn, "compatible", NULL);
@@ -1364,6 +1388,7 @@ static struct bus_type vio_bus_type = {
1364 .match = vio_bus_match, 1388 .match = vio_bus_match,
1365 .probe = vio_bus_probe, 1389 .probe = vio_bus_probe,
1366 .remove = vio_bus_remove, 1390 .remove = vio_bus_remove,
1391 .pm = GENERIC_SUBSYS_PM_OPS,
1367}; 1392};
1368 1393
1369/** 1394/**
@@ -1377,7 +1402,7 @@ static struct bus_type vio_bus_type = {
1377*/ 1402*/
1378const void *vio_get_attribute(struct vio_dev *vdev, char *which, int *length) 1403const void *vio_get_attribute(struct vio_dev *vdev, char *which, int *length)
1379{ 1404{
1380 return of_get_property(vdev->dev.archdata.of_node, which, length); 1405 return of_get_property(vdev->dev.of_node, which, length);
1381} 1406}
1382EXPORT_SYMBOL(vio_get_attribute); 1407EXPORT_SYMBOL(vio_get_attribute);
1383 1408
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
index dcd01c82e701..8a0deefac08d 100644
--- a/arch/powerpc/kernel/vmlinux.lds.S
+++ b/arch/powerpc/kernel/vmlinux.lds.S
@@ -223,19 +223,17 @@ SECTIONS
223#endif 223#endif
224 224
225 /* The initial task and kernel stack */ 225 /* The initial task and kernel stack */
226 .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) { 226 INIT_TASK_DATA_SECTION(THREAD_SIZE)
227 INIT_TASK_DATA(THREAD_SIZE)
228 }
229 227
230 .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) { 228 .data..page_aligned : AT(ADDR(.data..page_aligned) - LOAD_OFFSET) {
231 PAGE_ALIGNED_DATA(PAGE_SIZE) 229 PAGE_ALIGNED_DATA(PAGE_SIZE)
232 } 230 }
233 231
234 .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) { 232 .data..cacheline_aligned : AT(ADDR(.data..cacheline_aligned) - LOAD_OFFSET) {
235 CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES) 233 CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES)
236 } 234 }
237 235
238 .data.read_mostly : AT(ADDR(.data.read_mostly) - LOAD_OFFSET) { 236 .data..read_mostly : AT(ADDR(.data..read_mostly) - LOAD_OFFSET) {
239 READ_MOSTLY_DATA(L1_CACHE_BYTES) 237 READ_MOSTLY_DATA(L1_CACHE_BYTES)
240 } 238 }
241 239
diff --git a/arch/powerpc/kvm/44x.c b/arch/powerpc/kvm/44x.c
index f4d1b55aa70b..73c0a3f64ed1 100644
--- a/arch/powerpc/kvm/44x.c
+++ b/arch/powerpc/kvm/44x.c
@@ -18,6 +18,7 @@
18 */ 18 */
19 19
20#include <linux/kvm_host.h> 20#include <linux/kvm_host.h>
21#include <linux/slab.h>
21#include <linux/err.h> 22#include <linux/err.h>
22 23
23#include <asm/reg.h> 24#include <asm/reg.h>
@@ -146,7 +147,7 @@ static int __init kvmppc_44x_init(void)
146 if (r) 147 if (r)
147 return r; 148 return r;
148 149
149 return kvm_init(NULL, sizeof(struct kvmppc_vcpu_44x), THIS_MODULE); 150 return kvm_init(NULL, sizeof(struct kvmppc_vcpu_44x), 0, THIS_MODULE);
150} 151}
151 152
152static void __exit kvmppc_44x_exit(void) 153static void __exit kvmppc_44x_exit(void)
diff --git a/arch/powerpc/kvm/44x_tlb.c b/arch/powerpc/kvm/44x_tlb.c
index 2570fcc7665d..9b9b5cdea840 100644
--- a/arch/powerpc/kvm/44x_tlb.c
+++ b/arch/powerpc/kvm/44x_tlb.c
@@ -316,7 +316,8 @@ void kvmppc_mmu_map(struct kvm_vcpu *vcpu, u64 gvaddr, gpa_t gpaddr,
316 gfn = gpaddr >> PAGE_SHIFT; 316 gfn = gpaddr >> PAGE_SHIFT;
317 new_page = gfn_to_page(vcpu->kvm, gfn); 317 new_page = gfn_to_page(vcpu->kvm, gfn);
318 if (is_error_page(new_page)) { 318 if (is_error_page(new_page)) {
319 printk(KERN_ERR "Couldn't get guest page for gfn %lx!\n", gfn); 319 printk(KERN_ERR "Couldn't get guest page for gfn %llx!\n",
320 (unsigned long long)gfn);
320 kvm_release_page_clean(new_page); 321 kvm_release_page_clean(new_page);
321 return; 322 return;
322 } 323 }
@@ -440,7 +441,7 @@ int kvmppc_44x_emul_tlbwe(struct kvm_vcpu *vcpu, u8 ra, u8 rs, u8 ws)
440 unsigned int gtlb_index; 441 unsigned int gtlb_index;
441 442
442 gtlb_index = kvmppc_get_gpr(vcpu, ra); 443 gtlb_index = kvmppc_get_gpr(vcpu, ra);
443 if (gtlb_index > KVM44x_GUEST_TLB_SIZE) { 444 if (gtlb_index >= KVM44x_GUEST_TLB_SIZE) {
444 printk("%s: index %d\n", __func__, gtlb_index); 445 printk("%s: index %d\n", __func__, gtlb_index);
445 kvmppc_dump_vcpu(vcpu); 446 kvmppc_dump_vcpu(vcpu);
446 return EMULATE_FAIL; 447 return EMULATE_FAIL;
diff --git a/arch/powerpc/kvm/Kconfig b/arch/powerpc/kvm/Kconfig
index 60624cc9f4d4..b7baff78f90c 100644
--- a/arch/powerpc/kvm/Kconfig
+++ b/arch/powerpc/kvm/Kconfig
@@ -22,12 +22,34 @@ config KVM
22 select ANON_INODES 22 select ANON_INODES
23 select KVM_MMIO 23 select KVM_MMIO
24 24
25config KVM_BOOK3S_HANDLER
26 bool
27
28config KVM_BOOK3S_32_HANDLER
29 bool
30 select KVM_BOOK3S_HANDLER
31
25config KVM_BOOK3S_64_HANDLER 32config KVM_BOOK3S_64_HANDLER
26 bool 33 bool
34 select KVM_BOOK3S_HANDLER
35
36config KVM_BOOK3S_32
37 tristate "KVM support for PowerPC book3s_32 processors"
38 depends on EXPERIMENTAL && PPC_BOOK3S_32 && !SMP && !PTE_64BIT
39 select KVM
40 select KVM_BOOK3S_32_HANDLER
41 ---help---
42 Support running unmodified book3s_32 guest kernels
43 in virtual machines on book3s_32 host processors.
44
45 This module provides access to the hardware capabilities through
46 a character device node named /dev/kvm.
47
48 If unsure, say N.
27 49
28config KVM_BOOK3S_64 50config KVM_BOOK3S_64
29 tristate "KVM support for PowerPC book3s_64 processors" 51 tristate "KVM support for PowerPC book3s_64 processors"
30 depends on EXPERIMENTAL && PPC64 52 depends on EXPERIMENTAL && PPC_BOOK3S_64
31 select KVM 53 select KVM
32 select KVM_BOOK3S_64_HANDLER 54 select KVM_BOOK3S_64_HANDLER
33 ---help--- 55 ---help---
diff --git a/arch/powerpc/kvm/Makefile b/arch/powerpc/kvm/Makefile
index 56484d652377..d45c818a384c 100644
--- a/arch/powerpc/kvm/Makefile
+++ b/arch/powerpc/kvm/Makefile
@@ -14,7 +14,7 @@ CFLAGS_emulate.o := -I.
14 14
15common-objs-y += powerpc.o emulate.o 15common-objs-y += powerpc.o emulate.o
16obj-$(CONFIG_KVM_EXIT_TIMING) += timing.o 16obj-$(CONFIG_KVM_EXIT_TIMING) += timing.o
17obj-$(CONFIG_KVM_BOOK3S_64_HANDLER) += book3s_64_exports.o 17obj-$(CONFIG_KVM_BOOK3S_HANDLER) += book3s_exports.o
18 18
19AFLAGS_booke_interrupts.o := -I$(obj) 19AFLAGS_booke_interrupts.o := -I$(obj)
20 20
@@ -40,17 +40,33 @@ kvm-objs-$(CONFIG_KVM_E500) := $(kvm-e500-objs)
40 40
41kvm-book3s_64-objs := \ 41kvm-book3s_64-objs := \
42 $(common-objs-y) \ 42 $(common-objs-y) \
43 fpu.o \
44 book3s_paired_singles.o \
43 book3s.o \ 45 book3s.o \
44 book3s_64_emulate.o \ 46 book3s_emulate.o \
45 book3s_64_interrupts.o \ 47 book3s_interrupts.o \
48 book3s_mmu_hpte.o \
46 book3s_64_mmu_host.o \ 49 book3s_64_mmu_host.o \
47 book3s_64_mmu.o \ 50 book3s_64_mmu.o \
48 book3s_32_mmu.o 51 book3s_32_mmu.o
49kvm-objs-$(CONFIG_KVM_BOOK3S_64) := $(kvm-book3s_64-objs) 52kvm-objs-$(CONFIG_KVM_BOOK3S_64) := $(kvm-book3s_64-objs)
50 53
54kvm-book3s_32-objs := \
55 $(common-objs-y) \
56 fpu.o \
57 book3s_paired_singles.o \
58 book3s.o \
59 book3s_emulate.o \
60 book3s_interrupts.o \
61 book3s_mmu_hpte.o \
62 book3s_32_mmu_host.o \
63 book3s_32_mmu.o
64kvm-objs-$(CONFIG_KVM_BOOK3S_32) := $(kvm-book3s_32-objs)
65
51kvm-objs := $(kvm-objs-m) $(kvm-objs-y) 66kvm-objs := $(kvm-objs-m) $(kvm-objs-y)
52 67
53obj-$(CONFIG_KVM_440) += kvm.o 68obj-$(CONFIG_KVM_440) += kvm.o
54obj-$(CONFIG_KVM_E500) += kvm.o 69obj-$(CONFIG_KVM_E500) += kvm.o
55obj-$(CONFIG_KVM_BOOK3S_64) += kvm.o 70obj-$(CONFIG_KVM_BOOK3S_64) += kvm.o
71obj-$(CONFIG_KVM_BOOK3S_32) += kvm.o
56 72
diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c
index 9a271f0929c7..a3cef30d1d42 100644
--- a/arch/powerpc/kvm/book3s.c
+++ b/arch/powerpc/kvm/book3s.c
@@ -16,6 +16,7 @@
16 16
17#include <linux/kvm_host.h> 17#include <linux/kvm_host.h>
18#include <linux/err.h> 18#include <linux/err.h>
19#include <linux/slab.h>
19 20
20#include <asm/reg.h> 21#include <asm/reg.h>
21#include <asm/cputable.h> 22#include <asm/cputable.h>
@@ -26,8 +27,10 @@
26#include <asm/kvm_ppc.h> 27#include <asm/kvm_ppc.h>
27#include <asm/kvm_book3s.h> 28#include <asm/kvm_book3s.h>
28#include <asm/mmu_context.h> 29#include <asm/mmu_context.h>
30#include <linux/gfp.h>
29#include <linux/sched.h> 31#include <linux/sched.h>
30#include <linux/vmalloc.h> 32#include <linux/vmalloc.h>
33#include <linux/highmem.h>
31 34
32#define VCPU_STAT(x) offsetof(struct kvm_vcpu, stat.x), KVM_STAT_VCPU 35#define VCPU_STAT(x) offsetof(struct kvm_vcpu, stat.x), KVM_STAT_VCPU
33 36
@@ -35,7 +38,15 @@
35/* #define EXIT_DEBUG_SIMPLE */ 38/* #define EXIT_DEBUG_SIMPLE */
36/* #define DEBUG_EXT */ 39/* #define DEBUG_EXT */
37 40
38static void kvmppc_giveup_ext(struct kvm_vcpu *vcpu, ulong msr); 41static int kvmppc_handle_ext(struct kvm_vcpu *vcpu, unsigned int exit_nr,
42 ulong msr);
43
44/* Some compatibility defines */
45#ifdef CONFIG_PPC_BOOK3S_32
46#define MSR_USER32 MSR_USER
47#define MSR_USER64 MSR_USER
48#define HW_PAGE_SIZE PAGE_SIZE
49#endif
39 50
40struct kvm_stats_debugfs_item debugfs_entries[] = { 51struct kvm_stats_debugfs_item debugfs_entries[] = {
41 { "exits", VCPU_STAT(sum_exits) }, 52 { "exits", VCPU_STAT(sum_exits) },
@@ -68,18 +79,26 @@ void kvmppc_core_load_guest_debugstate(struct kvm_vcpu *vcpu)
68 79
69void kvmppc_core_vcpu_load(struct kvm_vcpu *vcpu, int cpu) 80void kvmppc_core_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
70{ 81{
71 memcpy(get_paca()->kvm_slb, to_book3s(vcpu)->slb_shadow, sizeof(get_paca()->kvm_slb)); 82#ifdef CONFIG_PPC_BOOK3S_64
72 memcpy(&get_paca()->shadow_vcpu, &to_book3s(vcpu)->shadow_vcpu, 83 memcpy(to_svcpu(vcpu)->slb, to_book3s(vcpu)->slb_shadow, sizeof(to_svcpu(vcpu)->slb));
84 memcpy(&get_paca()->shadow_vcpu, to_book3s(vcpu)->shadow_vcpu,
73 sizeof(get_paca()->shadow_vcpu)); 85 sizeof(get_paca()->shadow_vcpu));
74 get_paca()->kvm_slb_max = to_book3s(vcpu)->slb_shadow_max; 86 to_svcpu(vcpu)->slb_max = to_book3s(vcpu)->slb_shadow_max;
87#endif
88
89#ifdef CONFIG_PPC_BOOK3S_32
90 current->thread.kvm_shadow_vcpu = to_book3s(vcpu)->shadow_vcpu;
91#endif
75} 92}
76 93
77void kvmppc_core_vcpu_put(struct kvm_vcpu *vcpu) 94void kvmppc_core_vcpu_put(struct kvm_vcpu *vcpu)
78{ 95{
79 memcpy(to_book3s(vcpu)->slb_shadow, get_paca()->kvm_slb, sizeof(get_paca()->kvm_slb)); 96#ifdef CONFIG_PPC_BOOK3S_64
80 memcpy(&to_book3s(vcpu)->shadow_vcpu, &get_paca()->shadow_vcpu, 97 memcpy(to_book3s(vcpu)->slb_shadow, to_svcpu(vcpu)->slb, sizeof(to_svcpu(vcpu)->slb));
98 memcpy(to_book3s(vcpu)->shadow_vcpu, &get_paca()->shadow_vcpu,
81 sizeof(get_paca()->shadow_vcpu)); 99 sizeof(get_paca()->shadow_vcpu));
82 to_book3s(vcpu)->slb_shadow_max = get_paca()->kvm_slb_max; 100 to_book3s(vcpu)->slb_shadow_max = to_svcpu(vcpu)->slb_max;
101#endif
83 102
84 kvmppc_giveup_ext(vcpu, MSR_FP); 103 kvmppc_giveup_ext(vcpu, MSR_FP);
85 kvmppc_giveup_ext(vcpu, MSR_VEC); 104 kvmppc_giveup_ext(vcpu, MSR_VEC);
@@ -130,18 +149,22 @@ void kvmppc_set_msr(struct kvm_vcpu *vcpu, u64 msr)
130 } 149 }
131 } 150 }
132 151
133 if (((vcpu->arch.msr & (MSR_IR|MSR_DR)) != (old_msr & (MSR_IR|MSR_DR))) || 152 if ((vcpu->arch.msr & (MSR_PR|MSR_IR|MSR_DR)) !=
134 (vcpu->arch.msr & MSR_PR) != (old_msr & MSR_PR)) { 153 (old_msr & (MSR_PR|MSR_IR|MSR_DR))) {
135 kvmppc_mmu_flush_segments(vcpu); 154 kvmppc_mmu_flush_segments(vcpu);
136 kvmppc_mmu_map_segment(vcpu, vcpu->arch.pc); 155 kvmppc_mmu_map_segment(vcpu, kvmppc_get_pc(vcpu));
137 } 156 }
157
158 /* Preload FPU if it's enabled */
159 if (vcpu->arch.msr & MSR_FP)
160 kvmppc_handle_ext(vcpu, BOOK3S_INTERRUPT_FP_UNAVAIL, MSR_FP);
138} 161}
139 162
140void kvmppc_inject_interrupt(struct kvm_vcpu *vcpu, int vec, u64 flags) 163void kvmppc_inject_interrupt(struct kvm_vcpu *vcpu, int vec, u64 flags)
141{ 164{
142 vcpu->arch.srr0 = vcpu->arch.pc; 165 vcpu->arch.srr0 = kvmppc_get_pc(vcpu);
143 vcpu->arch.srr1 = vcpu->arch.msr | flags; 166 vcpu->arch.srr1 = vcpu->arch.msr | flags;
144 vcpu->arch.pc = to_book3s(vcpu)->hior + vec; 167 kvmppc_set_pc(vcpu, to_book3s(vcpu)->hior + vec);
145 vcpu->arch.mmu.reset_msr(vcpu); 168 vcpu->arch.mmu.reset_msr(vcpu);
146} 169}
147 170
@@ -217,6 +240,12 @@ void kvmppc_core_queue_external(struct kvm_vcpu *vcpu,
217 kvmppc_book3s_queue_irqprio(vcpu, BOOK3S_INTERRUPT_EXTERNAL); 240 kvmppc_book3s_queue_irqprio(vcpu, BOOK3S_INTERRUPT_EXTERNAL);
218} 241}
219 242
243void kvmppc_core_dequeue_external(struct kvm_vcpu *vcpu,
244 struct kvm_interrupt *irq)
245{
246 kvmppc_book3s_dequeue_irqprio(vcpu, BOOK3S_INTERRUPT_EXTERNAL);
247}
248
220int kvmppc_book3s_irqprio_deliver(struct kvm_vcpu *vcpu, unsigned int priority) 249int kvmppc_book3s_irqprio_deliver(struct kvm_vcpu *vcpu, unsigned int priority)
221{ 250{
222 int deliver = 1; 251 int deliver = 1;
@@ -301,7 +330,7 @@ void kvmppc_core_deliver_interrupts(struct kvm_vcpu *vcpu)
301 printk(KERN_EMERG "KVM: Check pending: %lx\n", vcpu->arch.pending_exceptions); 330 printk(KERN_EMERG "KVM: Check pending: %lx\n", vcpu->arch.pending_exceptions);
302#endif 331#endif
303 priority = __ffs(*pending); 332 priority = __ffs(*pending);
304 while (priority <= (sizeof(unsigned int) * 8)) { 333 while (priority < BOOK3S_IRQPRIO_MAX) {
305 if (kvmppc_book3s_irqprio_deliver(vcpu, priority) && 334 if (kvmppc_book3s_irqprio_deliver(vcpu, priority) &&
306 (priority != BOOK3S_IRQPRIO_DECREMENTER)) { 335 (priority != BOOK3S_IRQPRIO_DECREMENTER)) {
307 /* DEC interrupts get cleared by mtdec */ 336 /* DEC interrupts get cleared by mtdec */
@@ -317,13 +346,18 @@ void kvmppc_core_deliver_interrupts(struct kvm_vcpu *vcpu)
317 346
318void kvmppc_set_pvr(struct kvm_vcpu *vcpu, u32 pvr) 347void kvmppc_set_pvr(struct kvm_vcpu *vcpu, u32 pvr)
319{ 348{
349 u32 host_pvr;
350
320 vcpu->arch.hflags &= ~BOOK3S_HFLAG_SLB; 351 vcpu->arch.hflags &= ~BOOK3S_HFLAG_SLB;
321 vcpu->arch.pvr = pvr; 352 vcpu->arch.pvr = pvr;
353#ifdef CONFIG_PPC_BOOK3S_64
322 if ((pvr >= 0x330000) && (pvr < 0x70330000)) { 354 if ((pvr >= 0x330000) && (pvr < 0x70330000)) {
323 kvmppc_mmu_book3s_64_init(vcpu); 355 kvmppc_mmu_book3s_64_init(vcpu);
324 to_book3s(vcpu)->hior = 0xfff00000; 356 to_book3s(vcpu)->hior = 0xfff00000;
325 to_book3s(vcpu)->msr_mask = 0xffffffffffffffffULL; 357 to_book3s(vcpu)->msr_mask = 0xffffffffffffffffULL;
326 } else { 358 } else
359#endif
360 {
327 kvmppc_mmu_book3s_32_init(vcpu); 361 kvmppc_mmu_book3s_32_init(vcpu);
328 to_book3s(vcpu)->hior = 0; 362 to_book3s(vcpu)->hior = 0;
329 to_book3s(vcpu)->msr_mask = 0xffffffffULL; 363 to_book3s(vcpu)->msr_mask = 0xffffffffULL;
@@ -336,6 +370,32 @@ void kvmppc_set_pvr(struct kvm_vcpu *vcpu, u32 pvr)
336 !strcmp(cur_cpu_spec->platform, "ppc970")) 370 !strcmp(cur_cpu_spec->platform, "ppc970"))
337 vcpu->arch.hflags |= BOOK3S_HFLAG_DCBZ32; 371 vcpu->arch.hflags |= BOOK3S_HFLAG_DCBZ32;
338 372
373 /* Cell performs badly if MSR_FEx are set. So let's hope nobody
374 really needs them in a VM on Cell and force disable them. */
375 if (!strcmp(cur_cpu_spec->platform, "ppc-cell-be"))
376 to_book3s(vcpu)->msr_mask &= ~(MSR_FE0 | MSR_FE1);
377
378#ifdef CONFIG_PPC_BOOK3S_32
379 /* 32 bit Book3S always has 32 byte dcbz */
380 vcpu->arch.hflags |= BOOK3S_HFLAG_DCBZ32;
381#endif
382
383 /* On some CPUs we can execute paired single operations natively */
384 asm ( "mfpvr %0" : "=r"(host_pvr));
385 switch (host_pvr) {
386 case 0x00080200: /* lonestar 2.0 */
387 case 0x00088202: /* lonestar 2.2 */
388 case 0x70000100: /* gekko 1.0 */
389 case 0x00080100: /* gekko 2.0 */
390 case 0x00083203: /* gekko 2.3a */
391 case 0x00083213: /* gekko 2.3b */
392 case 0x00083204: /* gekko 2.4 */
393 case 0x00083214: /* gekko 2.4e (8SE) - retail HW2 */
394 case 0x00087200: /* broadway */
395 vcpu->arch.hflags |= BOOK3S_HFLAG_NATIVE_PS;
396 /* Enable HID2.PSE - in case we need it later */
397 mtspr(SPRN_HID2_GEKKO, mfspr(SPRN_HID2_GEKKO) | (1 << 29));
398 }
339} 399}
340 400
341/* Book3s_32 CPUs always have 32 bytes cache line size, which Linux assumes. To 401/* Book3s_32 CPUs always have 32 bytes cache line size, which Linux assumes. To
@@ -349,34 +409,29 @@ void kvmppc_set_pvr(struct kvm_vcpu *vcpu, u32 pvr)
349 */ 409 */
350static void kvmppc_patch_dcbz(struct kvm_vcpu *vcpu, struct kvmppc_pte *pte) 410static void kvmppc_patch_dcbz(struct kvm_vcpu *vcpu, struct kvmppc_pte *pte)
351{ 411{
352 bool touched = false; 412 struct page *hpage;
353 hva_t hpage; 413 u64 hpage_offset;
354 u32 *page; 414 u32 *page;
355 int i; 415 int i;
356 416
357 hpage = gfn_to_hva(vcpu->kvm, pte->raddr >> PAGE_SHIFT); 417 hpage = gfn_to_page(vcpu->kvm, pte->raddr >> PAGE_SHIFT);
358 if (kvm_is_error_hva(hpage)) 418 if (is_error_page(hpage))
359 return; 419 return;
360 420
361 hpage |= pte->raddr & ~PAGE_MASK; 421 hpage_offset = pte->raddr & ~PAGE_MASK;
362 hpage &= ~0xFFFULL; 422 hpage_offset &= ~0xFFFULL;
363 423 hpage_offset /= 4;
364 page = vmalloc(HW_PAGE_SIZE);
365
366 if (copy_from_user(page, (void __user *)hpage, HW_PAGE_SIZE))
367 goto out;
368 424
369 for (i=0; i < HW_PAGE_SIZE / 4; i++) 425 get_page(hpage);
370 if ((page[i] & 0xff0007ff) == INS_DCBZ) { 426 page = kmap_atomic(hpage, KM_USER0);
371 page[i] &= 0xfffffff7; // reserved instruction, so we trap
372 touched = true;
373 }
374 427
375 if (touched) 428 /* patch dcbz into reserved instruction, so we trap */
376 copy_to_user((void __user *)hpage, page, HW_PAGE_SIZE); 429 for (i=hpage_offset; i < hpage_offset + (HW_PAGE_SIZE / 4); i++)
430 if ((page[i] & 0xff0007ff) == INS_DCBZ)
431 page[i] &= 0xfffffff7;
377 432
378out: 433 kunmap_atomic(page, KM_USER0);
379 vfree(page); 434 put_page(hpage);
380} 435}
381 436
382static int kvmppc_xlate(struct kvm_vcpu *vcpu, ulong eaddr, bool data, 437static int kvmppc_xlate(struct kvm_vcpu *vcpu, ulong eaddr, bool data,
@@ -390,15 +445,7 @@ static int kvmppc_xlate(struct kvm_vcpu *vcpu, ulong eaddr, bool data,
390 } else { 445 } else {
391 pte->eaddr = eaddr; 446 pte->eaddr = eaddr;
392 pte->raddr = eaddr & 0xffffffff; 447 pte->raddr = eaddr & 0xffffffff;
393 pte->vpage = eaddr >> 12; 448 pte->vpage = VSID_REAL | eaddr >> 12;
394 switch (vcpu->arch.msr & (MSR_DR|MSR_IR)) {
395 case 0:
396 pte->vpage |= VSID_REAL;
397 case MSR_DR:
398 pte->vpage |= VSID_REAL_DR;
399 case MSR_IR:
400 pte->vpage |= VSID_REAL_IR;
401 }
402 pte->may_read = true; 449 pte->may_read = true;
403 pte->may_write = true; 450 pte->may_write = true;
404 pte->may_execute = true; 451 pte->may_execute = true;
@@ -433,55 +480,55 @@ err:
433 return kvmppc_bad_hva(); 480 return kvmppc_bad_hva();
434} 481}
435 482
436int kvmppc_st(struct kvm_vcpu *vcpu, ulong eaddr, int size, void *ptr) 483int kvmppc_st(struct kvm_vcpu *vcpu, ulong *eaddr, int size, void *ptr,
484 bool data)
437{ 485{
438 struct kvmppc_pte pte; 486 struct kvmppc_pte pte;
439 hva_t hva = eaddr;
440 487
441 vcpu->stat.st++; 488 vcpu->stat.st++;
442 489
443 if (kvmppc_xlate(vcpu, eaddr, false, &pte)) 490 if (kvmppc_xlate(vcpu, *eaddr, data, &pte))
444 goto err; 491 return -ENOENT;
445 492
446 hva = kvmppc_pte_to_hva(vcpu, &pte, false); 493 *eaddr = pte.raddr;
447 if (kvm_is_error_hva(hva))
448 goto err;
449 494
450 if (copy_to_user((void __user *)hva, ptr, size)) { 495 if (!pte.may_write)
451 printk(KERN_INFO "kvmppc_st at 0x%lx failed\n", hva); 496 return -EPERM;
452 goto err;
453 }
454 497
455 return 0; 498 if (kvm_write_guest(vcpu->kvm, pte.raddr, ptr, size))
499 return EMULATE_DO_MMIO;
456 500
457err: 501 return EMULATE_DONE;
458 return -ENOENT;
459} 502}
460 503
461int kvmppc_ld(struct kvm_vcpu *vcpu, ulong eaddr, int size, void *ptr, 504int kvmppc_ld(struct kvm_vcpu *vcpu, ulong *eaddr, int size, void *ptr,
462 bool data) 505 bool data)
463{ 506{
464 struct kvmppc_pte pte; 507 struct kvmppc_pte pte;
465 hva_t hva = eaddr; 508 hva_t hva = *eaddr;
466 509
467 vcpu->stat.ld++; 510 vcpu->stat.ld++;
468 511
469 if (kvmppc_xlate(vcpu, eaddr, data, &pte)) 512 if (kvmppc_xlate(vcpu, *eaddr, data, &pte))
470 goto err; 513 goto nopte;
514
515 *eaddr = pte.raddr;
471 516
472 hva = kvmppc_pte_to_hva(vcpu, &pte, true); 517 hva = kvmppc_pte_to_hva(vcpu, &pte, true);
473 if (kvm_is_error_hva(hva)) 518 if (kvm_is_error_hva(hva))
474 goto err; 519 goto mmio;
475 520
476 if (copy_from_user(ptr, (void __user *)hva, size)) { 521 if (copy_from_user(ptr, (void __user *)hva, size)) {
477 printk(KERN_INFO "kvmppc_ld at 0x%lx failed\n", hva); 522 printk(KERN_INFO "kvmppc_ld at 0x%lx failed\n", hva);
478 goto err; 523 goto mmio;
479 } 524 }
480 525
481 return 0; 526 return EMULATE_DONE;
482 527
483err: 528nopte:
484 return -ENOENT; 529 return -ENOENT;
530mmio:
531 return EMULATE_DO_MMIO;
485} 532}
486 533
487static int kvmppc_visible_gfn(struct kvm_vcpu *vcpu, gfn_t gfn) 534static int kvmppc_visible_gfn(struct kvm_vcpu *vcpu, gfn_t gfn)
@@ -498,12 +545,11 @@ int kvmppc_handle_pagefault(struct kvm_run *run, struct kvm_vcpu *vcpu,
498 int page_found = 0; 545 int page_found = 0;
499 struct kvmppc_pte pte; 546 struct kvmppc_pte pte;
500 bool is_mmio = false; 547 bool is_mmio = false;
548 bool dr = (vcpu->arch.msr & MSR_DR) ? true : false;
549 bool ir = (vcpu->arch.msr & MSR_IR) ? true : false;
550 u64 vsid;
501 551
502 if ( vec == BOOK3S_INTERRUPT_DATA_STORAGE ) { 552 relocated = data ? dr : ir;
503 relocated = (vcpu->arch.msr & MSR_DR);
504 } else {
505 relocated = (vcpu->arch.msr & MSR_IR);
506 }
507 553
508 /* Resolve real address if translation turned on */ 554 /* Resolve real address if translation turned on */
509 if (relocated) { 555 if (relocated) {
@@ -515,14 +561,25 @@ int kvmppc_handle_pagefault(struct kvm_run *run, struct kvm_vcpu *vcpu,
515 pte.raddr = eaddr & 0xffffffff; 561 pte.raddr = eaddr & 0xffffffff;
516 pte.eaddr = eaddr; 562 pte.eaddr = eaddr;
517 pte.vpage = eaddr >> 12; 563 pte.vpage = eaddr >> 12;
518 switch (vcpu->arch.msr & (MSR_DR|MSR_IR)) { 564 }
519 case 0: 565
520 pte.vpage |= VSID_REAL; 566 switch (vcpu->arch.msr & (MSR_DR|MSR_IR)) {
521 case MSR_DR: 567 case 0:
522 pte.vpage |= VSID_REAL_DR; 568 pte.vpage |= ((u64)VSID_REAL << (SID_SHIFT - 12));
523 case MSR_IR: 569 break;
524 pte.vpage |= VSID_REAL_IR; 570 case MSR_DR:
525 } 571 case MSR_IR:
572 vcpu->arch.mmu.esid_to_vsid(vcpu, eaddr >> SID_SHIFT, &vsid);
573
574 if ((vcpu->arch.msr & (MSR_DR|MSR_IR)) == MSR_DR)
575 pte.vpage |= ((u64)VSID_REAL_DR << (SID_SHIFT - 12));
576 else
577 pte.vpage |= ((u64)VSID_REAL_IR << (SID_SHIFT - 12));
578 pte.vpage |= vsid;
579
580 if (vsid == -1)
581 page_found = -EINVAL;
582 break;
526 } 583 }
527 584
528 if (vcpu->arch.mmu.is_dcbz32(vcpu) && 585 if (vcpu->arch.mmu.is_dcbz32(vcpu) &&
@@ -537,20 +594,20 @@ int kvmppc_handle_pagefault(struct kvm_run *run, struct kvm_vcpu *vcpu,
537 594
538 if (page_found == -ENOENT) { 595 if (page_found == -ENOENT) {
539 /* Page not found in guest PTE entries */ 596 /* Page not found in guest PTE entries */
540 vcpu->arch.dear = vcpu->arch.fault_dear; 597 vcpu->arch.dear = kvmppc_get_fault_dar(vcpu);
541 to_book3s(vcpu)->dsisr = vcpu->arch.fault_dsisr; 598 to_book3s(vcpu)->dsisr = to_svcpu(vcpu)->fault_dsisr;
542 vcpu->arch.msr |= (vcpu->arch.shadow_srr1 & 0x00000000f8000000ULL); 599 vcpu->arch.msr |= (to_svcpu(vcpu)->shadow_srr1 & 0x00000000f8000000ULL);
543 kvmppc_book3s_queue_irqprio(vcpu, vec); 600 kvmppc_book3s_queue_irqprio(vcpu, vec);
544 } else if (page_found == -EPERM) { 601 } else if (page_found == -EPERM) {
545 /* Storage protection */ 602 /* Storage protection */
546 vcpu->arch.dear = vcpu->arch.fault_dear; 603 vcpu->arch.dear = kvmppc_get_fault_dar(vcpu);
547 to_book3s(vcpu)->dsisr = vcpu->arch.fault_dsisr & ~DSISR_NOHPTE; 604 to_book3s(vcpu)->dsisr = to_svcpu(vcpu)->fault_dsisr & ~DSISR_NOHPTE;
548 to_book3s(vcpu)->dsisr |= DSISR_PROTFAULT; 605 to_book3s(vcpu)->dsisr |= DSISR_PROTFAULT;
549 vcpu->arch.msr |= (vcpu->arch.shadow_srr1 & 0x00000000f8000000ULL); 606 vcpu->arch.msr |= (to_svcpu(vcpu)->shadow_srr1 & 0x00000000f8000000ULL);
550 kvmppc_book3s_queue_irqprio(vcpu, vec); 607 kvmppc_book3s_queue_irqprio(vcpu, vec);
551 } else if (page_found == -EINVAL) { 608 } else if (page_found == -EINVAL) {
552 /* Page not found in guest SLB */ 609 /* Page not found in guest SLB */
553 vcpu->arch.dear = vcpu->arch.fault_dear; 610 vcpu->arch.dear = kvmppc_get_fault_dar(vcpu);
554 kvmppc_book3s_queue_irqprio(vcpu, vec + 0x80); 611 kvmppc_book3s_queue_irqprio(vcpu, vec + 0x80);
555 } else if (!is_mmio && 612 } else if (!is_mmio &&
556 kvmppc_visible_gfn(vcpu, pte.raddr >> PAGE_SHIFT)) { 613 kvmppc_visible_gfn(vcpu, pte.raddr >> PAGE_SHIFT)) {
@@ -582,11 +639,13 @@ static inline int get_fpr_index(int i)
582} 639}
583 640
584/* Give up external provider (FPU, Altivec, VSX) */ 641/* Give up external provider (FPU, Altivec, VSX) */
585static void kvmppc_giveup_ext(struct kvm_vcpu *vcpu, ulong msr) 642void kvmppc_giveup_ext(struct kvm_vcpu *vcpu, ulong msr)
586{ 643{
587 struct thread_struct *t = &current->thread; 644 struct thread_struct *t = &current->thread;
588 u64 *vcpu_fpr = vcpu->arch.fpr; 645 u64 *vcpu_fpr = vcpu->arch.fpr;
646#ifdef CONFIG_VSX
589 u64 *vcpu_vsx = vcpu->arch.vsr; 647 u64 *vcpu_vsx = vcpu->arch.vsr;
648#endif
590 u64 *thread_fpr = (u64*)t->fpr; 649 u64 *thread_fpr = (u64*)t->fpr;
591 int i; 650 int i;
592 651
@@ -628,21 +687,65 @@ static void kvmppc_giveup_ext(struct kvm_vcpu *vcpu, ulong msr)
628 kvmppc_recalc_shadow_msr(vcpu); 687 kvmppc_recalc_shadow_msr(vcpu);
629} 688}
630 689
690static int kvmppc_read_inst(struct kvm_vcpu *vcpu)
691{
692 ulong srr0 = kvmppc_get_pc(vcpu);
693 u32 last_inst = kvmppc_get_last_inst(vcpu);
694 int ret;
695
696 ret = kvmppc_ld(vcpu, &srr0, sizeof(u32), &last_inst, false);
697 if (ret == -ENOENT) {
698 vcpu->arch.msr = kvmppc_set_field(vcpu->arch.msr, 33, 33, 1);
699 vcpu->arch.msr = kvmppc_set_field(vcpu->arch.msr, 34, 36, 0);
700 vcpu->arch.msr = kvmppc_set_field(vcpu->arch.msr, 42, 47, 0);
701 kvmppc_book3s_queue_irqprio(vcpu, BOOK3S_INTERRUPT_INST_STORAGE);
702 return EMULATE_AGAIN;
703 }
704
705 return EMULATE_DONE;
706}
707
708static int kvmppc_check_ext(struct kvm_vcpu *vcpu, unsigned int exit_nr)
709{
710
711 /* Need to do paired single emulation? */
712 if (!(vcpu->arch.hflags & BOOK3S_HFLAG_PAIRED_SINGLE))
713 return EMULATE_DONE;
714
715 /* Read out the instruction */
716 if (kvmppc_read_inst(vcpu) == EMULATE_DONE)
717 /* Need to emulate */
718 return EMULATE_FAIL;
719
720 return EMULATE_AGAIN;
721}
722
631/* Handle external providers (FPU, Altivec, VSX) */ 723/* Handle external providers (FPU, Altivec, VSX) */
632static int kvmppc_handle_ext(struct kvm_vcpu *vcpu, unsigned int exit_nr, 724static int kvmppc_handle_ext(struct kvm_vcpu *vcpu, unsigned int exit_nr,
633 ulong msr) 725 ulong msr)
634{ 726{
635 struct thread_struct *t = &current->thread; 727 struct thread_struct *t = &current->thread;
636 u64 *vcpu_fpr = vcpu->arch.fpr; 728 u64 *vcpu_fpr = vcpu->arch.fpr;
729#ifdef CONFIG_VSX
637 u64 *vcpu_vsx = vcpu->arch.vsr; 730 u64 *vcpu_vsx = vcpu->arch.vsr;
731#endif
638 u64 *thread_fpr = (u64*)t->fpr; 732 u64 *thread_fpr = (u64*)t->fpr;
639 int i; 733 int i;
640 734
735 /* When we have paired singles, we emulate in software */
736 if (vcpu->arch.hflags & BOOK3S_HFLAG_PAIRED_SINGLE)
737 return RESUME_GUEST;
738
641 if (!(vcpu->arch.msr & msr)) { 739 if (!(vcpu->arch.msr & msr)) {
642 kvmppc_book3s_queue_irqprio(vcpu, exit_nr); 740 kvmppc_book3s_queue_irqprio(vcpu, exit_nr);
643 return RESUME_GUEST; 741 return RESUME_GUEST;
644 } 742 }
645 743
744 /* We already own the ext */
745 if (vcpu->arch.guest_owned_ext & msr) {
746 return RESUME_GUEST;
747 }
748
646#ifdef DEBUG_EXT 749#ifdef DEBUG_EXT
647 printk(KERN_INFO "Loading up ext 0x%lx\n", msr); 750 printk(KERN_INFO "Loading up ext 0x%lx\n", msr);
648#endif 751#endif
@@ -695,21 +798,33 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
695 run->ready_for_interrupt_injection = 1; 798 run->ready_for_interrupt_injection = 1;
696#ifdef EXIT_DEBUG 799#ifdef EXIT_DEBUG
697 printk(KERN_EMERG "exit_nr=0x%x | pc=0x%lx | dar=0x%lx | dec=0x%x | msr=0x%lx\n", 800 printk(KERN_EMERG "exit_nr=0x%x | pc=0x%lx | dar=0x%lx | dec=0x%x | msr=0x%lx\n",
698 exit_nr, vcpu->arch.pc, vcpu->arch.fault_dear, 801 exit_nr, kvmppc_get_pc(vcpu), kvmppc_get_fault_dar(vcpu),
699 kvmppc_get_dec(vcpu), vcpu->arch.msr); 802 kvmppc_get_dec(vcpu), to_svcpu(vcpu)->shadow_srr1);
700#elif defined (EXIT_DEBUG_SIMPLE) 803#elif defined (EXIT_DEBUG_SIMPLE)
701 if ((exit_nr != 0x900) && (exit_nr != 0x500)) 804 if ((exit_nr != 0x900) && (exit_nr != 0x500))
702 printk(KERN_EMERG "exit_nr=0x%x | pc=0x%lx | dar=0x%lx | msr=0x%lx\n", 805 printk(KERN_EMERG "exit_nr=0x%x | pc=0x%lx | dar=0x%lx | msr=0x%lx\n",
703 exit_nr, vcpu->arch.pc, vcpu->arch.fault_dear, 806 exit_nr, kvmppc_get_pc(vcpu), kvmppc_get_fault_dar(vcpu),
704 vcpu->arch.msr); 807 vcpu->arch.msr);
705#endif 808#endif
706 kvm_resched(vcpu); 809 kvm_resched(vcpu);
707 switch (exit_nr) { 810 switch (exit_nr) {
708 case BOOK3S_INTERRUPT_INST_STORAGE: 811 case BOOK3S_INTERRUPT_INST_STORAGE:
709 vcpu->stat.pf_instruc++; 812 vcpu->stat.pf_instruc++;
813
814#ifdef CONFIG_PPC_BOOK3S_32
815 /* We set segments as unused segments when invalidating them. So
816 * treat the respective fault as segment fault. */
817 if (to_svcpu(vcpu)->sr[kvmppc_get_pc(vcpu) >> SID_SHIFT]
818 == SR_INVALID) {
819 kvmppc_mmu_map_segment(vcpu, kvmppc_get_pc(vcpu));
820 r = RESUME_GUEST;
821 break;
822 }
823#endif
824
710 /* only care about PTEG not found errors, but leave NX alone */ 825 /* only care about PTEG not found errors, but leave NX alone */
711 if (vcpu->arch.shadow_srr1 & 0x40000000) { 826 if (to_svcpu(vcpu)->shadow_srr1 & 0x40000000) {
712 r = kvmppc_handle_pagefault(run, vcpu, vcpu->arch.pc, exit_nr); 827 r = kvmppc_handle_pagefault(run, vcpu, kvmppc_get_pc(vcpu), exit_nr);
713 vcpu->stat.sp_instruc++; 828 vcpu->stat.sp_instruc++;
714 } else if (vcpu->arch.mmu.is_dcbz32(vcpu) && 829 } else if (vcpu->arch.mmu.is_dcbz32(vcpu) &&
715 (!(vcpu->arch.hflags & BOOK3S_HFLAG_DCBZ32))) { 830 (!(vcpu->arch.hflags & BOOK3S_HFLAG_DCBZ32))) {
@@ -718,37 +833,52 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
718 * so we can't use the NX bit inside the guest. Let's cross our fingers, 833 * so we can't use the NX bit inside the guest. Let's cross our fingers,
719 * that no guest that needs the dcbz hack does NX. 834 * that no guest that needs the dcbz hack does NX.
720 */ 835 */
721 kvmppc_mmu_pte_flush(vcpu, vcpu->arch.pc, ~0xFFFULL); 836 kvmppc_mmu_pte_flush(vcpu, kvmppc_get_pc(vcpu), ~0xFFFUL);
837 r = RESUME_GUEST;
722 } else { 838 } else {
723 vcpu->arch.msr |= vcpu->arch.shadow_srr1 & 0x58000000; 839 vcpu->arch.msr |= to_svcpu(vcpu)->shadow_srr1 & 0x58000000;
724 kvmppc_book3s_queue_irqprio(vcpu, exit_nr); 840 kvmppc_book3s_queue_irqprio(vcpu, exit_nr);
725 kvmppc_mmu_pte_flush(vcpu, vcpu->arch.pc, ~0xFFFULL); 841 kvmppc_mmu_pte_flush(vcpu, kvmppc_get_pc(vcpu), ~0xFFFUL);
726 r = RESUME_GUEST; 842 r = RESUME_GUEST;
727 } 843 }
728 break; 844 break;
729 case BOOK3S_INTERRUPT_DATA_STORAGE: 845 case BOOK3S_INTERRUPT_DATA_STORAGE:
846 {
847 ulong dar = kvmppc_get_fault_dar(vcpu);
730 vcpu->stat.pf_storage++; 848 vcpu->stat.pf_storage++;
849
850#ifdef CONFIG_PPC_BOOK3S_32
851 /* We set segments as unused segments when invalidating them. So
852 * treat the respective fault as segment fault. */
853 if ((to_svcpu(vcpu)->sr[dar >> SID_SHIFT]) == SR_INVALID) {
854 kvmppc_mmu_map_segment(vcpu, dar);
855 r = RESUME_GUEST;
856 break;
857 }
858#endif
859
731 /* The only case we need to handle is missing shadow PTEs */ 860 /* The only case we need to handle is missing shadow PTEs */
732 if (vcpu->arch.fault_dsisr & DSISR_NOHPTE) { 861 if (to_svcpu(vcpu)->fault_dsisr & DSISR_NOHPTE) {
733 r = kvmppc_handle_pagefault(run, vcpu, vcpu->arch.fault_dear, exit_nr); 862 r = kvmppc_handle_pagefault(run, vcpu, dar, exit_nr);
734 } else { 863 } else {
735 vcpu->arch.dear = vcpu->arch.fault_dear; 864 vcpu->arch.dear = dar;
736 to_book3s(vcpu)->dsisr = vcpu->arch.fault_dsisr; 865 to_book3s(vcpu)->dsisr = to_svcpu(vcpu)->fault_dsisr;
737 kvmppc_book3s_queue_irqprio(vcpu, exit_nr); 866 kvmppc_book3s_queue_irqprio(vcpu, exit_nr);
738 kvmppc_mmu_pte_flush(vcpu, vcpu->arch.dear, ~0xFFFULL); 867 kvmppc_mmu_pte_flush(vcpu, vcpu->arch.dear, ~0xFFFUL);
739 r = RESUME_GUEST; 868 r = RESUME_GUEST;
740 } 869 }
741 break; 870 break;
871 }
742 case BOOK3S_INTERRUPT_DATA_SEGMENT: 872 case BOOK3S_INTERRUPT_DATA_SEGMENT:
743 if (kvmppc_mmu_map_segment(vcpu, vcpu->arch.fault_dear) < 0) { 873 if (kvmppc_mmu_map_segment(vcpu, kvmppc_get_fault_dar(vcpu)) < 0) {
744 vcpu->arch.dear = vcpu->arch.fault_dear; 874 vcpu->arch.dear = kvmppc_get_fault_dar(vcpu);
745 kvmppc_book3s_queue_irqprio(vcpu, 875 kvmppc_book3s_queue_irqprio(vcpu,
746 BOOK3S_INTERRUPT_DATA_SEGMENT); 876 BOOK3S_INTERRUPT_DATA_SEGMENT);
747 } 877 }
748 r = RESUME_GUEST; 878 r = RESUME_GUEST;
749 break; 879 break;
750 case BOOK3S_INTERRUPT_INST_SEGMENT: 880 case BOOK3S_INTERRUPT_INST_SEGMENT:
751 if (kvmppc_mmu_map_segment(vcpu, vcpu->arch.pc) < 0) { 881 if (kvmppc_mmu_map_segment(vcpu, kvmppc_get_pc(vcpu)) < 0) {
752 kvmppc_book3s_queue_irqprio(vcpu, 882 kvmppc_book3s_queue_irqprio(vcpu,
753 BOOK3S_INTERRUPT_INST_SEGMENT); 883 BOOK3S_INTERRUPT_INST_SEGMENT);
754 } 884 }
@@ -763,18 +893,22 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
763 vcpu->stat.ext_intr_exits++; 893 vcpu->stat.ext_intr_exits++;
764 r = RESUME_GUEST; 894 r = RESUME_GUEST;
765 break; 895 break;
896 case BOOK3S_INTERRUPT_PERFMON:
897 r = RESUME_GUEST;
898 break;
766 case BOOK3S_INTERRUPT_PROGRAM: 899 case BOOK3S_INTERRUPT_PROGRAM:
767 { 900 {
768 enum emulation_result er; 901 enum emulation_result er;
769 ulong flags; 902 ulong flags;
770 903
771 flags = vcpu->arch.shadow_srr1 & 0x1f0000ull; 904program_interrupt:
905 flags = to_svcpu(vcpu)->shadow_srr1 & 0x1f0000ull;
772 906
773 if (vcpu->arch.msr & MSR_PR) { 907 if (vcpu->arch.msr & MSR_PR) {
774#ifdef EXIT_DEBUG 908#ifdef EXIT_DEBUG
775 printk(KERN_INFO "Userspace triggered 0x700 exception at 0x%lx (0x%x)\n", vcpu->arch.pc, vcpu->arch.last_inst); 909 printk(KERN_INFO "Userspace triggered 0x700 exception at 0x%lx (0x%x)\n", kvmppc_get_pc(vcpu), kvmppc_get_last_inst(vcpu));
776#endif 910#endif
777 if ((vcpu->arch.last_inst & 0xff0007ff) != 911 if ((kvmppc_get_last_inst(vcpu) & 0xff0007ff) !=
778 (INS_DCBZ & 0xfffffff7)) { 912 (INS_DCBZ & 0xfffffff7)) {
779 kvmppc_core_queue_program(vcpu, flags); 913 kvmppc_core_queue_program(vcpu, flags);
780 r = RESUME_GUEST; 914 r = RESUME_GUEST;
@@ -788,33 +922,80 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
788 case EMULATE_DONE: 922 case EMULATE_DONE:
789 r = RESUME_GUEST_NV; 923 r = RESUME_GUEST_NV;
790 break; 924 break;
925 case EMULATE_AGAIN:
926 r = RESUME_GUEST;
927 break;
791 case EMULATE_FAIL: 928 case EMULATE_FAIL:
792 printk(KERN_CRIT "%s: emulation at %lx failed (%08x)\n", 929 printk(KERN_CRIT "%s: emulation at %lx failed (%08x)\n",
793 __func__, vcpu->arch.pc, vcpu->arch.last_inst); 930 __func__, kvmppc_get_pc(vcpu), kvmppc_get_last_inst(vcpu));
794 kvmppc_core_queue_program(vcpu, flags); 931 kvmppc_core_queue_program(vcpu, flags);
795 r = RESUME_GUEST; 932 r = RESUME_GUEST;
796 break; 933 break;
934 case EMULATE_DO_MMIO:
935 run->exit_reason = KVM_EXIT_MMIO;
936 r = RESUME_HOST_NV;
937 break;
797 default: 938 default:
798 BUG(); 939 BUG();
799 } 940 }
800 break; 941 break;
801 } 942 }
802 case BOOK3S_INTERRUPT_SYSCALL: 943 case BOOK3S_INTERRUPT_SYSCALL:
803#ifdef EXIT_DEBUG 944 // XXX make user settable
804 printk(KERN_INFO "Syscall Nr %d\n", (int)kvmppc_get_gpr(vcpu, 0)); 945 if (vcpu->arch.osi_enabled &&
805#endif 946 (((u32)kvmppc_get_gpr(vcpu, 3)) == OSI_SC_MAGIC_R3) &&
806 vcpu->stat.syscall_exits++; 947 (((u32)kvmppc_get_gpr(vcpu, 4)) == OSI_SC_MAGIC_R4)) {
807 kvmppc_book3s_queue_irqprio(vcpu, exit_nr); 948 u64 *gprs = run->osi.gprs;
808 r = RESUME_GUEST; 949 int i;
950
951 run->exit_reason = KVM_EXIT_OSI;
952 for (i = 0; i < 32; i++)
953 gprs[i] = kvmppc_get_gpr(vcpu, i);
954 vcpu->arch.osi_needed = 1;
955 r = RESUME_HOST_NV;
956
957 } else {
958 vcpu->stat.syscall_exits++;
959 kvmppc_book3s_queue_irqprio(vcpu, exit_nr);
960 r = RESUME_GUEST;
961 }
809 break; 962 break;
810 case BOOK3S_INTERRUPT_FP_UNAVAIL: 963 case BOOK3S_INTERRUPT_FP_UNAVAIL:
811 r = kvmppc_handle_ext(vcpu, exit_nr, MSR_FP);
812 break;
813 case BOOK3S_INTERRUPT_ALTIVEC: 964 case BOOK3S_INTERRUPT_ALTIVEC:
814 r = kvmppc_handle_ext(vcpu, exit_nr, MSR_VEC);
815 break;
816 case BOOK3S_INTERRUPT_VSX: 965 case BOOK3S_INTERRUPT_VSX:
817 r = kvmppc_handle_ext(vcpu, exit_nr, MSR_VSX); 966 {
967 int ext_msr = 0;
968
969 switch (exit_nr) {
970 case BOOK3S_INTERRUPT_FP_UNAVAIL: ext_msr = MSR_FP; break;
971 case BOOK3S_INTERRUPT_ALTIVEC: ext_msr = MSR_VEC; break;
972 case BOOK3S_INTERRUPT_VSX: ext_msr = MSR_VSX; break;
973 }
974
975 switch (kvmppc_check_ext(vcpu, exit_nr)) {
976 case EMULATE_DONE:
977 /* everything ok - let's enable the ext */
978 r = kvmppc_handle_ext(vcpu, exit_nr, ext_msr);
979 break;
980 case EMULATE_FAIL:
981 /* we need to emulate this instruction */
982 goto program_interrupt;
983 break;
984 default:
985 /* nothing to worry about - go again */
986 break;
987 }
988 break;
989 }
990 case BOOK3S_INTERRUPT_ALIGNMENT:
991 if (kvmppc_read_inst(vcpu) == EMULATE_DONE) {
992 to_book3s(vcpu)->dsisr = kvmppc_alignment_dsisr(vcpu,
993 kvmppc_get_last_inst(vcpu));
994 vcpu->arch.dear = kvmppc_alignment_dar(vcpu,
995 kvmppc_get_last_inst(vcpu));
996 kvmppc_book3s_queue_irqprio(vcpu, exit_nr);
997 }
998 r = RESUME_GUEST;
818 break; 999 break;
819 case BOOK3S_INTERRUPT_MACHINE_CHECK: 1000 case BOOK3S_INTERRUPT_MACHINE_CHECK:
820 case BOOK3S_INTERRUPT_TRACE: 1001 case BOOK3S_INTERRUPT_TRACE:
@@ -824,7 +1005,7 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
824 default: 1005 default:
825 /* Ugh - bork here! What did we get? */ 1006 /* Ugh - bork here! What did we get? */
826 printk(KERN_EMERG "exit_nr=0x%x | pc=0x%lx | msr=0x%lx\n", 1007 printk(KERN_EMERG "exit_nr=0x%x | pc=0x%lx | msr=0x%lx\n",
827 exit_nr, vcpu->arch.pc, vcpu->arch.shadow_srr1); 1008 exit_nr, kvmppc_get_pc(vcpu), to_svcpu(vcpu)->shadow_srr1);
828 r = RESUME_HOST; 1009 r = RESUME_HOST;
829 BUG(); 1010 BUG();
830 break; 1011 break;
@@ -851,7 +1032,7 @@ int kvmppc_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu,
851 } 1032 }
852 1033
853#ifdef EXIT_DEBUG 1034#ifdef EXIT_DEBUG
854 printk(KERN_EMERG "KVM exit: vcpu=0x%p pc=0x%lx r=0x%x\n", vcpu, vcpu->arch.pc, r); 1035 printk(KERN_EMERG "KVM exit: vcpu=0x%p pc=0x%lx r=0x%x\n", vcpu, kvmppc_get_pc(vcpu), r);
855#endif 1036#endif
856 1037
857 return r; 1038 return r;
@@ -866,10 +1047,10 @@ int kvm_arch_vcpu_ioctl_get_regs(struct kvm_vcpu *vcpu, struct kvm_regs *regs)
866{ 1047{
867 int i; 1048 int i;
868 1049
869 regs->pc = vcpu->arch.pc; 1050 regs->pc = kvmppc_get_pc(vcpu);
870 regs->cr = kvmppc_get_cr(vcpu); 1051 regs->cr = kvmppc_get_cr(vcpu);
871 regs->ctr = vcpu->arch.ctr; 1052 regs->ctr = kvmppc_get_ctr(vcpu);
872 regs->lr = vcpu->arch.lr; 1053 regs->lr = kvmppc_get_lr(vcpu);
873 regs->xer = kvmppc_get_xer(vcpu); 1054 regs->xer = kvmppc_get_xer(vcpu);
874 regs->msr = vcpu->arch.msr; 1055 regs->msr = vcpu->arch.msr;
875 regs->srr0 = vcpu->arch.srr0; 1056 regs->srr0 = vcpu->arch.srr0;
@@ -893,10 +1074,10 @@ int kvm_arch_vcpu_ioctl_set_regs(struct kvm_vcpu *vcpu, struct kvm_regs *regs)
893{ 1074{
894 int i; 1075 int i;
895 1076
896 vcpu->arch.pc = regs->pc; 1077 kvmppc_set_pc(vcpu, regs->pc);
897 kvmppc_set_cr(vcpu, regs->cr); 1078 kvmppc_set_cr(vcpu, regs->cr);
898 vcpu->arch.ctr = regs->ctr; 1079 kvmppc_set_ctr(vcpu, regs->ctr);
899 vcpu->arch.lr = regs->lr; 1080 kvmppc_set_lr(vcpu, regs->lr);
900 kvmppc_set_xer(vcpu, regs->xer); 1081 kvmppc_set_xer(vcpu, regs->xer);
901 kvmppc_set_msr(vcpu, regs->msr); 1082 kvmppc_set_msr(vcpu, regs->msr);
902 vcpu->arch.srr0 = regs->srr0; 1083 vcpu->arch.srr0 = regs->srr0;
@@ -939,6 +1120,7 @@ int kvm_arch_vcpu_ioctl_get_sregs(struct kvm_vcpu *vcpu,
939 sregs->u.s.ppc32.dbat[i] = vcpu3s->dbat[i].raw; 1120 sregs->u.s.ppc32.dbat[i] = vcpu3s->dbat[i].raw;
940 } 1121 }
941 } 1122 }
1123
942 return 0; 1124 return 0;
943} 1125}
944 1126
@@ -974,6 +1156,7 @@ int kvm_arch_vcpu_ioctl_set_sregs(struct kvm_vcpu *vcpu,
974 1156
975 /* Flush the MMU after messing with the segments */ 1157 /* Flush the MMU after messing with the segments */
976 kvmppc_mmu_pte_flush(vcpu, 0, 0); 1158 kvmppc_mmu_pte_flush(vcpu, 0, 0);
1159
977 return 0; 1160 return 0;
978} 1161}
979 1162
@@ -1003,7 +1186,8 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
1003 struct kvm_vcpu *vcpu; 1186 struct kvm_vcpu *vcpu;
1004 ulong ga, ga_end; 1187 ulong ga, ga_end;
1005 int is_dirty = 0; 1188 int is_dirty = 0;
1006 int r, n; 1189 int r;
1190 unsigned long n;
1007 1191
1008 mutex_lock(&kvm->slots_lock); 1192 mutex_lock(&kvm->slots_lock);
1009 1193
@@ -1021,7 +1205,7 @@ int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm,
1021 kvm_for_each_vcpu(n, vcpu, kvm) 1205 kvm_for_each_vcpu(n, vcpu, kvm)
1022 kvmppc_mmu_pte_pflush(vcpu, ga, ga_end); 1206 kvmppc_mmu_pte_pflush(vcpu, ga, ga_end);
1023 1207
1024 n = ALIGN(memslot->npages, BITS_PER_LONG) / 8; 1208 n = kvm_dirty_bitmap_bytes(memslot);
1025 memset(memslot->dirty_bitmap, 0, n); 1209 memset(memslot->dirty_bitmap, 0, n);
1026 } 1210 }
1027 1211
@@ -1040,24 +1224,33 @@ struct kvm_vcpu *kvmppc_core_vcpu_create(struct kvm *kvm, unsigned int id)
1040{ 1224{
1041 struct kvmppc_vcpu_book3s *vcpu_book3s; 1225 struct kvmppc_vcpu_book3s *vcpu_book3s;
1042 struct kvm_vcpu *vcpu; 1226 struct kvm_vcpu *vcpu;
1043 int err; 1227 int err = -ENOMEM;
1044 1228
1045 vcpu_book3s = (struct kvmppc_vcpu_book3s *)__get_free_pages( GFP_KERNEL | __GFP_ZERO, 1229 vcpu_book3s = vmalloc(sizeof(struct kvmppc_vcpu_book3s));
1046 get_order(sizeof(struct kvmppc_vcpu_book3s))); 1230 if (!vcpu_book3s)
1047 if (!vcpu_book3s) {
1048 err = -ENOMEM;
1049 goto out; 1231 goto out;
1050 } 1232
1233 memset(vcpu_book3s, 0, sizeof(struct kvmppc_vcpu_book3s));
1234
1235 vcpu_book3s->shadow_vcpu = (struct kvmppc_book3s_shadow_vcpu *)
1236 kzalloc(sizeof(*vcpu_book3s->shadow_vcpu), GFP_KERNEL);
1237 if (!vcpu_book3s->shadow_vcpu)
1238 goto free_vcpu;
1051 1239
1052 vcpu = &vcpu_book3s->vcpu; 1240 vcpu = &vcpu_book3s->vcpu;
1053 err = kvm_vcpu_init(vcpu, kvm, id); 1241 err = kvm_vcpu_init(vcpu, kvm, id);
1054 if (err) 1242 if (err)
1055 goto free_vcpu; 1243 goto free_shadow_vcpu;
1056 1244
1057 vcpu->arch.host_retip = kvm_return_point; 1245 vcpu->arch.host_retip = kvm_return_point;
1058 vcpu->arch.host_msr = mfmsr(); 1246 vcpu->arch.host_msr = mfmsr();
1247#ifdef CONFIG_PPC_BOOK3S_64
1059 /* default to book3s_64 (970fx) */ 1248 /* default to book3s_64 (970fx) */
1060 vcpu->arch.pvr = 0x3C0301; 1249 vcpu->arch.pvr = 0x3C0301;
1250#else
1251 /* default to book3s_32 (750) */
1252 vcpu->arch.pvr = 0x84202;
1253#endif
1061 kvmppc_set_pvr(vcpu, vcpu->arch.pvr); 1254 kvmppc_set_pvr(vcpu, vcpu->arch.pvr);
1062 vcpu_book3s->slb_nr = 64; 1255 vcpu_book3s->slb_nr = 64;
1063 1256
@@ -1065,23 +1258,24 @@ struct kvm_vcpu *kvmppc_core_vcpu_create(struct kvm *kvm, unsigned int id)
1065 vcpu->arch.trampoline_lowmem = kvmppc_trampoline_lowmem; 1258 vcpu->arch.trampoline_lowmem = kvmppc_trampoline_lowmem;
1066 vcpu->arch.trampoline_enter = kvmppc_trampoline_enter; 1259 vcpu->arch.trampoline_enter = kvmppc_trampoline_enter;
1067 vcpu->arch.highmem_handler = (ulong)kvmppc_handler_highmem; 1260 vcpu->arch.highmem_handler = (ulong)kvmppc_handler_highmem;
1261#ifdef CONFIG_PPC_BOOK3S_64
1068 vcpu->arch.rmcall = *(ulong*)kvmppc_rmcall; 1262 vcpu->arch.rmcall = *(ulong*)kvmppc_rmcall;
1263#else
1264 vcpu->arch.rmcall = (ulong)kvmppc_rmcall;
1265#endif
1069 1266
1070 vcpu->arch.shadow_msr = MSR_USER64; 1267 vcpu->arch.shadow_msr = MSR_USER64;
1071 1268
1072 err = __init_new_context(); 1269 err = kvmppc_mmu_init(vcpu);
1073 if (err < 0) 1270 if (err < 0)
1074 goto free_vcpu; 1271 goto free_shadow_vcpu;
1075 vcpu_book3s->context_id = err;
1076
1077 vcpu_book3s->vsid_max = ((vcpu_book3s->context_id + 1) << USER_ESID_BITS) - 1;
1078 vcpu_book3s->vsid_first = vcpu_book3s->context_id << USER_ESID_BITS;
1079 vcpu_book3s->vsid_next = vcpu_book3s->vsid_first;
1080 1272
1081 return vcpu; 1273 return vcpu;
1082 1274
1275free_shadow_vcpu:
1276 kfree(vcpu_book3s->shadow_vcpu);
1083free_vcpu: 1277free_vcpu:
1084 free_pages((long)vcpu_book3s, get_order(sizeof(struct kvmppc_vcpu_book3s))); 1278 vfree(vcpu_book3s);
1085out: 1279out:
1086 return ERR_PTR(err); 1280 return ERR_PTR(err);
1087} 1281}
@@ -1090,18 +1284,27 @@ void kvmppc_core_vcpu_free(struct kvm_vcpu *vcpu)
1090{ 1284{
1091 struct kvmppc_vcpu_book3s *vcpu_book3s = to_book3s(vcpu); 1285 struct kvmppc_vcpu_book3s *vcpu_book3s = to_book3s(vcpu);
1092 1286
1093 __destroy_context(vcpu_book3s->context_id);
1094 kvm_vcpu_uninit(vcpu); 1287 kvm_vcpu_uninit(vcpu);
1095 free_pages((long)vcpu_book3s, get_order(sizeof(struct kvmppc_vcpu_book3s))); 1288 kfree(vcpu_book3s->shadow_vcpu);
1289 vfree(vcpu_book3s);
1096} 1290}
1097 1291
1098extern int __kvmppc_vcpu_entry(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu); 1292extern int __kvmppc_vcpu_entry(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu);
1099int __kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu) 1293int __kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
1100{ 1294{
1101 int ret; 1295 int ret;
1102 struct thread_struct ext_bkp; 1296 double fpr[32][TS_FPRWIDTH];
1103 bool save_vec = current->thread.used_vr; 1297 unsigned int fpscr;
1104 bool save_vsx = current->thread.used_vsr; 1298 int fpexc_mode;
1299#ifdef CONFIG_ALTIVEC
1300 vector128 vr[32];
1301 vector128 vscr;
1302 unsigned long uninitialized_var(vrsave);
1303 int used_vr;
1304#endif
1305#ifdef CONFIG_VSX
1306 int used_vsr;
1307#endif
1105 ulong ext_msr; 1308 ulong ext_msr;
1106 1309
1107 /* No need to go into the guest when all we do is going out */ 1310 /* No need to go into the guest when all we do is going out */
@@ -1113,27 +1316,27 @@ int __kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
1113 /* Save FPU state in stack */ 1316 /* Save FPU state in stack */
1114 if (current->thread.regs->msr & MSR_FP) 1317 if (current->thread.regs->msr & MSR_FP)
1115 giveup_fpu(current); 1318 giveup_fpu(current);
1116 memcpy(ext_bkp.fpr, current->thread.fpr, sizeof(current->thread.fpr)); 1319 memcpy(fpr, current->thread.fpr, sizeof(current->thread.fpr));
1117 ext_bkp.fpscr = current->thread.fpscr; 1320 fpscr = current->thread.fpscr.val;
1118 ext_bkp.fpexc_mode = current->thread.fpexc_mode; 1321 fpexc_mode = current->thread.fpexc_mode;
1119 1322
1120#ifdef CONFIG_ALTIVEC 1323#ifdef CONFIG_ALTIVEC
1121 /* Save Altivec state in stack */ 1324 /* Save Altivec state in stack */
1122 if (save_vec) { 1325 used_vr = current->thread.used_vr;
1326 if (used_vr) {
1123 if (current->thread.regs->msr & MSR_VEC) 1327 if (current->thread.regs->msr & MSR_VEC)
1124 giveup_altivec(current); 1328 giveup_altivec(current);
1125 memcpy(ext_bkp.vr, current->thread.vr, sizeof(ext_bkp.vr)); 1329 memcpy(vr, current->thread.vr, sizeof(current->thread.vr));
1126 ext_bkp.vscr = current->thread.vscr; 1330 vscr = current->thread.vscr;
1127 ext_bkp.vrsave = current->thread.vrsave; 1331 vrsave = current->thread.vrsave;
1128 } 1332 }
1129 ext_bkp.used_vr = current->thread.used_vr;
1130#endif 1333#endif
1131 1334
1132#ifdef CONFIG_VSX 1335#ifdef CONFIG_VSX
1133 /* Save VSX state in stack */ 1336 /* Save VSX state in stack */
1134 if (save_vsx && (current->thread.regs->msr & MSR_VSX)) 1337 used_vsr = current->thread.used_vsr;
1338 if (used_vsr && (current->thread.regs->msr & MSR_VSX))
1135 __giveup_vsx(current); 1339 __giveup_vsx(current);
1136 ext_bkp.used_vsr = current->thread.used_vsr;
1137#endif 1340#endif
1138 1341
1139 /* Remember the MSR with disabled extensions */ 1342 /* Remember the MSR with disabled extensions */
@@ -1142,6 +1345,10 @@ int __kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
1142 /* XXX we get called with irq disabled - change that! */ 1345 /* XXX we get called with irq disabled - change that! */
1143 local_irq_enable(); 1346 local_irq_enable();
1144 1347
1348 /* Preload FPU if it's enabled */
1349 if (vcpu->arch.msr & MSR_FP)
1350 kvmppc_handle_ext(vcpu, BOOK3S_INTERRUPT_FP_UNAVAIL, MSR_FP);
1351
1145 ret = __kvmppc_vcpu_entry(kvm_run, vcpu); 1352 ret = __kvmppc_vcpu_entry(kvm_run, vcpu);
1146 1353
1147 local_irq_disable(); 1354 local_irq_disable();
@@ -1154,22 +1361,22 @@ int __kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
1154 kvmppc_giveup_ext(vcpu, MSR_VSX); 1361 kvmppc_giveup_ext(vcpu, MSR_VSX);
1155 1362
1156 /* Restore FPU state from stack */ 1363 /* Restore FPU state from stack */
1157 memcpy(current->thread.fpr, ext_bkp.fpr, sizeof(ext_bkp.fpr)); 1364 memcpy(current->thread.fpr, fpr, sizeof(current->thread.fpr));
1158 current->thread.fpscr = ext_bkp.fpscr; 1365 current->thread.fpscr.val = fpscr;
1159 current->thread.fpexc_mode = ext_bkp.fpexc_mode; 1366 current->thread.fpexc_mode = fpexc_mode;
1160 1367
1161#ifdef CONFIG_ALTIVEC 1368#ifdef CONFIG_ALTIVEC
1162 /* Restore Altivec state from stack */ 1369 /* Restore Altivec state from stack */
1163 if (save_vec && current->thread.used_vr) { 1370 if (used_vr && current->thread.used_vr) {
1164 memcpy(current->thread.vr, ext_bkp.vr, sizeof(ext_bkp.vr)); 1371 memcpy(current->thread.vr, vr, sizeof(current->thread.vr));
1165 current->thread.vscr = ext_bkp.vscr; 1372 current->thread.vscr = vscr;
1166 current->thread.vrsave= ext_bkp.vrsave; 1373 current->thread.vrsave = vrsave;
1167 } 1374 }
1168 current->thread.used_vr = ext_bkp.used_vr; 1375 current->thread.used_vr = used_vr;
1169#endif 1376#endif
1170 1377
1171#ifdef CONFIG_VSX 1378#ifdef CONFIG_VSX
1172 current->thread.used_vsr = ext_bkp.used_vsr; 1379 current->thread.used_vsr = used_vsr;
1173#endif 1380#endif
1174 1381
1175 return ret; 1382 return ret;
@@ -1177,11 +1384,22 @@ int __kvmppc_vcpu_run(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu)
1177 1384
1178static int kvmppc_book3s_init(void) 1385static int kvmppc_book3s_init(void)
1179{ 1386{
1180 return kvm_init(NULL, sizeof(struct kvmppc_vcpu_book3s), THIS_MODULE); 1387 int r;
1388
1389 r = kvm_init(NULL, sizeof(struct kvmppc_vcpu_book3s), 0,
1390 THIS_MODULE);
1391
1392 if (r)
1393 return r;
1394
1395 r = kvmppc_mmu_hpte_sysinit();
1396
1397 return r;
1181} 1398}
1182 1399
1183static void kvmppc_book3s_exit(void) 1400static void kvmppc_book3s_exit(void)
1184{ 1401{
1402 kvmppc_mmu_hpte_sysexit();
1185 kvm_exit(); 1403 kvm_exit();
1186} 1404}
1187 1405
diff --git a/arch/powerpc/kvm/book3s_32_mmu.c b/arch/powerpc/kvm/book3s_32_mmu.c
index faf99f20d993..3292d76101d2 100644
--- a/arch/powerpc/kvm/book3s_32_mmu.c
+++ b/arch/powerpc/kvm/book3s_32_mmu.c
@@ -37,7 +37,7 @@
37#define dprintk(X...) do { } while(0) 37#define dprintk(X...) do { } while(0)
38#endif 38#endif
39 39
40#ifdef DEBUG_PTE 40#ifdef DEBUG_MMU_PTE
41#define dprintk_pte(X...) printk(KERN_INFO X) 41#define dprintk_pte(X...) printk(KERN_INFO X)
42#else 42#else
43#define dprintk_pte(X...) do { } while(0) 43#define dprintk_pte(X...) do { } while(0)
@@ -45,6 +45,9 @@
45 45
46#define PTEG_FLAG_ACCESSED 0x00000100 46#define PTEG_FLAG_ACCESSED 0x00000100
47#define PTEG_FLAG_DIRTY 0x00000080 47#define PTEG_FLAG_DIRTY 0x00000080
48#ifndef SID_SHIFT
49#define SID_SHIFT 28
50#endif
48 51
49static inline bool check_debug_ip(struct kvm_vcpu *vcpu) 52static inline bool check_debug_ip(struct kvm_vcpu *vcpu)
50{ 53{
@@ -57,6 +60,8 @@ static inline bool check_debug_ip(struct kvm_vcpu *vcpu)
57 60
58static int kvmppc_mmu_book3s_32_xlate_bat(struct kvm_vcpu *vcpu, gva_t eaddr, 61static int kvmppc_mmu_book3s_32_xlate_bat(struct kvm_vcpu *vcpu, gva_t eaddr,
59 struct kvmppc_pte *pte, bool data); 62 struct kvmppc_pte *pte, bool data);
63static int kvmppc_mmu_book3s_32_esid_to_vsid(struct kvm_vcpu *vcpu, ulong esid,
64 u64 *vsid);
60 65
61static struct kvmppc_sr *find_sr(struct kvmppc_vcpu_book3s *vcpu_book3s, gva_t eaddr) 66static struct kvmppc_sr *find_sr(struct kvmppc_vcpu_book3s *vcpu_book3s, gva_t eaddr)
62{ 67{
@@ -66,13 +71,14 @@ static struct kvmppc_sr *find_sr(struct kvmppc_vcpu_book3s *vcpu_book3s, gva_t e
66static u64 kvmppc_mmu_book3s_32_ea_to_vp(struct kvm_vcpu *vcpu, gva_t eaddr, 71static u64 kvmppc_mmu_book3s_32_ea_to_vp(struct kvm_vcpu *vcpu, gva_t eaddr,
67 bool data) 72 bool data)
68{ 73{
69 struct kvmppc_sr *sre = find_sr(to_book3s(vcpu), eaddr); 74 u64 vsid;
70 struct kvmppc_pte pte; 75 struct kvmppc_pte pte;
71 76
72 if (!kvmppc_mmu_book3s_32_xlate_bat(vcpu, eaddr, &pte, data)) 77 if (!kvmppc_mmu_book3s_32_xlate_bat(vcpu, eaddr, &pte, data))
73 return pte.vpage; 78 return pte.vpage;
74 79
75 return (((u64)eaddr >> 12) & 0xffff) | (((u64)sre->vsid) << 16); 80 kvmppc_mmu_book3s_32_esid_to_vsid(vcpu, eaddr >> SID_SHIFT, &vsid);
81 return (((u64)eaddr >> 12) & 0xffff) | (vsid << 16);
76} 82}
77 83
78static void kvmppc_mmu_book3s_32_reset_msr(struct kvm_vcpu *vcpu) 84static void kvmppc_mmu_book3s_32_reset_msr(struct kvm_vcpu *vcpu)
@@ -142,8 +148,13 @@ static int kvmppc_mmu_book3s_32_xlate_bat(struct kvm_vcpu *vcpu, gva_t eaddr,
142 bat->bepi_mask); 148 bat->bepi_mask);
143 } 149 }
144 if ((eaddr & bat->bepi_mask) == bat->bepi) { 150 if ((eaddr & bat->bepi_mask) == bat->bepi) {
151 u64 vsid;
152 kvmppc_mmu_book3s_32_esid_to_vsid(vcpu,
153 eaddr >> SID_SHIFT, &vsid);
154 vsid <<= 16;
155 pte->vpage = (((u64)eaddr >> 12) & 0xffff) | vsid;
156
145 pte->raddr = bat->brpn | (eaddr & ~bat->bepi_mask); 157 pte->raddr = bat->brpn | (eaddr & ~bat->bepi_mask);
146 pte->vpage = (eaddr >> 12) | VSID_BAT;
147 pte->may_read = bat->pp; 158 pte->may_read = bat->pp;
148 pte->may_write = bat->pp > 1; 159 pte->may_write = bat->pp > 1;
149 pte->may_execute = true; 160 pte->may_execute = true;
@@ -172,7 +183,7 @@ static int kvmppc_mmu_book3s_32_xlate_pte(struct kvm_vcpu *vcpu, gva_t eaddr,
172 struct kvmppc_sr *sre; 183 struct kvmppc_sr *sre;
173 hva_t ptegp; 184 hva_t ptegp;
174 u32 pteg[16]; 185 u32 pteg[16];
175 u64 ptem = 0; 186 u32 ptem = 0;
176 int i; 187 int i;
177 int found = 0; 188 int found = 0;
178 189
@@ -302,6 +313,7 @@ static void kvmppc_mmu_book3s_32_mtsrin(struct kvm_vcpu *vcpu, u32 srnum,
302 /* And then put in the new SR */ 313 /* And then put in the new SR */
303 sre->raw = value; 314 sre->raw = value;
304 sre->vsid = (value & 0x0fffffff); 315 sre->vsid = (value & 0x0fffffff);
316 sre->valid = (value & 0x80000000) ? false : true;
305 sre->Ks = (value & 0x40000000) ? true : false; 317 sre->Ks = (value & 0x40000000) ? true : false;
306 sre->Kp = (value & 0x20000000) ? true : false; 318 sre->Kp = (value & 0x20000000) ? true : false;
307 sre->nx = (value & 0x10000000) ? true : false; 319 sre->nx = (value & 0x10000000) ? true : false;
@@ -312,36 +324,48 @@ static void kvmppc_mmu_book3s_32_mtsrin(struct kvm_vcpu *vcpu, u32 srnum,
312 324
313static void kvmppc_mmu_book3s_32_tlbie(struct kvm_vcpu *vcpu, ulong ea, bool large) 325static void kvmppc_mmu_book3s_32_tlbie(struct kvm_vcpu *vcpu, ulong ea, bool large)
314{ 326{
315 kvmppc_mmu_pte_flush(vcpu, ea, ~0xFFFULL); 327 kvmppc_mmu_pte_flush(vcpu, ea, 0x0FFFF000);
316} 328}
317 329
318static int kvmppc_mmu_book3s_32_esid_to_vsid(struct kvm_vcpu *vcpu, u64 esid, 330static int kvmppc_mmu_book3s_32_esid_to_vsid(struct kvm_vcpu *vcpu, ulong esid,
319 u64 *vsid) 331 u64 *vsid)
320{ 332{
333 ulong ea = esid << SID_SHIFT;
334 struct kvmppc_sr *sr;
335 u64 gvsid = esid;
336
337 if (vcpu->arch.msr & (MSR_DR|MSR_IR)) {
338 sr = find_sr(to_book3s(vcpu), ea);
339 if (sr->valid)
340 gvsid = sr->vsid;
341 }
342
321 /* In case we only have one of MSR_IR or MSR_DR set, let's put 343 /* In case we only have one of MSR_IR or MSR_DR set, let's put
322 that in the real-mode context (and hope RM doesn't access 344 that in the real-mode context (and hope RM doesn't access
323 high memory) */ 345 high memory) */
324 switch (vcpu->arch.msr & (MSR_DR|MSR_IR)) { 346 switch (vcpu->arch.msr & (MSR_DR|MSR_IR)) {
325 case 0: 347 case 0:
326 *vsid = (VSID_REAL >> 16) | esid; 348 *vsid = VSID_REAL | esid;
327 break; 349 break;
328 case MSR_IR: 350 case MSR_IR:
329 *vsid = (VSID_REAL_IR >> 16) | esid; 351 *vsid = VSID_REAL_IR | gvsid;
330 break; 352 break;
331 case MSR_DR: 353 case MSR_DR:
332 *vsid = (VSID_REAL_DR >> 16) | esid; 354 *vsid = VSID_REAL_DR | gvsid;
333 break; 355 break;
334 case MSR_DR|MSR_IR: 356 case MSR_DR|MSR_IR:
335 { 357 if (sr->valid)
336 ulong ea; 358 *vsid = sr->vsid;
337 ea = esid << SID_SHIFT; 359 else
338 *vsid = find_sr(to_book3s(vcpu), ea)->vsid; 360 *vsid = VSID_BAT | gvsid;
339 break; 361 break;
340 }
341 default: 362 default:
342 BUG(); 363 BUG();
343 } 364 }
344 365
366 if (vcpu->arch.msr & MSR_PR)
367 *vsid |= VSID_PR;
368
345 return 0; 369 return 0;
346} 370}
347 371
diff --git a/arch/powerpc/kvm/book3s_32_mmu_host.c b/arch/powerpc/kvm/book3s_32_mmu_host.c
new file mode 100644
index 000000000000..0b51ef872c1e
--- /dev/null
+++ b/arch/powerpc/kvm/book3s_32_mmu_host.c
@@ -0,0 +1,373 @@
1/*
2 * Copyright (C) 2010 SUSE Linux Products GmbH. All rights reserved.
3 *
4 * Authors:
5 * Alexander Graf <agraf@suse.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, version 2, as
9 * published by the Free Software Foundation.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 */
20
21#include <linux/kvm_host.h>
22#include <linux/hash.h>
23
24#include <asm/kvm_ppc.h>
25#include <asm/kvm_book3s.h>
26#include <asm/mmu-hash32.h>
27#include <asm/machdep.h>
28#include <asm/mmu_context.h>
29#include <asm/hw_irq.h>
30
31/* #define DEBUG_MMU */
32/* #define DEBUG_SR */
33
34#ifdef DEBUG_MMU
35#define dprintk_mmu(a, ...) printk(KERN_INFO a, __VA_ARGS__)
36#else
37#define dprintk_mmu(a, ...) do { } while(0)
38#endif
39
40#ifdef DEBUG_SR
41#define dprintk_sr(a, ...) printk(KERN_INFO a, __VA_ARGS__)
42#else
43#define dprintk_sr(a, ...) do { } while(0)
44#endif
45
46#if PAGE_SHIFT != 12
47#error Unknown page size
48#endif
49
50#ifdef CONFIG_SMP
51#error XXX need to grab mmu_hash_lock
52#endif
53
54#ifdef CONFIG_PTE_64BIT
55#error Only 32 bit pages are supported for now
56#endif
57
58static ulong htab;
59static u32 htabmask;
60
61void kvmppc_mmu_invalidate_pte(struct kvm_vcpu *vcpu, struct hpte_cache *pte)
62{
63 volatile u32 *pteg;
64
65 /* Remove from host HTAB */
66 pteg = (u32*)pte->slot;
67 pteg[0] = 0;
68
69 /* And make sure it's gone from the TLB too */
70 asm volatile ("sync");
71 asm volatile ("tlbie %0" : : "r" (pte->pte.eaddr) : "memory");
72 asm volatile ("sync");
73 asm volatile ("tlbsync");
74}
75
76/* We keep 512 gvsid->hvsid entries, mapping the guest ones to the array using
77 * a hash, so we don't waste cycles on looping */
78static u16 kvmppc_sid_hash(struct kvm_vcpu *vcpu, u64 gvsid)
79{
80 return hash_64(gvsid, SID_MAP_BITS);
81}
82
83
84static struct kvmppc_sid_map *find_sid_vsid(struct kvm_vcpu *vcpu, u64 gvsid)
85{
86 struct kvmppc_sid_map *map;
87 u16 sid_map_mask;
88
89 if (vcpu->arch.msr & MSR_PR)
90 gvsid |= VSID_PR;
91
92 sid_map_mask = kvmppc_sid_hash(vcpu, gvsid);
93 map = &to_book3s(vcpu)->sid_map[sid_map_mask];
94 if (map->guest_vsid == gvsid) {
95 dprintk_sr("SR: Searching 0x%llx -> 0x%llx\n",
96 gvsid, map->host_vsid);
97 return map;
98 }
99
100 map = &to_book3s(vcpu)->sid_map[SID_MAP_MASK - sid_map_mask];
101 if (map->guest_vsid == gvsid) {
102 dprintk_sr("SR: Searching 0x%llx -> 0x%llx\n",
103 gvsid, map->host_vsid);
104 return map;
105 }
106
107 dprintk_sr("SR: Searching 0x%llx -> not found\n", gvsid);
108 return NULL;
109}
110
111static u32 *kvmppc_mmu_get_pteg(struct kvm_vcpu *vcpu, u32 vsid, u32 eaddr,
112 bool primary)
113{
114 u32 page, hash;
115 ulong pteg = htab;
116
117 page = (eaddr & ~ESID_MASK) >> 12;
118
119 hash = ((vsid ^ page) << 6);
120 if (!primary)
121 hash = ~hash;
122
123 hash &= htabmask;
124
125 pteg |= hash;
126
127 dprintk_mmu("htab: %lx | hash: %x | htabmask: %x | pteg: %lx\n",
128 htab, hash, htabmask, pteg);
129
130 return (u32*)pteg;
131}
132
133extern char etext[];
134
135int kvmppc_mmu_map_page(struct kvm_vcpu *vcpu, struct kvmppc_pte *orig_pte)
136{
137 pfn_t hpaddr;
138 u64 va;
139 u64 vsid;
140 struct kvmppc_sid_map *map;
141 volatile u32 *pteg;
142 u32 eaddr = orig_pte->eaddr;
143 u32 pteg0, pteg1;
144 register int rr = 0;
145 bool primary = false;
146 bool evict = false;
147 struct hpte_cache *pte;
148
149 /* Get host physical address for gpa */
150 hpaddr = gfn_to_pfn(vcpu->kvm, orig_pte->raddr >> PAGE_SHIFT);
151 if (kvm_is_error_hva(hpaddr)) {
152 printk(KERN_INFO "Couldn't get guest page for gfn %lx!\n",
153 orig_pte->eaddr);
154 return -EINVAL;
155 }
156 hpaddr <<= PAGE_SHIFT;
157
158 /* and write the mapping ea -> hpa into the pt */
159 vcpu->arch.mmu.esid_to_vsid(vcpu, orig_pte->eaddr >> SID_SHIFT, &vsid);
160 map = find_sid_vsid(vcpu, vsid);
161 if (!map) {
162 kvmppc_mmu_map_segment(vcpu, eaddr);
163 map = find_sid_vsid(vcpu, vsid);
164 }
165 BUG_ON(!map);
166
167 vsid = map->host_vsid;
168 va = (vsid << SID_SHIFT) | (eaddr & ~ESID_MASK);
169
170next_pteg:
171 if (rr == 16) {
172 primary = !primary;
173 evict = true;
174 rr = 0;
175 }
176
177 pteg = kvmppc_mmu_get_pteg(vcpu, vsid, eaddr, primary);
178
179 /* not evicting yet */
180 if (!evict && (pteg[rr] & PTE_V)) {
181 rr += 2;
182 goto next_pteg;
183 }
184
185 dprintk_mmu("KVM: old PTEG: %p (%d)\n", pteg, rr);
186 dprintk_mmu("KVM: %08x - %08x\n", pteg[0], pteg[1]);
187 dprintk_mmu("KVM: %08x - %08x\n", pteg[2], pteg[3]);
188 dprintk_mmu("KVM: %08x - %08x\n", pteg[4], pteg[5]);
189 dprintk_mmu("KVM: %08x - %08x\n", pteg[6], pteg[7]);
190 dprintk_mmu("KVM: %08x - %08x\n", pteg[8], pteg[9]);
191 dprintk_mmu("KVM: %08x - %08x\n", pteg[10], pteg[11]);
192 dprintk_mmu("KVM: %08x - %08x\n", pteg[12], pteg[13]);
193 dprintk_mmu("KVM: %08x - %08x\n", pteg[14], pteg[15]);
194
195 pteg0 = ((eaddr & 0x0fffffff) >> 22) | (vsid << 7) | PTE_V |
196 (primary ? 0 : PTE_SEC);
197 pteg1 = hpaddr | PTE_M | PTE_R | PTE_C;
198
199 if (orig_pte->may_write) {
200 pteg1 |= PP_RWRW;
201 mark_page_dirty(vcpu->kvm, orig_pte->raddr >> PAGE_SHIFT);
202 } else {
203 pteg1 |= PP_RWRX;
204 }
205
206 local_irq_disable();
207
208 if (pteg[rr]) {
209 pteg[rr] = 0;
210 asm volatile ("sync");
211 }
212 pteg[rr + 1] = pteg1;
213 pteg[rr] = pteg0;
214 asm volatile ("sync");
215
216 local_irq_enable();
217
218 dprintk_mmu("KVM: new PTEG: %p\n", pteg);
219 dprintk_mmu("KVM: %08x - %08x\n", pteg[0], pteg[1]);
220 dprintk_mmu("KVM: %08x - %08x\n", pteg[2], pteg[3]);
221 dprintk_mmu("KVM: %08x - %08x\n", pteg[4], pteg[5]);
222 dprintk_mmu("KVM: %08x - %08x\n", pteg[6], pteg[7]);
223 dprintk_mmu("KVM: %08x - %08x\n", pteg[8], pteg[9]);
224 dprintk_mmu("KVM: %08x - %08x\n", pteg[10], pteg[11]);
225 dprintk_mmu("KVM: %08x - %08x\n", pteg[12], pteg[13]);
226 dprintk_mmu("KVM: %08x - %08x\n", pteg[14], pteg[15]);
227
228
229 /* Now tell our Shadow PTE code about the new page */
230
231 pte = kvmppc_mmu_hpte_cache_next(vcpu);
232
233 dprintk_mmu("KVM: %c%c Map 0x%llx: [%lx] 0x%llx (0x%llx) -> %lx\n",
234 orig_pte->may_write ? 'w' : '-',
235 orig_pte->may_execute ? 'x' : '-',
236 orig_pte->eaddr, (ulong)pteg, va,
237 orig_pte->vpage, hpaddr);
238
239 pte->slot = (ulong)&pteg[rr];
240 pte->host_va = va;
241 pte->pte = *orig_pte;
242 pte->pfn = hpaddr >> PAGE_SHIFT;
243
244 kvmppc_mmu_hpte_cache_map(vcpu, pte);
245
246 return 0;
247}
248
249static struct kvmppc_sid_map *create_sid_map(struct kvm_vcpu *vcpu, u64 gvsid)
250{
251 struct kvmppc_sid_map *map;
252 struct kvmppc_vcpu_book3s *vcpu_book3s = to_book3s(vcpu);
253 u16 sid_map_mask;
254 static int backwards_map = 0;
255
256 if (vcpu->arch.msr & MSR_PR)
257 gvsid |= VSID_PR;
258
259 /* We might get collisions that trap in preceding order, so let's
260 map them differently */
261
262 sid_map_mask = kvmppc_sid_hash(vcpu, gvsid);
263 if (backwards_map)
264 sid_map_mask = SID_MAP_MASK - sid_map_mask;
265
266 map = &to_book3s(vcpu)->sid_map[sid_map_mask];
267
268 /* Make sure we're taking the other map next time */
269 backwards_map = !backwards_map;
270
271 /* Uh-oh ... out of mappings. Let's flush! */
272 if (vcpu_book3s->vsid_next >= vcpu_book3s->vsid_max) {
273 vcpu_book3s->vsid_next = vcpu_book3s->vsid_first;
274 memset(vcpu_book3s->sid_map, 0,
275 sizeof(struct kvmppc_sid_map) * SID_MAP_NUM);
276 kvmppc_mmu_pte_flush(vcpu, 0, 0);
277 kvmppc_mmu_flush_segments(vcpu);
278 }
279 map->host_vsid = vcpu_book3s->vsid_next;
280
281 /* Would have to be 111 to be completely aligned with the rest of
282 Linux, but that is just way too little space! */
283 vcpu_book3s->vsid_next+=1;
284
285 map->guest_vsid = gvsid;
286 map->valid = true;
287
288 return map;
289}
290
291int kvmppc_mmu_map_segment(struct kvm_vcpu *vcpu, ulong eaddr)
292{
293 u32 esid = eaddr >> SID_SHIFT;
294 u64 gvsid;
295 u32 sr;
296 struct kvmppc_sid_map *map;
297 struct kvmppc_book3s_shadow_vcpu *svcpu = to_svcpu(vcpu);
298
299 if (vcpu->arch.mmu.esid_to_vsid(vcpu, esid, &gvsid)) {
300 /* Invalidate an entry */
301 svcpu->sr[esid] = SR_INVALID;
302 return -ENOENT;
303 }
304
305 map = find_sid_vsid(vcpu, gvsid);
306 if (!map)
307 map = create_sid_map(vcpu, gvsid);
308
309 map->guest_esid = esid;
310 sr = map->host_vsid | SR_KP;
311 svcpu->sr[esid] = sr;
312
313 dprintk_sr("MMU: mtsr %d, 0x%x\n", esid, sr);
314
315 return 0;
316}
317
318void kvmppc_mmu_flush_segments(struct kvm_vcpu *vcpu)
319{
320 int i;
321 struct kvmppc_book3s_shadow_vcpu *svcpu = to_svcpu(vcpu);
322
323 dprintk_sr("MMU: flushing all segments (%d)\n", ARRAY_SIZE(svcpu->sr));
324 for (i = 0; i < ARRAY_SIZE(svcpu->sr); i++)
325 svcpu->sr[i] = SR_INVALID;
326}
327
328void kvmppc_mmu_destroy(struct kvm_vcpu *vcpu)
329{
330 kvmppc_mmu_hpte_destroy(vcpu);
331 preempt_disable();
332 __destroy_context(to_book3s(vcpu)->context_id);
333 preempt_enable();
334}
335
336/* From mm/mmu_context_hash32.c */
337#define CTX_TO_VSID(ctx) (((ctx) * (897 * 16)) & 0xffffff)
338
339int kvmppc_mmu_init(struct kvm_vcpu *vcpu)
340{
341 struct kvmppc_vcpu_book3s *vcpu3s = to_book3s(vcpu);
342 int err;
343 ulong sdr1;
344
345 err = __init_new_context();
346 if (err < 0)
347 return -1;
348 vcpu3s->context_id = err;
349
350 vcpu3s->vsid_max = CTX_TO_VSID(vcpu3s->context_id + 1) - 1;
351 vcpu3s->vsid_first = CTX_TO_VSID(vcpu3s->context_id);
352
353#if 0 /* XXX still doesn't guarantee uniqueness */
354 /* We could collide with the Linux vsid space because the vsid
355 * wraps around at 24 bits. We're safe if we do our own space
356 * though, so let's always set the highest bit. */
357
358 vcpu3s->vsid_max |= 0x00800000;
359 vcpu3s->vsid_first |= 0x00800000;
360#endif
361 BUG_ON(vcpu3s->vsid_max < vcpu3s->vsid_first);
362
363 vcpu3s->vsid_next = vcpu3s->vsid_first;
364
365 /* Remember where the HTAB is */
366 asm ( "mfsdr1 %0" : "=r"(sdr1) );
367 htabmask = ((sdr1 & 0x1FF) << 16) | 0xFFC0;
368 htab = (ulong)__va(sdr1 & 0xffff0000);
369
370 kvmppc_mmu_hpte_init(vcpu);
371
372 return 0;
373}
diff --git a/arch/powerpc/kvm/book3s_32_sr.S b/arch/powerpc/kvm/book3s_32_sr.S
new file mode 100644
index 000000000000..3608471ad2d8
--- /dev/null
+++ b/arch/powerpc/kvm/book3s_32_sr.S
@@ -0,0 +1,143 @@
1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License, version 2, as
4 * published by the Free Software Foundation.
5 *
6 * This program is distributed in the hope that it will be useful,
7 * but WITHOUT ANY WARRANTY; without even the implied warranty of
8 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9 * GNU General Public License for more details.
10 *
11 * You should have received a copy of the GNU General Public License
12 * along with this program; if not, write to the Free Software
13 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
14 *
15 * Copyright SUSE Linux Products GmbH 2009
16 *
17 * Authors: Alexander Graf <agraf@suse.de>
18 */
19
20/******************************************************************************
21 * *
22 * Entry code *
23 * *
24 *****************************************************************************/
25
26.macro LOAD_GUEST_SEGMENTS
27
28 /* Required state:
29 *
30 * MSR = ~IR|DR
31 * R1 = host R1
32 * R2 = host R2
33 * R3 = shadow vcpu
34 * all other volatile GPRS = free
35 * SVCPU[CR] = guest CR
36 * SVCPU[XER] = guest XER
37 * SVCPU[CTR] = guest CTR
38 * SVCPU[LR] = guest LR
39 */
40
41#define XCHG_SR(n) lwz r9, (SVCPU_SR+(n*4))(r3); \
42 mtsr n, r9
43
44 XCHG_SR(0)
45 XCHG_SR(1)
46 XCHG_SR(2)
47 XCHG_SR(3)
48 XCHG_SR(4)
49 XCHG_SR(5)
50 XCHG_SR(6)
51 XCHG_SR(7)
52 XCHG_SR(8)
53 XCHG_SR(9)
54 XCHG_SR(10)
55 XCHG_SR(11)
56 XCHG_SR(12)
57 XCHG_SR(13)
58 XCHG_SR(14)
59 XCHG_SR(15)
60
61 /* Clear BATs. */
62
63#define KVM_KILL_BAT(n, reg) \
64 mtspr SPRN_IBAT##n##U,reg; \
65 mtspr SPRN_IBAT##n##L,reg; \
66 mtspr SPRN_DBAT##n##U,reg; \
67 mtspr SPRN_DBAT##n##L,reg; \
68
69 li r9, 0
70 KVM_KILL_BAT(0, r9)
71 KVM_KILL_BAT(1, r9)
72 KVM_KILL_BAT(2, r9)
73 KVM_KILL_BAT(3, r9)
74
75.endm
76
77/******************************************************************************
78 * *
79 * Exit code *
80 * *
81 *****************************************************************************/
82
83.macro LOAD_HOST_SEGMENTS
84
85 /* Register usage at this point:
86 *
87 * R1 = host R1
88 * R2 = host R2
89 * R12 = exit handler id
90 * R13 = shadow vcpu - SHADOW_VCPU_OFF
91 * SVCPU.* = guest *
92 * SVCPU[CR] = guest CR
93 * SVCPU[XER] = guest XER
94 * SVCPU[CTR] = guest CTR
95 * SVCPU[LR] = guest LR
96 *
97 */
98
99 /* Restore BATs */
100
101 /* We only overwrite the upper part, so we only restoree
102 the upper part. */
103#define KVM_LOAD_BAT(n, reg, RA, RB) \
104 lwz RA,(n*16)+0(reg); \
105 lwz RB,(n*16)+4(reg); \
106 mtspr SPRN_IBAT##n##U,RA; \
107 mtspr SPRN_IBAT##n##L,RB; \
108 lwz RA,(n*16)+8(reg); \
109 lwz RB,(n*16)+12(reg); \
110 mtspr SPRN_DBAT##n##U,RA; \
111 mtspr SPRN_DBAT##n##L,RB; \
112
113 lis r9, BATS@ha
114 addi r9, r9, BATS@l
115 tophys(r9, r9)
116 KVM_LOAD_BAT(0, r9, r10, r11)
117 KVM_LOAD_BAT(1, r9, r10, r11)
118 KVM_LOAD_BAT(2, r9, r10, r11)
119 KVM_LOAD_BAT(3, r9, r10, r11)
120
121 /* Restore Segment Registers */
122
123 /* 0xc - 0xf */
124
125 li r0, 4
126 mtctr r0
127 LOAD_REG_IMMEDIATE(r3, 0x20000000 | (0x111 * 0xc))
128 lis r4, 0xc000
1293: mtsrin r3, r4
130 addi r3, r3, 0x111 /* increment VSID */
131 addis r4, r4, 0x1000 /* address of next segment */
132 bdnz 3b
133
134 /* 0x0 - 0xb */
135
136 /* 'current->mm' needs to be in r4 */
137 tophys(r4, r2)
138 lwz r4, MM(r4)
139 tophys(r4, r4)
140 /* This only clobbers r0, r3, r4 and r5 */
141 bl switch_mmu_context
142
143.endm
diff --git a/arch/powerpc/kvm/book3s_64_mmu.c b/arch/powerpc/kvm/book3s_64_mmu.c
index 512dcff77554..4025ea26b3c1 100644
--- a/arch/powerpc/kvm/book3s_64_mmu.c
+++ b/arch/powerpc/kvm/book3s_64_mmu.c
@@ -232,7 +232,7 @@ do_second:
232 } 232 }
233 233
234 dprintk("KVM MMU: Translated 0x%lx [0x%llx] -> 0x%llx " 234 dprintk("KVM MMU: Translated 0x%lx [0x%llx] -> 0x%llx "
235 "-> 0x%llx\n", 235 "-> 0x%lx\n",
236 eaddr, avpn, gpte->vpage, gpte->raddr); 236 eaddr, avpn, gpte->vpage, gpte->raddr);
237 found = true; 237 found = true;
238 break; 238 break;
@@ -383,7 +383,7 @@ static void kvmppc_mmu_book3s_64_slbia(struct kvm_vcpu *vcpu)
383 383
384 if (vcpu->arch.msr & MSR_IR) { 384 if (vcpu->arch.msr & MSR_IR) {
385 kvmppc_mmu_flush_segments(vcpu); 385 kvmppc_mmu_flush_segments(vcpu);
386 kvmppc_mmu_map_segment(vcpu, vcpu->arch.pc); 386 kvmppc_mmu_map_segment(vcpu, kvmppc_get_pc(vcpu));
387 } 387 }
388} 388}
389 389
@@ -439,37 +439,43 @@ static void kvmppc_mmu_book3s_64_tlbie(struct kvm_vcpu *vcpu, ulong va,
439 kvmppc_mmu_pte_vflush(vcpu, va >> 12, mask); 439 kvmppc_mmu_pte_vflush(vcpu, va >> 12, mask);
440} 440}
441 441
442static int kvmppc_mmu_book3s_64_esid_to_vsid(struct kvm_vcpu *vcpu, u64 esid, 442static int kvmppc_mmu_book3s_64_esid_to_vsid(struct kvm_vcpu *vcpu, ulong esid,
443 u64 *vsid) 443 u64 *vsid)
444{ 444{
445 ulong ea = esid << SID_SHIFT;
446 struct kvmppc_slb *slb;
447 u64 gvsid = esid;
448
449 if (vcpu->arch.msr & (MSR_DR|MSR_IR)) {
450 slb = kvmppc_mmu_book3s_64_find_slbe(to_book3s(vcpu), ea);
451 if (slb)
452 gvsid = slb->vsid;
453 }
454
445 switch (vcpu->arch.msr & (MSR_DR|MSR_IR)) { 455 switch (vcpu->arch.msr & (MSR_DR|MSR_IR)) {
446 case 0: 456 case 0:
447 *vsid = (VSID_REAL >> 16) | esid; 457 *vsid = VSID_REAL | esid;
448 break; 458 break;
449 case MSR_IR: 459 case MSR_IR:
450 *vsid = (VSID_REAL_IR >> 16) | esid; 460 *vsid = VSID_REAL_IR | gvsid;
451 break; 461 break;
452 case MSR_DR: 462 case MSR_DR:
453 *vsid = (VSID_REAL_DR >> 16) | esid; 463 *vsid = VSID_REAL_DR | gvsid;
454 break; 464 break;
455 case MSR_DR|MSR_IR: 465 case MSR_DR|MSR_IR:
456 { 466 if (!slb)
457 ulong ea;
458 struct kvmppc_slb *slb;
459 ea = esid << SID_SHIFT;
460 slb = kvmppc_mmu_book3s_64_find_slbe(to_book3s(vcpu), ea);
461 if (slb)
462 *vsid = slb->vsid;
463 else
464 return -ENOENT; 467 return -ENOENT;
465 468
469 *vsid = gvsid;
466 break; 470 break;
467 }
468 default: 471 default:
469 BUG(); 472 BUG();
470 break; 473 break;
471 } 474 }
472 475
476 if (vcpu->arch.msr & MSR_PR)
477 *vsid |= VSID_PR;
478
473 return 0; 479 return 0;
474} 480}
475 481
diff --git a/arch/powerpc/kvm/book3s_64_mmu_host.c b/arch/powerpc/kvm/book3s_64_mmu_host.c
index f2899b297ffd..384179a5002b 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_host.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_host.c
@@ -20,6 +20,7 @@
20 */ 20 */
21 21
22#include <linux/kvm_host.h> 22#include <linux/kvm_host.h>
23#include <linux/hash.h>
23 24
24#include <asm/kvm_ppc.h> 25#include <asm/kvm_ppc.h>
25#include <asm/kvm_book3s.h> 26#include <asm/kvm_book3s.h>
@@ -46,131 +47,20 @@
46#define dprintk_slb(a, ...) do { } while(0) 47#define dprintk_slb(a, ...) do { } while(0)
47#endif 48#endif
48 49
49static void invalidate_pte(struct hpte_cache *pte) 50void kvmppc_mmu_invalidate_pte(struct kvm_vcpu *vcpu, struct hpte_cache *pte)
50{ 51{
51 dprintk_mmu("KVM: Flushing SPT %d: 0x%llx (0x%llx) -> 0x%llx\n",
52 i, pte->pte.eaddr, pte->pte.vpage, pte->host_va);
53
54 ppc_md.hpte_invalidate(pte->slot, pte->host_va, 52 ppc_md.hpte_invalidate(pte->slot, pte->host_va,
55 MMU_PAGE_4K, MMU_SEGSIZE_256M, 53 MMU_PAGE_4K, MMU_SEGSIZE_256M,
56 false); 54 false);
57 pte->host_va = 0;
58 kvm_release_pfn_dirty(pte->pfn);
59}
60
61void kvmppc_mmu_pte_flush(struct kvm_vcpu *vcpu, u64 guest_ea, u64 ea_mask)
62{
63 int i;
64
65 dprintk_mmu("KVM: Flushing %d Shadow PTEs: 0x%llx & 0x%llx\n",
66 vcpu->arch.hpte_cache_offset, guest_ea, ea_mask);
67 BUG_ON(vcpu->arch.hpte_cache_offset > HPTEG_CACHE_NUM);
68
69 guest_ea &= ea_mask;
70 for (i = 0; i < vcpu->arch.hpte_cache_offset; i++) {
71 struct hpte_cache *pte;
72
73 pte = &vcpu->arch.hpte_cache[i];
74 if (!pte->host_va)
75 continue;
76
77 if ((pte->pte.eaddr & ea_mask) == guest_ea) {
78 invalidate_pte(pte);
79 }
80 }
81
82 /* Doing a complete flush -> start from scratch */
83 if (!ea_mask)
84 vcpu->arch.hpte_cache_offset = 0;
85}
86
87void kvmppc_mmu_pte_vflush(struct kvm_vcpu *vcpu, u64 guest_vp, u64 vp_mask)
88{
89 int i;
90
91 dprintk_mmu("KVM: Flushing %d Shadow vPTEs: 0x%llx & 0x%llx\n",
92 vcpu->arch.hpte_cache_offset, guest_vp, vp_mask);
93 BUG_ON(vcpu->arch.hpte_cache_offset > HPTEG_CACHE_NUM);
94
95 guest_vp &= vp_mask;
96 for (i = 0; i < vcpu->arch.hpte_cache_offset; i++) {
97 struct hpte_cache *pte;
98
99 pte = &vcpu->arch.hpte_cache[i];
100 if (!pte->host_va)
101 continue;
102
103 if ((pte->pte.vpage & vp_mask) == guest_vp) {
104 invalidate_pte(pte);
105 }
106 }
107}
108
109void kvmppc_mmu_pte_pflush(struct kvm_vcpu *vcpu, u64 pa_start, u64 pa_end)
110{
111 int i;
112
113 dprintk_mmu("KVM: Flushing %d Shadow pPTEs: 0x%llx & 0x%llx\n",
114 vcpu->arch.hpte_cache_offset, guest_pa, pa_mask);
115 BUG_ON(vcpu->arch.hpte_cache_offset > HPTEG_CACHE_NUM);
116
117 for (i = 0; i < vcpu->arch.hpte_cache_offset; i++) {
118 struct hpte_cache *pte;
119
120 pte = &vcpu->arch.hpte_cache[i];
121 if (!pte->host_va)
122 continue;
123
124 if ((pte->pte.raddr >= pa_start) &&
125 (pte->pte.raddr < pa_end)) {
126 invalidate_pte(pte);
127 }
128 }
129}
130
131struct kvmppc_pte *kvmppc_mmu_find_pte(struct kvm_vcpu *vcpu, u64 ea, bool data)
132{
133 int i;
134 u64 guest_vp;
135
136 guest_vp = vcpu->arch.mmu.ea_to_vp(vcpu, ea, false);
137 for (i=0; i<vcpu->arch.hpte_cache_offset; i++) {
138 struct hpte_cache *pte;
139
140 pte = &vcpu->arch.hpte_cache[i];
141 if (!pte->host_va)
142 continue;
143
144 if (pte->pte.vpage == guest_vp)
145 return &pte->pte;
146 }
147
148 return NULL;
149}
150
151static int kvmppc_mmu_hpte_cache_next(struct kvm_vcpu *vcpu)
152{
153 if (vcpu->arch.hpte_cache_offset == HPTEG_CACHE_NUM)
154 kvmppc_mmu_pte_flush(vcpu, 0, 0);
155
156 return vcpu->arch.hpte_cache_offset++;
157} 55}
158 56
159/* We keep 512 gvsid->hvsid entries, mapping the guest ones to the array using 57/* We keep 512 gvsid->hvsid entries, mapping the guest ones to the array using
160 * a hash, so we don't waste cycles on looping */ 58 * a hash, so we don't waste cycles on looping */
161static u16 kvmppc_sid_hash(struct kvm_vcpu *vcpu, u64 gvsid) 59static u16 kvmppc_sid_hash(struct kvm_vcpu *vcpu, u64 gvsid)
162{ 60{
163 return (u16)(((gvsid >> (SID_MAP_BITS * 7)) & SID_MAP_MASK) ^ 61 return hash_64(gvsid, SID_MAP_BITS);
164 ((gvsid >> (SID_MAP_BITS * 6)) & SID_MAP_MASK) ^
165 ((gvsid >> (SID_MAP_BITS * 5)) & SID_MAP_MASK) ^
166 ((gvsid >> (SID_MAP_BITS * 4)) & SID_MAP_MASK) ^
167 ((gvsid >> (SID_MAP_BITS * 3)) & SID_MAP_MASK) ^
168 ((gvsid >> (SID_MAP_BITS * 2)) & SID_MAP_MASK) ^
169 ((gvsid >> (SID_MAP_BITS * 1)) & SID_MAP_MASK) ^
170 ((gvsid >> (SID_MAP_BITS * 0)) & SID_MAP_MASK));
171} 62}
172 63
173
174static struct kvmppc_sid_map *find_sid_vsid(struct kvm_vcpu *vcpu, u64 gvsid) 64static struct kvmppc_sid_map *find_sid_vsid(struct kvm_vcpu *vcpu, u64 gvsid)
175{ 65{
176 struct kvmppc_sid_map *map; 66 struct kvmppc_sid_map *map;
@@ -182,7 +72,7 @@ static struct kvmppc_sid_map *find_sid_vsid(struct kvm_vcpu *vcpu, u64 gvsid)
182 sid_map_mask = kvmppc_sid_hash(vcpu, gvsid); 72 sid_map_mask = kvmppc_sid_hash(vcpu, gvsid);
183 map = &to_book3s(vcpu)->sid_map[sid_map_mask]; 73 map = &to_book3s(vcpu)->sid_map[sid_map_mask];
184 if (map->guest_vsid == gvsid) { 74 if (map->guest_vsid == gvsid) {
185 dprintk_slb("SLB: Searching 0x%llx -> 0x%llx\n", 75 dprintk_slb("SLB: Searching: 0x%llx -> 0x%llx\n",
186 gvsid, map->host_vsid); 76 gvsid, map->host_vsid);
187 return map; 77 return map;
188 } 78 }
@@ -194,7 +84,8 @@ static struct kvmppc_sid_map *find_sid_vsid(struct kvm_vcpu *vcpu, u64 gvsid)
194 return map; 84 return map;
195 } 85 }
196 86
197 dprintk_slb("SLB: Searching 0x%llx -> not found\n", gvsid); 87 dprintk_slb("SLB: Searching %d/%d: 0x%llx -> not found\n",
88 sid_map_mask, SID_MAP_MASK - sid_map_mask, gvsid);
198 return NULL; 89 return NULL;
199} 90}
200 91
@@ -212,7 +103,7 @@ int kvmppc_mmu_map_page(struct kvm_vcpu *vcpu, struct kvmppc_pte *orig_pte)
212 /* Get host physical address for gpa */ 103 /* Get host physical address for gpa */
213 hpaddr = gfn_to_pfn(vcpu->kvm, orig_pte->raddr >> PAGE_SHIFT); 104 hpaddr = gfn_to_pfn(vcpu->kvm, orig_pte->raddr >> PAGE_SHIFT);
214 if (kvm_is_error_hva(hpaddr)) { 105 if (kvm_is_error_hva(hpaddr)) {
215 printk(KERN_INFO "Couldn't get guest page for gfn %llx!\n", orig_pte->eaddr); 106 printk(KERN_INFO "Couldn't get guest page for gfn %lx!\n", orig_pte->eaddr);
216 return -EINVAL; 107 return -EINVAL;
217 } 108 }
218 hpaddr <<= PAGE_SHIFT; 109 hpaddr <<= PAGE_SHIFT;
@@ -227,10 +118,16 @@ int kvmppc_mmu_map_page(struct kvm_vcpu *vcpu, struct kvmppc_pte *orig_pte)
227 vcpu->arch.mmu.esid_to_vsid(vcpu, orig_pte->eaddr >> SID_SHIFT, &vsid); 118 vcpu->arch.mmu.esid_to_vsid(vcpu, orig_pte->eaddr >> SID_SHIFT, &vsid);
228 map = find_sid_vsid(vcpu, vsid); 119 map = find_sid_vsid(vcpu, vsid);
229 if (!map) { 120 if (!map) {
230 kvmppc_mmu_map_segment(vcpu, orig_pte->eaddr); 121 ret = kvmppc_mmu_map_segment(vcpu, orig_pte->eaddr);
122 WARN_ON(ret < 0);
231 map = find_sid_vsid(vcpu, vsid); 123 map = find_sid_vsid(vcpu, vsid);
232 } 124 }
233 BUG_ON(!map); 125 if (!map) {
126 printk(KERN_ERR "KVM: Segment map for 0x%llx (0x%lx) failed\n",
127 vsid, orig_pte->eaddr);
128 WARN_ON(true);
129 return -EINVAL;
130 }
234 131
235 vsid = map->host_vsid; 132 vsid = map->host_vsid;
236 va = hpt_va(orig_pte->eaddr, vsid, MMU_SEGSIZE_256M); 133 va = hpt_va(orig_pte->eaddr, vsid, MMU_SEGSIZE_256M);
@@ -257,30 +154,31 @@ map_again:
257 154
258 if (ret < 0) { 155 if (ret < 0) {
259 /* If we couldn't map a primary PTE, try a secondary */ 156 /* If we couldn't map a primary PTE, try a secondary */
260#ifdef USE_SECONDARY
261 hash = ~hash; 157 hash = ~hash;
158 vflags ^= HPTE_V_SECONDARY;
262 attempt++; 159 attempt++;
263 if (attempt % 2)
264 vflags = HPTE_V_SECONDARY;
265 else
266 vflags = 0;
267#else
268 attempt = 2;
269#endif
270 goto map_again; 160 goto map_again;
271 } else { 161 } else {
272 int hpte_id = kvmppc_mmu_hpte_cache_next(vcpu); 162 struct hpte_cache *pte = kvmppc_mmu_hpte_cache_next(vcpu);
273 struct hpte_cache *pte = &vcpu->arch.hpte_cache[hpte_id];
274 163
275 dprintk_mmu("KVM: %c%c Map 0x%llx: [%lx] 0x%lx (0x%llx) -> %lx\n", 164 dprintk_mmu("KVM: %c%c Map 0x%lx: [%lx] 0x%lx (0x%llx) -> %lx\n",
276 ((rflags & HPTE_R_PP) == 3) ? '-' : 'w', 165 ((rflags & HPTE_R_PP) == 3) ? '-' : 'w',
277 (rflags & HPTE_R_N) ? '-' : 'x', 166 (rflags & HPTE_R_N) ? '-' : 'x',
278 orig_pte->eaddr, hpteg, va, orig_pte->vpage, hpaddr); 167 orig_pte->eaddr, hpteg, va, orig_pte->vpage, hpaddr);
279 168
169 /* The ppc_md code may give us a secondary entry even though we
170 asked for a primary. Fix up. */
171 if ((ret & _PTEIDX_SECONDARY) && !(vflags & HPTE_V_SECONDARY)) {
172 hash = ~hash;
173 hpteg = ((hash & htab_hash_mask) * HPTES_PER_GROUP);
174 }
175
280 pte->slot = hpteg + (ret & 7); 176 pte->slot = hpteg + (ret & 7);
281 pte->host_va = va; 177 pte->host_va = va;
282 pte->pte = *orig_pte; 178 pte->pte = *orig_pte;
283 pte->pfn = hpaddr >> PAGE_SHIFT; 179 pte->pfn = hpaddr >> PAGE_SHIFT;
180
181 kvmppc_mmu_hpte_cache_map(vcpu, pte);
284 } 182 }
285 183
286 return 0; 184 return 0;
@@ -321,6 +219,9 @@ static struct kvmppc_sid_map *create_sid_map(struct kvm_vcpu *vcpu, u64 gvsid)
321 map->guest_vsid = gvsid; 219 map->guest_vsid = gvsid;
322 map->valid = true; 220 map->valid = true;
323 221
222 dprintk_slb("SLB: New mapping at %d: 0x%llx -> 0x%llx\n",
223 sid_map_mask, gvsid, map->host_vsid);
224
324 return map; 225 return map;
325} 226}
326 227
@@ -331,14 +232,14 @@ static int kvmppc_mmu_next_segment(struct kvm_vcpu *vcpu, ulong esid)
331 int found_inval = -1; 232 int found_inval = -1;
332 int r; 233 int r;
333 234
334 if (!get_paca()->kvm_slb_max) 235 if (!to_svcpu(vcpu)->slb_max)
335 get_paca()->kvm_slb_max = 1; 236 to_svcpu(vcpu)->slb_max = 1;
336 237
337 /* Are we overwriting? */ 238 /* Are we overwriting? */
338 for (i = 1; i < get_paca()->kvm_slb_max; i++) { 239 for (i = 1; i < to_svcpu(vcpu)->slb_max; i++) {
339 if (!(get_paca()->kvm_slb[i].esid & SLB_ESID_V)) 240 if (!(to_svcpu(vcpu)->slb[i].esid & SLB_ESID_V))
340 found_inval = i; 241 found_inval = i;
341 else if ((get_paca()->kvm_slb[i].esid & ESID_MASK) == esid) 242 else if ((to_svcpu(vcpu)->slb[i].esid & ESID_MASK) == esid)
342 return i; 243 return i;
343 } 244 }
344 245
@@ -352,11 +253,11 @@ static int kvmppc_mmu_next_segment(struct kvm_vcpu *vcpu, ulong esid)
352 max_slb_size = mmu_slb_size; 253 max_slb_size = mmu_slb_size;
353 254
354 /* Overflowing -> purge */ 255 /* Overflowing -> purge */
355 if ((get_paca()->kvm_slb_max) == max_slb_size) 256 if ((to_svcpu(vcpu)->slb_max) == max_slb_size)
356 kvmppc_mmu_flush_segments(vcpu); 257 kvmppc_mmu_flush_segments(vcpu);
357 258
358 r = get_paca()->kvm_slb_max; 259 r = to_svcpu(vcpu)->slb_max;
359 get_paca()->kvm_slb_max++; 260 to_svcpu(vcpu)->slb_max++;
360 261
361 return r; 262 return r;
362} 263}
@@ -374,7 +275,7 @@ int kvmppc_mmu_map_segment(struct kvm_vcpu *vcpu, ulong eaddr)
374 275
375 if (vcpu->arch.mmu.esid_to_vsid(vcpu, esid, &gvsid)) { 276 if (vcpu->arch.mmu.esid_to_vsid(vcpu, esid, &gvsid)) {
376 /* Invalidate an entry */ 277 /* Invalidate an entry */
377 get_paca()->kvm_slb[slb_index].esid = 0; 278 to_svcpu(vcpu)->slb[slb_index].esid = 0;
378 return -ENOENT; 279 return -ENOENT;
379 } 280 }
380 281
@@ -388,8 +289,8 @@ int kvmppc_mmu_map_segment(struct kvm_vcpu *vcpu, ulong eaddr)
388 slb_vsid &= ~SLB_VSID_KP; 289 slb_vsid &= ~SLB_VSID_KP;
389 slb_esid |= slb_index; 290 slb_esid |= slb_index;
390 291
391 get_paca()->kvm_slb[slb_index].esid = slb_esid; 292 to_svcpu(vcpu)->slb[slb_index].esid = slb_esid;
392 get_paca()->kvm_slb[slb_index].vsid = slb_vsid; 293 to_svcpu(vcpu)->slb[slb_index].vsid = slb_vsid;
393 294
394 dprintk_slb("slbmte %#llx, %#llx\n", slb_vsid, slb_esid); 295 dprintk_slb("slbmte %#llx, %#llx\n", slb_vsid, slb_esid);
395 296
@@ -398,11 +299,31 @@ int kvmppc_mmu_map_segment(struct kvm_vcpu *vcpu, ulong eaddr)
398 299
399void kvmppc_mmu_flush_segments(struct kvm_vcpu *vcpu) 300void kvmppc_mmu_flush_segments(struct kvm_vcpu *vcpu)
400{ 301{
401 get_paca()->kvm_slb_max = 1; 302 to_svcpu(vcpu)->slb_max = 1;
402 get_paca()->kvm_slb[0].esid = 0; 303 to_svcpu(vcpu)->slb[0].esid = 0;
403} 304}
404 305
405void kvmppc_mmu_destroy(struct kvm_vcpu *vcpu) 306void kvmppc_mmu_destroy(struct kvm_vcpu *vcpu)
406{ 307{
407 kvmppc_mmu_pte_flush(vcpu, 0, 0); 308 kvmppc_mmu_hpte_destroy(vcpu);
309 __destroy_context(to_book3s(vcpu)->context_id);
310}
311
312int kvmppc_mmu_init(struct kvm_vcpu *vcpu)
313{
314 struct kvmppc_vcpu_book3s *vcpu3s = to_book3s(vcpu);
315 int err;
316
317 err = __init_new_context();
318 if (err < 0)
319 return -1;
320 vcpu3s->context_id = err;
321
322 vcpu3s->vsid_max = ((vcpu3s->context_id + 1) << USER_ESID_BITS) - 1;
323 vcpu3s->vsid_first = vcpu3s->context_id << USER_ESID_BITS;
324 vcpu3s->vsid_next = vcpu3s->vsid_first;
325
326 kvmppc_mmu_hpte_init(vcpu);
327
328 return 0;
408} 329}
diff --git a/arch/powerpc/kvm/book3s_64_slb.S b/arch/powerpc/kvm/book3s_64_slb.S
index 35b762722187..04e7d3bbfe8b 100644
--- a/arch/powerpc/kvm/book3s_64_slb.S
+++ b/arch/powerpc/kvm/book3s_64_slb.S
@@ -44,8 +44,7 @@ slb_exit_skip_ ## num:
44 * * 44 * *
45 *****************************************************************************/ 45 *****************************************************************************/
46 46
47.global kvmppc_handler_trampoline_enter 47.macro LOAD_GUEST_SEGMENTS
48kvmppc_handler_trampoline_enter:
49 48
50 /* Required state: 49 /* Required state:
51 * 50 *
@@ -53,20 +52,14 @@ kvmppc_handler_trampoline_enter:
53 * R13 = PACA 52 * R13 = PACA
54 * R1 = host R1 53 * R1 = host R1
55 * R2 = host R2 54 * R2 = host R2
56 * R9 = guest IP 55 * R3 = shadow vcpu
57 * R10 = guest MSR 56 * all other volatile GPRS = free
58 * all other GPRS = free 57 * SVCPU[CR] = guest CR
59 * PACA[KVM_CR] = guest CR 58 * SVCPU[XER] = guest XER
60 * PACA[KVM_XER] = guest XER 59 * SVCPU[CTR] = guest CTR
60 * SVCPU[LR] = guest LR
61 */ 61 */
62 62
63 mtsrr0 r9
64 mtsrr1 r10
65
66 /* Activate guest mode, so faults get handled by KVM */
67 li r11, KVM_GUEST_MODE_GUEST
68 stb r11, PACA_KVM_IN_GUEST(r13)
69
70 /* Remove LPAR shadow entries */ 63 /* Remove LPAR shadow entries */
71 64
72#if SLB_NUM_BOLTED == 3 65#if SLB_NUM_BOLTED == 3
@@ -101,14 +94,14 @@ kvmppc_handler_trampoline_enter:
101 94
102 /* Fill SLB with our shadow */ 95 /* Fill SLB with our shadow */
103 96
104 lbz r12, PACA_KVM_SLB_MAX(r13) 97 lbz r12, SVCPU_SLB_MAX(r3)
105 mulli r12, r12, 16 98 mulli r12, r12, 16
106 addi r12, r12, PACA_KVM_SLB 99 addi r12, r12, SVCPU_SLB
107 add r12, r12, r13 100 add r12, r12, r3
108 101
109 /* for (r11 = kvm_slb; r11 < kvm_slb + kvm_slb_size; r11+=slb_entry) */ 102 /* for (r11 = kvm_slb; r11 < kvm_slb + kvm_slb_size; r11+=slb_entry) */
110 li r11, PACA_KVM_SLB 103 li r11, SVCPU_SLB
111 add r11, r11, r13 104 add r11, r11, r3
112 105
113slb_loop_enter: 106slb_loop_enter:
114 107
@@ -127,34 +120,7 @@ slb_loop_enter_skip:
127 120
128slb_do_enter: 121slb_do_enter:
129 122
130 /* Enter guest */ 123.endm
131
132 ld r0, (PACA_KVM_R0)(r13)
133 ld r1, (PACA_KVM_R1)(r13)
134 ld r2, (PACA_KVM_R2)(r13)
135 ld r3, (PACA_KVM_R3)(r13)
136 ld r4, (PACA_KVM_R4)(r13)
137 ld r5, (PACA_KVM_R5)(r13)
138 ld r6, (PACA_KVM_R6)(r13)
139 ld r7, (PACA_KVM_R7)(r13)
140 ld r8, (PACA_KVM_R8)(r13)
141 ld r9, (PACA_KVM_R9)(r13)
142 ld r10, (PACA_KVM_R10)(r13)
143 ld r12, (PACA_KVM_R12)(r13)
144
145 lwz r11, (PACA_KVM_CR)(r13)
146 mtcr r11
147
148 ld r11, (PACA_KVM_XER)(r13)
149 mtxer r11
150
151 ld r11, (PACA_KVM_R11)(r13)
152 ld r13, (PACA_KVM_R13)(r13)
153
154 RFI
155kvmppc_handler_trampoline_enter_end:
156
157
158 124
159/****************************************************************************** 125/******************************************************************************
160 * * 126 * *
@@ -162,99 +128,22 @@ kvmppc_handler_trampoline_enter_end:
162 * * 128 * *
163 *****************************************************************************/ 129 *****************************************************************************/
164 130
165.global kvmppc_handler_trampoline_exit 131.macro LOAD_HOST_SEGMENTS
166kvmppc_handler_trampoline_exit:
167 132
168 /* Register usage at this point: 133 /* Register usage at this point:
169 * 134 *
170 * SPRG_SCRATCH0 = guest R13 135 * R1 = host R1
171 * R12 = exit handler id 136 * R2 = host R2
172 * R13 = PACA 137 * R12 = exit handler id
173 * PACA.KVM.SCRATCH0 = guest R12 138 * R13 = shadow vcpu - SHADOW_VCPU_OFF [=PACA on PPC64]
174 * PACA.KVM.SCRATCH1 = guest CR 139 * SVCPU.* = guest *
140 * SVCPU[CR] = guest CR
141 * SVCPU[XER] = guest XER
142 * SVCPU[CTR] = guest CTR
143 * SVCPU[LR] = guest LR
175 * 144 *
176 */ 145 */
177 146
178 /* Save registers */
179
180 std r0, PACA_KVM_R0(r13)
181 std r1, PACA_KVM_R1(r13)
182 std r2, PACA_KVM_R2(r13)
183 std r3, PACA_KVM_R3(r13)
184 std r4, PACA_KVM_R4(r13)
185 std r5, PACA_KVM_R5(r13)
186 std r6, PACA_KVM_R6(r13)
187 std r7, PACA_KVM_R7(r13)
188 std r8, PACA_KVM_R8(r13)
189 std r9, PACA_KVM_R9(r13)
190 std r10, PACA_KVM_R10(r13)
191 std r11, PACA_KVM_R11(r13)
192
193 /* Restore R1/R2 so we can handle faults */
194 ld r1, PACA_KVM_HOST_R1(r13)
195 ld r2, PACA_KVM_HOST_R2(r13)
196
197 /* Save guest PC and MSR in GPRs */
198 mfsrr0 r3
199 mfsrr1 r4
200
201 /* Get scratch'ed off registers */
202 mfspr r9, SPRN_SPRG_SCRATCH0
203 std r9, PACA_KVM_R13(r13)
204
205 ld r8, PACA_KVM_SCRATCH0(r13)
206 std r8, PACA_KVM_R12(r13)
207
208 lwz r7, PACA_KVM_SCRATCH1(r13)
209 stw r7, PACA_KVM_CR(r13)
210
211 /* Save more register state */
212
213 mfxer r6
214 stw r6, PACA_KVM_XER(r13)
215
216 mfdar r5
217 mfdsisr r6
218
219 /*
220 * In order for us to easily get the last instruction,
221 * we got the #vmexit at, we exploit the fact that the
222 * virtual layout is still the same here, so we can just
223 * ld from the guest's PC address
224 */
225
226 /* We only load the last instruction when it's safe */
227 cmpwi r12, BOOK3S_INTERRUPT_DATA_STORAGE
228 beq ld_last_inst
229 cmpwi r12, BOOK3S_INTERRUPT_PROGRAM
230 beq ld_last_inst
231
232 b no_ld_last_inst
233
234ld_last_inst:
235 /* Save off the guest instruction we're at */
236
237 /* Set guest mode to 'jump over instruction' so if lwz faults
238 * we'll just continue at the next IP. */
239 li r9, KVM_GUEST_MODE_SKIP
240 stb r9, PACA_KVM_IN_GUEST(r13)
241
242 /* 1) enable paging for data */
243 mfmsr r9
244 ori r11, r9, MSR_DR /* Enable paging for data */
245 mtmsr r11
246 /* 2) fetch the instruction */
247 li r0, KVM_INST_FETCH_FAILED /* In case lwz faults */
248 lwz r0, 0(r3)
249 /* 3) disable paging again */
250 mtmsr r9
251
252no_ld_last_inst:
253
254 /* Unset guest mode */
255 li r9, KVM_GUEST_MODE_NONE
256 stb r9, PACA_KVM_IN_GUEST(r13)
257
258 /* Restore bolted entries from the shadow and fix it along the way */ 147 /* Restore bolted entries from the shadow and fix it along the way */
259 148
260 /* We don't store anything in entry 0, so we don't need to take care of it */ 149 /* We don't store anything in entry 0, so we don't need to take care of it */
@@ -275,28 +164,4 @@ no_ld_last_inst:
275 164
276slb_do_exit: 165slb_do_exit:
277 166
278 /* Register usage at this point: 167.endm
279 *
280 * R0 = guest last inst
281 * R1 = host R1
282 * R2 = host R2
283 * R3 = guest PC
284 * R4 = guest MSR
285 * R5 = guest DAR
286 * R6 = guest DSISR
287 * R12 = exit handler id
288 * R13 = PACA
289 * PACA.KVM.* = guest *
290 *
291 */
292
293 /* RFI into the highmem handler */
294 mfmsr r7
295 ori r7, r7, MSR_IR|MSR_DR|MSR_RI /* Enable paging */
296 mtsrr1 r7
297 ld r8, PACA_KVM_VMHANDLER(r13) /* Highmem handler address */
298 mtsrr0 r8
299
300 RFI
301kvmppc_handler_trampoline_exit_end:
302
diff --git a/arch/powerpc/kvm/book3s_64_emulate.c b/arch/powerpc/kvm/book3s_emulate.c
index 2b0ee7e040c9..c85f906038ce 100644
--- a/arch/powerpc/kvm/book3s_64_emulate.c
+++ b/arch/powerpc/kvm/book3s_emulate.c
@@ -28,13 +28,16 @@
28#define OP_31_XOP_MFMSR 83 28#define OP_31_XOP_MFMSR 83
29#define OP_31_XOP_MTMSR 146 29#define OP_31_XOP_MTMSR 146
30#define OP_31_XOP_MTMSRD 178 30#define OP_31_XOP_MTMSRD 178
31#define OP_31_XOP_MTSR 210
31#define OP_31_XOP_MTSRIN 242 32#define OP_31_XOP_MTSRIN 242
32#define OP_31_XOP_TLBIEL 274 33#define OP_31_XOP_TLBIEL 274
33#define OP_31_XOP_TLBIE 306 34#define OP_31_XOP_TLBIE 306
34#define OP_31_XOP_SLBMTE 402 35#define OP_31_XOP_SLBMTE 402
35#define OP_31_XOP_SLBIE 434 36#define OP_31_XOP_SLBIE 434
36#define OP_31_XOP_SLBIA 498 37#define OP_31_XOP_SLBIA 498
38#define OP_31_XOP_MFSR 595
37#define OP_31_XOP_MFSRIN 659 39#define OP_31_XOP_MFSRIN 659
40#define OP_31_XOP_DCBA 758
38#define OP_31_XOP_SLBMFEV 851 41#define OP_31_XOP_SLBMFEV 851
39#define OP_31_XOP_EIOIO 854 42#define OP_31_XOP_EIOIO 854
40#define OP_31_XOP_SLBMFEE 915 43#define OP_31_XOP_SLBMFEE 915
@@ -42,6 +45,24 @@
42/* DCBZ is actually 1014, but we patch it to 1010 so we get a trap */ 45/* DCBZ is actually 1014, but we patch it to 1010 so we get a trap */
43#define OP_31_XOP_DCBZ 1010 46#define OP_31_XOP_DCBZ 1010
44 47
48#define OP_LFS 48
49#define OP_LFD 50
50#define OP_STFS 52
51#define OP_STFD 54
52
53#define SPRN_GQR0 912
54#define SPRN_GQR1 913
55#define SPRN_GQR2 914
56#define SPRN_GQR3 915
57#define SPRN_GQR4 916
58#define SPRN_GQR5 917
59#define SPRN_GQR6 918
60#define SPRN_GQR7 919
61
62/* Book3S_32 defines mfsrin(v) - but that messes up our abstract
63 * function pointers, so let's just disable the define. */
64#undef mfsrin
65
45int kvmppc_core_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu, 66int kvmppc_core_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu,
46 unsigned int inst, int *advance) 67 unsigned int inst, int *advance)
47{ 68{
@@ -52,7 +73,7 @@ int kvmppc_core_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu,
52 switch (get_xop(inst)) { 73 switch (get_xop(inst)) {
53 case OP_19_XOP_RFID: 74 case OP_19_XOP_RFID:
54 case OP_19_XOP_RFI: 75 case OP_19_XOP_RFI:
55 vcpu->arch.pc = vcpu->arch.srr0; 76 kvmppc_set_pc(vcpu, vcpu->arch.srr0);
56 kvmppc_set_msr(vcpu, vcpu->arch.srr1); 77 kvmppc_set_msr(vcpu, vcpu->arch.srr1);
57 *advance = 0; 78 *advance = 0;
58 break; 79 break;
@@ -80,6 +101,18 @@ int kvmppc_core_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu,
80 case OP_31_XOP_MTMSR: 101 case OP_31_XOP_MTMSR:
81 kvmppc_set_msr(vcpu, kvmppc_get_gpr(vcpu, get_rs(inst))); 102 kvmppc_set_msr(vcpu, kvmppc_get_gpr(vcpu, get_rs(inst)));
82 break; 103 break;
104 case OP_31_XOP_MFSR:
105 {
106 int srnum;
107
108 srnum = kvmppc_get_field(inst, 12 + 32, 15 + 32);
109 if (vcpu->arch.mmu.mfsrin) {
110 u32 sr;
111 sr = vcpu->arch.mmu.mfsrin(vcpu, srnum);
112 kvmppc_set_gpr(vcpu, get_rt(inst), sr);
113 }
114 break;
115 }
83 case OP_31_XOP_MFSRIN: 116 case OP_31_XOP_MFSRIN:
84 { 117 {
85 int srnum; 118 int srnum;
@@ -92,6 +125,11 @@ int kvmppc_core_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu,
92 } 125 }
93 break; 126 break;
94 } 127 }
128 case OP_31_XOP_MTSR:
129 vcpu->arch.mmu.mtsrin(vcpu,
130 (inst >> 16) & 0xf,
131 kvmppc_get_gpr(vcpu, get_rs(inst)));
132 break;
95 case OP_31_XOP_MTSRIN: 133 case OP_31_XOP_MTSRIN:
96 vcpu->arch.mmu.mtsrin(vcpu, 134 vcpu->arch.mmu.mtsrin(vcpu,
97 (kvmppc_get_gpr(vcpu, get_rb(inst)) >> 28) & 0xf, 135 (kvmppc_get_gpr(vcpu, get_rb(inst)) >> 28) & 0xf,
@@ -150,12 +188,17 @@ int kvmppc_core_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu,
150 kvmppc_set_gpr(vcpu, get_rt(inst), t); 188 kvmppc_set_gpr(vcpu, get_rt(inst), t);
151 } 189 }
152 break; 190 break;
191 case OP_31_XOP_DCBA:
192 /* Gets treated as NOP */
193 break;
153 case OP_31_XOP_DCBZ: 194 case OP_31_XOP_DCBZ:
154 { 195 {
155 ulong rb = kvmppc_get_gpr(vcpu, get_rb(inst)); 196 ulong rb = kvmppc_get_gpr(vcpu, get_rb(inst));
156 ulong ra = 0; 197 ulong ra = 0;
157 ulong addr; 198 ulong addr, vaddr;
158 u32 zeros[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; 199 u32 zeros[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
200 u32 dsisr;
201 int r;
159 202
160 if (get_ra(inst)) 203 if (get_ra(inst))
161 ra = kvmppc_get_gpr(vcpu, get_ra(inst)); 204 ra = kvmppc_get_gpr(vcpu, get_ra(inst));
@@ -163,15 +206,25 @@ int kvmppc_core_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu,
163 addr = (ra + rb) & ~31ULL; 206 addr = (ra + rb) & ~31ULL;
164 if (!(vcpu->arch.msr & MSR_SF)) 207 if (!(vcpu->arch.msr & MSR_SF))
165 addr &= 0xffffffff; 208 addr &= 0xffffffff;
209 vaddr = addr;
210
211 r = kvmppc_st(vcpu, &addr, 32, zeros, true);
212 if ((r == -ENOENT) || (r == -EPERM)) {
213 *advance = 0;
214 vcpu->arch.dear = vaddr;
215 to_svcpu(vcpu)->fault_dar = vaddr;
216
217 dsisr = DSISR_ISSTORE;
218 if (r == -ENOENT)
219 dsisr |= DSISR_NOHPTE;
220 else if (r == -EPERM)
221 dsisr |= DSISR_PROTFAULT;
222
223 to_book3s(vcpu)->dsisr = dsisr;
224 to_svcpu(vcpu)->fault_dsisr = dsisr;
166 225
167 if (kvmppc_st(vcpu, addr, 32, zeros)) {
168 vcpu->arch.dear = addr;
169 vcpu->arch.fault_dear = addr;
170 to_book3s(vcpu)->dsisr = DSISR_PROTFAULT |
171 DSISR_ISSTORE;
172 kvmppc_book3s_queue_irqprio(vcpu, 226 kvmppc_book3s_queue_irqprio(vcpu,
173 BOOK3S_INTERRUPT_DATA_STORAGE); 227 BOOK3S_INTERRUPT_DATA_STORAGE);
174 kvmppc_mmu_pte_flush(vcpu, addr, ~0xFFFULL);
175 } 228 }
176 229
177 break; 230 break;
@@ -184,6 +237,9 @@ int kvmppc_core_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu,
184 emulated = EMULATE_FAIL; 237 emulated = EMULATE_FAIL;
185 } 238 }
186 239
240 if (emulated == EMULATE_FAIL)
241 emulated = kvmppc_emulate_paired_single(run, vcpu);
242
187 return emulated; 243 return emulated;
188} 244}
189 245
@@ -207,6 +263,34 @@ void kvmppc_set_bat(struct kvm_vcpu *vcpu, struct kvmppc_bat *bat, bool upper,
207 } 263 }
208} 264}
209 265
266static u32 kvmppc_read_bat(struct kvm_vcpu *vcpu, int sprn)
267{
268 struct kvmppc_vcpu_book3s *vcpu_book3s = to_book3s(vcpu);
269 struct kvmppc_bat *bat;
270
271 switch (sprn) {
272 case SPRN_IBAT0U ... SPRN_IBAT3L:
273 bat = &vcpu_book3s->ibat[(sprn - SPRN_IBAT0U) / 2];
274 break;
275 case SPRN_IBAT4U ... SPRN_IBAT7L:
276 bat = &vcpu_book3s->ibat[4 + ((sprn - SPRN_IBAT4U) / 2)];
277 break;
278 case SPRN_DBAT0U ... SPRN_DBAT3L:
279 bat = &vcpu_book3s->dbat[(sprn - SPRN_DBAT0U) / 2];
280 break;
281 case SPRN_DBAT4U ... SPRN_DBAT7L:
282 bat = &vcpu_book3s->dbat[4 + ((sprn - SPRN_DBAT4U) / 2)];
283 break;
284 default:
285 BUG();
286 }
287
288 if (sprn % 2)
289 return bat->raw >> 32;
290 else
291 return bat->raw;
292}
293
210static void kvmppc_write_bat(struct kvm_vcpu *vcpu, int sprn, u32 val) 294static void kvmppc_write_bat(struct kvm_vcpu *vcpu, int sprn, u32 val)
211{ 295{
212 struct kvmppc_vcpu_book3s *vcpu_book3s = to_book3s(vcpu); 296 struct kvmppc_vcpu_book3s *vcpu_book3s = to_book3s(vcpu);
@@ -217,13 +301,13 @@ static void kvmppc_write_bat(struct kvm_vcpu *vcpu, int sprn, u32 val)
217 bat = &vcpu_book3s->ibat[(sprn - SPRN_IBAT0U) / 2]; 301 bat = &vcpu_book3s->ibat[(sprn - SPRN_IBAT0U) / 2];
218 break; 302 break;
219 case SPRN_IBAT4U ... SPRN_IBAT7L: 303 case SPRN_IBAT4U ... SPRN_IBAT7L:
220 bat = &vcpu_book3s->ibat[(sprn - SPRN_IBAT4U) / 2]; 304 bat = &vcpu_book3s->ibat[4 + ((sprn - SPRN_IBAT4U) / 2)];
221 break; 305 break;
222 case SPRN_DBAT0U ... SPRN_DBAT3L: 306 case SPRN_DBAT0U ... SPRN_DBAT3L:
223 bat = &vcpu_book3s->dbat[(sprn - SPRN_DBAT0U) / 2]; 307 bat = &vcpu_book3s->dbat[(sprn - SPRN_DBAT0U) / 2];
224 break; 308 break;
225 case SPRN_DBAT4U ... SPRN_DBAT7L: 309 case SPRN_DBAT4U ... SPRN_DBAT7L:
226 bat = &vcpu_book3s->dbat[(sprn - SPRN_DBAT4U) / 2]; 310 bat = &vcpu_book3s->dbat[4 + ((sprn - SPRN_DBAT4U) / 2)];
227 break; 311 break;
228 default: 312 default:
229 BUG(); 313 BUG();
@@ -258,6 +342,7 @@ int kvmppc_core_emulate_mtspr(struct kvm_vcpu *vcpu, int sprn, int rs)
258 /* BAT writes happen so rarely that we're ok to flush 342 /* BAT writes happen so rarely that we're ok to flush
259 * everything here */ 343 * everything here */
260 kvmppc_mmu_pte_flush(vcpu, 0, 0); 344 kvmppc_mmu_pte_flush(vcpu, 0, 0);
345 kvmppc_mmu_flush_segments(vcpu);
261 break; 346 break;
262 case SPRN_HID0: 347 case SPRN_HID0:
263 to_book3s(vcpu)->hid[0] = spr_val; 348 to_book3s(vcpu)->hid[0] = spr_val;
@@ -268,7 +353,32 @@ int kvmppc_core_emulate_mtspr(struct kvm_vcpu *vcpu, int sprn, int rs)
268 case SPRN_HID2: 353 case SPRN_HID2:
269 to_book3s(vcpu)->hid[2] = spr_val; 354 to_book3s(vcpu)->hid[2] = spr_val;
270 break; 355 break;
356 case SPRN_HID2_GEKKO:
357 to_book3s(vcpu)->hid[2] = spr_val;
358 /* HID2.PSE controls paired single on gekko */
359 switch (vcpu->arch.pvr) {
360 case 0x00080200: /* lonestar 2.0 */
361 case 0x00088202: /* lonestar 2.2 */
362 case 0x70000100: /* gekko 1.0 */
363 case 0x00080100: /* gekko 2.0 */
364 case 0x00083203: /* gekko 2.3a */
365 case 0x00083213: /* gekko 2.3b */
366 case 0x00083204: /* gekko 2.4 */
367 case 0x00083214: /* gekko 2.4e (8SE) - retail HW2 */
368 case 0x00087200: /* broadway */
369 if (vcpu->arch.hflags & BOOK3S_HFLAG_NATIVE_PS) {
370 /* Native paired singles */
371 } else if (spr_val & (1 << 29)) { /* HID2.PSE */
372 vcpu->arch.hflags |= BOOK3S_HFLAG_PAIRED_SINGLE;
373 kvmppc_giveup_ext(vcpu, MSR_FP);
374 } else {
375 vcpu->arch.hflags &= ~BOOK3S_HFLAG_PAIRED_SINGLE;
376 }
377 break;
378 }
379 break;
271 case SPRN_HID4: 380 case SPRN_HID4:
381 case SPRN_HID4_GEKKO:
272 to_book3s(vcpu)->hid[4] = spr_val; 382 to_book3s(vcpu)->hid[4] = spr_val;
273 break; 383 break;
274 case SPRN_HID5: 384 case SPRN_HID5:
@@ -278,12 +388,30 @@ int kvmppc_core_emulate_mtspr(struct kvm_vcpu *vcpu, int sprn, int rs)
278 (mfmsr() & MSR_HV)) 388 (mfmsr() & MSR_HV))
279 vcpu->arch.hflags |= BOOK3S_HFLAG_DCBZ32; 389 vcpu->arch.hflags |= BOOK3S_HFLAG_DCBZ32;
280 break; 390 break;
391 case SPRN_GQR0:
392 case SPRN_GQR1:
393 case SPRN_GQR2:
394 case SPRN_GQR3:
395 case SPRN_GQR4:
396 case SPRN_GQR5:
397 case SPRN_GQR6:
398 case SPRN_GQR7:
399 to_book3s(vcpu)->gqr[sprn - SPRN_GQR0] = spr_val;
400 break;
281 case SPRN_ICTC: 401 case SPRN_ICTC:
282 case SPRN_THRM1: 402 case SPRN_THRM1:
283 case SPRN_THRM2: 403 case SPRN_THRM2:
284 case SPRN_THRM3: 404 case SPRN_THRM3:
285 case SPRN_CTRLF: 405 case SPRN_CTRLF:
286 case SPRN_CTRLT: 406 case SPRN_CTRLT:
407 case SPRN_L2CR:
408 case SPRN_MMCR0_GEKKO:
409 case SPRN_MMCR1_GEKKO:
410 case SPRN_PMC1_GEKKO:
411 case SPRN_PMC2_GEKKO:
412 case SPRN_PMC3_GEKKO:
413 case SPRN_PMC4_GEKKO:
414 case SPRN_WPAR_GEKKO:
287 break; 415 break;
288 default: 416 default:
289 printk(KERN_INFO "KVM: invalid SPR write: %d\n", sprn); 417 printk(KERN_INFO "KVM: invalid SPR write: %d\n", sprn);
@@ -301,6 +429,12 @@ int kvmppc_core_emulate_mfspr(struct kvm_vcpu *vcpu, int sprn, int rt)
301 int emulated = EMULATE_DONE; 429 int emulated = EMULATE_DONE;
302 430
303 switch (sprn) { 431 switch (sprn) {
432 case SPRN_IBAT0U ... SPRN_IBAT3L:
433 case SPRN_IBAT4U ... SPRN_IBAT7L:
434 case SPRN_DBAT0U ... SPRN_DBAT3L:
435 case SPRN_DBAT4U ... SPRN_DBAT7L:
436 kvmppc_set_gpr(vcpu, rt, kvmppc_read_bat(vcpu, sprn));
437 break;
304 case SPRN_SDR1: 438 case SPRN_SDR1:
305 kvmppc_set_gpr(vcpu, rt, to_book3s(vcpu)->sdr1); 439 kvmppc_set_gpr(vcpu, rt, to_book3s(vcpu)->sdr1);
306 break; 440 break;
@@ -320,19 +454,40 @@ int kvmppc_core_emulate_mfspr(struct kvm_vcpu *vcpu, int sprn, int rt)
320 kvmppc_set_gpr(vcpu, rt, to_book3s(vcpu)->hid[1]); 454 kvmppc_set_gpr(vcpu, rt, to_book3s(vcpu)->hid[1]);
321 break; 455 break;
322 case SPRN_HID2: 456 case SPRN_HID2:
457 case SPRN_HID2_GEKKO:
323 kvmppc_set_gpr(vcpu, rt, to_book3s(vcpu)->hid[2]); 458 kvmppc_set_gpr(vcpu, rt, to_book3s(vcpu)->hid[2]);
324 break; 459 break;
325 case SPRN_HID4: 460 case SPRN_HID4:
461 case SPRN_HID4_GEKKO:
326 kvmppc_set_gpr(vcpu, rt, to_book3s(vcpu)->hid[4]); 462 kvmppc_set_gpr(vcpu, rt, to_book3s(vcpu)->hid[4]);
327 break; 463 break;
328 case SPRN_HID5: 464 case SPRN_HID5:
329 kvmppc_set_gpr(vcpu, rt, to_book3s(vcpu)->hid[5]); 465 kvmppc_set_gpr(vcpu, rt, to_book3s(vcpu)->hid[5]);
330 break; 466 break;
467 case SPRN_GQR0:
468 case SPRN_GQR1:
469 case SPRN_GQR2:
470 case SPRN_GQR3:
471 case SPRN_GQR4:
472 case SPRN_GQR5:
473 case SPRN_GQR6:
474 case SPRN_GQR7:
475 kvmppc_set_gpr(vcpu, rt,
476 to_book3s(vcpu)->gqr[sprn - SPRN_GQR0]);
477 break;
331 case SPRN_THRM1: 478 case SPRN_THRM1:
332 case SPRN_THRM2: 479 case SPRN_THRM2:
333 case SPRN_THRM3: 480 case SPRN_THRM3:
334 case SPRN_CTRLF: 481 case SPRN_CTRLF:
335 case SPRN_CTRLT: 482 case SPRN_CTRLT:
483 case SPRN_L2CR:
484 case SPRN_MMCR0_GEKKO:
485 case SPRN_MMCR1_GEKKO:
486 case SPRN_PMC1_GEKKO:
487 case SPRN_PMC2_GEKKO:
488 case SPRN_PMC3_GEKKO:
489 case SPRN_PMC4_GEKKO:
490 case SPRN_WPAR_GEKKO:
336 kvmppc_set_gpr(vcpu, rt, 0); 491 kvmppc_set_gpr(vcpu, rt, 0);
337 break; 492 break;
338 default: 493 default:
@@ -346,3 +501,73 @@ int kvmppc_core_emulate_mfspr(struct kvm_vcpu *vcpu, int sprn, int rt)
346 return emulated; 501 return emulated;
347} 502}
348 503
504u32 kvmppc_alignment_dsisr(struct kvm_vcpu *vcpu, unsigned int inst)
505{
506 u32 dsisr = 0;
507
508 /*
509 * This is what the spec says about DSISR bits (not mentioned = 0):
510 *
511 * 12:13 [DS] Set to bits 30:31
512 * 15:16 [X] Set to bits 29:30
513 * 17 [X] Set to bit 25
514 * [D/DS] Set to bit 5
515 * 18:21 [X] Set to bits 21:24
516 * [D/DS] Set to bits 1:4
517 * 22:26 Set to bits 6:10 (RT/RS/FRT/FRS)
518 * 27:31 Set to bits 11:15 (RA)
519 */
520
521 switch (get_op(inst)) {
522 /* D-form */
523 case OP_LFS:
524 case OP_LFD:
525 case OP_STFD:
526 case OP_STFS:
527 dsisr |= (inst >> 12) & 0x4000; /* bit 17 */
528 dsisr |= (inst >> 17) & 0x3c00; /* bits 18:21 */
529 break;
530 /* X-form */
531 case 31:
532 dsisr |= (inst << 14) & 0x18000; /* bits 15:16 */
533 dsisr |= (inst << 8) & 0x04000; /* bit 17 */
534 dsisr |= (inst << 3) & 0x03c00; /* bits 18:21 */
535 break;
536 default:
537 printk(KERN_INFO "KVM: Unaligned instruction 0x%x\n", inst);
538 break;
539 }
540
541 dsisr |= (inst >> 16) & 0x03ff; /* bits 22:31 */
542
543 return dsisr;
544}
545
546ulong kvmppc_alignment_dar(struct kvm_vcpu *vcpu, unsigned int inst)
547{
548 ulong dar = 0;
549 ulong ra;
550
551 switch (get_op(inst)) {
552 case OP_LFS:
553 case OP_LFD:
554 case OP_STFD:
555 case OP_STFS:
556 ra = get_ra(inst);
557 if (ra)
558 dar = kvmppc_get_gpr(vcpu, ra);
559 dar += (s32)((s16)inst);
560 break;
561 case 31:
562 ra = get_ra(inst);
563 if (ra)
564 dar = kvmppc_get_gpr(vcpu, ra);
565 dar += kvmppc_get_gpr(vcpu, get_rb(inst));
566 break;
567 default:
568 printk(KERN_INFO "KVM: Unaligned instruction 0x%x\n", inst);
569 break;
570 }
571
572 return dar;
573}
diff --git a/arch/powerpc/kvm/book3s_64_exports.c b/arch/powerpc/kvm/book3s_exports.c
index 1dd5a1ddfd0d..1dd5a1ddfd0d 100644
--- a/arch/powerpc/kvm/book3s_64_exports.c
+++ b/arch/powerpc/kvm/book3s_exports.c
diff --git a/arch/powerpc/kvm/book3s_64_interrupts.S b/arch/powerpc/kvm/book3s_interrupts.S
index c1584d0cbce8..2f0bc928b08a 100644
--- a/arch/powerpc/kvm/book3s_64_interrupts.S
+++ b/arch/powerpc/kvm/book3s_interrupts.S
@@ -24,36 +24,56 @@
24#include <asm/asm-offsets.h> 24#include <asm/asm-offsets.h>
25#include <asm/exception-64s.h> 25#include <asm/exception-64s.h>
26 26
27#define KVMPPC_HANDLE_EXIT .kvmppc_handle_exit 27#if defined(CONFIG_PPC_BOOK3S_64)
28#define ULONG_SIZE 8
29#define VCPU_GPR(n) (VCPU_GPRS + (n * ULONG_SIZE))
30 28
31.macro DISABLE_INTERRUPTS 29#define ULONG_SIZE 8
32 mfmsr r0 30#define FUNC(name) GLUE(.,name)
33 rldicl r0,r0,48,1
34 rotldi r0,r0,16
35 mtmsrd r0,1
36.endm
37 31
32#define GET_SHADOW_VCPU(reg) \
33 addi reg, r13, PACA_KVM_SVCPU
34
35#define DISABLE_INTERRUPTS \
36 mfmsr r0; \
37 rldicl r0,r0,48,1; \
38 rotldi r0,r0,16; \
39 mtmsrd r0,1; \
40
41#elif defined(CONFIG_PPC_BOOK3S_32)
42
43#define ULONG_SIZE 4
44#define FUNC(name) name
45
46#define GET_SHADOW_VCPU(reg) \
47 lwz reg, (THREAD + THREAD_KVM_SVCPU)(r2)
48
49#define DISABLE_INTERRUPTS \
50 mfmsr r0; \
51 rlwinm r0,r0,0,17,15; \
52 mtmsr r0; \
53
54#endif /* CONFIG_PPC_BOOK3S_XX */
55
56
57#define VCPU_GPR(n) (VCPU_GPRS + (n * ULONG_SIZE))
38#define VCPU_LOAD_NVGPRS(vcpu) \ 58#define VCPU_LOAD_NVGPRS(vcpu) \
39 ld r14, VCPU_GPR(r14)(vcpu); \ 59 PPC_LL r14, VCPU_GPR(r14)(vcpu); \
40 ld r15, VCPU_GPR(r15)(vcpu); \ 60 PPC_LL r15, VCPU_GPR(r15)(vcpu); \
41 ld r16, VCPU_GPR(r16)(vcpu); \ 61 PPC_LL r16, VCPU_GPR(r16)(vcpu); \
42 ld r17, VCPU_GPR(r17)(vcpu); \ 62 PPC_LL r17, VCPU_GPR(r17)(vcpu); \
43 ld r18, VCPU_GPR(r18)(vcpu); \ 63 PPC_LL r18, VCPU_GPR(r18)(vcpu); \
44 ld r19, VCPU_GPR(r19)(vcpu); \ 64 PPC_LL r19, VCPU_GPR(r19)(vcpu); \
45 ld r20, VCPU_GPR(r20)(vcpu); \ 65 PPC_LL r20, VCPU_GPR(r20)(vcpu); \
46 ld r21, VCPU_GPR(r21)(vcpu); \ 66 PPC_LL r21, VCPU_GPR(r21)(vcpu); \
47 ld r22, VCPU_GPR(r22)(vcpu); \ 67 PPC_LL r22, VCPU_GPR(r22)(vcpu); \
48 ld r23, VCPU_GPR(r23)(vcpu); \ 68 PPC_LL r23, VCPU_GPR(r23)(vcpu); \
49 ld r24, VCPU_GPR(r24)(vcpu); \ 69 PPC_LL r24, VCPU_GPR(r24)(vcpu); \
50 ld r25, VCPU_GPR(r25)(vcpu); \ 70 PPC_LL r25, VCPU_GPR(r25)(vcpu); \
51 ld r26, VCPU_GPR(r26)(vcpu); \ 71 PPC_LL r26, VCPU_GPR(r26)(vcpu); \
52 ld r27, VCPU_GPR(r27)(vcpu); \ 72 PPC_LL r27, VCPU_GPR(r27)(vcpu); \
53 ld r28, VCPU_GPR(r28)(vcpu); \ 73 PPC_LL r28, VCPU_GPR(r28)(vcpu); \
54 ld r29, VCPU_GPR(r29)(vcpu); \ 74 PPC_LL r29, VCPU_GPR(r29)(vcpu); \
55 ld r30, VCPU_GPR(r30)(vcpu); \ 75 PPC_LL r30, VCPU_GPR(r30)(vcpu); \
56 ld r31, VCPU_GPR(r31)(vcpu); \ 76 PPC_LL r31, VCPU_GPR(r31)(vcpu); \
57 77
58/***************************************************************************** 78/*****************************************************************************
59 * * 79 * *
@@ -69,11 +89,11 @@ _GLOBAL(__kvmppc_vcpu_entry)
69 89
70kvm_start_entry: 90kvm_start_entry:
71 /* Write correct stack frame */ 91 /* Write correct stack frame */
72 mflr r0 92 mflr r0
73 std r0,16(r1) 93 PPC_STL r0,PPC_LR_STKOFF(r1)
74 94
75 /* Save host state to the stack */ 95 /* Save host state to the stack */
76 stdu r1, -SWITCH_FRAME_SIZE(r1) 96 PPC_STLU r1, -SWITCH_FRAME_SIZE(r1)
77 97
78 /* Save r3 (kvm_run) and r4 (vcpu) */ 98 /* Save r3 (kvm_run) and r4 (vcpu) */
79 SAVE_2GPRS(3, r1) 99 SAVE_2GPRS(3, r1)
@@ -82,33 +102,28 @@ kvm_start_entry:
82 SAVE_NVGPRS(r1) 102 SAVE_NVGPRS(r1)
83 103
84 /* Save LR */ 104 /* Save LR */
85 std r0, _LINK(r1) 105 PPC_STL r0, _LINK(r1)
86 106
87 /* Load non-volatile guest state from the vcpu */ 107 /* Load non-volatile guest state from the vcpu */
88 VCPU_LOAD_NVGPRS(r4) 108 VCPU_LOAD_NVGPRS(r4)
89 109
110 GET_SHADOW_VCPU(r5)
111
90 /* Save R1/R2 in the PACA */ 112 /* Save R1/R2 in the PACA */
91 std r1, PACA_KVM_HOST_R1(r13) 113 PPC_STL r1, SVCPU_HOST_R1(r5)
92 std r2, PACA_KVM_HOST_R2(r13) 114 PPC_STL r2, SVCPU_HOST_R2(r5)
93 115
94 /* XXX swap in/out on load? */ 116 /* XXX swap in/out on load? */
95 ld r3, VCPU_HIGHMEM_HANDLER(r4) 117 PPC_LL r3, VCPU_HIGHMEM_HANDLER(r4)
96 std r3, PACA_KVM_VMHANDLER(r13) 118 PPC_STL r3, SVCPU_VMHANDLER(r5)
97 119
98kvm_start_lightweight: 120kvm_start_lightweight:
99 121
100 ld r9, VCPU_PC(r4) /* r9 = vcpu->arch.pc */ 122 PPC_LL r10, VCPU_SHADOW_MSR(r4) /* r10 = vcpu->arch.shadow_msr */
101 ld r10, VCPU_SHADOW_MSR(r4) /* r10 = vcpu->arch.shadow_msr */
102
103 /* Load some guest state in the respective registers */
104 ld r5, VCPU_CTR(r4) /* r5 = vcpu->arch.ctr */
105 /* will be swapped in by rmcall */
106
107 ld r3, VCPU_LR(r4) /* r3 = vcpu->arch.lr */
108 mtlr r3 /* LR = r3 */
109 123
110 DISABLE_INTERRUPTS 124 DISABLE_INTERRUPTS
111 125
126#ifdef CONFIG_PPC_BOOK3S_64
112 /* Some guests may need to have dcbz set to 32 byte length. 127 /* Some guests may need to have dcbz set to 32 byte length.
113 * 128 *
114 * Usually we ensure that by patching the guest's instructions 129 * Usually we ensure that by patching the guest's instructions
@@ -118,7 +133,7 @@ kvm_start_lightweight:
118 * because that's a lot faster. 133 * because that's a lot faster.
119 */ 134 */
120 135
121 ld r3, VCPU_HFLAGS(r4) 136 PPC_LL r3, VCPU_HFLAGS(r4)
122 rldicl. r3, r3, 0, 63 /* CR = ((r3 & 1) == 0) */ 137 rldicl. r3, r3, 0, 63 /* CR = ((r3 & 1) == 0) */
123 beq no_dcbz32_on 138 beq no_dcbz32_on
124 139
@@ -128,13 +143,15 @@ kvm_start_lightweight:
128 143
129no_dcbz32_on: 144no_dcbz32_on:
130 145
131 ld r6, VCPU_RMCALL(r4) 146#endif /* CONFIG_PPC_BOOK3S_64 */
147
148 PPC_LL r6, VCPU_RMCALL(r4)
132 mtctr r6 149 mtctr r6
133 150
134 ld r3, VCPU_TRAMPOLINE_ENTER(r4) 151 PPC_LL r3, VCPU_TRAMPOLINE_ENTER(r4)
135 LOAD_REG_IMMEDIATE(r4, MSR_KERNEL & ~(MSR_IR | MSR_DR)) 152 LOAD_REG_IMMEDIATE(r4, MSR_KERNEL & ~(MSR_IR | MSR_DR))
136 153
137 /* Jump to SLB patching handlder and into our guest */ 154 /* Jump to segment patching handler and into our guest */
138 bctr 155 bctr
139 156
140/* 157/*
@@ -149,31 +166,20 @@ kvmppc_handler_highmem:
149 /* 166 /*
150 * Register usage at this point: 167 * Register usage at this point:
151 * 168 *
152 * R0 = guest last inst 169 * R1 = host R1
153 * R1 = host R1 170 * R2 = host R2
154 * R2 = host R2 171 * R12 = exit handler id
155 * R3 = guest PC 172 * R13 = PACA
156 * R4 = guest MSR 173 * SVCPU.* = guest *
157 * R5 = guest DAR
158 * R6 = guest DSISR
159 * R13 = PACA
160 * PACA.KVM.* = guest *
161 * 174 *
162 */ 175 */
163 176
164 /* R7 = vcpu */ 177 /* R7 = vcpu */
165 ld r7, GPR4(r1) 178 PPC_LL r7, GPR4(r1)
166 179
167 /* Now save the guest state */ 180#ifdef CONFIG_PPC_BOOK3S_64
168 181
169 stw r0, VCPU_LAST_INST(r7) 182 PPC_LL r5, VCPU_HFLAGS(r7)
170
171 std r3, VCPU_PC(r7)
172 std r4, VCPU_SHADOW_SRR1(r7)
173 std r5, VCPU_FAULT_DEAR(r7)
174 std r6, VCPU_FAULT_DSISR(r7)
175
176 ld r5, VCPU_HFLAGS(r7)
177 rldicl. r5, r5, 0, 63 /* CR = ((r5 & 1) == 0) */ 183 rldicl. r5, r5, 0, 63 /* CR = ((r5 & 1) == 0) */
178 beq no_dcbz32_off 184 beq no_dcbz32_off
179 185
@@ -184,35 +190,29 @@ kvmppc_handler_highmem:
184 190
185no_dcbz32_off: 191no_dcbz32_off:
186 192
187 std r14, VCPU_GPR(r14)(r7) 193#endif /* CONFIG_PPC_BOOK3S_64 */
188 std r15, VCPU_GPR(r15)(r7) 194
189 std r16, VCPU_GPR(r16)(r7) 195 PPC_STL r14, VCPU_GPR(r14)(r7)
190 std r17, VCPU_GPR(r17)(r7) 196 PPC_STL r15, VCPU_GPR(r15)(r7)
191 std r18, VCPU_GPR(r18)(r7) 197 PPC_STL r16, VCPU_GPR(r16)(r7)
192 std r19, VCPU_GPR(r19)(r7) 198 PPC_STL r17, VCPU_GPR(r17)(r7)
193 std r20, VCPU_GPR(r20)(r7) 199 PPC_STL r18, VCPU_GPR(r18)(r7)
194 std r21, VCPU_GPR(r21)(r7) 200 PPC_STL r19, VCPU_GPR(r19)(r7)
195 std r22, VCPU_GPR(r22)(r7) 201 PPC_STL r20, VCPU_GPR(r20)(r7)
196 std r23, VCPU_GPR(r23)(r7) 202 PPC_STL r21, VCPU_GPR(r21)(r7)
197 std r24, VCPU_GPR(r24)(r7) 203 PPC_STL r22, VCPU_GPR(r22)(r7)
198 std r25, VCPU_GPR(r25)(r7) 204 PPC_STL r23, VCPU_GPR(r23)(r7)
199 std r26, VCPU_GPR(r26)(r7) 205 PPC_STL r24, VCPU_GPR(r24)(r7)
200 std r27, VCPU_GPR(r27)(r7) 206 PPC_STL r25, VCPU_GPR(r25)(r7)
201 std r28, VCPU_GPR(r28)(r7) 207 PPC_STL r26, VCPU_GPR(r26)(r7)
202 std r29, VCPU_GPR(r29)(r7) 208 PPC_STL r27, VCPU_GPR(r27)(r7)
203 std r30, VCPU_GPR(r30)(r7) 209 PPC_STL r28, VCPU_GPR(r28)(r7)
204 std r31, VCPU_GPR(r31)(r7) 210 PPC_STL r29, VCPU_GPR(r29)(r7)
205 211 PPC_STL r30, VCPU_GPR(r30)(r7)
206 /* Save guest CTR */ 212 PPC_STL r31, VCPU_GPR(r31)(r7)
207 mfctr r5
208 std r5, VCPU_CTR(r7)
209
210 /* Save guest LR */
211 mflr r5
212 std r5, VCPU_LR(r7)
213 213
214 /* Restore host msr -> SRR1 */ 214 /* Restore host msr -> SRR1 */
215 ld r6, VCPU_HOST_MSR(r7) 215 PPC_LL r6, VCPU_HOST_MSR(r7)
216 216
217 /* 217 /*
218 * For some interrupts, we need to call the real Linux 218 * For some interrupts, we need to call the real Linux
@@ -228,9 +228,12 @@ no_dcbz32_off:
228 beq call_linux_handler 228 beq call_linux_handler
229 cmpwi r12, BOOK3S_INTERRUPT_DECREMENTER 229 cmpwi r12, BOOK3S_INTERRUPT_DECREMENTER
230 beq call_linux_handler 230 beq call_linux_handler
231 cmpwi r12, BOOK3S_INTERRUPT_PERFMON
232 beq call_linux_handler
231 233
232 /* Back to EE=1 */ 234 /* Back to EE=1 */
233 mtmsr r6 235 mtmsr r6
236 sync
234 b kvm_return_point 237 b kvm_return_point
235 238
236call_linux_handler: 239call_linux_handler:
@@ -249,14 +252,14 @@ call_linux_handler:
249 */ 252 */
250 253
251 /* Restore host IP -> SRR0 */ 254 /* Restore host IP -> SRR0 */
252 ld r5, VCPU_HOST_RETIP(r7) 255 PPC_LL r5, VCPU_HOST_RETIP(r7)
253 256
254 /* XXX Better move to a safe function? 257 /* XXX Better move to a safe function?
255 * What if we get an HTAB flush in between mtsrr0 and mtsrr1? */ 258 * What if we get an HTAB flush in between mtsrr0 and mtsrr1? */
256 259
257 mtlr r12 260 mtlr r12
258 261
259 ld r4, VCPU_TRAMPOLINE_LOWMEM(r7) 262 PPC_LL r4, VCPU_TRAMPOLINE_LOWMEM(r7)
260 mtsrr0 r4 263 mtsrr0 r4
261 LOAD_REG_IMMEDIATE(r3, MSR_KERNEL & ~(MSR_IR | MSR_DR)) 264 LOAD_REG_IMMEDIATE(r3, MSR_KERNEL & ~(MSR_IR | MSR_DR))
262 mtsrr1 r3 265 mtsrr1 r3
@@ -274,7 +277,7 @@ kvm_return_point:
274 277
275 /* Restore r3 (kvm_run) and r4 (vcpu) */ 278 /* Restore r3 (kvm_run) and r4 (vcpu) */
276 REST_2GPRS(3, r1) 279 REST_2GPRS(3, r1)
277 bl KVMPPC_HANDLE_EXIT 280 bl FUNC(kvmppc_handle_exit)
278 281
279 /* If RESUME_GUEST, get back in the loop */ 282 /* If RESUME_GUEST, get back in the loop */
280 cmpwi r3, RESUME_GUEST 283 cmpwi r3, RESUME_GUEST
@@ -285,7 +288,7 @@ kvm_return_point:
285 288
286kvm_exit_loop: 289kvm_exit_loop:
287 290
288 ld r4, _LINK(r1) 291 PPC_LL r4, _LINK(r1)
289 mtlr r4 292 mtlr r4
290 293
291 /* Restore non-volatile host registers (r14 - r31) */ 294 /* Restore non-volatile host registers (r14 - r31) */
@@ -296,8 +299,8 @@ kvm_exit_loop:
296 299
297kvm_loop_heavyweight: 300kvm_loop_heavyweight:
298 301
299 ld r4, _LINK(r1) 302 PPC_LL r4, _LINK(r1)
300 std r4, (16 + SWITCH_FRAME_SIZE)(r1) 303 PPC_STL r4, (PPC_LR_STKOFF + SWITCH_FRAME_SIZE)(r1)
301 304
302 /* Load vcpu and cpu_run */ 305 /* Load vcpu and cpu_run */
303 REST_2GPRS(3, r1) 306 REST_2GPRS(3, r1)
@@ -315,4 +318,3 @@ kvm_loop_lightweight:
315 318
316 /* Jump back into the beginning of this function */ 319 /* Jump back into the beginning of this function */
317 b kvm_start_lightweight 320 b kvm_start_lightweight
318
diff --git a/arch/powerpc/kvm/book3s_mmu_hpte.c b/arch/powerpc/kvm/book3s_mmu_hpte.c
new file mode 100644
index 000000000000..4868d4a7ebc5
--- /dev/null
+++ b/arch/powerpc/kvm/book3s_mmu_hpte.c
@@ -0,0 +1,277 @@
1/*
2 * Copyright (C) 2010 SUSE Linux Products GmbH. All rights reserved.
3 *
4 * Authors:
5 * Alexander Graf <agraf@suse.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, version 2, as
9 * published by the Free Software Foundation.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 */
20
21#include <linux/kvm_host.h>
22#include <linux/hash.h>
23#include <linux/slab.h>
24
25#include <asm/kvm_ppc.h>
26#include <asm/kvm_book3s.h>
27#include <asm/machdep.h>
28#include <asm/mmu_context.h>
29#include <asm/hw_irq.h>
30
31#define PTE_SIZE 12
32
33/* #define DEBUG_MMU */
34
35#ifdef DEBUG_MMU
36#define dprintk_mmu(a, ...) printk(KERN_INFO a, __VA_ARGS__)
37#else
38#define dprintk_mmu(a, ...) do { } while(0)
39#endif
40
41static struct kmem_cache *hpte_cache;
42
43static inline u64 kvmppc_mmu_hash_pte(u64 eaddr)
44{
45 return hash_64(eaddr >> PTE_SIZE, HPTEG_HASH_BITS_PTE);
46}
47
48static inline u64 kvmppc_mmu_hash_vpte(u64 vpage)
49{
50 return hash_64(vpage & 0xfffffffffULL, HPTEG_HASH_BITS_VPTE);
51}
52
53static inline u64 kvmppc_mmu_hash_vpte_long(u64 vpage)
54{
55 return hash_64((vpage & 0xffffff000ULL) >> 12,
56 HPTEG_HASH_BITS_VPTE_LONG);
57}
58
59void kvmppc_mmu_hpte_cache_map(struct kvm_vcpu *vcpu, struct hpte_cache *pte)
60{
61 u64 index;
62
63 /* Add to ePTE list */
64 index = kvmppc_mmu_hash_pte(pte->pte.eaddr);
65 hlist_add_head(&pte->list_pte, &vcpu->arch.hpte_hash_pte[index]);
66
67 /* Add to vPTE list */
68 index = kvmppc_mmu_hash_vpte(pte->pte.vpage);
69 hlist_add_head(&pte->list_vpte, &vcpu->arch.hpte_hash_vpte[index]);
70
71 /* Add to vPTE_long list */
72 index = kvmppc_mmu_hash_vpte_long(pte->pte.vpage);
73 hlist_add_head(&pte->list_vpte_long,
74 &vcpu->arch.hpte_hash_vpte_long[index]);
75}
76
77static void invalidate_pte(struct kvm_vcpu *vcpu, struct hpte_cache *pte)
78{
79 dprintk_mmu("KVM: Flushing SPT: 0x%lx (0x%llx) -> 0x%llx\n",
80 pte->pte.eaddr, pte->pte.vpage, pte->host_va);
81
82 /* Different for 32 and 64 bit */
83 kvmppc_mmu_invalidate_pte(vcpu, pte);
84
85 if (pte->pte.may_write)
86 kvm_release_pfn_dirty(pte->pfn);
87 else
88 kvm_release_pfn_clean(pte->pfn);
89
90 hlist_del(&pte->list_pte);
91 hlist_del(&pte->list_vpte);
92 hlist_del(&pte->list_vpte_long);
93
94 vcpu->arch.hpte_cache_count--;
95 kmem_cache_free(hpte_cache, pte);
96}
97
98static void kvmppc_mmu_pte_flush_all(struct kvm_vcpu *vcpu)
99{
100 struct hpte_cache *pte;
101 struct hlist_node *node, *tmp;
102 int i;
103
104 for (i = 0; i < HPTEG_HASH_NUM_VPTE_LONG; i++) {
105 struct hlist_head *list = &vcpu->arch.hpte_hash_vpte_long[i];
106
107 hlist_for_each_entry_safe(pte, node, tmp, list, list_vpte_long)
108 invalidate_pte(vcpu, pte);
109 }
110}
111
112static void kvmppc_mmu_pte_flush_page(struct kvm_vcpu *vcpu, ulong guest_ea)
113{
114 struct hlist_head *list;
115 struct hlist_node *node, *tmp;
116 struct hpte_cache *pte;
117
118 /* Find the list of entries in the map */
119 list = &vcpu->arch.hpte_hash_pte[kvmppc_mmu_hash_pte(guest_ea)];
120
121 /* Check the list for matching entries and invalidate */
122 hlist_for_each_entry_safe(pte, node, tmp, list, list_pte)
123 if ((pte->pte.eaddr & ~0xfffUL) == guest_ea)
124 invalidate_pte(vcpu, pte);
125}
126
127void kvmppc_mmu_pte_flush(struct kvm_vcpu *vcpu, ulong guest_ea, ulong ea_mask)
128{
129 u64 i;
130
131 dprintk_mmu("KVM: Flushing %d Shadow PTEs: 0x%lx & 0x%lx\n",
132 vcpu->arch.hpte_cache_count, guest_ea, ea_mask);
133
134 guest_ea &= ea_mask;
135
136 switch (ea_mask) {
137 case ~0xfffUL:
138 kvmppc_mmu_pte_flush_page(vcpu, guest_ea);
139 break;
140 case 0x0ffff000:
141 /* 32-bit flush w/o segment, go through all possible segments */
142 for (i = 0; i < 0x100000000ULL; i += 0x10000000ULL)
143 kvmppc_mmu_pte_flush(vcpu, guest_ea | i, ~0xfffUL);
144 break;
145 case 0:
146 /* Doing a complete flush -> start from scratch */
147 kvmppc_mmu_pte_flush_all(vcpu);
148 break;
149 default:
150 WARN_ON(1);
151 break;
152 }
153}
154
155/* Flush with mask 0xfffffffff */
156static void kvmppc_mmu_pte_vflush_short(struct kvm_vcpu *vcpu, u64 guest_vp)
157{
158 struct hlist_head *list;
159 struct hlist_node *node, *tmp;
160 struct hpte_cache *pte;
161 u64 vp_mask = 0xfffffffffULL;
162
163 list = &vcpu->arch.hpte_hash_vpte[kvmppc_mmu_hash_vpte(guest_vp)];
164
165 /* Check the list for matching entries and invalidate */
166 hlist_for_each_entry_safe(pte, node, tmp, list, list_vpte)
167 if ((pte->pte.vpage & vp_mask) == guest_vp)
168 invalidate_pte(vcpu, pte);
169}
170
171/* Flush with mask 0xffffff000 */
172static void kvmppc_mmu_pte_vflush_long(struct kvm_vcpu *vcpu, u64 guest_vp)
173{
174 struct hlist_head *list;
175 struct hlist_node *node, *tmp;
176 struct hpte_cache *pte;
177 u64 vp_mask = 0xffffff000ULL;
178
179 list = &vcpu->arch.hpte_hash_vpte_long[
180 kvmppc_mmu_hash_vpte_long(guest_vp)];
181
182 /* Check the list for matching entries and invalidate */
183 hlist_for_each_entry_safe(pte, node, tmp, list, list_vpte_long)
184 if ((pte->pte.vpage & vp_mask) == guest_vp)
185 invalidate_pte(vcpu, pte);
186}
187
188void kvmppc_mmu_pte_vflush(struct kvm_vcpu *vcpu, u64 guest_vp, u64 vp_mask)
189{
190 dprintk_mmu("KVM: Flushing %d Shadow vPTEs: 0x%llx & 0x%llx\n",
191 vcpu->arch.hpte_cache_count, guest_vp, vp_mask);
192 guest_vp &= vp_mask;
193
194 switch(vp_mask) {
195 case 0xfffffffffULL:
196 kvmppc_mmu_pte_vflush_short(vcpu, guest_vp);
197 break;
198 case 0xffffff000ULL:
199 kvmppc_mmu_pte_vflush_long(vcpu, guest_vp);
200 break;
201 default:
202 WARN_ON(1);
203 return;
204 }
205}
206
207void kvmppc_mmu_pte_pflush(struct kvm_vcpu *vcpu, ulong pa_start, ulong pa_end)
208{
209 struct hlist_node *node, *tmp;
210 struct hpte_cache *pte;
211 int i;
212
213 dprintk_mmu("KVM: Flushing %d Shadow pPTEs: 0x%lx - 0x%lx\n",
214 vcpu->arch.hpte_cache_count, pa_start, pa_end);
215
216 for (i = 0; i < HPTEG_HASH_NUM_VPTE_LONG; i++) {
217 struct hlist_head *list = &vcpu->arch.hpte_hash_vpte_long[i];
218
219 hlist_for_each_entry_safe(pte, node, tmp, list, list_vpte_long)
220 if ((pte->pte.raddr >= pa_start) &&
221 (pte->pte.raddr < pa_end))
222 invalidate_pte(vcpu, pte);
223 }
224}
225
226struct hpte_cache *kvmppc_mmu_hpte_cache_next(struct kvm_vcpu *vcpu)
227{
228 struct hpte_cache *pte;
229
230 pte = kmem_cache_zalloc(hpte_cache, GFP_KERNEL);
231 vcpu->arch.hpte_cache_count++;
232
233 if (vcpu->arch.hpte_cache_count == HPTEG_CACHE_NUM)
234 kvmppc_mmu_pte_flush_all(vcpu);
235
236 return pte;
237}
238
239void kvmppc_mmu_hpte_destroy(struct kvm_vcpu *vcpu)
240{
241 kvmppc_mmu_pte_flush(vcpu, 0, 0);
242}
243
244static void kvmppc_mmu_hpte_init_hash(struct hlist_head *hash_list, int len)
245{
246 int i;
247
248 for (i = 0; i < len; i++)
249 INIT_HLIST_HEAD(&hash_list[i]);
250}
251
252int kvmppc_mmu_hpte_init(struct kvm_vcpu *vcpu)
253{
254 /* init hpte lookup hashes */
255 kvmppc_mmu_hpte_init_hash(vcpu->arch.hpte_hash_pte,
256 ARRAY_SIZE(vcpu->arch.hpte_hash_pte));
257 kvmppc_mmu_hpte_init_hash(vcpu->arch.hpte_hash_vpte,
258 ARRAY_SIZE(vcpu->arch.hpte_hash_vpte));
259 kvmppc_mmu_hpte_init_hash(vcpu->arch.hpte_hash_vpte_long,
260 ARRAY_SIZE(vcpu->arch.hpte_hash_vpte_long));
261
262 return 0;
263}
264
265int kvmppc_mmu_hpte_sysinit(void)
266{
267 /* init hpte slab cache */
268 hpte_cache = kmem_cache_create("kvm-spt", sizeof(struct hpte_cache),
269 sizeof(struct hpte_cache), 0, NULL);
270
271 return 0;
272}
273
274void kvmppc_mmu_hpte_sysexit(void)
275{
276 kmem_cache_destroy(hpte_cache);
277}
diff --git a/arch/powerpc/kvm/book3s_paired_singles.c b/arch/powerpc/kvm/book3s_paired_singles.c
new file mode 100644
index 000000000000..474f2e24050a
--- /dev/null
+++ b/arch/powerpc/kvm/book3s_paired_singles.c
@@ -0,0 +1,1269 @@
1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License, version 2, as
4 * published by the Free Software Foundation.
5 *
6 * This program is distributed in the hope that it will be useful,
7 * but WITHOUT ANY WARRANTY; without even the implied warranty of
8 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9 * GNU General Public License for more details.
10 *
11 * You should have received a copy of the GNU General Public License
12 * along with this program; if not, write to the Free Software
13 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
14 *
15 * Copyright Novell Inc 2010
16 *
17 * Authors: Alexander Graf <agraf@suse.de>
18 */
19
20#include <asm/kvm.h>
21#include <asm/kvm_ppc.h>
22#include <asm/disassemble.h>
23#include <asm/kvm_book3s.h>
24#include <asm/kvm_fpu.h>
25#include <asm/reg.h>
26#include <asm/cacheflush.h>
27#include <linux/vmalloc.h>
28
29/* #define DEBUG */
30
31#ifdef DEBUG
32#define dprintk printk
33#else
34#define dprintk(...) do { } while(0);
35#endif
36
37#define OP_LFS 48
38#define OP_LFSU 49
39#define OP_LFD 50
40#define OP_LFDU 51
41#define OP_STFS 52
42#define OP_STFSU 53
43#define OP_STFD 54
44#define OP_STFDU 55
45#define OP_PSQ_L 56
46#define OP_PSQ_LU 57
47#define OP_PSQ_ST 60
48#define OP_PSQ_STU 61
49
50#define OP_31_LFSX 535
51#define OP_31_LFSUX 567
52#define OP_31_LFDX 599
53#define OP_31_LFDUX 631
54#define OP_31_STFSX 663
55#define OP_31_STFSUX 695
56#define OP_31_STFX 727
57#define OP_31_STFUX 759
58#define OP_31_LWIZX 887
59#define OP_31_STFIWX 983
60
61#define OP_59_FADDS 21
62#define OP_59_FSUBS 20
63#define OP_59_FSQRTS 22
64#define OP_59_FDIVS 18
65#define OP_59_FRES 24
66#define OP_59_FMULS 25
67#define OP_59_FRSQRTES 26
68#define OP_59_FMSUBS 28
69#define OP_59_FMADDS 29
70#define OP_59_FNMSUBS 30
71#define OP_59_FNMADDS 31
72
73#define OP_63_FCMPU 0
74#define OP_63_FCPSGN 8
75#define OP_63_FRSP 12
76#define OP_63_FCTIW 14
77#define OP_63_FCTIWZ 15
78#define OP_63_FDIV 18
79#define OP_63_FADD 21
80#define OP_63_FSQRT 22
81#define OP_63_FSEL 23
82#define OP_63_FRE 24
83#define OP_63_FMUL 25
84#define OP_63_FRSQRTE 26
85#define OP_63_FMSUB 28
86#define OP_63_FMADD 29
87#define OP_63_FNMSUB 30
88#define OP_63_FNMADD 31
89#define OP_63_FCMPO 32
90#define OP_63_MTFSB1 38 // XXX
91#define OP_63_FSUB 20
92#define OP_63_FNEG 40
93#define OP_63_MCRFS 64
94#define OP_63_MTFSB0 70
95#define OP_63_FMR 72
96#define OP_63_MTFSFI 134
97#define OP_63_FABS 264
98#define OP_63_MFFS 583
99#define OP_63_MTFSF 711
100
101#define OP_4X_PS_CMPU0 0
102#define OP_4X_PSQ_LX 6
103#define OP_4XW_PSQ_STX 7
104#define OP_4A_PS_SUM0 10
105#define OP_4A_PS_SUM1 11
106#define OP_4A_PS_MULS0 12
107#define OP_4A_PS_MULS1 13
108#define OP_4A_PS_MADDS0 14
109#define OP_4A_PS_MADDS1 15
110#define OP_4A_PS_DIV 18
111#define OP_4A_PS_SUB 20
112#define OP_4A_PS_ADD 21
113#define OP_4A_PS_SEL 23
114#define OP_4A_PS_RES 24
115#define OP_4A_PS_MUL 25
116#define OP_4A_PS_RSQRTE 26
117#define OP_4A_PS_MSUB 28
118#define OP_4A_PS_MADD 29
119#define OP_4A_PS_NMSUB 30
120#define OP_4A_PS_NMADD 31
121#define OP_4X_PS_CMPO0 32
122#define OP_4X_PSQ_LUX 38
123#define OP_4XW_PSQ_STUX 39
124#define OP_4X_PS_NEG 40
125#define OP_4X_PS_CMPU1 64
126#define OP_4X_PS_MR 72
127#define OP_4X_PS_CMPO1 96
128#define OP_4X_PS_NABS 136
129#define OP_4X_PS_ABS 264
130#define OP_4X_PS_MERGE00 528
131#define OP_4X_PS_MERGE01 560
132#define OP_4X_PS_MERGE10 592
133#define OP_4X_PS_MERGE11 624
134
135#define SCALAR_NONE 0
136#define SCALAR_HIGH (1 << 0)
137#define SCALAR_LOW (1 << 1)
138#define SCALAR_NO_PS0 (1 << 2)
139#define SCALAR_NO_PS1 (1 << 3)
140
141#define GQR_ST_TYPE_MASK 0x00000007
142#define GQR_ST_TYPE_SHIFT 0
143#define GQR_ST_SCALE_MASK 0x00003f00
144#define GQR_ST_SCALE_SHIFT 8
145#define GQR_LD_TYPE_MASK 0x00070000
146#define GQR_LD_TYPE_SHIFT 16
147#define GQR_LD_SCALE_MASK 0x3f000000
148#define GQR_LD_SCALE_SHIFT 24
149
150#define GQR_QUANTIZE_FLOAT 0
151#define GQR_QUANTIZE_U8 4
152#define GQR_QUANTIZE_U16 5
153#define GQR_QUANTIZE_S8 6
154#define GQR_QUANTIZE_S16 7
155
156#define FPU_LS_SINGLE 0
157#define FPU_LS_DOUBLE 1
158#define FPU_LS_SINGLE_LOW 2
159
160static inline void kvmppc_sync_qpr(struct kvm_vcpu *vcpu, int rt)
161{
162 kvm_cvt_df(&vcpu->arch.fpr[rt], &vcpu->arch.qpr[rt], &vcpu->arch.fpscr);
163}
164
165static void kvmppc_inject_pf(struct kvm_vcpu *vcpu, ulong eaddr, bool is_store)
166{
167 u64 dsisr;
168
169 vcpu->arch.msr = kvmppc_set_field(vcpu->arch.msr, 33, 36, 0);
170 vcpu->arch.msr = kvmppc_set_field(vcpu->arch.msr, 42, 47, 0);
171 vcpu->arch.dear = eaddr;
172 /* Page Fault */
173 dsisr = kvmppc_set_field(0, 33, 33, 1);
174 if (is_store)
175 to_book3s(vcpu)->dsisr = kvmppc_set_field(dsisr, 38, 38, 1);
176 kvmppc_book3s_queue_irqprio(vcpu, BOOK3S_INTERRUPT_DATA_STORAGE);
177}
178
179static int kvmppc_emulate_fpr_load(struct kvm_run *run, struct kvm_vcpu *vcpu,
180 int rs, ulong addr, int ls_type)
181{
182 int emulated = EMULATE_FAIL;
183 int r;
184 char tmp[8];
185 int len = sizeof(u32);
186
187 if (ls_type == FPU_LS_DOUBLE)
188 len = sizeof(u64);
189
190 /* read from memory */
191 r = kvmppc_ld(vcpu, &addr, len, tmp, true);
192 vcpu->arch.paddr_accessed = addr;
193
194 if (r < 0) {
195 kvmppc_inject_pf(vcpu, addr, false);
196 goto done_load;
197 } else if (r == EMULATE_DO_MMIO) {
198 emulated = kvmppc_handle_load(run, vcpu, KVM_REG_FPR | rs, len, 1);
199 goto done_load;
200 }
201
202 emulated = EMULATE_DONE;
203
204 /* put in registers */
205 switch (ls_type) {
206 case FPU_LS_SINGLE:
207 kvm_cvt_fd((u32*)tmp, &vcpu->arch.fpr[rs], &vcpu->arch.fpscr);
208 vcpu->arch.qpr[rs] = *((u32*)tmp);
209 break;
210 case FPU_LS_DOUBLE:
211 vcpu->arch.fpr[rs] = *((u64*)tmp);
212 break;
213 }
214
215 dprintk(KERN_INFO "KVM: FPR_LD [0x%llx] at 0x%lx (%d)\n", *(u64*)tmp,
216 addr, len);
217
218done_load:
219 return emulated;
220}
221
222static int kvmppc_emulate_fpr_store(struct kvm_run *run, struct kvm_vcpu *vcpu,
223 int rs, ulong addr, int ls_type)
224{
225 int emulated = EMULATE_FAIL;
226 int r;
227 char tmp[8];
228 u64 val;
229 int len;
230
231 switch (ls_type) {
232 case FPU_LS_SINGLE:
233 kvm_cvt_df(&vcpu->arch.fpr[rs], (u32*)tmp, &vcpu->arch.fpscr);
234 val = *((u32*)tmp);
235 len = sizeof(u32);
236 break;
237 case FPU_LS_SINGLE_LOW:
238 *((u32*)tmp) = vcpu->arch.fpr[rs];
239 val = vcpu->arch.fpr[rs] & 0xffffffff;
240 len = sizeof(u32);
241 break;
242 case FPU_LS_DOUBLE:
243 *((u64*)tmp) = vcpu->arch.fpr[rs];
244 val = vcpu->arch.fpr[rs];
245 len = sizeof(u64);
246 break;
247 default:
248 val = 0;
249 len = 0;
250 }
251
252 r = kvmppc_st(vcpu, &addr, len, tmp, true);
253 vcpu->arch.paddr_accessed = addr;
254 if (r < 0) {
255 kvmppc_inject_pf(vcpu, addr, true);
256 } else if (r == EMULATE_DO_MMIO) {
257 emulated = kvmppc_handle_store(run, vcpu, val, len, 1);
258 } else {
259 emulated = EMULATE_DONE;
260 }
261
262 dprintk(KERN_INFO "KVM: FPR_ST [0x%llx] at 0x%lx (%d)\n",
263 val, addr, len);
264
265 return emulated;
266}
267
268static int kvmppc_emulate_psq_load(struct kvm_run *run, struct kvm_vcpu *vcpu,
269 int rs, ulong addr, bool w, int i)
270{
271 int emulated = EMULATE_FAIL;
272 int r;
273 float one = 1.0;
274 u32 tmp[2];
275
276 /* read from memory */
277 if (w) {
278 r = kvmppc_ld(vcpu, &addr, sizeof(u32), tmp, true);
279 memcpy(&tmp[1], &one, sizeof(u32));
280 } else {
281 r = kvmppc_ld(vcpu, &addr, sizeof(u32) * 2, tmp, true);
282 }
283 vcpu->arch.paddr_accessed = addr;
284 if (r < 0) {
285 kvmppc_inject_pf(vcpu, addr, false);
286 goto done_load;
287 } else if ((r == EMULATE_DO_MMIO) && w) {
288 emulated = kvmppc_handle_load(run, vcpu, KVM_REG_FPR | rs, 4, 1);
289 vcpu->arch.qpr[rs] = tmp[1];
290 goto done_load;
291 } else if (r == EMULATE_DO_MMIO) {
292 emulated = kvmppc_handle_load(run, vcpu, KVM_REG_FQPR | rs, 8, 1);
293 goto done_load;
294 }
295
296 emulated = EMULATE_DONE;
297
298 /* put in registers */
299 kvm_cvt_fd(&tmp[0], &vcpu->arch.fpr[rs], &vcpu->arch.fpscr);
300 vcpu->arch.qpr[rs] = tmp[1];
301
302 dprintk(KERN_INFO "KVM: PSQ_LD [0x%x, 0x%x] at 0x%lx (%d)\n", tmp[0],
303 tmp[1], addr, w ? 4 : 8);
304
305done_load:
306 return emulated;
307}
308
309static int kvmppc_emulate_psq_store(struct kvm_run *run, struct kvm_vcpu *vcpu,
310 int rs, ulong addr, bool w, int i)
311{
312 int emulated = EMULATE_FAIL;
313 int r;
314 u32 tmp[2];
315 int len = w ? sizeof(u32) : sizeof(u64);
316
317 kvm_cvt_df(&vcpu->arch.fpr[rs], &tmp[0], &vcpu->arch.fpscr);
318 tmp[1] = vcpu->arch.qpr[rs];
319
320 r = kvmppc_st(vcpu, &addr, len, tmp, true);
321 vcpu->arch.paddr_accessed = addr;
322 if (r < 0) {
323 kvmppc_inject_pf(vcpu, addr, true);
324 } else if ((r == EMULATE_DO_MMIO) && w) {
325 emulated = kvmppc_handle_store(run, vcpu, tmp[0], 4, 1);
326 } else if (r == EMULATE_DO_MMIO) {
327 u64 val = ((u64)tmp[0] << 32) | tmp[1];
328 emulated = kvmppc_handle_store(run, vcpu, val, 8, 1);
329 } else {
330 emulated = EMULATE_DONE;
331 }
332
333 dprintk(KERN_INFO "KVM: PSQ_ST [0x%x, 0x%x] at 0x%lx (%d)\n",
334 tmp[0], tmp[1], addr, len);
335
336 return emulated;
337}
338
339/*
340 * Cuts out inst bits with ordering according to spec.
341 * That means the leftmost bit is zero. All given bits are included.
342 */
343static inline u32 inst_get_field(u32 inst, int msb, int lsb)
344{
345 return kvmppc_get_field(inst, msb + 32, lsb + 32);
346}
347
348/*
349 * Replaces inst bits with ordering according to spec.
350 */
351static inline u32 inst_set_field(u32 inst, int msb, int lsb, int value)
352{
353 return kvmppc_set_field(inst, msb + 32, lsb + 32, value);
354}
355
356bool kvmppc_inst_is_paired_single(struct kvm_vcpu *vcpu, u32 inst)
357{
358 if (!(vcpu->arch.hflags & BOOK3S_HFLAG_PAIRED_SINGLE))
359 return false;
360
361 switch (get_op(inst)) {
362 case OP_PSQ_L:
363 case OP_PSQ_LU:
364 case OP_PSQ_ST:
365 case OP_PSQ_STU:
366 case OP_LFS:
367 case OP_LFSU:
368 case OP_LFD:
369 case OP_LFDU:
370 case OP_STFS:
371 case OP_STFSU:
372 case OP_STFD:
373 case OP_STFDU:
374 return true;
375 case 4:
376 /* X form */
377 switch (inst_get_field(inst, 21, 30)) {
378 case OP_4X_PS_CMPU0:
379 case OP_4X_PSQ_LX:
380 case OP_4X_PS_CMPO0:
381 case OP_4X_PSQ_LUX:
382 case OP_4X_PS_NEG:
383 case OP_4X_PS_CMPU1:
384 case OP_4X_PS_MR:
385 case OP_4X_PS_CMPO1:
386 case OP_4X_PS_NABS:
387 case OP_4X_PS_ABS:
388 case OP_4X_PS_MERGE00:
389 case OP_4X_PS_MERGE01:
390 case OP_4X_PS_MERGE10:
391 case OP_4X_PS_MERGE11:
392 return true;
393 }
394 /* XW form */
395 switch (inst_get_field(inst, 25, 30)) {
396 case OP_4XW_PSQ_STX:
397 case OP_4XW_PSQ_STUX:
398 return true;
399 }
400 /* A form */
401 switch (inst_get_field(inst, 26, 30)) {
402 case OP_4A_PS_SUM1:
403 case OP_4A_PS_SUM0:
404 case OP_4A_PS_MULS0:
405 case OP_4A_PS_MULS1:
406 case OP_4A_PS_MADDS0:
407 case OP_4A_PS_MADDS1:
408 case OP_4A_PS_DIV:
409 case OP_4A_PS_SUB:
410 case OP_4A_PS_ADD:
411 case OP_4A_PS_SEL:
412 case OP_4A_PS_RES:
413 case OP_4A_PS_MUL:
414 case OP_4A_PS_RSQRTE:
415 case OP_4A_PS_MSUB:
416 case OP_4A_PS_MADD:
417 case OP_4A_PS_NMSUB:
418 case OP_4A_PS_NMADD:
419 return true;
420 }
421 break;
422 case 59:
423 switch (inst_get_field(inst, 21, 30)) {
424 case OP_59_FADDS:
425 case OP_59_FSUBS:
426 case OP_59_FDIVS:
427 case OP_59_FRES:
428 case OP_59_FRSQRTES:
429 return true;
430 }
431 switch (inst_get_field(inst, 26, 30)) {
432 case OP_59_FMULS:
433 case OP_59_FMSUBS:
434 case OP_59_FMADDS:
435 case OP_59_FNMSUBS:
436 case OP_59_FNMADDS:
437 return true;
438 }
439 break;
440 case 63:
441 switch (inst_get_field(inst, 21, 30)) {
442 case OP_63_MTFSB0:
443 case OP_63_MTFSB1:
444 case OP_63_MTFSF:
445 case OP_63_MTFSFI:
446 case OP_63_MCRFS:
447 case OP_63_MFFS:
448 case OP_63_FCMPU:
449 case OP_63_FCMPO:
450 case OP_63_FNEG:
451 case OP_63_FMR:
452 case OP_63_FABS:
453 case OP_63_FRSP:
454 case OP_63_FDIV:
455 case OP_63_FADD:
456 case OP_63_FSUB:
457 case OP_63_FCTIW:
458 case OP_63_FCTIWZ:
459 case OP_63_FRSQRTE:
460 case OP_63_FCPSGN:
461 return true;
462 }
463 switch (inst_get_field(inst, 26, 30)) {
464 case OP_63_FMUL:
465 case OP_63_FSEL:
466 case OP_63_FMSUB:
467 case OP_63_FMADD:
468 case OP_63_FNMSUB:
469 case OP_63_FNMADD:
470 return true;
471 }
472 break;
473 case 31:
474 switch (inst_get_field(inst, 21, 30)) {
475 case OP_31_LFSX:
476 case OP_31_LFSUX:
477 case OP_31_LFDX:
478 case OP_31_LFDUX:
479 case OP_31_STFSX:
480 case OP_31_STFSUX:
481 case OP_31_STFX:
482 case OP_31_STFUX:
483 case OP_31_STFIWX:
484 return true;
485 }
486 break;
487 }
488
489 return false;
490}
491
492static int get_d_signext(u32 inst)
493{
494 int d = inst & 0x8ff;
495
496 if (d & 0x800)
497 return -(d & 0x7ff);
498
499 return (d & 0x7ff);
500}
501
502static int kvmppc_ps_three_in(struct kvm_vcpu *vcpu, bool rc,
503 int reg_out, int reg_in1, int reg_in2,
504 int reg_in3, int scalar,
505 void (*func)(u64 *fpscr,
506 u32 *dst, u32 *src1,
507 u32 *src2, u32 *src3))
508{
509 u32 *qpr = vcpu->arch.qpr;
510 u64 *fpr = vcpu->arch.fpr;
511 u32 ps0_out;
512 u32 ps0_in1, ps0_in2, ps0_in3;
513 u32 ps1_in1, ps1_in2, ps1_in3;
514
515 /* RC */
516 WARN_ON(rc);
517
518 /* PS0 */
519 kvm_cvt_df(&fpr[reg_in1], &ps0_in1, &vcpu->arch.fpscr);
520 kvm_cvt_df(&fpr[reg_in2], &ps0_in2, &vcpu->arch.fpscr);
521 kvm_cvt_df(&fpr[reg_in3], &ps0_in3, &vcpu->arch.fpscr);
522
523 if (scalar & SCALAR_LOW)
524 ps0_in2 = qpr[reg_in2];
525
526 func(&vcpu->arch.fpscr, &ps0_out, &ps0_in1, &ps0_in2, &ps0_in3);
527
528 dprintk(KERN_INFO "PS3 ps0 -> f(0x%x, 0x%x, 0x%x) = 0x%x\n",
529 ps0_in1, ps0_in2, ps0_in3, ps0_out);
530
531 if (!(scalar & SCALAR_NO_PS0))
532 kvm_cvt_fd(&ps0_out, &fpr[reg_out], &vcpu->arch.fpscr);
533
534 /* PS1 */
535 ps1_in1 = qpr[reg_in1];
536 ps1_in2 = qpr[reg_in2];
537 ps1_in3 = qpr[reg_in3];
538
539 if (scalar & SCALAR_HIGH)
540 ps1_in2 = ps0_in2;
541
542 if (!(scalar & SCALAR_NO_PS1))
543 func(&vcpu->arch.fpscr, &qpr[reg_out], &ps1_in1, &ps1_in2, &ps1_in3);
544
545 dprintk(KERN_INFO "PS3 ps1 -> f(0x%x, 0x%x, 0x%x) = 0x%x\n",
546 ps1_in1, ps1_in2, ps1_in3, qpr[reg_out]);
547
548 return EMULATE_DONE;
549}
550
551static int kvmppc_ps_two_in(struct kvm_vcpu *vcpu, bool rc,
552 int reg_out, int reg_in1, int reg_in2,
553 int scalar,
554 void (*func)(u64 *fpscr,
555 u32 *dst, u32 *src1,
556 u32 *src2))
557{
558 u32 *qpr = vcpu->arch.qpr;
559 u64 *fpr = vcpu->arch.fpr;
560 u32 ps0_out;
561 u32 ps0_in1, ps0_in2;
562 u32 ps1_out;
563 u32 ps1_in1, ps1_in2;
564
565 /* RC */
566 WARN_ON(rc);
567
568 /* PS0 */
569 kvm_cvt_df(&fpr[reg_in1], &ps0_in1, &vcpu->arch.fpscr);
570
571 if (scalar & SCALAR_LOW)
572 ps0_in2 = qpr[reg_in2];
573 else
574 kvm_cvt_df(&fpr[reg_in2], &ps0_in2, &vcpu->arch.fpscr);
575
576 func(&vcpu->arch.fpscr, &ps0_out, &ps0_in1, &ps0_in2);
577
578 if (!(scalar & SCALAR_NO_PS0)) {
579 dprintk(KERN_INFO "PS2 ps0 -> f(0x%x, 0x%x) = 0x%x\n",
580 ps0_in1, ps0_in2, ps0_out);
581
582 kvm_cvt_fd(&ps0_out, &fpr[reg_out], &vcpu->arch.fpscr);
583 }
584
585 /* PS1 */
586 ps1_in1 = qpr[reg_in1];
587 ps1_in2 = qpr[reg_in2];
588
589 if (scalar & SCALAR_HIGH)
590 ps1_in2 = ps0_in2;
591
592 func(&vcpu->arch.fpscr, &ps1_out, &ps1_in1, &ps1_in2);
593
594 if (!(scalar & SCALAR_NO_PS1)) {
595 qpr[reg_out] = ps1_out;
596
597 dprintk(KERN_INFO "PS2 ps1 -> f(0x%x, 0x%x) = 0x%x\n",
598 ps1_in1, ps1_in2, qpr[reg_out]);
599 }
600
601 return EMULATE_DONE;
602}
603
604static int kvmppc_ps_one_in(struct kvm_vcpu *vcpu, bool rc,
605 int reg_out, int reg_in,
606 void (*func)(u64 *t,
607 u32 *dst, u32 *src1))
608{
609 u32 *qpr = vcpu->arch.qpr;
610 u64 *fpr = vcpu->arch.fpr;
611 u32 ps0_out, ps0_in;
612 u32 ps1_in;
613
614 /* RC */
615 WARN_ON(rc);
616
617 /* PS0 */
618 kvm_cvt_df(&fpr[reg_in], &ps0_in, &vcpu->arch.fpscr);
619 func(&vcpu->arch.fpscr, &ps0_out, &ps0_in);
620
621 dprintk(KERN_INFO "PS1 ps0 -> f(0x%x) = 0x%x\n",
622 ps0_in, ps0_out);
623
624 kvm_cvt_fd(&ps0_out, &fpr[reg_out], &vcpu->arch.fpscr);
625
626 /* PS1 */
627 ps1_in = qpr[reg_in];
628 func(&vcpu->arch.fpscr, &qpr[reg_out], &ps1_in);
629
630 dprintk(KERN_INFO "PS1 ps1 -> f(0x%x) = 0x%x\n",
631 ps1_in, qpr[reg_out]);
632
633 return EMULATE_DONE;
634}
635
636int kvmppc_emulate_paired_single(struct kvm_run *run, struct kvm_vcpu *vcpu)
637{
638 u32 inst = kvmppc_get_last_inst(vcpu);
639 enum emulation_result emulated = EMULATE_DONE;
640
641 int ax_rd = inst_get_field(inst, 6, 10);
642 int ax_ra = inst_get_field(inst, 11, 15);
643 int ax_rb = inst_get_field(inst, 16, 20);
644 int ax_rc = inst_get_field(inst, 21, 25);
645 short full_d = inst_get_field(inst, 16, 31);
646
647 u64 *fpr_d = &vcpu->arch.fpr[ax_rd];
648 u64 *fpr_a = &vcpu->arch.fpr[ax_ra];
649 u64 *fpr_b = &vcpu->arch.fpr[ax_rb];
650 u64 *fpr_c = &vcpu->arch.fpr[ax_rc];
651
652 bool rcomp = (inst & 1) ? true : false;
653 u32 cr = kvmppc_get_cr(vcpu);
654#ifdef DEBUG
655 int i;
656#endif
657
658 if (!kvmppc_inst_is_paired_single(vcpu, inst))
659 return EMULATE_FAIL;
660
661 if (!(vcpu->arch.msr & MSR_FP)) {
662 kvmppc_book3s_queue_irqprio(vcpu, BOOK3S_INTERRUPT_FP_UNAVAIL);
663 return EMULATE_AGAIN;
664 }
665
666 kvmppc_giveup_ext(vcpu, MSR_FP);
667 preempt_disable();
668 enable_kernel_fp();
669 /* Do we need to clear FE0 / FE1 here? Don't think so. */
670
671#ifdef DEBUG
672 for (i = 0; i < ARRAY_SIZE(vcpu->arch.fpr); i++) {
673 u32 f;
674 kvm_cvt_df(&vcpu->arch.fpr[i], &f, &vcpu->arch.fpscr);
675 dprintk(KERN_INFO "FPR[%d] = 0x%x / 0x%llx QPR[%d] = 0x%x\n",
676 i, f, vcpu->arch.fpr[i], i, vcpu->arch.qpr[i]);
677 }
678#endif
679
680 switch (get_op(inst)) {
681 case OP_PSQ_L:
682 {
683 ulong addr = ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0;
684 bool w = inst_get_field(inst, 16, 16) ? true : false;
685 int i = inst_get_field(inst, 17, 19);
686
687 addr += get_d_signext(inst);
688 emulated = kvmppc_emulate_psq_load(run, vcpu, ax_rd, addr, w, i);
689 break;
690 }
691 case OP_PSQ_LU:
692 {
693 ulong addr = kvmppc_get_gpr(vcpu, ax_ra);
694 bool w = inst_get_field(inst, 16, 16) ? true : false;
695 int i = inst_get_field(inst, 17, 19);
696
697 addr += get_d_signext(inst);
698 emulated = kvmppc_emulate_psq_load(run, vcpu, ax_rd, addr, w, i);
699
700 if (emulated == EMULATE_DONE)
701 kvmppc_set_gpr(vcpu, ax_ra, addr);
702 break;
703 }
704 case OP_PSQ_ST:
705 {
706 ulong addr = ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0;
707 bool w = inst_get_field(inst, 16, 16) ? true : false;
708 int i = inst_get_field(inst, 17, 19);
709
710 addr += get_d_signext(inst);
711 emulated = kvmppc_emulate_psq_store(run, vcpu, ax_rd, addr, w, i);
712 break;
713 }
714 case OP_PSQ_STU:
715 {
716 ulong addr = kvmppc_get_gpr(vcpu, ax_ra);
717 bool w = inst_get_field(inst, 16, 16) ? true : false;
718 int i = inst_get_field(inst, 17, 19);
719
720 addr += get_d_signext(inst);
721 emulated = kvmppc_emulate_psq_store(run, vcpu, ax_rd, addr, w, i);
722
723 if (emulated == EMULATE_DONE)
724 kvmppc_set_gpr(vcpu, ax_ra, addr);
725 break;
726 }
727 case 4:
728 /* X form */
729 switch (inst_get_field(inst, 21, 30)) {
730 case OP_4X_PS_CMPU0:
731 /* XXX */
732 emulated = EMULATE_FAIL;
733 break;
734 case OP_4X_PSQ_LX:
735 {
736 ulong addr = ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0;
737 bool w = inst_get_field(inst, 21, 21) ? true : false;
738 int i = inst_get_field(inst, 22, 24);
739
740 addr += kvmppc_get_gpr(vcpu, ax_rb);
741 emulated = kvmppc_emulate_psq_load(run, vcpu, ax_rd, addr, w, i);
742 break;
743 }
744 case OP_4X_PS_CMPO0:
745 /* XXX */
746 emulated = EMULATE_FAIL;
747 break;
748 case OP_4X_PSQ_LUX:
749 {
750 ulong addr = kvmppc_get_gpr(vcpu, ax_ra);
751 bool w = inst_get_field(inst, 21, 21) ? true : false;
752 int i = inst_get_field(inst, 22, 24);
753
754 addr += kvmppc_get_gpr(vcpu, ax_rb);
755 emulated = kvmppc_emulate_psq_load(run, vcpu, ax_rd, addr, w, i);
756
757 if (emulated == EMULATE_DONE)
758 kvmppc_set_gpr(vcpu, ax_ra, addr);
759 break;
760 }
761 case OP_4X_PS_NEG:
762 vcpu->arch.fpr[ax_rd] = vcpu->arch.fpr[ax_rb];
763 vcpu->arch.fpr[ax_rd] ^= 0x8000000000000000ULL;
764 vcpu->arch.qpr[ax_rd] = vcpu->arch.qpr[ax_rb];
765 vcpu->arch.qpr[ax_rd] ^= 0x80000000;
766 break;
767 case OP_4X_PS_CMPU1:
768 /* XXX */
769 emulated = EMULATE_FAIL;
770 break;
771 case OP_4X_PS_MR:
772 WARN_ON(rcomp);
773 vcpu->arch.fpr[ax_rd] = vcpu->arch.fpr[ax_rb];
774 vcpu->arch.qpr[ax_rd] = vcpu->arch.qpr[ax_rb];
775 break;
776 case OP_4X_PS_CMPO1:
777 /* XXX */
778 emulated = EMULATE_FAIL;
779 break;
780 case OP_4X_PS_NABS:
781 WARN_ON(rcomp);
782 vcpu->arch.fpr[ax_rd] = vcpu->arch.fpr[ax_rb];
783 vcpu->arch.fpr[ax_rd] |= 0x8000000000000000ULL;
784 vcpu->arch.qpr[ax_rd] = vcpu->arch.qpr[ax_rb];
785 vcpu->arch.qpr[ax_rd] |= 0x80000000;
786 break;
787 case OP_4X_PS_ABS:
788 WARN_ON(rcomp);
789 vcpu->arch.fpr[ax_rd] = vcpu->arch.fpr[ax_rb];
790 vcpu->arch.fpr[ax_rd] &= ~0x8000000000000000ULL;
791 vcpu->arch.qpr[ax_rd] = vcpu->arch.qpr[ax_rb];
792 vcpu->arch.qpr[ax_rd] &= ~0x80000000;
793 break;
794 case OP_4X_PS_MERGE00:
795 WARN_ON(rcomp);
796 vcpu->arch.fpr[ax_rd] = vcpu->arch.fpr[ax_ra];
797 /* vcpu->arch.qpr[ax_rd] = vcpu->arch.fpr[ax_rb]; */
798 kvm_cvt_df(&vcpu->arch.fpr[ax_rb],
799 &vcpu->arch.qpr[ax_rd],
800 &vcpu->arch.fpscr);
801 break;
802 case OP_4X_PS_MERGE01:
803 WARN_ON(rcomp);
804 vcpu->arch.fpr[ax_rd] = vcpu->arch.fpr[ax_ra];
805 vcpu->arch.qpr[ax_rd] = vcpu->arch.qpr[ax_rb];
806 break;
807 case OP_4X_PS_MERGE10:
808 WARN_ON(rcomp);
809 /* vcpu->arch.fpr[ax_rd] = vcpu->arch.qpr[ax_ra]; */
810 kvm_cvt_fd(&vcpu->arch.qpr[ax_ra],
811 &vcpu->arch.fpr[ax_rd],
812 &vcpu->arch.fpscr);
813 /* vcpu->arch.qpr[ax_rd] = vcpu->arch.fpr[ax_rb]; */
814 kvm_cvt_df(&vcpu->arch.fpr[ax_rb],
815 &vcpu->arch.qpr[ax_rd],
816 &vcpu->arch.fpscr);
817 break;
818 case OP_4X_PS_MERGE11:
819 WARN_ON(rcomp);
820 /* vcpu->arch.fpr[ax_rd] = vcpu->arch.qpr[ax_ra]; */
821 kvm_cvt_fd(&vcpu->arch.qpr[ax_ra],
822 &vcpu->arch.fpr[ax_rd],
823 &vcpu->arch.fpscr);
824 vcpu->arch.qpr[ax_rd] = vcpu->arch.qpr[ax_rb];
825 break;
826 }
827 /* XW form */
828 switch (inst_get_field(inst, 25, 30)) {
829 case OP_4XW_PSQ_STX:
830 {
831 ulong addr = ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0;
832 bool w = inst_get_field(inst, 21, 21) ? true : false;
833 int i = inst_get_field(inst, 22, 24);
834
835 addr += kvmppc_get_gpr(vcpu, ax_rb);
836 emulated = kvmppc_emulate_psq_store(run, vcpu, ax_rd, addr, w, i);
837 break;
838 }
839 case OP_4XW_PSQ_STUX:
840 {
841 ulong addr = kvmppc_get_gpr(vcpu, ax_ra);
842 bool w = inst_get_field(inst, 21, 21) ? true : false;
843 int i = inst_get_field(inst, 22, 24);
844
845 addr += kvmppc_get_gpr(vcpu, ax_rb);
846 emulated = kvmppc_emulate_psq_store(run, vcpu, ax_rd, addr, w, i);
847
848 if (emulated == EMULATE_DONE)
849 kvmppc_set_gpr(vcpu, ax_ra, addr);
850 break;
851 }
852 }
853 /* A form */
854 switch (inst_get_field(inst, 26, 30)) {
855 case OP_4A_PS_SUM1:
856 emulated = kvmppc_ps_two_in(vcpu, rcomp, ax_rd,
857 ax_rb, ax_ra, SCALAR_NO_PS0 | SCALAR_HIGH, fps_fadds);
858 vcpu->arch.fpr[ax_rd] = vcpu->arch.fpr[ax_rc];
859 break;
860 case OP_4A_PS_SUM0:
861 emulated = kvmppc_ps_two_in(vcpu, rcomp, ax_rd,
862 ax_ra, ax_rb, SCALAR_NO_PS1 | SCALAR_LOW, fps_fadds);
863 vcpu->arch.qpr[ax_rd] = vcpu->arch.qpr[ax_rc];
864 break;
865 case OP_4A_PS_MULS0:
866 emulated = kvmppc_ps_two_in(vcpu, rcomp, ax_rd,
867 ax_ra, ax_rc, SCALAR_HIGH, fps_fmuls);
868 break;
869 case OP_4A_PS_MULS1:
870 emulated = kvmppc_ps_two_in(vcpu, rcomp, ax_rd,
871 ax_ra, ax_rc, SCALAR_LOW, fps_fmuls);
872 break;
873 case OP_4A_PS_MADDS0:
874 emulated = kvmppc_ps_three_in(vcpu, rcomp, ax_rd,
875 ax_ra, ax_rc, ax_rb, SCALAR_HIGH, fps_fmadds);
876 break;
877 case OP_4A_PS_MADDS1:
878 emulated = kvmppc_ps_three_in(vcpu, rcomp, ax_rd,
879 ax_ra, ax_rc, ax_rb, SCALAR_LOW, fps_fmadds);
880 break;
881 case OP_4A_PS_DIV:
882 emulated = kvmppc_ps_two_in(vcpu, rcomp, ax_rd,
883 ax_ra, ax_rb, SCALAR_NONE, fps_fdivs);
884 break;
885 case OP_4A_PS_SUB:
886 emulated = kvmppc_ps_two_in(vcpu, rcomp, ax_rd,
887 ax_ra, ax_rb, SCALAR_NONE, fps_fsubs);
888 break;
889 case OP_4A_PS_ADD:
890 emulated = kvmppc_ps_two_in(vcpu, rcomp, ax_rd,
891 ax_ra, ax_rb, SCALAR_NONE, fps_fadds);
892 break;
893 case OP_4A_PS_SEL:
894 emulated = kvmppc_ps_three_in(vcpu, rcomp, ax_rd,
895 ax_ra, ax_rc, ax_rb, SCALAR_NONE, fps_fsel);
896 break;
897 case OP_4A_PS_RES:
898 emulated = kvmppc_ps_one_in(vcpu, rcomp, ax_rd,
899 ax_rb, fps_fres);
900 break;
901 case OP_4A_PS_MUL:
902 emulated = kvmppc_ps_two_in(vcpu, rcomp, ax_rd,
903 ax_ra, ax_rc, SCALAR_NONE, fps_fmuls);
904 break;
905 case OP_4A_PS_RSQRTE:
906 emulated = kvmppc_ps_one_in(vcpu, rcomp, ax_rd,
907 ax_rb, fps_frsqrte);
908 break;
909 case OP_4A_PS_MSUB:
910 emulated = kvmppc_ps_three_in(vcpu, rcomp, ax_rd,
911 ax_ra, ax_rc, ax_rb, SCALAR_NONE, fps_fmsubs);
912 break;
913 case OP_4A_PS_MADD:
914 emulated = kvmppc_ps_three_in(vcpu, rcomp, ax_rd,
915 ax_ra, ax_rc, ax_rb, SCALAR_NONE, fps_fmadds);
916 break;
917 case OP_4A_PS_NMSUB:
918 emulated = kvmppc_ps_three_in(vcpu, rcomp, ax_rd,
919 ax_ra, ax_rc, ax_rb, SCALAR_NONE, fps_fnmsubs);
920 break;
921 case OP_4A_PS_NMADD:
922 emulated = kvmppc_ps_three_in(vcpu, rcomp, ax_rd,
923 ax_ra, ax_rc, ax_rb, SCALAR_NONE, fps_fnmadds);
924 break;
925 }
926 break;
927
928 /* Real FPU operations */
929
930 case OP_LFS:
931 {
932 ulong addr = (ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0) + full_d;
933
934 emulated = kvmppc_emulate_fpr_load(run, vcpu, ax_rd, addr,
935 FPU_LS_SINGLE);
936 break;
937 }
938 case OP_LFSU:
939 {
940 ulong addr = kvmppc_get_gpr(vcpu, ax_ra) + full_d;
941
942 emulated = kvmppc_emulate_fpr_load(run, vcpu, ax_rd, addr,
943 FPU_LS_SINGLE);
944
945 if (emulated == EMULATE_DONE)
946 kvmppc_set_gpr(vcpu, ax_ra, addr);
947 break;
948 }
949 case OP_LFD:
950 {
951 ulong addr = (ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0) + full_d;
952
953 emulated = kvmppc_emulate_fpr_load(run, vcpu, ax_rd, addr,
954 FPU_LS_DOUBLE);
955 break;
956 }
957 case OP_LFDU:
958 {
959 ulong addr = kvmppc_get_gpr(vcpu, ax_ra) + full_d;
960
961 emulated = kvmppc_emulate_fpr_load(run, vcpu, ax_rd, addr,
962 FPU_LS_DOUBLE);
963
964 if (emulated == EMULATE_DONE)
965 kvmppc_set_gpr(vcpu, ax_ra, addr);
966 break;
967 }
968 case OP_STFS:
969 {
970 ulong addr = (ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0) + full_d;
971
972 emulated = kvmppc_emulate_fpr_store(run, vcpu, ax_rd, addr,
973 FPU_LS_SINGLE);
974 break;
975 }
976 case OP_STFSU:
977 {
978 ulong addr = kvmppc_get_gpr(vcpu, ax_ra) + full_d;
979
980 emulated = kvmppc_emulate_fpr_store(run, vcpu, ax_rd, addr,
981 FPU_LS_SINGLE);
982
983 if (emulated == EMULATE_DONE)
984 kvmppc_set_gpr(vcpu, ax_ra, addr);
985 break;
986 }
987 case OP_STFD:
988 {
989 ulong addr = (ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0) + full_d;
990
991 emulated = kvmppc_emulate_fpr_store(run, vcpu, ax_rd, addr,
992 FPU_LS_DOUBLE);
993 break;
994 }
995 case OP_STFDU:
996 {
997 ulong addr = kvmppc_get_gpr(vcpu, ax_ra) + full_d;
998
999 emulated = kvmppc_emulate_fpr_store(run, vcpu, ax_rd, addr,
1000 FPU_LS_DOUBLE);
1001
1002 if (emulated == EMULATE_DONE)
1003 kvmppc_set_gpr(vcpu, ax_ra, addr);
1004 break;
1005 }
1006 case 31:
1007 switch (inst_get_field(inst, 21, 30)) {
1008 case OP_31_LFSX:
1009 {
1010 ulong addr = ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0;
1011
1012 addr += kvmppc_get_gpr(vcpu, ax_rb);
1013 emulated = kvmppc_emulate_fpr_load(run, vcpu, ax_rd,
1014 addr, FPU_LS_SINGLE);
1015 break;
1016 }
1017 case OP_31_LFSUX:
1018 {
1019 ulong addr = kvmppc_get_gpr(vcpu, ax_ra) +
1020 kvmppc_get_gpr(vcpu, ax_rb);
1021
1022 emulated = kvmppc_emulate_fpr_load(run, vcpu, ax_rd,
1023 addr, FPU_LS_SINGLE);
1024
1025 if (emulated == EMULATE_DONE)
1026 kvmppc_set_gpr(vcpu, ax_ra, addr);
1027 break;
1028 }
1029 case OP_31_LFDX:
1030 {
1031 ulong addr = (ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0) +
1032 kvmppc_get_gpr(vcpu, ax_rb);
1033
1034 emulated = kvmppc_emulate_fpr_load(run, vcpu, ax_rd,
1035 addr, FPU_LS_DOUBLE);
1036 break;
1037 }
1038 case OP_31_LFDUX:
1039 {
1040 ulong addr = kvmppc_get_gpr(vcpu, ax_ra) +
1041 kvmppc_get_gpr(vcpu, ax_rb);
1042
1043 emulated = kvmppc_emulate_fpr_load(run, vcpu, ax_rd,
1044 addr, FPU_LS_DOUBLE);
1045
1046 if (emulated == EMULATE_DONE)
1047 kvmppc_set_gpr(vcpu, ax_ra, addr);
1048 break;
1049 }
1050 case OP_31_STFSX:
1051 {
1052 ulong addr = (ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0) +
1053 kvmppc_get_gpr(vcpu, ax_rb);
1054
1055 emulated = kvmppc_emulate_fpr_store(run, vcpu, ax_rd,
1056 addr, FPU_LS_SINGLE);
1057 break;
1058 }
1059 case OP_31_STFSUX:
1060 {
1061 ulong addr = kvmppc_get_gpr(vcpu, ax_ra) +
1062 kvmppc_get_gpr(vcpu, ax_rb);
1063
1064 emulated = kvmppc_emulate_fpr_store(run, vcpu, ax_rd,
1065 addr, FPU_LS_SINGLE);
1066
1067 if (emulated == EMULATE_DONE)
1068 kvmppc_set_gpr(vcpu, ax_ra, addr);
1069 break;
1070 }
1071 case OP_31_STFX:
1072 {
1073 ulong addr = (ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0) +
1074 kvmppc_get_gpr(vcpu, ax_rb);
1075
1076 emulated = kvmppc_emulate_fpr_store(run, vcpu, ax_rd,
1077 addr, FPU_LS_DOUBLE);
1078 break;
1079 }
1080 case OP_31_STFUX:
1081 {
1082 ulong addr = kvmppc_get_gpr(vcpu, ax_ra) +
1083 kvmppc_get_gpr(vcpu, ax_rb);
1084
1085 emulated = kvmppc_emulate_fpr_store(run, vcpu, ax_rd,
1086 addr, FPU_LS_DOUBLE);
1087
1088 if (emulated == EMULATE_DONE)
1089 kvmppc_set_gpr(vcpu, ax_ra, addr);
1090 break;
1091 }
1092 case OP_31_STFIWX:
1093 {
1094 ulong addr = (ax_ra ? kvmppc_get_gpr(vcpu, ax_ra) : 0) +
1095 kvmppc_get_gpr(vcpu, ax_rb);
1096
1097 emulated = kvmppc_emulate_fpr_store(run, vcpu, ax_rd,
1098 addr,
1099 FPU_LS_SINGLE_LOW);
1100 break;
1101 }
1102 break;
1103 }
1104 break;
1105 case 59:
1106 switch (inst_get_field(inst, 21, 30)) {
1107 case OP_59_FADDS:
1108 fpd_fadds(&vcpu->arch.fpscr, &cr, fpr_d, fpr_a, fpr_b);
1109 kvmppc_sync_qpr(vcpu, ax_rd);
1110 break;
1111 case OP_59_FSUBS:
1112 fpd_fsubs(&vcpu->arch.fpscr, &cr, fpr_d, fpr_a, fpr_b);
1113 kvmppc_sync_qpr(vcpu, ax_rd);
1114 break;
1115 case OP_59_FDIVS:
1116 fpd_fdivs(&vcpu->arch.fpscr, &cr, fpr_d, fpr_a, fpr_b);
1117 kvmppc_sync_qpr(vcpu, ax_rd);
1118 break;
1119 case OP_59_FRES:
1120 fpd_fres(&vcpu->arch.fpscr, &cr, fpr_d, fpr_b);
1121 kvmppc_sync_qpr(vcpu, ax_rd);
1122 break;
1123 case OP_59_FRSQRTES:
1124 fpd_frsqrtes(&vcpu->arch.fpscr, &cr, fpr_d, fpr_b);
1125 kvmppc_sync_qpr(vcpu, ax_rd);
1126 break;
1127 }
1128 switch (inst_get_field(inst, 26, 30)) {
1129 case OP_59_FMULS:
1130 fpd_fmuls(&vcpu->arch.fpscr, &cr, fpr_d, fpr_a, fpr_c);
1131 kvmppc_sync_qpr(vcpu, ax_rd);
1132 break;
1133 case OP_59_FMSUBS:
1134 fpd_fmsubs(&vcpu->arch.fpscr, &cr, fpr_d, fpr_a, fpr_c, fpr_b);
1135 kvmppc_sync_qpr(vcpu, ax_rd);
1136 break;
1137 case OP_59_FMADDS:
1138 fpd_fmadds(&vcpu->arch.fpscr, &cr, fpr_d, fpr_a, fpr_c, fpr_b);
1139 kvmppc_sync_qpr(vcpu, ax_rd);
1140 break;
1141 case OP_59_FNMSUBS:
1142 fpd_fnmsubs(&vcpu->arch.fpscr, &cr, fpr_d, fpr_a, fpr_c, fpr_b);
1143 kvmppc_sync_qpr(vcpu, ax_rd);
1144 break;
1145 case OP_59_FNMADDS:
1146 fpd_fnmadds(&vcpu->arch.fpscr, &cr, fpr_d, fpr_a, fpr_c, fpr_b);
1147 kvmppc_sync_qpr(vcpu, ax_rd);
1148 break;
1149 }
1150 break;
1151 case 63:
1152 switch (inst_get_field(inst, 21, 30)) {
1153 case OP_63_MTFSB0:
1154 case OP_63_MTFSB1:
1155 case OP_63_MCRFS:
1156 case OP_63_MTFSFI:
1157 /* XXX need to implement */
1158 break;
1159 case OP_63_MFFS:
1160 /* XXX missing CR */
1161 *fpr_d = vcpu->arch.fpscr;
1162 break;
1163 case OP_63_MTFSF:
1164 /* XXX missing fm bits */
1165 /* XXX missing CR */
1166 vcpu->arch.fpscr = *fpr_b;
1167 break;
1168 case OP_63_FCMPU:
1169 {
1170 u32 tmp_cr;
1171 u32 cr0_mask = 0xf0000000;
1172 u32 cr_shift = inst_get_field(inst, 6, 8) * 4;
1173
1174 fpd_fcmpu(&vcpu->arch.fpscr, &tmp_cr, fpr_a, fpr_b);
1175 cr &= ~(cr0_mask >> cr_shift);
1176 cr |= (cr & cr0_mask) >> cr_shift;
1177 break;
1178 }
1179 case OP_63_FCMPO:
1180 {
1181 u32 tmp_cr;
1182 u32 cr0_mask = 0xf0000000;
1183 u32 cr_shift = inst_get_field(inst, 6, 8) * 4;
1184
1185 fpd_fcmpo(&vcpu->arch.fpscr, &tmp_cr, fpr_a, fpr_b);
1186 cr &= ~(cr0_mask >> cr_shift);
1187 cr |= (cr & cr0_mask) >> cr_shift;
1188 break;
1189 }
1190 case OP_63_FNEG:
1191 fpd_fneg(&vcpu->arch.fpscr, &cr, fpr_d, fpr_b);
1192 break;
1193 case OP_63_FMR:
1194 *fpr_d = *fpr_b;
1195 break;
1196 case OP_63_FABS:
1197 fpd_fabs(&vcpu->arch.fpscr, &cr, fpr_d, fpr_b);
1198 break;
1199 case OP_63_FCPSGN:
1200 fpd_fcpsgn(&vcpu->arch.fpscr, &cr, fpr_d, fpr_a, fpr_b);
1201 break;
1202 case OP_63_FDIV:
1203 fpd_fdiv(&vcpu->arch.fpscr, &cr, fpr_d, fpr_a, fpr_b);
1204 break;
1205 case OP_63_FADD:
1206 fpd_fadd(&vcpu->arch.fpscr, &cr, fpr_d, fpr_a, fpr_b);
1207 break;
1208 case OP_63_FSUB:
1209 fpd_fsub(&vcpu->arch.fpscr, &cr, fpr_d, fpr_a, fpr_b);
1210 break;
1211 case OP_63_FCTIW:
1212 fpd_fctiw(&vcpu->arch.fpscr, &cr, fpr_d, fpr_b);
1213 break;
1214 case OP_63_FCTIWZ:
1215 fpd_fctiwz(&vcpu->arch.fpscr, &cr, fpr_d, fpr_b);
1216 break;
1217 case OP_63_FRSP:
1218 fpd_frsp(&vcpu->arch.fpscr, &cr, fpr_d, fpr_b);
1219 kvmppc_sync_qpr(vcpu, ax_rd);
1220 break;
1221 case OP_63_FRSQRTE:
1222 {
1223 double one = 1.0f;
1224
1225 /* fD = sqrt(fB) */
1226 fpd_fsqrt(&vcpu->arch.fpscr, &cr, fpr_d, fpr_b);
1227 /* fD = 1.0f / fD */
1228 fpd_fdiv(&vcpu->arch.fpscr, &cr, fpr_d, (u64*)&one, fpr_d);
1229 break;
1230 }
1231 }
1232 switch (inst_get_field(inst, 26, 30)) {
1233 case OP_63_FMUL:
1234 fpd_fmul(&vcpu->arch.fpscr, &cr, fpr_d, fpr_a, fpr_c);
1235 break;
1236 case OP_63_FSEL:
1237 fpd_fsel(&vcpu->arch.fpscr, &cr, fpr_d, fpr_a, fpr_c, fpr_b);
1238 break;
1239 case OP_63_FMSUB:
1240 fpd_fmsub(&vcpu->arch.fpscr, &cr, fpr_d, fpr_a, fpr_c, fpr_b);
1241 break;
1242 case OP_63_FMADD:
1243 fpd_fmadd(&vcpu->arch.fpscr, &cr, fpr_d, fpr_a, fpr_c, fpr_b);
1244 break;
1245 case OP_63_FNMSUB:
1246 fpd_fnmsub(&vcpu->arch.fpscr, &cr, fpr_d, fpr_a, fpr_c, fpr_b);
1247 break;
1248 case OP_63_FNMADD:
1249 fpd_fnmadd(&vcpu->arch.fpscr, &cr, fpr_d, fpr_a, fpr_c, fpr_b);
1250 break;
1251 }
1252 break;
1253 }
1254
1255#ifdef DEBUG
1256 for (i = 0; i < ARRAY_SIZE(vcpu->arch.fpr); i++) {
1257 u32 f;
1258 kvm_cvt_df(&vcpu->arch.fpr[i], &f, &vcpu->arch.fpscr);
1259 dprintk(KERN_INFO "FPR[%d] = 0x%x\n", i, f);
1260 }
1261#endif
1262
1263 if (rcomp)
1264 kvmppc_set_cr(vcpu, cr);
1265
1266 preempt_enable();
1267
1268 return emulated;
1269}
diff --git a/arch/powerpc/kvm/book3s_64_rmhandlers.S b/arch/powerpc/kvm/book3s_rmhandlers.S
index c83c60ad96c5..506d5c316c96 100644
--- a/arch/powerpc/kvm/book3s_64_rmhandlers.S
+++ b/arch/powerpc/kvm/book3s_rmhandlers.S
@@ -22,7 +22,10 @@
22#include <asm/reg.h> 22#include <asm/reg.h>
23#include <asm/page.h> 23#include <asm/page.h>
24#include <asm/asm-offsets.h> 24#include <asm/asm-offsets.h>
25
26#ifdef CONFIG_PPC_BOOK3S_64
25#include <asm/exception-64s.h> 27#include <asm/exception-64s.h>
28#endif
26 29
27/***************************************************************************** 30/*****************************************************************************
28 * * 31 * *
@@ -30,6 +33,39 @@
30 * * 33 * *
31 ****************************************************************************/ 34 ****************************************************************************/
32 35
36#if defined(CONFIG_PPC_BOOK3S_64)
37
38#define LOAD_SHADOW_VCPU(reg) \
39 mfspr reg, SPRN_SPRG_PACA
40
41#define SHADOW_VCPU_OFF PACA_KVM_SVCPU
42#define MSR_NOIRQ MSR_KERNEL & ~(MSR_IR | MSR_DR)
43#define FUNC(name) GLUE(.,name)
44
45#elif defined(CONFIG_PPC_BOOK3S_32)
46
47#define LOAD_SHADOW_VCPU(reg) \
48 mfspr reg, SPRN_SPRG_THREAD; \
49 lwz reg, THREAD_KVM_SVCPU(reg); \
50 /* PPC32 can have a NULL pointer - let's check for that */ \
51 mtspr SPRN_SPRG_SCRATCH1, r12; /* Save r12 */ \
52 mfcr r12; \
53 cmpwi reg, 0; \
54 bne 1f; \
55 mfspr reg, SPRN_SPRG_SCRATCH0; \
56 mtcr r12; \
57 mfspr r12, SPRN_SPRG_SCRATCH1; \
58 b kvmppc_resume_\intno; \
591:; \
60 mtcr r12; \
61 mfspr r12, SPRN_SPRG_SCRATCH1; \
62 tophys(reg, reg)
63
64#define SHADOW_VCPU_OFF 0
65#define MSR_NOIRQ MSR_KERNEL
66#define FUNC(name) name
67
68#endif
33 69
34.macro INTERRUPT_TRAMPOLINE intno 70.macro INTERRUPT_TRAMPOLINE intno
35 71
@@ -42,19 +78,19 @@ kvmppc_trampoline_\intno:
42 * First thing to do is to find out if we're coming 78 * First thing to do is to find out if we're coming
43 * from a KVM guest or a Linux process. 79 * from a KVM guest or a Linux process.
44 * 80 *
45 * To distinguish, we check a magic byte in the PACA 81 * To distinguish, we check a magic byte in the PACA/current
46 */ 82 */
47 mfspr r13, SPRN_SPRG_PACA /* r13 = PACA */ 83 LOAD_SHADOW_VCPU(r13)
48 std r12, PACA_KVM_SCRATCH0(r13) 84 PPC_STL r12, (SHADOW_VCPU_OFF + SVCPU_SCRATCH0)(r13)
49 mfcr r12 85 mfcr r12
50 stw r12, PACA_KVM_SCRATCH1(r13) 86 stw r12, (SHADOW_VCPU_OFF + SVCPU_SCRATCH1)(r13)
51 lbz r12, PACA_KVM_IN_GUEST(r13) 87 lbz r12, (SHADOW_VCPU_OFF + SVCPU_IN_GUEST)(r13)
52 cmpwi r12, KVM_GUEST_MODE_NONE 88 cmpwi r12, KVM_GUEST_MODE_NONE
53 bne ..kvmppc_handler_hasmagic_\intno 89 bne ..kvmppc_handler_hasmagic_\intno
54 /* No KVM guest? Then jump back to the Linux handler! */ 90 /* No KVM guest? Then jump back to the Linux handler! */
55 lwz r12, PACA_KVM_SCRATCH1(r13) 91 lwz r12, (SHADOW_VCPU_OFF + SVCPU_SCRATCH1)(r13)
56 mtcr r12 92 mtcr r12
57 ld r12, PACA_KVM_SCRATCH0(r13) 93 PPC_LL r12, (SHADOW_VCPU_OFF + SVCPU_SCRATCH0)(r13)
58 mfspr r13, SPRN_SPRG_SCRATCH0 /* r13 = original r13 */ 94 mfspr r13, SPRN_SPRG_SCRATCH0 /* r13 = original r13 */
59 b kvmppc_resume_\intno /* Get back original handler */ 95 b kvmppc_resume_\intno /* Get back original handler */
60 96
@@ -76,9 +112,7 @@ kvmppc_trampoline_\intno:
76INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_SYSTEM_RESET 112INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_SYSTEM_RESET
77INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_MACHINE_CHECK 113INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_MACHINE_CHECK
78INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_DATA_STORAGE 114INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_DATA_STORAGE
79INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_DATA_SEGMENT
80INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_INST_STORAGE 115INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_INST_STORAGE
81INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_INST_SEGMENT
82INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_EXTERNAL 116INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_EXTERNAL
83INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_ALIGNMENT 117INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_ALIGNMENT
84INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_PROGRAM 118INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_PROGRAM
@@ -88,7 +122,14 @@ INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_SYSCALL
88INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_TRACE 122INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_TRACE
89INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_PERFMON 123INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_PERFMON
90INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_ALTIVEC 124INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_ALTIVEC
125
126/* Those are only available on 64 bit machines */
127
128#ifdef CONFIG_PPC_BOOK3S_64
129INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_DATA_SEGMENT
130INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_INST_SEGMENT
91INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_VSX 131INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_VSX
132#endif
92 133
93/* 134/*
94 * Bring us back to the faulting code, but skip the 135 * Bring us back to the faulting code, but skip the
@@ -99,11 +140,11 @@ INTERRUPT_TRAMPOLINE BOOK3S_INTERRUPT_VSX
99 * 140 *
100 * Input Registers: 141 * Input Registers:
101 * 142 *
102 * R12 = free 143 * R12 = free
103 * R13 = PACA 144 * R13 = Shadow VCPU (PACA)
104 * PACA.KVM.SCRATCH0 = guest R12 145 * SVCPU.SCRATCH0 = guest R12
105 * PACA.KVM.SCRATCH1 = guest CR 146 * SVCPU.SCRATCH1 = guest CR
106 * SPRG_SCRATCH0 = guest R13 147 * SPRG_SCRATCH0 = guest R13
107 * 148 *
108 */ 149 */
109kvmppc_handler_skip_ins: 150kvmppc_handler_skip_ins:
@@ -114,9 +155,9 @@ kvmppc_handler_skip_ins:
114 mtsrr0 r12 155 mtsrr0 r12
115 156
116 /* Clean up all state */ 157 /* Clean up all state */
117 lwz r12, PACA_KVM_SCRATCH1(r13) 158 lwz r12, (SHADOW_VCPU_OFF + SVCPU_SCRATCH1)(r13)
118 mtcr r12 159 mtcr r12
119 ld r12, PACA_KVM_SCRATCH0(r13) 160 PPC_LL r12, (SHADOW_VCPU_OFF + SVCPU_SCRATCH0)(r13)
120 mfspr r13, SPRN_SPRG_SCRATCH0 161 mfspr r13, SPRN_SPRG_SCRATCH0
121 162
122 /* And get back into the code */ 163 /* And get back into the code */
@@ -147,41 +188,48 @@ kvmppc_handler_lowmem_trampoline_end:
147 * 188 *
148 * R3 = function 189 * R3 = function
149 * R4 = MSR 190 * R4 = MSR
150 * R5 = CTR 191 * R5 = scratch register
151 * 192 *
152 */ 193 */
153_GLOBAL(kvmppc_rmcall) 194_GLOBAL(kvmppc_rmcall)
154 mtmsr r4 /* Disable relocation, so mtsrr 195 LOAD_REG_IMMEDIATE(r5, MSR_NOIRQ)
196 mtmsr r5 /* Disable relocation and interrupts, so mtsrr
155 doesn't get interrupted */ 197 doesn't get interrupted */
156 mtctr r5 198 sync
157 mtsrr0 r3 199 mtsrr0 r3
158 mtsrr1 r4 200 mtsrr1 r4
159 RFI 201 RFI
160 202
203#if defined(CONFIG_PPC_BOOK3S_32)
204#define STACK_LR INT_FRAME_SIZE+4
205#elif defined(CONFIG_PPC_BOOK3S_64)
206#define STACK_LR _LINK
207#endif
208
161/* 209/*
162 * Activate current's external feature (FPU/Altivec/VSX) 210 * Activate current's external feature (FPU/Altivec/VSX)
163 */ 211 */
164#define define_load_up(what) \ 212#define define_load_up(what) \
165 \ 213 \
166_GLOBAL(kvmppc_load_up_ ## what); \ 214_GLOBAL(kvmppc_load_up_ ## what); \
167 subi r1, r1, INT_FRAME_SIZE; \ 215 PPC_STLU r1, -INT_FRAME_SIZE(r1); \
168 mflr r3; \ 216 mflr r3; \
169 std r3, _LINK(r1); \ 217 PPC_STL r3, STACK_LR(r1); \
170 mfmsr r4; \ 218 PPC_STL r20, _NIP(r1); \
171 std r31, GPR3(r1); \ 219 mfmsr r20; \
172 mr r31, r4; \ 220 LOAD_REG_IMMEDIATE(r3, MSR_DR|MSR_EE); \
173 li r5, MSR_DR; \ 221 andc r3,r20,r3; /* Disable DR,EE */ \
174 oris r5, r5, MSR_EE@h; \ 222 mtmsr r3; \
175 andc r4, r4, r5; \ 223 sync; \
176 mtmsr r4; \ 224 \
177 \ 225 bl FUNC(load_up_ ## what); \
178 bl .load_up_ ## what; \ 226 \
179 \ 227 mtmsr r20; /* Enable DR,EE */ \
180 mtmsr r31; \ 228 sync; \
181 ld r3, _LINK(r1); \ 229 PPC_LL r3, STACK_LR(r1); \
182 ld r31, GPR3(r1); \ 230 PPC_LL r20, _NIP(r1); \
183 addi r1, r1, INT_FRAME_SIZE; \ 231 mtlr r3; \
184 mtlr r3; \ 232 addi r1, r1, INT_FRAME_SIZE; \
185 blr 233 blr
186 234
187define_load_up(fpu) 235define_load_up(fpu)
@@ -194,11 +242,10 @@ define_load_up(vsx)
194 242
195.global kvmppc_trampoline_lowmem 243.global kvmppc_trampoline_lowmem
196kvmppc_trampoline_lowmem: 244kvmppc_trampoline_lowmem:
197 .long kvmppc_handler_lowmem_trampoline - _stext 245 .long kvmppc_handler_lowmem_trampoline - CONFIG_KERNEL_START
198 246
199.global kvmppc_trampoline_enter 247.global kvmppc_trampoline_enter
200kvmppc_trampoline_enter: 248kvmppc_trampoline_enter:
201 .long kvmppc_handler_trampoline_enter - _stext 249 .long kvmppc_handler_trampoline_enter - CONFIG_KERNEL_START
202
203#include "book3s_64_slb.S"
204 250
251#include "book3s_segment.S"
diff --git a/arch/powerpc/kvm/book3s_segment.S b/arch/powerpc/kvm/book3s_segment.S
new file mode 100644
index 000000000000..7c52ed0b7051
--- /dev/null
+++ b/arch/powerpc/kvm/book3s_segment.S
@@ -0,0 +1,259 @@
1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License, version 2, as
4 * published by the Free Software Foundation.
5 *
6 * This program is distributed in the hope that it will be useful,
7 * but WITHOUT ANY WARRANTY; without even the implied warranty of
8 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9 * GNU General Public License for more details.
10 *
11 * You should have received a copy of the GNU General Public License
12 * along with this program; if not, write to the Free Software
13 * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
14 *
15 * Copyright SUSE Linux Products GmbH 2010
16 *
17 * Authors: Alexander Graf <agraf@suse.de>
18 */
19
20/* Real mode helpers */
21
22#if defined(CONFIG_PPC_BOOK3S_64)
23
24#define GET_SHADOW_VCPU(reg) \
25 addi reg, r13, PACA_KVM_SVCPU
26
27#elif defined(CONFIG_PPC_BOOK3S_32)
28
29#define GET_SHADOW_VCPU(reg) \
30 tophys(reg, r2); \
31 lwz reg, (THREAD + THREAD_KVM_SVCPU)(reg); \
32 tophys(reg, reg)
33
34#endif
35
36/* Disable for nested KVM */
37#define USE_QUICK_LAST_INST
38
39
40/* Get helper functions for subarch specific functionality */
41
42#if defined(CONFIG_PPC_BOOK3S_64)
43#include "book3s_64_slb.S"
44#elif defined(CONFIG_PPC_BOOK3S_32)
45#include "book3s_32_sr.S"
46#endif
47
48/******************************************************************************
49 * *
50 * Entry code *
51 * *
52 *****************************************************************************/
53
54.global kvmppc_handler_trampoline_enter
55kvmppc_handler_trampoline_enter:
56
57 /* Required state:
58 *
59 * MSR = ~IR|DR
60 * R13 = PACA
61 * R1 = host R1
62 * R2 = host R2
63 * R10 = guest MSR
64 * all other volatile GPRS = free
65 * SVCPU[CR] = guest CR
66 * SVCPU[XER] = guest XER
67 * SVCPU[CTR] = guest CTR
68 * SVCPU[LR] = guest LR
69 */
70
71 /* r3 = shadow vcpu */
72 GET_SHADOW_VCPU(r3)
73
74 /* Move SRR0 and SRR1 into the respective regs */
75 PPC_LL r9, SVCPU_PC(r3)
76 mtsrr0 r9
77 mtsrr1 r10
78
79 /* Activate guest mode, so faults get handled by KVM */
80 li r11, KVM_GUEST_MODE_GUEST
81 stb r11, SVCPU_IN_GUEST(r3)
82
83 /* Switch to guest segment. This is subarch specific. */
84 LOAD_GUEST_SEGMENTS
85
86 /* Enter guest */
87
88 PPC_LL r4, (SVCPU_CTR)(r3)
89 PPC_LL r5, (SVCPU_LR)(r3)
90 lwz r6, (SVCPU_CR)(r3)
91 lwz r7, (SVCPU_XER)(r3)
92
93 mtctr r4
94 mtlr r5
95 mtcr r6
96 mtxer r7
97
98 PPC_LL r0, (SVCPU_R0)(r3)
99 PPC_LL r1, (SVCPU_R1)(r3)
100 PPC_LL r2, (SVCPU_R2)(r3)
101 PPC_LL r4, (SVCPU_R4)(r3)
102 PPC_LL r5, (SVCPU_R5)(r3)
103 PPC_LL r6, (SVCPU_R6)(r3)
104 PPC_LL r7, (SVCPU_R7)(r3)
105 PPC_LL r8, (SVCPU_R8)(r3)
106 PPC_LL r9, (SVCPU_R9)(r3)
107 PPC_LL r10, (SVCPU_R10)(r3)
108 PPC_LL r11, (SVCPU_R11)(r3)
109 PPC_LL r12, (SVCPU_R12)(r3)
110 PPC_LL r13, (SVCPU_R13)(r3)
111
112 PPC_LL r3, (SVCPU_R3)(r3)
113
114 RFI
115kvmppc_handler_trampoline_enter_end:
116
117
118
119/******************************************************************************
120 * *
121 * Exit code *
122 * *
123 *****************************************************************************/
124
125.global kvmppc_handler_trampoline_exit
126kvmppc_handler_trampoline_exit:
127
128 /* Register usage at this point:
129 *
130 * SPRG_SCRATCH0 = guest R13
131 * R12 = exit handler id
132 * R13 = shadow vcpu - SHADOW_VCPU_OFF [=PACA on PPC64]
133 * SVCPU.SCRATCH0 = guest R12
134 * SVCPU.SCRATCH1 = guest CR
135 *
136 */
137
138 /* Save registers */
139
140 PPC_STL r0, (SHADOW_VCPU_OFF + SVCPU_R0)(r13)
141 PPC_STL r1, (SHADOW_VCPU_OFF + SVCPU_R1)(r13)
142 PPC_STL r2, (SHADOW_VCPU_OFF + SVCPU_R2)(r13)
143 PPC_STL r3, (SHADOW_VCPU_OFF + SVCPU_R3)(r13)
144 PPC_STL r4, (SHADOW_VCPU_OFF + SVCPU_R4)(r13)
145 PPC_STL r5, (SHADOW_VCPU_OFF + SVCPU_R5)(r13)
146 PPC_STL r6, (SHADOW_VCPU_OFF + SVCPU_R6)(r13)
147 PPC_STL r7, (SHADOW_VCPU_OFF + SVCPU_R7)(r13)
148 PPC_STL r8, (SHADOW_VCPU_OFF + SVCPU_R8)(r13)
149 PPC_STL r9, (SHADOW_VCPU_OFF + SVCPU_R9)(r13)
150 PPC_STL r10, (SHADOW_VCPU_OFF + SVCPU_R10)(r13)
151 PPC_STL r11, (SHADOW_VCPU_OFF + SVCPU_R11)(r13)
152
153 /* Restore R1/R2 so we can handle faults */
154 PPC_LL r1, (SHADOW_VCPU_OFF + SVCPU_HOST_R1)(r13)
155 PPC_LL r2, (SHADOW_VCPU_OFF + SVCPU_HOST_R2)(r13)
156
157 /* Save guest PC and MSR */
158 mfsrr0 r3
159 mfsrr1 r4
160
161 PPC_STL r3, (SHADOW_VCPU_OFF + SVCPU_PC)(r13)
162 PPC_STL r4, (SHADOW_VCPU_OFF + SVCPU_SHADOW_SRR1)(r13)
163
164 /* Get scratch'ed off registers */
165 mfspr r9, SPRN_SPRG_SCRATCH0
166 PPC_LL r8, (SHADOW_VCPU_OFF + SVCPU_SCRATCH0)(r13)
167 lwz r7, (SHADOW_VCPU_OFF + SVCPU_SCRATCH1)(r13)
168
169 PPC_STL r9, (SHADOW_VCPU_OFF + SVCPU_R13)(r13)
170 PPC_STL r8, (SHADOW_VCPU_OFF + SVCPU_R12)(r13)
171 stw r7, (SHADOW_VCPU_OFF + SVCPU_CR)(r13)
172
173 /* Save more register state */
174
175 mfxer r5
176 mfdar r6
177 mfdsisr r7
178 mfctr r8
179 mflr r9
180
181 stw r5, (SHADOW_VCPU_OFF + SVCPU_XER)(r13)
182 PPC_STL r6, (SHADOW_VCPU_OFF + SVCPU_FAULT_DAR)(r13)
183 stw r7, (SHADOW_VCPU_OFF + SVCPU_FAULT_DSISR)(r13)
184 PPC_STL r8, (SHADOW_VCPU_OFF + SVCPU_CTR)(r13)
185 PPC_STL r9, (SHADOW_VCPU_OFF + SVCPU_LR)(r13)
186
187 /*
188 * In order for us to easily get the last instruction,
189 * we got the #vmexit at, we exploit the fact that the
190 * virtual layout is still the same here, so we can just
191 * ld from the guest's PC address
192 */
193
194 /* We only load the last instruction when it's safe */
195 cmpwi r12, BOOK3S_INTERRUPT_DATA_STORAGE
196 beq ld_last_inst
197 cmpwi r12, BOOK3S_INTERRUPT_PROGRAM
198 beq ld_last_inst
199 cmpwi r12, BOOK3S_INTERRUPT_ALIGNMENT
200 beq- ld_last_inst
201
202 b no_ld_last_inst
203
204ld_last_inst:
205 /* Save off the guest instruction we're at */
206
207 /* In case lwz faults */
208 li r0, KVM_INST_FETCH_FAILED
209
210#ifdef USE_QUICK_LAST_INST
211
212 /* Set guest mode to 'jump over instruction' so if lwz faults
213 * we'll just continue at the next IP. */
214 li r9, KVM_GUEST_MODE_SKIP
215 stb r9, (SHADOW_VCPU_OFF + SVCPU_IN_GUEST)(r13)
216
217 /* 1) enable paging for data */
218 mfmsr r9
219 ori r11, r9, MSR_DR /* Enable paging for data */
220 mtmsr r11
221 sync
222 /* 2) fetch the instruction */
223 lwz r0, 0(r3)
224 /* 3) disable paging again */
225 mtmsr r9
226 sync
227
228#endif
229 stw r0, (SHADOW_VCPU_OFF + SVCPU_LAST_INST)(r13)
230
231no_ld_last_inst:
232
233 /* Unset guest mode */
234 li r9, KVM_GUEST_MODE_NONE
235 stb r9, (SHADOW_VCPU_OFF + SVCPU_IN_GUEST)(r13)
236
237 /* Switch back to host MMU */
238 LOAD_HOST_SEGMENTS
239
240 /* Register usage at this point:
241 *
242 * R1 = host R1
243 * R2 = host R2
244 * R12 = exit handler id
245 * R13 = shadow vcpu - SHADOW_VCPU_OFF [=PACA on PPC64]
246 * SVCPU.* = guest *
247 *
248 */
249
250 /* RFI into the highmem handler */
251 mfmsr r7
252 ori r7, r7, MSR_IR|MSR_DR|MSR_RI|MSR_ME /* Enable paging */
253 mtsrr1 r7
254 /* Load highmem handler address */
255 PPC_LL r8, (SHADOW_VCPU_OFF + SVCPU_VMHANDLER)(r13)
256 mtsrr0 r8
257
258 RFI
259kvmppc_handler_trampoline_exit_end:
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index 4d686cc6b260..8d4e35f5372c 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -21,6 +21,7 @@
21#include <linux/errno.h> 21#include <linux/errno.h>
22#include <linux/err.h> 22#include <linux/err.h>
23#include <linux/kvm_host.h> 23#include <linux/kvm_host.h>
24#include <linux/gfp.h>
24#include <linux/module.h> 25#include <linux/module.h>
25#include <linux/vmalloc.h> 26#include <linux/vmalloc.h>
26#include <linux/fs.h> 27#include <linux/fs.h>
@@ -132,12 +133,18 @@ void kvmppc_core_queue_external(struct kvm_vcpu *vcpu,
132 kvmppc_booke_queue_irqprio(vcpu, BOOKE_IRQPRIO_EXTERNAL); 133 kvmppc_booke_queue_irqprio(vcpu, BOOKE_IRQPRIO_EXTERNAL);
133} 134}
134 135
136void kvmppc_core_dequeue_external(struct kvm_vcpu *vcpu,
137 struct kvm_interrupt *irq)
138{
139 clear_bit(BOOKE_IRQPRIO_EXTERNAL, &vcpu->arch.pending_exceptions);
140}
141
135/* Deliver the interrupt of the corresponding priority, if possible. */ 142/* Deliver the interrupt of the corresponding priority, if possible. */
136static int kvmppc_booke_irqprio_deliver(struct kvm_vcpu *vcpu, 143static int kvmppc_booke_irqprio_deliver(struct kvm_vcpu *vcpu,
137 unsigned int priority) 144 unsigned int priority)
138{ 145{
139 int allowed = 0; 146 int allowed = 0;
140 ulong msr_mask; 147 ulong uninitialized_var(msr_mask);
141 bool update_esr = false, update_dear = false; 148 bool update_esr = false, update_dear = false;
142 149
143 switch (priority) { 150 switch (priority) {
@@ -552,7 +559,10 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
552int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu, 559int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,
553 struct kvm_translation *tr) 560 struct kvm_translation *tr)
554{ 561{
555 return kvmppc_core_vcpu_translate(vcpu, tr); 562 int r;
563
564 r = kvmppc_core_vcpu_translate(vcpu, tr);
565 return r;
556} 566}
557 567
558int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm, struct kvm_dirty_log *log) 568int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm, struct kvm_dirty_log *log)
diff --git a/arch/powerpc/kvm/e500.c b/arch/powerpc/kvm/e500.c
index efa1198940ab..e8a00b0c4449 100644
--- a/arch/powerpc/kvm/e500.c
+++ b/arch/powerpc/kvm/e500.c
@@ -13,6 +13,7 @@
13 */ 13 */
14 14
15#include <linux/kvm_host.h> 15#include <linux/kvm_host.h>
16#include <linux/slab.h>
16#include <linux/err.h> 17#include <linux/err.h>
17 18
18#include <asm/reg.h> 19#include <asm/reg.h>
@@ -160,10 +161,10 @@ static int __init kvmppc_e500_init(void)
160 flush_icache_range(kvmppc_booke_handlers, 161 flush_icache_range(kvmppc_booke_handlers,
161 kvmppc_booke_handlers + max_ivor + kvmppc_handler_len); 162 kvmppc_booke_handlers + max_ivor + kvmppc_handler_len);
162 163
163 return kvm_init(NULL, sizeof(struct kvmppc_vcpu_e500), THIS_MODULE); 164 return kvm_init(NULL, sizeof(struct kvmppc_vcpu_e500), 0, THIS_MODULE);
164} 165}
165 166
166static void __init kvmppc_e500_exit(void) 167static void __exit kvmppc_e500_exit(void)
167{ 168{
168 kvmppc_booke_exit(); 169 kvmppc_booke_exit();
169} 170}
diff --git a/arch/powerpc/kvm/e500_tlb.c b/arch/powerpc/kvm/e500_tlb.c
index 0d772e6b6318..21011e12caeb 100644
--- a/arch/powerpc/kvm/e500_tlb.c
+++ b/arch/powerpc/kvm/e500_tlb.c
@@ -13,6 +13,7 @@
13 */ 13 */
14 14
15#include <linux/types.h> 15#include <linux/types.h>
16#include <linux/slab.h>
16#include <linux/string.h> 17#include <linux/string.h>
17#include <linux/kvm.h> 18#include <linux/kvm.h>
18#include <linux/kvm_host.h> 19#include <linux/kvm_host.h>
diff --git a/arch/powerpc/kvm/emulate.c b/arch/powerpc/kvm/emulate.c
index cb72a65f4ecc..4568ec386c2a 100644
--- a/arch/powerpc/kvm/emulate.c
+++ b/arch/powerpc/kvm/emulate.c
@@ -38,10 +38,12 @@
38#define OP_31_XOP_LBZX 87 38#define OP_31_XOP_LBZX 87
39#define OP_31_XOP_STWX 151 39#define OP_31_XOP_STWX 151
40#define OP_31_XOP_STBX 215 40#define OP_31_XOP_STBX 215
41#define OP_31_XOP_LBZUX 119
41#define OP_31_XOP_STBUX 247 42#define OP_31_XOP_STBUX 247
42#define OP_31_XOP_LHZX 279 43#define OP_31_XOP_LHZX 279
43#define OP_31_XOP_LHZUX 311 44#define OP_31_XOP_LHZUX 311
44#define OP_31_XOP_MFSPR 339 45#define OP_31_XOP_MFSPR 339
46#define OP_31_XOP_LHAX 343
45#define OP_31_XOP_STHX 407 47#define OP_31_XOP_STHX 407
46#define OP_31_XOP_STHUX 439 48#define OP_31_XOP_STHUX 439
47#define OP_31_XOP_MTSPR 467 49#define OP_31_XOP_MTSPR 467
@@ -62,10 +64,12 @@
62#define OP_STBU 39 64#define OP_STBU 39
63#define OP_LHZ 40 65#define OP_LHZ 40
64#define OP_LHZU 41 66#define OP_LHZU 41
67#define OP_LHA 42
68#define OP_LHAU 43
65#define OP_STH 44 69#define OP_STH 44
66#define OP_STHU 45 70#define OP_STHU 45
67 71
68#ifdef CONFIG_PPC64 72#ifdef CONFIG_PPC_BOOK3S
69static int kvmppc_dec_enabled(struct kvm_vcpu *vcpu) 73static int kvmppc_dec_enabled(struct kvm_vcpu *vcpu)
70{ 74{
71 return 1; 75 return 1;
@@ -82,7 +86,7 @@ void kvmppc_emulate_dec(struct kvm_vcpu *vcpu)
82 unsigned long dec_nsec; 86 unsigned long dec_nsec;
83 87
84 pr_debug("mtDEC: %x\n", vcpu->arch.dec); 88 pr_debug("mtDEC: %x\n", vcpu->arch.dec);
85#ifdef CONFIG_PPC64 89#ifdef CONFIG_PPC_BOOK3S
86 /* mtdec lowers the interrupt line when positive. */ 90 /* mtdec lowers the interrupt line when positive. */
87 kvmppc_core_dequeue_dec(vcpu); 91 kvmppc_core_dequeue_dec(vcpu);
88 92
@@ -128,7 +132,7 @@ void kvmppc_emulate_dec(struct kvm_vcpu *vcpu)
128 * from opcode tables in the future. */ 132 * from opcode tables in the future. */
129int kvmppc_emulate_instruction(struct kvm_run *run, struct kvm_vcpu *vcpu) 133int kvmppc_emulate_instruction(struct kvm_run *run, struct kvm_vcpu *vcpu)
130{ 134{
131 u32 inst = vcpu->arch.last_inst; 135 u32 inst = kvmppc_get_last_inst(vcpu);
132 u32 ea; 136 u32 ea;
133 int ra; 137 int ra;
134 int rb; 138 int rb;
@@ -143,13 +147,9 @@ int kvmppc_emulate_instruction(struct kvm_run *run, struct kvm_vcpu *vcpu)
143 147
144 pr_debug(KERN_INFO "Emulating opcode %d / %d\n", get_op(inst), get_xop(inst)); 148 pr_debug(KERN_INFO "Emulating opcode %d / %d\n", get_op(inst), get_xop(inst));
145 149
146 /* Try again next time */
147 if (inst == KVM_INST_FETCH_FAILED)
148 return EMULATE_DONE;
149
150 switch (get_op(inst)) { 150 switch (get_op(inst)) {
151 case OP_TRAP: 151 case OP_TRAP:
152#ifdef CONFIG_PPC64 152#ifdef CONFIG_PPC_BOOK3S
153 case OP_TRAP_64: 153 case OP_TRAP_64:
154 kvmppc_core_queue_program(vcpu, SRR1_PROGTRAP); 154 kvmppc_core_queue_program(vcpu, SRR1_PROGTRAP);
155#else 155#else
@@ -171,6 +171,19 @@ int kvmppc_emulate_instruction(struct kvm_run *run, struct kvm_vcpu *vcpu)
171 emulated = kvmppc_handle_load(run, vcpu, rt, 1, 1); 171 emulated = kvmppc_handle_load(run, vcpu, rt, 1, 1);
172 break; 172 break;
173 173
174 case OP_31_XOP_LBZUX:
175 rt = get_rt(inst);
176 ra = get_ra(inst);
177 rb = get_rb(inst);
178
179 ea = kvmppc_get_gpr(vcpu, rb);
180 if (ra)
181 ea += kvmppc_get_gpr(vcpu, ra);
182
183 emulated = kvmppc_handle_load(run, vcpu, rt, 1, 1);
184 kvmppc_set_gpr(vcpu, ra, ea);
185 break;
186
174 case OP_31_XOP_STWX: 187 case OP_31_XOP_STWX:
175 rs = get_rs(inst); 188 rs = get_rs(inst);
176 emulated = kvmppc_handle_store(run, vcpu, 189 emulated = kvmppc_handle_store(run, vcpu,
@@ -200,6 +213,11 @@ int kvmppc_emulate_instruction(struct kvm_run *run, struct kvm_vcpu *vcpu)
200 kvmppc_set_gpr(vcpu, rs, ea); 213 kvmppc_set_gpr(vcpu, rs, ea);
201 break; 214 break;
202 215
216 case OP_31_XOP_LHAX:
217 rt = get_rt(inst);
218 emulated = kvmppc_handle_loads(run, vcpu, rt, 2, 1);
219 break;
220
203 case OP_31_XOP_LHZX: 221 case OP_31_XOP_LHZX:
204 rt = get_rt(inst); 222 rt = get_rt(inst);
205 emulated = kvmppc_handle_load(run, vcpu, rt, 2, 1); 223 emulated = kvmppc_handle_load(run, vcpu, rt, 2, 1);
@@ -450,6 +468,18 @@ int kvmppc_emulate_instruction(struct kvm_run *run, struct kvm_vcpu *vcpu)
450 kvmppc_set_gpr(vcpu, ra, vcpu->arch.paddr_accessed); 468 kvmppc_set_gpr(vcpu, ra, vcpu->arch.paddr_accessed);
451 break; 469 break;
452 470
471 case OP_LHA:
472 rt = get_rt(inst);
473 emulated = kvmppc_handle_loads(run, vcpu, rt, 2, 1);
474 break;
475
476 case OP_LHAU:
477 ra = get_ra(inst);
478 rt = get_rt(inst);
479 emulated = kvmppc_handle_loads(run, vcpu, rt, 2, 1);
480 kvmppc_set_gpr(vcpu, ra, vcpu->arch.paddr_accessed);
481 break;
482
453 case OP_STH: 483 case OP_STH:
454 rs = get_rs(inst); 484 rs = get_rs(inst);
455 emulated = kvmppc_handle_store(run, vcpu, 485 emulated = kvmppc_handle_store(run, vcpu,
@@ -472,7 +502,9 @@ int kvmppc_emulate_instruction(struct kvm_run *run, struct kvm_vcpu *vcpu)
472 502
473 if (emulated == EMULATE_FAIL) { 503 if (emulated == EMULATE_FAIL) {
474 emulated = kvmppc_core_emulate_op(run, vcpu, inst, &advance); 504 emulated = kvmppc_core_emulate_op(run, vcpu, inst, &advance);
475 if (emulated == EMULATE_FAIL) { 505 if (emulated == EMULATE_AGAIN) {
506 advance = 0;
507 } else if (emulated == EMULATE_FAIL) {
476 advance = 0; 508 advance = 0;
477 printk(KERN_ERR "Couldn't emulate instruction 0x%08x " 509 printk(KERN_ERR "Couldn't emulate instruction 0x%08x "
478 "(op %d xop %d)\n", inst, get_op(inst), get_xop(inst)); 510 "(op %d xop %d)\n", inst, get_op(inst), get_xop(inst));
@@ -480,10 +512,11 @@ int kvmppc_emulate_instruction(struct kvm_run *run, struct kvm_vcpu *vcpu)
480 } 512 }
481 } 513 }
482 514
483 trace_kvm_ppc_instr(inst, vcpu->arch.pc, emulated); 515 trace_kvm_ppc_instr(inst, kvmppc_get_pc(vcpu), emulated);
484 516
517 /* Advance past emulated instruction. */
485 if (advance) 518 if (advance)
486 vcpu->arch.pc += 4; /* Advance past emulated instruction. */ 519 kvmppc_set_pc(vcpu, kvmppc_get_pc(vcpu) + 4);
487 520
488 return emulated; 521 return emulated;
489} 522}
diff --git a/arch/powerpc/kvm/fpu.S b/arch/powerpc/kvm/fpu.S
new file mode 100644
index 000000000000..cb34bbe16113
--- /dev/null
+++ b/arch/powerpc/kvm/fpu.S
@@ -0,0 +1,291 @@
1/*
2 * FPU helper code to use FPU operations from inside the kernel
3 *
4 * Copyright (C) 2010 Alexander Graf (agraf@suse.de)
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
9 * 2 of the License, or (at your option) any later version.
10 *
11 */
12
13#include <asm/reg.h>
14#include <asm/page.h>
15#include <asm/mmu.h>
16#include <asm/pgtable.h>
17#include <asm/cputable.h>
18#include <asm/cache.h>
19#include <asm/thread_info.h>
20#include <asm/ppc_asm.h>
21#include <asm/asm-offsets.h>
22
23/* Instructions operating on single parameters */
24
25/*
26 * Single operation with one input operand
27 *
28 * R3 = (double*)&fpscr
29 * R4 = (short*)&result
30 * R5 = (short*)&param1
31 */
32#define FPS_ONE_IN(name) \
33_GLOBAL(fps_ ## name); \
34 lfd 0,0(r3); /* load up fpscr value */ \
35 MTFSF_L(0); \
36 lfs 0,0(r5); \
37 \
38 name 0,0; \
39 \
40 stfs 0,0(r4); \
41 mffs 0; \
42 stfd 0,0(r3); /* save new fpscr value */ \
43 blr
44
45/*
46 * Single operation with two input operands
47 *
48 * R3 = (double*)&fpscr
49 * R4 = (short*)&result
50 * R5 = (short*)&param1
51 * R6 = (short*)&param2
52 */
53#define FPS_TWO_IN(name) \
54_GLOBAL(fps_ ## name); \
55 lfd 0,0(r3); /* load up fpscr value */ \
56 MTFSF_L(0); \
57 lfs 0,0(r5); \
58 lfs 1,0(r6); \
59 \
60 name 0,0,1; \
61 \
62 stfs 0,0(r4); \
63 mffs 0; \
64 stfd 0,0(r3); /* save new fpscr value */ \
65 blr
66
67/*
68 * Single operation with three input operands
69 *
70 * R3 = (double*)&fpscr
71 * R4 = (short*)&result
72 * R5 = (short*)&param1
73 * R6 = (short*)&param2
74 * R7 = (short*)&param3
75 */
76#define FPS_THREE_IN(name) \
77_GLOBAL(fps_ ## name); \
78 lfd 0,0(r3); /* load up fpscr value */ \
79 MTFSF_L(0); \
80 lfs 0,0(r5); \
81 lfs 1,0(r6); \
82 lfs 2,0(r7); \
83 \
84 name 0,0,1,2; \
85 \
86 stfs 0,0(r4); \
87 mffs 0; \
88 stfd 0,0(r3); /* save new fpscr value */ \
89 blr
90
91FPS_ONE_IN(fres)
92FPS_ONE_IN(frsqrte)
93FPS_ONE_IN(fsqrts)
94FPS_TWO_IN(fadds)
95FPS_TWO_IN(fdivs)
96FPS_TWO_IN(fmuls)
97FPS_TWO_IN(fsubs)
98FPS_THREE_IN(fmadds)
99FPS_THREE_IN(fmsubs)
100FPS_THREE_IN(fnmadds)
101FPS_THREE_IN(fnmsubs)
102FPS_THREE_IN(fsel)
103
104
105/* Instructions operating on double parameters */
106
107/*
108 * Beginning of double instruction processing
109 *
110 * R3 = (double*)&fpscr
111 * R4 = (u32*)&cr
112 * R5 = (double*)&result
113 * R6 = (double*)&param1
114 * R7 = (double*)&param2 [load_two]
115 * R8 = (double*)&param3 [load_three]
116 * LR = instruction call function
117 */
118fpd_load_three:
119 lfd 2,0(r8) /* load param3 */
120fpd_load_two:
121 lfd 1,0(r7) /* load param2 */
122fpd_load_one:
123 lfd 0,0(r6) /* load param1 */
124fpd_load_none:
125 lfd 3,0(r3) /* load up fpscr value */
126 MTFSF_L(3)
127 lwz r6, 0(r4) /* load cr */
128 mtcr r6
129 blr
130
131/*
132 * End of double instruction processing
133 *
134 * R3 = (double*)&fpscr
135 * R4 = (u32*)&cr
136 * R5 = (double*)&result
137 * LR = caller of instruction call function
138 */
139fpd_return:
140 mfcr r6
141 stfd 0,0(r5) /* save result */
142 mffs 0
143 stfd 0,0(r3) /* save new fpscr value */
144 stw r6,0(r4) /* save new cr value */
145 blr
146
147/*
148 * Double operation with no input operand
149 *
150 * R3 = (double*)&fpscr
151 * R4 = (u32*)&cr
152 * R5 = (double*)&result
153 */
154#define FPD_NONE_IN(name) \
155_GLOBAL(fpd_ ## name); \
156 mflr r12; \
157 bl fpd_load_none; \
158 mtlr r12; \
159 \
160 name. 0; /* call instruction */ \
161 b fpd_return
162
163/*
164 * Double operation with one input operand
165 *
166 * R3 = (double*)&fpscr
167 * R4 = (u32*)&cr
168 * R5 = (double*)&result
169 * R6 = (double*)&param1
170 */
171#define FPD_ONE_IN(name) \
172_GLOBAL(fpd_ ## name); \
173 mflr r12; \
174 bl fpd_load_one; \
175 mtlr r12; \
176 \
177 name. 0,0; /* call instruction */ \
178 b fpd_return
179
180/*
181 * Double operation with two input operands
182 *
183 * R3 = (double*)&fpscr
184 * R4 = (u32*)&cr
185 * R5 = (double*)&result
186 * R6 = (double*)&param1
187 * R7 = (double*)&param2
188 * R8 = (double*)&param3
189 */
190#define FPD_TWO_IN(name) \
191_GLOBAL(fpd_ ## name); \
192 mflr r12; \
193 bl fpd_load_two; \
194 mtlr r12; \
195 \
196 name. 0,0,1; /* call instruction */ \
197 b fpd_return
198
199/*
200 * CR Double operation with two input operands
201 *
202 * R3 = (double*)&fpscr
203 * R4 = (u32*)&cr
204 * R5 = (double*)&param1
205 * R6 = (double*)&param2
206 * R7 = (double*)&param3
207 */
208#define FPD_TWO_IN_CR(name) \
209_GLOBAL(fpd_ ## name); \
210 lfd 1,0(r6); /* load param2 */ \
211 lfd 0,0(r5); /* load param1 */ \
212 lfd 3,0(r3); /* load up fpscr value */ \
213 MTFSF_L(3); \
214 lwz r6, 0(r4); /* load cr */ \
215 mtcr r6; \
216 \
217 name 0,0,1; /* call instruction */ \
218 mfcr r6; \
219 mffs 0; \
220 stfd 0,0(r3); /* save new fpscr value */ \
221 stw r6,0(r4); /* save new cr value */ \
222 blr
223
224/*
225 * Double operation with three input operands
226 *
227 * R3 = (double*)&fpscr
228 * R4 = (u32*)&cr
229 * R5 = (double*)&result
230 * R6 = (double*)&param1
231 * R7 = (double*)&param2
232 * R8 = (double*)&param3
233 */
234#define FPD_THREE_IN(name) \
235_GLOBAL(fpd_ ## name); \
236 mflr r12; \
237 bl fpd_load_three; \
238 mtlr r12; \
239 \
240 name. 0,0,1,2; /* call instruction */ \
241 b fpd_return
242
243FPD_ONE_IN(fsqrts)
244FPD_ONE_IN(frsqrtes)
245FPD_ONE_IN(fres)
246FPD_ONE_IN(frsp)
247FPD_ONE_IN(fctiw)
248FPD_ONE_IN(fctiwz)
249FPD_ONE_IN(fsqrt)
250FPD_ONE_IN(fre)
251FPD_ONE_IN(frsqrte)
252FPD_ONE_IN(fneg)
253FPD_ONE_IN(fabs)
254FPD_TWO_IN(fadds)
255FPD_TWO_IN(fsubs)
256FPD_TWO_IN(fdivs)
257FPD_TWO_IN(fmuls)
258FPD_TWO_IN_CR(fcmpu)
259FPD_TWO_IN(fcpsgn)
260FPD_TWO_IN(fdiv)
261FPD_TWO_IN(fadd)
262FPD_TWO_IN(fmul)
263FPD_TWO_IN_CR(fcmpo)
264FPD_TWO_IN(fsub)
265FPD_THREE_IN(fmsubs)
266FPD_THREE_IN(fmadds)
267FPD_THREE_IN(fnmsubs)
268FPD_THREE_IN(fnmadds)
269FPD_THREE_IN(fsel)
270FPD_THREE_IN(fmsub)
271FPD_THREE_IN(fmadd)
272FPD_THREE_IN(fnmsub)
273FPD_THREE_IN(fnmadd)
274
275_GLOBAL(kvm_cvt_fd)
276 lfd 0,0(r5) /* load up fpscr value */
277 MTFSF_L(0)
278 lfs 0,0(r3)
279 stfd 0,0(r4)
280 mffs 0
281 stfd 0,0(r5) /* save new fpscr value */
282 blr
283
284_GLOBAL(kvm_cvt_df)
285 lfd 0,0(r5) /* load up fpscr value */
286 MTFSF_L(0)
287 lfd 0,0(r3)
288 stfs 0,0(r4)
289 mffs 0
290 stfd 0,0(r5) /* save new fpscr value */
291 blr
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 51aedd7f16bc..72a4ad86ee91 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -25,6 +25,7 @@
25#include <linux/vmalloc.h> 25#include <linux/vmalloc.h>
26#include <linux/hrtimer.h> 26#include <linux/hrtimer.h>
27#include <linux/fs.h> 27#include <linux/fs.h>
28#include <linux/slab.h>
28#include <asm/cputable.h> 29#include <asm/cputable.h>
29#include <asm/uaccess.h> 30#include <asm/uaccess.h>
30#include <asm/kvm_ppc.h> 31#include <asm/kvm_ppc.h>
@@ -35,11 +36,6 @@
35#define CREATE_TRACE_POINTS 36#define CREATE_TRACE_POINTS
36#include "trace.h" 37#include "trace.h"
37 38
38gfn_t unalias_gfn(struct kvm *kvm, gfn_t gfn)
39{
40 return gfn;
41}
42
43int kvm_arch_vcpu_runnable(struct kvm_vcpu *v) 39int kvm_arch_vcpu_runnable(struct kvm_vcpu *v)
44{ 40{
45 return !(v->arch.msr & MSR_WE) || !!(v->arch.pending_exceptions); 41 return !(v->arch.msr & MSR_WE) || !!(v->arch.pending_exceptions);
@@ -69,7 +65,7 @@ int kvmppc_emulate_mmio(struct kvm_run *run, struct kvm_vcpu *vcpu)
69 case EMULATE_FAIL: 65 case EMULATE_FAIL:
70 /* XXX Deliver Program interrupt to guest. */ 66 /* XXX Deliver Program interrupt to guest. */
71 printk(KERN_EMERG "%s: emulation failed (%08x)\n", __func__, 67 printk(KERN_EMERG "%s: emulation failed (%08x)\n", __func__,
72 vcpu->arch.last_inst); 68 kvmppc_get_last_inst(vcpu));
73 r = RESUME_HOST; 69 r = RESUME_HOST;
74 break; 70 break;
75 default: 71 default:
@@ -147,6 +143,10 @@ int kvm_dev_ioctl_check_extension(long ext)
147 143
148 switch (ext) { 144 switch (ext) {
149 case KVM_CAP_PPC_SEGSTATE: 145 case KVM_CAP_PPC_SEGSTATE:
146 case KVM_CAP_PPC_PAIRED_SINGLES:
147 case KVM_CAP_PPC_UNSET_IRQ:
148 case KVM_CAP_ENABLE_CAP:
149 case KVM_CAP_PPC_OSI:
150 r = 1; 150 r = 1;
151 break; 151 break;
152 case KVM_CAP_COALESCED_MMIO: 152 case KVM_CAP_COALESCED_MMIO:
@@ -192,12 +192,17 @@ struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm, unsigned int id)
192{ 192{
193 struct kvm_vcpu *vcpu; 193 struct kvm_vcpu *vcpu;
194 vcpu = kvmppc_core_vcpu_create(kvm, id); 194 vcpu = kvmppc_core_vcpu_create(kvm, id);
195 kvmppc_create_vcpu_debugfs(vcpu, id); 195 if (!IS_ERR(vcpu))
196 kvmppc_create_vcpu_debugfs(vcpu, id);
196 return vcpu; 197 return vcpu;
197} 198}
198 199
199void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu) 200void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu)
200{ 201{
202 /* Make sure we're not using the vcpu anymore */
203 hrtimer_cancel(&vcpu->arch.dec_timer);
204 tasklet_kill(&vcpu->arch.tasklet);
205
201 kvmppc_remove_vcpu_debugfs(vcpu); 206 kvmppc_remove_vcpu_debugfs(vcpu);
202 kvmppc_core_vcpu_free(vcpu); 207 kvmppc_core_vcpu_free(vcpu);
203} 208}
@@ -277,7 +282,7 @@ static void kvmppc_complete_dcr_load(struct kvm_vcpu *vcpu,
277static void kvmppc_complete_mmio_load(struct kvm_vcpu *vcpu, 282static void kvmppc_complete_mmio_load(struct kvm_vcpu *vcpu,
278 struct kvm_run *run) 283 struct kvm_run *run)
279{ 284{
280 ulong gpr; 285 u64 uninitialized_var(gpr);
281 286
282 if (run->mmio.len > sizeof(gpr)) { 287 if (run->mmio.len > sizeof(gpr)) {
283 printk(KERN_ERR "bad MMIO length: %d\n", run->mmio.len); 288 printk(KERN_ERR "bad MMIO length: %d\n", run->mmio.len);
@@ -286,6 +291,7 @@ static void kvmppc_complete_mmio_load(struct kvm_vcpu *vcpu,
286 291
287 if (vcpu->arch.mmio_is_bigendian) { 292 if (vcpu->arch.mmio_is_bigendian) {
288 switch (run->mmio.len) { 293 switch (run->mmio.len) {
294 case 8: gpr = *(u64 *)run->mmio.data; break;
289 case 4: gpr = *(u32 *)run->mmio.data; break; 295 case 4: gpr = *(u32 *)run->mmio.data; break;
290 case 2: gpr = *(u16 *)run->mmio.data; break; 296 case 2: gpr = *(u16 *)run->mmio.data; break;
291 case 1: gpr = *(u8 *)run->mmio.data; break; 297 case 1: gpr = *(u8 *)run->mmio.data; break;
@@ -299,7 +305,43 @@ static void kvmppc_complete_mmio_load(struct kvm_vcpu *vcpu,
299 } 305 }
300 } 306 }
301 307
308 if (vcpu->arch.mmio_sign_extend) {
309 switch (run->mmio.len) {
310#ifdef CONFIG_PPC64
311 case 4:
312 gpr = (s64)(s32)gpr;
313 break;
314#endif
315 case 2:
316 gpr = (s64)(s16)gpr;
317 break;
318 case 1:
319 gpr = (s64)(s8)gpr;
320 break;
321 }
322 }
323
302 kvmppc_set_gpr(vcpu, vcpu->arch.io_gpr, gpr); 324 kvmppc_set_gpr(vcpu, vcpu->arch.io_gpr, gpr);
325
326 switch (vcpu->arch.io_gpr & KVM_REG_EXT_MASK) {
327 case KVM_REG_GPR:
328 kvmppc_set_gpr(vcpu, vcpu->arch.io_gpr, gpr);
329 break;
330 case KVM_REG_FPR:
331 vcpu->arch.fpr[vcpu->arch.io_gpr & KVM_REG_MASK] = gpr;
332 break;
333#ifdef CONFIG_PPC_BOOK3S
334 case KVM_REG_QPR:
335 vcpu->arch.qpr[vcpu->arch.io_gpr & KVM_REG_MASK] = gpr;
336 break;
337 case KVM_REG_FQPR:
338 vcpu->arch.fpr[vcpu->arch.io_gpr & KVM_REG_MASK] = gpr;
339 vcpu->arch.qpr[vcpu->arch.io_gpr & KVM_REG_MASK] = gpr;
340 break;
341#endif
342 default:
343 BUG();
344 }
303} 345}
304 346
305int kvmppc_handle_load(struct kvm_run *run, struct kvm_vcpu *vcpu, 347int kvmppc_handle_load(struct kvm_run *run, struct kvm_vcpu *vcpu,
@@ -318,12 +360,25 @@ int kvmppc_handle_load(struct kvm_run *run, struct kvm_vcpu *vcpu,
318 vcpu->arch.mmio_is_bigendian = is_bigendian; 360 vcpu->arch.mmio_is_bigendian = is_bigendian;
319 vcpu->mmio_needed = 1; 361 vcpu->mmio_needed = 1;
320 vcpu->mmio_is_write = 0; 362 vcpu->mmio_is_write = 0;
363 vcpu->arch.mmio_sign_extend = 0;
321 364
322 return EMULATE_DO_MMIO; 365 return EMULATE_DO_MMIO;
323} 366}
324 367
368/* Same as above, but sign extends */
369int kvmppc_handle_loads(struct kvm_run *run, struct kvm_vcpu *vcpu,
370 unsigned int rt, unsigned int bytes, int is_bigendian)
371{
372 int r;
373
374 r = kvmppc_handle_load(run, vcpu, rt, bytes, is_bigendian);
375 vcpu->arch.mmio_sign_extend = 1;
376
377 return r;
378}
379
325int kvmppc_handle_store(struct kvm_run *run, struct kvm_vcpu *vcpu, 380int kvmppc_handle_store(struct kvm_run *run, struct kvm_vcpu *vcpu,
326 u32 val, unsigned int bytes, int is_bigendian) 381 u64 val, unsigned int bytes, int is_bigendian)
327{ 382{
328 void *data = run->mmio.data; 383 void *data = run->mmio.data;
329 384
@@ -341,6 +396,7 @@ int kvmppc_handle_store(struct kvm_run *run, struct kvm_vcpu *vcpu,
341 /* Store the value at the lowest bytes in 'data'. */ 396 /* Store the value at the lowest bytes in 'data'. */
342 if (is_bigendian) { 397 if (is_bigendian) {
343 switch (bytes) { 398 switch (bytes) {
399 case 8: *(u64 *)data = val; break;
344 case 4: *(u32 *)data = val; break; 400 case 4: *(u32 *)data = val; break;
345 case 2: *(u16 *)data = val; break; 401 case 2: *(u16 *)data = val; break;
346 case 1: *(u8 *)data = val; break; 402 case 1: *(u8 *)data = val; break;
@@ -362,8 +418,6 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
362 int r; 418 int r;
363 sigset_t sigsaved; 419 sigset_t sigsaved;
364 420
365 vcpu_load(vcpu);
366
367 if (vcpu->sigset_active) 421 if (vcpu->sigset_active)
368 sigprocmask(SIG_SETMASK, &vcpu->sigset, &sigsaved); 422 sigprocmask(SIG_SETMASK, &vcpu->sigset, &sigsaved);
369 423
@@ -375,6 +429,13 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
375 if (!vcpu->arch.dcr_is_write) 429 if (!vcpu->arch.dcr_is_write)
376 kvmppc_complete_dcr_load(vcpu, run); 430 kvmppc_complete_dcr_load(vcpu, run);
377 vcpu->arch.dcr_needed = 0; 431 vcpu->arch.dcr_needed = 0;
432 } else if (vcpu->arch.osi_needed) {
433 u64 *gprs = run->osi.gprs;
434 int i;
435
436 for (i = 0; i < 32; i++)
437 kvmppc_set_gpr(vcpu, i, gprs[i]);
438 vcpu->arch.osi_needed = 0;
378 } 439 }
379 440
380 kvmppc_core_deliver_interrupts(vcpu); 441 kvmppc_core_deliver_interrupts(vcpu);
@@ -388,14 +449,15 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
388 if (vcpu->sigset_active) 449 if (vcpu->sigset_active)
389 sigprocmask(SIG_SETMASK, &sigsaved, NULL); 450 sigprocmask(SIG_SETMASK, &sigsaved, NULL);
390 451
391 vcpu_put(vcpu);
392
393 return r; 452 return r;
394} 453}
395 454
396int kvm_vcpu_ioctl_interrupt(struct kvm_vcpu *vcpu, struct kvm_interrupt *irq) 455int kvm_vcpu_ioctl_interrupt(struct kvm_vcpu *vcpu, struct kvm_interrupt *irq)
397{ 456{
398 kvmppc_core_queue_external(vcpu, irq); 457 if (irq->irq == KVM_INTERRUPT_UNSET)
458 kvmppc_core_dequeue_external(vcpu, irq);
459 else
460 kvmppc_core_queue_external(vcpu, irq);
399 461
400 if (waitqueue_active(&vcpu->wq)) { 462 if (waitqueue_active(&vcpu->wq)) {
401 wake_up_interruptible(&vcpu->wq); 463 wake_up_interruptible(&vcpu->wq);
@@ -405,6 +467,27 @@ int kvm_vcpu_ioctl_interrupt(struct kvm_vcpu *vcpu, struct kvm_interrupt *irq)
405 return 0; 467 return 0;
406} 468}
407 469
470static int kvm_vcpu_ioctl_enable_cap(struct kvm_vcpu *vcpu,
471 struct kvm_enable_cap *cap)
472{
473 int r;
474
475 if (cap->flags)
476 return -EINVAL;
477
478 switch (cap->cap) {
479 case KVM_CAP_PPC_OSI:
480 r = 0;
481 vcpu->arch.osi_enabled = true;
482 break;
483 default:
484 r = -EINVAL;
485 break;
486 }
487
488 return r;
489}
490
408int kvm_arch_vcpu_ioctl_get_mpstate(struct kvm_vcpu *vcpu, 491int kvm_arch_vcpu_ioctl_get_mpstate(struct kvm_vcpu *vcpu,
409 struct kvm_mp_state *mp_state) 492 struct kvm_mp_state *mp_state)
410{ 493{
@@ -431,6 +514,16 @@ long kvm_arch_vcpu_ioctl(struct file *filp,
431 if (copy_from_user(&irq, argp, sizeof(irq))) 514 if (copy_from_user(&irq, argp, sizeof(irq)))
432 goto out; 515 goto out;
433 r = kvm_vcpu_ioctl_interrupt(vcpu, &irq); 516 r = kvm_vcpu_ioctl_interrupt(vcpu, &irq);
517 goto out;
518 }
519
520 case KVM_ENABLE_CAP:
521 {
522 struct kvm_enable_cap cap;
523 r = -EFAULT;
524 if (copy_from_user(&cap, argp, sizeof(cap)))
525 goto out;
526 r = kvm_vcpu_ioctl_enable_cap(vcpu, &cap);
434 break; 527 break;
435 } 528 }
436 default: 529 default:
diff --git a/arch/powerpc/lib/Makefile b/arch/powerpc/lib/Makefile
index 3040dac18a37..111da1c03a11 100644
--- a/arch/powerpc/lib/Makefile
+++ b/arch/powerpc/lib/Makefile
@@ -12,8 +12,8 @@ CFLAGS_REMOVE_code-patching.o = -pg
12CFLAGS_REMOVE_feature-fixups.o = -pg 12CFLAGS_REMOVE_feature-fixups.o = -pg
13 13
14obj-y := string.o alloc.o \ 14obj-y := string.o alloc.o \
15 checksum_$(CONFIG_WORD_SIZE).o 15 checksum_$(CONFIG_WORD_SIZE).o crtsavres.o
16obj-$(CONFIG_PPC32) += div64.o copy_32.o crtsavres.o 16obj-$(CONFIG_PPC32) += div64.o copy_32.o
17obj-$(CONFIG_HAS_IOMEM) += devres.o 17obj-$(CONFIG_HAS_IOMEM) += devres.o
18 18
19obj-$(CONFIG_PPC64) += copypage_64.o copyuser_64.o \ 19obj-$(CONFIG_PPC64) += copypage_64.o copyuser_64.o \
diff --git a/arch/powerpc/lib/crtsavres.S b/arch/powerpc/lib/crtsavres.S
index 70a9cd8a3008..1c893f05d224 100644
--- a/arch/powerpc/lib/crtsavres.S
+++ b/arch/powerpc/lib/crtsavres.S
@@ -6,6 +6,7 @@
6 * Written By Michael Meissner 6 * Written By Michael Meissner
7 * 7 *
8 * Based on gcc/config/rs6000/crtsavres.asm from gcc 8 * Based on gcc/config/rs6000/crtsavres.asm from gcc
9 * 64 bit additions from reading the PPC elf64abi document.
9 * 10 *
10 * This file is free software; you can redistribute it and/or modify it 11 * This file is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the 12 * under the terms of the GNU General Public License as published by the
@@ -44,6 +45,8 @@
44 45
45#ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE 46#ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
46 47
48#ifndef CONFIG_PPC64
49
47/* Routines for saving integer registers, called by the compiler. */ 50/* Routines for saving integer registers, called by the compiler. */
48/* Called with r11 pointing to the stack header word of the caller of the */ 51/* Called with r11 pointing to the stack header word of the caller of the */
49/* function, just beyond the end of the integer save area. */ 52/* function, just beyond the end of the integer save area. */
@@ -226,4 +229,130 @@ _GLOBAL(_rest32gpr_31_x)
226 mtlr 0 229 mtlr 0
227 mr 1,11 230 mr 1,11
228 blr 231 blr
232
233#else /* CONFIG_PPC64 */
234
235.globl _savegpr0_14
236_savegpr0_14:
237 std r14,-144(r1)
238.globl _savegpr0_15
239_savegpr0_15:
240 std r15,-136(r1)
241.globl _savegpr0_16
242_savegpr0_16:
243 std r16,-128(r1)
244.globl _savegpr0_17
245_savegpr0_17:
246 std r17,-120(r1)
247.globl _savegpr0_18
248_savegpr0_18:
249 std r18,-112(r1)
250.globl _savegpr0_19
251_savegpr0_19:
252 std r19,-104(r1)
253.globl _savegpr0_20
254_savegpr0_20:
255 std r20,-96(r1)
256.globl _savegpr0_21
257_savegpr0_21:
258 std r21,-88(r1)
259.globl _savegpr0_22
260_savegpr0_22:
261 std r22,-80(r1)
262.globl _savegpr0_23
263_savegpr0_23:
264 std r23,-72(r1)
265.globl _savegpr0_24
266_savegpr0_24:
267 std r24,-64(r1)
268.globl _savegpr0_25
269_savegpr0_25:
270 std r25,-56(r1)
271.globl _savegpr0_26
272_savegpr0_26:
273 std r26,-48(r1)
274.globl _savegpr0_27
275_savegpr0_27:
276 std r27,-40(r1)
277.globl _savegpr0_28
278_savegpr0_28:
279 std r28,-32(r1)
280.globl _savegpr0_29
281_savegpr0_29:
282 std r29,-24(r1)
283.globl _savegpr0_30
284_savegpr0_30:
285 std r30,-16(r1)
286.globl _savegpr0_31
287_savegpr0_31:
288 std r31,-8(r1)
289 std r0,16(r1)
290 blr
291
292.globl _restgpr0_14
293_restgpr0_14:
294 ld r14,-144(r1)
295.globl _restgpr0_15
296_restgpr0_15:
297 ld r15,-136(r1)
298.globl _restgpr0_16
299_restgpr0_16:
300 ld r16,-128(r1)
301.globl _restgpr0_17
302_restgpr0_17:
303 ld r17,-120(r1)
304.globl _restgpr0_18
305_restgpr0_18:
306 ld r18,-112(r1)
307.globl _restgpr0_19
308_restgpr0_19:
309 ld r19,-104(r1)
310.globl _restgpr0_20
311_restgpr0_20:
312 ld r20,-96(r1)
313.globl _restgpr0_21
314_restgpr0_21:
315 ld r21,-88(r1)
316.globl _restgpr0_22
317_restgpr0_22:
318 ld r22,-80(r1)
319.globl _restgpr0_23
320_restgpr0_23:
321 ld r23,-72(r1)
322.globl _restgpr0_24
323_restgpr0_24:
324 ld r24,-64(r1)
325.globl _restgpr0_25
326_restgpr0_25:
327 ld r25,-56(r1)
328.globl _restgpr0_26
329_restgpr0_26:
330 ld r26,-48(r1)
331.globl _restgpr0_27
332_restgpr0_27:
333 ld r27,-40(r1)
334.globl _restgpr0_28
335_restgpr0_28:
336 ld r28,-32(r1)
337.globl _restgpr0_29
338_restgpr0_29:
339 ld r0,16(r1)
340 ld r29,-24(r1)
341 mtlr r0
342 ld r30,-16(r1)
343 ld r31,-8(r1)
344 blr
345
346.globl _restgpr0_30
347_restgpr0_30:
348 ld r30,-16(r1)
349.globl _restgpr0_31
350_restgpr0_31:
351 ld r0,16(r1)
352 ld r31,-8(r1)
353 mtlr r0
354 blr
355
356#endif /* CONFIG_PPC64 */
357
229#endif 358#endif
diff --git a/arch/powerpc/lib/devres.c b/arch/powerpc/lib/devres.c
index 292115d98ea9..deac4d30daf4 100644
--- a/arch/powerpc/lib/devres.c
+++ b/arch/powerpc/lib/devres.c
@@ -8,6 +8,7 @@
8 */ 8 */
9 9
10#include <linux/device.h> /* devres_*(), devm_ioremap_release() */ 10#include <linux/device.h> /* devres_*(), devm_ioremap_release() */
11#include <linux/gfp.h>
11#include <linux/io.h> /* ioremap_flags() */ 12#include <linux/io.h> /* ioremap_flags() */
12#include <linux/module.h> /* EXPORT_SYMBOL() */ 13#include <linux/module.h> /* EXPORT_SYMBOL() */
13 14
diff --git a/arch/powerpc/lib/feature-fixups.c b/arch/powerpc/lib/feature-fixups.c
index e640175b65ae..0d08d0171392 100644
--- a/arch/powerpc/lib/feature-fixups.c
+++ b/arch/powerpc/lib/feature-fixups.c
@@ -12,6 +12,7 @@
12 * 2 of the License, or (at your option) any later version. 12 * 2 of the License, or (at your option) any later version.
13 */ 13 */
14 14
15#include <linux/types.h>
15#include <linux/kernel.h> 16#include <linux/kernel.h>
16#include <linux/string.h> 17#include <linux/string.h>
17#include <linux/init.h> 18#include <linux/init.h>
@@ -288,8 +289,8 @@ static void test_alternative_case_with_external_branch(void)
288 289
289static void test_cpu_macros(void) 290static void test_cpu_macros(void)
290{ 291{
291 extern void ftr_fixup_test_FTR_macros; 292 extern u8 ftr_fixup_test_FTR_macros;
292 extern void ftr_fixup_test_FTR_macros_expected; 293 extern u8 ftr_fixup_test_FTR_macros_expected;
293 unsigned long size = &ftr_fixup_test_FTR_macros_expected - 294 unsigned long size = &ftr_fixup_test_FTR_macros_expected -
294 &ftr_fixup_test_FTR_macros; 295 &ftr_fixup_test_FTR_macros;
295 296
@@ -301,8 +302,8 @@ static void test_cpu_macros(void)
301static void test_fw_macros(void) 302static void test_fw_macros(void)
302{ 303{
303#ifdef CONFIG_PPC64 304#ifdef CONFIG_PPC64
304 extern void ftr_fixup_test_FW_FTR_macros; 305 extern u8 ftr_fixup_test_FW_FTR_macros;
305 extern void ftr_fixup_test_FW_FTR_macros_expected; 306 extern u8 ftr_fixup_test_FW_FTR_macros_expected;
306 unsigned long size = &ftr_fixup_test_FW_FTR_macros_expected - 307 unsigned long size = &ftr_fixup_test_FW_FTR_macros_expected -
307 &ftr_fixup_test_FW_FTR_macros; 308 &ftr_fixup_test_FW_FTR_macros;
308 309
@@ -314,10 +315,10 @@ static void test_fw_macros(void)
314 315
315static void test_lwsync_macros(void) 316static void test_lwsync_macros(void)
316{ 317{
317 extern void lwsync_fixup_test; 318 extern u8 lwsync_fixup_test;
318 extern void end_lwsync_fixup_test; 319 extern u8 end_lwsync_fixup_test;
319 extern void lwsync_fixup_test_expected_LWSYNC; 320 extern u8 lwsync_fixup_test_expected_LWSYNC;
320 extern void lwsync_fixup_test_expected_SYNC; 321 extern u8 lwsync_fixup_test_expected_SYNC;
321 unsigned long size = &end_lwsync_fixup_test - 322 unsigned long size = &end_lwsync_fixup_test -
322 &lwsync_fixup_test; 323 &lwsync_fixup_test;
323 324
diff --git a/arch/powerpc/lib/string.S b/arch/powerpc/lib/string.S
index 64e2e499e32a..455881a5563f 100644
--- a/arch/powerpc/lib/string.S
+++ b/arch/powerpc/lib/string.S
@@ -28,7 +28,7 @@ _GLOBAL(strcpy)
28/* This clears out any unused part of the destination buffer, 28/* This clears out any unused part of the destination buffer,
29 just as the libc version does. -- paulus */ 29 just as the libc version does. -- paulus */
30_GLOBAL(strncpy) 30_GLOBAL(strncpy)
31 cmpwi 0,r5,0 31 PPC_LCMPI 0,r5,0
32 beqlr 32 beqlr
33 mtctr r5 33 mtctr r5
34 addi r6,r3,-1 34 addi r6,r3,-1
@@ -39,7 +39,7 @@ _GLOBAL(strncpy)
39 bdnzf 2,1b /* dec ctr, branch if ctr != 0 && !cr0.eq */ 39 bdnzf 2,1b /* dec ctr, branch if ctr != 0 && !cr0.eq */
40 bnelr /* if we didn't hit a null char, we're done */ 40 bnelr /* if we didn't hit a null char, we're done */
41 mfctr r5 41 mfctr r5
42 cmpwi 0,r5,0 /* any space left in destination buffer? */ 42 PPC_LCMPI 0,r5,0 /* any space left in destination buffer? */
43 beqlr /* we know r0 == 0 here */ 43 beqlr /* we know r0 == 0 here */
442: stbu r0,1(r6) /* clear it out if so */ 442: stbu r0,1(r6) /* clear it out if so */
45 bdnz 2b 45 bdnz 2b
@@ -70,8 +70,8 @@ _GLOBAL(strcmp)
70 blr 70 blr
71 71
72_GLOBAL(strncmp) 72_GLOBAL(strncmp)
73 PPC_LCMPI r5,0 73 PPC_LCMPI 0,r5,0
74 beqlr 74 beq- 2f
75 mtctr r5 75 mtctr r5
76 addi r5,r3,-1 76 addi r5,r3,-1
77 addi r4,r4,-1 77 addi r4,r4,-1
@@ -82,6 +82,8 @@ _GLOBAL(strncmp)
82 beqlr 1 82 beqlr 1
83 bdnzt eq,1b 83 bdnzt eq,1b
84 blr 84 blr
852: li r3,0
86 blr
85 87
86_GLOBAL(strlen) 88_GLOBAL(strlen)
87 addi r4,r3,-1 89 addi r4,r3,-1
@@ -92,8 +94,8 @@ _GLOBAL(strlen)
92 blr 94 blr
93 95
94_GLOBAL(memcmp) 96_GLOBAL(memcmp)
95 cmpwi 0,r5,0 97 PPC_LCMPI 0,r5,0
96 ble- 2f 98 beq- 2f
97 mtctr r5 99 mtctr r5
98 addi r6,r3,-1 100 addi r6,r3,-1
99 addi r4,r4,-1 101 addi r4,r4,-1
@@ -106,8 +108,8 @@ _GLOBAL(memcmp)
106 blr 108 blr
107 109
108_GLOBAL(memchr) 110_GLOBAL(memchr)
109 cmpwi 0,r5,0 111 PPC_LCMPI 0,r5,0
110 ble- 2f 112 beq- 2f
111 mtctr r5 113 mtctr r5
112 addi r3,r3,-1 114 addi r3,r3,-1
1131: lbzu r0,1(r3) 1151: lbzu r0,1(r3)
diff --git a/arch/powerpc/mm/40x_mmu.c b/arch/powerpc/mm/40x_mmu.c
index 65abfcfaaa9e..1dc2fa5ce1bd 100644
--- a/arch/powerpc/mm/40x_mmu.c
+++ b/arch/powerpc/mm/40x_mmu.c
@@ -135,7 +135,7 @@ unsigned long __init mmu_mapin_ram(unsigned long top)
135 /* If the size of RAM is not an exact power of two, we may not 135 /* If the size of RAM is not an exact power of two, we may not
136 * have covered RAM in its entirety with 16 and 4 MiB 136 * have covered RAM in its entirety with 16 and 4 MiB
137 * pages. Consequently, restrict the top end of RAM currently 137 * pages. Consequently, restrict the top end of RAM currently
138 * allocable so that calls to the LMB to allocate PTEs for "tail" 138 * allocable so that calls to the MEMBLOCK to allocate PTEs for "tail"
139 * coverage with normal-sized pages (or other reasons) do not 139 * coverage with normal-sized pages (or other reasons) do not
140 * attempt to allocate outside the allowed range. 140 * attempt to allocate outside the allowed range.
141 */ 141 */
diff --git a/arch/powerpc/mm/44x_mmu.c b/arch/powerpc/mm/44x_mmu.c
index 3986264b0993..d8c6efb32bc6 100644
--- a/arch/powerpc/mm/44x_mmu.c
+++ b/arch/powerpc/mm/44x_mmu.c
@@ -38,7 +38,9 @@ unsigned int tlb_44x_index; /* = 0 */
38unsigned int tlb_44x_hwater = PPC44x_TLB_SIZE - 1 - PPC44x_EARLY_TLBS; 38unsigned int tlb_44x_hwater = PPC44x_TLB_SIZE - 1 - PPC44x_EARLY_TLBS;
39int icache_44x_need_flush; 39int icache_44x_need_flush;
40 40
41static void __init ppc44x_update_tlb_hwater(void) 41unsigned long tlb_47x_boltmap[1024/8];
42
43static void __cpuinit ppc44x_update_tlb_hwater(void)
42{ 44{
43 extern unsigned int tlb_44x_patch_hwater_D[]; 45 extern unsigned int tlb_44x_patch_hwater_D[];
44 extern unsigned int tlb_44x_patch_hwater_I[]; 46 extern unsigned int tlb_44x_patch_hwater_I[];
@@ -59,7 +61,7 @@ static void __init ppc44x_update_tlb_hwater(void)
59} 61}
60 62
61/* 63/*
62 * "Pins" a 256MB TLB entry in AS0 for kernel lowmem 64 * "Pins" a 256MB TLB entry in AS0 for kernel lowmem for 44x type MMU
63 */ 65 */
64static void __init ppc44x_pin_tlb(unsigned int virt, unsigned int phys) 66static void __init ppc44x_pin_tlb(unsigned int virt, unsigned int phys)
65{ 67{
@@ -67,12 +69,18 @@ static void __init ppc44x_pin_tlb(unsigned int virt, unsigned int phys)
67 69
68 ppc44x_update_tlb_hwater(); 70 ppc44x_update_tlb_hwater();
69 71
72 mtspr(SPRN_MMUCR, 0);
73
70 __asm__ __volatile__( 74 __asm__ __volatile__(
71 "tlbwe %2,%3,%4\n" 75 "tlbwe %2,%3,%4\n"
72 "tlbwe %1,%3,%5\n" 76 "tlbwe %1,%3,%5\n"
73 "tlbwe %0,%3,%6\n" 77 "tlbwe %0,%3,%6\n"
74 : 78 :
79#ifdef CONFIG_PPC47x
80 : "r" (PPC47x_TLB2_S_RWX),
81#else
75 : "r" (PPC44x_TLB_SW | PPC44x_TLB_SR | PPC44x_TLB_SX | PPC44x_TLB_G), 82 : "r" (PPC44x_TLB_SW | PPC44x_TLB_SR | PPC44x_TLB_SX | PPC44x_TLB_G),
83#endif
76 "r" (phys), 84 "r" (phys),
77 "r" (virt | PPC44x_TLB_VALID | PPC44x_TLB_256M), 85 "r" (virt | PPC44x_TLB_VALID | PPC44x_TLB_256M),
78 "r" (entry), 86 "r" (entry),
@@ -81,8 +89,93 @@ static void __init ppc44x_pin_tlb(unsigned int virt, unsigned int phys)
81 "i" (PPC44x_TLB_ATTRIB)); 89 "i" (PPC44x_TLB_ATTRIB));
82} 90}
83 91
92static int __init ppc47x_find_free_bolted(void)
93{
94 unsigned int mmube0 = mfspr(SPRN_MMUBE0);
95 unsigned int mmube1 = mfspr(SPRN_MMUBE1);
96
97 if (!(mmube0 & MMUBE0_VBE0))
98 return 0;
99 if (!(mmube0 & MMUBE0_VBE1))
100 return 1;
101 if (!(mmube0 & MMUBE0_VBE2))
102 return 2;
103 if (!(mmube1 & MMUBE1_VBE3))
104 return 3;
105 if (!(mmube1 & MMUBE1_VBE4))
106 return 4;
107 if (!(mmube1 & MMUBE1_VBE5))
108 return 5;
109 return -1;
110}
111
112static void __init ppc47x_update_boltmap(void)
113{
114 unsigned int mmube0 = mfspr(SPRN_MMUBE0);
115 unsigned int mmube1 = mfspr(SPRN_MMUBE1);
116
117 if (mmube0 & MMUBE0_VBE0)
118 __set_bit((mmube0 >> MMUBE0_IBE0_SHIFT) & 0xff,
119 tlb_47x_boltmap);
120 if (mmube0 & MMUBE0_VBE1)
121 __set_bit((mmube0 >> MMUBE0_IBE1_SHIFT) & 0xff,
122 tlb_47x_boltmap);
123 if (mmube0 & MMUBE0_VBE2)
124 __set_bit((mmube0 >> MMUBE0_IBE2_SHIFT) & 0xff,
125 tlb_47x_boltmap);
126 if (mmube1 & MMUBE1_VBE3)
127 __set_bit((mmube1 >> MMUBE1_IBE3_SHIFT) & 0xff,
128 tlb_47x_boltmap);
129 if (mmube1 & MMUBE1_VBE4)
130 __set_bit((mmube1 >> MMUBE1_IBE4_SHIFT) & 0xff,
131 tlb_47x_boltmap);
132 if (mmube1 & MMUBE1_VBE5)
133 __set_bit((mmube1 >> MMUBE1_IBE5_SHIFT) & 0xff,
134 tlb_47x_boltmap);
135}
136
137/*
138 * "Pins" a 256MB TLB entry in AS0 for kernel lowmem for 47x type MMU
139 */
140static void __cpuinit ppc47x_pin_tlb(unsigned int virt, unsigned int phys)
141{
142 unsigned int rA;
143 int bolted;
144
145 /* Base rA is HW way select, way 0, bolted bit set */
146 rA = 0x88000000;
147
148 /* Look for a bolted entry slot */
149 bolted = ppc47x_find_free_bolted();
150 BUG_ON(bolted < 0);
151
152 /* Insert bolted slot number */
153 rA |= bolted << 24;
154
155 pr_debug("256M TLB entry for 0x%08x->0x%08x in bolt slot %d\n",
156 virt, phys, bolted);
157
158 mtspr(SPRN_MMUCR, 0);
159
160 __asm__ __volatile__(
161 "tlbwe %2,%3,0\n"
162 "tlbwe %1,%3,1\n"
163 "tlbwe %0,%3,2\n"
164 :
165 : "r" (PPC47x_TLB2_SW | PPC47x_TLB2_SR |
166 PPC47x_TLB2_SX
167#ifdef CONFIG_SMP
168 | PPC47x_TLB2_M
169#endif
170 ),
171 "r" (phys),
172 "r" (virt | PPC47x_TLB0_VALID | PPC47x_TLB0_256M),
173 "r" (rA));
174}
175
84void __init MMU_init_hw(void) 176void __init MMU_init_hw(void)
85{ 177{
178 /* This is not useful on 47x but won't hurt either */
86 ppc44x_update_tlb_hwater(); 179 ppc44x_update_tlb_hwater();
87 180
88 flush_instruction_cache(); 181 flush_instruction_cache();
@@ -95,8 +188,51 @@ unsigned long __init mmu_mapin_ram(unsigned long top)
95 /* Pin in enough TLBs to cover any lowmem not covered by the 188 /* Pin in enough TLBs to cover any lowmem not covered by the
96 * initial 256M mapping established in head_44x.S */ 189 * initial 256M mapping established in head_44x.S */
97 for (addr = PPC_PIN_SIZE; addr < lowmem_end_addr; 190 for (addr = PPC_PIN_SIZE; addr < lowmem_end_addr;
98 addr += PPC_PIN_SIZE) 191 addr += PPC_PIN_SIZE) {
99 ppc44x_pin_tlb(addr + PAGE_OFFSET, addr); 192 if (mmu_has_feature(MMU_FTR_TYPE_47x))
193 ppc47x_pin_tlb(addr + PAGE_OFFSET, addr);
194 else
195 ppc44x_pin_tlb(addr + PAGE_OFFSET, addr);
196 }
197 if (mmu_has_feature(MMU_FTR_TYPE_47x)) {
198 ppc47x_update_boltmap();
100 199
200#ifdef DEBUG
201 {
202 int i;
203
204 printk(KERN_DEBUG "bolted entries: ");
205 for (i = 0; i < 255; i++) {
206 if (test_bit(i, tlb_47x_boltmap))
207 printk("%d ", i);
208 }
209 printk("\n");
210 }
211#endif /* DEBUG */
212 }
101 return total_lowmem; 213 return total_lowmem;
102} 214}
215
216#ifdef CONFIG_SMP
217void __cpuinit mmu_init_secondary(int cpu)
218{
219 unsigned long addr;
220
221 /* Pin in enough TLBs to cover any lowmem not covered by the
222 * initial 256M mapping established in head_44x.S
223 *
224 * WARNING: This is called with only the first 256M of the
225 * linear mapping in the TLB and we can't take faults yet
226 * so beware of what this code uses. It runs off a temporary
227 * stack. current (r2) isn't initialized, smp_processor_id()
228 * will not work, current thread info isn't accessible, ...
229 */
230 for (addr = PPC_PIN_SIZE; addr < lowmem_end_addr;
231 addr += PPC_PIN_SIZE) {
232 if (mmu_has_feature(MMU_FTR_TYPE_47x))
233 ppc47x_pin_tlb(addr + PAGE_OFFSET, addr);
234 else
235 ppc44x_pin_tlb(addr + PAGE_OFFSET, addr);
236 }
237}
238#endif /* CONFIG_SMP */
diff --git a/arch/powerpc/mm/dma-noncoherent.c b/arch/powerpc/mm/dma-noncoherent.c
index 36692f5c9a76..757c0bed9a91 100644
--- a/arch/powerpc/mm/dma-noncoherent.c
+++ b/arch/powerpc/mm/dma-noncoherent.c
@@ -23,6 +23,7 @@
23 */ 23 */
24 24
25#include <linux/sched.h> 25#include <linux/sched.h>
26#include <linux/slab.h>
26#include <linux/kernel.h> 27#include <linux/kernel.h>
27#include <linux/errno.h> 28#include <linux/errno.h>
28#include <linux/string.h> 29#include <linux/string.h>
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index 26fb6b990b0a..1bd712c33ce2 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -151,13 +151,14 @@ int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address,
151 if (!user_mode(regs) && (address >= TASK_SIZE)) 151 if (!user_mode(regs) && (address >= TASK_SIZE))
152 return SIGSEGV; 152 return SIGSEGV;
153 153
154#if !(defined(CONFIG_4xx) || defined(CONFIG_BOOKE)) 154#if !(defined(CONFIG_4xx) || defined(CONFIG_BOOKE) || \
155 defined(CONFIG_PPC_BOOK3S_64))
155 if (error_code & DSISR_DABRMATCH) { 156 if (error_code & DSISR_DABRMATCH) {
156 /* DABR match */ 157 /* DABR match */
157 do_dabr(regs, address, error_code); 158 do_dabr(regs, address, error_code);
158 return 0; 159 return 0;
159 } 160 }
160#endif /* !(CONFIG_4xx || CONFIG_BOOKE)*/ 161#endif
161 162
162 if (in_atomic() || mm == NULL) { 163 if (in_atomic() || mm == NULL) {
163 if (!user_mode(regs)) 164 if (!user_mode(regs))
@@ -307,7 +308,6 @@ good_area:
307 * make sure we exit gracefully rather than endlessly redo 308 * make sure we exit gracefully rather than endlessly redo
308 * the fault. 309 * the fault.
309 */ 310 */
310 survive:
311 ret = handle_mm_fault(mm, vma, address, is_write ? FAULT_FLAG_WRITE : 0); 311 ret = handle_mm_fault(mm, vma, address, is_write ? FAULT_FLAG_WRITE : 0);
312 if (unlikely(ret & VM_FAULT_ERROR)) { 312 if (unlikely(ret & VM_FAULT_ERROR)) {
313 if (ret & VM_FAULT_OOM) 313 if (ret & VM_FAULT_OOM)
@@ -359,15 +359,10 @@ bad_area_nosemaphore:
359 */ 359 */
360out_of_memory: 360out_of_memory:
361 up_read(&mm->mmap_sem); 361 up_read(&mm->mmap_sem);
362 if (is_global_init(current)) { 362 if (!user_mode(regs))
363 yield(); 363 return SIGKILL;
364 down_read(&mm->mmap_sem); 364 pagefault_out_of_memory();
365 goto survive; 365 return 0;
366 }
367 printk("VM: killing process %s\n", current->comm);
368 if (user_mode(regs))
369 do_group_exit(SIGKILL);
370 return SIGKILL;
371 366
372do_sigbus: 367do_sigbus:
373 up_read(&mm->mmap_sem); 368 up_read(&mm->mmap_sem);
diff --git a/arch/powerpc/mm/fsl_booke_mmu.c b/arch/powerpc/mm/fsl_booke_mmu.c
index c5394728bf2e..cdc7526e9c93 100644
--- a/arch/powerpc/mm/fsl_booke_mmu.c
+++ b/arch/powerpc/mm/fsl_booke_mmu.c
@@ -2,7 +2,7 @@
2 * Modifications by Kumar Gala (galak@kernel.crashing.org) to support 2 * Modifications by Kumar Gala (galak@kernel.crashing.org) to support
3 * E500 Book E processors. 3 * E500 Book E processors.
4 * 4 *
5 * Copyright 2004 Freescale Semiconductor, Inc 5 * Copyright 2004,2010 Freescale Semiconductor, Inc.
6 * 6 *
7 * This file contains the routines for initializing the MMU 7 * This file contains the routines for initializing the MMU
8 * on the 4xx series of chips. 8 * on the 4xx series of chips.
@@ -56,19 +56,13 @@
56 56
57unsigned int tlbcam_index; 57unsigned int tlbcam_index;
58 58
59#define NUM_TLBCAMS (64)
60 59
61#if defined(CONFIG_LOWMEM_CAM_NUM_BOOL) && (CONFIG_LOWMEM_CAM_NUM >= NUM_TLBCAMS) 60#if defined(CONFIG_LOWMEM_CAM_NUM_BOOL) && (CONFIG_LOWMEM_CAM_NUM >= NUM_TLBCAMS)
62#error "LOWMEM_CAM_NUM must be less than NUM_TLBCAMS" 61#error "LOWMEM_CAM_NUM must be less than NUM_TLBCAMS"
63#endif 62#endif
64 63
65struct tlbcam { 64#define NUM_TLBCAMS (64)
66 u32 MAS0; 65struct tlbcam TLBCAM[NUM_TLBCAMS];
67 u32 MAS1;
68 unsigned long MAS2;
69 u32 MAS3;
70 u32 MAS7;
71} TLBCAM[NUM_TLBCAMS];
72 66
73struct tlbcamrange { 67struct tlbcamrange {
74 unsigned long start; 68 unsigned long start;
@@ -109,19 +103,6 @@ unsigned long p_mapped_by_tlbcam(phys_addr_t pa)
109 return 0; 103 return 0;
110} 104}
111 105
112void loadcam_entry(int idx)
113{
114 mtspr(SPRN_MAS0, TLBCAM[idx].MAS0);
115 mtspr(SPRN_MAS1, TLBCAM[idx].MAS1);
116 mtspr(SPRN_MAS2, TLBCAM[idx].MAS2);
117 mtspr(SPRN_MAS3, TLBCAM[idx].MAS3);
118
119 if (cur_cpu_spec->cpu_features & MMU_FTR_BIG_PHYS)
120 mtspr(SPRN_MAS7, TLBCAM[idx].MAS7);
121
122 asm volatile("isync;tlbwe;isync" : : : "memory");
123}
124
125/* 106/*
126 * Set up one of the I/D BAT (block address translation) register pairs. 107 * Set up one of the I/D BAT (block address translation) register pairs.
127 * The parameters are not checked; in particular size must be a power 108 * The parameters are not checked; in particular size must be a power
@@ -152,18 +133,13 @@ static void settlbcam(int index, unsigned long virt, phys_addr_t phys,
152 133
153 TLBCAM[index].MAS3 = (phys & MAS3_RPN) | MAS3_SX | MAS3_SR; 134 TLBCAM[index].MAS3 = (phys & MAS3_RPN) | MAS3_SX | MAS3_SR;
154 TLBCAM[index].MAS3 |= ((flags & _PAGE_RW) ? MAS3_SW : 0); 135 TLBCAM[index].MAS3 |= ((flags & _PAGE_RW) ? MAS3_SW : 0);
155 if (cur_cpu_spec->cpu_features & MMU_FTR_BIG_PHYS) 136 if (mmu_has_feature(MMU_FTR_BIG_PHYS))
156 TLBCAM[index].MAS7 = (u64)phys >> 32; 137 TLBCAM[index].MAS7 = (u64)phys >> 32;
157 138
158#ifndef CONFIG_KGDB /* want user access for breakpoints */
159 if (flags & _PAGE_USER) { 139 if (flags & _PAGE_USER) {
160 TLBCAM[index].MAS3 |= MAS3_UX | MAS3_UR; 140 TLBCAM[index].MAS3 |= MAS3_UX | MAS3_UR;
161 TLBCAM[index].MAS3 |= ((flags & _PAGE_RW) ? MAS3_UW : 0); 141 TLBCAM[index].MAS3 |= ((flags & _PAGE_RW) ? MAS3_UW : 0);
162 } 142 }
163#else
164 TLBCAM[index].MAS3 |= MAS3_UX | MAS3_UR;
165 TLBCAM[index].MAS3 |= ((flags & _PAGE_RW) ? MAS3_UW : 0);
166#endif
167 143
168 tlbcam_addrs[index].start = virt; 144 tlbcam_addrs[index].start = virt;
169 tlbcam_addrs[index].limit = virt + size - 1; 145 tlbcam_addrs[index].limit = virt + size - 1;
diff --git a/arch/powerpc/mm/hash_low_64.S b/arch/powerpc/mm/hash_low_64.S
index a719f53921a5..3079f6b44cf5 100644
--- a/arch/powerpc/mm/hash_low_64.S
+++ b/arch/powerpc/mm/hash_low_64.S
@@ -68,9 +68,6 @@ _GLOBAL(__hash_page_4K)
68 std r8,STK_PARM(r8)(r1) 68 std r8,STK_PARM(r8)(r1)
69 std r9,STK_PARM(r9)(r1) 69 std r9,STK_PARM(r9)(r1)
70 70
71 /* Add _PAGE_PRESENT to access */
72 ori r4,r4,_PAGE_PRESENT
73
74 /* Save non-volatile registers. 71 /* Save non-volatile registers.
75 * r31 will hold "old PTE" 72 * r31 will hold "old PTE"
76 * r30 is "new PTE" 73 * r30 is "new PTE"
@@ -347,9 +344,6 @@ _GLOBAL(__hash_page_4K)
347 std r8,STK_PARM(r8)(r1) 344 std r8,STK_PARM(r8)(r1)
348 std r9,STK_PARM(r9)(r1) 345 std r9,STK_PARM(r9)(r1)
349 346
350 /* Add _PAGE_PRESENT to access */
351 ori r4,r4,_PAGE_PRESENT
352
353 /* Save non-volatile registers. 347 /* Save non-volatile registers.
354 * r31 will hold "old PTE" 348 * r31 will hold "old PTE"
355 * r30 is "new PTE" 349 * r30 is "new PTE"
@@ -687,9 +681,6 @@ _GLOBAL(__hash_page_64K)
687 std r8,STK_PARM(r8)(r1) 681 std r8,STK_PARM(r8)(r1)
688 std r9,STK_PARM(r9)(r1) 682 std r9,STK_PARM(r9)(r1)
689 683
690 /* Add _PAGE_PRESENT to access */
691 ori r4,r4,_PAGE_PRESENT
692
693 /* Save non-volatile registers. 684 /* Save non-volatile registers.
694 * r31 will hold "old PTE" 685 * r31 will hold "old PTE"
695 * r30 is "new PTE" 686 * r30 is "new PTE"
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
index 3ecdcec0a39e..09dffe6efa46 100644
--- a/arch/powerpc/mm/hash_utils_64.c
+++ b/arch/powerpc/mm/hash_utils_64.c
@@ -31,7 +31,7 @@
31#include <linux/cache.h> 31#include <linux/cache.h>
32#include <linux/init.h> 32#include <linux/init.h>
33#include <linux/signal.h> 33#include <linux/signal.h>
34#include <linux/lmb.h> 34#include <linux/memblock.h>
35 35
36#include <asm/processor.h> 36#include <asm/processor.h>
37#include <asm/pgtable.h> 37#include <asm/pgtable.h>
@@ -384,8 +384,8 @@ static int __init htab_dt_scan_hugepage_blocks(unsigned long node,
384 printk(KERN_INFO "Huge page(16GB) memory: " 384 printk(KERN_INFO "Huge page(16GB) memory: "
385 "addr = 0x%lX size = 0x%lX pages = %d\n", 385 "addr = 0x%lX size = 0x%lX pages = %d\n",
386 phys_addr, block_size, expected_pages); 386 phys_addr, block_size, expected_pages);
387 if (phys_addr + (16 * GB) <= lmb_end_of_DRAM()) { 387 if (phys_addr + (16 * GB) <= memblock_end_of_DRAM()) {
388 lmb_reserve(phys_addr, block_size * expected_pages); 388 memblock_reserve(phys_addr, block_size * expected_pages);
389 add_gpage(phys_addr, block_size, expected_pages); 389 add_gpage(phys_addr, block_size, expected_pages);
390 } 390 }
391 return 0; 391 return 0;
@@ -458,7 +458,7 @@ static void __init htab_init_page_sizes(void)
458 * and we have at least 1G of RAM at boot 458 * and we have at least 1G of RAM at boot
459 */ 459 */
460 if (mmu_psize_defs[MMU_PAGE_16M].shift && 460 if (mmu_psize_defs[MMU_PAGE_16M].shift &&
461 lmb_phys_mem_size() >= 0x40000000) 461 memblock_phys_mem_size() >= 0x40000000)
462 mmu_vmemmap_psize = MMU_PAGE_16M; 462 mmu_vmemmap_psize = MMU_PAGE_16M;
463 else if (mmu_psize_defs[MMU_PAGE_64K].shift) 463 else if (mmu_psize_defs[MMU_PAGE_64K].shift)
464 mmu_vmemmap_psize = MMU_PAGE_64K; 464 mmu_vmemmap_psize = MMU_PAGE_64K;
@@ -520,7 +520,7 @@ static unsigned long __init htab_get_table_size(void)
520 return 1UL << ppc64_pft_size; 520 return 1UL << ppc64_pft_size;
521 521
522 /* round mem_size up to next power of 2 */ 522 /* round mem_size up to next power of 2 */
523 mem_size = lmb_phys_mem_size(); 523 mem_size = memblock_phys_mem_size();
524 rnd_mem_size = 1UL << __ilog2(mem_size); 524 rnd_mem_size = 1UL << __ilog2(mem_size);
525 if (rnd_mem_size < mem_size) 525 if (rnd_mem_size < mem_size)
526 rnd_mem_size <<= 1; 526 rnd_mem_size <<= 1;
@@ -627,7 +627,7 @@ static void __init htab_initialize(void)
627 else 627 else
628 limit = 0; 628 limit = 0;
629 629
630 table = lmb_alloc_base(htab_size_bytes, htab_size_bytes, limit); 630 table = memblock_alloc_base(htab_size_bytes, htab_size_bytes, limit);
631 631
632 DBG("Hash table allocated at %lx, size: %lx\n", table, 632 DBG("Hash table allocated at %lx, size: %lx\n", table,
633 htab_size_bytes); 633 htab_size_bytes);
@@ -647,9 +647,9 @@ static void __init htab_initialize(void)
647 prot = pgprot_val(PAGE_KERNEL); 647 prot = pgprot_val(PAGE_KERNEL);
648 648
649#ifdef CONFIG_DEBUG_PAGEALLOC 649#ifdef CONFIG_DEBUG_PAGEALLOC
650 linear_map_hash_count = lmb_end_of_DRAM() >> PAGE_SHIFT; 650 linear_map_hash_count = memblock_end_of_DRAM() >> PAGE_SHIFT;
651 linear_map_hash_slots = __va(lmb_alloc_base(linear_map_hash_count, 651 linear_map_hash_slots = __va(memblock_alloc_base(linear_map_hash_count,
652 1, lmb.rmo_size)); 652 1, memblock.rmo_size));
653 memset(linear_map_hash_slots, 0, linear_map_hash_count); 653 memset(linear_map_hash_slots, 0, linear_map_hash_count);
654#endif /* CONFIG_DEBUG_PAGEALLOC */ 654#endif /* CONFIG_DEBUG_PAGEALLOC */
655 655
@@ -659,16 +659,16 @@ static void __init htab_initialize(void)
659 */ 659 */
660 660
661 /* create bolted the linear mapping in the hash table */ 661 /* create bolted the linear mapping in the hash table */
662 for (i=0; i < lmb.memory.cnt; i++) { 662 for (i=0; i < memblock.memory.cnt; i++) {
663 base = (unsigned long)__va(lmb.memory.region[i].base); 663 base = (unsigned long)__va(memblock.memory.region[i].base);
664 size = lmb.memory.region[i].size; 664 size = memblock.memory.region[i].size;
665 665
666 DBG("creating mapping for region: %lx..%lx (prot: %lx)\n", 666 DBG("creating mapping for region: %lx..%lx (prot: %lx)\n",
667 base, size, prot); 667 base, size, prot);
668 668
669#ifdef CONFIG_U3_DART 669#ifdef CONFIG_U3_DART
670 /* Do not map the DART space. Fortunately, it will be aligned 670 /* Do not map the DART space. Fortunately, it will be aligned
671 * in such a way that it will not cross two lmb regions and 671 * in such a way that it will not cross two memblock regions and
672 * will fit within a single 16Mb page. 672 * will fit within a single 16Mb page.
673 * The DART space is assumed to be a full 16Mb region even if 673 * The DART space is assumed to be a full 16Mb region even if
674 * we only use 2Mb of that space. We will use more of it later 674 * we only use 2Mb of that space. We will use more of it later
@@ -871,6 +871,18 @@ static inline int subpage_protection(struct mm_struct *mm, unsigned long ea)
871} 871}
872#endif 872#endif
873 873
874void hash_failure_debug(unsigned long ea, unsigned long access,
875 unsigned long vsid, unsigned long trap,
876 int ssize, int psize, unsigned long pte)
877{
878 if (!printk_ratelimit())
879 return;
880 pr_info("mm: Hashing failure ! EA=0x%lx access=0x%lx current=%s\n",
881 ea, access, current->comm);
882 pr_info(" trap=0x%lx vsid=0x%lx ssize=%d psize=%d pte=0x%lx\n",
883 trap, vsid, ssize, psize, pte);
884}
885
874/* Result code is: 886/* Result code is:
875 * 0 - handled 887 * 0 - handled
876 * 1 - normal page fault 888 * 1 - normal page fault
@@ -955,6 +967,17 @@ int hash_page(unsigned long ea, unsigned long access, unsigned long trap)
955 return 1; 967 return 1;
956 } 968 }
957 969
970 /* Add _PAGE_PRESENT to the required access perm */
971 access |= _PAGE_PRESENT;
972
973 /* Pre-check access permissions (will be re-checked atomically
974 * in __hash_page_XX but this pre-check is a fast path
975 */
976 if (access & ~pte_val(*ptep)) {
977 DBG_LOW(" no access !\n");
978 return 1;
979 }
980
958#ifdef CONFIG_HUGETLB_PAGE 981#ifdef CONFIG_HUGETLB_PAGE
959 if (hugeshift) 982 if (hugeshift)
960 return __hash_page_huge(ea, access, vsid, ptep, trap, local, 983 return __hash_page_huge(ea, access, vsid, ptep, trap, local,
@@ -967,14 +990,6 @@ int hash_page(unsigned long ea, unsigned long access, unsigned long trap)
967 DBG_LOW(" i-pte: %016lx %016lx\n", pte_val(*ptep), 990 DBG_LOW(" i-pte: %016lx %016lx\n", pte_val(*ptep),
968 pte_val(*(ptep + PTRS_PER_PTE))); 991 pte_val(*(ptep + PTRS_PER_PTE)));
969#endif 992#endif
970 /* Pre-check access permissions (will be re-checked atomically
971 * in __hash_page_XX but this pre-check is a fast path
972 */
973 if (access & ~pte_val(*ptep)) {
974 DBG_LOW(" no access !\n");
975 return 1;
976 }
977
978 /* Do actual hashing */ 993 /* Do actual hashing */
979#ifdef CONFIG_PPC_64K_PAGES 994#ifdef CONFIG_PPC_64K_PAGES
980 /* If _PAGE_4K_PFN is set, make sure this is a 4k segment */ 995 /* If _PAGE_4K_PFN is set, make sure this is a 4k segment */
@@ -1033,6 +1048,12 @@ int hash_page(unsigned long ea, unsigned long access, unsigned long trap)
1033 local, ssize, spp); 1048 local, ssize, spp);
1034 } 1049 }
1035 1050
1051 /* Dump some info in case of hash insertion failure, they should
1052 * never happen so it is really useful to know if/when they do
1053 */
1054 if (rc == -1)
1055 hash_failure_debug(ea, access, vsid, trap, ssize, psize,
1056 pte_val(*ptep));
1036#ifndef CONFIG_PPC_64K_PAGES 1057#ifndef CONFIG_PPC_64K_PAGES
1037 DBG_LOW(" o-pte: %016lx\n", pte_val(*ptep)); 1058 DBG_LOW(" o-pte: %016lx\n", pte_val(*ptep));
1038#else 1059#else
@@ -1051,8 +1072,7 @@ void hash_preload(struct mm_struct *mm, unsigned long ea,
1051 void *pgdir; 1072 void *pgdir;
1052 pte_t *ptep; 1073 pte_t *ptep;
1053 unsigned long flags; 1074 unsigned long flags;
1054 int local = 0; 1075 int rc, ssize, local = 0;
1055 int ssize;
1056 1076
1057 BUG_ON(REGION_ID(ea) != USER_REGION_ID); 1077 BUG_ON(REGION_ID(ea) != USER_REGION_ID);
1058 1078
@@ -1098,11 +1118,18 @@ void hash_preload(struct mm_struct *mm, unsigned long ea,
1098 /* Hash it in */ 1118 /* Hash it in */
1099#ifdef CONFIG_PPC_HAS_HASH_64K 1119#ifdef CONFIG_PPC_HAS_HASH_64K
1100 if (mm->context.user_psize == MMU_PAGE_64K) 1120 if (mm->context.user_psize == MMU_PAGE_64K)
1101 __hash_page_64K(ea, access, vsid, ptep, trap, local, ssize); 1121 rc = __hash_page_64K(ea, access, vsid, ptep, trap, local, ssize);
1102 else 1122 else
1103#endif /* CONFIG_PPC_HAS_HASH_64K */ 1123#endif /* CONFIG_PPC_HAS_HASH_64K */
1104 __hash_page_4K(ea, access, vsid, ptep, trap, local, ssize, 1124 rc = __hash_page_4K(ea, access, vsid, ptep, trap, local, ssize,
1105 subpage_protection(pgdir, ea)); 1125 subpage_protection(pgdir, ea));
1126
1127 /* Dump some info in case of hash insertion failure, they should
1128 * never happen so it is really useful to know if/when they do
1129 */
1130 if (rc == -1)
1131 hash_failure_debug(ea, access, vsid, trap, ssize,
1132 mm->context.user_psize, pte_val(*ptep));
1106 1133
1107 local_irq_restore(flags); 1134 local_irq_restore(flags);
1108} 1135}
diff --git a/arch/powerpc/mm/hugetlbpage-hash64.c b/arch/powerpc/mm/hugetlbpage-hash64.c
index 199539882f92..cc5c273086cf 100644
--- a/arch/powerpc/mm/hugetlbpage-hash64.c
+++ b/arch/powerpc/mm/hugetlbpage-hash64.c
@@ -21,21 +21,13 @@ int __hash_page_huge(unsigned long ea, unsigned long access, unsigned long vsid,
21 unsigned long old_pte, new_pte; 21 unsigned long old_pte, new_pte;
22 unsigned long va, rflags, pa, sz; 22 unsigned long va, rflags, pa, sz;
23 long slot; 23 long slot;
24 int err = 1;
25 24
26 BUG_ON(shift != mmu_psize_defs[mmu_psize].shift); 25 BUG_ON(shift != mmu_psize_defs[mmu_psize].shift);
27 26
28 /* Search the Linux page table for a match with va */ 27 /* Search the Linux page table for a match with va */
29 va = hpt_va(ea, vsid, ssize); 28 va = hpt_va(ea, vsid, ssize);
30 29
31 /* 30 /* At this point, we have a pte (old_pte) which can be used to build
32 * Check the user's access rights to the page. If access should be
33 * prevented then send the problem up to do_page_fault.
34 */
35 if (unlikely(access & ~pte_val(*ptep)))
36 goto out;
37 /*
38 * At this point, we have a pte (old_pte) which can be used to build
39 * or update an HPTE. There are 2 cases: 31 * or update an HPTE. There are 2 cases:
40 * 32 *
41 * 1. There is a valid (present) pte with no associated HPTE (this is 33 * 1. There is a valid (present) pte with no associated HPTE (this is
@@ -49,9 +41,17 @@ int __hash_page_huge(unsigned long ea, unsigned long access, unsigned long vsid,
49 41
50 do { 42 do {
51 old_pte = pte_val(*ptep); 43 old_pte = pte_val(*ptep);
52 if (old_pte & _PAGE_BUSY) 44 /* If PTE busy, retry the access */
53 goto out; 45 if (unlikely(old_pte & _PAGE_BUSY))
46 return 0;
47 /* If PTE permissions don't match, take page fault */
48 if (unlikely(access & ~old_pte))
49 return 1;
50 /* Try to lock the PTE, add ACCESSED and DIRTY if it was
51 * a write access */
54 new_pte = old_pte | _PAGE_BUSY | _PAGE_ACCESSED; 52 new_pte = old_pte | _PAGE_BUSY | _PAGE_ACCESSED;
53 if (access & _PAGE_RW)
54 new_pte |= _PAGE_DIRTY;
55 } while(old_pte != __cmpxchg_u64((unsigned long *)ptep, 55 } while(old_pte != __cmpxchg_u64((unsigned long *)ptep,
56 old_pte, new_pte)); 56 old_pte, new_pte));
57 57
@@ -121,8 +121,16 @@ repeat:
121 } 121 }
122 } 122 }
123 123
124 if (unlikely(slot == -2)) 124 /*
125 panic("hash_huge_page: pte_insert failed\n"); 125 * Hypervisor failure. Restore old pte and return -1
126 * similar to __hash_page_*
127 */
128 if (unlikely(slot == -2)) {
129 *ptep = __pte(old_pte);
130 hash_failure_debug(ea, access, vsid, trap, ssize,
131 mmu_psize, old_pte);
132 return -1;
133 }
126 134
127 new_pte |= (slot << 12) & (_PAGE_F_SECOND | _PAGE_F_GIX); 135 new_pte |= (slot << 12) & (_PAGE_F_SECOND | _PAGE_F_GIX);
128 } 136 }
@@ -131,9 +139,5 @@ repeat:
131 * No need to use ldarx/stdcx here 139 * No need to use ldarx/stdcx here
132 */ 140 */
133 *ptep = __pte(new_pte & ~_PAGE_BUSY); 141 *ptep = __pte(new_pte & ~_PAGE_BUSY);
134 142 return 0;
135 err = 0;
136
137 out:
138 return err;
139} 143}
diff --git a/arch/powerpc/mm/hugetlbpage.c b/arch/powerpc/mm/hugetlbpage.c
index 123f7070238a..9bb249c3046e 100644
--- a/arch/powerpc/mm/hugetlbpage.c
+++ b/arch/powerpc/mm/hugetlbpage.c
@@ -9,6 +9,7 @@
9 9
10#include <linux/mm.h> 10#include <linux/mm.h>
11#include <linux/io.h> 11#include <linux/io.h>
12#include <linux/slab.h>
12#include <linux/hugetlb.h> 13#include <linux/hugetlb.h>
13#include <asm/pgtable.h> 14#include <asm/pgtable.h>
14#include <asm/pgalloc.h> 15#include <asm/pgalloc.h>
diff --git a/arch/powerpc/mm/init_32.c b/arch/powerpc/mm/init_32.c
index b1dbd9ee87cc..6a6975dc2654 100644
--- a/arch/powerpc/mm/init_32.c
+++ b/arch/powerpc/mm/init_32.c
@@ -30,7 +30,8 @@
30#include <linux/highmem.h> 30#include <linux/highmem.h>
31#include <linux/initrd.h> 31#include <linux/initrd.h>
32#include <linux/pagemap.h> 32#include <linux/pagemap.h>
33#include <linux/lmb.h> 33#include <linux/memblock.h>
34#include <linux/gfp.h>
34 35
35#include <asm/pgalloc.h> 36#include <asm/pgalloc.h>
36#include <asm/prom.h> 37#include <asm/prom.h>
@@ -135,17 +136,17 @@ void __init MMU_init(void)
135 /* parse args from command line */ 136 /* parse args from command line */
136 MMU_setup(); 137 MMU_setup();
137 138
138 if (lmb.memory.cnt > 1) { 139 if (memblock.memory.cnt > 1) {
139#ifndef CONFIG_WII 140#ifndef CONFIG_WII
140 lmb.memory.cnt = 1; 141 memblock.memory.cnt = 1;
141 lmb_analyze(); 142 memblock_analyze();
142 printk(KERN_WARNING "Only using first contiguous memory region"); 143 printk(KERN_WARNING "Only using first contiguous memory region");
143#else 144#else
144 wii_memory_fixups(); 145 wii_memory_fixups();
145#endif 146#endif
146 } 147 }
147 148
148 total_lowmem = total_memory = lmb_end_of_DRAM() - memstart_addr; 149 total_lowmem = total_memory = memblock_end_of_DRAM() - memstart_addr;
149 lowmem_end_addr = memstart_addr + total_lowmem; 150 lowmem_end_addr = memstart_addr + total_lowmem;
150 151
151#ifdef CONFIG_FSL_BOOKE 152#ifdef CONFIG_FSL_BOOKE
@@ -160,8 +161,8 @@ void __init MMU_init(void)
160 lowmem_end_addr = memstart_addr + total_lowmem; 161 lowmem_end_addr = memstart_addr + total_lowmem;
161#ifndef CONFIG_HIGHMEM 162#ifndef CONFIG_HIGHMEM
162 total_memory = total_lowmem; 163 total_memory = total_lowmem;
163 lmb_enforce_memory_limit(lowmem_end_addr); 164 memblock_enforce_memory_limit(lowmem_end_addr);
164 lmb_analyze(); 165 memblock_analyze();
165#endif /* CONFIG_HIGHMEM */ 166#endif /* CONFIG_HIGHMEM */
166 } 167 }
167 168
@@ -199,7 +200,7 @@ void __init *early_get_page(void)
199 if (init_bootmem_done) { 200 if (init_bootmem_done) {
200 p = alloc_bootmem_pages(PAGE_SIZE); 201 p = alloc_bootmem_pages(PAGE_SIZE);
201 } else { 202 } else {
202 p = __va(lmb_alloc_base(PAGE_SIZE, PAGE_SIZE, 203 p = __va(memblock_alloc_base(PAGE_SIZE, PAGE_SIZE,
203 __initial_memory_limit_addr)); 204 __initial_memory_limit_addr));
204 } 205 }
205 return p; 206 return p;
diff --git a/arch/powerpc/mm/init_64.c b/arch/powerpc/mm/init_64.c
index 776f28d02b6b..71f1415e2472 100644
--- a/arch/powerpc/mm/init_64.c
+++ b/arch/powerpc/mm/init_64.c
@@ -40,8 +40,9 @@
40#include <linux/nodemask.h> 40#include <linux/nodemask.h>
41#include <linux/module.h> 41#include <linux/module.h>
42#include <linux/poison.h> 42#include <linux/poison.h>
43#include <linux/lmb.h> 43#include <linux/memblock.h>
44#include <linux/hugetlb.h> 44#include <linux/hugetlb.h>
45#include <linux/slab.h>
45 46
46#include <asm/pgalloc.h> 47#include <asm/pgalloc.h>
47#include <asm/page.h> 48#include <asm/page.h>
@@ -251,6 +252,47 @@ static void __meminit vmemmap_create_mapping(unsigned long start,
251} 252}
252#endif /* CONFIG_PPC_BOOK3E */ 253#endif /* CONFIG_PPC_BOOK3E */
253 254
255struct vmemmap_backing *vmemmap_list;
256
257static __meminit struct vmemmap_backing * vmemmap_list_alloc(int node)
258{
259 static struct vmemmap_backing *next;
260 static int num_left;
261
262 /* allocate a page when required and hand out chunks */
263 if (!next || !num_left) {
264 next = vmemmap_alloc_block(PAGE_SIZE, node);
265 if (unlikely(!next)) {
266 WARN_ON(1);
267 return NULL;
268 }
269 num_left = PAGE_SIZE / sizeof(struct vmemmap_backing);
270 }
271
272 num_left--;
273
274 return next++;
275}
276
277static __meminit void vmemmap_list_populate(unsigned long phys,
278 unsigned long start,
279 int node)
280{
281 struct vmemmap_backing *vmem_back;
282
283 vmem_back = vmemmap_list_alloc(node);
284 if (unlikely(!vmem_back)) {
285 WARN_ON(1);
286 return;
287 }
288
289 vmem_back->phys = phys;
290 vmem_back->virt_addr = start;
291 vmem_back->list = vmemmap_list;
292
293 vmemmap_list = vmem_back;
294}
295
254int __meminit vmemmap_populate(struct page *start_page, 296int __meminit vmemmap_populate(struct page *start_page,
255 unsigned long nr_pages, int node) 297 unsigned long nr_pages, int node)
256{ 298{
@@ -275,6 +317,8 @@ int __meminit vmemmap_populate(struct page *start_page,
275 if (!p) 317 if (!p)
276 return -ENOMEM; 318 return -ENOMEM;
277 319
320 vmemmap_list_populate(__pa(p), start, node);
321
278 pr_debug(" * %016lx..%016lx allocated at %p\n", 322 pr_debug(" * %016lx..%016lx allocated at %p\n",
279 start, start + page_size, p); 323 start, start + page_size, p);
280 324
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index 311224cdb7ad..1a84a8d00005 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -22,6 +22,7 @@
22#include <linux/kernel.h> 22#include <linux/kernel.h>
23#include <linux/errno.h> 23#include <linux/errno.h>
24#include <linux/string.h> 24#include <linux/string.h>
25#include <linux/gfp.h>
25#include <linux/types.h> 26#include <linux/types.h>
26#include <linux/mm.h> 27#include <linux/mm.h>
27#include <linux/stddef.h> 28#include <linux/stddef.h>
@@ -31,7 +32,7 @@
31#include <linux/initrd.h> 32#include <linux/initrd.h>
32#include <linux/pagemap.h> 33#include <linux/pagemap.h>
33#include <linux/suspend.h> 34#include <linux/suspend.h>
34#include <linux/lmb.h> 35#include <linux/memblock.h>
35#include <linux/hugetlb.h> 36#include <linux/hugetlb.h>
36 37
37#include <asm/pgalloc.h> 38#include <asm/pgalloc.h>
@@ -48,6 +49,7 @@
48#include <asm/sparsemem.h> 49#include <asm/sparsemem.h>
49#include <asm/vdso.h> 50#include <asm/vdso.h>
50#include <asm/fixmap.h> 51#include <asm/fixmap.h>
52#include <asm/swiotlb.h>
51 53
52#include "mmu_decl.h" 54#include "mmu_decl.h"
53 55
@@ -81,13 +83,13 @@ int page_is_ram(unsigned long pfn)
81#else 83#else
82 unsigned long paddr = (pfn << PAGE_SHIFT); 84 unsigned long paddr = (pfn << PAGE_SHIFT);
83 int i; 85 int i;
84 for (i=0; i < lmb.memory.cnt; i++) { 86 for (i=0; i < memblock.memory.cnt; i++) {
85 unsigned long base; 87 unsigned long base;
86 88
87 base = lmb.memory.region[i].base; 89 base = memblock.memory.region[i].base;
88 90
89 if ((paddr >= base) && 91 if ((paddr >= base) &&
90 (paddr < (base + lmb.memory.region[i].size))) { 92 (paddr < (base + memblock.memory.region[i].size))) {
91 return 1; 93 return 1;
92 } 94 }
93 } 95 }
@@ -140,14 +142,14 @@ int arch_add_memory(int nid, u64 start, u64 size)
140/* 142/*
141 * walk_memory_resource() needs to make sure there is no holes in a given 143 * walk_memory_resource() needs to make sure there is no holes in a given
142 * memory range. PPC64 does not maintain the memory layout in /proc/iomem. 144 * memory range. PPC64 does not maintain the memory layout in /proc/iomem.
143 * Instead it maintains it in lmb.memory structures. Walk through the 145 * Instead it maintains it in memblock.memory structures. Walk through the
144 * memory regions, find holes and callback for contiguous regions. 146 * memory regions, find holes and callback for contiguous regions.
145 */ 147 */
146int 148int
147walk_system_ram_range(unsigned long start_pfn, unsigned long nr_pages, 149walk_system_ram_range(unsigned long start_pfn, unsigned long nr_pages,
148 void *arg, int (*func)(unsigned long, unsigned long, void *)) 150 void *arg, int (*func)(unsigned long, unsigned long, void *))
149{ 151{
150 struct lmb_property res; 152 struct memblock_property res;
151 unsigned long pfn, len; 153 unsigned long pfn, len;
152 u64 end; 154 u64 end;
153 int ret = -1; 155 int ret = -1;
@@ -156,7 +158,7 @@ walk_system_ram_range(unsigned long start_pfn, unsigned long nr_pages,
156 res.size = (u64) nr_pages << PAGE_SHIFT; 158 res.size = (u64) nr_pages << PAGE_SHIFT;
157 159
158 end = res.base + res.size - 1; 160 end = res.base + res.size - 1;
159 while ((res.base < end) && (lmb_find(&res) >= 0)) { 161 while ((res.base < end) && (memblock_find(&res) >= 0)) {
160 pfn = (unsigned long)(res.base >> PAGE_SHIFT); 162 pfn = (unsigned long)(res.base >> PAGE_SHIFT);
161 len = (unsigned long)(res.size >> PAGE_SHIFT); 163 len = (unsigned long)(res.size >> PAGE_SHIFT);
162 ret = (*func)(pfn, len, arg); 164 ret = (*func)(pfn, len, arg);
@@ -182,8 +184,8 @@ void __init do_init_bootmem(void)
182 unsigned long total_pages; 184 unsigned long total_pages;
183 int boot_mapsize; 185 int boot_mapsize;
184 186
185 max_low_pfn = max_pfn = lmb_end_of_DRAM() >> PAGE_SHIFT; 187 max_low_pfn = max_pfn = memblock_end_of_DRAM() >> PAGE_SHIFT;
186 total_pages = (lmb_end_of_DRAM() - memstart_addr) >> PAGE_SHIFT; 188 total_pages = (memblock_end_of_DRAM() - memstart_addr) >> PAGE_SHIFT;
187#ifdef CONFIG_HIGHMEM 189#ifdef CONFIG_HIGHMEM
188 total_pages = total_lowmem >> PAGE_SHIFT; 190 total_pages = total_lowmem >> PAGE_SHIFT;
189 max_low_pfn = lowmem_end_addr >> PAGE_SHIFT; 191 max_low_pfn = lowmem_end_addr >> PAGE_SHIFT;
@@ -196,16 +198,16 @@ void __init do_init_bootmem(void)
196 */ 198 */
197 bootmap_pages = bootmem_bootmap_pages(total_pages); 199 bootmap_pages = bootmem_bootmap_pages(total_pages);
198 200
199 start = lmb_alloc(bootmap_pages << PAGE_SHIFT, PAGE_SIZE); 201 start = memblock_alloc(bootmap_pages << PAGE_SHIFT, PAGE_SIZE);
200 202
201 min_low_pfn = MEMORY_START >> PAGE_SHIFT; 203 min_low_pfn = MEMORY_START >> PAGE_SHIFT;
202 boot_mapsize = init_bootmem_node(NODE_DATA(0), start >> PAGE_SHIFT, min_low_pfn, max_low_pfn); 204 boot_mapsize = init_bootmem_node(NODE_DATA(0), start >> PAGE_SHIFT, min_low_pfn, max_low_pfn);
203 205
204 /* Add active regions with valid PFNs */ 206 /* Add active regions with valid PFNs */
205 for (i = 0; i < lmb.memory.cnt; i++) { 207 for (i = 0; i < memblock.memory.cnt; i++) {
206 unsigned long start_pfn, end_pfn; 208 unsigned long start_pfn, end_pfn;
207 start_pfn = lmb.memory.region[i].base >> PAGE_SHIFT; 209 start_pfn = memblock.memory.region[i].base >> PAGE_SHIFT;
208 end_pfn = start_pfn + lmb_size_pages(&lmb.memory, i); 210 end_pfn = start_pfn + memblock_size_pages(&memblock.memory, i);
209 add_active_range(0, start_pfn, end_pfn); 211 add_active_range(0, start_pfn, end_pfn);
210 } 212 }
211 213
@@ -216,17 +218,17 @@ void __init do_init_bootmem(void)
216 free_bootmem_with_active_regions(0, lowmem_end_addr >> PAGE_SHIFT); 218 free_bootmem_with_active_regions(0, lowmem_end_addr >> PAGE_SHIFT);
217 219
218 /* reserve the sections we're already using */ 220 /* reserve the sections we're already using */
219 for (i = 0; i < lmb.reserved.cnt; i++) { 221 for (i = 0; i < memblock.reserved.cnt; i++) {
220 unsigned long addr = lmb.reserved.region[i].base + 222 unsigned long addr = memblock.reserved.region[i].base +
221 lmb_size_bytes(&lmb.reserved, i) - 1; 223 memblock_size_bytes(&memblock.reserved, i) - 1;
222 if (addr < lowmem_end_addr) 224 if (addr < lowmem_end_addr)
223 reserve_bootmem(lmb.reserved.region[i].base, 225 reserve_bootmem(memblock.reserved.region[i].base,
224 lmb_size_bytes(&lmb.reserved, i), 226 memblock_size_bytes(&memblock.reserved, i),
225 BOOTMEM_DEFAULT); 227 BOOTMEM_DEFAULT);
226 else if (lmb.reserved.region[i].base < lowmem_end_addr) { 228 else if (memblock.reserved.region[i].base < lowmem_end_addr) {
227 unsigned long adjusted_size = lowmem_end_addr - 229 unsigned long adjusted_size = lowmem_end_addr -
228 lmb.reserved.region[i].base; 230 memblock.reserved.region[i].base;
229 reserve_bootmem(lmb.reserved.region[i].base, 231 reserve_bootmem(memblock.reserved.region[i].base,
230 adjusted_size, BOOTMEM_DEFAULT); 232 adjusted_size, BOOTMEM_DEFAULT);
231 } 233 }
232 } 234 }
@@ -234,9 +236,9 @@ void __init do_init_bootmem(void)
234 free_bootmem_with_active_regions(0, max_pfn); 236 free_bootmem_with_active_regions(0, max_pfn);
235 237
236 /* reserve the sections we're already using */ 238 /* reserve the sections we're already using */
237 for (i = 0; i < lmb.reserved.cnt; i++) 239 for (i = 0; i < memblock.reserved.cnt; i++)
238 reserve_bootmem(lmb.reserved.region[i].base, 240 reserve_bootmem(memblock.reserved.region[i].base,
239 lmb_size_bytes(&lmb.reserved, i), 241 memblock_size_bytes(&memblock.reserved, i),
240 BOOTMEM_DEFAULT); 242 BOOTMEM_DEFAULT);
241 243
242#endif 244#endif
@@ -249,20 +251,20 @@ void __init do_init_bootmem(void)
249/* mark pages that don't exist as nosave */ 251/* mark pages that don't exist as nosave */
250static int __init mark_nonram_nosave(void) 252static int __init mark_nonram_nosave(void)
251{ 253{
252 unsigned long lmb_next_region_start_pfn, 254 unsigned long memblock_next_region_start_pfn,
253 lmb_region_max_pfn; 255 memblock_region_max_pfn;
254 int i; 256 int i;
255 257
256 for (i = 0; i < lmb.memory.cnt - 1; i++) { 258 for (i = 0; i < memblock.memory.cnt - 1; i++) {
257 lmb_region_max_pfn = 259 memblock_region_max_pfn =
258 (lmb.memory.region[i].base >> PAGE_SHIFT) + 260 (memblock.memory.region[i].base >> PAGE_SHIFT) +
259 (lmb.memory.region[i].size >> PAGE_SHIFT); 261 (memblock.memory.region[i].size >> PAGE_SHIFT);
260 lmb_next_region_start_pfn = 262 memblock_next_region_start_pfn =
261 lmb.memory.region[i+1].base >> PAGE_SHIFT; 263 memblock.memory.region[i+1].base >> PAGE_SHIFT;
262 264
263 if (lmb_region_max_pfn < lmb_next_region_start_pfn) 265 if (memblock_region_max_pfn < memblock_next_region_start_pfn)
264 register_nosave_region(lmb_region_max_pfn, 266 register_nosave_region(memblock_region_max_pfn,
265 lmb_next_region_start_pfn); 267 memblock_next_region_start_pfn);
266 } 268 }
267 269
268 return 0; 270 return 0;
@@ -273,8 +275,8 @@ static int __init mark_nonram_nosave(void)
273 */ 275 */
274void __init paging_init(void) 276void __init paging_init(void)
275{ 277{
276 unsigned long total_ram = lmb_phys_mem_size(); 278 unsigned long total_ram = memblock_phys_mem_size();
277 phys_addr_t top_of_ram = lmb_end_of_DRAM(); 279 phys_addr_t top_of_ram = memblock_end_of_DRAM();
278 unsigned long max_zone_pfns[MAX_NR_ZONES]; 280 unsigned long max_zone_pfns[MAX_NR_ZONES];
279 281
280#ifdef CONFIG_PPC32 282#ifdef CONFIG_PPC32
@@ -320,7 +322,12 @@ void __init mem_init(void)
320 struct page *page; 322 struct page *page;
321 unsigned long reservedpages = 0, codesize, initsize, datasize, bsssize; 323 unsigned long reservedpages = 0, codesize, initsize, datasize, bsssize;
322 324
323 num_physpages = lmb.memory.size >> PAGE_SHIFT; 325#ifdef CONFIG_SWIOTLB
326 if (ppc_swiotlb_enable)
327 swiotlb_init(1);
328#endif
329
330 num_physpages = memblock.memory.size >> PAGE_SHIFT;
324 high_memory = (void *) __va(max_low_pfn * PAGE_SIZE); 331 high_memory = (void *) __va(max_low_pfn * PAGE_SIZE);
325 332
326#ifdef CONFIG_NEED_MULTIPLE_NODES 333#ifdef CONFIG_NEED_MULTIPLE_NODES
@@ -357,7 +364,7 @@ void __init mem_init(void)
357 highmem_mapnr = lowmem_end_addr >> PAGE_SHIFT; 364 highmem_mapnr = lowmem_end_addr >> PAGE_SHIFT;
358 for (pfn = highmem_mapnr; pfn < max_mapnr; ++pfn) { 365 for (pfn = highmem_mapnr; pfn < max_mapnr; ++pfn) {
359 struct page *page = pfn_to_page(pfn); 366 struct page *page = pfn_to_page(pfn);
360 if (lmb_is_reserved(pfn << PAGE_SHIFT)) 367 if (memblock_is_reserved(pfn << PAGE_SHIFT))
361 continue; 368 continue;
362 ClearPageReserved(page); 369 ClearPageReserved(page);
363 init_page_count(page); 370 init_page_count(page);
diff --git a/arch/powerpc/mm/mmu_context_hash32.c b/arch/powerpc/mm/mmu_context_hash32.c
index 0dfba2bf7f31..d0ee554e86e4 100644
--- a/arch/powerpc/mm/mmu_context_hash32.c
+++ b/arch/powerpc/mm/mmu_context_hash32.c
@@ -60,11 +60,7 @@
60static unsigned long next_mmu_context; 60static unsigned long next_mmu_context;
61static unsigned long context_map[LAST_CONTEXT / BITS_PER_LONG + 1]; 61static unsigned long context_map[LAST_CONTEXT / BITS_PER_LONG + 1];
62 62
63 63unsigned long __init_new_context(void)
64/*
65 * Set up the context for a new address space.
66 */
67int init_new_context(struct task_struct *t, struct mm_struct *mm)
68{ 64{
69 unsigned long ctx = next_mmu_context; 65 unsigned long ctx = next_mmu_context;
70 66
@@ -74,19 +70,38 @@ int init_new_context(struct task_struct *t, struct mm_struct *mm)
74 ctx = 0; 70 ctx = 0;
75 } 71 }
76 next_mmu_context = (ctx + 1) & LAST_CONTEXT; 72 next_mmu_context = (ctx + 1) & LAST_CONTEXT;
77 mm->context.id = ctx; 73
74 return ctx;
75}
76EXPORT_SYMBOL_GPL(__init_new_context);
77
78/*
79 * Set up the context for a new address space.
80 */
81int init_new_context(struct task_struct *t, struct mm_struct *mm)
82{
83 mm->context.id = __init_new_context();
78 84
79 return 0; 85 return 0;
80} 86}
81 87
82/* 88/*
89 * Free a context ID. Make sure to call this with preempt disabled!
90 */
91void __destroy_context(unsigned long ctx)
92{
93 clear_bit(ctx, context_map);
94}
95EXPORT_SYMBOL_GPL(__destroy_context);
96
97/*
83 * We're finished using the context for an address space. 98 * We're finished using the context for an address space.
84 */ 99 */
85void destroy_context(struct mm_struct *mm) 100void destroy_context(struct mm_struct *mm)
86{ 101{
87 preempt_disable(); 102 preempt_disable();
88 if (mm->context.id != NO_CONTEXT) { 103 if (mm->context.id != NO_CONTEXT) {
89 clear_bit(mm->context.id, context_map); 104 __destroy_context(mm->context.id);
90 mm->context.id = NO_CONTEXT; 105 mm->context.id = NO_CONTEXT;
91 } 106 }
92 preempt_enable(); 107 preempt_enable();
diff --git a/arch/powerpc/mm/mmu_context_hash64.c b/arch/powerpc/mm/mmu_context_hash64.c
index 51622daae09d..2535828aa84b 100644
--- a/arch/powerpc/mm/mmu_context_hash64.c
+++ b/arch/powerpc/mm/mmu_context_hash64.c
@@ -19,6 +19,7 @@
19#include <linux/spinlock.h> 19#include <linux/spinlock.h>
20#include <linux/idr.h> 20#include <linux/idr.h>
21#include <linux/module.h> 21#include <linux/module.h>
22#include <linux/gfp.h>
22 23
23#include <asm/mmu_context.h> 24#include <asm/mmu_context.h>
24 25
diff --git a/arch/powerpc/mm/mmu_context_nohash.c b/arch/powerpc/mm/mmu_context_nohash.c
index dbc692145ecb..ddfd7ad4e1d6 100644
--- a/arch/powerpc/mm/mmu_context_nohash.c
+++ b/arch/powerpc/mm/mmu_context_nohash.c
@@ -47,6 +47,7 @@
47#include <linux/bootmem.h> 47#include <linux/bootmem.h>
48#include <linux/notifier.h> 48#include <linux/notifier.h>
49#include <linux/cpu.h> 49#include <linux/cpu.h>
50#include <linux/slab.h>
50 51
51#include <asm/mmu_context.h> 52#include <asm/mmu_context.h>
52#include <asm/tlbflush.h> 53#include <asm/tlbflush.h>
@@ -394,10 +395,18 @@ void __init mmu_context_init(void)
394 * the PID/TID comparison is disabled, so we can use a TID of zero 395 * the PID/TID comparison is disabled, so we can use a TID of zero
395 * to represent all kernel pages as shared among all contexts. 396 * to represent all kernel pages as shared among all contexts.
396 * -- Dan 397 * -- Dan
398 *
399 * The IBM 47x core supports 16-bit PIDs, thus 65535 contexts. We
400 * should normally never have to steal though the facility is
401 * present if needed.
402 * -- BenH
397 */ 403 */
398 if (mmu_has_feature(MMU_FTR_TYPE_8xx)) { 404 if (mmu_has_feature(MMU_FTR_TYPE_8xx)) {
399 first_context = 0; 405 first_context = 0;
400 last_context = 15; 406 last_context = 15;
407 } else if (mmu_has_feature(MMU_FTR_TYPE_47x)) {
408 first_context = 1;
409 last_context = 65535;
401 } else { 410 } else {
402 first_context = 1; 411 first_context = 1;
403 last_context = 255; 412 last_context = 255;
diff --git a/arch/powerpc/mm/mmu_decl.h b/arch/powerpc/mm/mmu_decl.h
index d49a77503e19..63b84a0d3b10 100644
--- a/arch/powerpc/mm/mmu_decl.h
+++ b/arch/powerpc/mm/mmu_decl.h
@@ -69,12 +69,7 @@ static inline void _tlbil_va(unsigned long address, unsigned int pid,
69} 69}
70#endif /* CONIFG_8xx */ 70#endif /* CONIFG_8xx */
71 71
72/* 72#if defined(CONFIG_PPC_BOOK3E) || defined(CONFIG_PPC_47x)
73 * As of today, we don't support tlbivax broadcast on any
74 * implementation. When that becomes the case, this will be
75 * an extern.
76 */
77#ifdef CONFIG_PPC_BOOK3E
78extern void _tlbivax_bcast(unsigned long address, unsigned int pid, 73extern void _tlbivax_bcast(unsigned long address, unsigned int pid,
79 unsigned int tsize, unsigned int ind); 74 unsigned int tsize, unsigned int ind);
80#else 75#else
@@ -149,7 +144,15 @@ extern unsigned long mmu_mapin_ram(unsigned long top);
149extern void MMU_init_hw(void); 144extern void MMU_init_hw(void);
150extern unsigned long mmu_mapin_ram(unsigned long top); 145extern unsigned long mmu_mapin_ram(unsigned long top);
151extern void adjust_total_lowmem(void); 146extern void adjust_total_lowmem(void);
152 147extern void loadcam_entry(unsigned int index);
148
149struct tlbcam {
150 u32 MAS0;
151 u32 MAS1;
152 unsigned long MAS2;
153 u32 MAS3;
154 u32 MAS7;
155};
153#elif defined(CONFIG_PPC32) 156#elif defined(CONFIG_PPC32)
154/* anything 32-bit except 4xx or 8xx */ 157/* anything 32-bit except 4xx or 8xx */
155extern void MMU_init_hw(void); 158extern void MMU_init_hw(void);
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
index 64c00227b997..aa731af720c0 100644
--- a/arch/powerpc/mm/numa.c
+++ b/arch/powerpc/mm/numa.c
@@ -17,7 +17,7 @@
17#include <linux/nodemask.h> 17#include <linux/nodemask.h>
18#include <linux/cpu.h> 18#include <linux/cpu.h>
19#include <linux/notifier.h> 19#include <linux/notifier.h>
20#include <linux/lmb.h> 20#include <linux/memblock.h>
21#include <linux/of.h> 21#include <linux/of.h>
22#include <linux/pfn.h> 22#include <linux/pfn.h>
23#include <asm/sparsemem.h> 23#include <asm/sparsemem.h>
@@ -33,16 +33,41 @@ static int numa_debug;
33#define dbg(args...) if (numa_debug) { printk(KERN_INFO args); } 33#define dbg(args...) if (numa_debug) { printk(KERN_INFO args); }
34 34
35int numa_cpu_lookup_table[NR_CPUS]; 35int numa_cpu_lookup_table[NR_CPUS];
36cpumask_t numa_cpumask_lookup_table[MAX_NUMNODES]; 36cpumask_var_t node_to_cpumask_map[MAX_NUMNODES];
37struct pglist_data *node_data[MAX_NUMNODES]; 37struct pglist_data *node_data[MAX_NUMNODES];
38 38
39EXPORT_SYMBOL(numa_cpu_lookup_table); 39EXPORT_SYMBOL(numa_cpu_lookup_table);
40EXPORT_SYMBOL(numa_cpumask_lookup_table); 40EXPORT_SYMBOL(node_to_cpumask_map);
41EXPORT_SYMBOL(node_data); 41EXPORT_SYMBOL(node_data);
42 42
43static int min_common_depth; 43static int min_common_depth;
44static int n_mem_addr_cells, n_mem_size_cells; 44static int n_mem_addr_cells, n_mem_size_cells;
45 45
46/*
47 * Allocate node_to_cpumask_map based on number of available nodes
48 * Requires node_possible_map to be valid.
49 *
50 * Note: node_to_cpumask() is not valid until after this is done.
51 */
52static void __init setup_node_to_cpumask_map(void)
53{
54 unsigned int node, num = 0;
55
56 /* setup nr_node_ids if not done yet */
57 if (nr_node_ids == MAX_NUMNODES) {
58 for_each_node_mask(node, node_possible_map)
59 num = node;
60 nr_node_ids = num + 1;
61 }
62
63 /* allocate the map */
64 for (node = 0; node < nr_node_ids; node++)
65 alloc_bootmem_cpumask_var(&node_to_cpumask_map[node]);
66
67 /* cpumask_of_node() will now work */
68 dbg("Node to cpumask map for %d nodes\n", nr_node_ids);
69}
70
46static int __cpuinit fake_numa_create_new_node(unsigned long end_pfn, 71static int __cpuinit fake_numa_create_new_node(unsigned long end_pfn,
47 unsigned int *nid) 72 unsigned int *nid)
48{ 73{
@@ -138,8 +163,8 @@ static void __cpuinit map_cpu_to_node(int cpu, int node)
138 163
139 dbg("adding cpu %d to node %d\n", cpu, node); 164 dbg("adding cpu %d to node %d\n", cpu, node);
140 165
141 if (!(cpu_isset(cpu, numa_cpumask_lookup_table[node]))) 166 if (!(cpumask_test_cpu(cpu, node_to_cpumask_map[node])))
142 cpu_set(cpu, numa_cpumask_lookup_table[node]); 167 cpumask_set_cpu(cpu, node_to_cpumask_map[node]);
143} 168}
144 169
145#ifdef CONFIG_HOTPLUG_CPU 170#ifdef CONFIG_HOTPLUG_CPU
@@ -149,8 +174,8 @@ static void unmap_cpu_from_node(unsigned long cpu)
149 174
150 dbg("removing cpu %lu from node %d\n", cpu, node); 175 dbg("removing cpu %lu from node %d\n", cpu, node);
151 176
152 if (cpu_isset(cpu, numa_cpumask_lookup_table[node])) { 177 if (cpumask_test_cpu(cpu, node_to_cpumask_map[node])) {
153 cpu_clear(cpu, numa_cpumask_lookup_table[node]); 178 cpumask_set_cpu(cpu, node_to_cpumask_map[node]);
154 } else { 179 } else {
155 printk(KERN_ERR "WARNING: cpu %lu not found in node %d\n", 180 printk(KERN_ERR "WARNING: cpu %lu not found in node %d\n",
156 cpu, node); 181 cpu, node);
@@ -242,10 +267,12 @@ EXPORT_SYMBOL_GPL(of_node_to_nid);
242 */ 267 */
243static int __init find_min_common_depth(void) 268static int __init find_min_common_depth(void)
244{ 269{
245 int depth; 270 int depth, index;
246 const unsigned int *ref_points; 271 const unsigned int *ref_points;
247 struct device_node *rtas_root; 272 struct device_node *rtas_root;
248 unsigned int len; 273 unsigned int len;
274 struct device_node *chosen;
275 const char *vec5;
249 276
250 rtas_root = of_find_node_by_path("/rtas"); 277 rtas_root = of_find_node_by_path("/rtas");
251 278
@@ -258,11 +285,26 @@ static int __init find_min_common_depth(void)
258 * configuration (should be all 0's) and the second is for a normal 285 * configuration (should be all 0's) and the second is for a normal
259 * NUMA configuration. 286 * NUMA configuration.
260 */ 287 */
288 index = 1;
261 ref_points = of_get_property(rtas_root, 289 ref_points = of_get_property(rtas_root,
262 "ibm,associativity-reference-points", &len); 290 "ibm,associativity-reference-points", &len);
263 291
292 /*
293 * For form 1 affinity information we want the first field
294 */
295#define VEC5_AFFINITY_BYTE 5
296#define VEC5_AFFINITY 0x80
297 chosen = of_find_node_by_path("/chosen");
298 if (chosen) {
299 vec5 = of_get_property(chosen, "ibm,architecture-vec-5", NULL);
300 if (vec5 && (vec5[VEC5_AFFINITY_BYTE] & VEC5_AFFINITY)) {
301 dbg("Using form 1 affinity\n");
302 index = 0;
303 }
304 }
305
264 if ((len >= 2 * sizeof(unsigned int)) && ref_points) { 306 if ((len >= 2 * sizeof(unsigned int)) && ref_points) {
265 depth = ref_points[1]; 307 depth = ref_points[index];
266 } else { 308 } else {
267 dbg("NUMA: ibm,associativity-reference-points not found.\n"); 309 dbg("NUMA: ibm,associativity-reference-points not found.\n");
268 depth = -1; 310 depth = -1;
@@ -309,7 +351,7 @@ struct of_drconf_cell {
309#define DRCONF_MEM_RESERVED 0x00000080 351#define DRCONF_MEM_RESERVED 0x00000080
310 352
311/* 353/*
312 * Read the next lmb list entry from the ibm,dynamic-memory property 354 * Read the next memblock list entry from the ibm,dynamic-memory property
313 * and return the information in the provided of_drconf_cell structure. 355 * and return the information in the provided of_drconf_cell structure.
314 */ 356 */
315static void read_drconf_cell(struct of_drconf_cell *drmem, const u32 **cellp) 357static void read_drconf_cell(struct of_drconf_cell *drmem, const u32 **cellp)
@@ -330,8 +372,8 @@ static void read_drconf_cell(struct of_drconf_cell *drmem, const u32 **cellp)
330/* 372/*
331 * Retreive and validate the ibm,dynamic-memory property of the device tree. 373 * Retreive and validate the ibm,dynamic-memory property of the device tree.
332 * 374 *
333 * The layout of the ibm,dynamic-memory property is a number N of lmb 375 * The layout of the ibm,dynamic-memory property is a number N of memblock
334 * list entries followed by N lmb list entries. Each lmb list entry 376 * list entries followed by N memblock list entries. Each memblock list entry
335 * contains information as layed out in the of_drconf_cell struct above. 377 * contains information as layed out in the of_drconf_cell struct above.
336 */ 378 */
337static int of_get_drconf_memory(struct device_node *memory, const u32 **dm) 379static int of_get_drconf_memory(struct device_node *memory, const u32 **dm)
@@ -498,19 +540,19 @@ static unsigned long __init numa_enforce_memory_limit(unsigned long start,
498 unsigned long size) 540 unsigned long size)
499{ 541{
500 /* 542 /*
501 * We use lmb_end_of_DRAM() in here instead of memory_limit because 543 * We use memblock_end_of_DRAM() in here instead of memory_limit because
502 * we've already adjusted it for the limit and it takes care of 544 * we've already adjusted it for the limit and it takes care of
503 * having memory holes below the limit. Also, in the case of 545 * having memory holes below the limit. Also, in the case of
504 * iommu_is_off, memory_limit is not set but is implicitly enforced. 546 * iommu_is_off, memory_limit is not set but is implicitly enforced.
505 */ 547 */
506 548
507 if (start + size <= lmb_end_of_DRAM()) 549 if (start + size <= memblock_end_of_DRAM())
508 return size; 550 return size;
509 551
510 if (start >= lmb_end_of_DRAM()) 552 if (start >= memblock_end_of_DRAM())
511 return 0; 553 return 0;
512 554
513 return lmb_end_of_DRAM() - start; 555 return memblock_end_of_DRAM() - start;
514} 556}
515 557
516/* 558/*
@@ -689,7 +731,7 @@ new_range:
689 } 731 }
690 732
691 /* 733 /*
692 * Now do the same thing for each LMB listed in the ibm,dynamic-memory 734 * Now do the same thing for each MEMBLOCK listed in the ibm,dynamic-memory
693 * property in the ibm,dynamic-reconfiguration-memory node. 735 * property in the ibm,dynamic-reconfiguration-memory node.
694 */ 736 */
695 memory = of_find_node_by_path("/ibm,dynamic-reconfiguration-memory"); 737 memory = of_find_node_by_path("/ibm,dynamic-reconfiguration-memory");
@@ -701,8 +743,8 @@ new_range:
701 743
702static void __init setup_nonnuma(void) 744static void __init setup_nonnuma(void)
703{ 745{
704 unsigned long top_of_ram = lmb_end_of_DRAM(); 746 unsigned long top_of_ram = memblock_end_of_DRAM();
705 unsigned long total_ram = lmb_phys_mem_size(); 747 unsigned long total_ram = memblock_phys_mem_size();
706 unsigned long start_pfn, end_pfn; 748 unsigned long start_pfn, end_pfn;
707 unsigned int i, nid = 0; 749 unsigned int i, nid = 0;
708 750
@@ -711,9 +753,9 @@ static void __init setup_nonnuma(void)
711 printk(KERN_DEBUG "Memory hole size: %ldMB\n", 753 printk(KERN_DEBUG "Memory hole size: %ldMB\n",
712 (top_of_ram - total_ram) >> 20); 754 (top_of_ram - total_ram) >> 20);
713 755
714 for (i = 0; i < lmb.memory.cnt; ++i) { 756 for (i = 0; i < memblock.memory.cnt; ++i) {
715 start_pfn = lmb.memory.region[i].base >> PAGE_SHIFT; 757 start_pfn = memblock.memory.region[i].base >> PAGE_SHIFT;
716 end_pfn = start_pfn + lmb_size_pages(&lmb.memory, i); 758 end_pfn = start_pfn + memblock_size_pages(&memblock.memory, i);
717 759
718 fake_numa_create_new_node(end_pfn, &nid); 760 fake_numa_create_new_node(end_pfn, &nid);
719 add_active_range(nid, start_pfn, end_pfn); 761 add_active_range(nid, start_pfn, end_pfn);
@@ -737,8 +779,9 @@ void __init dump_numa_cpu_topology(void)
737 * If we used a CPU iterator here we would miss printing 779 * If we used a CPU iterator here we would miss printing
738 * the holes in the cpumap. 780 * the holes in the cpumap.
739 */ 781 */
740 for (cpu = 0; cpu < NR_CPUS; cpu++) { 782 for (cpu = 0; cpu < nr_cpu_ids; cpu++) {
741 if (cpu_isset(cpu, numa_cpumask_lookup_table[node])) { 783 if (cpumask_test_cpu(cpu,
784 node_to_cpumask_map[node])) {
742 if (count == 0) 785 if (count == 0)
743 printk(" %u", cpu); 786 printk(" %u", cpu);
744 ++count; 787 ++count;
@@ -750,7 +793,7 @@ void __init dump_numa_cpu_topology(void)
750 } 793 }
751 794
752 if (count > 1) 795 if (count > 1)
753 printk("-%u", NR_CPUS - 1); 796 printk("-%u", nr_cpu_ids - 1);
754 printk("\n"); 797 printk("\n");
755 } 798 }
756} 799}
@@ -770,7 +813,7 @@ static void __init dump_numa_memory_topology(void)
770 813
771 count = 0; 814 count = 0;
772 815
773 for (i = 0; i < lmb_end_of_DRAM(); 816 for (i = 0; i < memblock_end_of_DRAM();
774 i += (1 << SECTION_SIZE_BITS)) { 817 i += (1 << SECTION_SIZE_BITS)) {
775 if (early_pfn_to_nid(i >> PAGE_SHIFT) == node) { 818 if (early_pfn_to_nid(i >> PAGE_SHIFT) == node) {
776 if (count == 0) 819 if (count == 0)
@@ -790,7 +833,7 @@ static void __init dump_numa_memory_topology(void)
790} 833}
791 834
792/* 835/*
793 * Allocate some memory, satisfying the lmb or bootmem allocator where 836 * Allocate some memory, satisfying the memblock or bootmem allocator where
794 * required. nid is the preferred node and end is the physical address of 837 * required. nid is the preferred node and end is the physical address of
795 * the highest address in the node. 838 * the highest address in the node.
796 * 839 *
@@ -804,11 +847,11 @@ static void __init *careful_zallocation(int nid, unsigned long size,
804 int new_nid; 847 int new_nid;
805 unsigned long ret_paddr; 848 unsigned long ret_paddr;
806 849
807 ret_paddr = __lmb_alloc_base(size, align, end_pfn << PAGE_SHIFT); 850 ret_paddr = __memblock_alloc_base(size, align, end_pfn << PAGE_SHIFT);
808 851
809 /* retry over all memory */ 852 /* retry over all memory */
810 if (!ret_paddr) 853 if (!ret_paddr)
811 ret_paddr = __lmb_alloc_base(size, align, lmb_end_of_DRAM()); 854 ret_paddr = __memblock_alloc_base(size, align, memblock_end_of_DRAM());
812 855
813 if (!ret_paddr) 856 if (!ret_paddr)
814 panic("numa.c: cannot allocate %lu bytes for node %d", 857 panic("numa.c: cannot allocate %lu bytes for node %d",
@@ -818,14 +861,14 @@ static void __init *careful_zallocation(int nid, unsigned long size,
818 861
819 /* 862 /*
820 * We initialize the nodes in numeric order: 0, 1, 2... 863 * We initialize the nodes in numeric order: 0, 1, 2...
821 * and hand over control from the LMB allocator to the 864 * and hand over control from the MEMBLOCK allocator to the
822 * bootmem allocator. If this function is called for 865 * bootmem allocator. If this function is called for
823 * node 5, then we know that all nodes <5 are using the 866 * node 5, then we know that all nodes <5 are using the
824 * bootmem allocator instead of the LMB allocator. 867 * bootmem allocator instead of the MEMBLOCK allocator.
825 * 868 *
826 * So, check the nid from which this allocation came 869 * So, check the nid from which this allocation came
827 * and double check to see if we need to use bootmem 870 * and double check to see if we need to use bootmem
828 * instead of the LMB. We don't free the LMB memory 871 * instead of the MEMBLOCK. We don't free the MEMBLOCK memory
829 * since it would be useless. 872 * since it would be useless.
830 */ 873 */
831 new_nid = early_pfn_to_nid(ret_paddr >> PAGE_SHIFT); 874 new_nid = early_pfn_to_nid(ret_paddr >> PAGE_SHIFT);
@@ -850,9 +893,9 @@ static void mark_reserved_regions_for_nid(int nid)
850 struct pglist_data *node = NODE_DATA(nid); 893 struct pglist_data *node = NODE_DATA(nid);
851 int i; 894 int i;
852 895
853 for (i = 0; i < lmb.reserved.cnt; i++) { 896 for (i = 0; i < memblock.reserved.cnt; i++) {
854 unsigned long physbase = lmb.reserved.region[i].base; 897 unsigned long physbase = memblock.reserved.region[i].base;
855 unsigned long size = lmb.reserved.region[i].size; 898 unsigned long size = memblock.reserved.region[i].size;
856 unsigned long start_pfn = physbase >> PAGE_SHIFT; 899 unsigned long start_pfn = physbase >> PAGE_SHIFT;
857 unsigned long end_pfn = PFN_UP(physbase + size); 900 unsigned long end_pfn = PFN_UP(physbase + size);
858 struct node_active_region node_ar; 901 struct node_active_region node_ar;
@@ -860,7 +903,7 @@ static void mark_reserved_regions_for_nid(int nid)
860 node->node_spanned_pages; 903 node->node_spanned_pages;
861 904
862 /* 905 /*
863 * Check to make sure that this lmb.reserved area is 906 * Check to make sure that this memblock.reserved area is
864 * within the bounds of the node that we care about. 907 * within the bounds of the node that we care about.
865 * Checking the nid of the start and end points is not 908 * Checking the nid of the start and end points is not
866 * sufficient because the reserved area could span the 909 * sufficient because the reserved area could span the
@@ -918,7 +961,7 @@ void __init do_init_bootmem(void)
918 int nid; 961 int nid;
919 962
920 min_low_pfn = 0; 963 min_low_pfn = 0;
921 max_low_pfn = lmb_end_of_DRAM() >> PAGE_SHIFT; 964 max_low_pfn = memblock_end_of_DRAM() >> PAGE_SHIFT;
922 max_pfn = max_low_pfn; 965 max_pfn = max_low_pfn;
923 966
924 if (parse_numa_properties()) 967 if (parse_numa_properties())
@@ -926,10 +969,6 @@ void __init do_init_bootmem(void)
926 else 969 else
927 dump_numa_memory_topology(); 970 dump_numa_memory_topology();
928 971
929 register_cpu_notifier(&ppc64_numa_nb);
930 cpu_numa_callback(&ppc64_numa_nb, CPU_UP_PREPARE,
931 (void *)(unsigned long)boot_cpuid);
932
933 for_each_online_node(nid) { 972 for_each_online_node(nid) {
934 unsigned long start_pfn, end_pfn; 973 unsigned long start_pfn, end_pfn;
935 void *bootmem_vaddr; 974 void *bootmem_vaddr;
@@ -983,13 +1022,23 @@ void __init do_init_bootmem(void)
983 } 1022 }
984 1023
985 init_bootmem_done = 1; 1024 init_bootmem_done = 1;
1025
1026 /*
1027 * Now bootmem is initialised we can create the node to cpumask
1028 * lookup tables and setup the cpu callback to populate them.
1029 */
1030 setup_node_to_cpumask_map();
1031
1032 register_cpu_notifier(&ppc64_numa_nb);
1033 cpu_numa_callback(&ppc64_numa_nb, CPU_UP_PREPARE,
1034 (void *)(unsigned long)boot_cpuid);
986} 1035}
987 1036
988void __init paging_init(void) 1037void __init paging_init(void)
989{ 1038{
990 unsigned long max_zone_pfns[MAX_NR_ZONES]; 1039 unsigned long max_zone_pfns[MAX_NR_ZONES];
991 memset(max_zone_pfns, 0, sizeof(max_zone_pfns)); 1040 memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
992 max_zone_pfns[ZONE_DMA] = lmb_end_of_DRAM() >> PAGE_SHIFT; 1041 max_zone_pfns[ZONE_DMA] = memblock_end_of_DRAM() >> PAGE_SHIFT;
993 free_area_init_nodes(max_zone_pfns); 1042 free_area_init_nodes(max_zone_pfns);
994} 1043}
995 1044
@@ -1064,7 +1113,7 @@ static int hot_add_drconf_scn_to_nid(struct device_node *memory,
1064/* 1113/*
1065 * Find the node associated with a hot added memory section for memory 1114 * Find the node associated with a hot added memory section for memory
1066 * represented in the device tree as a node (i.e. memory@XXXX) for 1115 * represented in the device tree as a node (i.e. memory@XXXX) for
1067 * each lmb. 1116 * each memblock.
1068 */ 1117 */
1069int hot_add_node_scn_to_nid(unsigned long scn_addr) 1118int hot_add_node_scn_to_nid(unsigned long scn_addr)
1070{ 1119{
@@ -1105,8 +1154,8 @@ int hot_add_node_scn_to_nid(unsigned long scn_addr)
1105 1154
1106/* 1155/*
1107 * Find the node associated with a hot added memory section. Section 1156 * Find the node associated with a hot added memory section. Section
1108 * corresponds to a SPARSEMEM section, not an LMB. It is assumed that 1157 * corresponds to a SPARSEMEM section, not an MEMBLOCK. It is assumed that
1109 * sections are fully contained within a single LMB. 1158 * sections are fully contained within a single MEMBLOCK.
1110 */ 1159 */
1111int hot_add_scn_to_nid(unsigned long scn_addr) 1160int hot_add_scn_to_nid(unsigned long scn_addr)
1112{ 1161{
diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
index 99df697c601a..ebc2f38eb381 100644
--- a/arch/powerpc/mm/pgtable.c
+++ b/arch/powerpc/mm/pgtable.c
@@ -22,6 +22,7 @@
22 */ 22 */
23 23
24#include <linux/kernel.h> 24#include <linux/kernel.h>
25#include <linux/gfp.h>
25#include <linux/mm.h> 26#include <linux/mm.h>
26#include <linux/init.h> 27#include <linux/init.h>
27#include <linux/percpu.h> 28#include <linux/percpu.h>
diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c
index 573b3bd1c45b..a87ead0138b4 100644
--- a/arch/powerpc/mm/pgtable_32.c
+++ b/arch/powerpc/mm/pgtable_32.c
@@ -26,7 +26,8 @@
26#include <linux/vmalloc.h> 26#include <linux/vmalloc.h>
27#include <linux/init.h> 27#include <linux/init.h>
28#include <linux/highmem.h> 28#include <linux/highmem.h>
29#include <linux/lmb.h> 29#include <linux/memblock.h>
30#include <linux/slab.h>
30 31
31#include <asm/pgtable.h> 32#include <asm/pgtable.h>
32#include <asm/pgalloc.h> 33#include <asm/pgalloc.h>
@@ -114,11 +115,7 @@ pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address)
114{ 115{
115 struct page *ptepage; 116 struct page *ptepage;
116 117
117#ifdef CONFIG_HIGHPTE
118 gfp_t flags = GFP_KERNEL | __GFP_HIGHMEM | __GFP_REPEAT | __GFP_ZERO;
119#else
120 gfp_t flags = GFP_KERNEL | __GFP_REPEAT | __GFP_ZERO; 118 gfp_t flags = GFP_KERNEL | __GFP_REPEAT | __GFP_ZERO;
121#endif
122 119
123 ptepage = alloc_pages(flags, 0); 120 ptepage = alloc_pages(flags, 0);
124 if (!ptepage) 121 if (!ptepage)
@@ -145,6 +142,14 @@ ioremap_flags(phys_addr_t addr, unsigned long size, unsigned long flags)
145 /* we don't want to let _PAGE_USER and _PAGE_EXEC leak out */ 142 /* we don't want to let _PAGE_USER and _PAGE_EXEC leak out */
146 flags &= ~(_PAGE_USER | _PAGE_EXEC); 143 flags &= ~(_PAGE_USER | _PAGE_EXEC);
147 144
145#ifdef _PAGE_BAP_SR
146 /* _PAGE_USER contains _PAGE_BAP_SR on BookE using the new PTE format
147 * which means that we just cleared supervisor access... oops ;-) This
148 * restores it
149 */
150 flags |= _PAGE_BAP_SR;
151#endif
152
148 return __ioremap_caller(addr, size, flags, __builtin_return_address(0)); 153 return __ioremap_caller(addr, size, flags, __builtin_return_address(0));
149} 154}
150EXPORT_SYMBOL(ioremap_flags); 155EXPORT_SYMBOL(ioremap_flags);
@@ -193,7 +198,7 @@ __ioremap_caller(phys_addr_t addr, unsigned long size, unsigned long flags,
193 * mem_init() sets high_memory so only do the check after that. 198 * mem_init() sets high_memory so only do the check after that.
194 */ 199 */
195 if (mem_init_done && (p < virt_to_phys(high_memory)) && 200 if (mem_init_done && (p < virt_to_phys(high_memory)) &&
196 !(__allow_ioremap_reserved && lmb_is_region_reserved(p, size))) { 201 !(__allow_ioremap_reserved && memblock_is_region_reserved(p, size))) {
197 printk("__ioremap(): phys addr 0x%llx is RAM lr %p\n", 202 printk("__ioremap(): phys addr 0x%llx is RAM lr %p\n",
198 (unsigned long long)p, __builtin_return_address(0)); 203 (unsigned long long)p, __builtin_return_address(0));
199 return NULL; 204 return NULL;
@@ -326,7 +331,7 @@ void __init mapin_ram(void)
326 s = mmu_mapin_ram(top); 331 s = mmu_mapin_ram(top);
327 __mapin_ram_chunk(s, top); 332 __mapin_ram_chunk(s, top);
328 333
329 top = lmb_end_of_DRAM(); 334 top = memblock_end_of_DRAM();
330 s = wii_mmu_mapin_mem2(top); 335 s = wii_mmu_mapin_mem2(top);
331 __mapin_ram_chunk(s, top); 336 __mapin_ram_chunk(s, top);
332 } 337 }
@@ -384,11 +389,7 @@ static int __change_page_attr(struct page *page, pgprot_t prot)
384 return -EINVAL; 389 return -EINVAL;
385 __set_pte_at(&init_mm, address, kpte, mk_pte(page, prot), 0); 390 __set_pte_at(&init_mm, address, kpte, mk_pte(page, prot), 0);
386 wmb(); 391 wmb();
387#ifdef CONFIG_PPC_STD_MMU
388 flush_hash_pages(0, address, pmd_val(*kpmd), 1);
389#else
390 flush_tlb_page(NULL, address); 392 flush_tlb_page(NULL, address);
391#endif
392 pte_unmap(kpte); 393 pte_unmap(kpte);
393 394
394 return 0; 395 return 0;
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index 853d5565eed5..21d6dfab7942 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -34,7 +34,8 @@
34#include <linux/vmalloc.h> 34#include <linux/vmalloc.h>
35#include <linux/init.h> 35#include <linux/init.h>
36#include <linux/bootmem.h> 36#include <linux/bootmem.h>
37#include <linux/lmb.h> 37#include <linux/memblock.h>
38#include <linux/slab.h>
38 39
39#include <asm/pgalloc.h> 40#include <asm/pgalloc.h>
40#include <asm/page.h> 41#include <asm/page.h>
@@ -66,7 +67,7 @@ static void *early_alloc_pgtable(unsigned long size)
66 if (init_bootmem_done) 67 if (init_bootmem_done)
67 pt = __alloc_bootmem(size, size, __pa(MAX_DMA_ADDRESS)); 68 pt = __alloc_bootmem(size, size, __pa(MAX_DMA_ADDRESS));
68 else 69 else
69 pt = __va(lmb_alloc_base(size, size, 70 pt = __va(memblock_alloc_base(size, size,
70 __pa(MAX_DMA_ADDRESS))); 71 __pa(MAX_DMA_ADDRESS)));
71 memset(pt, 0, size); 72 memset(pt, 0, size);
72 73
@@ -264,6 +265,14 @@ void __iomem * ioremap_flags(phys_addr_t addr, unsigned long size,
264 /* we don't want to let _PAGE_USER and _PAGE_EXEC leak out */ 265 /* we don't want to let _PAGE_USER and _PAGE_EXEC leak out */
265 flags &= ~(_PAGE_USER | _PAGE_EXEC); 266 flags &= ~(_PAGE_USER | _PAGE_EXEC);
266 267
268#ifdef _PAGE_BAP_SR
269 /* _PAGE_USER contains _PAGE_BAP_SR on BookE using the new PTE format
270 * which means that we just cleared supervisor access... oops ;-) This
271 * restores it
272 */
273 flags |= _PAGE_BAP_SR;
274#endif
275
267 if (ppc_md.ioremap) 276 if (ppc_md.ioremap)
268 return ppc_md.ioremap(addr, size, flags, caller); 277 return ppc_md.ioremap(addr, size, flags, caller);
269 return __ioremap_caller(addr, size, flags, caller); 278 return __ioremap_caller(addr, size, flags, caller);
diff --git a/arch/powerpc/mm/ppc_mmu_32.c b/arch/powerpc/mm/ppc_mmu_32.c
index f11c2cdcb0fe..f8a01829d64f 100644
--- a/arch/powerpc/mm/ppc_mmu_32.c
+++ b/arch/powerpc/mm/ppc_mmu_32.c
@@ -26,7 +26,7 @@
26#include <linux/mm.h> 26#include <linux/mm.h>
27#include <linux/init.h> 27#include <linux/init.h>
28#include <linux/highmem.h> 28#include <linux/highmem.h>
29#include <linux/lmb.h> 29#include <linux/memblock.h>
30 30
31#include <asm/prom.h> 31#include <asm/prom.h>
32#include <asm/mmu.h> 32#include <asm/mmu.h>
@@ -223,7 +223,7 @@ void __init MMU_init_hw(void)
223 * Find some memory for the hash table. 223 * Find some memory for the hash table.
224 */ 224 */
225 if ( ppc_md.progress ) ppc_md.progress("hash:find piece", 0x322); 225 if ( ppc_md.progress ) ppc_md.progress("hash:find piece", 0x322);
226 Hash = __va(lmb_alloc_base(Hash_size, Hash_size, 226 Hash = __va(memblock_alloc_base(Hash_size, Hash_size,
227 __initial_memory_limit_addr)); 227 __initial_memory_limit_addr));
228 cacheable_memzero(Hash, Hash_size); 228 cacheable_memzero(Hash, Hash_size);
229 _SDR1 = __pa(Hash) | SDR1_LOW_BITS; 229 _SDR1 = __pa(Hash) | SDR1_LOW_BITS;
diff --git a/arch/powerpc/mm/stab.c b/arch/powerpc/mm/stab.c
index 687fddaa24c5..446a01842a73 100644
--- a/arch/powerpc/mm/stab.c
+++ b/arch/powerpc/mm/stab.c
@@ -12,7 +12,7 @@
12 * 2 of the License, or (at your option) any later version. 12 * 2 of the License, or (at your option) any later version.
13 */ 13 */
14 14
15#include <linux/lmb.h> 15#include <linux/memblock.h>
16 16
17#include <asm/pgtable.h> 17#include <asm/pgtable.h>
18#include <asm/mmu.h> 18#include <asm/mmu.h>
@@ -252,7 +252,7 @@ void __init stabs_alloc(void)
252 if (cpu == 0) 252 if (cpu == 0)
253 continue; /* stab for CPU 0 is statically allocated */ 253 continue; /* stab for CPU 0 is statically allocated */
254 254
255 newstab = lmb_alloc_base(HW_PAGE_SIZE, HW_PAGE_SIZE, 255 newstab = memblock_alloc_base(HW_PAGE_SIZE, HW_PAGE_SIZE,
256 1<<SID_SHIFT); 256 1<<SID_SHIFT);
257 newstab = (unsigned long)__va(newstab); 257 newstab = (unsigned long)__va(newstab);
258 258
diff --git a/arch/powerpc/mm/subpage-prot.c b/arch/powerpc/mm/subpage-prot.c
index a040b81e93bd..e4f8f1fc81a5 100644
--- a/arch/powerpc/mm/subpage-prot.c
+++ b/arch/powerpc/mm/subpage-prot.c
@@ -10,7 +10,6 @@
10#include <linux/errno.h> 10#include <linux/errno.h>
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12#include <linux/gfp.h> 12#include <linux/gfp.h>
13#include <linux/slab.h>
14#include <linux/types.h> 13#include <linux/types.h>
15#include <linux/mm.h> 14#include <linux/mm.h>
16#include <linux/hugetlb.h> 15#include <linux/hugetlb.h>
diff --git a/arch/powerpc/mm/tlb_nohash.c b/arch/powerpc/mm/tlb_nohash.c
index e81d5d67f834..d8695b02a968 100644
--- a/arch/powerpc/mm/tlb_nohash.c
+++ b/arch/powerpc/mm/tlb_nohash.c
@@ -34,7 +34,7 @@
34#include <linux/pagemap.h> 34#include <linux/pagemap.h>
35#include <linux/preempt.h> 35#include <linux/preempt.h>
36#include <linux/spinlock.h> 36#include <linux/spinlock.h>
37#include <linux/lmb.h> 37#include <linux/memblock.h>
38 38
39#include <asm/tlbflush.h> 39#include <asm/tlbflush.h>
40#include <asm/tlb.h> 40#include <asm/tlb.h>
@@ -426,7 +426,7 @@ static void __early_init_mmu(int boot_cpu)
426 /* Set the global containing the top of the linear mapping 426 /* Set the global containing the top of the linear mapping
427 * for use by the TLB miss code 427 * for use by the TLB miss code
428 */ 428 */
429 linear_map_top = lmb_end_of_DRAM(); 429 linear_map_top = memblock_end_of_DRAM();
430 430
431 /* A sync won't hurt us after mucking around with 431 /* A sync won't hurt us after mucking around with
432 * the MMU configuration 432 * the MMU configuration
diff --git a/arch/powerpc/mm/tlb_nohash_low.S b/arch/powerpc/mm/tlb_nohash_low.S
index bbdc5b577b85..cfa768203d08 100644
--- a/arch/powerpc/mm/tlb_nohash_low.S
+++ b/arch/powerpc/mm/tlb_nohash_low.S
@@ -10,7 +10,7 @@
10 * - tlbil_va 10 * - tlbil_va
11 * - tlbil_pid 11 * - tlbil_pid
12 * - tlbil_all 12 * - tlbil_all
13 * - tlbivax_bcast (not yet) 13 * - tlbivax_bcast
14 * 14 *
15 * Code mostly moved over from misc_32.S 15 * Code mostly moved over from misc_32.S
16 * 16 *
@@ -33,6 +33,7 @@
33#include <asm/ppc_asm.h> 33#include <asm/ppc_asm.h>
34#include <asm/asm-offsets.h> 34#include <asm/asm-offsets.h>
35#include <asm/processor.h> 35#include <asm/processor.h>
36#include <asm/bug.h>
36 37
37#if defined(CONFIG_40x) 38#if defined(CONFIG_40x)
38 39
@@ -65,7 +66,7 @@ _GLOBAL(__tlbil_va)
65 * Nothing to do for 8xx, everything is inline 66 * Nothing to do for 8xx, everything is inline
66 */ 67 */
67 68
68#elif defined(CONFIG_44x) 69#elif defined(CONFIG_44x) /* Includes 47x */
69 70
70/* 71/*
71 * 440 implementation uses tlbsx/we for tlbil_va and a full sweep 72 * 440 implementation uses tlbsx/we for tlbil_va and a full sweep
@@ -73,7 +74,13 @@ _GLOBAL(__tlbil_va)
73 */ 74 */
74_GLOBAL(__tlbil_va) 75_GLOBAL(__tlbil_va)
75 mfspr r5,SPRN_MMUCR 76 mfspr r5,SPRN_MMUCR
76 rlwimi r5,r4,0,24,31 /* Set TID */ 77 mfmsr r10
78
79 /*
80 * We write 16 bits of STID since 47x supports that much, we
81 * will never be passed out of bounds values on 440 (hopefully)
82 */
83 rlwimi r5,r4,0,16,31
77 84
78 /* We have to run the search with interrupts disabled, otherwise 85 /* We have to run the search with interrupts disabled, otherwise
79 * an interrupt which causes a TLB miss can clobber the MMUCR 86 * an interrupt which causes a TLB miss can clobber the MMUCR
@@ -83,24 +90,41 @@ _GLOBAL(__tlbil_va)
83 * and restoring MMUCR, so only normal interrupts have to be 90 * and restoring MMUCR, so only normal interrupts have to be
84 * taken care of. 91 * taken care of.
85 */ 92 */
86 mfmsr r4
87 wrteei 0 93 wrteei 0
88 mtspr SPRN_MMUCR,r5 94 mtspr SPRN_MMUCR,r5
89 tlbsx. r3, 0, r3 95 tlbsx. r6,0,r3
90 wrtee r4 96 bne 10f
91 bne 1f
92 sync 97 sync
93 /* There are only 64 TLB entries, so r3 < 64, 98BEGIN_MMU_FTR_SECTION
94 * which means bit 22, is clear. Since 22 is 99 b 2f
95 * the V bit in the TLB_PAGEID, loading this 100END_MMU_FTR_SECTION_IFSET(MMU_FTR_TYPE_47x)
101 /* On 440 There are only 64 TLB entries, so r3 < 64, which means bit
102 * 22, is clear. Since 22 is the V bit in the TLB_PAGEID, loading this
96 * value will invalidate the TLB entry. 103 * value will invalidate the TLB entry.
97 */ 104 */
98 tlbwe r3, r3, PPC44x_TLB_PAGEID 105 tlbwe r6,r6,PPC44x_TLB_PAGEID
99 isync 106 isync
1001: blr 10710: wrtee r10
108 blr
1092:
110#ifdef CONFIG_PPC_47x
111 oris r7,r6,0x8000 /* specify way explicitely */
112 clrrwi r4,r3,12 /* get an EPN for the hashing with V = 0 */
113 ori r4,r4,PPC47x_TLBE_SIZE
114 tlbwe r4,r7,0 /* write it */
115 isync
116 wrtee r10
117 blr
118#else /* CONFIG_PPC_47x */
1191: trap
120 EMIT_BUG_ENTRY 1b,__FILE__,__LINE__,0;
121#endif /* !CONFIG_PPC_47x */
101 122
102_GLOBAL(_tlbil_all) 123_GLOBAL(_tlbil_all)
103_GLOBAL(_tlbil_pid) 124_GLOBAL(_tlbil_pid)
125BEGIN_MMU_FTR_SECTION
126 b 2f
127END_MMU_FTR_SECTION_IFSET(MMU_FTR_TYPE_47x)
104 li r3,0 128 li r3,0
105 sync 129 sync
106 130
@@ -115,6 +139,76 @@ _GLOBAL(_tlbil_pid)
115 139
116 isync 140 isync
117 blr 141 blr
1422:
143#ifdef CONFIG_PPC_47x
144 /* 476 variant. There's not simple way to do this, hopefully we'll
145 * try to limit the amount of such full invalidates
146 */
147 mfmsr r11 /* Interrupts off */
148 wrteei 0
149 li r3,-1 /* Current set */
150 lis r10,tlb_47x_boltmap@h
151 ori r10,r10,tlb_47x_boltmap@l
152 lis r7,0x8000 /* Specify way explicitely */
153
154 b 9f /* For each set */
155
1561: li r9,4 /* Number of ways */
157 li r4,0 /* Current way */
158 li r6,0 /* Default entry value 0 */
159 andi. r0,r8,1 /* Check if way 0 is bolted */
160 mtctr r9 /* Load way counter */
161 bne- 3f /* Bolted, skip loading it */
162
1632: /* For each way */
164 or r5,r3,r4 /* Make way|index for tlbre */
165 rlwimi r5,r5,16,8,15 /* Copy index into position */
166 tlbre r6,r5,0 /* Read entry */
1673: addis r4,r4,0x2000 /* Next way */
168 andi. r0,r6,PPC47x_TLB0_VALID /* Valid entry ? */
169 beq 4f /* Nope, skip it */
170 rlwimi r7,r5,0,1,2 /* Insert way number */
171 rlwinm r6,r6,0,21,19 /* Clear V */
172 tlbwe r6,r7,0 /* Write it */
1734: bdnz 2b /* Loop for each way */
174 srwi r8,r8,1 /* Next boltmap bit */
1759: cmpwi cr1,r3,255 /* Last set done ? */
176 addi r3,r3,1 /* Next set */
177 beq cr1,1f /* End of loop */
178 andi. r0,r3,0x1f /* Need to load a new boltmap word ? */
179 bne 1b /* No, loop */
180 lwz r8,0(r10) /* Load boltmap entry */
181 addi r10,r10,4 /* Next word */
182 b 1b /* Then loop */
1831: isync /* Sync shadows */
184 wrtee r11
185#else /* CONFIG_PPC_47x */
1861: trap
187 EMIT_BUG_ENTRY 1b,__FILE__,__LINE__,0;
188#endif /* !CONFIG_PPC_47x */
189 blr
190
191#ifdef CONFIG_PPC_47x
192/*
193 * _tlbivax_bcast is only on 47x. We don't bother doing a runtime
194 * check though, it will blow up soon enough if we mistakenly try
195 * to use it on a 440.
196 */
197_GLOBAL(_tlbivax_bcast)
198 mfspr r5,SPRN_MMUCR
199 mfmsr r10
200 rlwimi r5,r4,0,16,31
201 wrteei 0
202 mtspr SPRN_MMUCR,r5
203/* tlbivax 0,r3 - use .long to avoid binutils deps */
204 .long 0x7c000624 | (r3 << 11)
205 isync
206 eieio
207 tlbsync
208 sync
209 wrtee r10
210 blr
211#endif /* CONFIG_PPC_47x */
118 212
119#elif defined(CONFIG_FSL_BOOKE) 213#elif defined(CONFIG_FSL_BOOKE)
120/* 214/*
@@ -271,3 +365,31 @@ _GLOBAL(set_context)
271#else 365#else
272#error Unsupported processor type ! 366#error Unsupported processor type !
273#endif 367#endif
368
369#if defined(CONFIG_FSL_BOOKE)
370/*
371 * extern void loadcam_entry(unsigned int index)
372 *
373 * Load TLBCAM[index] entry in to the L2 CAM MMU
374 */
375_GLOBAL(loadcam_entry)
376 LOAD_REG_ADDR(r4, TLBCAM)
377 mulli r5,r3,TLBCAM_SIZE
378 add r3,r5,r4
379 lwz r4,TLBCAM_MAS0(r3)
380 mtspr SPRN_MAS0,r4
381 lwz r4,TLBCAM_MAS1(r3)
382 mtspr SPRN_MAS1,r4
383 PPC_LL r4,TLBCAM_MAS2(r3)
384 mtspr SPRN_MAS2,r4
385 lwz r4,TLBCAM_MAS3(r3)
386 mtspr SPRN_MAS3,r4
387BEGIN_MMU_FTR_SECTION
388 lwz r4,TLBCAM_MAS7(r3)
389 mtspr SPRN_MAS7,r4
390END_MMU_FTR_SECTION_IFSET(MMU_FTR_BIG_PHYS)
391 isync
392 tlbwe
393 isync
394 blr
395#endif
diff --git a/arch/powerpc/oprofile/cell/spu_task_sync.c b/arch/powerpc/oprofile/cell/spu_task_sync.c
index 6b793aeda72e..642fca137ccb 100644
--- a/arch/powerpc/oprofile/cell/spu_task_sync.c
+++ b/arch/powerpc/oprofile/cell/spu_task_sync.c
@@ -26,6 +26,7 @@
26#include <linux/notifier.h> 26#include <linux/notifier.h>
27#include <linux/numa.h> 27#include <linux/numa.h>
28#include <linux/oprofile.h> 28#include <linux/oprofile.h>
29#include <linux/slab.h>
29#include <linux/spinlock.h> 30#include <linux/spinlock.h>
30#include "pr_util.h" 31#include "pr_util.h"
31 32
diff --git a/arch/powerpc/oprofile/cell/vma_map.c b/arch/powerpc/oprofile/cell/vma_map.c
index c591339daf58..c579b16845da 100644
--- a/arch/powerpc/oprofile/cell/vma_map.c
+++ b/arch/powerpc/oprofile/cell/vma_map.c
@@ -20,6 +20,7 @@
20#include <linux/string.h> 20#include <linux/string.h>
21#include <linux/uaccess.h> 21#include <linux/uaccess.h>
22#include <linux/elf.h> 22#include <linux/elf.h>
23#include <linux/slab.h>
23#include "pr_util.h" 24#include "pr_util.h"
24 25
25 26
diff --git a/arch/powerpc/oprofile/op_model_cell.c b/arch/powerpc/oprofile/op_model_cell.c
index 2c9e52267292..7fd90d02d8c6 100644
--- a/arch/powerpc/oprofile/op_model_cell.c
+++ b/arch/powerpc/oprofile/op_model_cell.c
@@ -1077,7 +1077,7 @@ static int calculate_lfsr(int n)
1077 index = ENTRIES-1; 1077 index = ENTRIES-1;
1078 1078
1079 /* make sure index is valid */ 1079 /* make sure index is valid */
1080 if ((index > ENTRIES) || (index < 0)) 1080 if ((index >= ENTRIES) || (index < 0))
1081 index = ENTRIES-1; 1081 index = ENTRIES-1;
1082 1082
1083 return initial_lfsr[index]; 1083 return initial_lfsr[index];
diff --git a/arch/powerpc/platforms/44x/Kconfig b/arch/powerpc/platforms/44x/Kconfig
index 7486bffd3ebb..69d668c072ae 100644
--- a/arch/powerpc/platforms/44x/Kconfig
+++ b/arch/powerpc/platforms/44x/Kconfig
@@ -1,3 +1,12 @@
1config PPC_47x
2 bool "Support for 47x variant"
3 depends on 44x
4 default n
5 select MPIC
6 help
7 This option enables support for the 47x family of processors and is
8 not currently compatible with other 44x or 46x varients
9
1config BAMBOO 10config BAMBOO
2 bool "Bamboo" 11 bool "Bamboo"
3 depends on 44x 12 depends on 44x
@@ -151,6 +160,28 @@ config YOSEMITE
151 help 160 help
152 This option enables support for the AMCC PPC440EP evaluation board. 161 This option enables support for the AMCC PPC440EP evaluation board.
153 162
163config ISS4xx
164 bool "ISS 4xx Simulator"
165 depends on (44x || 40x)
166 default n
167 select 405GP if 40x
168 select 440GP if 44x && !PPC_47x
169 select PPC_FPU
170 select OF_RTC
171 help
172 This option enables support for the IBM ISS simulation environment
173
174config ICON
175 bool "Icon"
176 depends on 44x
177 default n
178 select PPC44x_SIMPLE
179 select 440SPe
180 select PCI
181 select PPC4xx_PCI_EXPRESS
182 help
183 This option enables support for the AMCC PPC440SPe evaluation board.
184
154#config LUAN 185#config LUAN
155# bool "Luan" 186# bool "Luan"
156# depends on 44x 187# depends on 44x
diff --git a/arch/powerpc/platforms/44x/Makefile b/arch/powerpc/platforms/44x/Makefile
index ee6185aeaa3b..82ff326e0795 100644
--- a/arch/powerpc/platforms/44x/Makefile
+++ b/arch/powerpc/platforms/44x/Makefile
@@ -5,3 +5,4 @@ obj-$(CONFIG_SAM440EP) += sam440ep.o
5obj-$(CONFIG_WARP) += warp.o 5obj-$(CONFIG_WARP) += warp.o
6obj-$(CONFIG_XILINX_VIRTEX_5_FXT) += virtex.o 6obj-$(CONFIG_XILINX_VIRTEX_5_FXT) += virtex.o
7obj-$(CONFIG_XILINX_ML510) += virtex_ml510.o 7obj-$(CONFIG_XILINX_ML510) += virtex_ml510.o
8obj-$(CONFIG_ISS4xx) += iss4xx.o
diff --git a/arch/powerpc/platforms/44x/iss4xx.c b/arch/powerpc/platforms/44x/iss4xx.c
new file mode 100644
index 000000000000..aa46e9d1e771
--- /dev/null
+++ b/arch/powerpc/platforms/44x/iss4xx.c
@@ -0,0 +1,167 @@
1/*
2 * PPC476 board specific routines
3 *
4 * Copyright 2010 Torez Smith, IBM Corporation.
5 *
6 * Based on earlier code:
7 * Matt Porter <mporter@kernel.crashing.org>
8 * Copyright 2002-2005 MontaVista Software Inc.
9 *
10 * Eugene Surovegin <eugene.surovegin@zultys.com> or <ebs@ebshome.net>
11 * Copyright (c) 2003-2005 Zultys Technologies
12 *
13 * Rewritten and ported to the merged powerpc tree:
14 * Copyright 2007 David Gibson <dwg@au1.ibm.com>, IBM Corporation.
15 *
16 * This program is free software; you can redistribute it and/or modify it
17 * under the terms of the GNU General Public License as published by the
18 * Free Software Foundation; either version 2 of the License, or (at your
19 * option) any later version.
20 */
21
22#include <linux/init.h>
23#include <linux/of_platform.h>
24#include <linux/rtc.h>
25
26#include <asm/machdep.h>
27#include <asm/prom.h>
28#include <asm/udbg.h>
29#include <asm/time.h>
30#include <asm/uic.h>
31#include <asm/ppc4xx.h>
32#include <asm/mpic.h>
33#include <asm/mmu.h>
34
35static __initdata struct of_device_id iss4xx_of_bus[] = {
36 { .compatible = "ibm,plb4", },
37 { .compatible = "ibm,plb6", },
38 { .compatible = "ibm,opb", },
39 { .compatible = "ibm,ebc", },
40 {},
41};
42
43static int __init iss4xx_device_probe(void)
44{
45 of_platform_bus_probe(NULL, iss4xx_of_bus, NULL);
46 of_instantiate_rtc();
47
48 return 0;
49}
50machine_device_initcall(iss4xx, iss4xx_device_probe);
51
52/* We can have either UICs or MPICs */
53static void __init iss4xx_init_irq(void)
54{
55 struct device_node *np;
56
57 /* Find top level interrupt controller */
58 for_each_node_with_property(np, "interrupt-controller") {
59 if (of_get_property(np, "interrupts", NULL) == NULL)
60 break;
61 }
62 if (np == NULL)
63 panic("Can't find top level interrupt controller");
64
65 /* Check type and do appropriate initialization */
66 if (of_device_is_compatible(np, "ibm,uic")) {
67 uic_init_tree();
68 ppc_md.get_irq = uic_get_irq;
69#ifdef CONFIG_MPIC
70 } else if (of_device_is_compatible(np, "chrp,open-pic")) {
71 /* The MPIC driver will get everything it needs from the
72 * device-tree, just pass 0 to all arguments
73 */
74 struct mpic *mpic = mpic_alloc(np, 0, MPIC_PRIMARY, 0, 0,
75 " MPIC ");
76 BUG_ON(mpic == NULL);
77 mpic_init(mpic);
78 ppc_md.get_irq = mpic_get_irq;
79#endif
80 } else
81 panic("Unrecognized top level interrupt controller");
82}
83
84#ifdef CONFIG_SMP
85static void __cpuinit smp_iss4xx_setup_cpu(int cpu)
86{
87 mpic_setup_this_cpu();
88}
89
90static void __cpuinit smp_iss4xx_kick_cpu(int cpu)
91{
92 struct device_node *cpunode = of_get_cpu_node(cpu, NULL);
93 const u64 *spin_table_addr_prop;
94 u32 *spin_table;
95 extern void start_secondary_47x(void);
96
97 BUG_ON(cpunode == NULL);
98
99 /* Assume spin table. We could test for the enable-method in
100 * the device-tree but currently there's little point as it's
101 * our only supported method
102 */
103 spin_table_addr_prop = of_get_property(cpunode, "cpu-release-addr",
104 NULL);
105 if (spin_table_addr_prop == NULL) {
106 pr_err("CPU%d: Can't start, missing cpu-release-addr !\n", cpu);
107 return;
108 }
109
110 /* Assume it's mapped as part of the linear mapping. This is a bit
111 * fishy but will work fine for now
112 */
113 spin_table = (u32 *)__va(*spin_table_addr_prop);
114 pr_debug("CPU%d: Spin table mapped at %p\n", cpu, spin_table);
115
116 spin_table[3] = cpu;
117 smp_wmb();
118 spin_table[1] = __pa(start_secondary_47x);
119 mb();
120}
121
122static struct smp_ops_t iss_smp_ops = {
123 .probe = smp_mpic_probe,
124 .message_pass = smp_mpic_message_pass,
125 .setup_cpu = smp_iss4xx_setup_cpu,
126 .kick_cpu = smp_iss4xx_kick_cpu,
127 .give_timebase = smp_generic_give_timebase,
128 .take_timebase = smp_generic_take_timebase,
129};
130
131static void __init iss4xx_smp_init(void)
132{
133 if (mmu_has_feature(MMU_FTR_TYPE_47x))
134 smp_ops = &iss_smp_ops;
135}
136
137#else /* CONFIG_SMP */
138static void __init iss4xx_smp_init(void) { }
139#endif /* CONFIG_SMP */
140
141static void __init iss4xx_setup_arch(void)
142{
143 iss4xx_smp_init();
144}
145
146/*
147 * Called very early, MMU is off, device-tree isn't unflattened
148 */
149static int __init iss4xx_probe(void)
150{
151 unsigned long root = of_get_flat_dt_root();
152
153 if (!of_flat_dt_is_compatible(root, "ibm,iss-4xx"))
154 return 0;
155
156 return 1;
157}
158
159define_machine(iss4xx) {
160 .name = "ISS-4xx",
161 .probe = iss4xx_probe,
162 .progress = udbg_progress,
163 .init_IRQ = iss4xx_init_irq,
164 .setup_arch = iss4xx_setup_arch,
165 .restart = ppc4xx_reset_system,
166 .calibrate_decr = generic_calibrate_decr,
167};
diff --git a/arch/powerpc/platforms/44x/ppc44x_simple.c b/arch/powerpc/platforms/44x/ppc44x_simple.c
index e8c23ccaa1fc..5f7a29d7f590 100644
--- a/arch/powerpc/platforms/44x/ppc44x_simple.c
+++ b/arch/powerpc/platforms/44x/ppc44x_simple.c
@@ -61,7 +61,8 @@ static char *board[] __initdata = {
61 "amcc,redwood", 61 "amcc,redwood",
62 "amcc,sequoia", 62 "amcc,sequoia",
63 "amcc,taishan", 63 "amcc,taishan",
64 "amcc,yosemite" 64 "amcc,yosemite",
65 "mosaixtech,icon"
65}; 66};
66 67
67static int __init ppc44x_probe(void) 68static int __init ppc44x_probe(void)
diff --git a/arch/powerpc/platforms/44x/warp.c b/arch/powerpc/platforms/44x/warp.c
index e5c1b096c3e1..8f771395f424 100644
--- a/arch/powerpc/platforms/44x/warp.c
+++ b/arch/powerpc/platforms/44x/warp.c
@@ -17,6 +17,7 @@
17#include <linux/delay.h> 17#include <linux/delay.h>
18#include <linux/of_gpio.h> 18#include <linux/of_gpio.h>
19#include <linux/of_i2c.h> 19#include <linux/of_i2c.h>
20#include <linux/slab.h>
20 21
21#include <asm/machdep.h> 22#include <asm/machdep.h>
22#include <asm/prom.h> 23#include <asm/prom.h>
diff --git a/arch/powerpc/platforms/512x/mpc512x_shared.c b/arch/powerpc/platforms/512x/mpc512x_shared.c
index b7f518a60f03..707e572b7c40 100644
--- a/arch/powerpc/platforms/512x/mpc512x_shared.c
+++ b/arch/powerpc/platforms/512x/mpc512x_shared.c
@@ -22,6 +22,7 @@
22#include <asm/prom.h> 22#include <asm/prom.h>
23#include <asm/time.h> 23#include <asm/time.h>
24#include <asm/mpc5121.h> 24#include <asm/mpc5121.h>
25#include <asm/mpc52xx_psc.h>
25 26
26#include "mpc512x.h" 27#include "mpc512x.h"
27 28
@@ -95,9 +96,86 @@ void __init mpc512x_declare_of_platform_devices(void)
95 } 96 }
96} 97}
97 98
99#define DEFAULT_FIFO_SIZE 16
100
101static unsigned int __init get_fifo_size(struct device_node *np,
102 char *prop_name)
103{
104 const unsigned int *fp;
105
106 fp = of_get_property(np, prop_name, NULL);
107 if (fp)
108 return *fp;
109
110 pr_warning("no %s property in %s node, defaulting to %d\n",
111 prop_name, np->full_name, DEFAULT_FIFO_SIZE);
112
113 return DEFAULT_FIFO_SIZE;
114}
115
116#define FIFOC(_base) ((struct mpc512x_psc_fifo __iomem *) \
117 ((u32)(_base) + sizeof(struct mpc52xx_psc)))
118
119/* Init PSC FIFO space for TX and RX slices */
120void __init mpc512x_psc_fifo_init(void)
121{
122 struct device_node *np;
123 void __iomem *psc;
124 unsigned int tx_fifo_size;
125 unsigned int rx_fifo_size;
126 int fifobase = 0; /* current fifo address in 32 bit words */
127
128 for_each_compatible_node(np, NULL, "fsl,mpc5121-psc") {
129 tx_fifo_size = get_fifo_size(np, "fsl,tx-fifo-size");
130 rx_fifo_size = get_fifo_size(np, "fsl,rx-fifo-size");
131
132 /* size in register is in 4 byte units */
133 tx_fifo_size /= 4;
134 rx_fifo_size /= 4;
135 if (!tx_fifo_size)
136 tx_fifo_size = 1;
137 if (!rx_fifo_size)
138 rx_fifo_size = 1;
139
140 psc = of_iomap(np, 0);
141 if (!psc) {
142 pr_err("%s: Can't map %s device\n",
143 __func__, np->full_name);
144 continue;
145 }
146
147 /* FIFO space is 4KiB, check if requested size is available */
148 if ((fifobase + tx_fifo_size + rx_fifo_size) > 0x1000) {
149 pr_err("%s: no fifo space available for %s\n",
150 __func__, np->full_name);
151 iounmap(psc);
152 /*
153 * chances are that another device requests less
154 * fifo space, so we continue.
155 */
156 continue;
157 }
158
159 /* set tx and rx fifo size registers */
160 out_be32(&FIFOC(psc)->txsz, (fifobase << 16) | tx_fifo_size);
161 fifobase += tx_fifo_size;
162 out_be32(&FIFOC(psc)->rxsz, (fifobase << 16) | rx_fifo_size);
163 fifobase += rx_fifo_size;
164
165 /* reset and enable the slices */
166 out_be32(&FIFOC(psc)->txcmd, 0x80);
167 out_be32(&FIFOC(psc)->txcmd, 0x01);
168 out_be32(&FIFOC(psc)->rxcmd, 0x80);
169 out_be32(&FIFOC(psc)->rxcmd, 0x01);
170
171 iounmap(psc);
172 }
173}
174
98void __init mpc512x_init(void) 175void __init mpc512x_init(void)
99{ 176{
100 mpc512x_declare_of_platform_devices(); 177 mpc512x_declare_of_platform_devices();
101 mpc5121_clk_init(); 178 mpc5121_clk_init();
102 mpc512x_restart_init(); 179 mpc512x_restart_init();
180 mpc512x_psc_fifo_init();
103} 181}
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpio.c b/arch/powerpc/platforms/52xx/mpc52xx_gpio.c
index 2b8d8ef32e4e..ca5305a5bd61 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_gpio.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_gpio.c
@@ -19,6 +19,7 @@
19 19
20#include <linux/of.h> 20#include <linux/of.h>
21#include <linux/kernel.h> 21#include <linux/kernel.h>
22#include <linux/slab.h>
22#include <linux/of_gpio.h> 23#include <linux/of_gpio.h>
23#include <linux/io.h> 24#include <linux/io.h>
24#include <linux/of_platform.h> 25#include <linux/of_platform.h>
@@ -167,7 +168,7 @@ static int __devinit mpc52xx_wkup_gpiochip_probe(struct of_device *ofdev,
167 ofchip->gc.get = mpc52xx_wkup_gpio_get; 168 ofchip->gc.get = mpc52xx_wkup_gpio_get;
168 ofchip->gc.set = mpc52xx_wkup_gpio_set; 169 ofchip->gc.set = mpc52xx_wkup_gpio_set;
169 170
170 ret = of_mm_gpiochip_add(ofdev->node, &chip->mmchip); 171 ret = of_mm_gpiochip_add(ofdev->dev.of_node, &chip->mmchip);
171 if (ret) 172 if (ret)
172 return ret; 173 return ret;
173 174
@@ -192,8 +193,11 @@ static const struct of_device_id mpc52xx_wkup_gpiochip_match[] = {
192}; 193};
193 194
194static struct of_platform_driver mpc52xx_wkup_gpiochip_driver = { 195static struct of_platform_driver mpc52xx_wkup_gpiochip_driver = {
195 .name = "gpio_wkup", 196 .driver = {
196 .match_table = mpc52xx_wkup_gpiochip_match, 197 .name = "gpio_wkup",
198 .owner = THIS_MODULE,
199 .of_match_table = mpc52xx_wkup_gpiochip_match,
200 },
197 .probe = mpc52xx_wkup_gpiochip_probe, 201 .probe = mpc52xx_wkup_gpiochip_probe,
198 .remove = mpc52xx_gpiochip_remove, 202 .remove = mpc52xx_gpiochip_remove,
199}; 203};
@@ -328,7 +332,7 @@ static int __devinit mpc52xx_simple_gpiochip_probe(struct of_device *ofdev,
328 ofchip->gc.get = mpc52xx_simple_gpio_get; 332 ofchip->gc.get = mpc52xx_simple_gpio_get;
329 ofchip->gc.set = mpc52xx_simple_gpio_set; 333 ofchip->gc.set = mpc52xx_simple_gpio_set;
330 334
331 ret = of_mm_gpiochip_add(ofdev->node, &chip->mmchip); 335 ret = of_mm_gpiochip_add(ofdev->dev.of_node, &chip->mmchip);
332 if (ret) 336 if (ret)
333 return ret; 337 return ret;
334 338
@@ -348,8 +352,11 @@ static const struct of_device_id mpc52xx_simple_gpiochip_match[] = {
348}; 352};
349 353
350static struct of_platform_driver mpc52xx_simple_gpiochip_driver = { 354static struct of_platform_driver mpc52xx_simple_gpiochip_driver = {
351 .name = "gpio", 355 .driver = {
352 .match_table = mpc52xx_simple_gpiochip_match, 356 .name = "gpio",
357 .owner = THIS_MODULE,
358 .of_match_table = mpc52xx_simple_gpiochip_match,
359 },
353 .probe = mpc52xx_simple_gpiochip_probe, 360 .probe = mpc52xx_simple_gpiochip_probe,
354 .remove = mpc52xx_gpiochip_remove, 361 .remove = mpc52xx_gpiochip_remove,
355}; 362};
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
index 5d7cc88dae6b..46c93578cbf0 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
@@ -62,6 +62,7 @@
62#include <linux/of_platform.h> 62#include <linux/of_platform.h>
63#include <linux/of_gpio.h> 63#include <linux/of_gpio.h>
64#include <linux/kernel.h> 64#include <linux/kernel.h>
65#include <linux/slab.h>
65#include <linux/watchdog.h> 66#include <linux/watchdog.h>
66#include <linux/miscdevice.h> 67#include <linux/miscdevice.h>
67#include <linux/uaccess.h> 68#include <linux/uaccess.h>
@@ -733,8 +734,8 @@ static int __devinit mpc52xx_gpt_probe(struct of_device *ofdev,
733 734
734 spin_lock_init(&gpt->lock); 735 spin_lock_init(&gpt->lock);
735 gpt->dev = &ofdev->dev; 736 gpt->dev = &ofdev->dev;
736 gpt->ipb_freq = mpc5xxx_get_bus_frequency(ofdev->node); 737 gpt->ipb_freq = mpc5xxx_get_bus_frequency(ofdev->dev.of_node);
737 gpt->regs = of_iomap(ofdev->node, 0); 738 gpt->regs = of_iomap(ofdev->dev.of_node, 0);
738 if (!gpt->regs) { 739 if (!gpt->regs) {
739 kfree(gpt); 740 kfree(gpt);
740 return -ENOMEM; 741 return -ENOMEM;
@@ -742,21 +743,21 @@ static int __devinit mpc52xx_gpt_probe(struct of_device *ofdev,
742 743
743 dev_set_drvdata(&ofdev->dev, gpt); 744 dev_set_drvdata(&ofdev->dev, gpt);
744 745
745 mpc52xx_gpt_gpio_setup(gpt, ofdev->node); 746 mpc52xx_gpt_gpio_setup(gpt, ofdev->dev.of_node);
746 mpc52xx_gpt_irq_setup(gpt, ofdev->node); 747 mpc52xx_gpt_irq_setup(gpt, ofdev->dev.of_node);
747 748
748 mutex_lock(&mpc52xx_gpt_list_mutex); 749 mutex_lock(&mpc52xx_gpt_list_mutex);
749 list_add(&gpt->list, &mpc52xx_gpt_list); 750 list_add(&gpt->list, &mpc52xx_gpt_list);
750 mutex_unlock(&mpc52xx_gpt_list_mutex); 751 mutex_unlock(&mpc52xx_gpt_list_mutex);
751 752
752 /* check if this device could be a watchdog */ 753 /* check if this device could be a watchdog */
753 if (of_get_property(ofdev->node, "fsl,has-wdt", NULL) || 754 if (of_get_property(ofdev->dev.of_node, "fsl,has-wdt", NULL) ||
754 of_get_property(ofdev->node, "has-wdt", NULL)) { 755 of_get_property(ofdev->dev.of_node, "has-wdt", NULL)) {
755 const u32 *on_boot_wdt; 756 const u32 *on_boot_wdt;
756 757
757 gpt->wdt_mode = MPC52xx_GPT_CAN_WDT; 758 gpt->wdt_mode = MPC52xx_GPT_CAN_WDT;
758 on_boot_wdt = of_get_property(ofdev->node, "fsl,wdt-on-boot", 759 on_boot_wdt = of_get_property(ofdev->dev.of_node,
759 NULL); 760 "fsl,wdt-on-boot", NULL);
760 if (on_boot_wdt) { 761 if (on_boot_wdt) {
761 dev_info(gpt->dev, "used as watchdog\n"); 762 dev_info(gpt->dev, "used as watchdog\n");
762 gpt->wdt_mode |= MPC52xx_GPT_IS_WDT; 763 gpt->wdt_mode |= MPC52xx_GPT_IS_WDT;
@@ -783,8 +784,11 @@ static const struct of_device_id mpc52xx_gpt_match[] = {
783}; 784};
784 785
785static struct of_platform_driver mpc52xx_gpt_driver = { 786static struct of_platform_driver mpc52xx_gpt_driver = {
786 .name = "mpc52xx-gpt", 787 .driver = {
787 .match_table = mpc52xx_gpt_match, 788 .name = "mpc52xx-gpt",
789 .owner = THIS_MODULE,
790 .of_match_table = mpc52xx_gpt_match,
791 },
788 .probe = mpc52xx_gpt_probe, 792 .probe = mpc52xx_gpt_probe,
789 .remove = mpc52xx_gpt_remove, 793 .remove = mpc52xx_gpt_remove,
790}; 794};
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c b/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c
index 929d017535a3..e86aec644501 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c
@@ -445,14 +445,14 @@ mpc52xx_lpbfifo_probe(struct of_device *op, const struct of_device_id *match)
445 if (lpbfifo.dev != NULL) 445 if (lpbfifo.dev != NULL)
446 return -ENOSPC; 446 return -ENOSPC;
447 447
448 lpbfifo.irq = irq_of_parse_and_map(op->node, 0); 448 lpbfifo.irq = irq_of_parse_and_map(op->dev.of_node, 0);
449 if (!lpbfifo.irq) 449 if (!lpbfifo.irq)
450 return -ENODEV; 450 return -ENODEV;
451 451
452 if (of_address_to_resource(op->node, 0, &res)) 452 if (of_address_to_resource(op->dev.of_node, 0, &res))
453 return -ENODEV; 453 return -ENODEV;
454 lpbfifo.regs_phys = res.start; 454 lpbfifo.regs_phys = res.start;
455 lpbfifo.regs = of_iomap(op->node, 0); 455 lpbfifo.regs = of_iomap(op->dev.of_node, 0);
456 if (!lpbfifo.regs) 456 if (!lpbfifo.regs)
457 return -ENOMEM; 457 return -ENOMEM;
458 458
@@ -481,6 +481,8 @@ mpc52xx_lpbfifo_probe(struct of_device *op, const struct of_device_id *match)
481 if (rc) 481 if (rc)
482 goto err_bcom_rx_irq; 482 goto err_bcom_rx_irq;
483 483
484 lpbfifo.dma_irqs_enabled = 1;
485
484 /* Request the Bestcomm transmit (memory --> fifo) task and IRQ */ 486 /* Request the Bestcomm transmit (memory --> fifo) task and IRQ */
485 lpbfifo.bcom_tx_task = 487 lpbfifo.bcom_tx_task =
486 bcom_gen_bd_tx_init(2, res.start + LPBFIFO_REG_FIFO_DATA, 488 bcom_gen_bd_tx_init(2, res.start + LPBFIFO_REG_FIFO_DATA,
@@ -535,9 +537,11 @@ static struct of_device_id mpc52xx_lpbfifo_match[] __devinitconst = {
535}; 537};
536 538
537static struct of_platform_driver mpc52xx_lpbfifo_driver = { 539static struct of_platform_driver mpc52xx_lpbfifo_driver = {
538 .owner = THIS_MODULE, 540 .driver = {
539 .name = "mpc52xx-lpbfifo", 541 .name = "mpc52xx-lpbfifo",
540 .match_table = mpc52xx_lpbfifo_match, 542 .owner = THIS_MODULE,
543 .of_match_table = mpc52xx_lpbfifo_match,
544 },
541 .probe = mpc52xx_lpbfifo_probe, 545 .probe = mpc52xx_lpbfifo_probe,
542 .remove = __devexit_p(mpc52xx_lpbfifo_remove), 546 .remove = __devexit_p(mpc52xx_lpbfifo_remove),
543}; 547};
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pm.c b/arch/powerpc/platforms/52xx/mpc52xx_pm.c
index a55b0b6813ed..76722532bd95 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_pm.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_pm.c
@@ -64,10 +64,19 @@ int mpc52xx_pm_prepare(void)
64 { .type = "builtin", .compatible = "mpc5200", }, /* efika */ 64 { .type = "builtin", .compatible = "mpc5200", }, /* efika */
65 {} 65 {}
66 }; 66 };
67 struct resource res;
67 68
68 /* map the whole register space */ 69 /* map the whole register space */
69 np = of_find_matching_node(NULL, immr_ids); 70 np = of_find_matching_node(NULL, immr_ids);
70 mbar = of_iomap(np, 0); 71
72 if (of_address_to_resource(np, 0, &res)) {
73 pr_err("mpc52xx_pm_prepare(): could not get IMMR address\n");
74 of_node_put(np);
75 return -ENOSYS;
76 }
77
78 mbar = ioremap(res.start, 0xc000); /* we should map whole region including SRAM */
79
71 of_node_put(np); 80 of_node_put(np);
72 if (!mbar) { 81 if (!mbar) {
73 pr_err("mpc52xx_pm_prepare(): could not map registers\n"); 82 pr_err("mpc52xx_pm_prepare(): could not map registers\n");
diff --git a/arch/powerpc/platforms/82xx/ep8248e.c b/arch/powerpc/platforms/82xx/ep8248e.c
index f9aee182e6f7..9f2e52b36f91 100644
--- a/arch/powerpc/platforms/82xx/ep8248e.c
+++ b/arch/powerpc/platforms/82xx/ep8248e.c
@@ -15,6 +15,7 @@
15#include <linux/fsl_devices.h> 15#include <linux/fsl_devices.h>
16#include <linux/mdio-bitbang.h> 16#include <linux/mdio-bitbang.h>
17#include <linux/of_mdio.h> 17#include <linux/of_mdio.h>
18#include <linux/slab.h>
18#include <linux/of_platform.h> 19#include <linux/of_platform.h>
19 20
20#include <asm/io.h> 21#include <asm/io.h>
@@ -118,12 +119,12 @@ static int __devinit ep8248e_mdio_probe(struct of_device *ofdev,
118 struct device_node *node; 119 struct device_node *node;
119 int ret; 120 int ret;
120 121
121 node = of_get_parent(ofdev->node); 122 node = of_get_parent(ofdev->dev.of_node);
122 of_node_put(node); 123 of_node_put(node);
123 if (node != ep8248e_bcsr_node) 124 if (node != ep8248e_bcsr_node)
124 return -ENODEV; 125 return -ENODEV;
125 126
126 ret = of_address_to_resource(ofdev->node, 0, &res); 127 ret = of_address_to_resource(ofdev->dev.of_node, 0, &res);
127 if (ret) 128 if (ret)
128 return ret; 129 return ret;
129 130
@@ -141,7 +142,7 @@ static int __devinit ep8248e_mdio_probe(struct of_device *ofdev,
141 bus->parent = &ofdev->dev; 142 bus->parent = &ofdev->dev;
142 snprintf(bus->id, MII_BUS_ID_SIZE, "%x", res.start); 143 snprintf(bus->id, MII_BUS_ID_SIZE, "%x", res.start);
143 144
144 ret = of_mdiobus_register(bus, ofdev->node); 145 ret = of_mdiobus_register(bus, ofdev->dev.of_node);
145 if (ret) 146 if (ret)
146 goto err_free_irq; 147 goto err_free_irq;
147 148
@@ -169,8 +170,9 @@ static const struct of_device_id ep8248e_mdio_match[] = {
169static struct of_platform_driver ep8248e_mdio_driver = { 170static struct of_platform_driver ep8248e_mdio_driver = {
170 .driver = { 171 .driver = {
171 .name = "ep8248e-mdio-bitbang", 172 .name = "ep8248e-mdio-bitbang",
173 .owner = THIS_MODULE,
174 .of_match_table = ep8248e_mdio_match,
172 }, 175 },
173 .match_table = ep8248e_mdio_match,
174 .probe = ep8248e_mdio_probe, 176 .probe = ep8248e_mdio_probe,
175 .remove = ep8248e_mdio_remove, 177 .remove = ep8248e_mdio_remove,
176}; 178};
diff --git a/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c b/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
index d4a09f8705b5..5a55d87d6bd6 100644
--- a/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
+++ b/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
@@ -17,6 +17,7 @@
17#include <linux/irq.h> 17#include <linux/irq.h>
18#include <linux/types.h> 18#include <linux/types.h>
19#include <linux/bootmem.h> 19#include <linux/bootmem.h>
20#include <linux/slab.h>
20 21
21#include <asm/io.h> 22#include <asm/io.h>
22#include <asm/prom.h> 23#include <asm/prom.h>
diff --git a/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c b/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c
index 82a9bcb858b6..d119a7c1c17a 100644
--- a/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c
+++ b/arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c
@@ -20,6 +20,7 @@
20#include <linux/gpio.h> 20#include <linux/gpio.h>
21#include <linux/of.h> 21#include <linux/of.h>
22#include <linux/of_gpio.h> 22#include <linux/of_gpio.h>
23#include <linux/slab.h>
23#include <asm/prom.h> 24#include <asm/prom.h>
24#include <asm/machdep.h> 25#include <asm/machdep.h>
25 26
diff --git a/arch/powerpc/platforms/83xx/mpc831x_rdb.c b/arch/powerpc/platforms/83xx/mpc831x_rdb.c
index 0b4f883b20eb..ae525e4745d2 100644
--- a/arch/powerpc/platforms/83xx/mpc831x_rdb.c
+++ b/arch/powerpc/platforms/83xx/mpc831x_rdb.c
@@ -74,6 +74,7 @@ static int __init mpc831x_rdb_probe(void)
74static struct of_device_id __initdata of_bus_ids[] = { 74static struct of_device_id __initdata of_bus_ids[] = {
75 { .compatible = "simple-bus" }, 75 { .compatible = "simple-bus" },
76 { .compatible = "gianfar" }, 76 { .compatible = "gianfar" },
77 { .compatible = "gpio-leds", },
77 {}, 78 {},
78}; 79};
79 80
diff --git a/arch/powerpc/platforms/83xx/mpc837x_rdb.c b/arch/powerpc/platforms/83xx/mpc837x_rdb.c
index a1908d261240..e00801c42540 100644
--- a/arch/powerpc/platforms/83xx/mpc837x_rdb.c
+++ b/arch/powerpc/platforms/83xx/mpc837x_rdb.c
@@ -72,6 +72,7 @@ static struct of_device_id mpc837x_ids[] = {
72 { .compatible = "soc", }, 72 { .compatible = "soc", },
73 { .compatible = "simple-bus", }, 73 { .compatible = "simple-bus", },
74 { .compatible = "gianfar", }, 74 { .compatible = "gianfar", },
75 { .compatible = "gpio-leds", },
75 {}, 76 {},
76}; 77};
77 78
diff --git a/arch/powerpc/platforms/83xx/suspend.c b/arch/powerpc/platforms/83xx/suspend.c
index 43805348b81e..ebe6c3537209 100644
--- a/arch/powerpc/platforms/83xx/suspend.c
+++ b/arch/powerpc/platforms/83xx/suspend.c
@@ -321,7 +321,7 @@ static struct platform_suspend_ops mpc83xx_suspend_ops = {
321static int pmc_probe(struct of_device *ofdev, 321static int pmc_probe(struct of_device *ofdev,
322 const struct of_device_id *match) 322 const struct of_device_id *match)
323{ 323{
324 struct device_node *np = ofdev->node; 324 struct device_node *np = ofdev->dev.of_node;
325 struct resource res; 325 struct resource res;
326 struct pmc_type *type = match->data; 326 struct pmc_type *type = match->data;
327 int ret = 0; 327 int ret = 0;
@@ -423,8 +423,11 @@ static struct of_device_id pmc_match[] = {
423}; 423};
424 424
425static struct of_platform_driver pmc_driver = { 425static struct of_platform_driver pmc_driver = {
426 .name = "mpc83xx-pmc", 426 .driver = {
427 .match_table = pmc_match, 427 .name = "mpc83xx-pmc",
428 .owner = THIS_MODULE,
429 .of_match_table = pmc_match,
430 },
428 .probe = pmc_probe, 431 .probe = pmc_probe,
429 .remove = pmc_remove 432 .remove = pmc_remove
430}; 433};
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig
index d95121894eb7..3a2ade2e443f 100644
--- a/arch/powerpc/platforms/85xx/Kconfig
+++ b/arch/powerpc/platforms/85xx/Kconfig
@@ -51,7 +51,7 @@ config MPC85xx_DS
51 bool "Freescale MPC85xx DS" 51 bool "Freescale MPC85xx DS"
52 select PPC_I8259 52 select PPC_I8259
53 select DEFAULT_UIMAGE 53 select DEFAULT_UIMAGE
54 select FSL_ULI1575 54 select FSL_ULI1575 if PCI
55 select SWIOTLB 55 select SWIOTLB
56 help 56 help
57 This option enables support for the MPC85xx DS (MPC8544 DS) board 57 This option enables support for the MPC85xx DS (MPC8544 DS) board
@@ -60,7 +60,7 @@ config MPC85xx_RDB
60 bool "Freescale MPC85xx RDB" 60 bool "Freescale MPC85xx RDB"
61 select PPC_I8259 61 select PPC_I8259
62 select DEFAULT_UIMAGE 62 select DEFAULT_UIMAGE
63 select FSL_ULI1575 63 select FSL_ULI1575 if PCI
64 select SWIOTLB 64 select SWIOTLB
65 help 65 help
66 This option enables support for the MPC85xx RDB (P2020 RDB) board 66 This option enables support for the MPC85xx RDB (P2020 RDB) board
diff --git a/arch/powerpc/platforms/85xx/corenet_ds.c b/arch/powerpc/platforms/85xx/corenet_ds.c
index 534c2ecc89d9..2ab338c9ac37 100644
--- a/arch/powerpc/platforms/85xx/corenet_ds.c
+++ b/arch/powerpc/platforms/85xx/corenet_ds.c
@@ -16,7 +16,7 @@
16#include <linux/kdev_t.h> 16#include <linux/kdev_t.h>
17#include <linux/delay.h> 17#include <linux/delay.h>
18#include <linux/interrupt.h> 18#include <linux/interrupt.h>
19#include <linux/lmb.h> 19#include <linux/memblock.h>
20 20
21#include <asm/system.h> 21#include <asm/system.h>
22#include <asm/time.h> 22#include <asm/time.h>
@@ -100,7 +100,7 @@ void __init corenet_ds_setup_arch(void)
100#endif 100#endif
101 101
102#ifdef CONFIG_SWIOTLB 102#ifdef CONFIG_SWIOTLB
103 if (lmb_end_of_DRAM() > max) { 103 if (memblock_end_of_DRAM() > max) {
104 ppc_swiotlb_enable = 1; 104 ppc_swiotlb_enable = 1;
105 set_pci_dma_ops(&swiotlb_dma_ops); 105 set_pci_dma_ops(&swiotlb_dma_ops);
106 ppc_md.pci_dma_dev_setup = pci_dma_dev_setup_swiotlb; 106 ppc_md.pci_dma_dev_setup = pci_dma_dev_setup_swiotlb;
diff --git a/arch/powerpc/platforms/85xx/mpc8536_ds.c b/arch/powerpc/platforms/85xx/mpc8536_ds.c
index 004b7d36cdb7..f79f2f102141 100644
--- a/arch/powerpc/platforms/85xx/mpc8536_ds.c
+++ b/arch/powerpc/platforms/85xx/mpc8536_ds.c
@@ -17,7 +17,7 @@
17#include <linux/seq_file.h> 17#include <linux/seq_file.h>
18#include <linux/interrupt.h> 18#include <linux/interrupt.h>
19#include <linux/of_platform.h> 19#include <linux/of_platform.h>
20#include <linux/lmb.h> 20#include <linux/memblock.h>
21 21
22#include <asm/system.h> 22#include <asm/system.h>
23#include <asm/time.h> 23#include <asm/time.h>
@@ -94,7 +94,7 @@ static void __init mpc8536_ds_setup_arch(void)
94#endif 94#endif
95 95
96#ifdef CONFIG_SWIOTLB 96#ifdef CONFIG_SWIOTLB
97 if (lmb_end_of_DRAM() > max) { 97 if (memblock_end_of_DRAM() > max) {
98 ppc_swiotlb_enable = 1; 98 ppc_swiotlb_enable = 1;
99 set_pci_dma_ops(&swiotlb_dma_ops); 99 set_pci_dma_ops(&swiotlb_dma_ops);
100 ppc_md.pci_dma_dev_setup = pci_dma_dev_setup_swiotlb; 100 ppc_md.pci_dma_dev_setup = pci_dma_dev_setup_swiotlb;
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ds.c b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
index 544011a562fb..8190bc25bf27 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_ds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
@@ -20,7 +20,7 @@
20#include <linux/seq_file.h> 20#include <linux/seq_file.h>
21#include <linux/interrupt.h> 21#include <linux/interrupt.h>
22#include <linux/of_platform.h> 22#include <linux/of_platform.h>
23#include <linux/lmb.h> 23#include <linux/memblock.h>
24 24
25#include <asm/system.h> 25#include <asm/system.h>
26#include <asm/time.h> 26#include <asm/time.h>
@@ -190,7 +190,7 @@ static void __init mpc85xx_ds_setup_arch(void)
190#endif 190#endif
191 191
192#ifdef CONFIG_SWIOTLB 192#ifdef CONFIG_SWIOTLB
193 if (lmb_end_of_DRAM() > max) { 193 if (memblock_end_of_DRAM() > max) {
194 ppc_swiotlb_enable = 1; 194 ppc_swiotlb_enable = 1;
195 set_pci_dma_ops(&swiotlb_dma_ops); 195 set_pci_dma_ops(&swiotlb_dma_ops);
196 ppc_md.pci_dma_dev_setup = pci_dma_dev_setup_swiotlb; 196 ppc_md.pci_dma_dev_setup = pci_dma_dev_setup_swiotlb;
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_mds.c b/arch/powerpc/platforms/85xx/mpc85xx_mds.c
index f0684c8ac960..494513682d70 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_mds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_mds.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) Freescale Semicondutor, Inc. 2006-2007. All rights reserved. 2 * Copyright (C) Freescale Semicondutor, Inc. 2006-2010. All rights reserved.
3 * 3 *
4 * Author: Andy Fleming <afleming@freescale.com> 4 * Author: Andy Fleming <afleming@freescale.com>
5 * 5 *
@@ -33,7 +33,7 @@
33#include <linux/of_platform.h> 33#include <linux/of_platform.h>
34#include <linux/of_device.h> 34#include <linux/of_device.h>
35#include <linux/phy.h> 35#include <linux/phy.h>
36#include <linux/lmb.h> 36#include <linux/memblock.h>
37 37
38#include <asm/system.h> 38#include <asm/system.h>
39#include <asm/atomic.h> 39#include <asm/atomic.h>
@@ -154,6 +154,10 @@ static int mpc8568_mds_phy_fixups(struct phy_device *phydev)
154 * Setup the architecture 154 * Setup the architecture
155 * 155 *
156 */ 156 */
157#ifdef CONFIG_SMP
158extern void __init mpc85xx_smp_init(void);
159#endif
160
157static void __init mpc85xx_mds_setup_arch(void) 161static void __init mpc85xx_mds_setup_arch(void)
158{ 162{
159 struct device_node *np; 163 struct device_node *np;
@@ -194,6 +198,10 @@ static void __init mpc85xx_mds_setup_arch(void)
194 } 198 }
195#endif 199#endif
196 200
201#ifdef CONFIG_SMP
202 mpc85xx_smp_init();
203#endif
204
197#ifdef CONFIG_QUICC_ENGINE 205#ifdef CONFIG_QUICC_ENGINE
198 np = of_find_compatible_node(NULL, NULL, "fsl,qe"); 206 np = of_find_compatible_node(NULL, NULL, "fsl,qe");
199 if (!np) { 207 if (!np) {
@@ -271,13 +279,53 @@ static void __init mpc85xx_mds_setup_arch(void)
271 BCSR_UCC_RGMII, BCSR_UCC_RTBI); 279 BCSR_UCC_RGMII, BCSR_UCC_RTBI);
272 } 280 }
273 281
282 } else if (machine_is(p1021_mds)) {
283#define BCSR11_ENET_MICRST (0x1 << 5)
284 /* Reset Micrel PHY */
285 clrbits8(&bcsr_regs[11], BCSR11_ENET_MICRST);
286 setbits8(&bcsr_regs[11], BCSR11_ENET_MICRST);
274 } 287 }
288
275 iounmap(bcsr_regs); 289 iounmap(bcsr_regs);
276 } 290 }
291
292 if (machine_is(p1021_mds)) {
293#define MPC85xx_PMUXCR_OFFSET 0x60
294#define MPC85xx_PMUXCR_QE0 0x00008000
295#define MPC85xx_PMUXCR_QE3 0x00001000
296#define MPC85xx_PMUXCR_QE9 0x00000040
297#define MPC85xx_PMUXCR_QE12 0x00000008
298 static __be32 __iomem *pmuxcr;
299
300 np = of_find_node_by_name(NULL, "global-utilities");
301
302 if (np) {
303 pmuxcr = of_iomap(np, 0) + MPC85xx_PMUXCR_OFFSET;
304
305 if (!pmuxcr)
306 printk(KERN_EMERG "Error: Alternate function"
307 " signal multiplex control register not"
308 " mapped!\n");
309 else
310 /* P1021 has pins muxed for QE and other functions. To
311 * enable QE UEC mode, we need to set bit QE0 for UCC1
312 * in Eth mode, QE0 and QE3 for UCC5 in Eth mode, QE9
313 * and QE12 for QE MII management singals in PMUXCR
314 * register.
315 */
316 setbits32(pmuxcr, MPC85xx_PMUXCR_QE0 |
317 MPC85xx_PMUXCR_QE3 |
318 MPC85xx_PMUXCR_QE9 |
319 MPC85xx_PMUXCR_QE12);
320
321 of_node_put(np);
322 }
323
324 }
277#endif /* CONFIG_QUICC_ENGINE */ 325#endif /* CONFIG_QUICC_ENGINE */
278 326
279#ifdef CONFIG_SWIOTLB 327#ifdef CONFIG_SWIOTLB
280 if (lmb_end_of_DRAM() > max) { 328 if (memblock_end_of_DRAM() > max) {
281 ppc_swiotlb_enable = 1; 329 ppc_swiotlb_enable = 1;
282 set_pci_dma_ops(&swiotlb_dma_ops); 330 set_pci_dma_ops(&swiotlb_dma_ops);
283 ppc_md.pci_dma_dev_setup = pci_dma_dev_setup_swiotlb; 331 ppc_md.pci_dma_dev_setup = pci_dma_dev_setup_swiotlb;
@@ -330,6 +378,16 @@ static struct of_device_id mpc85xx_ids[] = {
330 {}, 378 {},
331}; 379};
332 380
381static struct of_device_id p1021_ids[] = {
382 { .type = "soc", },
383 { .compatible = "soc", },
384 { .compatible = "simple-bus", },
385 { .type = "qe", },
386 { .compatible = "fsl,qe", },
387 { .compatible = "gianfar", },
388 {},
389};
390
333static int __init mpc85xx_publish_devices(void) 391static int __init mpc85xx_publish_devices(void)
334{ 392{
335 if (machine_is(mpc8568_mds)) 393 if (machine_is(mpc8568_mds))
@@ -342,11 +400,22 @@ static int __init mpc85xx_publish_devices(void)
342 400
343 return 0; 401 return 0;
344} 402}
403
404static int __init p1021_publish_devices(void)
405{
406 /* Publish the QE devices */
407 of_platform_bus_probe(NULL, p1021_ids, NULL);
408
409 return 0;
410}
411
345machine_device_initcall(mpc8568_mds, mpc85xx_publish_devices); 412machine_device_initcall(mpc8568_mds, mpc85xx_publish_devices);
346machine_device_initcall(mpc8569_mds, mpc85xx_publish_devices); 413machine_device_initcall(mpc8569_mds, mpc85xx_publish_devices);
414machine_device_initcall(p1021_mds, p1021_publish_devices);
347 415
348machine_arch_initcall(mpc8568_mds, swiotlb_setup_bus_notifier); 416machine_arch_initcall(mpc8568_mds, swiotlb_setup_bus_notifier);
349machine_arch_initcall(mpc8569_mds, swiotlb_setup_bus_notifier); 417machine_arch_initcall(mpc8569_mds, swiotlb_setup_bus_notifier);
418machine_arch_initcall(p1021_mds, swiotlb_setup_bus_notifier);
350 419
351static void __init mpc85xx_mds_pic_init(void) 420static void __init mpc85xx_mds_pic_init(void)
352{ 421{
@@ -366,7 +435,7 @@ static void __init mpc85xx_mds_pic_init(void)
366 435
367 mpic = mpic_alloc(np, r.start, 436 mpic = mpic_alloc(np, r.start,
368 MPIC_PRIMARY | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN | 437 MPIC_PRIMARY | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN |
369 MPIC_BROKEN_FRR_NIRQS, 438 MPIC_BROKEN_FRR_NIRQS | MPIC_SINGLE_DEST_CPU,
370 0, 256, " OpenPIC "); 439 0, 256, " OpenPIC ");
371 BUG_ON(mpic == NULL); 440 BUG_ON(mpic == NULL);
372 of_node_put(np); 441 of_node_put(np);
@@ -380,7 +449,11 @@ static void __init mpc85xx_mds_pic_init(void)
380 if (!np) 449 if (!np)
381 return; 450 return;
382 } 451 }
383 qe_ic_init(np, 0, qe_ic_cascade_muxed_mpic, NULL); 452 if (machine_is(p1021_mds))
453 qe_ic_init(np, 0, qe_ic_cascade_low_mpic,
454 qe_ic_cascade_high_mpic);
455 else
456 qe_ic_init(np, 0, qe_ic_cascade_muxed_mpic, NULL);
384 of_node_put(np); 457 of_node_put(np);
385#endif /* CONFIG_QUICC_ENGINE */ 458#endif /* CONFIG_QUICC_ENGINE */
386} 459}
@@ -426,3 +499,26 @@ define_machine(mpc8569_mds) {
426 .pcibios_fixup_bus = fsl_pcibios_fixup_bus, 499 .pcibios_fixup_bus = fsl_pcibios_fixup_bus,
427#endif 500#endif
428}; 501};
502
503static int __init p1021_mds_probe(void)
504{
505 unsigned long root = of_get_flat_dt_root();
506
507 return of_flat_dt_is_compatible(root, "fsl,P1021MDS");
508
509}
510
511define_machine(p1021_mds) {
512 .name = "P1021 MDS",
513 .probe = p1021_mds_probe,
514 .setup_arch = mpc85xx_mds_setup_arch,
515 .init_IRQ = mpc85xx_mds_pic_init,
516 .get_irq = mpic_get_irq,
517 .restart = fsl_rstcr_restart,
518 .calibrate_decr = generic_calibrate_decr,
519 .progress = udbg_progress,
520#ifdef CONFIG_PCI
521 .pcibios_fixup_bus = fsl_pcibios_fixup_bus,
522#endif
523};
524
diff --git a/arch/powerpc/platforms/86xx/Kconfig b/arch/powerpc/platforms/86xx/Kconfig
index fbe9f3621424..a0b5638c5dc8 100644
--- a/arch/powerpc/platforms/86xx/Kconfig
+++ b/arch/powerpc/platforms/86xx/Kconfig
@@ -13,7 +13,7 @@ config MPC8641_HPCN
13 bool "Freescale MPC8641 HPCN" 13 bool "Freescale MPC8641 HPCN"
14 select PPC_I8259 14 select PPC_I8259
15 select DEFAULT_UIMAGE 15 select DEFAULT_UIMAGE
16 select FSL_ULI1575 16 select FSL_ULI1575 if PCI
17 select HAS_RAPIDIO 17 select HAS_RAPIDIO
18 select SWIOTLB 18 select SWIOTLB
19 help 19 help
@@ -28,7 +28,7 @@ config SBC8641D
28config MPC8610_HPCD 28config MPC8610_HPCD
29 bool "Freescale MPC8610 HPCD" 29 bool "Freescale MPC8610 HPCD"
30 select DEFAULT_UIMAGE 30 select DEFAULT_UIMAGE
31 select FSL_ULI1575 31 select FSL_ULI1575 if PCI
32 help 32 help
33 This option enables support for the MPC8610 HPCD board. 33 This option enables support for the MPC8610 HPCD board.
34 34
diff --git a/arch/powerpc/platforms/86xx/gef_gpio.c b/arch/powerpc/platforms/86xx/gef_gpio.c
index 11f7b2b6f49e..b8cb08dbd89c 100644
--- a/arch/powerpc/platforms/86xx/gef_gpio.c
+++ b/arch/powerpc/platforms/86xx/gef_gpio.c
@@ -26,6 +26,7 @@
26#include <linux/of_platform.h> 26#include <linux/of_platform.h>
27#include <linux/of_gpio.h> 27#include <linux/of_gpio.h>
28#include <linux/gpio.h> 28#include <linux/gpio.h>
29#include <linux/slab.h>
29 30
30#define GEF_GPIO_DIRECT 0x00 31#define GEF_GPIO_DIRECT 0x00
31#define GEF_GPIO_IN 0x04 32#define GEF_GPIO_IN 0x04
diff --git a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
index 5abe137f6309..018cc67be426 100644
--- a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
+++ b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
@@ -83,7 +83,8 @@ static struct of_device_id __initdata mpc8610_ids[] = {
83 { .compatible = "fsl,mpc8610-immr", }, 83 { .compatible = "fsl,mpc8610-immr", },
84 { .compatible = "fsl,mpc8610-guts", }, 84 { .compatible = "fsl,mpc8610-guts", },
85 { .compatible = "simple-bus", }, 85 { .compatible = "simple-bus", },
86 { .compatible = "gianfar", }, 86 /* So that the DMA channel nodes can be probed individually: */
87 { .compatible = "fsl,eloplus-dma", },
87 {} 88 {}
88}; 89};
89 90
diff --git a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
index 2aa69a69bcc8..b11c3535f350 100644
--- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
+++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
@@ -19,7 +19,7 @@
19#include <linux/delay.h> 19#include <linux/delay.h>
20#include <linux/seq_file.h> 20#include <linux/seq_file.h>
21#include <linux/of_platform.h> 21#include <linux/of_platform.h>
22#include <linux/lmb.h> 22#include <linux/memblock.h>
23 23
24#include <asm/system.h> 24#include <asm/system.h>
25#include <asm/time.h> 25#include <asm/time.h>
@@ -103,7 +103,7 @@ mpc86xx_hpcn_setup_arch(void)
103#endif 103#endif
104 104
105#ifdef CONFIG_SWIOTLB 105#ifdef CONFIG_SWIOTLB
106 if (lmb_end_of_DRAM() > max) { 106 if (memblock_end_of_DRAM() > max) {
107 ppc_swiotlb_enable = 1; 107 ppc_swiotlb_enable = 1;
108 set_pci_dma_ops(&swiotlb_dma_ops); 108 set_pci_dma_ops(&swiotlb_dma_ops);
109 ppc_md.pci_dma_dev_setup = pci_dma_dev_setup_swiotlb; 109 ppc_md.pci_dma_dev_setup = pci_dma_dev_setup_swiotlb;
diff --git a/arch/powerpc/platforms/8xx/m8xx_setup.c b/arch/powerpc/platforms/8xx/m8xx_setup.c
index 242954c4293f..60168c1f98fe 100644
--- a/arch/powerpc/platforms/8xx/m8xx_setup.c
+++ b/arch/powerpc/platforms/8xx/m8xx_setup.c
@@ -11,7 +11,6 @@
11 */ 11 */
12 12
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/slab.h>
15#include <linux/interrupt.h> 14#include <linux/interrupt.h>
16#include <linux/init.h> 15#include <linux/init.h>
17#include <linux/time.h> 16#include <linux/time.h>
diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype
index a8aae0b54579..d361f8119b1e 100644
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
@@ -43,7 +43,7 @@ config 40x
43 select PPC_PCI_CHOICE 43 select PPC_PCI_CHOICE
44 44
45config 44x 45config 44x
46 bool "AMCC 44x" 46 bool "AMCC 44x, 46x or 47x"
47 select PPC_DCR_NATIVE 47 select PPC_DCR_NATIVE
48 select PPC_UDBG_16550 48 select PPC_UDBG_16550
49 select 4xx_SOC 49 select 4xx_SOC
@@ -294,7 +294,7 @@ config PPC_PERF_CTRS
294 This enables the powerpc-specific perf_event back-end. 294 This enables the powerpc-specific perf_event back-end.
295 295
296config SMP 296config SMP
297 depends on PPC_BOOK3S || PPC_BOOK3E || FSL_BOOKE 297 depends on PPC_BOOK3S || PPC_BOOK3E || FSL_BOOKE || PPC_47x
298 bool "Symmetric multi-processing support" 298 bool "Symmetric multi-processing support"
299 ---help--- 299 ---help---
300 This enables support for systems with more than one CPU. If you have 300 This enables support for systems with more than one CPU. If you have
@@ -322,6 +322,7 @@ config NR_CPUS
322config NOT_COHERENT_CACHE 322config NOT_COHERENT_CACHE
323 bool 323 bool
324 depends on 4xx || 8xx || E200 || PPC_MPC512x || GAMECUBE_COMMON 324 depends on 4xx || 8xx || E200 || PPC_MPC512x || GAMECUBE_COMMON
325 default n if PPC_47x
325 default y 326 default y
326 327
327config CHECK_CACHE_COHERENCY 328config CHECK_CACHE_COHERENCY
diff --git a/arch/powerpc/platforms/cell/axon_msi.c b/arch/powerpc/platforms/cell/axon_msi.c
index 96fe896f6df3..6257e5378615 100644
--- a/arch/powerpc/platforms/cell/axon_msi.c
+++ b/arch/powerpc/platforms/cell/axon_msi.c
@@ -15,6 +15,7 @@
15#include <linux/msi.h> 15#include <linux/msi.h>
16#include <linux/of_platform.h> 16#include <linux/of_platform.h>
17#include <linux/debugfs.h> 17#include <linux/debugfs.h>
18#include <linux/slab.h>
18 19
19#include <asm/dcr.h> 20#include <asm/dcr.h>
20#include <asm/machdep.h> 21#include <asm/machdep.h>
@@ -344,7 +345,7 @@ static int axon_msi_shutdown(struct of_device *device)
344static int axon_msi_probe(struct of_device *device, 345static int axon_msi_probe(struct of_device *device,
345 const struct of_device_id *device_id) 346 const struct of_device_id *device_id)
346{ 347{
347 struct device_node *dn = device->node; 348 struct device_node *dn = device->dev.of_node;
348 struct axon_msic *msic; 349 struct axon_msic *msic;
349 unsigned int virq; 350 unsigned int virq;
350 int dcr_base, dcr_len; 351 int dcr_base, dcr_len;
@@ -446,11 +447,12 @@ static const struct of_device_id axon_msi_device_id[] = {
446}; 447};
447 448
448static struct of_platform_driver axon_msi_driver = { 449static struct of_platform_driver axon_msi_driver = {
449 .match_table = axon_msi_device_id,
450 .probe = axon_msi_probe, 450 .probe = axon_msi_probe,
451 .shutdown = axon_msi_shutdown, 451 .shutdown = axon_msi_shutdown,
452 .driver = { 452 .driver = {
453 .name = "axon-msi" 453 .name = "axon-msi",
454 .owner = THIS_MODULE,
455 .of_match_table = axon_msi_device_id,
454 }, 456 },
455}; 457};
456 458
diff --git a/arch/powerpc/platforms/cell/cbe_cpufreq.c b/arch/powerpc/platforms/cell/cbe_cpufreq.c
index e6506cd0ff94..bfa2c0cb3d1e 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 cpumask_copy(policy->cpus, &per_cpu(cpu_sibling_map, policy->cpu)); 121 cpumask_copy(policy->cpus, cpu_sibling_mask(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_pci.c b/arch/powerpc/platforms/cell/celleb_pci.c
index 00eaaa71630f..404d1fc04d59 100644
--- a/arch/powerpc/platforms/cell/celleb_pci.c
+++ b/arch/powerpc/platforms/cell/celleb_pci.c
@@ -33,6 +33,7 @@
33#include <linux/pci_regs.h> 33#include <linux/pci_regs.h>
34#include <linux/of.h> 34#include <linux/of.h>
35#include <linux/of_device.h> 35#include <linux/of_device.h>
36#include <linux/slab.h>
36 37
37#include <asm/io.h> 38#include <asm/io.h>
38#include <asm/irq.h> 39#include <asm/irq.h>
diff --git a/arch/powerpc/platforms/cell/celleb_scc_pciex.c b/arch/powerpc/platforms/cell/celleb_scc_pciex.c
index 7fca09f990ba..a881bbee8de0 100644
--- a/arch/powerpc/platforms/cell/celleb_scc_pciex.c
+++ b/arch/powerpc/platforms/cell/celleb_scc_pciex.c
@@ -23,6 +23,7 @@
23#include <linux/kernel.h> 23#include <linux/kernel.h>
24#include <linux/pci.h> 24#include <linux/pci.h>
25#include <linux/string.h> 25#include <linux/string.h>
26#include <linux/slab.h>
26#include <linux/init.h> 27#include <linux/init.h>
27#include <linux/bootmem.h> 28#include <linux/bootmem.h>
28#include <linux/delay.h> 29#include <linux/delay.h>
diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c
index ca5bfdfe47f2..3712900471ba 100644
--- a/arch/powerpc/platforms/cell/iommu.c
+++ b/arch/powerpc/platforms/cell/iommu.c
@@ -28,7 +28,8 @@
28#include <linux/notifier.h> 28#include <linux/notifier.h>
29#include <linux/of.h> 29#include <linux/of.h>
30#include <linux/of_platform.h> 30#include <linux/of_platform.h>
31#include <linux/lmb.h> 31#include <linux/slab.h>
32#include <linux/memblock.h>
32 33
33#include <asm/prom.h> 34#include <asm/prom.h>
34#include <asm/iommu.h> 35#include <asm/iommu.h>
@@ -544,7 +545,6 @@ static struct iommu_table *cell_get_iommu_table(struct device *dev)
544{ 545{
545 struct iommu_window *window; 546 struct iommu_window *window;
546 struct cbe_iommu *iommu; 547 struct cbe_iommu *iommu;
547 struct dev_archdata *archdata = &dev->archdata;
548 548
549 /* Current implementation uses the first window available in that 549 /* Current implementation uses the first window available in that
550 * node's iommu. We -might- do something smarter later though it may 550 * node's iommu. We -might- do something smarter later though it may
@@ -553,7 +553,7 @@ static struct iommu_table *cell_get_iommu_table(struct device *dev)
553 iommu = cell_iommu_for_node(dev_to_node(dev)); 553 iommu = cell_iommu_for_node(dev_to_node(dev));
554 if (iommu == NULL || list_empty(&iommu->windows)) { 554 if (iommu == NULL || list_empty(&iommu->windows)) {
555 printk(KERN_ERR "iommu: missing iommu for %s (node %d)\n", 555 printk(KERN_ERR "iommu: missing iommu for %s (node %d)\n",
556 archdata->of_node ? archdata->of_node->full_name : "?", 556 dev->of_node ? dev->of_node->full_name : "?",
557 dev_to_node(dev)); 557 dev_to_node(dev));
558 return NULL; 558 return NULL;
559 } 559 }
@@ -845,10 +845,10 @@ static int __init cell_iommu_init_disabled(void)
845 /* If we found a DMA window, we check if it's big enough to enclose 845 /* If we found a DMA window, we check if it's big enough to enclose
846 * all of physical memory. If not, we force enable IOMMU 846 * all of physical memory. If not, we force enable IOMMU
847 */ 847 */
848 if (np && size < lmb_end_of_DRAM()) { 848 if (np && size < memblock_end_of_DRAM()) {
849 printk(KERN_WARNING "iommu: force-enabled, dma window" 849 printk(KERN_WARNING "iommu: force-enabled, dma window"
850 " (%ldMB) smaller than total memory (%lldMB)\n", 850 " (%ldMB) smaller than total memory (%lldMB)\n",
851 size >> 20, lmb_end_of_DRAM() >> 20); 851 size >> 20, memblock_end_of_DRAM() >> 20);
852 return -ENODEV; 852 return -ENODEV;
853 } 853 }
854 854
@@ -896,7 +896,7 @@ static u64 cell_iommu_get_fixed_address(struct device *dev)
896 const u32 *ranges = NULL; 896 const u32 *ranges = NULL;
897 int i, len, best, naddr, nsize, pna, range_size; 897 int i, len, best, naddr, nsize, pna, range_size;
898 898
899 np = of_node_get(dev->archdata.of_node); 899 np = of_node_get(dev->of_node);
900 while (1) { 900 while (1) {
901 naddr = of_n_addr_cells(np); 901 naddr = of_n_addr_cells(np);
902 nsize = of_n_size_cells(np); 902 nsize = of_n_size_cells(np);
@@ -1064,9 +1064,9 @@ static int __init cell_iommu_fixed_mapping_init(void)
1064 } 1064 }
1065 1065
1066 fbase = _ALIGN_UP(fbase, 1 << IO_SEGMENT_SHIFT); 1066 fbase = _ALIGN_UP(fbase, 1 << IO_SEGMENT_SHIFT);
1067 fsize = lmb_phys_mem_size(); 1067 fsize = memblock_phys_mem_size();
1068 1068
1069 if ((fbase + fsize) <= 0x800000000) 1069 if ((fbase + fsize) <= 0x800000000ul)
1070 hbase = 0; /* use the device tree window */ 1070 hbase = 0; /* use the device tree window */
1071 else { 1071 else {
1072 /* If we're over 32 GB we need to cheat. We can't map all of 1072 /* If we're over 32 GB we need to cheat. We can't map all of
@@ -1169,7 +1169,7 @@ static int __init cell_iommu_init(void)
1169 * Note: should we make sure we have the IOMMU actually disabled ? 1169 * Note: should we make sure we have the IOMMU actually disabled ?
1170 */ 1170 */
1171 if (iommu_is_off || 1171 if (iommu_is_off ||
1172 (!iommu_force_on && lmb_end_of_DRAM() <= 0x80000000ull)) 1172 (!iommu_force_on && memblock_end_of_DRAM() <= 0x80000000ull))
1173 if (cell_iommu_init_disabled() == 0) 1173 if (cell_iommu_init_disabled() == 0)
1174 goto bail; 1174 goto bail;
1175 1175
diff --git a/arch/powerpc/platforms/cell/ras.c b/arch/powerpc/platforms/cell/ras.c
index 608fd2b584c9..1d3c4effea10 100644
--- a/arch/powerpc/platforms/cell/ras.c
+++ b/arch/powerpc/platforms/cell/ras.c
@@ -11,6 +11,7 @@
11 11
12#include <linux/types.h> 12#include <linux/types.h>
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/slab.h>
14#include <linux/smp.h> 15#include <linux/smp.h>
15#include <linux/reboot.h> 16#include <linux/reboot.h>
16#include <linux/kexec.h> 17#include <linux/kexec.h>
diff --git a/arch/powerpc/platforms/cell/setup.c b/arch/powerpc/platforms/cell/setup.c
index 59305369f6b2..50385db586bd 100644
--- a/arch/powerpc/platforms/cell/setup.c
+++ b/arch/powerpc/platforms/cell/setup.c
@@ -19,7 +19,6 @@
19#include <linux/mm.h> 19#include <linux/mm.h>
20#include <linux/stddef.h> 20#include <linux/stddef.h>
21#include <linux/unistd.h> 21#include <linux/unistd.h>
22#include <linux/slab.h>
23#include <linux/user.h> 22#include <linux/user.h>
24#include <linux/reboot.h> 23#include <linux/reboot.h>
25#include <linux/init.h> 24#include <linux/init.h>
diff --git a/arch/powerpc/platforms/cell/spider-pci.c b/arch/powerpc/platforms/cell/spider-pci.c
index 5122ec145271..ca7731c0b595 100644
--- a/arch/powerpc/platforms/cell/spider-pci.c
+++ b/arch/powerpc/platforms/cell/spider-pci.c
@@ -22,6 +22,7 @@
22 22
23#include <linux/kernel.h> 23#include <linux/kernel.h>
24#include <linux/of_platform.h> 24#include <linux/of_platform.h>
25#include <linux/slab.h>
25#include <linux/io.h> 26#include <linux/io.h>
26 27
27#include <asm/ppc-pci.h> 28#include <asm/ppc-pci.h>
diff --git a/arch/powerpc/platforms/cell/spu_manage.c b/arch/powerpc/platforms/cell/spu_manage.c
index 891f18e337a2..f465d474ad9b 100644
--- a/arch/powerpc/platforms/cell/spu_manage.c
+++ b/arch/powerpc/platforms/cell/spu_manage.c
@@ -23,7 +23,6 @@
23#include <linux/list.h> 23#include <linux/list.h>
24#include <linux/module.h> 24#include <linux/module.h>
25#include <linux/ptrace.h> 25#include <linux/ptrace.h>
26#include <linux/slab.h>
27#include <linux/wait.h> 26#include <linux/wait.h>
28#include <linux/mm.h> 27#include <linux/mm.h>
29#include <linux/io.h> 28#include <linux/io.h>
diff --git a/arch/powerpc/platforms/cell/spu_priv1_mmio.c b/arch/powerpc/platforms/cell/spu_priv1_mmio.c
index 1410443731eb..121aec353f26 100644
--- a/arch/powerpc/platforms/cell/spu_priv1_mmio.c
+++ b/arch/powerpc/platforms/cell/spu_priv1_mmio.c
@@ -22,7 +22,6 @@
22#include <linux/list.h> 22#include <linux/list.h>
23#include <linux/module.h> 23#include <linux/module.h>
24#include <linux/ptrace.h> 24#include <linux/ptrace.h>
25#include <linux/slab.h>
26#include <linux/wait.h> 25#include <linux/wait.h>
27#include <linux/mm.h> 26#include <linux/mm.h>
28#include <linux/io.h> 27#include <linux/io.h>
diff --git a/arch/powerpc/platforms/cell/spufs/coredump.c b/arch/powerpc/platforms/cell/spufs/coredump.c
index eea120229cdb..6cf3ec628527 100644
--- a/arch/powerpc/platforms/cell/spufs/coredump.c
+++ b/arch/powerpc/platforms/cell/spufs/coredump.c
@@ -24,6 +24,7 @@
24#include <linux/file.h> 24#include <linux/file.h>
25#include <linux/fdtable.h> 25#include <linux/fdtable.h>
26#include <linux/fs.h> 26#include <linux/fs.h>
27#include <linux/gfp.h>
27#include <linux/list.h> 28#include <linux/list.h>
28#include <linux/module.h> 29#include <linux/module.h>
29#include <linux/syscalls.h> 30#include <linux/syscalls.h>
diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c
index 64a4c2d85f7c..1a40da92154c 100644
--- a/arch/powerpc/platforms/cell/spufs/file.c
+++ b/arch/powerpc/platforms/cell/spufs/file.c
@@ -29,6 +29,7 @@
29#include <linux/poll.h> 29#include <linux/poll.h>
30#include <linux/ptrace.h> 30#include <linux/ptrace.h>
31#include <linux/seq_file.h> 31#include <linux/seq_file.h>
32#include <linux/slab.h>
32 33
33#include <asm/io.h> 34#include <asm/io.h>
34#include <asm/time.h> 35#include <asm/time.h>
@@ -1848,8 +1849,7 @@ out:
1848 return ret; 1849 return ret;
1849} 1850}
1850 1851
1851static int spufs_mfc_fsync(struct file *file, struct dentry *dentry, 1852static int spufs_mfc_fsync(struct file *file, int datasync)
1852 int datasync)
1853{ 1853{
1854 return spufs_mfc_flush(file, NULL); 1854 return spufs_mfc_flush(file, NULL);
1855} 1855}
diff --git a/arch/powerpc/platforms/cell/spufs/inode.c b/arch/powerpc/platforms/cell/spufs/inode.c
index fc1b1c42b1dc..e5e5f823d687 100644
--- a/arch/powerpc/platforms/cell/spufs/inode.c
+++ b/arch/powerpc/platforms/cell/spufs/inode.c
@@ -251,7 +251,7 @@ const struct file_operations spufs_context_fops = {
251 .llseek = dcache_dir_lseek, 251 .llseek = dcache_dir_lseek,
252 .read = generic_read_dir, 252 .read = generic_read_dir,
253 .readdir = dcache_readdir, 253 .readdir = dcache_readdir,
254 .fsync = simple_sync_file, 254 .fsync = noop_fsync,
255}; 255};
256EXPORT_SYMBOL_GPL(spufs_context_fops); 256EXPORT_SYMBOL_GPL(spufs_context_fops);
257 257
diff --git a/arch/powerpc/platforms/cell/spufs/lscsa_alloc.c b/arch/powerpc/platforms/cell/spufs/lscsa_alloc.c
index 0e9f325c9ff7..a101abf17504 100644
--- a/arch/powerpc/platforms/cell/spufs/lscsa_alloc.c
+++ b/arch/powerpc/platforms/cell/spufs/lscsa_alloc.c
@@ -22,6 +22,7 @@
22 22
23#include <linux/kernel.h> 23#include <linux/kernel.h>
24#include <linux/mm.h> 24#include <linux/mm.h>
25#include <linux/slab.h>
25#include <linux/vmalloc.h> 26#include <linux/vmalloc.h>
26 27
27#include <asm/spu.h> 28#include <asm/spu.h>
diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c
index 4678078fede8..0b0466284932 100644
--- a/arch/powerpc/platforms/cell/spufs/sched.c
+++ b/arch/powerpc/platforms/cell/spufs/sched.c
@@ -27,6 +27,7 @@
27#include <linux/sched.h> 27#include <linux/sched.h>
28#include <linux/kernel.h> 28#include <linux/kernel.h>
29#include <linux/mm.h> 29#include <linux/mm.h>
30#include <linux/slab.h>
30#include <linux/completion.h> 31#include <linux/completion.h>
31#include <linux/vmalloc.h> 32#include <linux/vmalloc.h>
32#include <linux/smp.h> 33#include <linux/smp.h>
diff --git a/arch/powerpc/platforms/cell/spufs/syscalls.c b/arch/powerpc/platforms/cell/spufs/syscalls.c
index c23617c6baf3..187a7d32f86a 100644
--- a/arch/powerpc/platforms/cell/spufs/syscalls.c
+++ b/arch/powerpc/platforms/cell/spufs/syscalls.c
@@ -3,6 +3,7 @@
3#include <linux/module.h> 3#include <linux/module.h>
4#include <linux/mount.h> 4#include <linux/mount.h>
5#include <linux/namei.h> 5#include <linux/namei.h>
6#include <linux/slab.h>
6 7
7#include <asm/uaccess.h> 8#include <asm/uaccess.h>
8 9
diff --git a/arch/powerpc/platforms/chrp/nvram.c b/arch/powerpc/platforms/chrp/nvram.c
index 8efd4244701c..ba3588f2d8e0 100644
--- a/arch/powerpc/platforms/chrp/nvram.c
+++ b/arch/powerpc/platforms/chrp/nvram.c
@@ -12,7 +12,6 @@
12 12
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/slab.h>
16#include <linux/spinlock.h> 15#include <linux/spinlock.h>
17#include <asm/uaccess.h> 16#include <asm/uaccess.h>
18#include <asm/prom.h> 17#include <asm/prom.h>
diff --git a/arch/powerpc/platforms/chrp/setup.c b/arch/powerpc/platforms/chrp/setup.c
index 8f41685d8f42..8553cc49e0d6 100644
--- a/arch/powerpc/platforms/chrp/setup.c
+++ b/arch/powerpc/platforms/chrp/setup.c
@@ -15,7 +15,6 @@
15#include <linux/stddef.h> 15#include <linux/stddef.h>
16#include <linux/unistd.h> 16#include <linux/unistd.h>
17#include <linux/ptrace.h> 17#include <linux/ptrace.h>
18#include <linux/slab.h>
19#include <linux/user.h> 18#include <linux/user.h>
20#include <linux/tty.h> 19#include <linux/tty.h>
21#include <linux/major.h> 20#include <linux/major.h>
diff --git a/arch/powerpc/platforms/embedded6xx/wii.c b/arch/powerpc/platforms/embedded6xx/wii.c
index 57e5b608fa1a..5cdcc7c8d973 100644
--- a/arch/powerpc/platforms/embedded6xx/wii.c
+++ b/arch/powerpc/platforms/embedded6xx/wii.c
@@ -20,7 +20,7 @@
20#include <linux/seq_file.h> 20#include <linux/seq_file.h>
21#include <linux/kexec.h> 21#include <linux/kexec.h>
22#include <linux/of_platform.h> 22#include <linux/of_platform.h>
23#include <linux/lmb.h> 23#include <linux/memblock.h>
24#include <mm/mmu_decl.h> 24#include <mm/mmu_decl.h>
25 25
26#include <asm/io.h> 26#include <asm/io.h>
@@ -65,19 +65,19 @@ static int __init page_aligned(unsigned long x)
65 65
66void __init wii_memory_fixups(void) 66void __init wii_memory_fixups(void)
67{ 67{
68 struct lmb_property *p = lmb.memory.region; 68 struct memblock_property *p = memblock.memory.region;
69 69
70 /* 70 /*
71 * This is part of a workaround to allow the use of two 71 * This is part of a workaround to allow the use of two
72 * discontiguous RAM ranges on the Wii, even if this is 72 * discontinuous RAM ranges on the Wii, even if this is
73 * currently unsupported on 32-bit PowerPC Linux. 73 * currently unsupported on 32-bit PowerPC Linux.
74 * 74 *
75 * We coealesce the two memory ranges of the Wii into a 75 * We coalesce the two memory ranges of the Wii into a
76 * single range, then create a reservation for the "hole" 76 * single range, then create a reservation for the "hole"
77 * between both ranges. 77 * between both ranges.
78 */ 78 */
79 79
80 BUG_ON(lmb.memory.cnt != 2); 80 BUG_ON(memblock.memory.cnt != 2);
81 BUG_ON(!page_aligned(p[0].base) || !page_aligned(p[1].base)); 81 BUG_ON(!page_aligned(p[0].base) || !page_aligned(p[1].base));
82 82
83 p[0].size = _ALIGN_DOWN(p[0].size, PAGE_SIZE); 83 p[0].size = _ALIGN_DOWN(p[0].size, PAGE_SIZE);
@@ -92,11 +92,11 @@ void __init wii_memory_fixups(void)
92 92
93 p[0].size += wii_hole_size + p[1].size; 93 p[0].size += wii_hole_size + p[1].size;
94 94
95 lmb.memory.cnt = 1; 95 memblock.memory.cnt = 1;
96 lmb_analyze(); 96 memblock_analyze();
97 97
98 /* reserve the hole */ 98 /* reserve the hole */
99 lmb_reserve(wii_hole_start, wii_hole_size); 99 memblock_reserve(wii_hole_start, wii_hole_size);
100 100
101 /* allow ioremapping the address space in the hole */ 101 /* allow ioremapping the address space in the hole */
102 __allow_ioremap_reserved = 1; 102 __allow_ioremap_reserved = 1;
diff --git a/arch/powerpc/platforms/iseries/exception.S b/arch/powerpc/platforms/iseries/exception.S
index fba5bf915073..32a56c6dfa72 100644
--- a/arch/powerpc/platforms/iseries/exception.S
+++ b/arch/powerpc/platforms/iseries/exception.S
@@ -252,8 +252,8 @@ decrementer_iSeries_masked:
252 li r11,1 252 li r11,1
253 ld r12,PACALPPACAPTR(r13) 253 ld r12,PACALPPACAPTR(r13)
254 stb r11,LPPACADECRINT(r12) 254 stb r11,LPPACADECRINT(r12)
255 LOAD_REG_IMMEDIATE(r12, tb_ticks_per_jiffy) 255 li r12,-1
256 lwz r12,0(r12) 256 clrldi r12,r12,33 /* set DEC to 0x7fffffff */
257 mtspr SPRN_DEC,r12 257 mtspr SPRN_DEC,r12
258 /* fall through */ 258 /* fall through */
259 259
diff --git a/arch/powerpc/platforms/iseries/iommu.c b/arch/powerpc/platforms/iseries/iommu.c
index 9d53cb481a7c..ce61cea0afb5 100644
--- a/arch/powerpc/platforms/iseries/iommu.c
+++ b/arch/powerpc/platforms/iseries/iommu.c
@@ -29,6 +29,7 @@
29#include <linux/list.h> 29#include <linux/list.h>
30#include <linux/pci.h> 30#include <linux/pci.h>
31#include <linux/module.h> 31#include <linux/module.h>
32#include <linux/slab.h>
32 33
33#include <asm/iommu.h> 34#include <asm/iommu.h>
34#include <asm/vio.h> 35#include <asm/vio.h>
diff --git a/arch/powerpc/platforms/iseries/mf.c b/arch/powerpc/platforms/iseries/mf.c
index 6617915bcb1a..d2c1d497846e 100644
--- a/arch/powerpc/platforms/iseries/mf.c
+++ b/arch/powerpc/platforms/iseries/mf.c
@@ -33,6 +33,7 @@
33#include <linux/dma-mapping.h> 33#include <linux/dma-mapping.h>
34#include <linux/bcd.h> 34#include <linux/bcd.h>
35#include <linux/rtc.h> 35#include <linux/rtc.h>
36#include <linux/slab.h>
36 37
37#include <asm/time.h> 38#include <asm/time.h>
38#include <asm/uaccess.h> 39#include <asm/uaccess.h>
diff --git a/arch/powerpc/platforms/iseries/pci.c b/arch/powerpc/platforms/iseries/pci.c
index 175aac8ca7e5..ab3962b0d246 100644
--- a/arch/powerpc/platforms/iseries/pci.c
+++ b/arch/powerpc/platforms/iseries/pci.c
@@ -27,10 +27,12 @@
27#include <linux/kernel.h> 27#include <linux/kernel.h>
28#include <linux/list.h> 28#include <linux/list.h>
29#include <linux/string.h> 29#include <linux/string.h>
30#include <linux/slab.h>
30#include <linux/init.h> 31#include <linux/init.h>
31#include <linux/module.h> 32#include <linux/module.h>
32#include <linux/pci.h> 33#include <linux/pci.h>
33#include <linux/of.h> 34#include <linux/of.h>
35#include <linux/ratelimit.h>
34 36
35#include <asm/types.h> 37#include <asm/types.h>
36#include <asm/io.h> 38#include <asm/io.h>
@@ -443,7 +445,11 @@ void __init iSeries_pcibios_fixup_resources(struct pci_dev *pdev)
443 } 445 }
444 446
445 allocate_device_bars(pdev); 447 allocate_device_bars(pdev);
446 iseries_device_information(pdev, bus, *sub_bus); 448 if (likely(sub_bus))
449 iseries_device_information(pdev, bus, *sub_bus);
450 else
451 printk(KERN_ERR "PCI: Device node %s has missing or invalid "
452 "linux,subbus property\n", node->full_name);
447} 453}
448 454
449/* 455/*
@@ -583,14 +589,9 @@ static inline struct device_node *xlate_iomm_address(
583 589
584 orig_addr = (unsigned long __force)addr; 590 orig_addr = (unsigned long __force)addr;
585 if ((orig_addr < BASE_IO_MEMORY) || (orig_addr >= max_io_memory)) { 591 if ((orig_addr < BASE_IO_MEMORY) || (orig_addr >= max_io_memory)) {
586 static unsigned long last_jiffies; 592 static DEFINE_RATELIMIT_STATE(ratelimit, 60 * HZ, 10);
587 static int num_printed;
588 593
589 if (time_after(jiffies, last_jiffies + 60 * HZ)) { 594 if (__ratelimit(&ratelimit))
590 last_jiffies = jiffies;
591 num_printed = 0;
592 }
593 if (num_printed++ < 10)
594 printk(KERN_ERR 595 printk(KERN_ERR
595 "iSeries_%s: invalid access at IO address %p\n", 596 "iSeries_%s: invalid access at IO address %p\n",
596 func, addr); 597 func, addr);
diff --git a/arch/powerpc/platforms/iseries/smp.c b/arch/powerpc/platforms/iseries/smp.c
index 722335e32fd4..6590850045af 100644
--- a/arch/powerpc/platforms/iseries/smp.c
+++ b/arch/powerpc/platforms/iseries/smp.c
@@ -83,7 +83,7 @@ static void smp_iSeries_message_pass(int target, int msg)
83 83
84static int smp_iSeries_probe(void) 84static int smp_iSeries_probe(void)
85{ 85{
86 return cpus_weight(cpu_possible_map); 86 return cpumask_weight(cpu_possible_mask);
87} 87}
88 88
89static void smp_iSeries_kick_cpu(int nr) 89static void smp_iSeries_kick_cpu(int nr)
diff --git a/arch/powerpc/platforms/iseries/vio.c b/arch/powerpc/platforms/iseries/vio.c
index 2aa8b5631beb..00b6730bc48f 100644
--- a/arch/powerpc/platforms/iseries/vio.c
+++ b/arch/powerpc/platforms/iseries/vio.c
@@ -22,7 +22,7 @@
22 */ 22 */
23#include <linux/of.h> 23#include <linux/of.h>
24#include <linux/init.h> 24#include <linux/init.h>
25#include <linux/gfp.h> 25#include <linux/slab.h>
26#include <linux/completion.h> 26#include <linux/completion.h>
27#include <linux/proc_fs.h> 27#include <linux/proc_fs.h>
28#include <linux/module.h> 28#include <linux/module.h>
diff --git a/arch/powerpc/platforms/iseries/viopath.c b/arch/powerpc/platforms/iseries/viopath.c
index 5aea94f30836..b5f05d943a90 100644
--- a/arch/powerpc/platforms/iseries/viopath.c
+++ b/arch/powerpc/platforms/iseries/viopath.c
@@ -29,6 +29,7 @@
29 */ 29 */
30#include <linux/module.h> 30#include <linux/module.h>
31#include <linux/kernel.h> 31#include <linux/kernel.h>
32#include <linux/slab.h>
32#include <linux/errno.h> 33#include <linux/errno.h>
33#include <linux/vmalloc.h> 34#include <linux/vmalloc.h>
34#include <linux/string.h> 35#include <linux/string.h>
diff --git a/arch/powerpc/platforms/maple/setup.c b/arch/powerpc/platforms/maple/setup.c
index 0636a3df6978..3fff8d979b41 100644
--- a/arch/powerpc/platforms/maple/setup.c
+++ b/arch/powerpc/platforms/maple/setup.c
@@ -21,7 +21,6 @@
21#include <linux/stddef.h> 21#include <linux/stddef.h>
22#include <linux/unistd.h> 22#include <linux/unistd.h>
23#include <linux/ptrace.h> 23#include <linux/ptrace.h>
24#include <linux/slab.h>
25#include <linux/user.h> 24#include <linux/user.h>
26#include <linux/tty.h> 25#include <linux/tty.h>
27#include <linux/string.h> 26#include <linux/string.h>
@@ -42,7 +41,7 @@
42#include <linux/smp.h> 41#include <linux/smp.h>
43#include <linux/bitops.h> 42#include <linux/bitops.h>
44#include <linux/of_device.h> 43#include <linux/of_device.h>
45#include <linux/lmb.h> 44#include <linux/memblock.h>
46 45
47#include <asm/processor.h> 46#include <asm/processor.h>
48#include <asm/sections.h> 47#include <asm/sections.h>
diff --git a/arch/powerpc/platforms/pasemi/cpufreq.c b/arch/powerpc/platforms/pasemi/cpufreq.c
index d35e0520abf0..c16537bc0c6e 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 cpumask_copy(policy->cpus, &cpu_online_map); 216 cpumask_copy(policy->cpus, cpu_online_mask);
217 217
218 ppc_proc_freq = policy->cur * 1000ul; 218 ppc_proc_freq = policy->cur * 1000ul;
219 219
diff --git a/arch/powerpc/platforms/pasemi/dma_lib.c b/arch/powerpc/platforms/pasemi/dma_lib.c
index a6152d922243..09695ae50f91 100644
--- a/arch/powerpc/platforms/pasemi/dma_lib.c
+++ b/arch/powerpc/platforms/pasemi/dma_lib.c
@@ -21,6 +21,7 @@
21#include <linux/init.h> 21#include <linux/init.h>
22#include <linux/module.h> 22#include <linux/module.h>
23#include <linux/pci.h> 23#include <linux/pci.h>
24#include <linux/slab.h>
24#include <linux/of.h> 25#include <linux/of.h>
25 26
26#include <asm/pasemi_dma.h> 27#include <asm/pasemi_dma.h>
diff --git a/arch/powerpc/platforms/pasemi/gpio_mdio.c b/arch/powerpc/platforms/pasemi/gpio_mdio.c
index 3bf546797cbb..627ee089e75d 100644
--- a/arch/powerpc/platforms/pasemi/gpio_mdio.c
+++ b/arch/powerpc/platforms/pasemi/gpio_mdio.c
@@ -24,6 +24,7 @@
24#include <linux/io.h> 24#include <linux/io.h>
25#include <linux/module.h> 25#include <linux/module.h>
26#include <linux/types.h> 26#include <linux/types.h>
27#include <linux/slab.h>
27#include <linux/sched.h> 28#include <linux/sched.h>
28#include <linux/errno.h> 29#include <linux/errno.h>
29#include <linux/ioport.h> 30#include <linux/ioport.h>
@@ -219,7 +220,7 @@ static int __devinit gpio_mdio_probe(struct of_device *ofdev,
219 const struct of_device_id *match) 220 const struct of_device_id *match)
220{ 221{
221 struct device *dev = &ofdev->dev; 222 struct device *dev = &ofdev->dev;
222 struct device_node *np = ofdev->node; 223 struct device_node *np = ofdev->dev.of_node;
223 struct mii_bus *new_bus; 224 struct mii_bus *new_bus;
224 struct gpio_priv *priv; 225 struct gpio_priv *priv;
225 const unsigned int *prop; 226 const unsigned int *prop;
@@ -300,11 +301,12 @@ MODULE_DEVICE_TABLE(of, gpio_mdio_match);
300 301
301static struct of_platform_driver gpio_mdio_driver = 302static struct of_platform_driver gpio_mdio_driver =
302{ 303{
303 .match_table = gpio_mdio_match,
304 .probe = gpio_mdio_probe, 304 .probe = gpio_mdio_probe,
305 .remove = gpio_mdio_remove, 305 .remove = gpio_mdio_remove,
306 .driver = { 306 .driver = {
307 .name = "gpio-mdio-bitbang", 307 .name = "gpio-mdio-bitbang",
308 .owner = THIS_MODULE,
309 .of_match_table = gpio_mdio_match,
308 }, 310 },
309}; 311};
310 312
diff --git a/arch/powerpc/platforms/pasemi/iommu.c b/arch/powerpc/platforms/pasemi/iommu.c
index 7b1d608ea3c8..1f9fb2c57761 100644
--- a/arch/powerpc/platforms/pasemi/iommu.c
+++ b/arch/powerpc/platforms/pasemi/iommu.c
@@ -204,7 +204,7 @@ int __init iob_init(struct device_node *dn)
204 pr_debug(" -> %s\n", __func__); 204 pr_debug(" -> %s\n", __func__);
205 205
206 /* Allocate a spare page to map all invalid IOTLB pages. */ 206 /* Allocate a spare page to map all invalid IOTLB pages. */
207 tmp = lmb_alloc(IOBMAP_PAGE_SIZE, IOBMAP_PAGE_SIZE); 207 tmp = memblock_alloc(IOBMAP_PAGE_SIZE, IOBMAP_PAGE_SIZE);
208 if (!tmp) 208 if (!tmp)
209 panic("IOBMAP: Cannot allocate spare page!"); 209 panic("IOBMAP: Cannot allocate spare page!");
210 /* Empty l1 is marked invalid */ 210 /* Empty l1 is marked invalid */
@@ -275,7 +275,7 @@ void __init alloc_iobmap_l2(void)
275 return; 275 return;
276#endif 276#endif
277 /* For 2G space, 8x64 pages (2^21 bytes) is max total l2 size */ 277 /* For 2G space, 8x64 pages (2^21 bytes) is max total l2 size */
278 iob_l2_base = (u32 *)abs_to_virt(lmb_alloc_base(1UL<<21, 1UL<<21, 0x80000000)); 278 iob_l2_base = (u32 *)abs_to_virt(memblock_alloc_base(1UL<<21, 1UL<<21, 0x80000000));
279 279
280 printk(KERN_INFO "IOBMAP L2 allocated at: %p\n", iob_l2_base); 280 printk(KERN_INFO "IOBMAP L2 allocated at: %p\n", iob_l2_base);
281} 281}
diff --git a/arch/powerpc/platforms/pasemi/setup.c b/arch/powerpc/platforms/pasemi/setup.c
index 242f8095c2df..f372ec1691a3 100644
--- a/arch/powerpc/platforms/pasemi/setup.c
+++ b/arch/powerpc/platforms/pasemi/setup.c
@@ -28,6 +28,7 @@
28#include <linux/console.h> 28#include <linux/console.h>
29#include <linux/pci.h> 29#include <linux/pci.h>
30#include <linux/of_platform.h> 30#include <linux/of_platform.h>
31#include <linux/gfp.h>
31 32
32#include <asm/prom.h> 33#include <asm/prom.h>
33#include <asm/system.h> 34#include <asm/system.h>
@@ -359,10 +360,10 @@ static int pcmcia_notify(struct notifier_block *nb, unsigned long action,
359 /* We know electra_cf devices will always have of_node set, since 360 /* We know electra_cf devices will always have of_node set, since
360 * electra_cf is an of_platform driver. 361 * electra_cf is an of_platform driver.
361 */ 362 */
362 if (!parent->archdata.of_node) 363 if (!parent->of_node)
363 return 0; 364 return 0;
364 365
365 if (!of_device_is_compatible(parent->archdata.of_node, "electra-cf")) 366 if (!of_device_is_compatible(parent->of_node, "electra-cf"))
366 return 0; 367 return 0;
367 368
368 /* We use the direct ops for localbus */ 369 /* We use the direct ops for localbus */
diff --git a/arch/powerpc/platforms/powermac/cpufreq_32.c b/arch/powerpc/platforms/powermac/cpufreq_32.c
index d4f127d18141..1e9eba175ff0 100644
--- a/arch/powerpc/platforms/powermac/cpufreq_32.c
+++ b/arch/powerpc/platforms/powermac/cpufreq_32.c
@@ -21,7 +21,6 @@
21#include <linux/sched.h> 21#include <linux/sched.h>
22#include <linux/adb.h> 22#include <linux/adb.h>
23#include <linux/pmu.h> 23#include <linux/pmu.h>
24#include <linux/slab.h>
25#include <linux/cpufreq.h> 24#include <linux/cpufreq.h>
26#include <linux/init.h> 25#include <linux/init.h>
27#include <linux/sysdev.h> 26#include <linux/sysdev.h>
diff --git a/arch/powerpc/platforms/powermac/cpufreq_64.c b/arch/powerpc/platforms/powermac/cpufreq_64.c
index 3ed288e68ec4..9650c6029c82 100644
--- a/arch/powerpc/platforms/powermac/cpufreq_64.c
+++ b/arch/powerpc/platforms/powermac/cpufreq_64.c
@@ -18,7 +18,6 @@
18#include <linux/kernel.h> 18#include <linux/kernel.h>
19#include <linux/delay.h> 19#include <linux/delay.h>
20#include <linux/sched.h> 20#include <linux/sched.h>
21#include <linux/slab.h>
22#include <linux/cpufreq.h> 21#include <linux/cpufreq.h>
23#include <linux/init.h> 22#include <linux/init.h>
24#include <linux/completion.h> 23#include <linux/completion.h>
@@ -363,7 +362,7 @@ static int g5_cpufreq_cpu_init(struct cpufreq_policy *policy)
363 /* secondary CPUs are tied to the primary one by the 362 /* secondary CPUs are tied to the primary one by the
364 * cpufreq core if in the secondary policy we tell it that 363 * cpufreq core if in the secondary policy we tell it that
365 * it actually must be one policy together with all others. */ 364 * it actually must be one policy together with all others. */
366 cpumask_copy(policy->cpus, &cpu_online_map); 365 cpumask_copy(policy->cpus, cpu_online_mask);
367 cpufreq_frequency_table_get_attr(g5_cpu_freqs, policy->cpu); 366 cpufreq_frequency_table_get_attr(g5_cpu_freqs, policy->cpu);
368 367
369 return cpufreq_frequency_table_cpuinfo(policy, 368 return cpufreq_frequency_table_cpuinfo(policy,
diff --git a/arch/powerpc/platforms/powermac/low_i2c.c b/arch/powerpc/platforms/powermac/low_i2c.c
index 345e2da56767..06a137c5b8bb 100644
--- a/arch/powerpc/platforms/powermac/low_i2c.c
+++ b/arch/powerpc/platforms/powermac/low_i2c.c
@@ -43,6 +43,7 @@
43#include <linux/timer.h> 43#include <linux/timer.h>
44#include <linux/mutex.h> 44#include <linux/mutex.h>
45#include <linux/i2c.h> 45#include <linux/i2c.h>
46#include <linux/slab.h>
46#include <asm/keylargo.h> 47#include <asm/keylargo.h>
47#include <asm/uninorth.h> 48#include <asm/uninorth.h>
48#include <asm/io.h> 49#include <asm/io.h>
@@ -591,7 +592,7 @@ static void __init kw_i2c_probe(void)
591 /* Probe keywest-i2c busses */ 592 /* Probe keywest-i2c busses */
592 for_each_compatible_node(np, "i2c","keywest-i2c") { 593 for_each_compatible_node(np, "i2c","keywest-i2c") {
593 struct pmac_i2c_host_kw *host; 594 struct pmac_i2c_host_kw *host;
594 int multibus, chans, i; 595 int multibus;
595 596
596 /* Found one, init a host structure */ 597 /* Found one, init a host structure */
597 host = kw_i2c_host_init(np); 598 host = kw_i2c_host_init(np);
@@ -613,6 +614,8 @@ static void __init kw_i2c_probe(void)
613 * parent type 614 * parent type
614 */ 615 */
615 if (multibus) { 616 if (multibus) {
617 int chans, i;
618
616 parent = of_get_parent(np); 619 parent = of_get_parent(np);
617 if (parent == NULL) 620 if (parent == NULL)
618 continue; 621 continue;
@@ -1257,8 +1260,7 @@ static void pmac_i2c_do_end(struct pmf_function *func, void *instdata)
1257 if (inst == NULL) 1260 if (inst == NULL)
1258 return; 1261 return;
1259 pmac_i2c_close(inst->bus); 1262 pmac_i2c_close(inst->bus);
1260 if (inst) 1263 kfree(inst);
1261 kfree(inst);
1262} 1264}
1263 1265
1264static int pmac_i2c_do_read(PMF_STD_ARGS, u32 len) 1266static int pmac_i2c_do_read(PMF_STD_ARGS, u32 len)
diff --git a/arch/powerpc/platforms/powermac/nvram.c b/arch/powerpc/platforms/powermac/nvram.c
index 80a5258d0364..b1cdcf94aa8e 100644
--- a/arch/powerpc/platforms/powermac/nvram.c
+++ b/arch/powerpc/platforms/powermac/nvram.c
@@ -14,7 +14,6 @@
14#include <linux/string.h> 14#include <linux/string.h>
15#include <linux/nvram.h> 15#include <linux/nvram.h>
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/slab.h>
18#include <linux/delay.h> 17#include <linux/delay.h>
19#include <linux/errno.h> 18#include <linux/errno.h>
20#include <linux/adb.h> 19#include <linux/adb.h>
diff --git a/arch/powerpc/platforms/powermac/pfunc_core.c b/arch/powerpc/platforms/powermac/pfunc_core.c
index ede49e78a8da..cec635942657 100644
--- a/arch/powerpc/platforms/powermac/pfunc_core.c
+++ b/arch/powerpc/platforms/powermac/pfunc_core.c
@@ -9,6 +9,7 @@
9#include <linux/delay.h> 9#include <linux/delay.h>
10#include <linux/kernel.h> 10#include <linux/kernel.h>
11#include <linux/spinlock.h> 11#include <linux/spinlock.h>
12#include <linux/slab.h>
12#include <linux/module.h> 13#include <linux/module.h>
13#include <linux/mutex.h> 14#include <linux/mutex.h>
14 15
diff --git a/arch/powerpc/platforms/powermac/pmac.h b/arch/powerpc/platforms/powermac/pmac.h
index 3362e781b6a7..f0bc08f6c1f0 100644
--- a/arch/powerpc/platforms/powermac/pmac.h
+++ b/arch/powerpc/platforms/powermac/pmac.h
@@ -33,6 +33,8 @@ extern void pmac_setup_pci_dma(void);
33extern void pmac_check_ht_link(void); 33extern void pmac_check_ht_link(void);
34 34
35extern void pmac_setup_smp(void); 35extern void pmac_setup_smp(void);
36extern void pmac32_cpu_die(void);
37extern void low_cpu_die(void) __attribute__((noreturn));
36 38
37extern int pmac_nvram_init(void); 39extern int pmac_nvram_init(void);
38extern void pmac_pic_init(void); 40extern void pmac_pic_init(void);
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c
index c20522656367..9deb274841f1 100644
--- a/arch/powerpc/platforms/powermac/setup.c
+++ b/arch/powerpc/platforms/powermac/setup.c
@@ -31,7 +31,6 @@
31#include <linux/stddef.h> 31#include <linux/stddef.h>
32#include <linux/unistd.h> 32#include <linux/unistd.h>
33#include <linux/ptrace.h> 33#include <linux/ptrace.h>
34#include <linux/slab.h>
35#include <linux/user.h> 34#include <linux/user.h>
36#include <linux/tty.h> 35#include <linux/tty.h>
37#include <linux/string.h> 36#include <linux/string.h>
@@ -52,7 +51,7 @@
52#include <linux/suspend.h> 51#include <linux/suspend.h>
53#include <linux/of_device.h> 52#include <linux/of_device.h>
54#include <linux/of_platform.h> 53#include <linux/of_platform.h>
55#include <linux/lmb.h> 54#include <linux/memblock.h>
56 55
57#include <asm/reg.h> 56#include <asm/reg.h>
58#include <asm/sections.h> 57#include <asm/sections.h>
@@ -481,7 +480,7 @@ static void __init pmac_init_early(void)
481#endif 480#endif
482 481
483 /* SMP Init has to be done early as we need to patch up 482 /* SMP Init has to be done early as we need to patch up
484 * cpu_possible_map before interrupt stacks are allocated 483 * cpu_possible_mask before interrupt stacks are allocated
485 * or kaboom... 484 * or kaboom...
486 */ 485 */
487#ifdef CONFIG_SMP 486#ifdef CONFIG_SMP
@@ -620,7 +619,7 @@ static int __init pmac_probe(void)
620 * driver needs that. We have to allocate it now. We allocate 4k 619 * driver needs that. We have to allocate it now. We allocate 4k
621 * (1 small page) for now. 620 * (1 small page) for now.
622 */ 621 */
623 smu_cmdbuf_abs = lmb_alloc_base(4096, 4096, 0x80000000UL); 622 smu_cmdbuf_abs = memblock_alloc_base(4096, 4096, 0x80000000UL);
624#endif /* CONFIG_PMAC_SMU */ 623#endif /* CONFIG_PMAC_SMU */
625 624
626 return 1; 625 return 1;
@@ -647,7 +646,7 @@ static int pmac_pci_probe_mode(struct pci_bus *bus)
647/* access per cpu vars from generic smp.c */ 646/* access per cpu vars from generic smp.c */
648DECLARE_PER_CPU(int, cpu_state); 647DECLARE_PER_CPU(int, cpu_state);
649 648
650static void pmac_cpu_die(void) 649static void pmac64_cpu_die(void)
651{ 650{
652 /* 651 /*
653 * turn off as much as possible, we'll be 652 * turn off as much as possible, we'll be
@@ -718,8 +717,13 @@ define_machine(powermac) {
718 .pcibios_after_init = pmac_pcibios_after_init, 717 .pcibios_after_init = pmac_pcibios_after_init,
719 .phys_mem_access_prot = pci_phys_mem_access_prot, 718 .phys_mem_access_prot = pci_phys_mem_access_prot,
720#endif 719#endif
721#if defined(CONFIG_HOTPLUG_CPU) && defined(CONFIG_PPC64) 720#ifdef CONFIG_HOTPLUG_CPU
722 .cpu_die = pmac_cpu_die, 721#ifdef CONFIG_PPC64
722 .cpu_die = pmac64_cpu_die,
723#endif
724#ifdef CONFIG_PPC32
725 .cpu_die = pmac32_cpu_die,
726#endif
723#endif 727#endif
724#if defined(CONFIG_HOTPLUG_CPU) && defined(CONFIG_PPC32) 728#if defined(CONFIG_HOTPLUG_CPU) && defined(CONFIG_PPC32)
725 .cpu_die = generic_mach_cpu_die, 729 .cpu_die = generic_mach_cpu_die,
diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c
index 6898e8241cd0..c95215f4f8b6 100644
--- a/arch/powerpc/platforms/powermac/smp.c
+++ b/arch/powerpc/platforms/powermac/smp.c
@@ -53,6 +53,8 @@
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#include "pmac.h"
57
56#undef DEBUG 58#undef DEBUG
57 59
58#ifdef DEBUG 60#ifdef DEBUG
@@ -315,7 +317,7 @@ static int __init smp_psurge_probe(void)
315 /* This is necessary because OF doesn't know about the 317 /* This is necessary because OF doesn't know about the
316 * secondary cpu(s), and thus there aren't nodes in the 318 * secondary cpu(s), and thus there aren't nodes in the
317 * device tree for them, and smp_setup_cpu_maps hasn't 319 * device tree for them, and smp_setup_cpu_maps hasn't
318 * set their bits in cpu_present_map. 320 * set their bits in cpu_present_mask.
319 */ 321 */
320 if (ncpus > NR_CPUS) 322 if (ncpus > NR_CPUS)
321 ncpus = NR_CPUS; 323 ncpus = NR_CPUS;
@@ -878,10 +880,9 @@ int smp_core99_cpu_disable(void)
878 return 0; 880 return 0;
879} 881}
880 882
881extern void low_cpu_die(void) __attribute__((noreturn)); /* in sleep.S */
882static int cpu_dead[NR_CPUS]; 883static int cpu_dead[NR_CPUS];
883 884
884void cpu_die(void) 885void pmac32_cpu_die(void)
885{ 886{
886 local_irq_disable(); 887 local_irq_disable();
887 cpu_dead[smp_processor_id()] = 1; 888 cpu_dead[smp_processor_id()] = 1;
@@ -944,7 +945,7 @@ void __init pmac_setup_smp(void)
944 } 945 }
945#ifdef CONFIG_PPC32 946#ifdef CONFIG_PPC32
946 else { 947 else {
947 /* We have to set bits in cpu_possible_map here since the 948 /* We have to set bits in cpu_possible_mask here since the
948 * secondary CPU(s) aren't in the device tree. Various 949 * secondary CPU(s) aren't in the device tree. Various
949 * things won't be initialized for CPUs not in the possible 950 * things won't be initialized for CPUs not in the possible
950 * map, so we really need to fix it up here. 951 * map, so we really need to fix it up here.
diff --git a/arch/powerpc/platforms/ps3/device-init.c b/arch/powerpc/platforms/ps3/device-init.c
index bb028f165fb3..b341018326df 100644
--- a/arch/powerpc/platforms/ps3/device-init.c
+++ b/arch/powerpc/platforms/ps3/device-init.c
@@ -23,6 +23,7 @@
23#include <linux/kernel.h> 23#include <linux/kernel.h>
24#include <linux/kthread.h> 24#include <linux/kthread.h>
25#include <linux/init.h> 25#include <linux/init.h>
26#include <linux/slab.h>
26#include <linux/reboot.h> 27#include <linux/reboot.h>
27 28
28#include <asm/firmware.h> 29#include <asm/firmware.h>
diff --git a/arch/powerpc/platforms/ps3/htab.c b/arch/powerpc/platforms/ps3/htab.c
index 1e8a1e39dfe8..3124cf791ebb 100644
--- a/arch/powerpc/platforms/ps3/htab.c
+++ b/arch/powerpc/platforms/ps3/htab.c
@@ -19,7 +19,7 @@
19 */ 19 */
20 20
21#include <linux/kernel.h> 21#include <linux/kernel.h>
22#include <linux/lmb.h> 22#include <linux/memblock.h>
23 23
24#include <asm/machdep.h> 24#include <asm/machdep.h>
25#include <asm/prom.h> 25#include <asm/prom.h>
@@ -136,7 +136,7 @@ static long ps3_hpte_updatepp(unsigned long slot, unsigned long newpp,
136 * As lv1_read_htab_entries() does not give us the RPN, we can 136 * As lv1_read_htab_entries() does not give us the RPN, we can
137 * not synthesize the new hpte_r value here, and therefore can 137 * not synthesize the new hpte_r value here, and therefore can
138 * not update the hpte with lv1_insert_htab_entry(), so we 138 * not update the hpte with lv1_insert_htab_entry(), so we
139 * insted invalidate it and ask the caller to update it via 139 * instead invalidate it and ask the caller to update it via
140 * ps3_hpte_insert() by returning a -1 value. 140 * ps3_hpte_insert() by returning a -1 value.
141 */ 141 */
142 if (!HPTE_V_COMPARE(hpte_v, want_v) || !(hpte_v & HPTE_V_VALID)) { 142 if (!HPTE_V_COMPARE(hpte_v, want_v) || !(hpte_v & HPTE_V_VALID)) {
diff --git a/arch/powerpc/platforms/ps3/mm.c b/arch/powerpc/platforms/ps3/mm.c
index e81b028a2a48..c2045880e674 100644
--- a/arch/powerpc/platforms/ps3/mm.c
+++ b/arch/powerpc/platforms/ps3/mm.c
@@ -21,7 +21,8 @@
21#include <linux/kernel.h> 21#include <linux/kernel.h>
22#include <linux/module.h> 22#include <linux/module.h>
23#include <linux/memory_hotplug.h> 23#include <linux/memory_hotplug.h>
24#include <linux/lmb.h> 24#include <linux/memblock.h>
25#include <linux/slab.h>
25 26
26#include <asm/cell-regs.h> 27#include <asm/cell-regs.h>
27#include <asm/firmware.h> 28#include <asm/firmware.h>
@@ -317,8 +318,8 @@ static int __init ps3_mm_add_memory(void)
317 return result; 318 return result;
318 } 319 }
319 320
320 lmb_add(start_addr, map.r1.size); 321 memblock_add(start_addr, map.r1.size);
321 lmb_analyze(); 322 memblock_analyze();
322 323
323 result = online_pages(start_pfn, nr_pages); 324 result = online_pages(start_pfn, nr_pages);
324 325
diff --git a/arch/powerpc/platforms/ps3/os-area.c b/arch/powerpc/platforms/ps3/os-area.c
index d6487a9c8019..5b759b669598 100644
--- a/arch/powerpc/platforms/ps3/os-area.c
+++ b/arch/powerpc/platforms/ps3/os-area.c
@@ -24,8 +24,9 @@
24#include <linux/fs.h> 24#include <linux/fs.h>
25#include <linux/syscalls.h> 25#include <linux/syscalls.h>
26#include <linux/ctype.h> 26#include <linux/ctype.h>
27#include <linux/lmb.h> 27#include <linux/memblock.h>
28#include <linux/of.h> 28#include <linux/of.h>
29#include <linux/slab.h>
29 30
30#include <asm/prom.h> 31#include <asm/prom.h>
31 32
@@ -722,7 +723,7 @@ static void os_area_queue_work(void)
722 * flash to a high address in the boot memory region and then puts that RAM 723 * flash to a high address in the boot memory region and then puts that RAM
723 * address and the byte count into the repository for retrieval by the guest. 724 * address and the byte count into the repository for retrieval by the guest.
724 * We copy the data we want into a static variable and allow the memory setup 725 * We copy the data we want into a static variable and allow the memory setup
725 * by the HV to be claimed by the lmb manager. 726 * by the HV to be claimed by the memblock manager.
726 * 727 *
727 * The os area mirror will not be available to a second stage kernel, and 728 * The os area mirror will not be available to a second stage kernel, and
728 * the header verify will fail. In this case, the saved_params values will 729 * the header verify will fail. In this case, the saved_params values will
diff --git a/arch/powerpc/platforms/ps3/spu.c b/arch/powerpc/platforms/ps3/spu.c
index b3c6a993f9f3..39a472e9e80f 100644
--- a/arch/powerpc/platforms/ps3/spu.c
+++ b/arch/powerpc/platforms/ps3/spu.c
@@ -20,6 +20,7 @@
20 20
21#include <linux/kernel.h> 21#include <linux/kernel.h>
22#include <linux/init.h> 22#include <linux/init.h>
23#include <linux/slab.h>
23#include <linux/mmzone.h> 24#include <linux/mmzone.h>
24#include <linux/io.h> 25#include <linux/io.h>
25#include <linux/mm.h> 26#include <linux/mm.h>
diff --git a/arch/powerpc/platforms/ps3/system-bus.c b/arch/powerpc/platforms/ps3/system-bus.c
index e34b305a7a52..23083c397528 100644
--- a/arch/powerpc/platforms/ps3/system-bus.c
+++ b/arch/powerpc/platforms/ps3/system-bus.c
@@ -23,6 +23,7 @@
23#include <linux/module.h> 23#include <linux/module.h>
24#include <linux/dma-mapping.h> 24#include <linux/dma-mapping.h>
25#include <linux/err.h> 25#include <linux/err.h>
26#include <linux/slab.h>
26 27
27#include <asm/udbg.h> 28#include <asm/udbg.h>
28#include <asm/lv1call.h> 29#include <asm/lv1call.h>
@@ -765,7 +766,7 @@ int ps3_system_bus_device_register(struct ps3_system_bus_device *dev)
765 BUG(); 766 BUG();
766 }; 767 };
767 768
768 dev->core.archdata.of_node = NULL; 769 dev->core.of_node = NULL;
769 set_dev_node(&dev->core, 0); 770 set_dev_node(&dev->core, 0);
770 771
771 pr_debug("%s:%d add %s\n", __func__, __LINE__, dev_name(&dev->core)); 772 pr_debug("%s:%d add %s\n", __func__, __LINE__, dev_name(&dev->core));
diff --git a/arch/powerpc/platforms/pseries/Makefile b/arch/powerpc/platforms/pseries/Makefile
index 0ff5174ae4f5..3dbef309bc8d 100644
--- a/arch/powerpc/platforms/pseries/Makefile
+++ b/arch/powerpc/platforms/pseries/Makefile
@@ -7,7 +7,7 @@ EXTRA_CFLAGS += -DDEBUG
7endif 7endif
8 8
9obj-y := lpar.o hvCall.o nvram.o reconfig.o \ 9obj-y := lpar.o hvCall.o nvram.o reconfig.o \
10 setup.o iommu.o ras.o \ 10 setup.o iommu.o event_sources.o ras.o \
11 firmware.o power.o dlpar.o 11 firmware.o power.o dlpar.o
12obj-$(CONFIG_SMP) += smp.o 12obj-$(CONFIG_SMP) += smp.o
13obj-$(CONFIG_XICS) += xics.o 13obj-$(CONFIG_XICS) += xics.o
diff --git a/arch/powerpc/platforms/pseries/cmm.c b/arch/powerpc/platforms/pseries/cmm.c
index a277f2e28dbc..f4803868642c 100644
--- a/arch/powerpc/platforms/pseries/cmm.c
+++ b/arch/powerpc/platforms/pseries/cmm.c
@@ -24,6 +24,7 @@
24#include <linux/delay.h> 24#include <linux/delay.h>
25#include <linux/errno.h> 25#include <linux/errno.h>
26#include <linux/fs.h> 26#include <linux/fs.h>
27#include <linux/gfp.h>
27#include <linux/init.h> 28#include <linux/init.h>
28#include <linux/kthread.h> 29#include <linux/kthread.h>
29#include <linux/module.h> 30#include <linux/module.h>
diff --git a/arch/powerpc/platforms/pseries/dlpar.c b/arch/powerpc/platforms/pseries/dlpar.c
index 37bce52526da..d71e58584086 100644
--- a/arch/powerpc/platforms/pseries/dlpar.c
+++ b/arch/powerpc/platforms/pseries/dlpar.c
@@ -16,6 +16,7 @@
16#include <linux/proc_fs.h> 16#include <linux/proc_fs.h>
17#include <linux/spinlock.h> 17#include <linux/spinlock.h>
18#include <linux/cpu.h> 18#include <linux/cpu.h>
19#include <linux/slab.h>
19#include "offline_states.h" 20#include "offline_states.h"
20 21
21#include <asm/prom.h> 22#include <asm/prom.h>
@@ -78,13 +79,12 @@ static struct device_node *dlpar_parse_cc_node(struct cc_workarea *ccwa)
78 * prepend this to the full_name. 79 * prepend this to the full_name.
79 */ 80 */
80 name = (char *)ccwa + ccwa->name_offset; 81 name = (char *)ccwa + ccwa->name_offset;
81 dn->full_name = kmalloc(strlen(name) + 2, GFP_KERNEL); 82 dn->full_name = kasprintf(GFP_KERNEL, "/%s", name);
82 if (!dn->full_name) { 83 if (!dn->full_name) {
83 kfree(dn); 84 kfree(dn);
84 return NULL; 85 return NULL;
85 } 86 }
86 87
87 sprintf(dn->full_name, "/%s", name);
88 return dn; 88 return dn;
89} 89}
90 90
@@ -409,15 +409,13 @@ static ssize_t dlpar_cpu_probe(const char *buf, size_t count)
409 * directory of the device tree. CPUs actually live in the 409 * directory of the device tree. CPUs actually live in the
410 * cpus directory so we need to fixup the full_name. 410 * cpus directory so we need to fixup the full_name.
411 */ 411 */
412 cpu_name = kzalloc(strlen(dn->full_name) + strlen("/cpus") + 1, 412 cpu_name = kasprintf(GFP_KERNEL, "/cpus%s", dn->full_name);
413 GFP_KERNEL);
414 if (!cpu_name) { 413 if (!cpu_name) {
415 dlpar_free_cc_nodes(dn); 414 dlpar_free_cc_nodes(dn);
416 rc = -ENOMEM; 415 rc = -ENOMEM;
417 goto out; 416 goto out;
418 } 417 }
419 418
420 sprintf(cpu_name, "/cpus%s", dn->full_name);
421 kfree(dn->full_name); 419 kfree(dn->full_name);
422 dn->full_name = cpu_name; 420 dn->full_name = cpu_name;
423 421
@@ -432,6 +430,7 @@ static ssize_t dlpar_cpu_probe(const char *buf, size_t count)
432 if (rc) { 430 if (rc) {
433 dlpar_release_drc(drc_index); 431 dlpar_release_drc(drc_index);
434 dlpar_free_cc_nodes(dn); 432 dlpar_free_cc_nodes(dn);
433 goto out;
435 } 434 }
436 435
437 rc = dlpar_online_cpu(dn); 436 rc = dlpar_online_cpu(dn);
diff --git a/arch/powerpc/platforms/pseries/dtl.c b/arch/powerpc/platforms/pseries/dtl.c
index c5f3116b6ca5..a00addb55945 100644
--- a/arch/powerpc/platforms/pseries/dtl.c
+++ b/arch/powerpc/platforms/pseries/dtl.c
@@ -21,6 +21,7 @@
21 */ 21 */
22 22
23#include <linux/init.h> 23#include <linux/init.h>
24#include <linux/slab.h>
24#include <linux/debugfs.h> 25#include <linux/debugfs.h>
25#include <asm/smp.h> 26#include <asm/smp.h>
26#include <asm/system.h> 27#include <asm/system.h>
diff --git a/arch/powerpc/platforms/pseries/eeh.c b/arch/powerpc/platforms/pseries/eeh.c
index 7df7fbb7cacb..34b7dc12e731 100644
--- a/arch/powerpc/platforms/pseries/eeh.c
+++ b/arch/powerpc/platforms/pseries/eeh.c
@@ -749,7 +749,7 @@ static void __rtas_set_slot_reset(struct pci_dn *pdn)
749 /* Determine type of EEH reset required by device, 749 /* Determine type of EEH reset required by device,
750 * default hot reset or fundamental reset 750 * default hot reset or fundamental reset
751 */ 751 */
752 if (dev->needs_freset) 752 if (dev && dev->needs_freset)
753 rtas_pci_slot_reset(pdn, 3); 753 rtas_pci_slot_reset(pdn, 3);
754 else 754 else
755 rtas_pci_slot_reset(pdn, 1); 755 rtas_pci_slot_reset(pdn, 1);
diff --git a/arch/powerpc/platforms/pseries/eeh_cache.c b/arch/powerpc/platforms/pseries/eeh_cache.c
index ce37040af870..30b987b73c20 100644
--- a/arch/powerpc/platforms/pseries/eeh_cache.c
+++ b/arch/powerpc/platforms/pseries/eeh_cache.c
@@ -23,6 +23,7 @@
23#include <linux/list.h> 23#include <linux/list.h>
24#include <linux/pci.h> 24#include <linux/pci.h>
25#include <linux/rbtree.h> 25#include <linux/rbtree.h>
26#include <linux/slab.h>
26#include <linux/spinlock.h> 27#include <linux/spinlock.h>
27#include <asm/atomic.h> 28#include <asm/atomic.h>
28#include <asm/pci-bridge.h> 29#include <asm/pci-bridge.h>
diff --git a/arch/powerpc/platforms/pseries/eeh_event.c b/arch/powerpc/platforms/pseries/eeh_event.c
index ec5df8f519c7..2ec500c130b5 100644
--- a/arch/powerpc/platforms/pseries/eeh_event.c
+++ b/arch/powerpc/platforms/pseries/eeh_event.c
@@ -22,6 +22,7 @@
22#include <linux/list.h> 22#include <linux/list.h>
23#include <linux/mutex.h> 23#include <linux/mutex.h>
24#include <linux/pci.h> 24#include <linux/pci.h>
25#include <linux/slab.h>
25#include <linux/workqueue.h> 26#include <linux/workqueue.h>
26#include <asm/eeh_event.h> 27#include <asm/eeh_event.h>
27#include <asm/ppc-pci.h> 28#include <asm/ppc-pci.h>
diff --git a/arch/powerpc/platforms/pseries/event_sources.c b/arch/powerpc/platforms/pseries/event_sources.c
new file mode 100644
index 000000000000..e889c9d9586a
--- /dev/null
+++ b/arch/powerpc/platforms/pseries/event_sources.c
@@ -0,0 +1,79 @@
1/*
2 * Copyright (C) 2001 Dave Engebretsen IBM Corporation
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 */
18
19#include <asm/prom.h>
20
21#include "pseries.h"
22
23void request_event_sources_irqs(struct device_node *np,
24 irq_handler_t handler,
25 const char *name)
26{
27 int i, index, count = 0;
28 struct of_irq oirq;
29 const u32 *opicprop;
30 unsigned int opicplen;
31 unsigned int virqs[16];
32
33 /* Check for obsolete "open-pic-interrupt" property. If present, then
34 * map those interrupts using the default interrupt host and default
35 * trigger
36 */
37 opicprop = of_get_property(np, "open-pic-interrupt", &opicplen);
38 if (opicprop) {
39 opicplen /= sizeof(u32);
40 for (i = 0; i < opicplen; i++) {
41 if (count > 15)
42 break;
43 virqs[count] = irq_create_mapping(NULL, *(opicprop++));
44 if (virqs[count] == NO_IRQ)
45 printk(KERN_ERR "Unable to allocate interrupt "
46 "number for %s\n", np->full_name);
47 else
48 count++;
49
50 }
51 }
52 /* Else use normal interrupt tree parsing */
53 else {
54 /* First try to do a proper OF tree parsing */
55 for (index = 0; of_irq_map_one(np, index, &oirq) == 0;
56 index++) {
57 if (count > 15)
58 break;
59 virqs[count] = irq_create_of_mapping(oirq.controller,
60 oirq.specifier,
61 oirq.size);
62 if (virqs[count] == NO_IRQ)
63 printk(KERN_ERR "Unable to allocate interrupt "
64 "number for %s\n", np->full_name);
65 else
66 count++;
67 }
68 }
69
70 /* Now request them */
71 for (i = 0; i < count; i++) {
72 if (request_irq(virqs[i], handler, 0, name, NULL)) {
73 printk(KERN_ERR "Unable to request interrupt %d for "
74 "%s\n", virqs[i], np->full_name);
75 return;
76 }
77 }
78}
79
diff --git a/arch/powerpc/platforms/pseries/hotplug-cpu.c b/arch/powerpc/platforms/pseries/hotplug-cpu.c
index a8e1d5d17a28..8f85f399ab9f 100644
--- a/arch/powerpc/platforms/pseries/hotplug-cpu.c
+++ b/arch/powerpc/platforms/pseries/hotplug-cpu.c
@@ -154,30 +154,6 @@ static void pseries_mach_cpu_die(void)
154 for(;;); 154 for(;;);
155} 155}
156 156
157static int qcss_tok; /* query-cpu-stopped-state token */
158
159/* Get state of physical CPU.
160 * Return codes:
161 * 0 - The processor is in the RTAS stopped state
162 * 1 - stop-self is in progress
163 * 2 - The processor is not in the RTAS stopped state
164 * -1 - Hardware Error
165 * -2 - Hardware Busy, Try again later.
166 */
167static int query_cpu_stopped(unsigned int pcpu)
168{
169 int cpu_status, status;
170
171 status = rtas_call(qcss_tok, 1, 2, &cpu_status, pcpu);
172 if (status != 0) {
173 printk(KERN_ERR
174 "RTAS query-cpu-stopped-state failed: %i\n", status);
175 return status;
176 }
177
178 return cpu_status;
179}
180
181static int pseries_cpu_disable(void) 157static int pseries_cpu_disable(void)
182{ 158{
183 int cpu = smp_processor_id(); 159 int cpu = smp_processor_id();
@@ -187,7 +163,7 @@ static int pseries_cpu_disable(void)
187 163
188 /*fix boot_cpuid here*/ 164 /*fix boot_cpuid here*/
189 if (cpu == boot_cpuid) 165 if (cpu == boot_cpuid)
190 boot_cpuid = any_online_cpu(cpu_online_map); 166 boot_cpuid = cpumask_any(cpu_online_mask);
191 167
192 /* FIXME: abstract this to not be platform specific later on */ 168 /* FIXME: abstract this to not be platform specific later on */
193 xics_migrate_irqs_away(); 169 xics_migrate_irqs_away();
@@ -224,8 +200,9 @@ static void pseries_cpu_die(unsigned int cpu)
224 } else if (get_preferred_offline_state(cpu) == CPU_STATE_OFFLINE) { 200 } else if (get_preferred_offline_state(cpu) == CPU_STATE_OFFLINE) {
225 201
226 for (tries = 0; tries < 25; tries++) { 202 for (tries = 0; tries < 25; tries++) {
227 cpu_status = query_cpu_stopped(pcpu); 203 cpu_status = smp_query_cpu_stopped(pcpu);
228 if (cpu_status == 0 || cpu_status == -1) 204 if (cpu_status == QCSS_STOPPED ||
205 cpu_status == QCSS_HARDWARE_ERROR)
229 break; 206 break;
230 cpu_relax(); 207 cpu_relax();
231 } 208 }
@@ -245,7 +222,7 @@ static void pseries_cpu_die(unsigned int cpu)
245} 222}
246 223
247/* 224/*
248 * Update cpu_present_map and paca(s) for a new cpu node. The wrinkle 225 * Update cpu_present_mask and paca(s) for a new cpu node. The wrinkle
249 * here is that a cpu device node may represent up to two logical cpus 226 * here is that a cpu device node may represent up to two logical cpus
250 * in the SMT case. We must honor the assumption in other code that 227 * in the SMT case. We must honor the assumption in other code that
251 * the logical ids for sibling SMT threads x and y are adjacent, such 228 * the logical ids for sibling SMT threads x and y are adjacent, such
@@ -254,7 +231,7 @@ static void pseries_cpu_die(unsigned int cpu)
254static int pseries_add_processor(struct device_node *np) 231static int pseries_add_processor(struct device_node *np)
255{ 232{
256 unsigned int cpu; 233 unsigned int cpu;
257 cpumask_t candidate_map, tmp = CPU_MASK_NONE; 234 cpumask_var_t candidate_mask, tmp;
258 int err = -ENOSPC, len, nthreads, i; 235 int err = -ENOSPC, len, nthreads, i;
259 const u32 *intserv; 236 const u32 *intserv;
260 237
@@ -262,48 +239,53 @@ static int pseries_add_processor(struct device_node *np)
262 if (!intserv) 239 if (!intserv)
263 return 0; 240 return 0;
264 241
242 zalloc_cpumask_var(&candidate_mask, GFP_KERNEL);
243 zalloc_cpumask_var(&tmp, GFP_KERNEL);
244
265 nthreads = len / sizeof(u32); 245 nthreads = len / sizeof(u32);
266 for (i = 0; i < nthreads; i++) 246 for (i = 0; i < nthreads; i++)
267 cpu_set(i, tmp); 247 cpumask_set_cpu(i, tmp);
268 248
269 cpu_maps_update_begin(); 249 cpu_maps_update_begin();
270 250
271 BUG_ON(!cpus_subset(cpu_present_map, cpu_possible_map)); 251 BUG_ON(!cpumask_subset(cpu_present_mask, cpu_possible_mask));
272 252
273 /* Get a bitmap of unoccupied slots. */ 253 /* Get a bitmap of unoccupied slots. */
274 cpus_xor(candidate_map, cpu_possible_map, cpu_present_map); 254 cpumask_xor(candidate_mask, cpu_possible_mask, cpu_present_mask);
275 if (cpus_empty(candidate_map)) { 255 if (cpumask_empty(candidate_mask)) {
276 /* If we get here, it most likely means that NR_CPUS is 256 /* If we get here, it most likely means that NR_CPUS is
277 * less than the partition's max processors setting. 257 * less than the partition's max processors setting.
278 */ 258 */
279 printk(KERN_ERR "Cannot add cpu %s; this system configuration" 259 printk(KERN_ERR "Cannot add cpu %s; this system configuration"
280 " supports %d logical cpus.\n", np->full_name, 260 " supports %d logical cpus.\n", np->full_name,
281 cpus_weight(cpu_possible_map)); 261 cpumask_weight(cpu_possible_mask));
282 goto out_unlock; 262 goto out_unlock;
283 } 263 }
284 264
285 while (!cpus_empty(tmp)) 265 while (!cpumask_empty(tmp))
286 if (cpus_subset(tmp, candidate_map)) 266 if (cpumask_subset(tmp, candidate_mask))
287 /* Found a range where we can insert the new cpu(s) */ 267 /* Found a range where we can insert the new cpu(s) */
288 break; 268 break;
289 else 269 else
290 cpus_shift_left(tmp, tmp, nthreads); 270 cpumask_shift_left(tmp, tmp, nthreads);
291 271
292 if (cpus_empty(tmp)) { 272 if (cpumask_empty(tmp)) {
293 printk(KERN_ERR "Unable to find space in cpu_present_map for" 273 printk(KERN_ERR "Unable to find space in cpu_present_mask for"
294 " processor %s with %d thread(s)\n", np->name, 274 " processor %s with %d thread(s)\n", np->name,
295 nthreads); 275 nthreads);
296 goto out_unlock; 276 goto out_unlock;
297 } 277 }
298 278
299 for_each_cpu_mask(cpu, tmp) { 279 for_each_cpu(cpu, tmp) {
300 BUG_ON(cpu_isset(cpu, cpu_present_map)); 280 BUG_ON(cpumask_test_cpu(cpu, cpu_present_mask));
301 set_cpu_present(cpu, true); 281 set_cpu_present(cpu, true);
302 set_hard_smp_processor_id(cpu, *intserv++); 282 set_hard_smp_processor_id(cpu, *intserv++);
303 } 283 }
304 err = 0; 284 err = 0;
305out_unlock: 285out_unlock:
306 cpu_maps_update_done(); 286 cpu_maps_update_done();
287 free_cpumask_var(candidate_mask);
288 free_cpumask_var(tmp);
307 return err; 289 return err;
308} 290}
309 291
@@ -334,7 +316,7 @@ static void pseries_remove_processor(struct device_node *np)
334 set_hard_smp_processor_id(cpu, -1); 316 set_hard_smp_processor_id(cpu, -1);
335 break; 317 break;
336 } 318 }
337 if (cpu == NR_CPUS) 319 if (cpu >= nr_cpu_ids)
338 printk(KERN_WARNING "Could not find cpu to remove " 320 printk(KERN_WARNING "Could not find cpu to remove "
339 "with physical id 0x%x\n", intserv[i]); 321 "with physical id 0x%x\n", intserv[i]);
340 } 322 }
@@ -388,6 +370,7 @@ static int __init pseries_cpu_hotplug_init(void)
388 struct device_node *np; 370 struct device_node *np;
389 const char *typep; 371 const char *typep;
390 int cpu; 372 int cpu;
373 int qcss_tok;
391 374
392 for_each_node_by_name(np, "interrupt-controller") { 375 for_each_node_by_name(np, "interrupt-controller") {
393 typep = of_get_property(np, "compatible", NULL); 376 typep = of_get_property(np, "compatible", NULL);
diff --git a/arch/powerpc/platforms/pseries/hotplug-memory.c b/arch/powerpc/platforms/pseries/hotplug-memory.c
index 9b21ee68ea50..bc8803664140 100644
--- a/arch/powerpc/platforms/pseries/hotplug-memory.c
+++ b/arch/powerpc/platforms/pseries/hotplug-memory.c
@@ -10,13 +10,14 @@
10 */ 10 */
11 11
12#include <linux/of.h> 12#include <linux/of.h>
13#include <linux/lmb.h> 13#include <linux/memblock.h>
14#include <linux/vmalloc.h>
14#include <asm/firmware.h> 15#include <asm/firmware.h>
15#include <asm/machdep.h> 16#include <asm/machdep.h>
16#include <asm/pSeries_reconfig.h> 17#include <asm/pSeries_reconfig.h>
17#include <asm/sparsemem.h> 18#include <asm/sparsemem.h>
18 19
19static int pseries_remove_lmb(unsigned long base, unsigned int lmb_size) 20static int pseries_remove_memblock(unsigned long base, unsigned int memblock_size)
20{ 21{
21 unsigned long start, start_pfn; 22 unsigned long start, start_pfn;
22 struct zone *zone; 23 struct zone *zone;
@@ -25,7 +26,7 @@ static int pseries_remove_lmb(unsigned long base, unsigned int lmb_size)
25 start_pfn = base >> PAGE_SHIFT; 26 start_pfn = base >> PAGE_SHIFT;
26 27
27 if (!pfn_valid(start_pfn)) { 28 if (!pfn_valid(start_pfn)) {
28 lmb_remove(base, lmb_size); 29 memblock_remove(base, memblock_size);
29 return 0; 30 return 0;
30 } 31 }
31 32
@@ -40,20 +41,26 @@ static int pseries_remove_lmb(unsigned long base, unsigned int lmb_size)
40 * to sysfs "state" file and we can't remove sysfs entries 41 * to sysfs "state" file and we can't remove sysfs entries
41 * while writing to it. So we have to defer it to here. 42 * while writing to it. So we have to defer it to here.
42 */ 43 */
43 ret = __remove_pages(zone, start_pfn, lmb_size >> PAGE_SHIFT); 44 ret = __remove_pages(zone, start_pfn, memblock_size >> PAGE_SHIFT);
44 if (ret) 45 if (ret)
45 return ret; 46 return ret;
46 47
47 /* 48 /*
48 * Update memory regions for memory remove 49 * Update memory regions for memory remove
49 */ 50 */
50 lmb_remove(base, lmb_size); 51 memblock_remove(base, memblock_size);
51 52
52 /* 53 /*
53 * Remove htab bolted mappings for this section of memory 54 * Remove htab bolted mappings for this section of memory
54 */ 55 */
55 start = (unsigned long)__va(base); 56 start = (unsigned long)__va(base);
56 ret = remove_section_mapping(start, start + lmb_size); 57 ret = remove_section_mapping(start, start + memblock_size);
58
59 /* Ensure all vmalloc mappings are flushed in case they also
60 * hit that section of memory
61 */
62 vm_unmap_aliases();
63
57 return ret; 64 return ret;
58} 65}
59 66
@@ -73,7 +80,7 @@ static int pseries_remove_memory(struct device_node *np)
73 return 0; 80 return 0;
74 81
75 /* 82 /*
76 * Find the bae address and size of the lmb 83 * Find the bae address and size of the memblock
77 */ 84 */
78 regs = of_get_property(np, "reg", NULL); 85 regs = of_get_property(np, "reg", NULL);
79 if (!regs) 86 if (!regs)
@@ -82,7 +89,7 @@ static int pseries_remove_memory(struct device_node *np)
82 base = *(unsigned long *)regs; 89 base = *(unsigned long *)regs;
83 lmb_size = regs[3]; 90 lmb_size = regs[3];
84 91
85 ret = pseries_remove_lmb(base, lmb_size); 92 ret = pseries_remove_memblock(base, lmb_size);
86 return ret; 93 return ret;
87} 94}
88 95
@@ -102,7 +109,7 @@ static int pseries_add_memory(struct device_node *np)
102 return 0; 109 return 0;
103 110
104 /* 111 /*
105 * Find the base and size of the lmb 112 * Find the base and size of the memblock
106 */ 113 */
107 regs = of_get_property(np, "reg", NULL); 114 regs = of_get_property(np, "reg", NULL);
108 if (!regs) 115 if (!regs)
@@ -114,7 +121,7 @@ static int pseries_add_memory(struct device_node *np)
114 /* 121 /*
115 * Update memory region to represent the memory add 122 * Update memory region to represent the memory add
116 */ 123 */
117 ret = lmb_add(base, lmb_size); 124 ret = memblock_add(base, lmb_size);
118 return (ret < 0) ? -EINVAL : 0; 125 return (ret < 0) ? -EINVAL : 0;
119} 126}
120 127
@@ -135,10 +142,10 @@ static int pseries_drconf_memory(unsigned long *base, unsigned int action)
135 } 142 }
136 143
137 if (action == PSERIES_DRCONF_MEM_ADD) { 144 if (action == PSERIES_DRCONF_MEM_ADD) {
138 rc = lmb_add(*base, *lmb_size); 145 rc = memblock_add(*base, *lmb_size);
139 rc = (rc < 0) ? -EINVAL : 0; 146 rc = (rc < 0) ? -EINVAL : 0;
140 } else if (action == PSERIES_DRCONF_MEM_REMOVE) { 147 } else if (action == PSERIES_DRCONF_MEM_REMOVE) {
141 rc = pseries_remove_lmb(*base, *lmb_size); 148 rc = pseries_remove_memblock(*base, *lmb_size);
142 } else { 149 } else {
143 rc = -EINVAL; 150 rc = -EINVAL;
144 } 151 }
diff --git a/arch/powerpc/platforms/pseries/hvCall.S b/arch/powerpc/platforms/pseries/hvCall.S
index 383a5d0e9818..48d20573e4de 100644
--- a/arch/powerpc/platforms/pseries/hvCall.S
+++ b/arch/powerpc/platforms/pseries/hvCall.S
@@ -228,3 +228,41 @@ _GLOBAL(plpar_hcall9)
228 mtcrf 0xff,r0 228 mtcrf 0xff,r0
229 229
230 blr /* return r3 = status */ 230 blr /* return r3 = status */
231
232/* See plpar_hcall_raw to see why this is needed */
233_GLOBAL(plpar_hcall9_raw)
234 HMT_MEDIUM
235
236 mfcr r0
237 stw r0,8(r1)
238
239 std r4,STK_PARM(r4)(r1) /* Save ret buffer */
240
241 mr r4,r5
242 mr r5,r6
243 mr r6,r7
244 mr r7,r8
245 mr r8,r9
246 mr r9,r10
247 ld r10,STK_PARM(r11)(r1) /* put arg7 in R10 */
248 ld r11,STK_PARM(r12)(r1) /* put arg8 in R11 */
249 ld r12,STK_PARM(r13)(r1) /* put arg9 in R12 */
250
251 HVSC /* invoke the hypervisor */
252
253 mr r0,r12
254 ld r12,STK_PARM(r4)(r1)
255 std r4, 0(r12)
256 std r5, 8(r12)
257 std r6, 16(r12)
258 std r7, 24(r12)
259 std r8, 32(r12)
260 std r9, 40(r12)
261 std r10,48(r12)
262 std r11,56(r12)
263 std r0, 64(r12)
264
265 lwz r0,8(r1)
266 mtcrf 0xff,r0
267
268 blr /* return r3 = status */
diff --git a/arch/powerpc/platforms/pseries/hvCall_inst.c b/arch/powerpc/platforms/pseries/hvCall_inst.c
index 1fefae76e295..e19ff021e711 100644
--- a/arch/powerpc/platforms/pseries/hvCall_inst.c
+++ b/arch/powerpc/platforms/pseries/hvCall_inst.c
@@ -102,7 +102,7 @@ static const struct file_operations hcall_inst_seq_fops = {
102#define CPU_NAME_BUF_SIZE 32 102#define CPU_NAME_BUF_SIZE 32
103 103
104 104
105static void probe_hcall_entry(unsigned long opcode, unsigned long *args) 105static void probe_hcall_entry(void *ignored, unsigned long opcode, unsigned long *args)
106{ 106{
107 struct hcall_stats *h; 107 struct hcall_stats *h;
108 108
@@ -114,7 +114,7 @@ static void probe_hcall_entry(unsigned long opcode, unsigned long *args)
114 h->purr_start = mfspr(SPRN_PURR); 114 h->purr_start = mfspr(SPRN_PURR);
115} 115}
116 116
117static void probe_hcall_exit(unsigned long opcode, unsigned long retval, 117static void probe_hcall_exit(void *ignored, unsigned long opcode, unsigned long retval,
118 unsigned long *retbuf) 118 unsigned long *retbuf)
119{ 119{
120 struct hcall_stats *h; 120 struct hcall_stats *h;
@@ -140,11 +140,11 @@ static int __init hcall_inst_init(void)
140 if (!firmware_has_feature(FW_FEATURE_LPAR)) 140 if (!firmware_has_feature(FW_FEATURE_LPAR))
141 return 0; 141 return 0;
142 142
143 if (register_trace_hcall_entry(probe_hcall_entry)) 143 if (register_trace_hcall_entry(probe_hcall_entry, NULL))
144 return -EINVAL; 144 return -EINVAL;
145 145
146 if (register_trace_hcall_exit(probe_hcall_exit)) { 146 if (register_trace_hcall_exit(probe_hcall_exit, NULL)) {
147 unregister_trace_hcall_entry(probe_hcall_entry); 147 unregister_trace_hcall_entry(probe_hcall_entry, NULL);
148 return -EINVAL; 148 return -EINVAL;
149 } 149 }
150 150
diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c
index 1a0000a4b6d6..395848e30c52 100644
--- a/arch/powerpc/platforms/pseries/iommu.c
+++ b/arch/powerpc/platforms/pseries/iommu.c
@@ -66,7 +66,7 @@ static int tce_build_pSeries(struct iommu_table *tbl, long index,
66 tcep = ((u64 *)tbl->it_base) + index; 66 tcep = ((u64 *)tbl->it_base) + index;
67 67
68 while (npages--) { 68 while (npages--) {
69 /* can't move this out since we might cross LMB boundary */ 69 /* can't move this out since we might cross MEMBLOCK boundary */
70 rpn = (virt_to_abs(uaddr)) >> TCE_SHIFT; 70 rpn = (virt_to_abs(uaddr)) >> TCE_SHIFT;
71 *tcep = proto_tce | (rpn & TCE_RPN_MASK) << TCE_RPN_SHIFT; 71 *tcep = proto_tce | (rpn & TCE_RPN_MASK) << TCE_RPN_SHIFT;
72 72
@@ -468,7 +468,7 @@ static void pci_dma_dev_setup_pSeries(struct pci_dev *dev)
468 468
469 pr_debug("pci_dma_dev_setup_pSeries: %s\n", pci_name(dev)); 469 pr_debug("pci_dma_dev_setup_pSeries: %s\n", pci_name(dev));
470 470
471 dn = dev->dev.archdata.of_node; 471 dn = dev->dev.of_node;
472 472
473 /* If we're the direct child of a root bus, then we need to allocate 473 /* If we're the direct child of a root bus, then we need to allocate
474 * an iommu table ourselves. The bus setup code should have setup 474 * an iommu table ourselves. The bus setup code should have setup
diff --git a/arch/powerpc/platforms/pseries/lpar.c b/arch/powerpc/platforms/pseries/lpar.c
index 0707653612ba..cf79b46d8f88 100644
--- a/arch/powerpc/platforms/pseries/lpar.c
+++ b/arch/powerpc/platforms/pseries/lpar.c
@@ -367,21 +367,28 @@ static void pSeries_lpar_hptab_clear(void)
367{ 367{
368 unsigned long size_bytes = 1UL << ppc64_pft_size; 368 unsigned long size_bytes = 1UL << ppc64_pft_size;
369 unsigned long hpte_count = size_bytes >> 4; 369 unsigned long hpte_count = size_bytes >> 4;
370 unsigned long dummy1, dummy2, dword0; 370 struct {
371 unsigned long pteh;
372 unsigned long ptel;
373 } ptes[4];
371 long lpar_rc; 374 long lpar_rc;
372 int i; 375 int i, j;
373 376
374 /* TODO: Use bulk call */ 377 /* Read in batches of 4,
375 for (i = 0; i < hpte_count; i++) { 378 * invalidate only valid entries not in the VRMA
376 /* dont remove HPTEs with VRMA mappings */ 379 * hpte_count will be a multiple of 4
377 lpar_rc = plpar_pte_remove_raw(H_ANDCOND, i, HPTE_V_1TB_SEG, 380 */
378 &dummy1, &dummy2); 381 for (i = 0; i < hpte_count; i += 4) {
379 if (lpar_rc == H_NOT_FOUND) { 382 lpar_rc = plpar_pte_read_4_raw(0, i, (void *)ptes);
380 lpar_rc = plpar_pte_read_raw(0, i, &dword0, &dummy1); 383 if (lpar_rc != H_SUCCESS)
381 if (!lpar_rc && ((dword0 & HPTE_V_VRMA_MASK) 384 continue;
382 != HPTE_V_VRMA_MASK)) 385 for (j = 0; j < 4; j++){
383 /* Can be hpte for 1TB Seg. So remove it */ 386 if ((ptes[j].pteh & HPTE_V_VRMA_MASK) ==
384 plpar_pte_remove_raw(0, i, 0, &dummy1, &dummy2); 387 HPTE_V_VRMA_MASK)
388 continue;
389 if (ptes[j].pteh & HPTE_V_VALID)
390 plpar_pte_remove_raw(0, i + j, 0,
391 &(ptes[j].pteh), &(ptes[j].ptel));
385 } 392 }
386 } 393 }
387} 394}
diff --git a/arch/powerpc/platforms/pseries/nvram.c b/arch/powerpc/platforms/pseries/nvram.c
index 42f7e384e6c4..bc3c7f2abd79 100644
--- a/arch/powerpc/platforms/pseries/nvram.c
+++ b/arch/powerpc/platforms/pseries/nvram.c
@@ -15,7 +15,6 @@
15#include <linux/types.h> 15#include <linux/types.h>
16#include <linux/errno.h> 16#include <linux/errno.h>
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/slab.h>
19#include <linux/spinlock.h> 18#include <linux/spinlock.h>
20#include <asm/uaccess.h> 19#include <asm/uaccess.h>
21#include <asm/nvram.h> 20#include <asm/nvram.h>
diff --git a/arch/powerpc/platforms/pseries/phyp_dump.c b/arch/powerpc/platforms/pseries/phyp_dump.c
index 225a50ab14be..6e7742da0072 100644
--- a/arch/powerpc/platforms/pseries/phyp_dump.c
+++ b/arch/powerpc/platforms/pseries/phyp_dump.c
@@ -11,6 +11,7 @@
11 * 11 *
12 */ 12 */
13 13
14#include <linux/gfp.h>
14#include <linux/init.h> 15#include <linux/init.h>
15#include <linux/kobject.h> 16#include <linux/kobject.h>
16#include <linux/mm.h> 17#include <linux/mm.h>
@@ -254,12 +255,12 @@ void invalidate_last_dump(struct phyp_dump_header *ph, unsigned long addr)
254 255
255/* ------------------------------------------------- */ 256/* ------------------------------------------------- */
256/** 257/**
257 * release_memory_range -- release memory previously lmb_reserved 258 * release_memory_range -- release memory previously memblock_reserved
258 * @start_pfn: starting physical frame number 259 * @start_pfn: starting physical frame number
259 * @nr_pages: number of pages to free. 260 * @nr_pages: number of pages to free.
260 * 261 *
261 * This routine will release memory that had been previously 262 * This routine will release memory that had been previously
262 * lmb_reserved in early boot. The released memory becomes 263 * memblock_reserved in early boot. The released memory becomes
263 * available for genreal use. 264 * available for genreal use.
264 */ 265 */
265static void release_memory_range(unsigned long start_pfn, 266static void release_memory_range(unsigned long start_pfn,
diff --git a/arch/powerpc/platforms/pseries/plpar_wrappers.h b/arch/powerpc/platforms/pseries/plpar_wrappers.h
index a05f8d427856..d9801117124b 100644
--- a/arch/powerpc/platforms/pseries/plpar_wrappers.h
+++ b/arch/powerpc/platforms/pseries/plpar_wrappers.h
@@ -4,6 +4,14 @@
4#include <asm/hvcall.h> 4#include <asm/hvcall.h>
5#include <asm/page.h> 5#include <asm/page.h>
6 6
7/* Get state of physical CPU from query_cpu_stopped */
8int smp_query_cpu_stopped(unsigned int pcpu);
9#define QCSS_STOPPED 0
10#define QCSS_STOPPING 1
11#define QCSS_NOT_STOPPED 2
12#define QCSS_HARDWARE_ERROR -1
13#define QCSS_HARDWARE_BUSY -2
14
7static inline long poll_pending(void) 15static inline long poll_pending(void)
8{ 16{
9 return plpar_hcall_norets(H_POLL_PENDING); 17 return plpar_hcall_norets(H_POLL_PENDING);
@@ -183,6 +191,24 @@ static inline long plpar_pte_read_raw(unsigned long flags, unsigned long ptex,
183 return rc; 191 return rc;
184} 192}
185 193
194/*
195 * plpar_pte_read_4_raw can be called in real mode.
196 * ptes must be 8*sizeof(unsigned long)
197 */
198static inline long plpar_pte_read_4_raw(unsigned long flags, unsigned long ptex,
199 unsigned long *ptes)
200
201{
202 long rc;
203 unsigned long retbuf[PLPAR_HCALL9_BUFSIZE];
204
205 rc = plpar_hcall9_raw(H_READ, retbuf, flags | H_READ_4, ptex);
206
207 memcpy(ptes, retbuf, 8*sizeof(unsigned long));
208
209 return rc;
210}
211
186static inline long plpar_pte_protect(unsigned long flags, unsigned long ptex, 212static inline long plpar_pte_protect(unsigned long flags, unsigned long ptex,
187 unsigned long avpn) 213 unsigned long avpn)
188{ 214{
diff --git a/arch/powerpc/platforms/pseries/pseries.h b/arch/powerpc/platforms/pseries/pseries.h
index 9e17c0d2a0c8..40c93cad91d2 100644
--- a/arch/powerpc/platforms/pseries/pseries.h
+++ b/arch/powerpc/platforms/pseries/pseries.h
@@ -10,6 +10,13 @@
10#ifndef _PSERIES_PSERIES_H 10#ifndef _PSERIES_PSERIES_H
11#define _PSERIES_PSERIES_H 11#define _PSERIES_PSERIES_H
12 12
13#include <linux/interrupt.h>
14
15struct device_node;
16
17extern void request_event_sources_irqs(struct device_node *np,
18 irq_handler_t handler, const char *name);
19
13extern void __init fw_feature_init(const char *hypertas, unsigned long len); 20extern void __init fw_feature_init(const char *hypertas, unsigned long len);
14 21
15struct pt_regs; 22struct pt_regs;
diff --git a/arch/powerpc/platforms/pseries/ras.c b/arch/powerpc/platforms/pseries/ras.c
index d20b96e22c2e..41a3e9a039ed 100644
--- a/arch/powerpc/platforms/pseries/ras.c
+++ b/arch/powerpc/platforms/pseries/ras.c
@@ -30,7 +30,6 @@
30#include <linux/interrupt.h> 30#include <linux/interrupt.h>
31#include <linux/timex.h> 31#include <linux/timex.h>
32#include <linux/init.h> 32#include <linux/init.h>
33#include <linux/slab.h>
34#include <linux/delay.h> 33#include <linux/delay.h>
35#include <linux/irq.h> 34#include <linux/irq.h>
36#include <linux/random.h> 35#include <linux/random.h>
@@ -68,63 +67,6 @@ static irqreturn_t ras_epow_interrupt(int irq, void *dev_id);
68static irqreturn_t ras_error_interrupt(int irq, void *dev_id); 67static irqreturn_t ras_error_interrupt(int irq, void *dev_id);
69 68
70 69
71static void request_ras_irqs(struct device_node *np,
72 irq_handler_t handler,
73 const char *name)
74{
75 int i, index, count = 0;
76 struct of_irq oirq;
77 const u32 *opicprop;
78 unsigned int opicplen;
79 unsigned int virqs[16];
80
81 /* Check for obsolete "open-pic-interrupt" property. If present, then
82 * map those interrupts using the default interrupt host and default
83 * trigger
84 */
85 opicprop = of_get_property(np, "open-pic-interrupt", &opicplen);
86 if (opicprop) {
87 opicplen /= sizeof(u32);
88 for (i = 0; i < opicplen; i++) {
89 if (count > 15)
90 break;
91 virqs[count] = irq_create_mapping(NULL, *(opicprop++));
92 if (virqs[count] == NO_IRQ)
93 printk(KERN_ERR "Unable to allocate interrupt "
94 "number for %s\n", np->full_name);
95 else
96 count++;
97
98 }
99 }
100 /* Else use normal interrupt tree parsing */
101 else {
102 /* First try to do a proper OF tree parsing */
103 for (index = 0; of_irq_map_one(np, index, &oirq) == 0;
104 index++) {
105 if (count > 15)
106 break;
107 virqs[count] = irq_create_of_mapping(oirq.controller,
108 oirq.specifier,
109 oirq.size);
110 if (virqs[count] == NO_IRQ)
111 printk(KERN_ERR "Unable to allocate interrupt "
112 "number for %s\n", np->full_name);
113 else
114 count++;
115 }
116 }
117
118 /* Now request them */
119 for (i = 0; i < count; i++) {
120 if (request_irq(virqs[i], handler, 0, name, NULL)) {
121 printk(KERN_ERR "Unable to request interrupt %d for "
122 "%s\n", virqs[i], np->full_name);
123 return;
124 }
125 }
126}
127
128/* 70/*
129 * Initialize handlers for the set of interrupts caused by hardware errors 71 * Initialize handlers for the set of interrupts caused by hardware errors
130 * and power system events. 72 * and power system events.
@@ -139,14 +81,15 @@ static int __init init_ras_IRQ(void)
139 /* Internal Errors */ 81 /* Internal Errors */
140 np = of_find_node_by_path("/event-sources/internal-errors"); 82 np = of_find_node_by_path("/event-sources/internal-errors");
141 if (np != NULL) { 83 if (np != NULL) {
142 request_ras_irqs(np, ras_error_interrupt, "RAS_ERROR"); 84 request_event_sources_irqs(np, ras_error_interrupt,
85 "RAS_ERROR");
143 of_node_put(np); 86 of_node_put(np);
144 } 87 }
145 88
146 /* EPOW Events */ 89 /* EPOW Events */
147 np = of_find_node_by_path("/event-sources/epow-events"); 90 np = of_find_node_by_path("/event-sources/epow-events");
148 if (np != NULL) { 91 if (np != NULL) {
149 request_ras_irqs(np, ras_epow_interrupt, "RAS_EPOW"); 92 request_event_sources_irqs(np, ras_epow_interrupt, "RAS_EPOW");
150 of_node_put(np); 93 of_node_put(np);
151 } 94 }
152 95
diff --git a/arch/powerpc/platforms/pseries/reconfig.c b/arch/powerpc/platforms/pseries/reconfig.c
index a2305d29bbbd..1a58637bcea5 100644
--- a/arch/powerpc/platforms/pseries/reconfig.c
+++ b/arch/powerpc/platforms/pseries/reconfig.c
@@ -15,6 +15,7 @@
15#include <linux/kref.h> 15#include <linux/kref.h>
16#include <linux/notifier.h> 16#include <linux/notifier.h>
17#include <linux/proc_fs.h> 17#include <linux/proc_fs.h>
18#include <linux/slab.h>
18 19
19#include <asm/prom.h> 20#include <asm/prom.h>
20#include <asm/machdep.h> 21#include <asm/machdep.h>
diff --git a/arch/powerpc/platforms/pseries/scanlog.c b/arch/powerpc/platforms/pseries/scanlog.c
index 1b45c458f952..80e9e7652a4d 100644
--- a/arch/powerpc/platforms/pseries/scanlog.c
+++ b/arch/powerpc/platforms/pseries/scanlog.c
@@ -26,6 +26,7 @@
26#include <linux/proc_fs.h> 26#include <linux/proc_fs.h>
27#include <linux/init.h> 27#include <linux/init.h>
28#include <linux/delay.h> 28#include <linux/delay.h>
29#include <linux/slab.h>
29#include <asm/uaccess.h> 30#include <asm/uaccess.h>
30#include <asm/rtas.h> 31#include <asm/rtas.h>
31#include <asm/prom.h> 32#include <asm/prom.h>
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
index ca5f2e10972c..a6d19e3a505e 100644
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c
@@ -23,7 +23,6 @@
23#include <linux/mm.h> 23#include <linux/mm.h>
24#include <linux/stddef.h> 24#include <linux/stddef.h>
25#include <linux/unistd.h> 25#include <linux/unistd.h>
26#include <linux/slab.h>
27#include <linux/user.h> 26#include <linux/user.h>
28#include <linux/tty.h> 27#include <linux/tty.h>
29#include <linux/major.h> 28#include <linux/major.h>
@@ -497,13 +496,14 @@ static int __init pSeries_probe(void)
497} 496}
498 497
499 498
500DECLARE_PER_CPU(unsigned long, smt_snooze_delay); 499DECLARE_PER_CPU(long, smt_snooze_delay);
501 500
502static void pseries_dedicated_idle_sleep(void) 501static void pseries_dedicated_idle_sleep(void)
503{ 502{
504 unsigned int cpu = smp_processor_id(); 503 unsigned int cpu = smp_processor_id();
505 unsigned long start_snooze; 504 unsigned long start_snooze;
506 unsigned long in_purr, out_purr; 505 unsigned long in_purr, out_purr;
506 long snooze = __get_cpu_var(smt_snooze_delay);
507 507
508 /* 508 /*
509 * Indicate to the HV that we are idle. Now would be 509 * Indicate to the HV that we are idle. Now would be
@@ -518,13 +518,12 @@ static void pseries_dedicated_idle_sleep(void)
518 * has been checked recently. If we should poll for a little 518 * has been checked recently. If we should poll for a little
519 * while, do so. 519 * while, do so.
520 */ 520 */
521 if (__get_cpu_var(smt_snooze_delay)) { 521 if (snooze) {
522 start_snooze = get_tb() + 522 start_snooze = get_tb() + snooze * tb_ticks_per_usec;
523 __get_cpu_var(smt_snooze_delay) * tb_ticks_per_usec;
524 local_irq_enable(); 523 local_irq_enable();
525 set_thread_flag(TIF_POLLING_NRFLAG); 524 set_thread_flag(TIF_POLLING_NRFLAG);
526 525
527 while (get_tb() < start_snooze) { 526 while ((snooze < 0) || (get_tb() < start_snooze)) {
528 if (need_resched() || cpu_is_offline(cpu)) 527 if (need_resched() || cpu_is_offline(cpu))
529 goto out; 528 goto out;
530 ppc64_runlatch_off(); 529 ppc64_runlatch_off();
diff --git a/arch/powerpc/platforms/pseries/smp.c b/arch/powerpc/platforms/pseries/smp.c
index 4e7f89a84561..3b1bf61c45be 100644
--- a/arch/powerpc/platforms/pseries/smp.c
+++ b/arch/powerpc/platforms/pseries/smp.c
@@ -55,7 +55,29 @@
55 * The Primary thread of each non-boot processor was started from the OF client 55 * The Primary thread of each non-boot processor was started from the OF client
56 * interface by prom_hold_cpus and is spinning on secondary_hold_spinloop. 56 * interface by prom_hold_cpus and is spinning on secondary_hold_spinloop.
57 */ 57 */
58static cpumask_t of_spin_map; 58static cpumask_var_t of_spin_mask;
59
60/* Query where a cpu is now. Return codes #defined in plpar_wrappers.h */
61int smp_query_cpu_stopped(unsigned int pcpu)
62{
63 int cpu_status, status;
64 int qcss_tok = rtas_token("query-cpu-stopped-state");
65
66 if (qcss_tok == RTAS_UNKNOWN_SERVICE) {
67 printk(KERN_INFO "Firmware doesn't support "
68 "query-cpu-stopped-state\n");
69 return QCSS_HARDWARE_ERROR;
70 }
71
72 status = rtas_call(qcss_tok, 1, 2, &cpu_status, pcpu);
73 if (status != 0) {
74 printk(KERN_ERR
75 "RTAS query-cpu-stopped-state failed: %i\n", status);
76 return status;
77 }
78
79 return cpu_status;
80}
59 81
60/** 82/**
61 * smp_startup_cpu() - start the given cpu 83 * smp_startup_cpu() - start the given cpu
@@ -76,12 +98,18 @@ static inline int __devinit smp_startup_cpu(unsigned int lcpu)
76 unsigned int pcpu; 98 unsigned int pcpu;
77 int start_cpu; 99 int start_cpu;
78 100
79 if (cpu_isset(lcpu, of_spin_map)) 101 if (cpumask_test_cpu(lcpu, of_spin_mask))
80 /* Already started by OF and sitting in spin loop */ 102 /* Already started by OF and sitting in spin loop */
81 return 1; 103 return 1;
82 104
83 pcpu = get_hard_smp_processor_id(lcpu); 105 pcpu = get_hard_smp_processor_id(lcpu);
84 106
107 /* Check to see if the CPU out of FW already for kexec */
108 if (smp_query_cpu_stopped(pcpu) == QCSS_NOT_STOPPED){
109 cpumask_set_cpu(lcpu, of_spin_mask);
110 return 1;
111 }
112
85 /* Fixup atomic count: it exited inside IRQ handler. */ 113 /* Fixup atomic count: it exited inside IRQ handler. */
86 task_thread_info(paca[lcpu].__current)->preempt_count = 0; 114 task_thread_info(paca[lcpu].__current)->preempt_count = 0;
87 115
@@ -115,7 +143,7 @@ static void __devinit smp_xics_setup_cpu(int cpu)
115 if (firmware_has_feature(FW_FEATURE_SPLPAR)) 143 if (firmware_has_feature(FW_FEATURE_SPLPAR))
116 vpa_init(cpu); 144 vpa_init(cpu);
117 145
118 cpu_clear(cpu, of_spin_map); 146 cpumask_clear_cpu(cpu, of_spin_mask);
119 set_cpu_current_state(cpu, CPU_STATE_ONLINE); 147 set_cpu_current_state(cpu, CPU_STATE_ONLINE);
120 set_default_offline_state(cpu); 148 set_default_offline_state(cpu);
121 149
@@ -186,17 +214,19 @@ static void __init smp_init_pseries(void)
186 214
187 pr_debug(" -> smp_init_pSeries()\n"); 215 pr_debug(" -> smp_init_pSeries()\n");
188 216
217 alloc_bootmem_cpumask_var(&of_spin_mask);
218
189 /* Mark threads which are still spinning in hold loops. */ 219 /* Mark threads which are still spinning in hold loops. */
190 if (cpu_has_feature(CPU_FTR_SMT)) { 220 if (cpu_has_feature(CPU_FTR_SMT)) {
191 for_each_present_cpu(i) { 221 for_each_present_cpu(i) {
192 if (cpu_thread_in_core(i) == 0) 222 if (cpu_thread_in_core(i) == 0)
193 cpu_set(i, of_spin_map); 223 cpumask_set_cpu(i, of_spin_mask);
194 } 224 }
195 } else { 225 } else {
196 of_spin_map = cpu_present_map; 226 cpumask_copy(of_spin_mask, cpu_present_mask);
197 } 227 }
198 228
199 cpu_clear(boot_cpuid, of_spin_map); 229 cpumask_clear_cpu(boot_cpuid, of_spin_mask);
200 230
201 /* Non-lpar has additional take/give timebase */ 231 /* Non-lpar has additional take/give timebase */
202 if (rtas_token("freeze-time-base") != RTAS_UNKNOWN_SERVICE) { 232 if (rtas_token("freeze-time-base") != RTAS_UNKNOWN_SERVICE) {
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c
index 1bcedd8b4616..f19d19468393 100644
--- a/arch/powerpc/platforms/pseries/xics.c
+++ b/arch/powerpc/platforms/pseries/xics.c
@@ -163,29 +163,37 @@ static inline void lpar_qirr_info(int n_cpu , u8 value)
163/* Interface to generic irq subsystem */ 163/* Interface to generic irq subsystem */
164 164
165#ifdef CONFIG_SMP 165#ifdef CONFIG_SMP
166static int get_irq_server(unsigned int virq, cpumask_t cpumask, 166/*
167 * For the moment we only implement delivery to all cpus or one cpu.
168 *
169 * If the requested affinity is cpu_all_mask, we set global affinity.
170 * If not we set it to the first cpu in the mask, even if multiple cpus
171 * are set. This is so things like irqbalance (which set core and package
172 * wide affinities) do the right thing.
173 */
174static int get_irq_server(unsigned int virq, const struct cpumask *cpumask,
167 unsigned int strict_check) 175 unsigned int strict_check)
168{ 176{
169 int server;
170 /* For the moment only implement delivery to all cpus or one cpu */
171 cpumask_t tmp = CPU_MASK_NONE;
172 177
173 if (!distribute_irqs) 178 if (!distribute_irqs)
174 return default_server; 179 return default_server;
175 180
176 if (!cpus_equal(cpumask, CPU_MASK_ALL)) { 181 if (!cpumask_equal(cpumask, cpu_all_mask)) {
177 cpus_and(tmp, cpu_online_map, cpumask); 182 int server = cpumask_first_and(cpu_online_mask, cpumask);
178
179 server = first_cpu(tmp);
180 183
181 if (server < NR_CPUS) 184 if (server < nr_cpu_ids)
182 return get_hard_smp_processor_id(server); 185 return get_hard_smp_processor_id(server);
183 186
184 if (strict_check) 187 if (strict_check)
185 return -1; 188 return -1;
186 } 189 }
187 190
188 if (cpus_equal(cpu_online_map, cpu_present_map)) 191 /*
192 * Workaround issue with some versions of JS20 firmware that
193 * deliver interrupts to cpus which haven't been started. This
194 * happens when using the maxcpus= boot option.
195 */
196 if (cpumask_equal(cpu_online_mask, cpu_present_mask))
189 return default_distrib_server; 197 return default_distrib_server;
190 198
191 return default_server; 199 return default_server;
@@ -207,7 +215,7 @@ static void xics_unmask_irq(unsigned int virq)
207 if (irq == XICS_IPI || irq == XICS_IRQ_SPURIOUS) 215 if (irq == XICS_IPI || irq == XICS_IRQ_SPURIOUS)
208 return; 216 return;
209 217
210 server = get_irq_server(virq, *(irq_to_desc(virq)->affinity), 0); 218 server = get_irq_server(virq, irq_to_desc(virq)->affinity, 0);
211 219
212 call_status = rtas_call(ibm_set_xive, 3, 1, NULL, irq, server, 220 call_status = rtas_call(ibm_set_xive, 3, 1, NULL, irq, server,
213 DEFAULT_PRIORITY); 221 DEFAULT_PRIORITY);
@@ -398,11 +406,7 @@ static int xics_set_affinity(unsigned int virq, const struct cpumask *cpumask)
398 return -1; 406 return -1;
399 } 407 }
400 408
401 /* 409 irq_server = get_irq_server(virq, cpumask, 1);
402 * For the moment only implement delivery to all cpus or one cpu.
403 * Get current irq_server for the given irq
404 */
405 irq_server = get_irq_server(virq, *cpumask, 1);
406 if (irq_server == -1) { 410 if (irq_server == -1) {
407 char cpulist[128]; 411 char cpulist[128];
408 cpumask_scnprintf(cpulist, sizeof(cpulist), cpumask); 412 cpumask_scnprintf(cpulist, sizeof(cpulist), cpumask);
@@ -611,7 +615,7 @@ int __init smp_xics_probe(void)
611{ 615{
612 xics_request_ipi(); 616 xics_request_ipi();
613 617
614 return cpus_weight(cpu_possible_map); 618 return cpumask_weight(cpu_possible_mask);
615} 619}
616 620
617#endif /* CONFIG_SMP */ 621#endif /* CONFIG_SMP */
diff --git a/arch/powerpc/sysdev/axonram.c b/arch/powerpc/sysdev/axonram.c
index 88f4ae787832..402d2212162f 100644
--- a/arch/powerpc/sysdev/axonram.c
+++ b/arch/powerpc/sysdev/axonram.c
@@ -185,7 +185,7 @@ axon_ram_probe(struct of_device *device, const struct of_device_id *device_id)
185 axon_ram_bank_id++; 185 axon_ram_bank_id++;
186 186
187 dev_info(&device->dev, "Found memory controller on %s\n", 187 dev_info(&device->dev, "Found memory controller on %s\n",
188 device->node->full_name); 188 device->dev.of_node->full_name);
189 189
190 bank = kzalloc(sizeof(struct axon_ram_bank), GFP_KERNEL); 190 bank = kzalloc(sizeof(struct axon_ram_bank), GFP_KERNEL);
191 if (bank == NULL) { 191 if (bank == NULL) {
@@ -198,7 +198,7 @@ axon_ram_probe(struct of_device *device, const struct of_device_id *device_id)
198 198
199 bank->device = device; 199 bank->device = device;
200 200
201 if (of_address_to_resource(device->node, 0, &resource) != 0) { 201 if (of_address_to_resource(device->dev.of_node, 0, &resource) != 0) {
202 dev_err(&device->dev, "Cannot access device tree\n"); 202 dev_err(&device->dev, "Cannot access device tree\n");
203 rc = -EFAULT; 203 rc = -EFAULT;
204 goto failed; 204 goto failed;
@@ -253,7 +253,7 @@ axon_ram_probe(struct of_device *device, const struct of_device_id *device_id)
253 blk_queue_logical_block_size(bank->disk->queue, AXON_RAM_SECTOR_SIZE); 253 blk_queue_logical_block_size(bank->disk->queue, AXON_RAM_SECTOR_SIZE);
254 add_disk(bank->disk); 254 add_disk(bank->disk);
255 255
256 bank->irq_id = irq_of_parse_and_map(device->node, 0); 256 bank->irq_id = irq_of_parse_and_map(device->dev.of_node, 0);
257 if (bank->irq_id == NO_IRQ) { 257 if (bank->irq_id == NO_IRQ) {
258 dev_err(&device->dev, "Cannot access ECC interrupt ID\n"); 258 dev_err(&device->dev, "Cannot access ECC interrupt ID\n");
259 rc = -EFAULT; 259 rc = -EFAULT;
@@ -327,12 +327,12 @@ static struct of_device_id axon_ram_device_id[] = {
327}; 327};
328 328
329static struct of_platform_driver axon_ram_driver = { 329static struct of_platform_driver axon_ram_driver = {
330 .match_table = axon_ram_device_id,
331 .probe = axon_ram_probe, 330 .probe = axon_ram_probe,
332 .remove = axon_ram_remove, 331 .remove = axon_ram_remove,
333 .driver = { 332 .driver = {
334 .owner = THIS_MODULE, 333 .name = AXON_RAM_MODULE_NAME,
335 .name = AXON_RAM_MODULE_NAME, 334 .owner = THIS_MODULE,
335 .of_match_table = axon_ram_device_id,
336 }, 336 },
337}; 337};
338 338
diff --git a/arch/powerpc/sysdev/bestcomm/bestcomm.c b/arch/powerpc/sysdev/bestcomm/bestcomm.c
index 378ebd9aac18..a7c5c470af14 100644
--- a/arch/powerpc/sysdev/bestcomm/bestcomm.c
+++ b/arch/powerpc/sysdev/bestcomm/bestcomm.c
@@ -377,7 +377,7 @@ mpc52xx_bcom_probe(struct of_device *op, const struct of_device_id *match)
377 printk(KERN_INFO "DMA: MPC52xx BestComm driver\n"); 377 printk(KERN_INFO "DMA: MPC52xx BestComm driver\n");
378 378
379 /* Get the bestcomm node */ 379 /* Get the bestcomm node */
380 of_node_get(op->node); 380 of_node_get(op->dev.of_node);
381 381
382 /* Prepare SRAM */ 382 /* Prepare SRAM */
383 ofn_sram = of_find_matching_node(NULL, mpc52xx_sram_ids); 383 ofn_sram = of_find_matching_node(NULL, mpc52xx_sram_ids);
@@ -406,10 +406,10 @@ mpc52xx_bcom_probe(struct of_device *op, const struct of_device_id *match)
406 } 406 }
407 407
408 /* Save the node */ 408 /* Save the node */
409 bcom_eng->ofnode = op->node; 409 bcom_eng->ofnode = op->dev.of_node;
410 410
411 /* Get, reserve & map io */ 411 /* Get, reserve & map io */
412 if (of_address_to_resource(op->node, 0, &res_bcom)) { 412 if (of_address_to_resource(op->dev.of_node, 0, &res_bcom)) {
413 printk(KERN_ERR DRIVER_NAME ": " 413 printk(KERN_ERR DRIVER_NAME ": "
414 "Can't get resource\n"); 414 "Can't get resource\n");
415 rv = -EINVAL; 415 rv = -EINVAL;
@@ -453,7 +453,7 @@ error_sramclean:
453 kfree(bcom_eng); 453 kfree(bcom_eng);
454 bcom_sram_cleanup(); 454 bcom_sram_cleanup();
455error_ofput: 455error_ofput:
456 of_node_put(op->node); 456 of_node_put(op->dev.of_node);
457 457
458 printk(KERN_ERR "DMA: MPC52xx BestComm init failed !\n"); 458 printk(KERN_ERR "DMA: MPC52xx BestComm init failed !\n");
459 459
@@ -494,14 +494,12 @@ MODULE_DEVICE_TABLE(of, mpc52xx_bcom_of_match);
494 494
495 495
496static struct of_platform_driver mpc52xx_bcom_of_platform_driver = { 496static struct of_platform_driver mpc52xx_bcom_of_platform_driver = {
497 .owner = THIS_MODULE,
498 .name = DRIVER_NAME,
499 .match_table = mpc52xx_bcom_of_match,
500 .probe = mpc52xx_bcom_probe, 497 .probe = mpc52xx_bcom_probe,
501 .remove = mpc52xx_bcom_remove, 498 .remove = mpc52xx_bcom_remove,
502 .driver = { 499 .driver = {
503 .name = DRIVER_NAME, 500 .name = DRIVER_NAME,
504 .owner = THIS_MODULE, 501 .owner = THIS_MODULE,
502 .of_match_table = mpc52xx_bcom_of_match,
505 }, 503 },
506}; 504};
507 505
diff --git a/arch/powerpc/sysdev/cpm1.c b/arch/powerpc/sysdev/cpm1.c
index ecad10d4e928..8d103ca6d6ab 100644
--- a/arch/powerpc/sysdev/cpm1.c
+++ b/arch/powerpc/sysdev/cpm1.c
@@ -31,6 +31,7 @@
31#include <linux/irq.h> 31#include <linux/irq.h>
32#include <linux/module.h> 32#include <linux/module.h>
33#include <linux/spinlock.h> 33#include <linux/spinlock.h>
34#include <linux/slab.h>
34#include <asm/page.h> 35#include <asm/page.h>
35#include <asm/pgtable.h> 36#include <asm/pgtable.h>
36#include <asm/8xx_immap.h> 37#include <asm/8xx_immap.h>
@@ -485,9 +486,6 @@ int cpm1_clk_setup(enum cpm_clk_target target, int clock, int mode)
485 return -EINVAL; 486 return -EINVAL;
486 } 487 }
487 488
488 if (reg == &mpc8xx_immr->im_cpm.cp_sicr && mode == CPM_CLK_RX)
489 shift += 3;
490
491 for (i = 0; i < ARRAY_SIZE(clk_map); i++) { 489 for (i = 0; i < ARRAY_SIZE(clk_map); i++) {
492 if (clk_map[i][0] == target && clk_map[i][1] == clock) { 490 if (clk_map[i][0] == target && clk_map[i][1] == clock) {
493 bits = clk_map[i][2]; 491 bits = clk_map[i][2];
@@ -502,6 +500,17 @@ int cpm1_clk_setup(enum cpm_clk_target target, int clock, int mode)
502 500
503 bits <<= shift; 501 bits <<= shift;
504 mask <<= shift; 502 mask <<= shift;
503
504 if (reg == &mpc8xx_immr->im_cpm.cp_sicr) {
505 if (mode == CPM_CLK_RTX) {
506 bits |= bits << 3;
507 mask |= mask << 3;
508 } else if (mode == CPM_CLK_RX) {
509 bits <<= 3;
510 mask <<= 3;
511 }
512 }
513
505 out_be32(reg, (in_be32(reg) & ~mask) | bits); 514 out_be32(reg, (in_be32(reg) & ~mask) | bits);
506 515
507 return 0; 516 return 0;
diff --git a/arch/powerpc/sysdev/cpm2.c b/arch/powerpc/sysdev/cpm2.c
index eb5927212fab..8dc1e24f3c23 100644
--- a/arch/powerpc/sysdev/cpm2.c
+++ b/arch/powerpc/sysdev/cpm2.c
@@ -244,9 +244,6 @@ int cpm2_clk_setup(enum cpm_clk_target target, int clock, int mode)
244 return -EINVAL; 244 return -EINVAL;
245 } 245 }
246 246
247 if (mode == CPM_CLK_RX)
248 shift += 3;
249
250 for (i = 0; i < ARRAY_SIZE(clk_map); i++) { 247 for (i = 0; i < ARRAY_SIZE(clk_map); i++) {
251 if (clk_map[i][0] == target && clk_map[i][1] == clock) { 248 if (clk_map[i][0] == target && clk_map[i][1] == clock) {
252 bits = clk_map[i][2]; 249 bits = clk_map[i][2];
@@ -259,6 +256,14 @@ int cpm2_clk_setup(enum cpm_clk_target target, int clock, int mode)
259 bits <<= shift; 256 bits <<= shift;
260 mask <<= shift; 257 mask <<= shift;
261 258
259 if (mode == CPM_CLK_RTX) {
260 bits |= bits << 3;
261 mask |= mask << 3;
262 } else if (mode == CPM_CLK_RX) {
263 bits <<= 3;
264 mask <<= 3;
265 }
266
262 out_be32(reg, (in_be32(reg) & ~mask) | bits); 267 out_be32(reg, (in_be32(reg) & ~mask) | bits);
263 268
264 cpm2_unmap(im_cpmux); 269 cpm2_unmap(im_cpmux);
diff --git a/arch/powerpc/sysdev/cpm_common.c b/arch/powerpc/sysdev/cpm_common.c
index 9de72c96e6d1..88b9812c854f 100644
--- a/arch/powerpc/sysdev/cpm_common.c
+++ b/arch/powerpc/sysdev/cpm_common.c
@@ -21,6 +21,7 @@
21#include <linux/of_device.h> 21#include <linux/of_device.h>
22#include <linux/spinlock.h> 22#include <linux/spinlock.h>
23#include <linux/of.h> 23#include <linux/of.h>
24#include <linux/slab.h>
24 25
25#include <asm/udbg.h> 26#include <asm/udbg.h>
26#include <asm/io.h> 27#include <asm/io.h>
diff --git a/arch/powerpc/sysdev/dart_iommu.c b/arch/powerpc/sysdev/dart_iommu.c
index bafc3f85360d..559db2b846a9 100644
--- a/arch/powerpc/sysdev/dart_iommu.c
+++ b/arch/powerpc/sysdev/dart_iommu.c
@@ -29,7 +29,6 @@
29 29
30#include <linux/init.h> 30#include <linux/init.h>
31#include <linux/types.h> 31#include <linux/types.h>
32#include <linux/slab.h>
33#include <linux/mm.h> 32#include <linux/mm.h>
34#include <linux/spinlock.h> 33#include <linux/spinlock.h>
35#include <linux/string.h> 34#include <linux/string.h>
@@ -37,7 +36,8 @@
37#include <linux/dma-mapping.h> 36#include <linux/dma-mapping.h>
38#include <linux/vmalloc.h> 37#include <linux/vmalloc.h>
39#include <linux/suspend.h> 38#include <linux/suspend.h>
40#include <linux/lmb.h> 39#include <linux/memblock.h>
40#include <linux/gfp.h>
41#include <asm/io.h> 41#include <asm/io.h>
42#include <asm/prom.h> 42#include <asm/prom.h>
43#include <asm/iommu.h> 43#include <asm/iommu.h>
@@ -232,7 +232,7 @@ static int __init dart_init(struct device_node *dart_node)
232 * that to work around what looks like a problem with the HT bridge 232 * that to work around what looks like a problem with the HT bridge
233 * prefetching into invalid pages and corrupting data 233 * prefetching into invalid pages and corrupting data
234 */ 234 */
235 tmp = lmb_alloc(DART_PAGE_SIZE, DART_PAGE_SIZE); 235 tmp = memblock_alloc(DART_PAGE_SIZE, DART_PAGE_SIZE);
236 dart_emptyval = DARTMAP_VALID | ((tmp >> DART_PAGE_SHIFT) & 236 dart_emptyval = DARTMAP_VALID | ((tmp >> DART_PAGE_SHIFT) &
237 DARTMAP_RPNMASK); 237 DARTMAP_RPNMASK);
238 238
@@ -407,7 +407,7 @@ void __init alloc_dart_table(void)
407 if (iommu_is_off) 407 if (iommu_is_off)
408 return; 408 return;
409 409
410 if (!iommu_force_on && lmb_end_of_DRAM() <= 0x40000000ull) 410 if (!iommu_force_on && memblock_end_of_DRAM() <= 0x40000000ull)
411 return; 411 return;
412 412
413 /* 512 pages (2MB) is max DART tablesize. */ 413 /* 512 pages (2MB) is max DART tablesize. */
@@ -416,7 +416,7 @@ void __init alloc_dart_table(void)
416 * will blow up an entire large page anyway in the kernel mapping 416 * will blow up an entire large page anyway in the kernel mapping
417 */ 417 */
418 dart_tablebase = (unsigned long) 418 dart_tablebase = (unsigned long)
419 abs_to_virt(lmb_alloc_base(1UL<<24, 1UL<<24, 0x80000000L)); 419 abs_to_virt(memblock_alloc_base(1UL<<24, 1UL<<24, 0x80000000L));
420 420
421 printk(KERN_INFO "DART table allocated at: %lx\n", dart_tablebase); 421 printk(KERN_INFO "DART table allocated at: %lx\n", dart_tablebase);
422} 422}
diff --git a/arch/powerpc/sysdev/fsl_gtm.c b/arch/powerpc/sysdev/fsl_gtm.c
index 714ec02fed2e..eca4545dd52e 100644
--- a/arch/powerpc/sysdev/fsl_gtm.c
+++ b/arch/powerpc/sysdev/fsl_gtm.c
@@ -20,6 +20,7 @@
20#include <linux/of.h> 20#include <linux/of.h>
21#include <linux/spinlock.h> 21#include <linux/spinlock.h>
22#include <linux/bitops.h> 22#include <linux/bitops.h>
23#include <linux/slab.h>
23#include <asm/fsl_gtm.h> 24#include <asm/fsl_gtm.h>
24 25
25#define GTCFR_STP(x) ((x) & 1 ? 1 << 5 : 1 << 1) 26#define GTCFR_STP(x) ((x) & 1 ? 1 << 5 : 1 << 1)
diff --git a/arch/powerpc/sysdev/fsl_msi.c b/arch/powerpc/sysdev/fsl_msi.c
index e094367d7739..962c2d8dd8d9 100644
--- a/arch/powerpc/sysdev/fsl_msi.c
+++ b/arch/powerpc/sysdev/fsl_msi.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2008 Freescale Semiconductor, Inc. All rights reserved. 2 * Copyright (C) 2007-2010 Freescale Semiconductor, Inc.
3 * 3 *
4 * Author: Tony Li <tony.li@freescale.com> 4 * Author: Tony Li <tony.li@freescale.com>
5 * Jason Jin <Jason.jin@freescale.com> 5 * Jason Jin <Jason.jin@freescale.com>
@@ -16,19 +16,26 @@
16#include <linux/bootmem.h> 16#include <linux/bootmem.h>
17#include <linux/msi.h> 17#include <linux/msi.h>
18#include <linux/pci.h> 18#include <linux/pci.h>
19#include <linux/slab.h>
19#include <linux/of_platform.h> 20#include <linux/of_platform.h>
20#include <sysdev/fsl_soc.h> 21#include <sysdev/fsl_soc.h>
21#include <asm/prom.h> 22#include <asm/prom.h>
22#include <asm/hw_irq.h> 23#include <asm/hw_irq.h>
23#include <asm/ppc-pci.h> 24#include <asm/ppc-pci.h>
25#include <asm/mpic.h>
24#include "fsl_msi.h" 26#include "fsl_msi.h"
25 27
28LIST_HEAD(msi_head);
29
26struct fsl_msi_feature { 30struct fsl_msi_feature {
27 u32 fsl_pic_ip; 31 u32 fsl_pic_ip;
28 u32 msiir_offset; 32 u32 msiir_offset;
29}; 33};
30 34
31static struct fsl_msi *fsl_msi; 35struct fsl_msi_cascade_data {
36 struct fsl_msi *msi_data;
37 int index;
38};
32 39
33static inline u32 fsl_msi_read(u32 __iomem *base, unsigned int reg) 40static inline u32 fsl_msi_read(u32 __iomem *base, unsigned int reg)
34{ 41{
@@ -53,10 +60,12 @@ static struct irq_chip fsl_msi_chip = {
53static int fsl_msi_host_map(struct irq_host *h, unsigned int virq, 60static int fsl_msi_host_map(struct irq_host *h, unsigned int virq,
54 irq_hw_number_t hw) 61 irq_hw_number_t hw)
55{ 62{
63 struct fsl_msi *msi_data = h->host_data;
56 struct irq_chip *chip = &fsl_msi_chip; 64 struct irq_chip *chip = &fsl_msi_chip;
57 65
58 irq_to_desc(virq)->status |= IRQ_TYPE_EDGE_FALLING; 66 irq_to_desc(virq)->status |= IRQ_TYPE_EDGE_FALLING;
59 67
68 set_irq_chip_data(virq, msi_data);
60 set_irq_chip_and_handler(virq, chip, handle_edge_irq); 69 set_irq_chip_and_handler(virq, chip, handle_edge_irq);
61 70
62 return 0; 71 return 0;
@@ -95,11 +104,12 @@ static int fsl_msi_check_device(struct pci_dev *pdev, int nvec, int type)
95static void fsl_teardown_msi_irqs(struct pci_dev *pdev) 104static void fsl_teardown_msi_irqs(struct pci_dev *pdev)
96{ 105{
97 struct msi_desc *entry; 106 struct msi_desc *entry;
98 struct fsl_msi *msi_data = fsl_msi; 107 struct fsl_msi *msi_data;
99 108
100 list_for_each_entry(entry, &pdev->msi_list, list) { 109 list_for_each_entry(entry, &pdev->msi_list, list) {
101 if (entry->irq == NO_IRQ) 110 if (entry->irq == NO_IRQ)
102 continue; 111 continue;
112 msi_data = get_irq_data(entry->irq);
103 set_irq_msi(entry->irq, NULL); 113 set_irq_msi(entry->irq, NULL);
104 msi_bitmap_free_hwirqs(&msi_data->bitmap, 114 msi_bitmap_free_hwirqs(&msi_data->bitmap,
105 virq_to_hw(entry->irq), 1); 115 virq_to_hw(entry->irq), 1);
@@ -110,9 +120,10 @@ static void fsl_teardown_msi_irqs(struct pci_dev *pdev)
110} 120}
111 121
112static void fsl_compose_msi_msg(struct pci_dev *pdev, int hwirq, 122static void fsl_compose_msi_msg(struct pci_dev *pdev, int hwirq,
113 struct msi_msg *msg) 123 struct msi_msg *msg,
124 struct fsl_msi *fsl_msi_data)
114{ 125{
115 struct fsl_msi *msi_data = fsl_msi; 126 struct fsl_msi *msi_data = fsl_msi_data;
116 struct pci_controller *hose = pci_bus_to_host(pdev->bus); 127 struct pci_controller *hose = pci_bus_to_host(pdev->bus);
117 u32 base = 0; 128 u32 base = 0;
118 129
@@ -129,14 +140,19 @@ static void fsl_compose_msi_msg(struct pci_dev *pdev, int hwirq,
129 140
130static int fsl_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type) 141static int fsl_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
131{ 142{
132 int rc, hwirq; 143 int rc, hwirq = -ENOMEM;
133 unsigned int virq; 144 unsigned int virq;
134 struct msi_desc *entry; 145 struct msi_desc *entry;
135 struct msi_msg msg; 146 struct msi_msg msg;
136 struct fsl_msi *msi_data = fsl_msi; 147 struct fsl_msi *msi_data;
137 148
138 list_for_each_entry(entry, &pdev->msi_list, list) { 149 list_for_each_entry(entry, &pdev->msi_list, list) {
139 hwirq = msi_bitmap_alloc_hwirqs(&msi_data->bitmap, 1); 150 list_for_each_entry(msi_data, &msi_head, list) {
151 hwirq = msi_bitmap_alloc_hwirqs(&msi_data->bitmap, 1);
152 if (hwirq >= 0)
153 break;
154 }
155
140 if (hwirq < 0) { 156 if (hwirq < 0) {
141 rc = hwirq; 157 rc = hwirq;
142 pr_debug("%s: fail allocating msi interrupt\n", 158 pr_debug("%s: fail allocating msi interrupt\n",
@@ -153,25 +169,31 @@ static int fsl_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
153 rc = -ENOSPC; 169 rc = -ENOSPC;
154 goto out_free; 170 goto out_free;
155 } 171 }
172 set_irq_data(virq, msi_data);
156 set_irq_msi(virq, entry); 173 set_irq_msi(virq, entry);
157 174
158 fsl_compose_msi_msg(pdev, hwirq, &msg); 175 fsl_compose_msi_msg(pdev, hwirq, &msg, msi_data);
159 write_msi_msg(virq, &msg); 176 write_msi_msg(virq, &msg);
160 } 177 }
161 return 0; 178 return 0;
162 179
163out_free: 180out_free:
181 /* free by the caller of this function */
164 return rc; 182 return rc;
165} 183}
166 184
167static void fsl_msi_cascade(unsigned int irq, struct irq_desc *desc) 185static void fsl_msi_cascade(unsigned int irq, struct irq_desc *desc)
168{ 186{
169 unsigned int cascade_irq; 187 unsigned int cascade_irq;
170 struct fsl_msi *msi_data = fsl_msi; 188 struct fsl_msi *msi_data;
171 int msir_index = -1; 189 int msir_index = -1;
172 u32 msir_value = 0; 190 u32 msir_value = 0;
173 u32 intr_index; 191 u32 intr_index;
174 u32 have_shift = 0; 192 u32 have_shift = 0;
193 struct fsl_msi_cascade_data *cascade_data;
194
195 cascade_data = (struct fsl_msi_cascade_data *)get_irq_data(irq);
196 msi_data = cascade_data->msi_data;
175 197
176 raw_spin_lock(&desc->lock); 198 raw_spin_lock(&desc->lock);
177 if ((msi_data->feature & FSL_PIC_IP_MASK) == FSL_PIC_IP_IPIC) { 199 if ((msi_data->feature & FSL_PIC_IP_MASK) == FSL_PIC_IP_IPIC) {
@@ -186,13 +208,13 @@ static void fsl_msi_cascade(unsigned int irq, struct irq_desc *desc)
186 if (unlikely(desc->status & IRQ_INPROGRESS)) 208 if (unlikely(desc->status & IRQ_INPROGRESS))
187 goto unlock; 209 goto unlock;
188 210
189 msir_index = (int)desc->handler_data; 211 msir_index = cascade_data->index;
190 212
191 if (msir_index >= NR_MSI_REG) 213 if (msir_index >= NR_MSI_REG)
192 cascade_irq = NO_IRQ; 214 cascade_irq = NO_IRQ;
193 215
194 desc->status |= IRQ_INPROGRESS; 216 desc->status |= IRQ_INPROGRESS;
195 switch (fsl_msi->feature & FSL_PIC_IP_MASK) { 217 switch (msi_data->feature & FSL_PIC_IP_MASK) {
196 case FSL_PIC_IP_MPIC: 218 case FSL_PIC_IP_MPIC:
197 msir_value = fsl_msi_read(msi_data->msi_regs, 219 msir_value = fsl_msi_read(msi_data->msi_regs,
198 msir_index * 0x10); 220 msir_index * 0x10);
@@ -228,6 +250,30 @@ unlock:
228 raw_spin_unlock(&desc->lock); 250 raw_spin_unlock(&desc->lock);
229} 251}
230 252
253static int fsl_of_msi_remove(struct of_device *ofdev)
254{
255 struct fsl_msi *msi = ofdev->dev.platform_data;
256 int virq, i;
257 struct fsl_msi_cascade_data *cascade_data;
258
259 if (msi->list.prev != NULL)
260 list_del(&msi->list);
261 for (i = 0; i < NR_MSI_REG; i++) {
262 virq = msi->msi_virqs[i];
263 if (virq != NO_IRQ) {
264 cascade_data = get_irq_data(virq);
265 kfree(cascade_data);
266 irq_dispose_mapping(virq);
267 }
268 }
269 if (msi->bitmap.bitmap)
270 msi_bitmap_free(&msi->bitmap);
271 iounmap(msi->msi_regs);
272 kfree(msi);
273
274 return 0;
275}
276
231static int __devinit fsl_of_msi_probe(struct of_device *dev, 277static int __devinit fsl_of_msi_probe(struct of_device *dev,
232 const struct of_device_id *match) 278 const struct of_device_id *match)
233{ 279{
@@ -238,17 +284,20 @@ static int __devinit fsl_of_msi_probe(struct of_device *dev,
238 int virt_msir; 284 int virt_msir;
239 const u32 *p; 285 const u32 *p;
240 struct fsl_msi_feature *features = match->data; 286 struct fsl_msi_feature *features = match->data;
287 struct fsl_msi_cascade_data *cascade_data = NULL;
288 int len;
289 u32 offset;
241 290
242 printk(KERN_DEBUG "Setting up Freescale MSI support\n"); 291 printk(KERN_DEBUG "Setting up Freescale MSI support\n");
243 292
244 msi = kzalloc(sizeof(struct fsl_msi), GFP_KERNEL); 293 msi = kzalloc(sizeof(struct fsl_msi), GFP_KERNEL);
245 if (!msi) { 294 if (!msi) {
246 dev_err(&dev->dev, "No memory for MSI structure\n"); 295 dev_err(&dev->dev, "No memory for MSI structure\n");
247 err = -ENOMEM; 296 return -ENOMEM;
248 goto error_out;
249 } 297 }
298 dev->dev.platform_data = msi;
250 299
251 msi->irqhost = irq_alloc_host(dev->node, IRQ_HOST_MAP_LINEAR, 300 msi->irqhost = irq_alloc_host(dev->dev.of_node, IRQ_HOST_MAP_LINEAR,
252 NR_MSI_IRQS, &fsl_msi_host_ops, 0); 301 NR_MSI_IRQS, &fsl_msi_host_ops, 0);
253 302
254 if (msi->irqhost == NULL) { 303 if (msi->irqhost == NULL) {
@@ -258,10 +307,10 @@ static int __devinit fsl_of_msi_probe(struct of_device *dev,
258 } 307 }
259 308
260 /* Get the MSI reg base */ 309 /* Get the MSI reg base */
261 err = of_address_to_resource(dev->node, 0, &res); 310 err = of_address_to_resource(dev->dev.of_node, 0, &res);
262 if (err) { 311 if (err) {
263 dev_err(&dev->dev, "%s resource error!\n", 312 dev_err(&dev->dev, "%s resource error!\n",
264 dev->node->full_name); 313 dev->dev.of_node->full_name);
265 goto error_out; 314 goto error_out;
266 } 315 }
267 316
@@ -284,40 +333,60 @@ static int __devinit fsl_of_msi_probe(struct of_device *dev,
284 goto error_out; 333 goto error_out;
285 } 334 }
286 335
287 p = of_get_property(dev->node, "interrupts", &count); 336 p = of_get_property(dev->dev.of_node, "interrupts", &count);
288 if (!p) { 337 if (!p) {
289 dev_err(&dev->dev, "no interrupts property found on %s\n", 338 dev_err(&dev->dev, "no interrupts property found on %s\n",
290 dev->node->full_name); 339 dev->dev.of_node->full_name);
291 err = -ENODEV; 340 err = -ENODEV;
292 goto error_out; 341 goto error_out;
293 } 342 }
294 if (count % 8 != 0) { 343 if (count % 8 != 0) {
295 dev_err(&dev->dev, "Malformed interrupts property on %s\n", 344 dev_err(&dev->dev, "Malformed interrupts property on %s\n",
296 dev->node->full_name); 345 dev->dev.of_node->full_name);
297 err = -EINVAL; 346 err = -EINVAL;
298 goto error_out; 347 goto error_out;
299 } 348 }
349 offset = 0;
350 p = of_get_property(dev->dev.of_node, "msi-available-ranges", &len);
351 if (p)
352 offset = *p / IRQS_PER_MSI_REG;
300 353
301 count /= sizeof(u32); 354 count /= sizeof(u32);
302 for (i = 0; i < count / 2; i++) { 355 for (i = 0; i < min(count / 2, NR_MSI_REG); i++) {
303 if (i > NR_MSI_REG) 356 virt_msir = irq_of_parse_and_map(dev->dev.of_node, i);
304 break;
305 virt_msir = irq_of_parse_and_map(dev->node, i);
306 if (virt_msir != NO_IRQ) { 357 if (virt_msir != NO_IRQ) {
307 set_irq_data(virt_msir, (void *)i); 358 cascade_data = kzalloc(
359 sizeof(struct fsl_msi_cascade_data),
360 GFP_KERNEL);
361 if (!cascade_data) {
362 dev_err(&dev->dev,
363 "No memory for MSI cascade data\n");
364 err = -ENOMEM;
365 goto error_out;
366 }
367 msi->msi_virqs[i] = virt_msir;
368 cascade_data->index = i + offset;
369 cascade_data->msi_data = msi;
370 set_irq_data(virt_msir, (void *)cascade_data);
308 set_irq_chained_handler(virt_msir, fsl_msi_cascade); 371 set_irq_chained_handler(virt_msir, fsl_msi_cascade);
309 } 372 }
310 } 373 }
311 374
312 fsl_msi = msi; 375 list_add_tail(&msi->list, &msi_head);
313 376
314 WARN_ON(ppc_md.setup_msi_irqs); 377 /* The multiple setting ppc_md.setup_msi_irqs will not harm things */
315 ppc_md.setup_msi_irqs = fsl_setup_msi_irqs; 378 if (!ppc_md.setup_msi_irqs) {
316 ppc_md.teardown_msi_irqs = fsl_teardown_msi_irqs; 379 ppc_md.setup_msi_irqs = fsl_setup_msi_irqs;
317 ppc_md.msi_check_device = fsl_msi_check_device; 380 ppc_md.teardown_msi_irqs = fsl_teardown_msi_irqs;
381 ppc_md.msi_check_device = fsl_msi_check_device;
382 } else if (ppc_md.setup_msi_irqs != fsl_setup_msi_irqs) {
383 dev_err(&dev->dev, "Different MSI driver already installed!\n");
384 err = -ENODEV;
385 goto error_out;
386 }
318 return 0; 387 return 0;
319error_out: 388error_out:
320 kfree(msi); 389 fsl_of_msi_remove(dev);
321 return err; 390 return err;
322} 391}
323 392
@@ -344,9 +413,13 @@ static const struct of_device_id fsl_of_msi_ids[] = {
344}; 413};
345 414
346static struct of_platform_driver fsl_of_msi_driver = { 415static struct of_platform_driver fsl_of_msi_driver = {
347 .name = "fsl-msi", 416 .driver = {
348 .match_table = fsl_of_msi_ids, 417 .name = "fsl-msi",
418 .owner = THIS_MODULE,
419 .of_match_table = fsl_of_msi_ids,
420 },
349 .probe = fsl_of_msi_probe, 421 .probe = fsl_of_msi_probe,
422 .remove = fsl_of_msi_remove,
350}; 423};
351 424
352static __init int fsl_of_msi_init(void) 425static __init int fsl_of_msi_init(void)
diff --git a/arch/powerpc/sysdev/fsl_msi.h b/arch/powerpc/sysdev/fsl_msi.h
index 331c7e7025b7..624580c252d7 100644
--- a/arch/powerpc/sysdev/fsl_msi.h
+++ b/arch/powerpc/sysdev/fsl_msi.h
@@ -32,8 +32,11 @@ struct fsl_msi {
32 u32 msi_addr_hi; 32 u32 msi_addr_hi;
33 void __iomem *msi_regs; 33 void __iomem *msi_regs;
34 u32 feature; 34 u32 feature;
35 int msi_virqs[NR_MSI_REG];
35 36
36 struct msi_bitmap bitmap; 37 struct msi_bitmap bitmap;
38
39 struct list_head list; /* support multiple MSI banks */
37}; 40};
38 41
39#endif /* _POWERPC_SYSDEV_FSL_MSI_H */ 42#endif /* _POWERPC_SYSDEV_FSL_MSI_H */
diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
index e1a028c1f18d..356c6a0e1b23 100644
--- a/arch/powerpc/sysdev/fsl_pci.c
+++ b/arch/powerpc/sysdev/fsl_pci.c
@@ -23,8 +23,9 @@
23#include <linux/string.h> 23#include <linux/string.h>
24#include <linux/init.h> 24#include <linux/init.h>
25#include <linux/bootmem.h> 25#include <linux/bootmem.h>
26#include <linux/lmb.h> 26#include <linux/memblock.h>
27#include <linux/log2.h> 27#include <linux/log2.h>
28#include <linux/slab.h>
28 29
29#include <asm/io.h> 30#include <asm/io.h>
30#include <asm/prom.h> 31#include <asm/prom.h>
@@ -189,7 +190,7 @@ static void __init setup_pci_atmu(struct pci_controller *hose,
189 pr_info("%s: PCICSRBAR @ 0x%x\n", name, pcicsrbar); 190 pr_info("%s: PCICSRBAR @ 0x%x\n", name, pcicsrbar);
190 191
191 /* Setup inbound mem window */ 192 /* Setup inbound mem window */
192 mem = lmb_end_of_DRAM(); 193 mem = memblock_end_of_DRAM();
193 sz = min(mem, paddr_lo); 194 sz = min(mem, paddr_lo);
194 mem_log = __ilog2_u64(sz); 195 mem_log = __ilog2_u64(sz);
195 196
diff --git a/arch/powerpc/sysdev/fsl_pmc.c b/arch/powerpc/sysdev/fsl_pmc.c
index a7635a993dca..9082eb921ad9 100644
--- a/arch/powerpc/sysdev/fsl_pmc.c
+++ b/arch/powerpc/sysdev/fsl_pmc.c
@@ -60,7 +60,7 @@ static struct platform_suspend_ops pmc_suspend_ops = {
60 60
61static int pmc_probe(struct of_device *ofdev, const struct of_device_id *id) 61static int pmc_probe(struct of_device *ofdev, const struct of_device_id *id)
62{ 62{
63 pmc_regs = of_iomap(ofdev->node, 0); 63 pmc_regs = of_iomap(ofdev->dev.of_node, 0);
64 if (!pmc_regs) 64 if (!pmc_regs)
65 return -ENOMEM; 65 return -ENOMEM;
66 66
@@ -76,8 +76,11 @@ static const struct of_device_id pmc_ids[] = {
76}; 76};
77 77
78static struct of_platform_driver pmc_driver = { 78static struct of_platform_driver pmc_driver = {
79 .driver.name = "fsl-pmc", 79 .driver = {
80 .match_table = pmc_ids, 80 .name = "fsl-pmc",
81 .owner = THIS_MODULE,
82 .of_match_table = pmc_ids,
83 },
81 .probe = pmc_probe, 84 .probe = pmc_probe,
82}; 85};
83 86
diff --git a/arch/powerpc/sysdev/fsl_rio.c b/arch/powerpc/sysdev/fsl_rio.c
index 757a83fe5e59..30e1626b2e85 100644
--- a/arch/powerpc/sysdev/fsl_rio.c
+++ b/arch/powerpc/sysdev/fsl_rio.c
@@ -1,6 +1,15 @@
1/* 1/*
2 * Freescale MPC85xx/MPC86xx RapidIO support 2 * Freescale MPC85xx/MPC86xx RapidIO support
3 * 3 *
4 * Copyright 2009 Sysgo AG
5 * Thomas Moll <thomas.moll@sysgo.com>
6 * - fixed maintenance access routines, check for aligned access
7 *
8 * Copyright 2009 Integrated Device Technology, Inc.
9 * Alex Bounine <alexandre.bounine@idt.com>
10 * - Added Port-Write message handling
11 * - Added Machine Check exception handling
12 *
4 * Copyright (C) 2007, 2008 Freescale Semiconductor, Inc. 13 * Copyright (C) 2007, 2008 Freescale Semiconductor, Inc.
5 * Zhang Wei <wei.zhang@freescale.com> 14 * Zhang Wei <wei.zhang@freescale.com>
6 * 15 *
@@ -23,19 +32,31 @@
23#include <linux/rio_drv.h> 32#include <linux/rio_drv.h>
24#include <linux/of_platform.h> 33#include <linux/of_platform.h>
25#include <linux/delay.h> 34#include <linux/delay.h>
35#include <linux/slab.h>
36#include <linux/kfifo.h>
26 37
27#include <asm/io.h> 38#include <asm/io.h>
39#include <asm/machdep.h>
40#include <asm/uaccess.h>
41
42#undef DEBUG_PW /* Port-Write debugging */
28 43
29/* RapidIO definition irq, which read from OF-tree */ 44/* RapidIO definition irq, which read from OF-tree */
30#define IRQ_RIO_BELL(m) (((struct rio_priv *)(m->priv))->bellirq) 45#define IRQ_RIO_BELL(m) (((struct rio_priv *)(m->priv))->bellirq)
31#define IRQ_RIO_TX(m) (((struct rio_priv *)(m->priv))->txirq) 46#define IRQ_RIO_TX(m) (((struct rio_priv *)(m->priv))->txirq)
32#define IRQ_RIO_RX(m) (((struct rio_priv *)(m->priv))->rxirq) 47#define IRQ_RIO_RX(m) (((struct rio_priv *)(m->priv))->rxirq)
48#define IRQ_RIO_PW(m) (((struct rio_priv *)(m->priv))->pwirq)
33 49
34#define RIO_ATMU_REGS_OFFSET 0x10c00 50#define RIO_ATMU_REGS_OFFSET 0x10c00
35#define RIO_P_MSG_REGS_OFFSET 0x11000 51#define RIO_P_MSG_REGS_OFFSET 0x11000
36#define RIO_S_MSG_REGS_OFFSET 0x13000 52#define RIO_S_MSG_REGS_OFFSET 0x13000
37#define RIO_ESCSR 0x158 53#define RIO_ESCSR 0x158
38#define RIO_CCSR 0x15c 54#define RIO_CCSR 0x15c
55#define RIO_LTLEDCSR 0x0608
56#define RIO_LTLEDCSR_IER 0x80000000
57#define RIO_LTLEDCSR_PRT 0x01000000
58#define RIO_LTLEECSR 0x060c
59#define RIO_EPWISR 0x10010
39#define RIO_ISR_AACR 0x10120 60#define RIO_ISR_AACR 0x10120
40#define RIO_ISR_AACR_AA 0x1 /* Accept All ID */ 61#define RIO_ISR_AACR_AA 0x1 /* Accept All ID */
41#define RIO_MAINT_WIN_SIZE 0x400000 62#define RIO_MAINT_WIN_SIZE 0x400000
@@ -54,6 +75,18 @@
54#define RIO_MSG_ISR_QFI 0x00000010 75#define RIO_MSG_ISR_QFI 0x00000010
55#define RIO_MSG_ISR_DIQI 0x00000001 76#define RIO_MSG_ISR_DIQI 0x00000001
56 77
78#define RIO_IPWMR_SEN 0x00100000
79#define RIO_IPWMR_QFIE 0x00000100
80#define RIO_IPWMR_EIE 0x00000020
81#define RIO_IPWMR_CQ 0x00000002
82#define RIO_IPWMR_PWE 0x00000001
83
84#define RIO_IPWSR_QF 0x00100000
85#define RIO_IPWSR_TE 0x00000080
86#define RIO_IPWSR_QFI 0x00000010
87#define RIO_IPWSR_PWD 0x00000008
88#define RIO_IPWSR_PWB 0x00000004
89
57#define RIO_MSG_DESC_SIZE 32 90#define RIO_MSG_DESC_SIZE 32
58#define RIO_MSG_BUFFER_SIZE 4096 91#define RIO_MSG_BUFFER_SIZE 4096
59#define RIO_MIN_TX_RING_SIZE 2 92#define RIO_MIN_TX_RING_SIZE 2
@@ -120,7 +153,7 @@ struct rio_msg_regs {
120 u32 pad10[26]; 153 u32 pad10[26];
121 u32 pwmr; 154 u32 pwmr;
122 u32 pwsr; 155 u32 pwsr;
123 u32 pad11; 156 u32 epwqbar;
124 u32 pwqbar; 157 u32 pwqbar;
125}; 158};
126 159
@@ -159,6 +192,14 @@ struct rio_msg_rx_ring {
159 void *dev_id; 192 void *dev_id;
160}; 193};
161 194
195struct rio_port_write_msg {
196 void *virt;
197 dma_addr_t phys;
198 u32 msg_count;
199 u32 err_count;
200 u32 discard_count;
201};
202
162struct rio_priv { 203struct rio_priv {
163 struct device *dev; 204 struct device *dev;
164 void __iomem *regs_win; 205 void __iomem *regs_win;
@@ -171,11 +212,64 @@ struct rio_priv {
171 struct rio_dbell_ring dbell_ring; 212 struct rio_dbell_ring dbell_ring;
172 struct rio_msg_tx_ring msg_tx_ring; 213 struct rio_msg_tx_ring msg_tx_ring;
173 struct rio_msg_rx_ring msg_rx_ring; 214 struct rio_msg_rx_ring msg_rx_ring;
215 struct rio_port_write_msg port_write_msg;
174 int bellirq; 216 int bellirq;
175 int txirq; 217 int txirq;
176 int rxirq; 218 int rxirq;
219 int pwirq;
220 struct work_struct pw_work;
221 struct kfifo pw_fifo;
222 spinlock_t pw_fifo_lock;
177}; 223};
178 224
225#define __fsl_read_rio_config(x, addr, err, op) \
226 __asm__ __volatile__( \
227 "1: "op" %1,0(%2)\n" \
228 " eieio\n" \
229 "2:\n" \
230 ".section .fixup,\"ax\"\n" \
231 "3: li %1,-1\n" \
232 " li %0,%3\n" \
233 " b 2b\n" \
234 ".section __ex_table,\"a\"\n" \
235 " .align 2\n" \
236 " .long 1b,3b\n" \
237 ".text" \
238 : "=r" (err), "=r" (x) \
239 : "b" (addr), "i" (-EFAULT), "0" (err))
240
241static void __iomem *rio_regs_win;
242
243static int (*saved_mcheck_exception)(struct pt_regs *regs);
244
245static int fsl_rio_mcheck_exception(struct pt_regs *regs)
246{
247 const struct exception_table_entry *entry = NULL;
248 unsigned long reason = (mfspr(SPRN_MCSR) & MCSR_MASK);
249
250 if (reason & MCSR_BUS_RBERR) {
251 reason = in_be32((u32 *)(rio_regs_win + RIO_LTLEDCSR));
252 if (reason & (RIO_LTLEDCSR_IER | RIO_LTLEDCSR_PRT)) {
253 /* Check if we are prepared to handle this fault */
254 entry = search_exception_tables(regs->nip);
255 if (entry) {
256 pr_debug("RIO: %s - MC Exception handled\n",
257 __func__);
258 out_be32((u32 *)(rio_regs_win + RIO_LTLEDCSR),
259 0);
260 regs->msr |= MSR_RI;
261 regs->nip = entry->fixup;
262 return 1;
263 }
264 }
265 }
266
267 if (saved_mcheck_exception)
268 return saved_mcheck_exception(regs);
269 else
270 return cur_cpu_spec->machine_check(regs);
271}
272
179/** 273/**
180 * fsl_rio_doorbell_send - Send a MPC85xx doorbell message 274 * fsl_rio_doorbell_send - Send a MPC85xx doorbell message
181 * @mport: RapidIO master port info 275 * @mport: RapidIO master port info
@@ -276,27 +370,44 @@ fsl_rio_config_read(struct rio_mport *mport, int index, u16 destid,
276{ 370{
277 struct rio_priv *priv = mport->priv; 371 struct rio_priv *priv = mport->priv;
278 u8 *data; 372 u8 *data;
373 u32 rval, err = 0;
279 374
280 pr_debug 375 pr_debug
281 ("fsl_rio_config_read: index %d destid %d hopcount %d offset %8.8x len %d\n", 376 ("fsl_rio_config_read: index %d destid %d hopcount %d offset %8.8x len %d\n",
282 index, destid, hopcount, offset, len); 377 index, destid, hopcount, offset, len);
378
379 /* 16MB maintenance window possible */
380 /* allow only aligned access to maintenance registers */
381 if (offset > (0x1000000 - len) || !IS_ALIGNED(offset, len))
382 return -EINVAL;
383
283 out_be32(&priv->maint_atmu_regs->rowtar, 384 out_be32(&priv->maint_atmu_regs->rowtar,
284 (destid << 22) | (hopcount << 12) | ((offset & ~0x3) >> 9)); 385 (destid << 22) | (hopcount << 12) | (offset >> 12));
386 out_be32(&priv->maint_atmu_regs->rowtear, (destid >> 10));
285 387
286 data = (u8 *) priv->maint_win + offset; 388 data = (u8 *) priv->maint_win + (offset & (RIO_MAINT_WIN_SIZE - 1));
287 switch (len) { 389 switch (len) {
288 case 1: 390 case 1:
289 *val = in_8((u8 *) data); 391 __fsl_read_rio_config(rval, data, err, "lbz");
290 break; 392 break;
291 case 2: 393 case 2:
292 *val = in_be16((u16 *) data); 394 __fsl_read_rio_config(rval, data, err, "lhz");
293 break; 395 break;
294 default: 396 case 4:
295 *val = in_be32((u32 *) data); 397 __fsl_read_rio_config(rval, data, err, "lwz");
296 break; 398 break;
399 default:
400 return -EINVAL;
297 } 401 }
298 402
299 return 0; 403 if (err) {
404 pr_debug("RIO: cfg_read error %d for %x:%x:%x\n",
405 err, destid, hopcount, offset);
406 }
407
408 *val = rval;
409
410 return err;
300} 411}
301 412
302/** 413/**
@@ -321,10 +432,17 @@ fsl_rio_config_write(struct rio_mport *mport, int index, u16 destid,
321 pr_debug 432 pr_debug
322 ("fsl_rio_config_write: index %d destid %d hopcount %d offset %8.8x len %d val %8.8x\n", 433 ("fsl_rio_config_write: index %d destid %d hopcount %d offset %8.8x len %d val %8.8x\n",
323 index, destid, hopcount, offset, len, val); 434 index, destid, hopcount, offset, len, val);
435
436 /* 16MB maintenance windows possible */
437 /* allow only aligned access to maintenance registers */
438 if (offset > (0x1000000 - len) || !IS_ALIGNED(offset, len))
439 return -EINVAL;
440
324 out_be32(&priv->maint_atmu_regs->rowtar, 441 out_be32(&priv->maint_atmu_regs->rowtar,
325 (destid << 22) | (hopcount << 12) | ((offset & ~0x3) >> 9)); 442 (destid << 22) | (hopcount << 12) | (offset >> 12));
443 out_be32(&priv->maint_atmu_regs->rowtear, (destid >> 10));
326 444
327 data = (u8 *) priv->maint_win + offset; 445 data = (u8 *) priv->maint_win + (offset & (RIO_MAINT_WIN_SIZE - 1));
328 switch (len) { 446 switch (len) {
329 case 1: 447 case 1:
330 out_8((u8 *) data, val); 448 out_8((u8 *) data, val);
@@ -332,9 +450,11 @@ fsl_rio_config_write(struct rio_mport *mport, int index, u16 destid,
332 case 2: 450 case 2:
333 out_be16((u16 *) data, val); 451 out_be16((u16 *) data, val);
334 break; 452 break;
335 default: 453 case 4:
336 out_be32((u32 *) data, val); 454 out_be32((u32 *) data, val);
337 break; 455 break;
456 default:
457 return -EINVAL;
338 } 458 }
339 459
340 return 0; 460 return 0;
@@ -929,6 +1049,223 @@ static int fsl_rio_doorbell_init(struct rio_mport *mport)
929 return rc; 1049 return rc;
930} 1050}
931 1051
1052/**
1053 * fsl_rio_port_write_handler - MPC85xx port write interrupt handler
1054 * @irq: Linux interrupt number
1055 * @dev_instance: Pointer to interrupt-specific data
1056 *
1057 * Handles port write interrupts. Parses a list of registered
1058 * port write event handlers and executes a matching event handler.
1059 */
1060static irqreturn_t
1061fsl_rio_port_write_handler(int irq, void *dev_instance)
1062{
1063 u32 ipwmr, ipwsr;
1064 struct rio_mport *port = (struct rio_mport *)dev_instance;
1065 struct rio_priv *priv = port->priv;
1066 u32 epwisr, tmp;
1067
1068 ipwmr = in_be32(&priv->msg_regs->pwmr);
1069 ipwsr = in_be32(&priv->msg_regs->pwsr);
1070
1071 epwisr = in_be32(priv->regs_win + RIO_EPWISR);
1072 if (epwisr & 0x80000000) {
1073 tmp = in_be32(priv->regs_win + RIO_LTLEDCSR);
1074 pr_info("RIO_LTLEDCSR = 0x%x\n", tmp);
1075 out_be32(priv->regs_win + RIO_LTLEDCSR, 0);
1076 }
1077
1078 if (!(epwisr & 0x00000001))
1079 return IRQ_HANDLED;
1080
1081#ifdef DEBUG_PW
1082 pr_debug("PW Int->IPWMR: 0x%08x IPWSR: 0x%08x (", ipwmr, ipwsr);
1083 if (ipwsr & RIO_IPWSR_QF)
1084 pr_debug(" QF");
1085 if (ipwsr & RIO_IPWSR_TE)
1086 pr_debug(" TE");
1087 if (ipwsr & RIO_IPWSR_QFI)
1088 pr_debug(" QFI");
1089 if (ipwsr & RIO_IPWSR_PWD)
1090 pr_debug(" PWD");
1091 if (ipwsr & RIO_IPWSR_PWB)
1092 pr_debug(" PWB");
1093 pr_debug(" )\n");
1094#endif
1095 out_be32(&priv->msg_regs->pwsr,
1096 ipwsr & (RIO_IPWSR_TE | RIO_IPWSR_QFI | RIO_IPWSR_PWD));
1097
1098 if ((ipwmr & RIO_IPWMR_EIE) && (ipwsr & RIO_IPWSR_TE)) {
1099 priv->port_write_msg.err_count++;
1100 pr_info("RIO: Port-Write Transaction Err (%d)\n",
1101 priv->port_write_msg.err_count);
1102 }
1103 if (ipwsr & RIO_IPWSR_PWD) {
1104 priv->port_write_msg.discard_count++;
1105 pr_info("RIO: Port Discarded Port-Write Msg(s) (%d)\n",
1106 priv->port_write_msg.discard_count);
1107 }
1108
1109 /* Schedule deferred processing if PW was received */
1110 if (ipwsr & RIO_IPWSR_QFI) {
1111 /* Save PW message (if there is room in FIFO),
1112 * otherwise discard it.
1113 */
1114 if (kfifo_avail(&priv->pw_fifo) >= RIO_PW_MSG_SIZE) {
1115 priv->port_write_msg.msg_count++;
1116 kfifo_in(&priv->pw_fifo, priv->port_write_msg.virt,
1117 RIO_PW_MSG_SIZE);
1118 } else {
1119 priv->port_write_msg.discard_count++;
1120 pr_info("RIO: ISR Discarded Port-Write Msg(s) (%d)\n",
1121 priv->port_write_msg.discard_count);
1122 }
1123 schedule_work(&priv->pw_work);
1124 }
1125
1126 /* Issue Clear Queue command. This allows another
1127 * port-write to be received.
1128 */
1129 out_be32(&priv->msg_regs->pwmr, ipwmr | RIO_IPWMR_CQ);
1130
1131 return IRQ_HANDLED;
1132}
1133
1134static void fsl_pw_dpc(struct work_struct *work)
1135{
1136 struct rio_priv *priv = container_of(work, struct rio_priv, pw_work);
1137 unsigned long flags;
1138 u32 msg_buffer[RIO_PW_MSG_SIZE/sizeof(u32)];
1139
1140 /*
1141 * Process port-write messages
1142 */
1143 spin_lock_irqsave(&priv->pw_fifo_lock, flags);
1144 while (kfifo_out(&priv->pw_fifo, (unsigned char *)msg_buffer,
1145 RIO_PW_MSG_SIZE)) {
1146 /* Process one message */
1147 spin_unlock_irqrestore(&priv->pw_fifo_lock, flags);
1148#ifdef DEBUG_PW
1149 {
1150 u32 i;
1151 pr_debug("%s : Port-Write Message:", __func__);
1152 for (i = 0; i < RIO_PW_MSG_SIZE/sizeof(u32); i++) {
1153 if ((i%4) == 0)
1154 pr_debug("\n0x%02x: 0x%08x", i*4,
1155 msg_buffer[i]);
1156 else
1157 pr_debug(" 0x%08x", msg_buffer[i]);
1158 }
1159 pr_debug("\n");
1160 }
1161#endif
1162 /* Pass the port-write message to RIO core for processing */
1163 rio_inb_pwrite_handler((union rio_pw_msg *)msg_buffer);
1164 spin_lock_irqsave(&priv->pw_fifo_lock, flags);
1165 }
1166 spin_unlock_irqrestore(&priv->pw_fifo_lock, flags);
1167}
1168
1169/**
1170 * fsl_rio_pw_enable - enable/disable port-write interface init
1171 * @mport: Master port implementing the port write unit
1172 * @enable: 1=enable; 0=disable port-write message handling
1173 */
1174static int fsl_rio_pw_enable(struct rio_mport *mport, int enable)
1175{
1176 struct rio_priv *priv = mport->priv;
1177 u32 rval;
1178
1179 rval = in_be32(&priv->msg_regs->pwmr);
1180
1181 if (enable)
1182 rval |= RIO_IPWMR_PWE;
1183 else
1184 rval &= ~RIO_IPWMR_PWE;
1185
1186 out_be32(&priv->msg_regs->pwmr, rval);
1187
1188 return 0;
1189}
1190
1191/**
1192 * fsl_rio_port_write_init - MPC85xx port write interface init
1193 * @mport: Master port implementing the port write unit
1194 *
1195 * Initializes port write unit hardware and DMA buffer
1196 * ring. Called from fsl_rio_setup(). Returns %0 on success
1197 * or %-ENOMEM on failure.
1198 */
1199static int fsl_rio_port_write_init(struct rio_mport *mport)
1200{
1201 struct rio_priv *priv = mport->priv;
1202 int rc = 0;
1203
1204 /* Following configurations require a disabled port write controller */
1205 out_be32(&priv->msg_regs->pwmr,
1206 in_be32(&priv->msg_regs->pwmr) & ~RIO_IPWMR_PWE);
1207
1208 /* Initialize port write */
1209 priv->port_write_msg.virt = dma_alloc_coherent(priv->dev,
1210 RIO_PW_MSG_SIZE,
1211 &priv->port_write_msg.phys, GFP_KERNEL);
1212 if (!priv->port_write_msg.virt) {
1213 pr_err("RIO: unable allocate port write queue\n");
1214 return -ENOMEM;
1215 }
1216
1217 priv->port_write_msg.err_count = 0;
1218 priv->port_write_msg.discard_count = 0;
1219
1220 /* Point dequeue/enqueue pointers at first entry */
1221 out_be32(&priv->msg_regs->epwqbar, 0);
1222 out_be32(&priv->msg_regs->pwqbar, (u32) priv->port_write_msg.phys);
1223
1224 pr_debug("EIPWQBAR: 0x%08x IPWQBAR: 0x%08x\n",
1225 in_be32(&priv->msg_regs->epwqbar),
1226 in_be32(&priv->msg_regs->pwqbar));
1227
1228 /* Clear interrupt status IPWSR */
1229 out_be32(&priv->msg_regs->pwsr,
1230 (RIO_IPWSR_TE | RIO_IPWSR_QFI | RIO_IPWSR_PWD));
1231
1232 /* Configure port write contoller for snooping enable all reporting,
1233 clear queue full */
1234 out_be32(&priv->msg_regs->pwmr,
1235 RIO_IPWMR_SEN | RIO_IPWMR_QFIE | RIO_IPWMR_EIE | RIO_IPWMR_CQ);
1236
1237
1238 /* Hook up port-write handler */
1239 rc = request_irq(IRQ_RIO_PW(mport), fsl_rio_port_write_handler, 0,
1240 "port-write", (void *)mport);
1241 if (rc < 0) {
1242 pr_err("MPC85xx RIO: unable to request inbound doorbell irq");
1243 goto err_out;
1244 }
1245
1246 INIT_WORK(&priv->pw_work, fsl_pw_dpc);
1247 spin_lock_init(&priv->pw_fifo_lock);
1248 if (kfifo_alloc(&priv->pw_fifo, RIO_PW_MSG_SIZE * 32, GFP_KERNEL)) {
1249 pr_err("FIFO allocation failed\n");
1250 rc = -ENOMEM;
1251 goto err_out_irq;
1252 }
1253
1254 pr_debug("IPWMR: 0x%08x IPWSR: 0x%08x\n",
1255 in_be32(&priv->msg_regs->pwmr),
1256 in_be32(&priv->msg_regs->pwsr));
1257
1258 return rc;
1259
1260err_out_irq:
1261 free_irq(IRQ_RIO_PW(mport), (void *)mport);
1262err_out:
1263 dma_free_coherent(priv->dev, RIO_PW_MSG_SIZE,
1264 priv->port_write_msg.virt,
1265 priv->port_write_msg.phys);
1266 return rc;
1267}
1268
932static char *cmdline = NULL; 1269static char *cmdline = NULL;
933 1270
934static int fsl_rio_get_hdid(int index) 1271static int fsl_rio_get_hdid(int index)
@@ -1014,41 +1351,41 @@ int fsl_rio_setup(struct of_device *dev)
1014 u64 law_start, law_size; 1351 u64 law_start, law_size;
1015 int paw, aw, sw; 1352 int paw, aw, sw;
1016 1353
1017 if (!dev->node) { 1354 if (!dev->dev.of_node) {
1018 dev_err(&dev->dev, "Device OF-Node is NULL"); 1355 dev_err(&dev->dev, "Device OF-Node is NULL");
1019 return -EFAULT; 1356 return -EFAULT;
1020 } 1357 }
1021 1358
1022 rc = of_address_to_resource(dev->node, 0, &regs); 1359 rc = of_address_to_resource(dev->dev.of_node, 0, &regs);
1023 if (rc) { 1360 if (rc) {
1024 dev_err(&dev->dev, "Can't get %s property 'reg'\n", 1361 dev_err(&dev->dev, "Can't get %s property 'reg'\n",
1025 dev->node->full_name); 1362 dev->dev.of_node->full_name);
1026 return -EFAULT; 1363 return -EFAULT;
1027 } 1364 }
1028 dev_info(&dev->dev, "Of-device full name %s\n", dev->node->full_name); 1365 dev_info(&dev->dev, "Of-device full name %s\n", dev->dev.of_node->full_name);
1029 dev_info(&dev->dev, "Regs: %pR\n", &regs); 1366 dev_info(&dev->dev, "Regs: %pR\n", &regs);
1030 1367
1031 dt_range = of_get_property(dev->node, "ranges", &rlen); 1368 dt_range = of_get_property(dev->dev.of_node, "ranges", &rlen);
1032 if (!dt_range) { 1369 if (!dt_range) {
1033 dev_err(&dev->dev, "Can't get %s property 'ranges'\n", 1370 dev_err(&dev->dev, "Can't get %s property 'ranges'\n",
1034 dev->node->full_name); 1371 dev->dev.of_node->full_name);
1035 return -EFAULT; 1372 return -EFAULT;
1036 } 1373 }
1037 1374
1038 /* Get node address wide */ 1375 /* Get node address wide */
1039 cell = of_get_property(dev->node, "#address-cells", NULL); 1376 cell = of_get_property(dev->dev.of_node, "#address-cells", NULL);
1040 if (cell) 1377 if (cell)
1041 aw = *cell; 1378 aw = *cell;
1042 else 1379 else
1043 aw = of_n_addr_cells(dev->node); 1380 aw = of_n_addr_cells(dev->dev.of_node);
1044 /* Get node size wide */ 1381 /* Get node size wide */
1045 cell = of_get_property(dev->node, "#size-cells", NULL); 1382 cell = of_get_property(dev->dev.of_node, "#size-cells", NULL);
1046 if (cell) 1383 if (cell)
1047 sw = *cell; 1384 sw = *cell;
1048 else 1385 else
1049 sw = of_n_size_cells(dev->node); 1386 sw = of_n_size_cells(dev->dev.of_node);
1050 /* Get parent address wide wide */ 1387 /* Get parent address wide wide */
1051 paw = of_n_addr_cells(dev->node); 1388 paw = of_n_addr_cells(dev->dev.of_node);
1052 1389
1053 law_start = of_read_number(dt_range + aw, paw); 1390 law_start = of_read_number(dt_range + aw, paw);
1054 law_size = of_read_number(dt_range + aw + paw, sw); 1391 law_size = of_read_number(dt_range + aw + paw, sw);
@@ -1056,7 +1393,7 @@ int fsl_rio_setup(struct of_device *dev)
1056 dev_info(&dev->dev, "LAW start 0x%016llx, size 0x%016llx.\n", 1393 dev_info(&dev->dev, "LAW start 0x%016llx, size 0x%016llx.\n",
1057 law_start, law_size); 1394 law_start, law_size);
1058 1395
1059 ops = kmalloc(sizeof(struct rio_ops), GFP_KERNEL); 1396 ops = kzalloc(sizeof(struct rio_ops), GFP_KERNEL);
1060 if (!ops) { 1397 if (!ops) {
1061 rc = -ENOMEM; 1398 rc = -ENOMEM;
1062 goto err_ops; 1399 goto err_ops;
@@ -1066,6 +1403,7 @@ int fsl_rio_setup(struct of_device *dev)
1066 ops->cread = fsl_rio_config_read; 1403 ops->cread = fsl_rio_config_read;
1067 ops->cwrite = fsl_rio_config_write; 1404 ops->cwrite = fsl_rio_config_write;
1068 ops->dsend = fsl_rio_doorbell_send; 1405 ops->dsend = fsl_rio_doorbell_send;
1406 ops->pwenable = fsl_rio_pw_enable;
1069 1407
1070 port = kzalloc(sizeof(struct rio_mport), GFP_KERNEL); 1408 port = kzalloc(sizeof(struct rio_mport), GFP_KERNEL);
1071 if (!port) { 1409 if (!port) {
@@ -1088,11 +1426,12 @@ int fsl_rio_setup(struct of_device *dev)
1088 port->iores.flags = IORESOURCE_MEM; 1426 port->iores.flags = IORESOURCE_MEM;
1089 port->iores.name = "rio_io_win"; 1427 port->iores.name = "rio_io_win";
1090 1428
1091 priv->bellirq = irq_of_parse_and_map(dev->node, 2); 1429 priv->pwirq = irq_of_parse_and_map(dev->dev.of_node, 0);
1092 priv->txirq = irq_of_parse_and_map(dev->node, 3); 1430 priv->bellirq = irq_of_parse_and_map(dev->dev.of_node, 2);
1093 priv->rxirq = irq_of_parse_and_map(dev->node, 4); 1431 priv->txirq = irq_of_parse_and_map(dev->dev.of_node, 3);
1094 dev_info(&dev->dev, "bellirq: %d, txirq: %d, rxirq %d\n", priv->bellirq, 1432 priv->rxirq = irq_of_parse_and_map(dev->dev.of_node, 4);
1095 priv->txirq, priv->rxirq); 1433 dev_info(&dev->dev, "pwirq: %d, bellirq: %d, txirq: %d, rxirq %d\n",
1434 priv->pwirq, priv->bellirq, priv->txirq, priv->rxirq);
1096 1435
1097 rio_init_dbell_res(&port->riores[RIO_DOORBELL_RESOURCE], 0, 0xffff); 1436 rio_init_dbell_res(&port->riores[RIO_DOORBELL_RESOURCE], 0, 0xffff);
1098 rio_init_mbox_res(&port->riores[RIO_INB_MBOX_RESOURCE], 0, 0); 1437 rio_init_mbox_res(&port->riores[RIO_INB_MBOX_RESOURCE], 0, 0);
@@ -1108,6 +1447,7 @@ int fsl_rio_setup(struct of_device *dev)
1108 rio_register_mport(port); 1447 rio_register_mport(port);
1109 1448
1110 priv->regs_win = ioremap(regs.start, regs.end - regs.start + 1); 1449 priv->regs_win = ioremap(regs.start, regs.end - regs.start + 1);
1450 rio_regs_win = priv->regs_win;
1111 1451
1112 /* Probe the master port phy type */ 1452 /* Probe the master port phy type */
1113 ccsr = in_be32(priv->regs_win + RIO_CCSR); 1453 ccsr = in_be32(priv->regs_win + RIO_CCSR);
@@ -1165,7 +1505,8 @@ int fsl_rio_setup(struct of_device *dev)
1165 1505
1166 /* Configure maintenance transaction window */ 1506 /* Configure maintenance transaction window */
1167 out_be32(&priv->maint_atmu_regs->rowbar, law_start >> 12); 1507 out_be32(&priv->maint_atmu_regs->rowbar, law_start >> 12);
1168 out_be32(&priv->maint_atmu_regs->rowar, 0x80077015); /* 4M */ 1508 out_be32(&priv->maint_atmu_regs->rowar,
1509 0x80077000 | (ilog2(RIO_MAINT_WIN_SIZE) - 1));
1169 1510
1170 priv->maint_win = ioremap(law_start, RIO_MAINT_WIN_SIZE); 1511 priv->maint_win = ioremap(law_start, RIO_MAINT_WIN_SIZE);
1171 1512
@@ -1174,6 +1515,12 @@ int fsl_rio_setup(struct of_device *dev)
1174 (law_start + RIO_MAINT_WIN_SIZE) >> 12); 1515 (law_start + RIO_MAINT_WIN_SIZE) >> 12);
1175 out_be32(&priv->dbell_atmu_regs->rowar, 0x8004200b); /* 4k */ 1516 out_be32(&priv->dbell_atmu_regs->rowar, 0x8004200b); /* 4k */
1176 fsl_rio_doorbell_init(port); 1517 fsl_rio_doorbell_init(port);
1518 fsl_rio_port_write_init(port);
1519
1520 saved_mcheck_exception = ppc_md.machine_check_exception;
1521 ppc_md.machine_check_exception = fsl_rio_mcheck_exception;
1522 /* Ensure that RFXE is set */
1523 mtspr(SPRN_HID1, (mfspr(SPRN_HID1) | 0x20000));
1177 1524
1178 return 0; 1525 return 0;
1179err: 1526err:
@@ -1194,7 +1541,7 @@ static int __devinit fsl_of_rio_rpn_probe(struct of_device *dev,
1194{ 1541{
1195 int rc; 1542 int rc;
1196 printk(KERN_INFO "Setting up RapidIO peer-to-peer network %s\n", 1543 printk(KERN_INFO "Setting up RapidIO peer-to-peer network %s\n",
1197 dev->node->full_name); 1544 dev->dev.of_node->full_name);
1198 1545
1199 rc = fsl_rio_setup(dev); 1546 rc = fsl_rio_setup(dev);
1200 if (rc) 1547 if (rc)
@@ -1214,8 +1561,11 @@ static const struct of_device_id fsl_of_rio_rpn_ids[] = {
1214}; 1561};
1215 1562
1216static struct of_platform_driver fsl_of_rio_rpn_driver = { 1563static struct of_platform_driver fsl_of_rio_rpn_driver = {
1217 .name = "fsl-of-rio", 1564 .driver = {
1218 .match_table = fsl_of_rio_rpn_ids, 1565 .name = "fsl-of-rio",
1566 .owner = THIS_MODULE,
1567 .of_match_table = fsl_of_rio_rpn_ids,
1568 },
1219 .probe = fsl_of_rio_rpn_probe, 1569 .probe = fsl_of_rio_rpn_probe,
1220}; 1570};
1221 1571
diff --git a/arch/powerpc/sysdev/micropatch.c b/arch/powerpc/sysdev/micropatch.c
index d8d602840757..c0bb76ef7242 100644
--- a/arch/powerpc/sysdev/micropatch.c
+++ b/arch/powerpc/sysdev/micropatch.c
@@ -4,6 +4,7 @@
4 * also relocates SMC2, but this would require additional changes 4 * also relocates SMC2, but this would require additional changes
5 * to uart.c, so I am holding off on that for a moment. 5 * to uart.c, so I am holding off on that for a moment.
6 */ 6 */
7#include <linux/init.h>
7#include <linux/errno.h> 8#include <linux/errno.h>
8#include <linux/sched.h> 9#include <linux/sched.h>
9#include <linux/kernel.h> 10#include <linux/kernel.h>
@@ -16,6 +17,7 @@
16#include <asm/page.h> 17#include <asm/page.h>
17#include <asm/pgtable.h> 18#include <asm/pgtable.h>
18#include <asm/8xx_immap.h> 19#include <asm/8xx_immap.h>
20#include <asm/cpm.h>
19#include <asm/cpm1.h> 21#include <asm/cpm1.h>
20 22
21/* 23/*
@@ -24,7 +26,7 @@
24 26
25#ifdef CONFIG_I2C_SPI_UCODE_PATCH 27#ifdef CONFIG_I2C_SPI_UCODE_PATCH
26 28
27uint patch_2000[] = { 29static uint patch_2000[] __initdata = {
28 0x7FFFEFD9, 30 0x7FFFEFD9,
29 0x3FFD0000, 31 0x3FFD0000,
30 0x7FFB49F7, 32 0x7FFB49F7,
@@ -143,7 +145,7 @@ uint patch_2000[] = {
143 0x5F8247F8 145 0x5F8247F8
144}; 146};
145 147
146uint patch_2f00[] = { 148static uint patch_2f00[] __initdata = {
147 0x3E303430, 149 0x3E303430,
148 0x34343737, 150 0x34343737,
149 0xABF7BF9B, 151 0xABF7BF9B,
@@ -182,7 +184,7 @@ uint patch_2f00[] = {
182 184
183#ifdef CONFIG_I2C_SPI_SMC1_UCODE_PATCH 185#ifdef CONFIG_I2C_SPI_SMC1_UCODE_PATCH
184 186
185uint patch_2000[] = { 187static uint patch_2000[] __initdata = {
186 0x3fff0000, 188 0x3fff0000,
187 0x3ffd0000, 189 0x3ffd0000,
188 0x3ffb0000, 190 0x3ffb0000,
@@ -505,7 +507,7 @@ uint patch_2000[] = {
505 0x6079e2bb 507 0x6079e2bb
506}; 508};
507 509
508uint patch_2f00[] = { 510static uint patch_2f00[] __initdata = {
509 0x30303030, 511 0x30303030,
510 0x3e3e3434, 512 0x3e3e3434,
511 0xabbf9b99, 513 0xabbf9b99,
@@ -572,7 +574,7 @@ uint patch_2f00[] = {
572 0xf22f3f23 574 0xf22f3f23
573}; 575};
574 576
575uint patch_2e00[] = { 577static uint patch_2e00[] __initdata = {
576 0x27eeeeee, 578 0x27eeeeee,
577 0xeeeeeeee, 579 0xeeeeeeee,
578 0xeeeeeeee, 580 0xeeeeeeee,
@@ -598,7 +600,7 @@ uint patch_2e00[] = {
598 600
599#ifdef CONFIG_USB_SOF_UCODE_PATCH 601#ifdef CONFIG_USB_SOF_UCODE_PATCH
600 602
601uint patch_2000[] = { 603static uint patch_2000[] __initdata = {
602 0x7fff0000, 604 0x7fff0000,
603 0x7ffd0000, 605 0x7ffd0000,
604 0x7ffb0000, 606 0x7ffb0000,
@@ -613,21 +615,25 @@ uint patch_2000[] = {
613 0x60750000 615 0x60750000
614}; 616};
615 617
616uint patch_2f00[] = { 618static uint patch_2f00[] __initdata = {
617 0x3030304c, 619 0x3030304c,
618 0xcab9e441, 620 0xcab9e441,
619 0xa1aaf220 621 0xa1aaf220
620}; 622};
621#endif 623#endif
622 624
623void 625void __init cpm_load_patch(cpm8xx_t *cp)
624cpm_load_patch(cpm8xx_t *cp)
625{ 626{
626 volatile uint *dp; /* Dual-ported RAM. */ 627 volatile uint *dp; /* Dual-ported RAM. */
627 volatile cpm8xx_t *commproc; 628 volatile cpm8xx_t *commproc;
629#if defined(CONFIG_I2C_SPI_UCODE_PATCH) || \
630 defined(CONFIG_I2C_SPI_SMC1_UCODE_PATCH)
628 volatile iic_t *iip; 631 volatile iic_t *iip;
629 volatile spi_t *spp; 632 volatile struct spi_pram *spp;
633#ifdef CONFIG_I2C_SPI_SMC1_UCODE_PATCH
630 volatile smc_uart_t *smp; 634 volatile smc_uart_t *smp;
635#endif
636#endif
631 int i; 637 int i;
632 638
633 commproc = cp; 639 commproc = cp;
@@ -668,8 +674,8 @@ cpm_load_patch(cpm8xx_t *cp)
668 /* Put SPI above the IIC, also 32-byte aligned. 674 /* Put SPI above the IIC, also 32-byte aligned.
669 */ 675 */
670 i = (RPBASE + sizeof(iic_t) + 31) & ~31; 676 i = (RPBASE + sizeof(iic_t) + 31) & ~31;
671 spp = (spi_t *)&commproc->cp_dparam[PROFF_SPI]; 677 spp = (struct spi_pram *)&commproc->cp_dparam[PROFF_SPI];
672 spp->spi_rpbase = i; 678 spp->rpbase = i;
673 679
674# if defined(CONFIG_I2C_SPI_UCODE_PATCH) 680# if defined(CONFIG_I2C_SPI_UCODE_PATCH)
675 commproc->cp_cpmcr1 = 0x802a; 681 commproc->cp_cpmcr1 = 0x802a;
diff --git a/arch/powerpc/sysdev/mpc8xxx_gpio.c b/arch/powerpc/sysdev/mpc8xxx_gpio.c
index ee1c0e1cf4a7..83f519655fac 100644
--- a/arch/powerpc/sysdev/mpc8xxx_gpio.c
+++ b/arch/powerpc/sysdev/mpc8xxx_gpio.c
@@ -15,6 +15,8 @@
15#include <linux/of.h> 15#include <linux/of.h>
16#include <linux/of_gpio.h> 16#include <linux/of_gpio.h>
17#include <linux/gpio.h> 17#include <linux/gpio.h>
18#include <linux/slab.h>
19#include <linux/irq.h>
18 20
19#define MPC8XXX_GPIO_PINS 32 21#define MPC8XXX_GPIO_PINS 32
20 22
@@ -34,6 +36,7 @@ struct mpc8xxx_gpio_chip {
34 * open drain mode safely 36 * open drain mode safely
35 */ 37 */
36 u32 data; 38 u32 data;
39 struct irq_host *irq;
37}; 40};
38 41
39static inline u32 mpc8xxx_gpio2mask(unsigned int gpio) 42static inline u32 mpc8xxx_gpio2mask(unsigned int gpio)
@@ -127,12 +130,136 @@ static int mpc8xxx_gpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val
127 return 0; 130 return 0;
128} 131}
129 132
133static int mpc8xxx_gpio_to_irq(struct gpio_chip *gc, unsigned offset)
134{
135 struct of_mm_gpio_chip *mm = to_of_mm_gpio_chip(gc);
136 struct mpc8xxx_gpio_chip *mpc8xxx_gc = to_mpc8xxx_gpio_chip(mm);
137
138 if (mpc8xxx_gc->irq && offset < MPC8XXX_GPIO_PINS)
139 return irq_create_mapping(mpc8xxx_gc->irq, offset);
140 else
141 return -ENXIO;
142}
143
144static void mpc8xxx_gpio_irq_cascade(unsigned int irq, struct irq_desc *desc)
145{
146 struct mpc8xxx_gpio_chip *mpc8xxx_gc = get_irq_desc_data(desc);
147 struct of_mm_gpio_chip *mm = &mpc8xxx_gc->mm_gc;
148 unsigned int mask;
149
150 mask = in_be32(mm->regs + GPIO_IER) & in_be32(mm->regs + GPIO_IMR);
151 if (mask)
152 generic_handle_irq(irq_linear_revmap(mpc8xxx_gc->irq,
153 32 - ffs(mask)));
154}
155
156static void mpc8xxx_irq_unmask(unsigned int virq)
157{
158 struct mpc8xxx_gpio_chip *mpc8xxx_gc = get_irq_chip_data(virq);
159 struct of_mm_gpio_chip *mm = &mpc8xxx_gc->mm_gc;
160 unsigned long flags;
161
162 spin_lock_irqsave(&mpc8xxx_gc->lock, flags);
163
164 setbits32(mm->regs + GPIO_IMR, mpc8xxx_gpio2mask(virq_to_hw(virq)));
165
166 spin_unlock_irqrestore(&mpc8xxx_gc->lock, flags);
167}
168
169static void mpc8xxx_irq_mask(unsigned int virq)
170{
171 struct mpc8xxx_gpio_chip *mpc8xxx_gc = get_irq_chip_data(virq);
172 struct of_mm_gpio_chip *mm = &mpc8xxx_gc->mm_gc;
173 unsigned long flags;
174
175 spin_lock_irqsave(&mpc8xxx_gc->lock, flags);
176
177 clrbits32(mm->regs + GPIO_IMR, mpc8xxx_gpio2mask(virq_to_hw(virq)));
178
179 spin_unlock_irqrestore(&mpc8xxx_gc->lock, flags);
180}
181
182static void mpc8xxx_irq_ack(unsigned int virq)
183{
184 struct mpc8xxx_gpio_chip *mpc8xxx_gc = get_irq_chip_data(virq);
185 struct of_mm_gpio_chip *mm = &mpc8xxx_gc->mm_gc;
186
187 out_be32(mm->regs + GPIO_IER, mpc8xxx_gpio2mask(virq_to_hw(virq)));
188}
189
190static int mpc8xxx_irq_set_type(unsigned int virq, unsigned int flow_type)
191{
192 struct mpc8xxx_gpio_chip *mpc8xxx_gc = get_irq_chip_data(virq);
193 struct of_mm_gpio_chip *mm = &mpc8xxx_gc->mm_gc;
194 unsigned long flags;
195
196 switch (flow_type) {
197 case IRQ_TYPE_EDGE_FALLING:
198 spin_lock_irqsave(&mpc8xxx_gc->lock, flags);
199 setbits32(mm->regs + GPIO_ICR,
200 mpc8xxx_gpio2mask(virq_to_hw(virq)));
201 spin_unlock_irqrestore(&mpc8xxx_gc->lock, flags);
202 break;
203
204 case IRQ_TYPE_EDGE_BOTH:
205 spin_lock_irqsave(&mpc8xxx_gc->lock, flags);
206 clrbits32(mm->regs + GPIO_ICR,
207 mpc8xxx_gpio2mask(virq_to_hw(virq)));
208 spin_unlock_irqrestore(&mpc8xxx_gc->lock, flags);
209 break;
210
211 default:
212 return -EINVAL;
213 }
214
215 return 0;
216}
217
218static struct irq_chip mpc8xxx_irq_chip = {
219 .name = "mpc8xxx-gpio",
220 .unmask = mpc8xxx_irq_unmask,
221 .mask = mpc8xxx_irq_mask,
222 .ack = mpc8xxx_irq_ack,
223 .set_type = mpc8xxx_irq_set_type,
224};
225
226static int mpc8xxx_gpio_irq_map(struct irq_host *h, unsigned int virq,
227 irq_hw_number_t hw)
228{
229 set_irq_chip_data(virq, h->host_data);
230 set_irq_chip_and_handler(virq, &mpc8xxx_irq_chip, handle_level_irq);
231 set_irq_type(virq, IRQ_TYPE_NONE);
232
233 return 0;
234}
235
236static int mpc8xxx_gpio_irq_xlate(struct irq_host *h, struct device_node *ct,
237 const u32 *intspec, unsigned int intsize,
238 irq_hw_number_t *out_hwirq,
239 unsigned int *out_flags)
240
241{
242 /* interrupt sense values coming from the device tree equal either
243 * EDGE_FALLING or EDGE_BOTH
244 */
245 *out_hwirq = intspec[0];
246 *out_flags = intspec[1];
247
248 return 0;
249}
250
251static struct irq_host_ops mpc8xxx_gpio_irq_ops = {
252 .map = mpc8xxx_gpio_irq_map,
253 .xlate = mpc8xxx_gpio_irq_xlate,
254};
255
130static void __init mpc8xxx_add_controller(struct device_node *np) 256static void __init mpc8xxx_add_controller(struct device_node *np)
131{ 257{
132 struct mpc8xxx_gpio_chip *mpc8xxx_gc; 258 struct mpc8xxx_gpio_chip *mpc8xxx_gc;
133 struct of_mm_gpio_chip *mm_gc; 259 struct of_mm_gpio_chip *mm_gc;
134 struct of_gpio_chip *of_gc; 260 struct of_gpio_chip *of_gc;
135 struct gpio_chip *gc; 261 struct gpio_chip *gc;
262 unsigned hwirq;
136 int ret; 263 int ret;
137 264
138 mpc8xxx_gc = kzalloc(sizeof(*mpc8xxx_gc), GFP_KERNEL); 265 mpc8xxx_gc = kzalloc(sizeof(*mpc8xxx_gc), GFP_KERNEL);
@@ -157,11 +284,32 @@ static void __init mpc8xxx_add_controller(struct device_node *np)
157 else 284 else
158 gc->get = mpc8xxx_gpio_get; 285 gc->get = mpc8xxx_gpio_get;
159 gc->set = mpc8xxx_gpio_set; 286 gc->set = mpc8xxx_gpio_set;
287 gc->to_irq = mpc8xxx_gpio_to_irq;
160 288
161 ret = of_mm_gpiochip_add(np, mm_gc); 289 ret = of_mm_gpiochip_add(np, mm_gc);
162 if (ret) 290 if (ret)
163 goto err; 291 goto err;
164 292
293 hwirq = irq_of_parse_and_map(np, 0);
294 if (hwirq == NO_IRQ)
295 goto skip_irq;
296
297 mpc8xxx_gc->irq =
298 irq_alloc_host(np, IRQ_HOST_MAP_LINEAR, MPC8XXX_GPIO_PINS,
299 &mpc8xxx_gpio_irq_ops, MPC8XXX_GPIO_PINS);
300 if (!mpc8xxx_gc->irq)
301 goto skip_irq;
302
303 mpc8xxx_gc->irq->host_data = mpc8xxx_gc;
304
305 /* ack and mask all irqs */
306 out_be32(mm_gc->regs + GPIO_IER, 0xffffffff);
307 out_be32(mm_gc->regs + GPIO_IMR, 0);
308
309 set_irq_data(hwirq, mpc8xxx_gc);
310 set_irq_chained_handler(hwirq, mpc8xxx_gpio_irq_cascade);
311
312skip_irq:
165 return; 313 return;
166 314
167err: 315err:
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 339e8a3e26d2..20b73c025a45 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -26,6 +26,7 @@
26#include <linux/bootmem.h> 26#include <linux/bootmem.h>
27#include <linux/spinlock.h> 27#include <linux/spinlock.h>
28#include <linux/pci.h> 28#include <linux/pci.h>
29#include <linux/slab.h>
29 30
30#include <asm/ptrace.h> 31#include <asm/ptrace.h>
31#include <asm/signal.h> 32#include <asm/signal.h>
@@ -567,12 +568,12 @@ static void __init mpic_scan_ht_pics(struct mpic *mpic)
567#endif /* CONFIG_MPIC_U3_HT_IRQS */ 568#endif /* CONFIG_MPIC_U3_HT_IRQS */
568 569
569#ifdef CONFIG_SMP 570#ifdef CONFIG_SMP
570static int irq_choose_cpu(const cpumask_t *mask) 571static int irq_choose_cpu(const struct cpumask *mask)
571{ 572{
572 int cpuid; 573 int cpuid;
573 574
574 if (cpumask_equal(mask, cpu_all_mask)) { 575 if (cpumask_equal(mask, cpu_all_mask)) {
575 static int irq_rover; 576 static int irq_rover = 0;
576 static DEFINE_RAW_SPINLOCK(irq_rover_lock); 577 static DEFINE_RAW_SPINLOCK(irq_rover_lock);
577 unsigned long flags; 578 unsigned long flags;
578 579
@@ -580,15 +581,11 @@ static int irq_choose_cpu(const cpumask_t *mask)
580 do_round_robin: 581 do_round_robin:
581 raw_spin_lock_irqsave(&irq_rover_lock, flags); 582 raw_spin_lock_irqsave(&irq_rover_lock, flags);
582 583
583 while (!cpu_online(irq_rover)) { 584 irq_rover = cpumask_next(irq_rover, cpu_online_mask);
584 if (++irq_rover >= NR_CPUS) 585 if (irq_rover >= nr_cpu_ids)
585 irq_rover = 0; 586 irq_rover = cpumask_first(cpu_online_mask);
586 } 587
587 cpuid = irq_rover; 588 cpuid = irq_rover;
588 do {
589 if (++irq_rover >= NR_CPUS)
590 irq_rover = 0;
591 } while (!cpu_online(irq_rover));
592 589
593 raw_spin_unlock_irqrestore(&irq_rover_lock, flags); 590 raw_spin_unlock_irqrestore(&irq_rover_lock, flags);
594 } else { 591 } else {
@@ -600,7 +597,7 @@ static int irq_choose_cpu(const cpumask_t *mask)
600 return get_hard_smp_processor_id(cpuid); 597 return get_hard_smp_processor_id(cpuid);
601} 598}
602#else 599#else
603static int irq_choose_cpu(const cpumask_t *mask) 600static int irq_choose_cpu(const struct cpumask *mask)
604{ 601{
605 return hard_smp_processor_id(); 602 return hard_smp_processor_id();
606} 603}
@@ -813,12 +810,16 @@ int mpic_set_affinity(unsigned int irq, const struct cpumask *cpumask)
813 810
814 mpic_irq_write(src, MPIC_INFO(IRQ_DESTINATION), 1 << cpuid); 811 mpic_irq_write(src, MPIC_INFO(IRQ_DESTINATION), 1 << cpuid);
815 } else { 812 } else {
816 cpumask_t tmp; 813 cpumask_var_t tmp;
817 814
818 cpumask_and(&tmp, cpumask, cpu_online_mask); 815 alloc_cpumask_var(&tmp, GFP_KERNEL);
816
817 cpumask_and(tmp, cpumask, cpu_online_mask);
819 818
820 mpic_irq_write(src, MPIC_INFO(IRQ_DESTINATION), 819 mpic_irq_write(src, MPIC_INFO(IRQ_DESTINATION),
821 mpic_physmask(cpus_addr(tmp)[0])); 820 mpic_physmask(cpumask_bits(tmp)[0]));
821
822 free_cpumask_var(tmp);
822 } 823 }
823 824
824 return 0; 825 return 0;
@@ -1478,21 +1479,6 @@ void mpic_teardown_this_cpu(int secondary)
1478} 1479}
1479 1480
1480 1481
1481void mpic_send_ipi(unsigned int ipi_no, unsigned int cpu_mask)
1482{
1483 struct mpic *mpic = mpic_primary;
1484
1485 BUG_ON(mpic == NULL);
1486
1487#ifdef DEBUG_IPI
1488 DBG("%s: send_ipi(ipi_no: %d)\n", mpic->name, ipi_no);
1489#endif
1490
1491 mpic_cpu_write(MPIC_INFO(CPU_IPI_DISPATCH_0) +
1492 ipi_no * MPIC_INFO(CPU_IPI_DISPATCH_STRIDE),
1493 mpic_physmask(cpu_mask & cpus_addr(cpu_online_map)[0]));
1494}
1495
1496static unsigned int _mpic_get_one_irq(struct mpic *mpic, int reg) 1482static unsigned int _mpic_get_one_irq(struct mpic *mpic, int reg)
1497{ 1483{
1498 u32 src; 1484 u32 src;
@@ -1588,8 +1574,25 @@ void mpic_request_ipis(void)
1588 } 1574 }
1589} 1575}
1590 1576
1577static void mpic_send_ipi(unsigned int ipi_no, const struct cpumask *cpu_mask)
1578{
1579 struct mpic *mpic = mpic_primary;
1580
1581 BUG_ON(mpic == NULL);
1582
1583#ifdef DEBUG_IPI
1584 DBG("%s: send_ipi(ipi_no: %d)\n", mpic->name, ipi_no);
1585#endif
1586
1587 mpic_cpu_write(MPIC_INFO(CPU_IPI_DISPATCH_0) +
1588 ipi_no * MPIC_INFO(CPU_IPI_DISPATCH_STRIDE),
1589 mpic_physmask(cpumask_bits(cpu_mask)[0]));
1590}
1591
1591void smp_mpic_message_pass(int target, int msg) 1592void smp_mpic_message_pass(int target, int msg)
1592{ 1593{
1594 cpumask_var_t tmp;
1595
1593 /* make sure we're sending something that translates to an IPI */ 1596 /* make sure we're sending something that translates to an IPI */
1594 if ((unsigned int)msg > 3) { 1597 if ((unsigned int)msg > 3) {
1595 printk("SMP %d: smp_message_pass: unknown msg %d\n", 1598 printk("SMP %d: smp_message_pass: unknown msg %d\n",
@@ -1598,13 +1601,17 @@ void smp_mpic_message_pass(int target, int msg)
1598 } 1601 }
1599 switch (target) { 1602 switch (target) {
1600 case MSG_ALL: 1603 case MSG_ALL:
1601 mpic_send_ipi(msg, 0xffffffff); 1604 mpic_send_ipi(msg, cpu_online_mask);
1602 break; 1605 break;
1603 case MSG_ALL_BUT_SELF: 1606 case MSG_ALL_BUT_SELF:
1604 mpic_send_ipi(msg, 0xffffffff & ~(1 << smp_processor_id())); 1607 alloc_cpumask_var(&tmp, GFP_NOWAIT);
1608 cpumask_andnot(tmp, cpu_online_mask,
1609 cpumask_of(smp_processor_id()));
1610 mpic_send_ipi(msg, tmp);
1611 free_cpumask_var(tmp);
1605 break; 1612 break;
1606 default: 1613 default:
1607 mpic_send_ipi(msg, 1 << target); 1614 mpic_send_ipi(msg, cpumask_of(target));
1608 break; 1615 break;
1609 } 1616 }
1610} 1617}
@@ -1615,7 +1622,7 @@ int __init smp_mpic_probe(void)
1615 1622
1616 DBG("smp_mpic_probe()...\n"); 1623 DBG("smp_mpic_probe()...\n");
1617 1624
1618 nr_cpus = cpus_weight(cpu_possible_map); 1625 nr_cpus = cpumask_weight(cpu_possible_mask);
1619 1626
1620 DBG("nr_cpus: %d\n", nr_cpus); 1627 DBG("nr_cpus: %d\n", nr_cpus);
1621 1628
@@ -1659,7 +1666,7 @@ static int mpic_resume(struct sys_device *dev)
1659 mpic->save_data[i].dest); 1666 mpic->save_data[i].dest);
1660 1667
1661#ifdef CONFIG_MPIC_U3_HT_IRQS 1668#ifdef CONFIG_MPIC_U3_HT_IRQS
1662 { 1669 if (mpic->fixups) {
1663 struct mpic_irq_fixup *fixup = &mpic->fixups[i]; 1670 struct mpic_irq_fixup *fixup = &mpic->fixups[i];
1664 1671
1665 if (fixup->base) { 1672 if (fixup->base) {
diff --git a/arch/powerpc/sysdev/msi_bitmap.c b/arch/powerpc/sysdev/msi_bitmap.c
index 5a32cbef9b6c..5287e95cec3a 100644
--- a/arch/powerpc/sysdev/msi_bitmap.c
+++ b/arch/powerpc/sysdev/msi_bitmap.c
@@ -8,6 +8,7 @@
8 * 8 *
9 */ 9 */
10 10
11#include <linux/slab.h>
11#include <linux/kernel.h> 12#include <linux/kernel.h>
12#include <linux/bitmap.h> 13#include <linux/bitmap.h>
13#include <asm/msi_bitmap.h> 14#include <asm/msi_bitmap.h>
diff --git a/arch/powerpc/sysdev/mv64x60_pci.c b/arch/powerpc/sysdev/mv64x60_pci.c
index 1456015a22d8..198f288570cc 100644
--- a/arch/powerpc/sysdev/mv64x60_pci.c
+++ b/arch/powerpc/sysdev/mv64x60_pci.c
@@ -24,7 +24,7 @@
24#define MV64X60_VAL_LEN_MAX 11 24#define MV64X60_VAL_LEN_MAX 11
25#define MV64X60_PCICFG_CPCI_HOTSWAP 0x68 25#define MV64X60_PCICFG_CPCI_HOTSWAP 0x68
26 26
27static ssize_t mv64x60_hs_reg_read(struct kobject *kobj, 27static ssize_t mv64x60_hs_reg_read(struct file *filp, struct kobject *kobj,
28 struct bin_attribute *attr, char *buf, 28 struct bin_attribute *attr, char *buf,
29 loff_t off, size_t count) 29 loff_t off, size_t count)
30{ 30{
@@ -45,7 +45,7 @@ static ssize_t mv64x60_hs_reg_read(struct kobject *kobj,
45 return sprintf(buf, "0x%08x\n", v); 45 return sprintf(buf, "0x%08x\n", v);
46} 46}
47 47
48static ssize_t mv64x60_hs_reg_write(struct kobject *kobj, 48static ssize_t mv64x60_hs_reg_write(struct file *filp, struct kobject *kobj,
49 struct bin_attribute *attr, char *buf, 49 struct bin_attribute *attr, char *buf,
50 loff_t off, size_t count) 50 loff_t off, size_t count)
51{ 51{
diff --git a/arch/powerpc/sysdev/of_rtc.c b/arch/powerpc/sysdev/of_rtc.c
index 3d54450640c1..c9e803f3e267 100644
--- a/arch/powerpc/sysdev/of_rtc.c
+++ b/arch/powerpc/sysdev/of_rtc.c
@@ -12,6 +12,7 @@
12#include <linux/of.h> 12#include <linux/of.h>
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/of_platform.h> 14#include <linux/of_platform.h>
15#include <linux/slab.h>
15 16
16static __initdata struct { 17static __initdata struct {
17 const char *compatible; 18 const char *compatible;
diff --git a/arch/powerpc/sysdev/pmi.c b/arch/powerpc/sysdev/pmi.c
index aaa915998eb6..d07137a07d75 100644
--- a/arch/powerpc/sysdev/pmi.c
+++ b/arch/powerpc/sysdev/pmi.c
@@ -25,6 +25,7 @@
25 */ 25 */
26 26
27#include <linux/interrupt.h> 27#include <linux/interrupt.h>
28#include <linux/slab.h>
28#include <linux/completion.h> 29#include <linux/completion.h>
29#include <linux/spinlock.h> 30#include <linux/spinlock.h>
30#include <linux/workqueue.h> 31#include <linux/workqueue.h>
@@ -123,7 +124,7 @@ static void pmi_notify_handlers(struct work_struct *work)
123static int pmi_of_probe(struct of_device *dev, 124static int pmi_of_probe(struct of_device *dev,
124 const struct of_device_id *match) 125 const struct of_device_id *match)
125{ 126{
126 struct device_node *np = dev->node; 127 struct device_node *np = dev->dev.of_node;
127 int rc; 128 int rc;
128 129
129 if (data) { 130 if (data) {
@@ -205,11 +206,12 @@ static int pmi_of_remove(struct of_device *dev)
205} 206}
206 207
207static struct of_platform_driver pmi_of_platform_driver = { 208static struct of_platform_driver pmi_of_platform_driver = {
208 .match_table = pmi_match,
209 .probe = pmi_of_probe, 209 .probe = pmi_of_probe,
210 .remove = pmi_of_remove, 210 .remove = pmi_of_remove,
211 .driver = { 211 .driver = {
212 .name = "pmi", 212 .name = "pmi",
213 .owner = THIS_MODULE,
214 .of_match_table = pmi_match,
213 }, 215 },
214}; 216};
215 217
diff --git a/arch/powerpc/sysdev/ppc4xx_gpio.c b/arch/powerpc/sysdev/ppc4xx_gpio.c
index 110efe2a54fc..3812fc366bec 100644
--- a/arch/powerpc/sysdev/ppc4xx_gpio.c
+++ b/arch/powerpc/sysdev/ppc4xx_gpio.c
@@ -29,6 +29,7 @@
29#include <linux/of_gpio.h> 29#include <linux/of_gpio.h>
30#include <linux/gpio.h> 30#include <linux/gpio.h>
31#include <linux/types.h> 31#include <linux/types.h>
32#include <linux/slab.h>
32 33
33#define GPIO_MASK(gpio) (0x80000000 >> (gpio)) 34#define GPIO_MASK(gpio) (0x80000000 >> (gpio))
34#define GPIO_MASK2(gpio) (0xc0000000 >> ((gpio) * 2)) 35#define GPIO_MASK2(gpio) (0xc0000000 >> ((gpio) * 2))
diff --git a/arch/powerpc/sysdev/ppc4xx_pci.c b/arch/powerpc/sysdev/ppc4xx_pci.c
index 8aa33021e50b..156aa7d36258 100644
--- a/arch/powerpc/sysdev/ppc4xx_pci.c
+++ b/arch/powerpc/sysdev/ppc4xx_pci.c
@@ -24,6 +24,7 @@
24#include <linux/of.h> 24#include <linux/of.h>
25#include <linux/bootmem.h> 25#include <linux/bootmem.h>
26#include <linux/delay.h> 26#include <linux/delay.h>
27#include <linux/slab.h>
27 28
28#include <asm/io.h> 29#include <asm/io.h>
29#include <asm/pci-bridge.h> 30#include <asm/pci-bridge.h>
@@ -973,6 +974,123 @@ static struct ppc4xx_pciex_hwops ppc460ex_pcie_hwops __initdata =
973 .setup_utl = ppc460ex_pciex_init_utl, 974 .setup_utl = ppc460ex_pciex_init_utl,
974}; 975};
975 976
977static int __init ppc460sx_pciex_core_init(struct device_node *np)
978{
979 /* HSS drive amplitude */
980 mtdcri(SDR0, PESDR0_460SX_HSSL0DAMP, 0xB9843211);
981 mtdcri(SDR0, PESDR0_460SX_HSSL1DAMP, 0xB9843211);
982 mtdcri(SDR0, PESDR0_460SX_HSSL2DAMP, 0xB9843211);
983 mtdcri(SDR0, PESDR0_460SX_HSSL3DAMP, 0xB9843211);
984 mtdcri(SDR0, PESDR0_460SX_HSSL4DAMP, 0xB9843211);
985 mtdcri(SDR0, PESDR0_460SX_HSSL5DAMP, 0xB9843211);
986 mtdcri(SDR0, PESDR0_460SX_HSSL6DAMP, 0xB9843211);
987 mtdcri(SDR0, PESDR0_460SX_HSSL7DAMP, 0xB9843211);
988
989 mtdcri(SDR0, PESDR1_460SX_HSSL0DAMP, 0xB9843211);
990 mtdcri(SDR0, PESDR1_460SX_HSSL1DAMP, 0xB9843211);
991 mtdcri(SDR0, PESDR1_460SX_HSSL2DAMP, 0xB9843211);
992 mtdcri(SDR0, PESDR1_460SX_HSSL3DAMP, 0xB9843211);
993
994 mtdcri(SDR0, PESDR2_460SX_HSSL0DAMP, 0xB9843211);
995 mtdcri(SDR0, PESDR2_460SX_HSSL1DAMP, 0xB9843211);
996 mtdcri(SDR0, PESDR2_460SX_HSSL2DAMP, 0xB9843211);
997 mtdcri(SDR0, PESDR2_460SX_HSSL3DAMP, 0xB9843211);
998
999 /* HSS TX pre-emphasis */
1000 mtdcri(SDR0, PESDR0_460SX_HSSL0COEFA, 0xDCB98987);
1001 mtdcri(SDR0, PESDR0_460SX_HSSL1COEFA, 0xDCB98987);
1002 mtdcri(SDR0, PESDR0_460SX_HSSL2COEFA, 0xDCB98987);
1003 mtdcri(SDR0, PESDR0_460SX_HSSL3COEFA, 0xDCB98987);
1004 mtdcri(SDR0, PESDR0_460SX_HSSL4COEFA, 0xDCB98987);
1005 mtdcri(SDR0, PESDR0_460SX_HSSL5COEFA, 0xDCB98987);
1006 mtdcri(SDR0, PESDR0_460SX_HSSL6COEFA, 0xDCB98987);
1007 mtdcri(SDR0, PESDR0_460SX_HSSL7COEFA, 0xDCB98987);
1008
1009 mtdcri(SDR0, PESDR1_460SX_HSSL0COEFA, 0xDCB98987);
1010 mtdcri(SDR0, PESDR1_460SX_HSSL1COEFA, 0xDCB98987);
1011 mtdcri(SDR0, PESDR1_460SX_HSSL2COEFA, 0xDCB98987);
1012 mtdcri(SDR0, PESDR1_460SX_HSSL3COEFA, 0xDCB98987);
1013
1014 mtdcri(SDR0, PESDR2_460SX_HSSL0COEFA, 0xDCB98987);
1015 mtdcri(SDR0, PESDR2_460SX_HSSL1COEFA, 0xDCB98987);
1016 mtdcri(SDR0, PESDR2_460SX_HSSL2COEFA, 0xDCB98987);
1017 mtdcri(SDR0, PESDR2_460SX_HSSL3COEFA, 0xDCB98987);
1018
1019 /* HSS TX calibration control */
1020 mtdcri(SDR0, PESDR0_460SX_HSSL1CALDRV, 0x22222222);
1021 mtdcri(SDR0, PESDR1_460SX_HSSL1CALDRV, 0x22220000);
1022 mtdcri(SDR0, PESDR2_460SX_HSSL1CALDRV, 0x22220000);
1023
1024 /* HSS TX slew control */
1025 mtdcri(SDR0, PESDR0_460SX_HSSSLEW, 0xFFFFFFFF);
1026 mtdcri(SDR0, PESDR1_460SX_HSSSLEW, 0xFFFF0000);
1027 mtdcri(SDR0, PESDR2_460SX_HSSSLEW, 0xFFFF0000);
1028
1029 udelay(100);
1030
1031 /* De-assert PLLRESET */
1032 dcri_clrset(SDR0, PESDR0_PLLLCT2, 0x00000100, 0);
1033
1034 /* Reset DL, UTL, GPL before configuration */
1035 mtdcri(SDR0, PESDR0_460SX_RCSSET,
1036 PESDRx_RCSSET_RSTDL | PESDRx_RCSSET_RSTGU);
1037 mtdcri(SDR0, PESDR1_460SX_RCSSET,
1038 PESDRx_RCSSET_RSTDL | PESDRx_RCSSET_RSTGU);
1039 mtdcri(SDR0, PESDR2_460SX_RCSSET,
1040 PESDRx_RCSSET_RSTDL | PESDRx_RCSSET_RSTGU);
1041
1042 udelay(100);
1043
1044 /*
1045 * If bifurcation is not enabled, u-boot would have disabled the
1046 * third PCIe port
1047 */
1048 if (((mfdcri(SDR0, PESDR1_460SX_HSSCTLSET) & 0x00000001) ==
1049 0x00000001)) {
1050 printk(KERN_INFO "PCI: PCIE bifurcation setup successfully.\n");
1051 printk(KERN_INFO "PCI: Total 3 PCIE ports are present\n");
1052 return 3;
1053 }
1054
1055 printk(KERN_INFO "PCI: Total 2 PCIE ports are present\n");
1056 return 2;
1057}
1058
1059static int ppc460sx_pciex_init_port_hw(struct ppc4xx_pciex_port *port)
1060{
1061
1062 if (port->endpoint)
1063 dcri_clrset(SDR0, port->sdr_base + PESDRn_UTLSET2,
1064 0x01000000, 0);
1065 else
1066 dcri_clrset(SDR0, port->sdr_base + PESDRn_UTLSET2,
1067 0, 0x01000000);
1068
1069 /*Gen-1*/
1070 mtdcri(SDR0, port->sdr_base + PESDRn_460SX_RCEI, 0x08000000);
1071
1072 dcri_clrset(SDR0, port->sdr_base + PESDRn_RCSSET,
1073 (PESDRx_RCSSET_RSTGU | PESDRx_RCSSET_RSTDL),
1074 PESDRx_RCSSET_RSTPYN);
1075
1076 port->has_ibpre = 1;
1077
1078 return 0;
1079}
1080
1081static int ppc460sx_pciex_init_utl(struct ppc4xx_pciex_port *port)
1082{
1083 /* Max 128 Bytes */
1084 out_be32 (port->utl_base + PEUTL_PBBSZ, 0x00000000);
1085 return 0;
1086}
1087
1088static struct ppc4xx_pciex_hwops ppc460sx_pcie_hwops __initdata = {
1089 .core_init = ppc460sx_pciex_core_init,
1090 .port_init_hw = ppc460sx_pciex_init_port_hw,
1091 .setup_utl = ppc460sx_pciex_init_utl,
1092};
1093
976#endif /* CONFIG_44x */ 1094#endif /* CONFIG_44x */
977 1095
978#ifdef CONFIG_40x 1096#ifdef CONFIG_40x
@@ -1088,6 +1206,8 @@ static int __init ppc4xx_pciex_check_core_init(struct device_node *np)
1088 } 1206 }
1089 if (of_device_is_compatible(np, "ibm,plb-pciex-460ex")) 1207 if (of_device_is_compatible(np, "ibm,plb-pciex-460ex"))
1090 ppc4xx_pciex_hwops = &ppc460ex_pcie_hwops; 1208 ppc4xx_pciex_hwops = &ppc460ex_pcie_hwops;
1209 if (of_device_is_compatible(np, "ibm,plb-pciex-460sx"))
1210 ppc4xx_pciex_hwops = &ppc460sx_pcie_hwops;
1091#endif /* CONFIG_44x */ 1211#endif /* CONFIG_44x */
1092#ifdef CONFIG_40x 1212#ifdef CONFIG_40x
1093 if (of_device_is_compatible(np, "ibm,plb-pciex-405ex")) 1213 if (of_device_is_compatible(np, "ibm,plb-pciex-405ex"))
diff --git a/arch/powerpc/sysdev/ppc4xx_pci.h b/arch/powerpc/sysdev/ppc4xx_pci.h
index d04e40b306fb..56d9e5deccbf 100644
--- a/arch/powerpc/sysdev/ppc4xx_pci.h
+++ b/arch/powerpc/sysdev/ppc4xx_pci.h
@@ -324,6 +324,64 @@
324#define PESDR0_460EX_IHS2 0x036D 324#define PESDR0_460EX_IHS2 0x036D
325 325
326/* 326/*
327 * 460SX addtional DCRs
328 */
329#define PESDRn_460SX_RCEI 0x02
330
331#define PESDR0_460SX_HSSL0DAMP 0x320
332#define PESDR0_460SX_HSSL1DAMP 0x321
333#define PESDR0_460SX_HSSL2DAMP 0x322
334#define PESDR0_460SX_HSSL3DAMP 0x323
335#define PESDR0_460SX_HSSL4DAMP 0x324
336#define PESDR0_460SX_HSSL5DAMP 0x325
337#define PESDR0_460SX_HSSL6DAMP 0x326
338#define PESDR0_460SX_HSSL7DAMP 0x327
339
340#define PESDR1_460SX_HSSL0DAMP 0x354
341#define PESDR1_460SX_HSSL1DAMP 0x355
342#define PESDR1_460SX_HSSL2DAMP 0x356
343#define PESDR1_460SX_HSSL3DAMP 0x357
344
345#define PESDR2_460SX_HSSL0DAMP 0x384
346#define PESDR2_460SX_HSSL1DAMP 0x385
347#define PESDR2_460SX_HSSL2DAMP 0x386
348#define PESDR2_460SX_HSSL3DAMP 0x387
349
350#define PESDR0_460SX_HSSL0COEFA 0x328
351#define PESDR0_460SX_HSSL1COEFA 0x329
352#define PESDR0_460SX_HSSL2COEFA 0x32A
353#define PESDR0_460SX_HSSL3COEFA 0x32B
354#define PESDR0_460SX_HSSL4COEFA 0x32C
355#define PESDR0_460SX_HSSL5COEFA 0x32D
356#define PESDR0_460SX_HSSL6COEFA 0x32E
357#define PESDR0_460SX_HSSL7COEFA 0x32F
358
359#define PESDR1_460SX_HSSL0COEFA 0x358
360#define PESDR1_460SX_HSSL1COEFA 0x359
361#define PESDR1_460SX_HSSL2COEFA 0x35A
362#define PESDR1_460SX_HSSL3COEFA 0x35B
363
364#define PESDR2_460SX_HSSL0COEFA 0x388
365#define PESDR2_460SX_HSSL1COEFA 0x389
366#define PESDR2_460SX_HSSL2COEFA 0x38A
367#define PESDR2_460SX_HSSL3COEFA 0x38B
368
369#define PESDR0_460SX_HSSL1CALDRV 0x339
370#define PESDR1_460SX_HSSL1CALDRV 0x361
371#define PESDR2_460SX_HSSL1CALDRV 0x391
372
373#define PESDR0_460SX_HSSSLEW 0x338
374#define PESDR1_460SX_HSSSLEW 0x360
375#define PESDR2_460SX_HSSSLEW 0x390
376
377#define PESDR0_460SX_HSSCTLSET 0x31E
378#define PESDR1_460SX_HSSCTLSET 0x352
379#define PESDR2_460SX_HSSCTLSET 0x382
380
381#define PESDR0_460SX_RCSSET 0x304
382#define PESDR1_460SX_RCSSET 0x344
383#define PESDR2_460SX_RCSSET 0x374
384/*
327 * Of the above, some are common offsets from the base 385 * Of the above, some are common offsets from the base
328 */ 386 */
329#define PESDRn_UTLSET1 0x00 387#define PESDRn_UTLSET1 0x00
diff --git a/arch/powerpc/sysdev/ppc4xx_soc.c b/arch/powerpc/sysdev/ppc4xx_soc.c
index 5c014350bf16..d3d6ce3c33b4 100644
--- a/arch/powerpc/sysdev/ppc4xx_soc.c
+++ b/arch/powerpc/sysdev/ppc4xx_soc.c
@@ -191,11 +191,31 @@ static int __init ppc4xx_l2c_probe(void)
191arch_initcall(ppc4xx_l2c_probe); 191arch_initcall(ppc4xx_l2c_probe);
192 192
193/* 193/*
194 * At present, this routine just applies a system reset. 194 * Apply a system reset. Alternatively a board specific value may be
195 * provided via the "reset-type" property in the cpu node.
195 */ 196 */
196void ppc4xx_reset_system(char *cmd) 197void ppc4xx_reset_system(char *cmd)
197{ 198{
198 mtspr(SPRN_DBCR0, mfspr(SPRN_DBCR0) | DBCR0_RST_SYSTEM); 199 struct device_node *np;
200 u32 reset_type = DBCR0_RST_SYSTEM;
201 const u32 *prop;
202
203 np = of_find_node_by_type(NULL, "cpu");
204 if (np) {
205 prop = of_get_property(np, "reset-type", NULL);
206
207 /*
208 * Check if property exists and if it is in range:
209 * 1 - PPC4xx core reset
210 * 2 - PPC4xx chip reset
211 * 3 - PPC4xx system reset (default)
212 */
213 if ((prop) && ((prop[0] >= 1) && (prop[0] <= 3)))
214 reset_type = prop[0] << 28;
215 }
216
217 mtspr(SPRN_DBCR0, mfspr(SPRN_DBCR0) | reset_type);
218
199 while (1) 219 while (1)
200 ; /* Just in case the reset doesn't work */ 220 ; /* Just in case the reset doesn't work */
201} 221}
diff --git a/arch/powerpc/sysdev/qe_lib/gpio.c b/arch/powerpc/sysdev/qe_lib/gpio.c
index 8e7a7767dd5c..dc8f8d618074 100644
--- a/arch/powerpc/sysdev/qe_lib/gpio.c
+++ b/arch/powerpc/sysdev/qe_lib/gpio.c
@@ -19,6 +19,7 @@
19#include <linux/of.h> 19#include <linux/of.h>
20#include <linux/of_gpio.h> 20#include <linux/of_gpio.h>
21#include <linux/gpio.h> 21#include <linux/gpio.h>
22#include <linux/slab.h>
22#include <asm/qe.h> 23#include <asm/qe.h>
23 24
24struct qe_gpio_chip { 25struct qe_gpio_chip {
diff --git a/arch/powerpc/sysdev/qe_lib/qe.c b/arch/powerpc/sysdev/qe_lib/qe.c
index 149393c02c3f..093e0ae1a941 100644
--- a/arch/powerpc/sysdev/qe_lib/qe.c
+++ b/arch/powerpc/sysdev/qe_lib/qe.c
@@ -669,8 +669,11 @@ static const struct of_device_id qe_ids[] = {
669}; 669};
670 670
671static struct of_platform_driver qe_driver = { 671static struct of_platform_driver qe_driver = {
672 .driver.name = "fsl-qe", 672 .driver = {
673 .match_table = qe_ids, 673 .name = "fsl-qe",
674 .owner = THIS_MODULE,
675 .of_match_table = qe_ids,
676 },
674 .probe = qe_probe, 677 .probe = qe_probe,
675 .resume = qe_resume, 678 .resume = qe_resume,
676}; 679};
diff --git a/arch/powerpc/sysdev/qe_lib/ucc.c b/arch/powerpc/sysdev/qe_lib/ucc.c
index ebb442ea1917..fa589b21dbcd 100644
--- a/arch/powerpc/sysdev/qe_lib/ucc.c
+++ b/arch/powerpc/sysdev/qe_lib/ucc.c
@@ -16,7 +16,6 @@
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/errno.h> 18#include <linux/errno.h>
19#include <linux/slab.h>
20#include <linux/stddef.h> 19#include <linux/stddef.h>
21#include <linux/spinlock.h> 20#include <linux/spinlock.h>
22#include <linux/module.h> 21#include <linux/module.h>
diff --git a/arch/powerpc/sysdev/simple_gpio.c b/arch/powerpc/sysdev/simple_gpio.c
index 43c4569e24b7..d5fb173e588c 100644
--- a/arch/powerpc/sysdev/simple_gpio.c
+++ b/arch/powerpc/sysdev/simple_gpio.c
@@ -21,6 +21,7 @@
21#include <linux/of.h> 21#include <linux/of.h>
22#include <linux/of_gpio.h> 22#include <linux/of_gpio.h>
23#include <linux/gpio.h> 23#include <linux/gpio.h>
24#include <linux/slab.h>
24#include <asm/prom.h> 25#include <asm/prom.h>
25#include "simple_gpio.h" 26#include "simple_gpio.h"
26 27
diff --git a/arch/powerpc/sysdev/tsi108_pci.c b/arch/powerpc/sysdev/tsi108_pci.c
index 595034cfb85a..0ab9281e49ae 100644
--- a/arch/powerpc/sysdev/tsi108_pci.c
+++ b/arch/powerpc/sysdev/tsi108_pci.c
@@ -24,7 +24,6 @@
24#include <linux/kernel.h> 24#include <linux/kernel.h>
25#include <linux/init.h> 25#include <linux/init.h>
26#include <linux/pci.h> 26#include <linux/pci.h>
27#include <linux/slab.h>
28#include <linux/irq.h> 27#include <linux/irq.h>
29#include <linux/interrupt.h> 28#include <linux/interrupt.h>
30 29