aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/Kconfig14
-rw-r--r--arch/powerpc/Makefile15
-rw-r--r--arch/powerpc/boot/Makefile8
-rw-r--r--arch/powerpc/boot/dts/canyonlands.dts8
-rw-r--r--arch/powerpc/boot/dts/glacier.dts8
-rw-r--r--arch/powerpc/boot/dts/haleakala.dts4
-rw-r--r--arch/powerpc/boot/dts/katmai.dts2
-rw-r--r--arch/powerpc/boot/dts/kilauea.dts8
-rw-r--r--arch/powerpc/boot/dts/ksi8560.dts20
-rw-r--r--arch/powerpc/boot/dts/makalu.dts8
-rw-r--r--arch/powerpc/boot/dts/mpc8272ads.dts32
-rw-r--r--arch/powerpc/boot/dts/mpc8313erdb.dts15
-rw-r--r--arch/powerpc/boot/dts/mpc8315erdb.dts15
-rw-r--r--arch/powerpc/boot/dts/mpc832x_mds.dts15
-rw-r--r--arch/powerpc/boot/dts/mpc832x_rdb.dts15
-rw-r--r--arch/powerpc/boot/dts/mpc8349emitx.dts12
-rw-r--r--arch/powerpc/boot/dts/mpc8349emitxgp.dts12
-rw-r--r--arch/powerpc/boot/dts/mpc834x_mds.dts15
-rw-r--r--arch/powerpc/boot/dts/mpc836x_mds.dts13
-rw-r--r--arch/powerpc/boot/dts/mpc8377_mds.dts13
-rw-r--r--arch/powerpc/boot/dts/mpc8377_rdb.dts14
-rw-r--r--arch/powerpc/boot/dts/mpc8378_mds.dts13
-rw-r--r--arch/powerpc/boot/dts/mpc8378_rdb.dts14
-rw-r--r--arch/powerpc/boot/dts/mpc8379_mds.dts13
-rw-r--r--arch/powerpc/boot/dts/mpc8379_rdb.dts14
-rw-r--r--arch/powerpc/boot/dts/mpc8536ds.dts432
-rw-r--r--arch/powerpc/boot/dts/mpc8541cds.dts11
-rw-r--r--arch/powerpc/boot/dts/mpc8544ds.dts11
-rw-r--r--arch/powerpc/boot/dts/mpc8548cds.dts11
-rw-r--r--arch/powerpc/boot/dts/mpc8555cds.dts11
-rw-r--r--arch/powerpc/boot/dts/mpc8568mds.dts14
-rw-r--r--arch/powerpc/boot/dts/mpc8572ds.dts12
-rw-r--r--arch/powerpc/boot/dts/mpc8610_hpcd.dts2
-rw-r--r--arch/powerpc/boot/dts/mpc866ads.dts11
-rw-r--r--arch/powerpc/boot/dts/mpc885ads.dts11
-rw-r--r--arch/powerpc/boot/dts/rainier.dts4
-rw-r--r--arch/powerpc/boot/dts/sbc8349.dts14
-rw-r--r--arch/powerpc/boot/dts/sbc8548.dts11
-rw-r--r--arch/powerpc/boot/dts/sequoia.dts4
-rw-r--r--arch/powerpc/boot/dts/taishan.dts8
-rw-r--r--arch/powerpc/boot/dts/tqm8541.dts11
-rw-r--r--arch/powerpc/boot/dts/tqm8548.dts5
-rw-r--r--arch/powerpc/boot/dts/tqm8555.dts11
-rw-r--r--arch/powerpc/boot/dts/virtex440-ml507.dts296
-rw-r--r--arch/powerpc/boot/simpleboot.c6
-rw-r--r--arch/powerpc/boot/virtex.c100
-rwxr-xr-xarch/powerpc/boot/wrapper10
-rw-r--r--arch/powerpc/configs/44x/virtex5_defconfig1107
-rw-r--r--arch/powerpc/configs/85xx/tqm8548_defconfig143
-rw-r--r--arch/powerpc/configs/mpc8536_ds_defconfig1637
-rw-r--r--arch/powerpc/configs/ppc44x_defconfig149
-rw-r--r--arch/powerpc/kernel/align.c6
-rw-r--r--arch/powerpc/kernel/cputable.c10
-rw-r--r--arch/powerpc/kernel/dma_64.c45
-rw-r--r--arch/powerpc/kernel/head_44x.S286
-rw-r--r--arch/powerpc/kernel/head_booke.h8
-rw-r--r--arch/powerpc/kernel/ibmebus.c16
-rw-r--r--arch/powerpc/kernel/iommu.c16
-rw-r--r--arch/powerpc/kernel/legacy_serial.c10
-rw-r--r--arch/powerpc/kernel/of_platform.c2
-rw-r--r--arch/powerpc/kernel/process.c14
-rw-r--r--arch/powerpc/kernel/signal_32.c39
-rw-r--r--arch/powerpc/kernel/signal_64.c36
-rw-r--r--arch/powerpc/kernel/syscalls.c3
-rw-r--r--arch/powerpc/kernel/time.c4
-rw-r--r--arch/powerpc/mm/44x_mmu.c29
-rw-r--r--arch/powerpc/mm/fault.c3
-rw-r--r--arch/powerpc/mm/init_32.c4
-rw-r--r--arch/powerpc/mm/mem.c8
-rw-r--r--arch/powerpc/mm/mmu_decl.h4
-rw-r--r--arch/powerpc/platforms/44x/Kconfig26
-rw-r--r--arch/powerpc/platforms/44x/Makefile1
-rw-r--r--arch/powerpc/platforms/44x/virtex.c60
-rw-r--r--arch/powerpc/platforms/44x/warp-nand.c9
-rw-r--r--arch/powerpc/platforms/52xx/lite5200_pm.c14
-rw-r--r--arch/powerpc/platforms/82xx/Kconfig11
-rw-r--r--arch/powerpc/platforms/82xx/mpc8272_ads.c4
-rw-r--r--arch/powerpc/platforms/82xx/pq2ads-pci-pic.c2
-rw-r--r--arch/powerpc/platforms/83xx/Kconfig10
-rw-r--r--arch/powerpc/platforms/85xx/Kconfig6
-rw-r--r--arch/powerpc/platforms/85xx/Makefile1
-rw-r--r--arch/powerpc/platforms/85xx/mpc8536_ds.c125
-rw-r--r--arch/powerpc/platforms/85xx/mpc85xx_cds.c14
-rw-r--r--arch/powerpc/platforms/85xx/mpc85xx_ds.c8
-rw-r--r--arch/powerpc/platforms/86xx/Kconfig16
-rw-r--r--arch/powerpc/platforms/86xx/Makefile1
-rw-r--r--arch/powerpc/platforms/86xx/mpc8610_hpcd.c26
-rw-r--r--arch/powerpc/platforms/86xx/mpc86xx.h3
-rw-r--r--arch/powerpc/platforms/86xx/mpc86xx_hpcn.c64
-rw-r--r--arch/powerpc/platforms/86xx/pic.c78
-rw-r--r--arch/powerpc/platforms/86xx/sbc8641d.c25
-rw-r--r--arch/powerpc/platforms/8xx/mpc86xads_setup.c4
-rw-r--r--arch/powerpc/platforms/8xx/mpc885ads_setup.c3
-rw-r--r--arch/powerpc/platforms/Kconfig33
-rw-r--r--arch/powerpc/platforms/cell/iommu.c8
-rw-r--r--arch/powerpc/platforms/cell/spufs/context.c12
-rw-r--r--arch/powerpc/platforms/cell/spufs/file.c121
-rw-r--r--arch/powerpc/platforms/cell/spufs/inode.c47
-rw-r--r--arch/powerpc/platforms/cell/spufs/sched.c9
-rw-r--r--arch/powerpc/platforms/cell/spufs/spufs.h19
-rw-r--r--arch/powerpc/platforms/iseries/iommu.c4
-rw-r--r--arch/powerpc/platforms/ps3/system-bus.c38
-rw-r--r--arch/powerpc/platforms/pseries/eeh.c14
-rw-r--r--arch/powerpc/platforms/pseries/lpar.c3
-rw-r--r--arch/powerpc/sysdev/cpm_common.c3
-rw-r--r--arch/powerpc/sysdev/fsl_pci.c2
106 files changed, 4998 insertions, 731 deletions
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index f2a0f50146e1..aaf99892d1b3 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -110,6 +110,7 @@ config PPC
110 select HAVE_KPROBES 110 select HAVE_KPROBES
111 select HAVE_KRETPROBES 111 select HAVE_KRETPROBES
112 select HAVE_LMB 112 select HAVE_LMB
113 select HAVE_DMA_ATTRS
113 114
114config EARLY_PRINTK 115config EARLY_PRINTK
115 bool 116 bool
@@ -458,6 +459,19 @@ config CMDLINE
458 some command-line options at build time by entering them here. In 459 some command-line options at build time by entering them here. In
459 most cases you will need to specify the root device here. 460 most cases you will need to specify the root device here.
460 461
462config EXTRA_TARGETS
463 string "Additional default image types"
464 help
465 List additional targets to be built by the bootwrapper here (separated
466 by spaces). This is useful for targets that depend of device tree
467 files in the .dts directory.
468
469 Targets in this list will be build as part of the default build
470 target, or when the user does a 'make zImage' or a
471 'make zImage.initrd'.
472
473 If unsure, leave blank
474
461if !44x || BROKEN 475if !44x || BROKEN
462config ARCH_WANTS_FREEZER_CONTROL 476config ARCH_WANTS_FREEZER_CONTROL
463 def_bool y 477 def_bool y
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 59ae7d9cdccf..9155c9312c1e 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -163,12 +163,25 @@ bootwrapper_install %.dtb:
163 $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) 163 $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
164 164
165define archhelp 165define archhelp
166 @echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage.*)' 166 @echo '* zImage - Build default images selected by kernel config'
167 @echo ' zImage.* - Compressed kernel image (arch/$(ARCH)/boot/zImage.*)'
168 @echo ' uImage - U-Boot native image format'
169 @echo ' cuImage.<dt> - Backwards compatible U-Boot image for older'
170 @echo ' versions which do not support device trees'
171 @echo ' dtbImage.<dt> - zImage with an embedded device tree blob'
172 @echo ' simpleImage.<dt> - Firmware independent image.'
173 @echo ' treeImage.<dt> - Support for older IBM 4xx firmware (not U-Boot)'
167 @echo ' install - Install kernel using' 174 @echo ' install - Install kernel using'
168 @echo ' (your) ~/bin/installkernel or' 175 @echo ' (your) ~/bin/installkernel or'
169 @echo ' (distribution) /sbin/installkernel or' 176 @echo ' (distribution) /sbin/installkernel or'
170 @echo ' install to $$(INSTALL_PATH) and run lilo' 177 @echo ' install to $$(INSTALL_PATH) and run lilo'
171 @echo ' *_defconfig - Select default config from arch/$(ARCH)/configs' 178 @echo ' *_defconfig - Select default config from arch/$(ARCH)/configs'
179 @echo ''
180 @echo ' Targets with <dt> embed a device tree blob inside the image'
181 @echo ' These targets support board with firmware that does not'
182 @echo ' support passing a device tree directly. Replace <dt> with the'
183 @echo ' name of a dts file from the arch/$(ARCH)/boot/dts/ directory'
184 @echo ' (minus the .dts extension).'
172endef 185endef
173 186
174install: 187install:
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 751a6e6070d2..19f83c8f219d 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -68,7 +68,7 @@ src-plat := of.c cuboot-52xx.c cuboot-824x.c cuboot-83xx.c cuboot-85xx.c holly.c
68 fixed-head.S ep88xc.c ep405.c cuboot-c2k.c \ 68 fixed-head.S ep88xc.c ep405.c cuboot-c2k.c \
69 cuboot-katmai.c cuboot-rainier.c redboot-8xx.c ep8248e.c \ 69 cuboot-katmai.c cuboot-rainier.c redboot-8xx.c ep8248e.c \
70 cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c simpleboot.c \ 70 cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c simpleboot.c \
71 virtex405-head.S redboot-83xx.c cuboot-sam440ep.c 71 virtex405-head.S virtex.c redboot-83xx.c cuboot-sam440ep.c
72src-boot := $(src-wlib) $(src-plat) empty.c 72src-boot := $(src-wlib) $(src-plat) empty.c
73 73
74src-boot := $(addprefix $(obj)/, $(src-boot)) 74src-boot := $(addprefix $(obj)/, $(src-boot))
@@ -276,10 +276,14 @@ ifeq ($(CONFIG_PPC32),y)
276image-$(CONFIG_PPC_PMAC) += zImage.coff zImage.miboot 276image-$(CONFIG_PPC_PMAC) += zImage.coff zImage.miboot
277endif 277endif
278 278
279# Allow extra targets to be added to the defconfig
280image-y += $(subst ",,$(CONFIG_EXTRA_TARGETS))
281
279initrd- := $(patsubst zImage%, zImage.initrd%, $(image-n) $(image-)) 282initrd- := $(patsubst zImage%, zImage.initrd%, $(image-n) $(image-))
280initrd-y := $(patsubst zImage%, zImage.initrd%, \ 283initrd-y := $(patsubst zImage%, zImage.initrd%, \
281 $(patsubst dtbImage%, dtbImage.initrd%, \ 284 $(patsubst dtbImage%, dtbImage.initrd%, \
282 $(patsubst treeImage%, treeImage.initrd%, $(image-y)))) 285 $(patsubst simpleImage%, simpleImage.initrd%, \
286 $(patsubst treeImage%, treeImage.initrd%, $(image-y)))))
283initrd-y := $(filter-out $(image-y), $(initrd-y)) 287initrd-y := $(filter-out $(image-y), $(initrd-y))
284targets += $(image-y) $(initrd-y) 288targets += $(image-y) $(initrd-y)
285 289
diff --git a/arch/powerpc/boot/dts/canyonlands.dts b/arch/powerpc/boot/dts/canyonlands.dts
index f9fe03252150..79fe412c11c9 100644
--- a/arch/powerpc/boot/dts/canyonlands.dts
+++ b/arch/powerpc/boot/dts/canyonlands.dts
@@ -266,7 +266,7 @@
266 266
267 EMAC0: ethernet@ef600e00 { 267 EMAC0: ethernet@ef600e00 {
268 device_type = "network"; 268 device_type = "network";
269 compatible = "ibm,emac-460ex", "ibm,emac4"; 269 compatible = "ibm,emac-460ex", "ibm,emac4sync";
270 interrupt-parent = <&EMAC0>; 270 interrupt-parent = <&EMAC0>;
271 interrupts = <0x0 0x1>; 271 interrupts = <0x0 0x1>;
272 #interrupt-cells = <1>; 272 #interrupt-cells = <1>;
@@ -274,7 +274,7 @@
274 #size-cells = <0>; 274 #size-cells = <0>;
275 interrupt-map = </*Status*/ 0x0 &UIC2 0x10 0x4 275 interrupt-map = </*Status*/ 0x0 &UIC2 0x10 0x4
276 /*Wake*/ 0x1 &UIC2 0x14 0x4>; 276 /*Wake*/ 0x1 &UIC2 0x14 0x4>;
277 reg = <0xef600e00 0x00000070>; 277 reg = <0xef600e00 0x000000c4>;
278 local-mac-address = [000000000000]; /* Filled in by U-Boot */ 278 local-mac-address = [000000000000]; /* Filled in by U-Boot */
279 mal-device = <&MAL0>; 279 mal-device = <&MAL0>;
280 mal-tx-channel = <0>; 280 mal-tx-channel = <0>;
@@ -295,7 +295,7 @@
295 295
296 EMAC1: ethernet@ef600f00 { 296 EMAC1: ethernet@ef600f00 {
297 device_type = "network"; 297 device_type = "network";
298 compatible = "ibm,emac-460ex", "ibm,emac4"; 298 compatible = "ibm,emac-460ex", "ibm,emac4sync";
299 interrupt-parent = <&EMAC1>; 299 interrupt-parent = <&EMAC1>;
300 interrupts = <0x0 0x1>; 300 interrupts = <0x0 0x1>;
301 #interrupt-cells = <1>; 301 #interrupt-cells = <1>;
@@ -303,7 +303,7 @@
303 #size-cells = <0>; 303 #size-cells = <0>;
304 interrupt-map = </*Status*/ 0x0 &UIC2 0x11 0x4 304 interrupt-map = </*Status*/ 0x0 &UIC2 0x11 0x4
305 /*Wake*/ 0x1 &UIC2 0x15 0x4>; 305 /*Wake*/ 0x1 &UIC2 0x15 0x4>;
306 reg = <0xef600f00 0x00000070>; 306 reg = <0xef600f00 0x000000c4>;
307 local-mac-address = [000000000000]; /* Filled in by U-Boot */ 307 local-mac-address = [000000000000]; /* Filled in by U-Boot */
308 mal-device = <&MAL0>; 308 mal-device = <&MAL0>;
309 mal-tx-channel = <1>; 309 mal-tx-channel = <1>;
diff --git a/arch/powerpc/boot/dts/glacier.dts b/arch/powerpc/boot/dts/glacier.dts
index 463650c5f61d..24cf0dba120c 100644
--- a/arch/powerpc/boot/dts/glacier.dts
+++ b/arch/powerpc/boot/dts/glacier.dts
@@ -283,7 +283,7 @@
283 #size-cells = <0>; 283 #size-cells = <0>;
284 interrupt-map = </*Status*/ 0x0 &UIC2 0x10 0x4 284 interrupt-map = </*Status*/ 0x0 &UIC2 0x10 0x4
285 /*Wake*/ 0x1 &UIC2 0x14 0x4>; 285 /*Wake*/ 0x1 &UIC2 0x14 0x4>;
286 reg = <0xef600e00 0x00000070>; 286 reg = <0xef600e00 0x00000074>;
287 local-mac-address = [000000000000]; /* Filled in by U-Boot */ 287 local-mac-address = [000000000000]; /* Filled in by U-Boot */
288 mal-device = <&MAL0>; 288 mal-device = <&MAL0>;
289 mal-tx-channel = <0>; 289 mal-tx-channel = <0>;
@@ -312,7 +312,7 @@
312 #size-cells = <0>; 312 #size-cells = <0>;
313 interrupt-map = </*Status*/ 0x0 &UIC2 0x11 0x4 313 interrupt-map = </*Status*/ 0x0 &UIC2 0x11 0x4
314 /*Wake*/ 0x1 &UIC2 0x15 0x4>; 314 /*Wake*/ 0x1 &UIC2 0x15 0x4>;
315 reg = <0xef600f00 0x00000070>; 315 reg = <0xef600f00 0x00000074>;
316 local-mac-address = [000000000000]; /* Filled in by U-Boot */ 316 local-mac-address = [000000000000]; /* Filled in by U-Boot */
317 mal-device = <&MAL0>; 317 mal-device = <&MAL0>;
318 mal-tx-channel = <1>; 318 mal-tx-channel = <1>;
@@ -342,7 +342,7 @@
342 #size-cells = <0>; 342 #size-cells = <0>;
343 interrupt-map = </*Status*/ 0x0 &UIC2 0x12 0x4 343 interrupt-map = </*Status*/ 0x0 &UIC2 0x12 0x4
344 /*Wake*/ 0x1 &UIC2 0x16 0x4>; 344 /*Wake*/ 0x1 &UIC2 0x16 0x4>;
345 reg = <0xef601100 0x00000070>; 345 reg = <0xef601100 0x00000074>;
346 local-mac-address = [000000000000]; /* Filled in by U-Boot */ 346 local-mac-address = [000000000000]; /* Filled in by U-Boot */
347 mal-device = <&MAL0>; 347 mal-device = <&MAL0>;
348 mal-tx-channel = <2>; 348 mal-tx-channel = <2>;
@@ -370,7 +370,7 @@
370 #size-cells = <0>; 370 #size-cells = <0>;
371 interrupt-map = </*Status*/ 0x0 &UIC2 0x13 0x4 371 interrupt-map = </*Status*/ 0x0 &UIC2 0x13 0x4
372 /*Wake*/ 0x1 &UIC2 0x17 0x4>; 372 /*Wake*/ 0x1 &UIC2 0x17 0x4>;
373 reg = <0xef601200 0x00000070>; 373 reg = <0xef601200 0x00000074>;
374 local-mac-address = [000000000000]; /* Filled in by U-Boot */ 374 local-mac-address = [000000000000]; /* Filled in by U-Boot */
375 mal-device = <&MAL0>; 375 mal-device = <&MAL0>;
376 mal-tx-channel = <3>; 376 mal-tx-channel = <3>;
diff --git a/arch/powerpc/boot/dts/haleakala.dts b/arch/powerpc/boot/dts/haleakala.dts
index 2c2fceaabbcd..513bc43a71af 100644
--- a/arch/powerpc/boot/dts/haleakala.dts
+++ b/arch/powerpc/boot/dts/haleakala.dts
@@ -206,7 +206,7 @@
206 EMAC0: ethernet@ef600900 { 206 EMAC0: ethernet@ef600900 {
207 linux,network-index = <0x0>; 207 linux,network-index = <0x0>;
208 device_type = "network"; 208 device_type = "network";
209 compatible = "ibm,emac-405exr", "ibm,emac4"; 209 compatible = "ibm,emac-405exr", "ibm,emac4sync";
210 interrupt-parent = <&EMAC0>; 210 interrupt-parent = <&EMAC0>;
211 interrupts = <0x0 0x1>; 211 interrupts = <0x0 0x1>;
212 #interrupt-cells = <1>; 212 #interrupt-cells = <1>;
@@ -214,7 +214,7 @@
214 #size-cells = <0>; 214 #size-cells = <0>;
215 interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4 215 interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4
216 /*Wake*/ 0x1 &UIC1 0x1d 0x4>; 216 /*Wake*/ 0x1 &UIC1 0x1d 0x4>;
217 reg = <0xef600900 0x00000070>; 217 reg = <0xef600900 0x000000c4>;
218 local-mac-address = [000000000000]; /* Filled in by U-Boot */ 218 local-mac-address = [000000000000]; /* Filled in by U-Boot */
219 mal-device = <&MAL0>; 219 mal-device = <&MAL0>;
220 mal-tx-channel = <0>; 220 mal-tx-channel = <0>;
diff --git a/arch/powerpc/boot/dts/katmai.dts b/arch/powerpc/boot/dts/katmai.dts
index b94bf61b9bcc..077819bc3cbd 100644
--- a/arch/powerpc/boot/dts/katmai.dts
+++ b/arch/powerpc/boot/dts/katmai.dts
@@ -208,7 +208,7 @@
208 compatible = "ibm,emac-440spe", "ibm,emac4"; 208 compatible = "ibm,emac-440spe", "ibm,emac4";
209 interrupt-parent = <&UIC1>; 209 interrupt-parent = <&UIC1>;
210 interrupts = <0x1c 0x4 0x1d 0x4>; 210 interrupts = <0x1c 0x4 0x1d 0x4>;
211 reg = <0x10000800 0x00000070>; 211 reg = <0x10000800 0x00000074>;
212 local-mac-address = [000000000000]; 212 local-mac-address = [000000000000];
213 mal-device = <&MAL0>; 213 mal-device = <&MAL0>;
214 mal-tx-channel = <0>; 214 mal-tx-channel = <0>;
diff --git a/arch/powerpc/boot/dts/kilauea.dts b/arch/powerpc/boot/dts/kilauea.dts
index 3ed6a8fee1d5..dececc4b5ff2 100644
--- a/arch/powerpc/boot/dts/kilauea.dts
+++ b/arch/powerpc/boot/dts/kilauea.dts
@@ -207,7 +207,7 @@
207 EMAC0: ethernet@ef600900 { 207 EMAC0: ethernet@ef600900 {
208 linux,network-index = <0x0>; 208 linux,network-index = <0x0>;
209 device_type = "network"; 209 device_type = "network";
210 compatible = "ibm,emac-405ex", "ibm,emac4"; 210 compatible = "ibm,emac-405ex", "ibm,emac4sync";
211 interrupt-parent = <&EMAC0>; 211 interrupt-parent = <&EMAC0>;
212 interrupts = <0x0 0x1>; 212 interrupts = <0x0 0x1>;
213 #interrupt-cells = <1>; 213 #interrupt-cells = <1>;
@@ -215,7 +215,7 @@
215 #size-cells = <0>; 215 #size-cells = <0>;
216 interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4 216 interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4
217 /*Wake*/ 0x1 &UIC1 0x1d 0x4>; 217 /*Wake*/ 0x1 &UIC1 0x1d 0x4>;
218 reg = <0xef600900 0x00000070>; 218 reg = <0xef600900 0x000000c4>;
219 local-mac-address = [000000000000]; /* Filled in by U-Boot */ 219 local-mac-address = [000000000000]; /* Filled in by U-Boot */
220 mal-device = <&MAL0>; 220 mal-device = <&MAL0>;
221 mal-tx-channel = <0>; 221 mal-tx-channel = <0>;
@@ -235,7 +235,7 @@
235 EMAC1: ethernet@ef600a00 { 235 EMAC1: ethernet@ef600a00 {
236 linux,network-index = <0x1>; 236 linux,network-index = <0x1>;
237 device_type = "network"; 237 device_type = "network";
238 compatible = "ibm,emac-405ex", "ibm,emac4"; 238 compatible = "ibm,emac-405ex", "ibm,emac4sync";
239 interrupt-parent = <&EMAC1>; 239 interrupt-parent = <&EMAC1>;
240 interrupts = <0x0 0x1>; 240 interrupts = <0x0 0x1>;
241 #interrupt-cells = <1>; 241 #interrupt-cells = <1>;
@@ -243,7 +243,7 @@
243 #size-cells = <0>; 243 #size-cells = <0>;
244 interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4 244 interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4
245 /*Wake*/ 0x1 &UIC1 0x1f 0x4>; 245 /*Wake*/ 0x1 &UIC1 0x1f 0x4>;
246 reg = <0xef600a00 0x00000070>; 246 reg = <0xef600a00 0x000000c4>;
247 local-mac-address = [000000000000]; /* Filled in by U-Boot */ 247 local-mac-address = [000000000000]; /* Filled in by U-Boot */
248 mal-device = <&MAL0>; 248 mal-device = <&MAL0>;
249 mal-tx-channel = <1>; 249 mal-tx-channel = <1>;
diff --git a/arch/powerpc/boot/dts/ksi8560.dts b/arch/powerpc/boot/dts/ksi8560.dts
index fd5804398417..49737589ffc8 100644
--- a/arch/powerpc/boot/dts/ksi8560.dts
+++ b/arch/powerpc/boot/dts/ksi8560.dts
@@ -59,7 +59,7 @@
59 memory-controller@2000 { 59 memory-controller@2000 {
60 compatible = "fsl,8540-memory-controller"; 60 compatible = "fsl,8540-memory-controller";
61 reg = <0x2000 0x1000>; 61 reg = <0x2000 0x1000>;
62 interrupt-parent = <&MPIC>; 62 interrupt-parent = <&mpic>;
63 interrupts = <0x12 0x2>; 63 interrupts = <0x12 0x2>;
64 }; 64 };
65 65
@@ -68,7 +68,7 @@
68 reg = <0x20000 0x1000>; 68 reg = <0x20000 0x1000>;
69 cache-line-size = <0x20>; /* 32 bytes */ 69 cache-line-size = <0x20>; /* 32 bytes */
70 cache-size = <0x40000>; /* L2, 256K */ 70 cache-size = <0x40000>; /* L2, 256K */
71 interrupt-parent = <&MPIC>; 71 interrupt-parent = <&mpic>;
72 interrupts = <0x10 0x2>; 72 interrupts = <0x10 0x2>;
73 }; 73 };
74 74
@@ -79,7 +79,7 @@
79 compatible = "fsl-i2c"; 79 compatible = "fsl-i2c";
80 reg = <0x3000 0x100>; 80 reg = <0x3000 0x100>;
81 interrupts = <0x2b 0x2>; 81 interrupts = <0x2b 0x2>;
82 interrupt-parent = <&MPIC>; 82 interrupt-parent = <&mpic>;
83 dfsrr; 83 dfsrr;
84 }; 84 };
85 85
@@ -131,13 +131,13 @@
131 reg = <0x24520 0x20>; 131 reg = <0x24520 0x20>;
132 132
133 PHY1: ethernet-phy@1 { 133 PHY1: ethernet-phy@1 {
134 interrupt-parent = <&MPIC>; 134 interrupt-parent = <&mpic>;
135 reg = <0x1>; 135 reg = <0x1>;
136 device_type = "ethernet-phy"; 136 device_type = "ethernet-phy";
137 }; 137 };
138 138
139 PHY2: ethernet-phy@2 { 139 PHY2: ethernet-phy@2 {
140 interrupt-parent = <&MPIC>; 140 interrupt-parent = <&mpic>;
141 reg = <0x2>; 141 reg = <0x2>;
142 device_type = "ethernet-phy"; 142 device_type = "ethernet-phy";
143 }; 143 };
@@ -151,7 +151,7 @@
151 /* Mac address filled in by bootwrapper */ 151 /* Mac address filled in by bootwrapper */
152 local-mac-address = [ 00 00 00 00 00 00 ]; 152 local-mac-address = [ 00 00 00 00 00 00 ];
153 interrupts = <0x1d 0x2 0x1e 0x2 0x22 0x2>; 153 interrupts = <0x1d 0x2 0x1e 0x2 0x22 0x2>;
154 interrupt-parent = <&MPIC>; 154 interrupt-parent = <&mpic>;
155 phy-handle = <&PHY1>; 155 phy-handle = <&PHY1>;
156 }; 156 };
157 157
@@ -163,11 +163,11 @@
163 /* Mac address filled in by bootwrapper */ 163 /* Mac address filled in by bootwrapper */
164 local-mac-address = [ 00 00 00 00 00 00 ]; 164 local-mac-address = [ 00 00 00 00 00 00 ];
165 interrupts = <0x23 0x2 0x24 0x2 0x28 0x2>; 165 interrupts = <0x23 0x2 0x24 0x2 0x28 0x2>;
166 interrupt-parent = <&MPIC>; 166 interrupt-parent = <&mpic>;
167 phy-handle = <&PHY2>; 167 phy-handle = <&PHY2>;
168 }; 168 };
169 169
170 MPIC: pic@40000 { 170 mpic: pic@40000 {
171 #address-cells = <0>; 171 #address-cells = <0>;
172 #interrupt-cells = <2>; 172 #interrupt-cells = <2>;
173 interrupt-controller; 173 interrupt-controller;
@@ -206,7 +206,7 @@
206 #interrupt-cells = <2>; 206 #interrupt-cells = <2>;
207 interrupt-controller; 207 interrupt-controller;
208 interrupts = <0x2e 0x2>; 208 interrupts = <0x2e 0x2>;
209 interrupt-parent = <&MPIC>; 209 interrupt-parent = <&mpic>;
210 reg = <0x90c00 0x80>; 210 reg = <0x90c00 0x80>;
211 compatible = "fsl,mpc8560-cpm-pic", "fsl,cpm2-pic"; 211 compatible = "fsl,mpc8560-cpm-pic", "fsl,cpm2-pic";
212 }; 212 };
@@ -244,7 +244,7 @@
244 fsl,mdc-pin = <25>; 244 fsl,mdc-pin = <25>;
245 245
246 PHY0: ethernet-phy@0 { 246 PHY0: ethernet-phy@0 {
247 interrupt-parent = <&MPIC>; 247 interrupt-parent = <&mpic>;
248 reg = <0x0>; 248 reg = <0x0>;
249 device_type = "ethernet-phy"; 249 device_type = "ethernet-phy";
250 }; 250 };
diff --git a/arch/powerpc/boot/dts/makalu.dts b/arch/powerpc/boot/dts/makalu.dts
index 1dfcd7ed199c..945508c7e7d8 100644
--- a/arch/powerpc/boot/dts/makalu.dts
+++ b/arch/powerpc/boot/dts/makalu.dts
@@ -207,7 +207,7 @@
207 EMAC0: ethernet@ef600900 { 207 EMAC0: ethernet@ef600900 {
208 linux,network-index = <0x0>; 208 linux,network-index = <0x0>;
209 device_type = "network"; 209 device_type = "network";
210 compatible = "ibm,emac-405ex", "ibm,emac4"; 210 compatible = "ibm,emac-405ex", "ibm,emac4sync";
211 interrupt-parent = <&EMAC0>; 211 interrupt-parent = <&EMAC0>;
212 interrupts = <0x0 0x1>; 212 interrupts = <0x0 0x1>;
213 #interrupt-cells = <1>; 213 #interrupt-cells = <1>;
@@ -215,7 +215,7 @@
215 #size-cells = <0>; 215 #size-cells = <0>;
216 interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4 216 interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4
217 /*Wake*/ 0x1 &UIC1 0x1d 0x4>; 217 /*Wake*/ 0x1 &UIC1 0x1d 0x4>;
218 reg = <0xef600900 0x00000070>; 218 reg = <0xef600900 0x000000c4>;
219 local-mac-address = [000000000000]; /* Filled in by U-Boot */ 219 local-mac-address = [000000000000]; /* Filled in by U-Boot */
220 mal-device = <&MAL0>; 220 mal-device = <&MAL0>;
221 mal-tx-channel = <0>; 221 mal-tx-channel = <0>;
@@ -235,7 +235,7 @@
235 EMAC1: ethernet@ef600a00 { 235 EMAC1: ethernet@ef600a00 {
236 linux,network-index = <0x1>; 236 linux,network-index = <0x1>;
237 device_type = "network"; 237 device_type = "network";
238 compatible = "ibm,emac-405ex", "ibm,emac4"; 238 compatible = "ibm,emac-405ex", "ibm,emac4sync";
239 interrupt-parent = <&EMAC1>; 239 interrupt-parent = <&EMAC1>;
240 interrupts = <0x0 0x1>; 240 interrupts = <0x0 0x1>;
241 #interrupt-cells = <1>; 241 #interrupt-cells = <1>;
@@ -243,7 +243,7 @@
243 #size-cells = <0>; 243 #size-cells = <0>;
244 interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4 244 interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4
245 /*Wake*/ 0x1 &UIC1 0x1f 0x4>; 245 /*Wake*/ 0x1 &UIC1 0x1f 0x4>;
246 reg = <0xef600a00 0x00000070>; 246 reg = <0xef600a00 0x000000c4>;
247 local-mac-address = [000000000000]; /* Filled in by U-Boot */ 247 local-mac-address = [000000000000]; /* Filled in by U-Boot */
248 mal-device = <&MAL0>; 248 mal-device = <&MAL0>;
249 mal-tx-channel = <1>; 249 mal-tx-channel = <1>;
diff --git a/arch/powerpc/boot/dts/mpc8272ads.dts b/arch/powerpc/boot/dts/mpc8272ads.dts
index 46e2da30c3dd..2a1929acaabd 100644
--- a/arch/powerpc/boot/dts/mpc8272ads.dts
+++ b/arch/powerpc/boot/dts/mpc8272ads.dts
@@ -217,6 +217,17 @@
217 linux,network-index = <1>; 217 linux,network-index = <1>;
218 fsl,cpm-command = <0x16200300>; 218 fsl,cpm-command = <0x16200300>;
219 }; 219 };
220
221 i2c@11860 {
222 compatible = "fsl,mpc8272-i2c",
223 "fsl,cpm2-i2c";
224 reg = <0x11860 0x20 0x8afc 0x2>;
225 interrupts = <1 8>;
226 interrupt-parent = <&PIC>;
227 fsl,cpm-command = <0x29600000>;
228 #address-cells = <1>;
229 #size-cells = <0>;
230 };
220 }; 231 };
221 232
222 PIC: interrupt-controller@10c00 { 233 PIC: interrupt-controller@10c00 {
@@ -226,22 +237,15 @@
226 compatible = "fsl,mpc8272-pic", "fsl,cpm2-pic"; 237 compatible = "fsl,mpc8272-pic", "fsl,cpm2-pic";
227 }; 238 };
228 239
229/* May need to remove if on a part without crypto engine */
230 crypto@30000 { 240 crypto@30000 {
231 device_type = "crypto"; 241 compatible = "fsl,sec1.0";
232 model = "SEC2"; 242 reg = <0x40000 0x13000>;
233 compatible = "fsl,mpc8272-talitos-sec2", 243 interrupts = <47 0x8>;
234 "fsl,talitos-sec2",
235 "fsl,talitos",
236 "talitos";
237 reg = <0x30000 0x10000>;
238 interrupts = <11 8>;
239 interrupt-parent = <&PIC>; 244 interrupt-parent = <&PIC>;
240 num-channels = <4>; 245 fsl,num-channels = <4>;
241 channel-fifo-len = <24>; 246 fsl,channel-fifo-len = <24>;
242 exec-units-mask = <0x7e>; 247 fsl,exec-units-mask = <0x7e>;
243/* desc mask is for rev1.x, we need runtime fixup for >=2.x */ 248 fsl,descriptor-types-mask = <0x1010415>;
244 descriptor-types-mask = <0x1010ebf>;
245 }; 249 };
246 }; 250 };
247 251
diff --git a/arch/powerpc/boot/dts/mpc8313erdb.dts b/arch/powerpc/boot/dts/mpc8313erdb.dts
index b2068430a06d..3664fb584026 100644
--- a/arch/powerpc/boot/dts/mpc8313erdb.dts
+++ b/arch/powerpc/boot/dts/mpc8313erdb.dts
@@ -254,17 +254,14 @@
254 }; 254 };
255 255
256 crypto@30000 { 256 crypto@30000 {
257 device_type = "crypto"; 257 compatible = "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0";
258 model = "SEC2"; 258 reg = <0x30000 0x10000>;
259 compatible = "talitos";
260 reg = <0x30000 0x7000>;
261 interrupts = <11 0x8>; 259 interrupts = <11 0x8>;
262 interrupt-parent = <&ipic>; 260 interrupt-parent = <&ipic>;
263 /* Rev. 2.2 */ 261 fsl,num-channels = <1>;
264 num-channels = <1>; 262 fsl,channel-fifo-len = <24>;
265 channel-fifo-len = <24>; 263 fsl,exec-units-mask = <0x4c>;
266 exec-units-mask = <0x0000004c>; 264 fsl,descriptor-types-mask = <0x0122003f>;
267 descriptor-types-mask = <0x0122003f>;
268 }; 265 };
269 266
270 /* IPIC 267 /* IPIC
diff --git a/arch/powerpc/boot/dts/mpc8315erdb.dts b/arch/powerpc/boot/dts/mpc8315erdb.dts
index a40e8064d429..f704513fb930 100644
--- a/arch/powerpc/boot/dts/mpc8315erdb.dts
+++ b/arch/powerpc/boot/dts/mpc8315erdb.dts
@@ -241,17 +241,16 @@
241 }; 241 };
242 242
243 crypto@30000 { 243 crypto@30000 {
244 model = "SEC3"; 244 compatible = "fsl,sec3.3", "fsl,sec3.1", "fsl,sec3.0",
245 device_type = "crypto"; 245 "fsl,sec2.4", "fsl,sec2.2", "fsl,sec2.1",
246 compatible = "talitos"; 246 "fsl,sec2.0";
247 reg = <0x30000 0x10000>; 247 reg = <0x30000 0x10000>;
248 interrupts = <11 0x8>; 248 interrupts = <11 0x8>;
249 interrupt-parent = <&ipic>; 249 interrupt-parent = <&ipic>;
250 /* Rev. 3.0 geometry */ 250 fsl,num-channels = <4>;
251 num-channels = <4>; 251 fsl,channel-fifo-len = <24>;
252 channel-fifo-len = <24>; 252 fsl,exec-units-mask = <0x97c>;
253 exec-units-mask = <0x000001fe>; 253 fsl,descriptor-types-mask = <0x3ab0abf>;
254 descriptor-types-mask = <0x03ab0ebf>;
255 }; 254 };
256 255
257 sata@18000 { 256 sata@18000 {
diff --git a/arch/powerpc/boot/dts/mpc832x_mds.dts b/arch/powerpc/boot/dts/mpc832x_mds.dts
index b5968b6c8a29..7345743d3d96 100644
--- a/arch/powerpc/boot/dts/mpc832x_mds.dts
+++ b/arch/powerpc/boot/dts/mpc832x_mds.dts
@@ -150,17 +150,14 @@
150 }; 150 };
151 151
152 crypto@30000 { 152 crypto@30000 {
153 device_type = "crypto"; 153 compatible = "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0";
154 model = "SEC2"; 154 reg = <0x30000 0x10000>;
155 compatible = "talitos";
156 reg = <0x30000 0x7000>;
157 interrupts = <11 0x8>; 155 interrupts = <11 0x8>;
158 interrupt-parent = <&ipic>; 156 interrupt-parent = <&ipic>;
159 /* Rev. 2.2 */ 157 fsl,num-channels = <1>;
160 num-channels = <1>; 158 fsl,channel-fifo-len = <24>;
161 channel-fifo-len = <24>; 159 fsl,exec-units-mask = <0x4c>;
162 exec-units-mask = <0x0000004c>; 160 fsl,descriptor-types-mask = <0x0122003f>;
163 descriptor-types-mask = <0x0122003f>;
164 }; 161 };
165 162
166 ipic: pic@700 { 163 ipic: pic@700 {
diff --git a/arch/powerpc/boot/dts/mpc832x_rdb.dts b/arch/powerpc/boot/dts/mpc832x_rdb.dts
index a798d8639a7d..e74c045a0f8c 100644
--- a/arch/powerpc/boot/dts/mpc832x_rdb.dts
+++ b/arch/powerpc/boot/dts/mpc832x_rdb.dts
@@ -128,17 +128,14 @@
128 }; 128 };
129 129
130 crypto@30000 { 130 crypto@30000 {
131 device_type = "crypto"; 131 compatible = "fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0";
132 model = "SEC2"; 132 reg = <0x30000 0x10000>;
133 compatible = "talitos";
134 reg = <0x30000 0x7000>;
135 interrupts = <11 0x8>; 133 interrupts = <11 0x8>;
136 interrupt-parent = <&ipic>; 134 interrupt-parent = <&ipic>;
137 /* Rev. 2.2 */ 135 fsl,num-channels = <1>;
138 num-channels = <1>; 136 fsl,channel-fifo-len = <24>;
139 channel-fifo-len = <24>; 137 fsl,exec-units-mask = <0x4c>;
140 exec-units-mask = <0x0000004c>; 138 fsl,descriptor-types-mask = <0x0122003f>;
141 descriptor-types-mask = <0x0122003f>;
142 }; 139 };
143 140
144 ipic:pic@700 { 141 ipic:pic@700 {
diff --git a/arch/powerpc/boot/dts/mpc8349emitx.dts b/arch/powerpc/boot/dts/mpc8349emitx.dts
index fc0f4c918c76..8dfab5662585 100644
--- a/arch/powerpc/boot/dts/mpc8349emitx.dts
+++ b/arch/powerpc/boot/dts/mpc8349emitx.dts
@@ -213,16 +213,14 @@
213 }; 213 };
214 214
215 crypto@30000 { 215 crypto@30000 {
216 device_type = "crypto"; 216 compatible = "fsl,sec2.0";
217 model = "SEC2";
218 compatible = "talitos";
219 reg = <0x30000 0x10000>; 217 reg = <0x30000 0x10000>;
220 interrupts = <11 0x8>; 218 interrupts = <11 0x8>;
221 interrupt-parent = <&ipic>; 219 interrupt-parent = <&ipic>;
222 num-channels = <4>; 220 fsl,num-channels = <4>;
223 channel-fifo-len = <24>; 221 fsl,channel-fifo-len = <24>;
224 exec-units-mask = <0x0000007e>; 222 fsl,exec-units-mask = <0x7e>;
225 descriptor-types-mask = <0x01010ebf>; 223 fsl,descriptor-types-mask = <0x01010ebf>;
226 }; 224 };
227 225
228 ipic: pic@700 { 226 ipic: pic@700 {
diff --git a/arch/powerpc/boot/dts/mpc8349emitxgp.dts b/arch/powerpc/boot/dts/mpc8349emitxgp.dts
index e6afb1d1e19e..49ca3497eefb 100644
--- a/arch/powerpc/boot/dts/mpc8349emitxgp.dts
+++ b/arch/powerpc/boot/dts/mpc8349emitxgp.dts
@@ -186,16 +186,14 @@
186 }; 186 };
187 187
188 crypto@30000 { 188 crypto@30000 {
189 device_type = "crypto"; 189 compatible = "fsl,sec2.0";
190 model = "SEC2";
191 compatible = "talitos";
192 reg = <0x30000 0x10000>; 190 reg = <0x30000 0x10000>;
193 interrupts = <11 0x8>; 191 interrupts = <11 0x8>;
194 interrupt-parent = <&ipic>; 192 interrupt-parent = <&ipic>;
195 num-channels = <4>; 193 fsl,num-channels = <4>;
196 channel-fifo-len = <24>; 194 fsl,channel-fifo-len = <24>;
197 exec-units-mask = <0x0000007e>; 195 fsl,exec-units-mask = <0x7e>;
198 descriptor-types-mask = <0x01010ebf>; 196 fsl,descriptor-types-mask = <0x01010ebf>;
199 }; 197 };
200 198
201 ipic: pic@700 { 199 ipic: pic@700 {
diff --git a/arch/powerpc/boot/dts/mpc834x_mds.dts b/arch/powerpc/boot/dts/mpc834x_mds.dts
index 9c75c7c69e21..ba586cb7afbb 100644
--- a/arch/powerpc/boot/dts/mpc834x_mds.dts
+++ b/arch/powerpc/boot/dts/mpc834x_mds.dts
@@ -228,20 +228,15 @@
228 interrupt-parent = <&ipic>; 228 interrupt-parent = <&ipic>;
229 }; 229 };
230 230
231 /* May need to remove if on a part without crypto engine */
232 crypto@30000 { 231 crypto@30000 {
233 device_type = "crypto"; 232 compatible = "fsl,sec2.0";
234 model = "SEC2";
235 compatible = "talitos";
236 reg = <0x30000 0x10000>; 233 reg = <0x30000 0x10000>;
237 interrupts = <11 0x8>; 234 interrupts = <11 0x8>;
238 interrupt-parent = <&ipic>; 235 interrupt-parent = <&ipic>;
239 num-channels = <4>; 236 fsl,num-channels = <4>;
240 channel-fifo-len = <24>; 237 fsl,channel-fifo-len = <24>;
241 exec-units-mask = <0x0000007e>; 238 fsl,exec-units-mask = <0x7e>;
242 /* desc mask is for rev2.0, 239 fsl,descriptor-types-mask = <0x01010ebf>;
243 * we need runtime fixup for >2.0 */
244 descriptor-types-mask = <0x01010ebf>;
245 }; 240 };
246 241
247 /* IPIC 242 /* IPIC
diff --git a/arch/powerpc/boot/dts/mpc836x_mds.dts b/arch/powerpc/boot/dts/mpc836x_mds.dts
index 8e33b155f112..3701dae1ee02 100644
--- a/arch/powerpc/boot/dts/mpc836x_mds.dts
+++ b/arch/powerpc/boot/dts/mpc836x_mds.dts
@@ -154,17 +154,14 @@
154 }; 154 };
155 155
156 crypto@30000 { 156 crypto@30000 {
157 device_type = "crypto"; 157 compatible = "fsl,sec2.0";
158 model = "SEC2";
159 compatible = "talitos";
160 reg = <0x30000 0x10000>; 158 reg = <0x30000 0x10000>;
161 interrupts = <11 0x8>; 159 interrupts = <11 0x8>;
162 interrupt-parent = <&ipic>; 160 interrupt-parent = <&ipic>;
163 num-channels = <4>; 161 fsl,num-channels = <4>;
164 channel-fifo-len = <24>; 162 fsl,channel-fifo-len = <24>;
165 exec-units-mask = <0x0000007e>; 163 fsl,exec-units-mask = <0x7e>;
166 /* desc mask is for rev1.x, we need runtime fixup for >=2.x */ 164 fsl,descriptor-types-mask = <0x01010ebf>;
167 descriptor-types-mask = <0x01010ebf>;
168 }; 165 };
169 166
170 ipic: pic@700 { 167 ipic: pic@700 {
diff --git a/arch/powerpc/boot/dts/mpc8377_mds.dts b/arch/powerpc/boot/dts/mpc8377_mds.dts
index 49a38cb95b52..0a700cb5f611 100644
--- a/arch/powerpc/boot/dts/mpc8377_mds.dts
+++ b/arch/powerpc/boot/dts/mpc8377_mds.dts
@@ -269,16 +269,15 @@
269 }; 269 };
270 270
271 crypto@30000 { 271 crypto@30000 {
272 model = "SEC3"; 272 compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2",
273 compatible = "talitos"; 273 "fsl,sec2.1", "fsl,sec2.0";
274 reg = <0x30000 0x10000>; 274 reg = <0x30000 0x10000>;
275 interrupts = <11 0x8>; 275 interrupts = <11 0x8>;
276 interrupt-parent = <&ipic>; 276 interrupt-parent = <&ipic>;
277 /* Rev. 3.0 geometry */ 277 fsl,num-channels = <4>;
278 num-channels = <4>; 278 fsl,channel-fifo-len = <24>;
279 channel-fifo-len = <24>; 279 fsl,exec-units-mask = <0x9fe>;
280 exec-units-mask = <0x000001fe>; 280 fsl,descriptor-types-mask = <0x3ab0ebf>;
281 descriptor-types-mask = <0x03ab0ebf>;
282 }; 281 };
283 282
284 sdhc@2e000 { 283 sdhc@2e000 {
diff --git a/arch/powerpc/boot/dts/mpc8377_rdb.dts b/arch/powerpc/boot/dts/mpc8377_rdb.dts
index 1f4538790302..ed137aa83d5f 100644
--- a/arch/powerpc/boot/dts/mpc8377_rdb.dts
+++ b/arch/powerpc/boot/dts/mpc8377_rdb.dts
@@ -248,17 +248,15 @@
248 }; 248 };
249 249
250 crypto@30000 { 250 crypto@30000 {
251 model = "SEC3"; 251 compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2",
252 device_type = "crypto"; 252 "fsl,sec2.1", "fsl,sec2.0";
253 compatible = "talitos";
254 reg = <0x30000 0x10000>; 253 reg = <0x30000 0x10000>;
255 interrupts = <11 0x8>; 254 interrupts = <11 0x8>;
256 interrupt-parent = <&ipic>; 255 interrupt-parent = <&ipic>;
257 /* Rev. 3.0 geometry */ 256 fsl,num-channels = <4>;
258 num-channels = <4>; 257 fsl,channel-fifo-len = <24>;
259 channel-fifo-len = <24>; 258 fsl,exec-units-mask = <0x9fe>;
260 exec-units-mask = <0x000001fe>; 259 fsl,descriptor-types-mask = <0x3ab0ebf>;
261 descriptor-types-mask = <0x03ab0ebf>;
262 }; 260 };
263 261
264 sata@18000 { 262 sata@18000 {
diff --git a/arch/powerpc/boot/dts/mpc8378_mds.dts b/arch/powerpc/boot/dts/mpc8378_mds.dts
index 99ad49d4f13f..29c8c76a58f7 100644
--- a/arch/powerpc/boot/dts/mpc8378_mds.dts
+++ b/arch/powerpc/boot/dts/mpc8378_mds.dts
@@ -269,16 +269,15 @@
269 }; 269 };
270 270
271 crypto@30000 { 271 crypto@30000 {
272 model = "SEC3"; 272 compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2",
273 compatible = "talitos"; 273 "fsl,sec2.1", "fsl,sec2.0";
274 reg = <0x30000 0x10000>; 274 reg = <0x30000 0x10000>;
275 interrupts = <11 0x8>; 275 interrupts = <11 0x8>;
276 interrupt-parent = <&ipic>; 276 interrupt-parent = <&ipic>;
277 /* Rev. 3.0 geometry */ 277 fsl,num-channels = <4>;
278 num-channels = <4>; 278 fsl,channel-fifo-len = <24>;
279 channel-fifo-len = <24>; 279 fsl,exec-units-mask = <0x9fe>;
280 exec-units-mask = <0x000001fe>; 280 fsl,descriptor-types-mask = <0x3ab0ebf>;
281 descriptor-types-mask = <0x03ab0ebf>;
282 }; 281 };
283 282
284 sdhc@2e000 { 283 sdhc@2e000 {
diff --git a/arch/powerpc/boot/dts/mpc8378_rdb.dts b/arch/powerpc/boot/dts/mpc8378_rdb.dts
index 44e34d3f21cf..34a7f2f935e1 100644
--- a/arch/powerpc/boot/dts/mpc8378_rdb.dts
+++ b/arch/powerpc/boot/dts/mpc8378_rdb.dts
@@ -248,17 +248,15 @@
248 }; 248 };
249 249
250 crypto@30000 { 250 crypto@30000 {
251 model = "SEC3"; 251 compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2",
252 device_type = "crypto"; 252 "fsl,sec2.1", "fsl,sec2.0";
253 compatible = "talitos";
254 reg = <0x30000 0x10000>; 253 reg = <0x30000 0x10000>;
255 interrupts = <11 0x8>; 254 interrupts = <11 0x8>;
256 interrupt-parent = <&ipic>; 255 interrupt-parent = <&ipic>;
257 /* Rev. 3.0 geometry */ 256 fsl,num-channels = <4>;
258 num-channels = <4>; 257 fsl,channel-fifo-len = <24>;
259 channel-fifo-len = <24>; 258 fsl,exec-units-mask = <0x9fe>;
260 exec-units-mask = <0x000001fe>; 259 fsl,descriptor-types-mask = <0x3ab0ebf>;
261 descriptor-types-mask = <0x03ab0ebf>;
262 }; 260 };
263 261
264 /* IPIC 262 /* IPIC
diff --git a/arch/powerpc/boot/dts/mpc8379_mds.dts b/arch/powerpc/boot/dts/mpc8379_mds.dts
index 980be8136276..d641a8985ea3 100644
--- a/arch/powerpc/boot/dts/mpc8379_mds.dts
+++ b/arch/powerpc/boot/dts/mpc8379_mds.dts
@@ -269,16 +269,15 @@
269 }; 269 };
270 270
271 crypto@30000 { 271 crypto@30000 {
272 model = "SEC3"; 272 compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2",
273 compatible = "talitos"; 273 "fsl,sec2.1", "fsl,sec2.0";
274 reg = <0x30000 0x10000>; 274 reg = <0x30000 0x10000>;
275 interrupts = <11 0x8>; 275 interrupts = <11 0x8>;
276 interrupt-parent = <&ipic>; 276 interrupt-parent = <&ipic>;
277 /* Rev. 3.0 geometry */ 277 fsl,num-channels = <4>;
278 num-channels = <4>; 278 fsl,channel-fifo-len = <24>;
279 channel-fifo-len = <24>; 279 fsl,exec-units-mask = <0x9fe>;
280 exec-units-mask = <0x000001fe>; 280 fsl,descriptor-types-mask = <0x3ab0ebf>;
281 descriptor-types-mask = <0x03ab0ebf>;
282 }; 281 };
283 282
284 sdhc@2e000 { 283 sdhc@2e000 {
diff --git a/arch/powerpc/boot/dts/mpc8379_rdb.dts b/arch/powerpc/boot/dts/mpc8379_rdb.dts
index eeedf5884881..e4d7030d50e5 100644
--- a/arch/powerpc/boot/dts/mpc8379_rdb.dts
+++ b/arch/powerpc/boot/dts/mpc8379_rdb.dts
@@ -248,17 +248,15 @@
248 }; 248 };
249 249
250 crypto@30000 { 250 crypto@30000 {
251 model = "SEC3"; 251 compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2",
252 device_type = "crypto"; 252 "fsl,sec2.1", "fsl,sec2.0";
253 compatible = "talitos";
254 reg = <0x30000 0x10000>; 253 reg = <0x30000 0x10000>;
255 interrupts = <11 0x8>; 254 interrupts = <11 0x8>;
256 interrupt-parent = <&ipic>; 255 interrupt-parent = <&ipic>;
257 /* Rev. 3.0 geometry */ 256 fsl,num-channels = <4>;
258 num-channels = <4>; 257 fsl,channel-fifo-len = <24>;
259 channel-fifo-len = <24>; 258 fsl,exec-units-mask = <0x9fe>;
260 exec-units-mask = <0x000001fe>; 259 fsl,descriptor-types-mask = <0x3ab0ebf>;
261 descriptor-types-mask = <0x03ab0ebf>;
262 }; 260 };
263 261
264 sata@18000 { 262 sata@18000 {
diff --git a/arch/powerpc/boot/dts/mpc8536ds.dts b/arch/powerpc/boot/dts/mpc8536ds.dts
new file mode 100644
index 000000000000..02cfa24a1695
--- /dev/null
+++ b/arch/powerpc/boot/dts/mpc8536ds.dts
@@ -0,0 +1,432 @@
1/*
2 * MPC8536 DS Device Tree Source
3 *
4 * Copyright 2008 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/ {
15 model = "fsl,mpc8536ds";
16 compatible = "fsl,mpc8536ds";
17 #address-cells = <1>;
18 #size-cells = <1>;
19
20 aliases {
21 ethernet0 = &enet0;
22 ethernet1 = &enet1;
23 serial0 = &serial0;
24 serial1 = &serial1;
25 pci0 = &pci0;
26 pci1 = &pci1;
27 pci2 = &pci2;
28 pci3 = &pci3;
29 };
30
31 cpus {
32 #cpus = <1>;
33 #address-cells = <1>;
34 #size-cells = <0>;
35
36 PowerPC,8536@0 {
37 device_type = "cpu";
38 reg = <0>;
39 next-level-cache = <&L2>;
40 };
41 };
42
43 memory {
44 device_type = "memory";
45 reg = <00000000 00000000>; // Filled by U-Boot
46 };
47
48 soc@ffe00000 {
49 #address-cells = <1>;
50 #size-cells = <1>;
51 device_type = "soc";
52 ranges = <0x0 0xffe00000 0x100000>;
53 reg = <0xffe00000 0x1000>;
54 bus-frequency = <0>; // Filled out by uboot.
55
56 memory-controller@2000 {
57 compatible = "fsl,mpc8536-memory-controller";
58 reg = <0x2000 0x1000>;
59 interrupt-parent = <&mpic>;
60 interrupts = <18 0x2>;
61 };
62
63 L2: l2-cache-controller@20000 {
64 compatible = "fsl,mpc8536-l2-cache-controller";
65 reg = <0x20000 0x1000>;
66 interrupt-parent = <&mpic>;
67 interrupts = <16 0x2>;
68 };
69
70 i2c@3000 {
71 #address-cells = <1>;
72 #size-cells = <0>;
73 cell-index = <0>;
74 compatible = "fsl-i2c";
75 reg = <0x3000 0x100>;
76 interrupts = <43 0x2>;
77 interrupt-parent = <&mpic>;
78 dfsrr;
79 };
80
81 i2c@3100 {
82 #address-cells = <1>;
83 #size-cells = <0>;
84 cell-index = <1>;
85 compatible = "fsl-i2c";
86 reg = <0x3100 0x100>;
87 interrupts = <43 0x2>;
88 interrupt-parent = <&mpic>;
89 dfsrr;
90 rtc@68 {
91 compatible = "dallas,ds3232";
92 reg = <0x68>;
93 };
94 };
95
96 dma@21300 {
97 #address-cells = <1>;
98 #size-cells = <1>;
99 compatible = "fsl,mpc8536-dma", "fsl,eloplus-dma";
100 reg = <0x21300 4>;
101 ranges = <0 0x21100 0x200>;
102 cell-index = <0>;
103 dma-channel@0 {
104 compatible = "fsl,mpc8536-dma-channel",
105 "fsl,eloplus-dma-channel";
106 reg = <0x0 0x80>;
107 cell-index = <0>;
108 interrupt-parent = <&mpic>;
109 interrupts = <14 0x2>;
110 };
111 dma-channel@80 {
112 compatible = "fsl,mpc8536-dma-channel",
113 "fsl,eloplus-dma-channel";
114 reg = <0x80 0x80>;
115 cell-index = <1>;
116 interrupt-parent = <&mpic>;
117 interrupts = <15 0x2>;
118 };
119 dma-channel@100 {
120 compatible = "fsl,mpc8536-dma-channel",
121 "fsl,eloplus-dma-channel";
122 reg = <0x100 0x80>;
123 cell-index = <2>;
124 interrupt-parent = <&mpic>;
125 interrupts = <16 0x2>;
126 };
127 dma-channel@180 {
128 compatible = "fsl,mpc8536-dma-channel",
129 "fsl,eloplus-dma-channel";
130 reg = <0x180 0x80>;
131 cell-index = <3>;
132 interrupt-parent = <&mpic>;
133 interrupts = <17 0x2>;
134 };
135 };
136
137 mdio@24520 {
138 #address-cells = <1>;
139 #size-cells = <0>;
140 compatible = "fsl,gianfar-mdio";
141 reg = <0x24520 0x20>;
142
143 phy0: ethernet-phy@0 {
144 interrupt-parent = <&mpic>;
145 interrupts = <10 0x1>;
146 reg = <0>;
147 device_type = "ethernet-phy";
148 };
149 phy1: ethernet-phy@1 {
150 interrupt-parent = <&mpic>;
151 interrupts = <10 0x1>;
152 reg = <1>;
153 device_type = "ethernet-phy";
154 };
155 };
156
157 usb@22000 {
158 compatible = "fsl,mpc8536-usb2-mph", "fsl-usb2-mph";
159 reg = <0x22000 0x1000>;
160 #address-cells = <1>;
161 #size-cells = <0>;
162 interrupt-parent = <&mpic>;
163 interrupts = <28 0x2>;
164 phy_type = "ulpi";
165 };
166
167 usb@23000 {
168 compatible = "fsl,mpc8536-usb2-mph", "fsl-usb2-mph";
169 reg = <0x23000 0x1000>;
170 #address-cells = <1>;
171 #size-cells = <0>;
172 interrupt-parent = <&mpic>;
173 interrupts = <46 0x2>;
174 phy_type = "ulpi";
175 };
176
177 enet0: ethernet@24000 {
178 cell-index = <0>;
179 device_type = "network";
180 model = "TSEC";
181 compatible = "gianfar";
182 reg = <0x24000 0x1000>;
183 local-mac-address = [ 00 00 00 00 00 00 ];
184 interrupts = <29 2 30 2 34 2>;
185 interrupt-parent = <&mpic>;
186 phy-handle = <&phy1>;
187 phy-connection-type = "rgmii-id";
188 };
189
190 enet1: ethernet@26000 {
191 cell-index = <1>;
192 device_type = "network";
193 model = "TSEC";
194 compatible = "gianfar";
195 reg = <0x26000 0x1000>;
196 local-mac-address = [ 00 00 00 00 00 00 ];
197 interrupts = <31 2 32 2 33 2>;
198 interrupt-parent = <&mpic>;
199 phy-handle = <&phy0>;
200 phy-connection-type = "rgmii-id";
201 };
202
203 usb@2b000 {
204 compatible = "fsl,mpc8536-usb2-dr", "fsl-usb2-dr";
205 reg = <0x2b000 0x1000>;
206 #address-cells = <1>;
207 #size-cells = <0>;
208 interrupt-parent = <&mpic>;
209 interrupts = <60 0x2>;
210 dr_mode = "peripheral";
211 phy_type = "ulpi";
212 };
213
214 serial0: serial@4500 {
215 cell-index = <0>;
216 device_type = "serial";
217 compatible = "ns16550";
218 reg = <0x4500 0x100>;
219 clock-frequency = <0>;
220 interrupts = <42 0x2>;
221 interrupt-parent = <&mpic>;
222 };
223
224 serial1: serial@4600 {
225 cell-index = <1>;
226 device_type = "serial";
227 compatible = "ns16550";
228 reg = <0x4600 0x100>;
229 clock-frequency = <0>;
230 interrupts = <42 0x2>;
231 interrupt-parent = <&mpic>;
232 };
233
234 crypto@30000 {
235 compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2",
236 "fsl,sec2.1", "fsl,sec2.0";
237 reg = <0x30000 0x10000>;
238 interrupts = <45 2 58 2>;
239 interrupt-parent = <&mpic>;
240 fsl,num-channels = <4>;
241 fsl,channel-fifo-len = <24>;
242 fsl,exec-units-mask = <0x9fe>;
243 fsl,descriptor-types-mask = <0x3ab0ebf>;
244 };
245
246 sata@18000 {
247 compatible = "fsl,mpc8536-sata", "fsl,pq-sata";
248 reg = <0x18000 0x1000>;
249 cell-index = <1>;
250 interrupts = <74 0x2>;
251 interrupt-parent = <&mpic>;
252 };
253
254 sata@19000 {
255 compatible = "fsl,mpc8536-sata", "fsl,pq-sata";
256 reg = <0x19000 0x1000>;
257 cell-index = <2>;
258 interrupts = <41 0x2>;
259 interrupt-parent = <&mpic>;
260 };
261
262 global-utilities@e0000 { //global utilities block
263 compatible = "fsl,mpc8548-guts";
264 reg = <0xe0000 0x1000>;
265 fsl,has-rstcr;
266 };
267
268 mpic: pic@40000 {
269 clock-frequency = <0>;
270 interrupt-controller;
271 #address-cells = <0>;
272 #interrupt-cells = <2>;
273 reg = <0x40000 0x40000>;
274 compatible = "chrp,open-pic";
275 device_type = "open-pic";
276 big-endian;
277 };
278
279 msi@41600 {
280 compatible = "fsl,mpc8536-msi", "fsl,mpic-msi";
281 reg = <0x41600 0x80>;
282 msi-available-ranges = <0 0x100>;
283 interrupts = <
284 0xe0 0
285 0xe1 0
286 0xe2 0
287 0xe3 0
288 0xe4 0
289 0xe5 0
290 0xe6 0
291 0xe7 0>;
292 interrupt-parent = <&mpic>;
293 };
294 };
295
296 pci0: pci@ffe08000 {
297 cell-index = <0>;
298 compatible = "fsl,mpc8540-pci";
299 device_type = "pci";
300 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
301 interrupt-map = <
302
303 /* IDSEL 0x11 J17 Slot 1 */
304 0x8800 0 0 1 &mpic 1 1
305 0x8800 0 0 2 &mpic 2 1
306 0x8800 0 0 3 &mpic 3 1
307 0x8800 0 0 4 &mpic 4 1>;
308
309 interrupt-parent = <&mpic>;
310 interrupts = <24 0x2>;
311 bus-range = <0 0xff>;
312 ranges = <0x02000000 0 0x80000000 0x80000000 0 0x10000000
313 0x01000000 0 0x00000000 0xffc00000 0 0x00010000>;
314 clock-frequency = <66666666>;
315 #interrupt-cells = <1>;
316 #size-cells = <2>;
317 #address-cells = <3>;
318 reg = <0xffe08000 0x1000>;
319 };
320
321 pci1: pcie@ffe09000 {
322 cell-index = <1>;
323 compatible = "fsl,mpc8548-pcie";
324 device_type = "pci";
325 #interrupt-cells = <1>;
326 #size-cells = <2>;
327 #address-cells = <3>;
328 reg = <0xffe09000 0x1000>;
329 bus-range = <0 0xff>;
330 ranges = <0x02000000 0 0x98000000 0x98000000 0 0x08000000
331 0x01000000 0 0x00000000 0xffc20000 0 0x00010000>;
332 clock-frequency = <33333333>;
333 interrupt-parent = <&mpic>;
334 interrupts = <25 0x2>;
335 interrupt-map-mask = <0xf800 0 0 7>;
336 interrupt-map = <
337 /* IDSEL 0x0 */
338 0000 0 0 1 &mpic 4 1
339 0000 0 0 2 &mpic 5 1
340 0000 0 0 3 &mpic 6 1
341 0000 0 0 4 &mpic 7 1
342 >;
343 pcie@0 {
344 reg = <0 0 0 0 0>;
345 #size-cells = <2>;
346 #address-cells = <3>;
347 device_type = "pci";
348 ranges = <0x02000000 0 0x98000000
349 0x02000000 0 0x98000000
350 0 0x08000000
351
352 0x01000000 0 0x00000000
353 0x01000000 0 0x00000000
354 0 0x00010000>;
355 };
356 };
357
358 pci2: pcie@ffe0a000 {
359 cell-index = <2>;
360 compatible = "fsl,mpc8548-pcie";
361 device_type = "pci";
362 #interrupt-cells = <1>;
363 #size-cells = <2>;
364 #address-cells = <3>;
365 reg = <0xffe0a000 0x1000>;
366 bus-range = <0 0xff>;
367 ranges = <0x02000000 0 0x90000000 0x90000000 0 0x08000000
368 0x01000000 0 0x00000000 0xffc10000 0 0x00010000>;
369 clock-frequency = <33333333>;
370 interrupt-parent = <&mpic>;
371 interrupts = <26 0x2>;
372 interrupt-map-mask = <0xf800 0 0 7>;
373 interrupt-map = <
374 /* IDSEL 0x0 */
375 0000 0 0 1 &mpic 0 1
376 0000 0 0 2 &mpic 1 1
377 0000 0 0 3 &mpic 2 1
378 0000 0 0 4 &mpic 3 1
379 >;
380 pcie@0 {
381 reg = <0 0 0 0 0>;
382 #size-cells = <2>;
383 #address-cells = <3>;
384 device_type = "pci";
385 ranges = <0x02000000 0 0x90000000
386 0x02000000 0 0x90000000
387 0 0x08000000
388
389 0x01000000 0 0x00000000
390 0x01000000 0 0x00000000
391 0 0x00010000>;
392 };
393 };
394
395 pci3: pcie@ffe0b000 {
396 cell-index = <3>;
397 compatible = "fsl,mpc8548-pcie";
398 device_type = "pci";
399 #interrupt-cells = <1>;
400 #size-cells = <2>;
401 #address-cells = <3>;
402 reg = <0xffe0b000 0x1000>;
403 bus-range = <0 0xff>;
404 ranges = <0x02000000 0 0xa0000000 0xa0000000 0 0x20000000
405 0x01000000 0 0x00000000 0xffc30000 0 0x00010000>;
406 clock-frequency = <33333333>;
407 interrupt-parent = <&mpic>;
408 interrupts = <27 0x2>;
409 interrupt-map-mask = <0xf800 0 0 7>;
410 interrupt-map = <
411 /* IDSEL 0x0 */
412 0000 0 0 1 &mpic 8 1
413 0000 0 0 2 &mpic 9 1
414 0000 0 0 3 &mpic 10 1
415 0000 0 0 4 &mpic 11 1
416 >;
417
418 pcie@0 {
419 reg = <0 0 0 0 0>;
420 #size-cells = <2>;
421 #address-cells = <3>;
422 device_type = "pci";
423 ranges = <0x02000000 0 0xa0000000
424 0x02000000 0 0xa0000000
425 0 0x20000000
426
427 0x01000000 0 0x00000000
428 0x01000000 0 0x00000000
429 0 0x00100000>;
430 };
431 };
432};
diff --git a/arch/powerpc/boot/dts/mpc8541cds.dts b/arch/powerpc/boot/dts/mpc8541cds.dts
index 21ad71b825c1..c4469f19ff82 100644
--- a/arch/powerpc/boot/dts/mpc8541cds.dts
+++ b/arch/powerpc/boot/dts/mpc8541cds.dts
@@ -189,6 +189,17 @@
189 interrupt-parent = <&mpic>; 189 interrupt-parent = <&mpic>;
190 }; 190 };
191 191
192 crypto@30000 {
193 compatible = "fsl,sec2.0";
194 reg = <0x30000 0x10000>;
195 interrupts = <45 2>;
196 interrupt-parent = <&mpic>;
197 fsl,num-channels = <4>;
198 fsl,channel-fifo-len = <24>;
199 fsl,exec-units-mask = <0x7e>;
200 fsl,descriptor-types-mask = <0x01010ebf>;
201 };
202
192 mpic: pic@40000 { 203 mpic: pic@40000 {
193 interrupt-controller; 204 interrupt-controller;
194 #address-cells = <0>; 205 #address-cells = <0>;
diff --git a/arch/powerpc/boot/dts/mpc8544ds.dts b/arch/powerpc/boot/dts/mpc8544ds.dts
index 6cf533f4b5fb..7d3829d3495e 100644
--- a/arch/powerpc/boot/dts/mpc8544ds.dts
+++ b/arch/powerpc/boot/dts/mpc8544ds.dts
@@ -210,6 +210,17 @@
210 fsl,has-rstcr; 210 fsl,has-rstcr;
211 }; 211 };
212 212
213 crypto@30000 {
214 compatible = "fsl,sec2.1", "fsl,sec2.0";
215 reg = <0x30000 0x10000>;
216 interrupts = <45 2>;
217 interrupt-parent = <&mpic>;
218 fsl,num-channels = <4>;
219 fsl,channel-fifo-len = <24>;
220 fsl,exec-units-mask = <0xfe>;
221 fsl,descriptor-types-mask = <0x12b0ebf>;
222 };
223
213 mpic: pic@40000 { 224 mpic: pic@40000 {
214 interrupt-controller; 225 interrupt-controller;
215 #address-cells = <0>; 226 #address-cells = <0>;
diff --git a/arch/powerpc/boot/dts/mpc8548cds.dts b/arch/powerpc/boot/dts/mpc8548cds.dts
index d1fa6bbfaea0..d84466bb7eca 100644
--- a/arch/powerpc/boot/dts/mpc8548cds.dts
+++ b/arch/powerpc/boot/dts/mpc8548cds.dts
@@ -249,6 +249,17 @@
249 fsl,has-rstcr; 249 fsl,has-rstcr;
250 }; 250 };
251 251
252 crypto@30000 {
253 compatible = "fsl,sec2.1", "fsl,sec2.0";
254 reg = <0x30000 0x10000>;
255 interrupts = <45 2>;
256 interrupt-parent = <&mpic>;
257 fsl,num-channels = <4>;
258 fsl,channel-fifo-len = <24>;
259 fsl,exec-units-mask = <0xfe>;
260 fsl,descriptor-types-mask = <0x12b0ebf>;
261 };
262
252 mpic: pic@40000 { 263 mpic: pic@40000 {
253 interrupt-controller; 264 interrupt-controller;
254 #address-cells = <0>; 265 #address-cells = <0>;
diff --git a/arch/powerpc/boot/dts/mpc8555cds.dts b/arch/powerpc/boot/dts/mpc8555cds.dts
index 6fc8059b5a01..e03a78006283 100644
--- a/arch/powerpc/boot/dts/mpc8555cds.dts
+++ b/arch/powerpc/boot/dts/mpc8555cds.dts
@@ -189,6 +189,17 @@
189 interrupt-parent = <&mpic>; 189 interrupt-parent = <&mpic>;
190 }; 190 };
191 191
192 crypto@30000 {
193 compatible = "fsl,sec2.0";
194 reg = <0x30000 0x10000>;
195 interrupts = <45 2>;
196 interrupt-parent = <&mpic>;
197 fsl,num-channels = <4>;
198 fsl,channel-fifo-len = <24>;
199 fsl,exec-units-mask = <0x7e>;
200 fsl,descriptor-types-mask = <0x01010ebf>;
201 };
202
192 mpic: pic@40000 { 203 mpic: pic@40000 {
193 interrupt-controller; 204 interrupt-controller;
194 #address-cells = <0>; 205 #address-cells = <0>;
diff --git a/arch/powerpc/boot/dts/mpc8568mds.dts b/arch/powerpc/boot/dts/mpc8568mds.dts
index be9a289c0d62..9c30a34821dc 100644
--- a/arch/powerpc/boot/dts/mpc8568mds.dts
+++ b/arch/powerpc/boot/dts/mpc8568mds.dts
@@ -231,16 +231,14 @@
231 }; 231 };
232 232
233 crypto@30000 { 233 crypto@30000 {
234 device_type = "crypto"; 234 compatible = "fsl,sec2.1", "fsl,sec2.0";
235 model = "SEC2"; 235 reg = <0x30000 0x10000>;
236 compatible = "talitos";
237 reg = <0x30000 0xf000>;
238 interrupts = <45 2>; 236 interrupts = <45 2>;
239 interrupt-parent = <&mpic>; 237 interrupt-parent = <&mpic>;
240 num-channels = <4>; 238 fsl,num-channels = <4>;
241 channel-fifo-len = <24>; 239 fsl,channel-fifo-len = <24>;
242 exec-units-mask = <0xfe>; 240 fsl,exec-units-mask = <0xfe>;
243 descriptor-types-mask = <0x12b0ebf>; 241 fsl,descriptor-types-mask = <0x12b0ebf>;
244 }; 242 };
245 243
246 mpic: pic@40000 { 244 mpic: pic@40000 {
diff --git a/arch/powerpc/boot/dts/mpc8572ds.dts b/arch/powerpc/boot/dts/mpc8572ds.dts
index cb06325f0b79..08c61e3daecc 100644
--- a/arch/powerpc/boot/dts/mpc8572ds.dts
+++ b/arch/powerpc/boot/dts/mpc8572ds.dts
@@ -321,6 +321,18 @@
321 interrupt-parent = <&mpic>; 321 interrupt-parent = <&mpic>;
322 }; 322 };
323 323
324 crypto@30000 {
325 compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2",
326 "fsl,sec2.1", "fsl,sec2.0";
327 reg = <0x30000 0x10000>;
328 interrupts = <45 2 58 2>;
329 interrupt-parent = <&mpic>;
330 fsl,num-channels = <4>;
331 fsl,channel-fifo-len = <24>;
332 fsl,exec-units-mask = <0x9fe>;
333 fsl,descriptor-types-mask = <0x3ab0ebf>;
334 };
335
324 mpic: pic@40000 { 336 mpic: pic@40000 {
325 interrupt-controller; 337 interrupt-controller;
326 #address-cells = <0>; 338 #address-cells = <0>;
diff --git a/arch/powerpc/boot/dts/mpc8610_hpcd.dts b/arch/powerpc/boot/dts/mpc8610_hpcd.dts
index 65a5f64b2339..981941e5d7a5 100644
--- a/arch/powerpc/boot/dts/mpc8610_hpcd.dts
+++ b/arch/powerpc/boot/dts/mpc8610_hpcd.dts
@@ -363,7 +363,7 @@
363 0xe000 0 0 4 &mpic 1 1 363 0xe000 0 0 4 &mpic 1 1
364 364
365 /* IDSEL 0x1f */ 365 /* IDSEL 0x1f */
366 0xf800 0 0 1 &mpic 3 0 366 0xf800 0 0 1 &mpic 3 2
367 0xf800 0 0 2 &mpic 0 1 367 0xf800 0 0 2 &mpic 0 1
368 >; 368 >;
369 369
diff --git a/arch/powerpc/boot/dts/mpc866ads.dts b/arch/powerpc/boot/dts/mpc866ads.dts
index 765e43c997da..bd700651f360 100644
--- a/arch/powerpc/boot/dts/mpc866ads.dts
+++ b/arch/powerpc/boot/dts/mpc866ads.dts
@@ -171,6 +171,17 @@
171 fsl,cpm-command = <0000>; 171 fsl,cpm-command = <0000>;
172 linux,network-index = <1>; 172 linux,network-index = <1>;
173 }; 173 };
174
175 i2c@860 {
176 compatible = "fsl,mpc866-i2c",
177 "fsl,cpm1-i2c";
178 reg = <0x860 0x20 0x3c80 0x30>;
179 interrupts = <16>;
180 interrupt-parent = <&CPM_PIC>;
181 fsl,cpm-command = <0x10>;
182 #address-cells = <1>;
183 #size-cells = <0>;
184 };
174 }; 185 };
175 }; 186 };
176 187
diff --git a/arch/powerpc/boot/dts/mpc885ads.dts b/arch/powerpc/boot/dts/mpc885ads.dts
index 9895043722b9..b123e9f7a5a8 100644
--- a/arch/powerpc/boot/dts/mpc885ads.dts
+++ b/arch/powerpc/boot/dts/mpc885ads.dts
@@ -215,6 +215,17 @@
215 fsl,cpm-command = <0x80>; 215 fsl,cpm-command = <0x80>;
216 linux,network-index = <2>; 216 linux,network-index = <2>;
217 }; 217 };
218
219 i2c@860 {
220 compatible = "fsl,mpc885-i2c",
221 "fsl,cpm1-i2c";
222 reg = <0x860 0x20 0x3c80 0x30>;
223 interrupts = <16>;
224 interrupt-parent = <&CPM_PIC>;
225 fsl,cpm-command = <0x10>;
226 #address-cells = <1>;
227 #size-cells = <0>;
228 };
218 }; 229 };
219 }; 230 };
220 231
diff --git a/arch/powerpc/boot/dts/rainier.dts b/arch/powerpc/boot/dts/rainier.dts
index 2afb63a42ea9..9684c80e4093 100644
--- a/arch/powerpc/boot/dts/rainier.dts
+++ b/arch/powerpc/boot/dts/rainier.dts
@@ -265,7 +265,7 @@
265 #size-cells = <0>; 265 #size-cells = <0>;
266 interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4 266 interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4
267 /*Wake*/ 0x1 &UIC1 0x1d 0x4>; 267 /*Wake*/ 0x1 &UIC1 0x1d 0x4>;
268 reg = <0xef600e00 0x00000070>; 268 reg = <0xef600e00 0x00000074>;
269 local-mac-address = [000000000000]; 269 local-mac-address = [000000000000];
270 mal-device = <&MAL0>; 270 mal-device = <&MAL0>;
271 mal-tx-channel = <0>; 271 mal-tx-channel = <0>;
@@ -294,7 +294,7 @@
294 #size-cells = <0>; 294 #size-cells = <0>;
295 interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4 295 interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4
296 /*Wake*/ 0x1 &UIC1 0x1f 0x4>; 296 /*Wake*/ 0x1 &UIC1 0x1f 0x4>;
297 reg = <0xef600f00 0x00000070>; 297 reg = <0xef600f00 0x00000074>;
298 local-mac-address = [000000000000]; 298 local-mac-address = [000000000000];
299 mal-device = <&MAL0>; 299 mal-device = <&MAL0>;
300 mal-tx-channel = <1>; 300 mal-tx-channel = <1>;
diff --git a/arch/powerpc/boot/dts/sbc8349.dts b/arch/powerpc/boot/dts/sbc8349.dts
index 5b76bb26085a..45f789b56709 100644
--- a/arch/powerpc/boot/dts/sbc8349.dts
+++ b/arch/powerpc/boot/dts/sbc8349.dts
@@ -221,19 +221,15 @@
221 interrupt-parent = <&ipic>; 221 interrupt-parent = <&ipic>;
222 }; 222 };
223 223
224 /* May need to remove if on a part without crypto engine */
225 crypto@30000 { 224 crypto@30000 {
226 model = "SEC2"; 225 compatible = "fsl,sec2.0";
227 compatible = "talitos";
228 reg = <0x30000 0x10000>; 226 reg = <0x30000 0x10000>;
229 interrupts = <11 0x8>; 227 interrupts = <11 0x8>;
230 interrupt-parent = <&ipic>; 228 interrupt-parent = <&ipic>;
231 num-channels = <4>; 229 fsl,num-channels = <4>;
232 channel-fifo-len = <24>; 230 fsl,channel-fifo-len = <24>;
233 exec-units-mask = <0x0000007e>; 231 fsl,exec-units-mask = <0x7e>;
234 /* desc mask is for rev2.0, 232 fsl,descriptor-types-mask = <0x01010ebf>;
235 * we need runtime fixup for >2.0 */
236 descriptor-types-mask = <0x01010ebf>;
237 }; 233 };
238 234
239 /* IPIC 235 /* IPIC
diff --git a/arch/powerpc/boot/dts/sbc8548.dts b/arch/powerpc/boot/dts/sbc8548.dts
index 21cbacb1000c..333552b4e90d 100644
--- a/arch/powerpc/boot/dts/sbc8548.dts
+++ b/arch/powerpc/boot/dts/sbc8548.dts
@@ -304,6 +304,17 @@
304 fsl,has-rstcr; 304 fsl,has-rstcr;
305 }; 305 };
306 306
307 crypto@30000 {
308 compatible = "fsl,sec2.1", "fsl,sec2.0";
309 reg = <0x30000 0x10000>;
310 interrupts = <45 2>;
311 interrupt-parent = <&mpic>;
312 fsl,num-channels = <4>;
313 fsl,channel-fifo-len = <24>;
314 fsl,exec-units-mask = <0xfe>;
315 fsl,descriptor-types-mask = <0x12b0ebf>;
316 };
317
307 mpic: pic@40000 { 318 mpic: pic@40000 {
308 interrupt-controller; 319 interrupt-controller;
309 #address-cells = <0>; 320 #address-cells = <0>;
diff --git a/arch/powerpc/boot/dts/sequoia.dts b/arch/powerpc/boot/dts/sequoia.dts
index 149dabc55217..72d15f075d34 100644
--- a/arch/powerpc/boot/dts/sequoia.dts
+++ b/arch/powerpc/boot/dts/sequoia.dts
@@ -280,7 +280,7 @@
280 #size-cells = <0>; 280 #size-cells = <0>;
281 interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4 281 interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4
282 /*Wake*/ 0x1 &UIC1 0x1d 0x4>; 282 /*Wake*/ 0x1 &UIC1 0x1d 0x4>;
283 reg = <0xef600e00 0x00000070>; 283 reg = <0xef600e00 0x00000074>;
284 local-mac-address = [000000000000]; 284 local-mac-address = [000000000000];
285 mal-device = <&MAL0>; 285 mal-device = <&MAL0>;
286 mal-tx-channel = <0>; 286 mal-tx-channel = <0>;
@@ -309,7 +309,7 @@
309 #size-cells = <0>; 309 #size-cells = <0>;
310 interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4 310 interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4
311 /*Wake*/ 0x1 &UIC1 0x1f 0x4>; 311 /*Wake*/ 0x1 &UIC1 0x1f 0x4>;
312 reg = <0xef600f00 0x00000070>; 312 reg = <0xef600f00 0x00000074>;
313 local-mac-address = [000000000000]; 313 local-mac-address = [000000000000];
314 mal-device = <&MAL0>; 314 mal-device = <&MAL0>;
315 mal-tx-channel = <1>; 315 mal-tx-channel = <1>;
diff --git a/arch/powerpc/boot/dts/taishan.dts b/arch/powerpc/boot/dts/taishan.dts
index d4867ded8699..058438f9629b 100644
--- a/arch/powerpc/boot/dts/taishan.dts
+++ b/arch/powerpc/boot/dts/taishan.dts
@@ -287,7 +287,7 @@
287 compatible = "ibm,emac-440gx", "ibm,emac4"; 287 compatible = "ibm,emac-440gx", "ibm,emac4";
288 interrupt-parent = <&UIC1>; 288 interrupt-parent = <&UIC1>;
289 interrupts = <0x1c 0x4 0x1d 0x4>; 289 interrupts = <0x1c 0x4 0x1d 0x4>;
290 reg = <0x40000800 0x00000070>; 290 reg = <0x40000800 0x00000074>;
291 local-mac-address = [000000000000]; // Filled in by zImage 291 local-mac-address = [000000000000]; // Filled in by zImage
292 mal-device = <&MAL0>; 292 mal-device = <&MAL0>;
293 mal-tx-channel = <0>; 293 mal-tx-channel = <0>;
@@ -307,7 +307,7 @@
307 compatible = "ibm,emac-440gx", "ibm,emac4"; 307 compatible = "ibm,emac-440gx", "ibm,emac4";
308 interrupt-parent = <&UIC1>; 308 interrupt-parent = <&UIC1>;
309 interrupts = <0x1e 0x4 0x1f 0x4>; 309 interrupts = <0x1e 0x4 0x1f 0x4>;
310 reg = <0x40000900 0x00000070>; 310 reg = <0x40000900 0x00000074>;
311 local-mac-address = [000000000000]; // Filled in by zImage 311 local-mac-address = [000000000000]; // Filled in by zImage
312 mal-device = <&MAL0>; 312 mal-device = <&MAL0>;
313 mal-tx-channel = <1>; 313 mal-tx-channel = <1>;
@@ -327,7 +327,7 @@
327 compatible = "ibm,emac-440gx", "ibm,emac4"; 327 compatible = "ibm,emac-440gx", "ibm,emac4";
328 interrupt-parent = <&UIC2>; 328 interrupt-parent = <&UIC2>;
329 interrupts = <0x0 0x4 0x1 0x4>; 329 interrupts = <0x0 0x4 0x1 0x4>;
330 reg = <0x40000c00 0x00000070>; 330 reg = <0x40000c00 0x00000074>;
331 local-mac-address = [000000000000]; // Filled in by zImage 331 local-mac-address = [000000000000]; // Filled in by zImage
332 mal-device = <&MAL0>; 332 mal-device = <&MAL0>;
333 mal-tx-channel = <2>; 333 mal-tx-channel = <2>;
@@ -351,7 +351,7 @@
351 compatible = "ibm,emac-440gx", "ibm,emac4"; 351 compatible = "ibm,emac-440gx", "ibm,emac4";
352 interrupt-parent = <&UIC2>; 352 interrupt-parent = <&UIC2>;
353 interrupts = <0x2 0x4 0x3 0x4>; 353 interrupts = <0x2 0x4 0x3 0x4>;
354 reg = <0x40000e00 0x00000070>; 354 reg = <0x40000e00 0x00000074>;
355 local-mac-address = [000000000000]; // Filled in by zImage 355 local-mac-address = [000000000000]; // Filled in by zImage
356 mal-device = <&MAL0>; 356 mal-device = <&MAL0>;
357 mal-tx-channel = <3>; 357 mal-tx-channel = <3>;
diff --git a/arch/powerpc/boot/dts/tqm8541.dts b/arch/powerpc/boot/dts/tqm8541.dts
index d083a648a81d..d76441ec5dc7 100644
--- a/arch/powerpc/boot/dts/tqm8541.dts
+++ b/arch/powerpc/boot/dts/tqm8541.dts
@@ -200,6 +200,17 @@
200 interrupt-parent = <&mpic>; 200 interrupt-parent = <&mpic>;
201 }; 201 };
202 202
203 crypto@30000 {
204 compatible = "fsl,sec2.0";
205 reg = <0x30000 0x10000>;
206 interrupts = <45 2>;
207 interrupt-parent = <&mpic>;
208 fsl,num-channels = <4>;
209 fsl,channel-fifo-len = <24>;
210 fsl,exec-units-mask = <0x7e>;
211 fsl,descriptor-types-mask = <0x01010ebf>;
212 };
213
203 mpic: pic@40000 { 214 mpic: pic@40000 {
204 interrupt-controller; 215 interrupt-controller;
205 #address-cells = <0>; 216 #address-cells = <0>;
diff --git a/arch/powerpc/boot/dts/tqm8548.dts b/arch/powerpc/boot/dts/tqm8548.dts
index 13cd7280cb26..2563112cabd3 100644
--- a/arch/powerpc/boot/dts/tqm8548.dts
+++ b/arch/powerpc/boot/dts/tqm8548.dts
@@ -83,6 +83,11 @@
83 interrupts = <43 2>; 83 interrupts = <43 2>;
84 interrupt-parent = <&mpic>; 84 interrupt-parent = <&mpic>;
85 dfsrr; 85 dfsrr;
86
87 rtc@68 {
88 compatible = "dallas,ds1337";
89 reg = <0x68>;
90 };
86 }; 91 };
87 92
88 i2c@3100 { 93 i2c@3100 {
diff --git a/arch/powerpc/boot/dts/tqm8555.dts b/arch/powerpc/boot/dts/tqm8555.dts
index 96b0b94ad925..6f7ea59c4846 100644
--- a/arch/powerpc/boot/dts/tqm8555.dts
+++ b/arch/powerpc/boot/dts/tqm8555.dts
@@ -200,6 +200,17 @@
200 interrupt-parent = <&mpic>; 200 interrupt-parent = <&mpic>;
201 }; 201 };
202 202
203 crypto@30000 {
204 compatible = "fsl,sec2.0";
205 reg = <0x30000 0x10000>;
206 interrupts = <45 2>;
207 interrupt-parent = <&mpic>;
208 fsl,num-channels = <4>;
209 fsl,channel-fifo-len = <24>;
210 fsl,exec-units-mask = <0x7e>;
211 fsl,descriptor-types-mask = <0x01010ebf>;
212 };
213
203 mpic: pic@40000 { 214 mpic: pic@40000 {
204 interrupt-controller; 215 interrupt-controller;
205 #address-cells = <0>; 216 #address-cells = <0>;
diff --git a/arch/powerpc/boot/dts/virtex440-ml507.dts b/arch/powerpc/boot/dts/virtex440-ml507.dts
new file mode 100644
index 000000000000..dc8e78e2dceb
--- /dev/null
+++ b/arch/powerpc/boot/dts/virtex440-ml507.dts
@@ -0,0 +1,296 @@
1/*
2 * This file supports the Xilinx ML507 board with the 440 processor.
3 * A reference design for the FPGA is provided at http://git.xilinx.com.
4 *
5 * (C) Copyright 2008 Xilinx, Inc.
6 *
7 * This file is licensed under the terms of the GNU General Public License
8 * version 2. This program is licensed "as is" without any warranty of any
9 * kind, whether express or implied.
10 */
11
12/dts-v1/;
13
14/ {
15 #address-cells = <1>;
16 #size-cells = <1>;
17 compatible = "xlnx,virtex440";
18 dcr-parent = <&ppc440_0>;
19 model = "testing";
20 DDR2_SDRAM: memory@0 {
21 device_type = "memory";
22 reg = < 0 0x10000000 >;
23 } ;
24 chosen {
25 bootargs = "console=ttyS0 ip=on root=/dev/ram";
26 linux,stdout-path = "/plb@0/serial@83e00000";
27 } ;
28 cpus {
29 #address-cells = <1>;
30 #cpus = <1>;
31 #size-cells = <0>;
32 ppc440_0: cpu@0 {
33 clock-frequency = <400000000>;
34 compatible = "PowerPC,440", "ibm,ppc440";
35 d-cache-line-size = <0x20>;
36 d-cache-size = <0x8000>;
37 dcr-access-method = "native";
38 dcr-controller ;
39 device_type = "cpu";
40 i-cache-line-size = <0x20>;
41 i-cache-size = <0x8000>;
42 model = "PowerPC,440";
43 reg = <0>;
44 timebase-frequency = <400000000>;
45 xlnx,apu-control = <1>;
46 xlnx,apu-udi-0 = <0>;
47 xlnx,apu-udi-1 = <0>;
48 xlnx,apu-udi-10 = <0>;
49 xlnx,apu-udi-11 = <0>;
50 xlnx,apu-udi-12 = <0>;
51 xlnx,apu-udi-13 = <0>;
52 xlnx,apu-udi-14 = <0>;
53 xlnx,apu-udi-15 = <0>;
54 xlnx,apu-udi-2 = <0>;
55 xlnx,apu-udi-3 = <0>;
56 xlnx,apu-udi-4 = <0>;
57 xlnx,apu-udi-5 = <0>;
58 xlnx,apu-udi-6 = <0>;
59 xlnx,apu-udi-7 = <0>;
60 xlnx,apu-udi-8 = <0>;
61 xlnx,apu-udi-9 = <0>;
62 xlnx,dcr-autolock-enable = <1>;
63 xlnx,dcu-rd-ld-cache-plb-prio = <0>;
64 xlnx,dcu-rd-noncache-plb-prio = <0>;
65 xlnx,dcu-rd-touch-plb-prio = <0>;
66 xlnx,dcu-rd-urgent-plb-prio = <0>;
67 xlnx,dcu-wr-flush-plb-prio = <0>;
68 xlnx,dcu-wr-store-plb-prio = <0>;
69 xlnx,dcu-wr-urgent-plb-prio = <0>;
70 xlnx,dma0-control = <0>;
71 xlnx,dma0-plb-prio = <0>;
72 xlnx,dma0-rxchannelctrl = <0x1010000>;
73 xlnx,dma0-rxirqtimer = <0x3ff>;
74 xlnx,dma0-txchannelctrl = <0x1010000>;
75 xlnx,dma0-txirqtimer = <0x3ff>;
76 xlnx,dma1-control = <0>;
77 xlnx,dma1-plb-prio = <0>;
78 xlnx,dma1-rxchannelctrl = <0x1010000>;
79 xlnx,dma1-rxirqtimer = <0x3ff>;
80 xlnx,dma1-txchannelctrl = <0x1010000>;
81 xlnx,dma1-txirqtimer = <0x3ff>;
82 xlnx,dma2-control = <0>;
83 xlnx,dma2-plb-prio = <0>;
84 xlnx,dma2-rxchannelctrl = <0x1010000>;
85 xlnx,dma2-rxirqtimer = <0x3ff>;
86 xlnx,dma2-txchannelctrl = <0x1010000>;
87 xlnx,dma2-txirqtimer = <0x3ff>;
88 xlnx,dma3-control = <0>;
89 xlnx,dma3-plb-prio = <0>;
90 xlnx,dma3-rxchannelctrl = <0x1010000>;
91 xlnx,dma3-rxirqtimer = <0x3ff>;
92 xlnx,dma3-txchannelctrl = <0x1010000>;
93 xlnx,dma3-txirqtimer = <0x3ff>;
94 xlnx,endian-reset = <0>;
95 xlnx,generate-plb-timespecs = <1>;
96 xlnx,icu-rd-fetch-plb-prio = <0>;
97 xlnx,icu-rd-spec-plb-prio = <0>;
98 xlnx,icu-rd-touch-plb-prio = <0>;
99 xlnx,interconnect-imask = <0xffffffff>;
100 xlnx,mplb-allow-lock-xfer = <1>;
101 xlnx,mplb-arb-mode = <0>;
102 xlnx,mplb-awidth = <0x20>;
103 xlnx,mplb-counter = <0x500>;
104 xlnx,mplb-dwidth = <0x80>;
105 xlnx,mplb-max-burst = <8>;
106 xlnx,mplb-native-dwidth = <0x80>;
107 xlnx,mplb-p2p = <0>;
108 xlnx,mplb-prio-dcur = <2>;
109 xlnx,mplb-prio-dcuw = <3>;
110 xlnx,mplb-prio-icu = <4>;
111 xlnx,mplb-prio-splb0 = <1>;
112 xlnx,mplb-prio-splb1 = <0>;
113 xlnx,mplb-read-pipe-enable = <1>;
114 xlnx,mplb-sync-tattribute = <0>;
115 xlnx,mplb-wdog-enable = <1>;
116 xlnx,mplb-write-pipe-enable = <1>;
117 xlnx,mplb-write-post-enable = <1>;
118 xlnx,num-dma = <1>;
119 xlnx,pir = <0xf>;
120 xlnx,ppc440mc-addr-base = <0>;
121 xlnx,ppc440mc-addr-high = <0xfffffff>;
122 xlnx,ppc440mc-arb-mode = <0>;
123 xlnx,ppc440mc-bank-conflict-mask = <0xc00000>;
124 xlnx,ppc440mc-control = <0xf810008f>;
125 xlnx,ppc440mc-max-burst = <8>;
126 xlnx,ppc440mc-prio-dcur = <2>;
127 xlnx,ppc440mc-prio-dcuw = <3>;
128 xlnx,ppc440mc-prio-icu = <4>;
129 xlnx,ppc440mc-prio-splb0 = <1>;
130 xlnx,ppc440mc-prio-splb1 = <0>;
131 xlnx,ppc440mc-row-conflict-mask = <0x3ffe00>;
132 xlnx,ppcdm-asyncmode = <0>;
133 xlnx,ppcds-asyncmode = <0>;
134 xlnx,user-reset = <0>;
135 DMA0: sdma@80 {
136 compatible = "xlnx,ll-dma-1.00.a";
137 dcr-reg = < 0x80 0x11 >;
138 interrupt-parent = <&xps_intc_0>;
139 interrupts = < 9 2 0xa 2 >;
140 } ;
141 } ;
142 } ;
143 plb_v46_0: plb@0 {
144 #address-cells = <1>;
145 #size-cells = <1>;
146 compatible = "xlnx,plb-v46-1.02.a", "simple-bus";
147 ranges ;
148 DIP_Switches_8Bit: gpio@81460000 {
149 compatible = "xlnx,xps-gpio-1.00.a";
150 interrupt-parent = <&xps_intc_0>;
151 interrupts = < 6 2 >;
152 reg = < 0x81460000 0x10000 >;
153 xlnx,all-inputs = <1>;
154 xlnx,all-inputs-2 = <0>;
155 xlnx,dout-default = <0>;
156 xlnx,dout-default-2 = <0>;
157 xlnx,family = "virtex5";
158 xlnx,gpio-width = <8>;
159 xlnx,interrupt-present = <1>;
160 xlnx,is-bidir = <1>;
161 xlnx,is-bidir-2 = <1>;
162 xlnx,is-dual = <0>;
163 xlnx,tri-default = <0xffffffff>;
164 xlnx,tri-default-2 = <0xffffffff>;
165 } ;
166 Hard_Ethernet_MAC: xps-ll-temac@81c00000 {
167 #address-cells = <1>;
168 #size-cells = <1>;
169 compatible = "xlnx,compound";
170 ethernet@81c00000 {
171 compatible = "xlnx,xps-ll-temac-1.01.b";
172 device_type = "network";
173 interrupt-parent = <&xps_intc_0>;
174 interrupts = < 5 2 >;
175 llink-connected = <&DMA0>;
176 local-mac-address = [ 02 00 00 00 00 00 ];
177 reg = < 0x81c00000 0x40 >;
178 xlnx,bus2core-clk-ratio = <1>;
179 xlnx,phy-type = <1>;
180 xlnx,phyaddr = <1>;
181 xlnx,rxcsum = <1>;
182 xlnx,rxfifo = <0x1000>;
183 xlnx,temac-type = <0>;
184 xlnx,txcsum = <1>;
185 xlnx,txfifo = <0x1000>;
186 } ;
187 } ;
188 LEDs_8Bit: gpio@81400000 {
189 compatible = "xlnx,xps-gpio-1.00.a";
190 reg = < 0x81400000 0x10000 >;
191 xlnx,all-inputs = <0>;
192 xlnx,all-inputs-2 = <0>;
193 xlnx,dout-default = <0>;
194 xlnx,dout-default-2 = <0>;
195 xlnx,family = "virtex5";
196 xlnx,gpio-width = <8>;
197 xlnx,interrupt-present = <0>;
198 xlnx,is-bidir = <1>;
199 xlnx,is-bidir-2 = <1>;
200 xlnx,is-dual = <0>;
201 xlnx,tri-default = <0xffffffff>;
202 xlnx,tri-default-2 = <0xffffffff>;
203 } ;
204 LEDs_Positions: gpio@81420000 {
205 compatible = "xlnx,xps-gpio-1.00.a";
206 reg = < 0x81420000 0x10000 >;
207 xlnx,all-inputs = <0>;
208 xlnx,all-inputs-2 = <0>;
209 xlnx,dout-default = <0>;
210 xlnx,dout-default-2 = <0>;
211 xlnx,family = "virtex5";
212 xlnx,gpio-width = <5>;
213 xlnx,interrupt-present = <0>;
214 xlnx,is-bidir = <1>;
215 xlnx,is-bidir-2 = <1>;
216 xlnx,is-dual = <0>;
217 xlnx,tri-default = <0xffffffff>;
218 xlnx,tri-default-2 = <0xffffffff>;
219 } ;
220 Push_Buttons_5Bit: gpio@81440000 {
221 compatible = "xlnx,xps-gpio-1.00.a";
222 interrupt-parent = <&xps_intc_0>;
223 interrupts = < 7 2 >;
224 reg = < 0x81440000 0x10000 >;
225 xlnx,all-inputs = <1>;
226 xlnx,all-inputs-2 = <0>;
227 xlnx,dout-default = <0>;
228 xlnx,dout-default-2 = <0>;
229 xlnx,family = "virtex5";
230 xlnx,gpio-width = <5>;
231 xlnx,interrupt-present = <1>;
232 xlnx,is-bidir = <1>;
233 xlnx,is-bidir-2 = <1>;
234 xlnx,is-dual = <0>;
235 xlnx,tri-default = <0xffffffff>;
236 xlnx,tri-default-2 = <0xffffffff>;
237 } ;
238 RS232_Uart_1: serial@83e00000 {
239 clock-frequency = <100000000>;
240 compatible = "xlnx,xps-uart16550-2.00.a", "ns16550";
241 current-speed = <0x2580>;
242 device_type = "serial";
243 interrupt-parent = <&xps_intc_0>;
244 interrupts = < 8 2 >;
245 reg = < 0x83e00000 0x10000 >;
246 reg-offset = <3>;
247 reg-shift = <2>;
248 xlnx,family = "virtex5";
249 xlnx,has-external-rclk = <0>;
250 xlnx,has-external-xin = <0>;
251 xlnx,is-a-16550 = <1>;
252 } ;
253 SysACE_CompactFlash: sysace@83600000 {
254 compatible = "xlnx,xps-sysace-1.00.a";
255 interrupt-parent = <&xps_intc_0>;
256 interrupts = < 4 2 >;
257 reg = < 0x83600000 0x10000 >;
258 xlnx,family = "virtex5";
259 xlnx,mem-width = <0x10>;
260 } ;
261 xps_bram_if_cntlr_1: xps-bram-if-cntlr@ffff0000 {
262 compatible = "xlnx,xps-bram-if-cntlr-1.00.a";
263 reg = < 0xffff0000 0x10000 >;
264 xlnx,family = "virtex5";
265 } ;
266 xps_intc_0: interrupt-controller@81800000 {
267 #interrupt-cells = <2>;
268 compatible = "xlnx,xps-intc-1.00.a";
269 interrupt-controller ;
270 reg = < 0x81800000 0x10000 >;
271 xlnx,num-intr-inputs = <0xb>;
272 } ;
273 xps_timebase_wdt_1: xps-timebase-wdt@83a00000 {
274 compatible = "xlnx,xps-timebase-wdt-1.00.b";
275 interrupt-parent = <&xps_intc_0>;
276 interrupts = < 2 0 1 2 >;
277 reg = < 0x83a00000 0x10000 >;
278 xlnx,family = "virtex5";
279 xlnx,wdt-enable-once = <0>;
280 xlnx,wdt-interval = <0x1e>;
281 } ;
282 xps_timer_1: timer@83c00000 {
283 compatible = "xlnx,xps-timer-1.00.a";
284 interrupt-parent = <&xps_intc_0>;
285 interrupts = < 3 2 >;
286 reg = < 0x83c00000 0x10000 >;
287 xlnx,count-width = <0x20>;
288 xlnx,family = "virtex5";
289 xlnx,gen0-assert = <1>;
290 xlnx,gen1-assert = <1>;
291 xlnx,one-timer-only = <1>;
292 xlnx,trig0-assert = <1>;
293 xlnx,trig1-assert = <1>;
294 } ;
295 } ;
296} ;
diff --git a/arch/powerpc/boot/simpleboot.c b/arch/powerpc/boot/simpleboot.c
index 86cd285bccc6..c58a0dada992 100644
--- a/arch/powerpc/boot/simpleboot.c
+++ b/arch/powerpc/boot/simpleboot.c
@@ -23,6 +23,8 @@
23 23
24BSS_STACK(4*1024); 24BSS_STACK(4*1024);
25 25
26extern int platform_specific_init(void) __attribute__((weak));
27
26void platform_init(unsigned long r3, unsigned long r4, unsigned long r5, 28void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
27 unsigned long r6, unsigned long r7) 29 unsigned long r6, unsigned long r7)
28{ 30{
@@ -80,5 +82,9 @@ void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
80 82
81 /* prepare the device tree and find the console */ 83 /* prepare the device tree and find the console */
82 fdt_init(_dtb_start); 84 fdt_init(_dtb_start);
85
86 if (platform_specific_init)
87 platform_specific_init();
88
83 serial_console_init(); 89 serial_console_init();
84} 90}
diff --git a/arch/powerpc/boot/virtex.c b/arch/powerpc/boot/virtex.c
new file mode 100644
index 000000000000..f622805f8000
--- /dev/null
+++ b/arch/powerpc/boot/virtex.c
@@ -0,0 +1,100 @@
1/*
2 * The platform specific code for virtex devices since a boot loader is not
3 * always used.
4 *
5 * (C) Copyright 2008 Xilinx, Inc.
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published
9 * by the Free Software Foundation.
10 */
11
12#include "ops.h"
13#include "io.h"
14#include "stdio.h"
15
16#define UART_DLL 0 /* Out: Divisor Latch Low */
17#define UART_DLM 1 /* Out: Divisor Latch High */
18#define UART_FCR 2 /* Out: FIFO Control Register */
19#define UART_FCR_CLEAR_RCVR 0x02 /* Clear the RCVR FIFO */
20#define UART_FCR_CLEAR_XMIT 0x04 /* Clear the XMIT FIFO */
21#define UART_LCR 3 /* Out: Line Control Register */
22#define UART_MCR 4 /* Out: Modem Control Register */
23#define UART_MCR_RTS 0x02 /* RTS complement */
24#define UART_MCR_DTR 0x01 /* DTR complement */
25#define UART_LCR_DLAB 0x80 /* Divisor latch access bit */
26#define UART_LCR_WLEN8 0x03 /* Wordlength: 8 bits */
27
28static int virtex_ns16550_console_init(void *devp)
29{
30 unsigned char *reg_base;
31 u32 reg_shift, reg_offset, clk, spd;
32 u16 divisor;
33 int n;
34
35 if (dt_get_virtual_reg(devp, (void **)&reg_base, 1) < 1)
36 return -1;
37
38 n = getprop(devp, "reg-offset", &reg_offset, sizeof(reg_offset));
39 if (n == sizeof(reg_offset))
40 reg_base += reg_offset;
41
42 n = getprop(devp, "reg-shift", &reg_shift, sizeof(reg_shift));
43 if (n != sizeof(reg_shift))
44 reg_shift = 0;
45
46 n = getprop(devp, "current-speed", (void *)&spd, sizeof(spd));
47 if (n != sizeof(spd))
48 spd = 9600;
49
50 /* should there be a default clock rate?*/
51 n = getprop(devp, "clock-frequency", (void *)&clk, sizeof(clk));
52 if (n != sizeof(clk))
53 return -1;
54
55 divisor = clk / (16 * spd);
56
57 /* Access baud rate */
58 out_8(reg_base + (UART_LCR << reg_shift), UART_LCR_DLAB);
59
60 /* Baud rate based on input clock */
61 out_8(reg_base + (UART_DLL << reg_shift), divisor & 0xFF);
62 out_8(reg_base + (UART_DLM << reg_shift), divisor >> 8);
63
64 /* 8 data, 1 stop, no parity */
65 out_8(reg_base + (UART_LCR << reg_shift), UART_LCR_WLEN8);
66
67 /* RTS/DTR */
68 out_8(reg_base + (UART_MCR << reg_shift), UART_MCR_RTS | UART_MCR_DTR);
69
70 /* Clear transmitter and receiver */
71 out_8(reg_base + (UART_FCR << reg_shift),
72 UART_FCR_CLEAR_XMIT | UART_FCR_CLEAR_RCVR);
73 return 0;
74}
75
76/* For virtex, the kernel may be loaded without using a bootloader and if so
77 some UARTs need more setup than is provided in the normal console init
78*/
79int platform_specific_init(void)
80{
81 void *devp;
82 char devtype[MAX_PROP_LEN];
83 char path[MAX_PATH_LEN];
84
85 devp = finddevice("/chosen");
86 if (devp == NULL)
87 return -1;
88
89 if (getprop(devp, "linux,stdout-path", path, MAX_PATH_LEN) > 0) {
90 devp = finddevice(path);
91 if (devp == NULL)
92 return -1;
93
94 if ((getprop(devp, "device_type", devtype, sizeof(devtype)) > 0)
95 && !strcmp(devtype, "serial")
96 && (dt_is_compatible(devp, "ns16550")))
97 virtex_ns16550_console_init(devp);
98 }
99 return 0;
100}
diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper
index df2358e9f1ca..644bf9d4ea00 100755
--- a/arch/powerpc/boot/wrapper
+++ b/arch/powerpc/boot/wrapper
@@ -207,7 +207,15 @@ adder875-redboot)
207 binary=y 207 binary=y
208 ;; 208 ;;
209simpleboot-virtex405-*) 209simpleboot-virtex405-*)
210 platformo="$object/virtex405-head.o $object/simpleboot.o" 210 platformo="$object/virtex405-head.o $object/simpleboot.o $object/virtex.o"
211 binary=y
212 ;;
213simpleboot-virtex440-*)
214 platformo="$object/simpleboot.o $object/virtex.o"
215 binary=y
216 ;;
217simpleboot-*)
218 platformo="$object/simpleboot.o"
211 binary=y 219 binary=y
212 ;; 220 ;;
213asp834x-redboot) 221asp834x-redboot)
diff --git a/arch/powerpc/configs/44x/virtex5_defconfig b/arch/powerpc/configs/44x/virtex5_defconfig
new file mode 100644
index 000000000000..9c41f66b5a7d
--- /dev/null
+++ b/arch/powerpc/configs/44x/virtex5_defconfig
@@ -0,0 +1,1107 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc8
4# Wed Jul 2 15:36:41 2008
5#
6# CONFIG_PPC64 is not set
7
8#
9# Processor support
10#
11# CONFIG_6xx 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
21# CONFIG_PPC_MM_SLICES is not set
22CONFIG_NOT_COHERENT_CACHE=y
23CONFIG_PPC32=y
24CONFIG_WORD_SIZE=32
25CONFIG_PPC_MERGE=y
26CONFIG_MMU=y
27CONFIG_GENERIC_CMOS_UPDATE=y
28CONFIG_GENERIC_TIME=y
29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y
38CONFIG_GENERIC_HWEIGHT=y
39CONFIG_GENERIC_CALIBRATE_DELAY=y
40CONFIG_GENERIC_FIND_NEXT_BIT=y
41# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
42CONFIG_PPC=y
43CONFIG_EARLY_PRINTK=y
44CONFIG_GENERIC_NVRAM=y
45CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
46CONFIG_ARCH_MAY_HAVE_PC_FDC=y
47CONFIG_PPC_OF=y
48CONFIG_OF=y
49CONFIG_PPC_UDBG_16550=y
50# CONFIG_GENERIC_TBSYNC is not set
51CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y
53# CONFIG_DEFAULT_UIMAGE is not set
54CONFIG_PPC_DCR_NATIVE=y
55# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_PPC_DCR=y
57CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
58
59#
60# General setup
61#
62CONFIG_EXPERIMENTAL=y
63CONFIG_BROKEN_ON_SMP=y
64CONFIG_LOCK_KERNEL=y
65CONFIG_INIT_ENV_ARG_LIMIT=32
66CONFIG_LOCALVERSION=""
67# CONFIG_LOCALVERSION_AUTO is not set
68CONFIG_SWAP=y
69CONFIG_SYSVIPC=y
70CONFIG_SYSVIPC_SYSCTL=y
71CONFIG_POSIX_MQUEUE=y
72# CONFIG_BSD_PROCESS_ACCT is not set
73# CONFIG_TASKSTATS is not set
74# CONFIG_AUDIT is not set
75CONFIG_IKCONFIG=y
76CONFIG_IKCONFIG_PROC=y
77CONFIG_LOG_BUF_SHIFT=14
78# CONFIG_CGROUPS is not set
79# CONFIG_GROUP_SCHED is not set
80CONFIG_SYSFS_DEPRECATED=y
81CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set
83CONFIG_NAMESPACES=y
84# CONFIG_UTS_NS is not set
85# CONFIG_IPC_NS is not set
86# CONFIG_USER_NS is not set
87# CONFIG_PID_NS is not set
88CONFIG_BLK_DEV_INITRD=y
89CONFIG_INITRAMFS_SOURCE=""
90# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
91CONFIG_SYSCTL=y
92# CONFIG_EMBEDDED is not set
93CONFIG_SYSCTL_SYSCALL=y
94CONFIG_SYSCTL_SYSCALL_CHECK=y
95CONFIG_KALLSYMS=y
96# CONFIG_KALLSYMS_EXTRA_PASS is not set
97CONFIG_HOTPLUG=y
98CONFIG_PRINTK=y
99CONFIG_BUG=y
100CONFIG_ELF_CORE=y
101CONFIG_COMPAT_BRK=y
102CONFIG_BASE_FULL=y
103CONFIG_FUTEX=y
104CONFIG_ANON_INODES=y
105CONFIG_EPOLL=y
106CONFIG_SIGNALFD=y
107CONFIG_TIMERFD=y
108CONFIG_EVENTFD=y
109CONFIG_SHMEM=y
110CONFIG_VM_EVENT_COUNTERS=y
111CONFIG_SLAB=y
112# CONFIG_SLUB is not set
113# CONFIG_SLOB is not set
114# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set
118CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y
120# CONFIG_HAVE_DMA_ATTRS is not set
121CONFIG_PROC_PAGE_MONITOR=y
122CONFIG_SLABINFO=y
123CONFIG_RT_MUTEXES=y
124# CONFIG_TINY_SHMEM is not set
125CONFIG_BASE_SMALL=0
126CONFIG_MODULES=y
127# CONFIG_MODULE_FORCE_LOAD is not set
128CONFIG_MODULE_UNLOAD=y
129CONFIG_MODULE_FORCE_UNLOAD=y
130CONFIG_MODVERSIONS=y
131# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_KMOD=y
133CONFIG_BLOCK=y
134# CONFIG_LBD is not set
135# CONFIG_BLK_DEV_IO_TRACE is not set
136# CONFIG_LSF is not set
137# CONFIG_BLK_DEV_BSG is not set
138
139#
140# IO Schedulers
141#
142CONFIG_IOSCHED_NOOP=y
143CONFIG_IOSCHED_AS=y
144CONFIG_IOSCHED_DEADLINE=y
145CONFIG_IOSCHED_CFQ=y
146# CONFIG_DEFAULT_AS is not set
147# CONFIG_DEFAULT_DEADLINE is not set
148CONFIG_DEFAULT_CFQ=y
149# CONFIG_DEFAULT_NOOP is not set
150CONFIG_DEFAULT_IOSCHED="cfq"
151CONFIG_CLASSIC_RCU=y
152# CONFIG_PPC4xx_PCI_EXPRESS is not set
153
154#
155# Platform support
156#
157# CONFIG_PPC_MPC512x is not set
158# CONFIG_PPC_MPC5121 is not set
159# CONFIG_PPC_CELL is not set
160# CONFIG_PPC_CELL_NATIVE is not set
161# CONFIG_PQ2ADS is not set
162# CONFIG_BAMBOO is not set
163# CONFIG_EBONY is not set
164# CONFIG_SEQUOIA is not set
165# CONFIG_TAISHAN is not set
166# CONFIG_KATMAI is not set
167# CONFIG_RAINIER is not set
168# CONFIG_WARP is not set
169# CONFIG_CANYONLANDS is not set
170# CONFIG_YOSEMITE is not set
171CONFIG_XILINX_VIRTEX440_GENERIC_BOARD=y
172CONFIG_XILINX_VIRTEX=y
173CONFIG_XILINX_VIRTEX_5_FXT=y
174# CONFIG_IPIC is not set
175# CONFIG_MPIC is not set
176# CONFIG_MPIC_WEIRD is not set
177# CONFIG_PPC_I8259 is not set
178# CONFIG_PPC_RTAS is not set
179# CONFIG_MMIO_NVRAM is not set
180# CONFIG_PPC_MPC106 is not set
181# CONFIG_PPC_970_NAP is not set
182# CONFIG_PPC_INDIRECT_IO is not set
183# CONFIG_GENERIC_IOMAP is not set
184# CONFIG_CPU_FREQ is not set
185# CONFIG_FSL_ULI1575 is not set
186
187#
188# Kernel options
189#
190# CONFIG_HIGHMEM is not set
191# CONFIG_TICK_ONESHOT is not set
192# CONFIG_NO_HZ is not set
193# CONFIG_HIGH_RES_TIMERS is not set
194CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
195# CONFIG_HZ_100 is not set
196CONFIG_HZ_250=y
197# CONFIG_HZ_300 is not set
198# CONFIG_HZ_1000 is not set
199CONFIG_HZ=250
200# CONFIG_SCHED_HRTICK is not set
201# CONFIG_PREEMPT_NONE is not set
202# CONFIG_PREEMPT_VOLUNTARY is not set
203CONFIG_PREEMPT=y
204# CONFIG_PREEMPT_RCU is not set
205CONFIG_BINFMT_ELF=y
206# CONFIG_BINFMT_MISC is not set
207CONFIG_MATH_EMULATION=y
208# CONFIG_IOMMU_HELPER is not set
209CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
210CONFIG_ARCH_HAS_WALK_MEMORY=y
211CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
212CONFIG_ARCH_FLATMEM_ENABLE=y
213CONFIG_ARCH_POPULATES_NODE_MAP=y
214CONFIG_SELECT_MEMORY_MODEL=y
215CONFIG_FLATMEM_MANUAL=y
216# CONFIG_DISCONTIGMEM_MANUAL is not set
217# CONFIG_SPARSEMEM_MANUAL is not set
218CONFIG_FLATMEM=y
219CONFIG_FLAT_NODE_MEM_MAP=y
220# CONFIG_SPARSEMEM_STATIC is not set
221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
222CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_RESOURCES_64BIT=y
225CONFIG_ZONE_DMA_FLAG=1
226CONFIG_BOUNCE=y
227CONFIG_VIRT_TO_BUS=y
228CONFIG_FORCE_MAX_ZONEORDER=11
229CONFIG_PROC_DEVICETREE=y
230CONFIG_CMDLINE_BOOL=y
231CONFIG_CMDLINE=""
232CONFIG_EXTRA_TARGETS=""
233CONFIG_SECCOMP=y
234CONFIG_ISA_DMA_API=y
235
236#
237# Bus options
238#
239CONFIG_ZONE_DMA=y
240CONFIG_PPC_INDIRECT_PCI=y
241CONFIG_4xx_SOC=y
242CONFIG_PCI=y
243CONFIG_PCI_DOMAINS=y
244CONFIG_PCI_SYSCALL=y
245# CONFIG_PCIEPORTBUS is not set
246CONFIG_ARCH_SUPPORTS_MSI=y
247# CONFIG_PCI_MSI is not set
248CONFIG_PCI_LEGACY=y
249# CONFIG_PCCARD is not set
250# CONFIG_HOTPLUG_PCI is not set
251# CONFIG_HAS_RAPIDIO is not set
252
253#
254# Advanced setup
255#
256# CONFIG_ADVANCED_OPTIONS is not set
257
258#
259# Default settings for advanced configuration options are used
260#
261CONFIG_LOWMEM_SIZE=0x30000000
262CONFIG_PAGE_OFFSET=0xc0000000
263CONFIG_KERNEL_START=0xc0000000
264CONFIG_PHYSICAL_START=0x00000000
265CONFIG_TASK_SIZE=0xc0000000
266CONFIG_CONSISTENT_START=0xff100000
267CONFIG_CONSISTENT_SIZE=0x00200000
268
269#
270# Networking
271#
272CONFIG_NET=y
273
274#
275# Networking options
276#
277CONFIG_PACKET=y
278# CONFIG_PACKET_MMAP is not set
279CONFIG_UNIX=y
280CONFIG_XFRM=y
281# CONFIG_XFRM_USER is not set
282# CONFIG_XFRM_SUB_POLICY is not set
283# CONFIG_XFRM_MIGRATE is not set
284# CONFIG_XFRM_STATISTICS is not set
285# CONFIG_NET_KEY is not set
286CONFIG_INET=y
287CONFIG_IP_MULTICAST=y
288# CONFIG_IP_ADVANCED_ROUTER is not set
289CONFIG_IP_FIB_HASH=y
290CONFIG_IP_PNP=y
291CONFIG_IP_PNP_DHCP=y
292CONFIG_IP_PNP_BOOTP=y
293# CONFIG_IP_PNP_RARP is not set
294# CONFIG_NET_IPIP is not set
295# CONFIG_NET_IPGRE is not set
296# CONFIG_IP_MROUTE is not set
297# CONFIG_ARPD is not set
298# CONFIG_SYN_COOKIES is not set
299# CONFIG_INET_AH is not set
300# CONFIG_INET_ESP is not set
301# CONFIG_INET_IPCOMP is not set
302# CONFIG_INET_XFRM_TUNNEL is not set
303CONFIG_INET_TUNNEL=m
304CONFIG_INET_XFRM_MODE_TRANSPORT=y
305CONFIG_INET_XFRM_MODE_TUNNEL=y
306CONFIG_INET_XFRM_MODE_BEET=y
307# CONFIG_INET_LRO is not set
308CONFIG_INET_DIAG=y
309CONFIG_INET_TCP_DIAG=y
310# CONFIG_TCP_CONG_ADVANCED is not set
311CONFIG_TCP_CONG_CUBIC=y
312CONFIG_DEFAULT_TCP_CONG="cubic"
313# CONFIG_TCP_MD5SIG is not set
314# CONFIG_IP_VS is not set
315CONFIG_IPV6=m
316# CONFIG_IPV6_PRIVACY is not set
317# CONFIG_IPV6_ROUTER_PREF is not set
318# CONFIG_IPV6_OPTIMISTIC_DAD is not set
319# CONFIG_INET6_AH is not set
320# CONFIG_INET6_ESP is not set
321# CONFIG_INET6_IPCOMP is not set
322# CONFIG_IPV6_MIP6 is not set
323# CONFIG_INET6_XFRM_TUNNEL is not set
324# CONFIG_INET6_TUNNEL is not set
325CONFIG_INET6_XFRM_MODE_TRANSPORT=m
326CONFIG_INET6_XFRM_MODE_TUNNEL=m
327CONFIG_INET6_XFRM_MODE_BEET=m
328# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
329CONFIG_IPV6_SIT=m
330CONFIG_IPV6_NDISC_NODETYPE=y
331# CONFIG_IPV6_TUNNEL is not set
332# CONFIG_IPV6_MULTIPLE_TABLES is not set
333# CONFIG_IPV6_MROUTE is not set
334# CONFIG_NETWORK_SECMARK is not set
335CONFIG_NETFILTER=y
336# CONFIG_NETFILTER_DEBUG is not set
337CONFIG_NETFILTER_ADVANCED=y
338
339#
340# Core Netfilter Configuration
341#
342# CONFIG_NETFILTER_NETLINK_QUEUE is not set
343# CONFIG_NETFILTER_NETLINK_LOG is not set
344# CONFIG_NF_CONNTRACK is not set
345CONFIG_NETFILTER_XTABLES=m
346# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
347# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
348# CONFIG_NETFILTER_XT_TARGET_MARK is not set
349# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
350# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
351# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
352# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
353# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
354# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
355# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
356# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
357# CONFIG_NETFILTER_XT_MATCH_ESP is not set
358# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
359# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
360# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
361# CONFIG_NETFILTER_XT_MATCH_MAC is not set
362# CONFIG_NETFILTER_XT_MATCH_MARK is not set
363# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
364# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
365# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
366# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
367# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
368# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
369# CONFIG_NETFILTER_XT_MATCH_REALM is not set
370# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
371# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
372# CONFIG_NETFILTER_XT_MATCH_STRING is not set
373# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
374# CONFIG_NETFILTER_XT_MATCH_TIME is not set
375# CONFIG_NETFILTER_XT_MATCH_U32 is not set
376# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
377
378#
379# IP: Netfilter Configuration
380#
381# CONFIG_IP_NF_QUEUE is not set
382CONFIG_IP_NF_IPTABLES=m
383# CONFIG_IP_NF_MATCH_RECENT is not set
384# CONFIG_IP_NF_MATCH_ECN is not set
385# CONFIG_IP_NF_MATCH_AH is not set
386# CONFIG_IP_NF_MATCH_TTL is not set
387# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
388CONFIG_IP_NF_FILTER=m
389# CONFIG_IP_NF_TARGET_REJECT is not set
390# CONFIG_IP_NF_TARGET_LOG is not set
391# CONFIG_IP_NF_TARGET_ULOG is not set
392CONFIG_IP_NF_MANGLE=m
393# CONFIG_IP_NF_TARGET_ECN is not set
394# CONFIG_IP_NF_TARGET_TTL is not set
395# CONFIG_IP_NF_RAW is not set
396# CONFIG_IP_NF_ARPTABLES is not set
397
398#
399# IPv6: Netfilter Configuration
400#
401# CONFIG_IP6_NF_QUEUE is not set
402# CONFIG_IP6_NF_IPTABLES is not set
403# CONFIG_IP_DCCP is not set
404# CONFIG_IP_SCTP is not set
405# CONFIG_TIPC is not set
406# CONFIG_ATM is not set
407# CONFIG_BRIDGE is not set
408# CONFIG_VLAN_8021Q is not set
409# CONFIG_DECNET is not set
410# CONFIG_LLC2 is not set
411# CONFIG_IPX is not set
412# CONFIG_ATALK is not set
413# CONFIG_X25 is not set
414# CONFIG_LAPB is not set
415# CONFIG_ECONET is not set
416# CONFIG_WAN_ROUTER is not set
417# CONFIG_NET_SCHED is not set
418
419#
420# Network testing
421#
422# CONFIG_NET_PKTGEN is not set
423# CONFIG_HAMRADIO is not set
424# CONFIG_CAN is not set
425# CONFIG_IRDA is not set
426# CONFIG_BT is not set
427# CONFIG_AF_RXRPC is not set
428
429#
430# Wireless
431#
432# CONFIG_CFG80211 is not set
433# CONFIG_WIRELESS_EXT is not set
434# CONFIG_MAC80211 is not set
435# CONFIG_IEEE80211 is not set
436# CONFIG_RFKILL is not set
437# CONFIG_NET_9P is not set
438
439#
440# Device Drivers
441#
442
443#
444# Generic Driver Options
445#
446CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
447CONFIG_STANDALONE=y
448CONFIG_PREVENT_FIRMWARE_BUILD=y
449# CONFIG_FW_LOADER is not set
450# CONFIG_SYS_HYPERVISOR is not set
451# CONFIG_CONNECTOR is not set
452# CONFIG_MTD is not set
453CONFIG_OF_DEVICE=y
454CONFIG_OF_I2C=y
455# CONFIG_PARPORT is not set
456CONFIG_BLK_DEV=y
457# CONFIG_BLK_DEV_FD is not set
458# CONFIG_BLK_CPQ_DA is not set
459# CONFIG_BLK_CPQ_CISS_DA is not set
460# CONFIG_BLK_DEV_DAC960 is not set
461# CONFIG_BLK_DEV_UMEM is not set
462# CONFIG_BLK_DEV_COW_COMMON is not set
463CONFIG_BLK_DEV_LOOP=y
464# CONFIG_BLK_DEV_CRYPTOLOOP is not set
465# CONFIG_BLK_DEV_NBD is not set
466# CONFIG_BLK_DEV_SX8 is not set
467CONFIG_BLK_DEV_RAM=y
468CONFIG_BLK_DEV_RAM_COUNT=16
469CONFIG_BLK_DEV_RAM_SIZE=8192
470# CONFIG_BLK_DEV_XIP is not set
471# CONFIG_CDROM_PKTCDVD is not set
472# CONFIG_ATA_OVER_ETH is not set
473# CONFIG_XILINX_SYSACE is not set
474CONFIG_MISC_DEVICES=y
475# CONFIG_PHANTOM is not set
476# CONFIG_EEPROM_93CX6 is not set
477# CONFIG_SGI_IOC4 is not set
478# CONFIG_TIFM_CORE is not set
479# CONFIG_ENCLOSURE_SERVICES is not set
480CONFIG_HAVE_IDE=y
481# CONFIG_IDE is not set
482
483#
484# SCSI device support
485#
486# CONFIG_RAID_ATTRS is not set
487# CONFIG_SCSI is not set
488# CONFIG_SCSI_DMA is not set
489# CONFIG_SCSI_NETLINK is not set
490# CONFIG_ATA is not set
491# CONFIG_MD is not set
492# CONFIG_FUSION is not set
493
494#
495# IEEE 1394 (FireWire) support
496#
497
498#
499# Enable only one of the two stacks, unless you know what you are doing
500#
501# CONFIG_FIREWIRE is not set
502# CONFIG_IEEE1394 is not set
503# CONFIG_I2O is not set
504# CONFIG_MACINTOSH_DRIVERS is not set
505CONFIG_NETDEVICES=y
506# CONFIG_NETDEVICES_MULTIQUEUE is not set
507# CONFIG_DUMMY is not set
508# CONFIG_BONDING is not set
509# CONFIG_MACVLAN is not set
510# CONFIG_EQUALIZER is not set
511# CONFIG_TUN is not set
512# CONFIG_VETH is not set
513# CONFIG_ARCNET is not set
514# CONFIG_PHYLIB is not set
515CONFIG_NET_ETHERNET=y
516CONFIG_MII=y
517# CONFIG_HAPPYMEAL is not set
518# CONFIG_SUNGEM is not set
519# CONFIG_CASSINI is not set
520# CONFIG_NET_VENDOR_3COM is not set
521# CONFIG_NET_TULIP is not set
522# CONFIG_HP100 is not set
523# CONFIG_IBM_NEW_EMAC is not set
524# CONFIG_IBM_NEW_EMAC_ZMII is not set
525# CONFIG_IBM_NEW_EMAC_RGMII is not set
526# CONFIG_IBM_NEW_EMAC_TAH is not set
527# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
528# CONFIG_NET_PCI is not set
529# CONFIG_B44 is not set
530CONFIG_NETDEV_1000=y
531# CONFIG_ACENIC is not set
532# CONFIG_DL2K is not set
533# CONFIG_E1000 is not set
534# CONFIG_E1000E is not set
535# CONFIG_E1000E_ENABLED is not set
536# CONFIG_IP1000 is not set
537# CONFIG_IGB is not set
538# CONFIG_NS83820 is not set
539# CONFIG_HAMACHI is not set
540# CONFIG_YELLOWFIN is not set
541# CONFIG_R8169 is not set
542# CONFIG_SIS190 is not set
543# CONFIG_SKGE is not set
544# CONFIG_SKY2 is not set
545# CONFIG_VIA_VELOCITY is not set
546# CONFIG_TIGON3 is not set
547# CONFIG_BNX2 is not set
548# CONFIG_QLA3XXX is not set
549# CONFIG_ATL1 is not set
550# CONFIG_NETDEV_10000 is not set
551# CONFIG_TR is not set
552
553#
554# Wireless LAN
555#
556# CONFIG_WLAN_PRE80211 is not set
557# CONFIG_WLAN_80211 is not set
558# CONFIG_IWLWIFI_LEDS is not set
559# CONFIG_WAN is not set
560# CONFIG_FDDI is not set
561# CONFIG_HIPPI is not set
562# CONFIG_PPP is not set
563# CONFIG_SLIP is not set
564# CONFIG_NETCONSOLE is not set
565# CONFIG_NETPOLL is not set
566# CONFIG_NET_POLL_CONTROLLER is not set
567# CONFIG_ISDN is not set
568# CONFIG_PHONE is not set
569
570#
571# Input device support
572#
573CONFIG_INPUT=y
574# CONFIG_INPUT_FF_MEMLESS is not set
575# CONFIG_INPUT_POLLDEV is not set
576
577#
578# Userland interfaces
579#
580CONFIG_INPUT_MOUSEDEV=y
581CONFIG_INPUT_MOUSEDEV_PSAUX=y
582CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
583CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
584# CONFIG_INPUT_JOYDEV is not set
585# CONFIG_INPUT_EVDEV is not set
586# CONFIG_INPUT_EVBUG is not set
587
588#
589# Input Device Drivers
590#
591CONFIG_INPUT_KEYBOARD=y
592CONFIG_KEYBOARD_ATKBD=y
593# CONFIG_KEYBOARD_SUNKBD is not set
594# CONFIG_KEYBOARD_LKKBD is not set
595# CONFIG_KEYBOARD_XTKBD is not set
596# CONFIG_KEYBOARD_NEWTON is not set
597# CONFIG_KEYBOARD_STOWAWAY is not set
598CONFIG_INPUT_MOUSE=y
599CONFIG_MOUSE_PS2=y
600CONFIG_MOUSE_PS2_ALPS=y
601CONFIG_MOUSE_PS2_LOGIPS2PP=y
602CONFIG_MOUSE_PS2_SYNAPTICS=y
603CONFIG_MOUSE_PS2_LIFEBOOK=y
604CONFIG_MOUSE_PS2_TRACKPOINT=y
605# CONFIG_MOUSE_PS2_TOUCHKIT is not set
606# CONFIG_MOUSE_SERIAL is not set
607# CONFIG_MOUSE_VSXXXAA is not set
608# CONFIG_INPUT_JOYSTICK is not set
609# CONFIG_INPUT_TABLET is not set
610# CONFIG_INPUT_TOUCHSCREEN is not set
611# CONFIG_INPUT_MISC is not set
612
613#
614# Hardware I/O ports
615#
616CONFIG_SERIO=y
617# CONFIG_SERIO_I8042 is not set
618CONFIG_SERIO_SERPORT=y
619# CONFIG_SERIO_PCIPS2 is not set
620CONFIG_SERIO_LIBPS2=y
621# CONFIG_SERIO_RAW is not set
622# CONFIG_GAMEPORT is not set
623
624#
625# Character devices
626#
627CONFIG_VT=y
628CONFIG_VT_CONSOLE=y
629CONFIG_HW_CONSOLE=y
630# CONFIG_VT_HW_CONSOLE_BINDING is not set
631CONFIG_DEVKMEM=y
632# CONFIG_SERIAL_NONSTANDARD is not set
633# CONFIG_NOZOMI is not set
634
635#
636# Serial drivers
637#
638CONFIG_SERIAL_8250=y
639CONFIG_SERIAL_8250_CONSOLE=y
640CONFIG_SERIAL_8250_PCI=y
641CONFIG_SERIAL_8250_NR_UARTS=4
642CONFIG_SERIAL_8250_RUNTIME_UARTS=4
643# CONFIG_SERIAL_8250_EXTENDED is not set
644
645#
646# Non-8250 serial port support
647#
648# CONFIG_SERIAL_UARTLITE is not set
649CONFIG_SERIAL_CORE=y
650CONFIG_SERIAL_CORE_CONSOLE=y
651# CONFIG_SERIAL_JSM is not set
652CONFIG_SERIAL_OF_PLATFORM=y
653CONFIG_UNIX98_PTYS=y
654CONFIG_LEGACY_PTYS=y
655CONFIG_LEGACY_PTY_COUNT=256
656# CONFIG_IPMI_HANDLER is not set
657CONFIG_HW_RANDOM=m
658# CONFIG_NVRAM is not set
659# CONFIG_GEN_RTC is not set
660CONFIG_XILINX_HWICAP=y
661# CONFIG_R3964 is not set
662# CONFIG_APPLICOM is not set
663# CONFIG_RAW_DRIVER is not set
664# CONFIG_TCG_TPM is not set
665CONFIG_DEVPORT=y
666CONFIG_I2C=y
667CONFIG_I2C_BOARDINFO=y
668CONFIG_I2C_CHARDEV=y
669
670#
671# I2C Hardware Bus support
672#
673# CONFIG_I2C_ALI1535 is not set
674# CONFIG_I2C_ALI1563 is not set
675# CONFIG_I2C_ALI15X3 is not set
676# CONFIG_I2C_AMD756 is not set
677# CONFIG_I2C_AMD8111 is not set
678# CONFIG_I2C_I801 is not set
679# CONFIG_I2C_I810 is not set
680# CONFIG_I2C_PIIX4 is not set
681# CONFIG_I2C_IBM_IIC is not set
682# CONFIG_I2C_MPC is not set
683# CONFIG_I2C_NFORCE2 is not set
684# CONFIG_I2C_OCORES is not set
685# CONFIG_I2C_PARPORT_LIGHT is not set
686# CONFIG_I2C_PROSAVAGE is not set
687# CONFIG_I2C_SAVAGE4 is not set
688# CONFIG_I2C_SIMTEC is not set
689# CONFIG_I2C_SIS5595 is not set
690# CONFIG_I2C_SIS630 is not set
691# CONFIG_I2C_SIS96X is not set
692# CONFIG_I2C_TAOS_EVM is not set
693# CONFIG_I2C_STUB is not set
694# CONFIG_I2C_VIA is not set
695# CONFIG_I2C_VIAPRO is not set
696# CONFIG_I2C_VOODOO3 is not set
697# CONFIG_I2C_PCA_PLATFORM is not set
698
699#
700# Miscellaneous I2C Chip support
701#
702# CONFIG_DS1682 is not set
703# CONFIG_SENSORS_EEPROM is not set
704# CONFIG_SENSORS_PCF8574 is not set
705# CONFIG_PCF8575 is not set
706# CONFIG_SENSORS_PCF8591 is not set
707# CONFIG_SENSORS_MAX6875 is not set
708# CONFIG_SENSORS_TSL2550 is not set
709CONFIG_I2C_DEBUG_CORE=y
710CONFIG_I2C_DEBUG_ALGO=y
711# CONFIG_I2C_DEBUG_BUS is not set
712# CONFIG_I2C_DEBUG_CHIP is not set
713# CONFIG_SPI is not set
714# CONFIG_W1 is not set
715# CONFIG_POWER_SUPPLY is not set
716# CONFIG_HWMON is not set
717# CONFIG_THERMAL is not set
718# CONFIG_WATCHDOG is not set
719
720#
721# Sonics Silicon Backplane
722#
723CONFIG_SSB_POSSIBLE=y
724# CONFIG_SSB is not set
725
726#
727# Multifunction device drivers
728#
729# CONFIG_MFD_SM501 is not set
730# CONFIG_HTC_PASIC3 is not set
731
732#
733# Multimedia devices
734#
735
736#
737# Multimedia core support
738#
739# CONFIG_VIDEO_DEV is not set
740# CONFIG_DVB_CORE is not set
741# CONFIG_VIDEO_MEDIA is not set
742
743#
744# Multimedia drivers
745#
746# CONFIG_DAB is not set
747
748#
749# Graphics support
750#
751# CONFIG_AGP is not set
752# CONFIG_DRM is not set
753# CONFIG_VGASTATE is not set
754# CONFIG_VIDEO_OUTPUT_CONTROL is not set
755CONFIG_FB=y
756# CONFIG_FIRMWARE_EDID is not set
757# CONFIG_FB_DDC is not set
758CONFIG_FB_CFB_FILLRECT=y
759CONFIG_FB_CFB_COPYAREA=y
760CONFIG_FB_CFB_IMAGEBLIT=y
761# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
762# CONFIG_FB_SYS_FILLRECT is not set
763# CONFIG_FB_SYS_COPYAREA is not set
764# CONFIG_FB_SYS_IMAGEBLIT is not set
765# CONFIG_FB_FOREIGN_ENDIAN is not set
766# CONFIG_FB_SYS_FOPS is not set
767# CONFIG_FB_SVGALIB is not set
768# CONFIG_FB_MACMODES is not set
769# CONFIG_FB_BACKLIGHT is not set
770# CONFIG_FB_MODE_HELPERS is not set
771# CONFIG_FB_TILEBLITTING is not set
772
773#
774# Frame buffer hardware drivers
775#
776# CONFIG_FB_CIRRUS is not set
777# CONFIG_FB_PM2 is not set
778# CONFIG_FB_CYBER2000 is not set
779# CONFIG_FB_OF is not set
780# CONFIG_FB_CT65550 is not set
781# CONFIG_FB_ASILIANT is not set
782# CONFIG_FB_IMSTT is not set
783# CONFIG_FB_VGA16 is not set
784# CONFIG_FB_S1D13XXX is not set
785# CONFIG_FB_NVIDIA is not set
786# CONFIG_FB_RIVA is not set
787# CONFIG_FB_MATROX is not set
788# CONFIG_FB_RADEON is not set
789# CONFIG_FB_ATY128 is not set
790# CONFIG_FB_ATY is not set
791# CONFIG_FB_S3 is not set
792# CONFIG_FB_SAVAGE is not set
793# CONFIG_FB_SIS is not set
794# CONFIG_FB_NEOMAGIC is not set
795# CONFIG_FB_KYRO is not set
796# CONFIG_FB_3DFX is not set
797# CONFIG_FB_VOODOO1 is not set
798# CONFIG_FB_VT8623 is not set
799# CONFIG_FB_TRIDENT is not set
800# CONFIG_FB_ARK is not set
801# CONFIG_FB_PM3 is not set
802# CONFIG_FB_IBM_GXT4500 is not set
803CONFIG_FB_XILINX=y
804# CONFIG_FB_VIRTUAL is not set
805# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
806
807#
808# Display device support
809#
810# CONFIG_DISPLAY_SUPPORT is not set
811
812#
813# Console display driver support
814#
815CONFIG_DUMMY_CONSOLE=y
816CONFIG_FRAMEBUFFER_CONSOLE=y
817# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
818# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
819CONFIG_FONTS=y
820CONFIG_FONT_8x8=y
821CONFIG_FONT_8x16=y
822# CONFIG_FONT_6x11 is not set
823# CONFIG_FONT_7x14 is not set
824# CONFIG_FONT_PEARL_8x8 is not set
825# CONFIG_FONT_ACORN_8x8 is not set
826# CONFIG_FONT_MINI_4x6 is not set
827# CONFIG_FONT_SUN8x16 is not set
828# CONFIG_FONT_SUN12x22 is not set
829# CONFIG_FONT_10x18 is not set
830CONFIG_LOGO=y
831CONFIG_LOGO_LINUX_MONO=y
832CONFIG_LOGO_LINUX_VGA16=y
833CONFIG_LOGO_LINUX_CLUT224=y
834
835#
836# Sound
837#
838# CONFIG_SOUND is not set
839# CONFIG_HID_SUPPORT is not set
840# CONFIG_USB_SUPPORT is not set
841# CONFIG_MMC is not set
842# CONFIG_MEMSTICK is not set
843# CONFIG_NEW_LEDS is not set
844# CONFIG_ACCESSIBILITY is not set
845# CONFIG_INFINIBAND is not set
846# CONFIG_EDAC is not set
847# CONFIG_RTC_CLASS is not set
848# CONFIG_DMADEVICES is not set
849# CONFIG_UIO is not set
850
851#
852# File systems
853#
854CONFIG_EXT2_FS=y
855# CONFIG_EXT2_FS_XATTR is not set
856# CONFIG_EXT2_FS_XIP is not set
857# CONFIG_EXT3_FS is not set
858# CONFIG_EXT4DEV_FS is not set
859# CONFIG_REISERFS_FS is not set
860# CONFIG_JFS_FS is not set
861# CONFIG_FS_POSIX_ACL is not set
862# CONFIG_XFS_FS is not set
863# CONFIG_OCFS2_FS is not set
864CONFIG_DNOTIFY=y
865CONFIG_INOTIFY=y
866CONFIG_INOTIFY_USER=y
867# CONFIG_QUOTA is not set
868CONFIG_AUTOFS_FS=y
869CONFIG_AUTOFS4_FS=y
870CONFIG_FUSE_FS=m
871
872#
873# CD-ROM/DVD Filesystems
874#
875# CONFIG_ISO9660_FS is not set
876# CONFIG_UDF_FS is not set
877
878#
879# DOS/FAT/NT Filesystems
880#
881CONFIG_FAT_FS=y
882CONFIG_MSDOS_FS=y
883CONFIG_VFAT_FS=y
884CONFIG_FAT_DEFAULT_CODEPAGE=437
885CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
886# CONFIG_NTFS_FS is not set
887
888#
889# Pseudo filesystems
890#
891CONFIG_PROC_FS=y
892# CONFIG_PROC_KCORE is not set
893CONFIG_PROC_SYSCTL=y
894CONFIG_SYSFS=y
895CONFIG_TMPFS=y
896# CONFIG_TMPFS_POSIX_ACL is not set
897# CONFIG_HUGETLB_PAGE is not set
898# CONFIG_CONFIGFS_FS is not set
899
900#
901# Miscellaneous filesystems
902#
903# CONFIG_ADFS_FS is not set
904# CONFIG_AFFS_FS is not set
905# CONFIG_HFS_FS is not set
906# CONFIG_HFSPLUS_FS is not set
907# CONFIG_BEFS_FS is not set
908# CONFIG_BFS_FS is not set
909# CONFIG_EFS_FS is not set
910CONFIG_CRAMFS=y
911# CONFIG_VXFS_FS is not set
912# CONFIG_MINIX_FS is not set
913# CONFIG_HPFS_FS is not set
914# CONFIG_QNX4FS_FS is not set
915CONFIG_ROMFS_FS=y
916# CONFIG_SYSV_FS is not set
917# CONFIG_UFS_FS is not set
918CONFIG_NETWORK_FILESYSTEMS=y
919CONFIG_NFS_FS=y
920CONFIG_NFS_V3=y
921# CONFIG_NFS_V3_ACL is not set
922# CONFIG_NFS_V4 is not set
923CONFIG_NFSD=y
924CONFIG_NFSD_V3=y
925# CONFIG_NFSD_V3_ACL is not set
926# CONFIG_NFSD_V4 is not set
927CONFIG_ROOT_NFS=y
928CONFIG_LOCKD=y
929CONFIG_LOCKD_V4=y
930CONFIG_EXPORTFS=y
931CONFIG_NFS_COMMON=y
932CONFIG_SUNRPC=y
933# CONFIG_SUNRPC_BIND34 is not set
934# CONFIG_RPCSEC_GSS_KRB5 is not set
935# CONFIG_RPCSEC_GSS_SPKM3 is not set
936CONFIG_SMB_FS=y
937# CONFIG_SMB_NLS_DEFAULT is not set
938# CONFIG_CIFS is not set
939# CONFIG_NCP_FS is not set
940# CONFIG_CODA_FS is not set
941# CONFIG_AFS_FS is not set
942
943#
944# Partition Types
945#
946# CONFIG_PARTITION_ADVANCED is not set
947CONFIG_MSDOS_PARTITION=y
948CONFIG_NLS=y
949CONFIG_NLS_DEFAULT="iso8859-1"
950CONFIG_NLS_CODEPAGE_437=y
951# CONFIG_NLS_CODEPAGE_737 is not set
952# CONFIG_NLS_CODEPAGE_775 is not set
953# CONFIG_NLS_CODEPAGE_850 is not set
954# CONFIG_NLS_CODEPAGE_852 is not set
955# CONFIG_NLS_CODEPAGE_855 is not set
956# CONFIG_NLS_CODEPAGE_857 is not set
957# CONFIG_NLS_CODEPAGE_860 is not set
958# CONFIG_NLS_CODEPAGE_861 is not set
959# CONFIG_NLS_CODEPAGE_862 is not set
960# CONFIG_NLS_CODEPAGE_863 is not set
961# CONFIG_NLS_CODEPAGE_864 is not set
962# CONFIG_NLS_CODEPAGE_865 is not set
963# CONFIG_NLS_CODEPAGE_866 is not set
964# CONFIG_NLS_CODEPAGE_869 is not set
965# CONFIG_NLS_CODEPAGE_936 is not set
966# CONFIG_NLS_CODEPAGE_950 is not set
967# CONFIG_NLS_CODEPAGE_932 is not set
968# CONFIG_NLS_CODEPAGE_949 is not set
969# CONFIG_NLS_CODEPAGE_874 is not set
970# CONFIG_NLS_ISO8859_8 is not set
971# CONFIG_NLS_CODEPAGE_1250 is not set
972# CONFIG_NLS_CODEPAGE_1251 is not set
973CONFIG_NLS_ASCII=m
974CONFIG_NLS_ISO8859_1=m
975# CONFIG_NLS_ISO8859_2 is not set
976# CONFIG_NLS_ISO8859_3 is not set
977# CONFIG_NLS_ISO8859_4 is not set
978# CONFIG_NLS_ISO8859_5 is not set
979# CONFIG_NLS_ISO8859_6 is not set
980# CONFIG_NLS_ISO8859_7 is not set
981# CONFIG_NLS_ISO8859_9 is not set
982# CONFIG_NLS_ISO8859_13 is not set
983# CONFIG_NLS_ISO8859_14 is not set
984# CONFIG_NLS_ISO8859_15 is not set
985# CONFIG_NLS_KOI8_R is not set
986# CONFIG_NLS_KOI8_U is not set
987CONFIG_NLS_UTF8=m
988# CONFIG_DLM is not set
989
990#
991# Library routines
992#
993CONFIG_BITREVERSE=y
994# CONFIG_GENERIC_FIND_FIRST_BIT is not set
995CONFIG_CRC_CCITT=y
996# CONFIG_CRC16 is not set
997# CONFIG_CRC_ITU_T is not set
998CONFIG_CRC32=y
999# CONFIG_CRC7 is not set
1000# CONFIG_LIBCRC32C is not set
1001CONFIG_ZLIB_INFLATE=y
1002CONFIG_PLIST=y
1003CONFIG_HAS_IOMEM=y
1004CONFIG_HAS_IOPORT=y
1005CONFIG_HAS_DMA=y
1006CONFIG_HAVE_LMB=y
1007
1008#
1009# Kernel hacking
1010#
1011# CONFIG_PRINTK_TIME is not set
1012CONFIG_ENABLE_WARN_DEPRECATED=y
1013CONFIG_ENABLE_MUST_CHECK=y
1014CONFIG_FRAME_WARN=1024
1015# CONFIG_MAGIC_SYSRQ is not set
1016# CONFIG_UNUSED_SYMBOLS is not set
1017# CONFIG_DEBUG_FS is not set
1018# CONFIG_HEADERS_CHECK is not set
1019# CONFIG_DEBUG_KERNEL is not set
1020CONFIG_DEBUG_BUGVERBOSE=y
1021# CONFIG_SAMPLES is not set
1022# CONFIG_IRQSTACKS is not set
1023# CONFIG_PPC_EARLY_DEBUG is not set
1024
1025#
1026# Security options
1027#
1028# CONFIG_KEYS is not set
1029# CONFIG_SECURITY is not set
1030# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1031CONFIG_CRYPTO=y
1032
1033#
1034# Crypto core or helper
1035#
1036# CONFIG_CRYPTO_MANAGER is not set
1037# CONFIG_CRYPTO_GF128MUL is not set
1038# CONFIG_CRYPTO_NULL is not set
1039# CONFIG_CRYPTO_CRYPTD is not set
1040# CONFIG_CRYPTO_AUTHENC is not set
1041# CONFIG_CRYPTO_TEST is not set
1042
1043#
1044# Authenticated Encryption with Associated Data
1045#
1046# CONFIG_CRYPTO_CCM is not set
1047# CONFIG_CRYPTO_GCM is not set
1048# CONFIG_CRYPTO_SEQIV is not set
1049
1050#
1051# Block modes
1052#
1053# CONFIG_CRYPTO_CBC is not set
1054# CONFIG_CRYPTO_CTR is not set
1055# CONFIG_CRYPTO_CTS is not set
1056# CONFIG_CRYPTO_ECB is not set
1057# CONFIG_CRYPTO_LRW is not set
1058# CONFIG_CRYPTO_PCBC is not set
1059# CONFIG_CRYPTO_XTS is not set
1060
1061#
1062# Hash modes
1063#
1064# CONFIG_CRYPTO_HMAC is not set
1065# CONFIG_CRYPTO_XCBC is not set
1066
1067#
1068# Digest
1069#
1070# CONFIG_CRYPTO_CRC32C is not set
1071# CONFIG_CRYPTO_MD4 is not set
1072# CONFIG_CRYPTO_MD5 is not set
1073# CONFIG_CRYPTO_MICHAEL_MIC is not set
1074# CONFIG_CRYPTO_SHA1 is not set
1075# CONFIG_CRYPTO_SHA256 is not set
1076# CONFIG_CRYPTO_SHA512 is not set
1077# CONFIG_CRYPTO_TGR192 is not set
1078# CONFIG_CRYPTO_WP512 is not set
1079
1080#
1081# Ciphers
1082#
1083# CONFIG_CRYPTO_AES is not set
1084# CONFIG_CRYPTO_ANUBIS is not set
1085# CONFIG_CRYPTO_ARC4 is not set
1086# CONFIG_CRYPTO_BLOWFISH is not set
1087# CONFIG_CRYPTO_CAMELLIA is not set
1088# CONFIG_CRYPTO_CAST5 is not set
1089# CONFIG_CRYPTO_CAST6 is not set
1090# CONFIG_CRYPTO_DES is not set
1091# CONFIG_CRYPTO_FCRYPT is not set
1092# CONFIG_CRYPTO_KHAZAD is not set
1093# CONFIG_CRYPTO_SALSA20 is not set
1094# CONFIG_CRYPTO_SEED is not set
1095# CONFIG_CRYPTO_SERPENT is not set
1096# CONFIG_CRYPTO_TEA is not set
1097# CONFIG_CRYPTO_TWOFISH is not set
1098
1099#
1100# Compression
1101#
1102# CONFIG_CRYPTO_DEFLATE is not set
1103# CONFIG_CRYPTO_LZO is not set
1104CONFIG_CRYPTO_HW=y
1105# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1106# CONFIG_PPC_CLOCK is not set
1107# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/tqm8548_defconfig b/arch/powerpc/configs/85xx/tqm8548_defconfig
index 5d5b898767a3..b3b770be3cc9 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.26-rc4 3# Linux kernel version: 2.6.26-rc5
4# Tue Jun 3 14:39:30 2008 4# Thu Jun 26 14:40:02 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_85xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_E500=y 17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
18CONFIG_BOOKE=y 19CONFIG_BOOKE=y
19CONFIG_FSL_BOOKE=y 20CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
@@ -470,6 +471,7 @@ CONFIG_MTD_UBI_BEB_RESERVE=1
470# 471#
471# CONFIG_MTD_UBI_DEBUG is not set 472# CONFIG_MTD_UBI_DEBUG is not set
472CONFIG_OF_DEVICE=y 473CONFIG_OF_DEVICE=y
474CONFIG_OF_I2C=y
473# CONFIG_PARPORT is not set 475# CONFIG_PARPORT is not set
474CONFIG_BLK_DEV=y 476CONFIG_BLK_DEV=y
475# CONFIG_BLK_DEV_FD is not set 477# CONFIG_BLK_DEV_FD is not set
@@ -734,31 +736,111 @@ CONFIG_LEGACY_PTY_COUNT=256
734# CONFIG_IPMI_HANDLER is not set 736# CONFIG_IPMI_HANDLER is not set
735# CONFIG_HW_RANDOM is not set 737# CONFIG_HW_RANDOM is not set
736# CONFIG_NVRAM is not set 738# CONFIG_NVRAM is not set
737CONFIG_GEN_RTC=y
738# CONFIG_GEN_RTC_X is not set
739# CONFIG_R3964 is not set 739# CONFIG_R3964 is not set
740# CONFIG_APPLICOM is not set 740# CONFIG_APPLICOM is not set
741# CONFIG_RAW_DRIVER is not set 741# CONFIG_RAW_DRIVER is not set
742# CONFIG_TCG_TPM is not set 742# CONFIG_TCG_TPM is not set
743CONFIG_DEVPORT=y 743CONFIG_DEVPORT=y
744# CONFIG_I2C is not set 744CONFIG_I2C=y
745CONFIG_I2C_BOARDINFO=y
746CONFIG_I2C_CHARDEV=y
747
748#
749# I2C Hardware Bus support
750#
751# CONFIG_I2C_ALI1535 is not set
752# CONFIG_I2C_ALI1563 is not set
753# CONFIG_I2C_ALI15X3 is not set
754# CONFIG_I2C_AMD756 is not set
755# CONFIG_I2C_AMD8111 is not set
756# CONFIG_I2C_I801 is not set
757# CONFIG_I2C_I810 is not set
758# CONFIG_I2C_PIIX4 is not set
759CONFIG_I2C_MPC=y
760# CONFIG_I2C_NFORCE2 is not set
761# CONFIG_I2C_OCORES is not set
762# CONFIG_I2C_PARPORT_LIGHT is not set
763# CONFIG_I2C_PROSAVAGE is not set
764# CONFIG_I2C_SAVAGE4 is not set
765# CONFIG_I2C_SIMTEC is not set
766# CONFIG_I2C_SIS5595 is not set
767# CONFIG_I2C_SIS630 is not set
768# CONFIG_I2C_SIS96X is not set
769# CONFIG_I2C_TAOS_EVM is not set
770# CONFIG_I2C_STUB is not set
771# CONFIG_I2C_VIA is not set
772# CONFIG_I2C_VIAPRO is not set
773# CONFIG_I2C_VOODOO3 is not set
774# CONFIG_I2C_PCA_PLATFORM is not set
775
776#
777# Miscellaneous I2C Chip support
778#
779# CONFIG_DS1682 is not set
780# CONFIG_SENSORS_EEPROM is not set
781# CONFIG_SENSORS_PCF8574 is not set
782# CONFIG_PCF8575 is not set
783# CONFIG_SENSORS_PCF8591 is not set
784# CONFIG_SENSORS_MAX6875 is not set
785# CONFIG_SENSORS_TSL2550 is not set
786# CONFIG_I2C_DEBUG_CORE is not set
787# CONFIG_I2C_DEBUG_ALGO is not set
788# CONFIG_I2C_DEBUG_BUS is not set
789# CONFIG_I2C_DEBUG_CHIP is not set
745# CONFIG_SPI is not set 790# CONFIG_SPI is not set
746# CONFIG_W1 is not set 791# CONFIG_W1 is not set
747# CONFIG_POWER_SUPPLY is not set 792# CONFIG_POWER_SUPPLY is not set
748CONFIG_HWMON=y 793CONFIG_HWMON=y
749# CONFIG_HWMON_VID is not set 794# CONFIG_HWMON_VID is not set
795# CONFIG_SENSORS_AD7418 is not set
796# CONFIG_SENSORS_ADM1021 is not set
797# CONFIG_SENSORS_ADM1025 is not set
798# CONFIG_SENSORS_ADM1026 is not set
799# CONFIG_SENSORS_ADM1029 is not set
800# CONFIG_SENSORS_ADM1031 is not set
801# CONFIG_SENSORS_ADM9240 is not set
802# CONFIG_SENSORS_ADT7470 is not set
803# CONFIG_SENSORS_ADT7473 is not set
804# CONFIG_SENSORS_ATXP1 is not set
805# CONFIG_SENSORS_DS1621 is not set
750# CONFIG_SENSORS_I5K_AMB is not set 806# CONFIG_SENSORS_I5K_AMB is not set
751# CONFIG_SENSORS_F71805F is not set 807# CONFIG_SENSORS_F71805F is not set
752# CONFIG_SENSORS_F71882FG is not set 808# CONFIG_SENSORS_F71882FG is not set
809# CONFIG_SENSORS_F75375S is not set
810# CONFIG_SENSORS_GL518SM is not set
811# CONFIG_SENSORS_GL520SM is not set
753# CONFIG_SENSORS_IT87 is not set 812# CONFIG_SENSORS_IT87 is not set
813# CONFIG_SENSORS_LM63 is not set
814CONFIG_SENSORS_LM75=y
815# CONFIG_SENSORS_LM77 is not set
816# CONFIG_SENSORS_LM78 is not set
817# CONFIG_SENSORS_LM80 is not set
818# CONFIG_SENSORS_LM83 is not set
819# CONFIG_SENSORS_LM85 is not set
820# CONFIG_SENSORS_LM87 is not set
821# CONFIG_SENSORS_LM90 is not set
822# CONFIG_SENSORS_LM92 is not set
823# CONFIG_SENSORS_LM93 is not set
824# CONFIG_SENSORS_MAX1619 is not set
825# CONFIG_SENSORS_MAX6650 is not set
754# CONFIG_SENSORS_PC87360 is not set 826# CONFIG_SENSORS_PC87360 is not set
755# CONFIG_SENSORS_PC87427 is not set 827# CONFIG_SENSORS_PC87427 is not set
756# CONFIG_SENSORS_SIS5595 is not set 828# CONFIG_SENSORS_SIS5595 is not set
829# CONFIG_SENSORS_DME1737 is not set
757# CONFIG_SENSORS_SMSC47M1 is not set 830# CONFIG_SENSORS_SMSC47M1 is not set
831# CONFIG_SENSORS_SMSC47M192 is not set
758# CONFIG_SENSORS_SMSC47B397 is not set 832# CONFIG_SENSORS_SMSC47B397 is not set
833# CONFIG_SENSORS_ADS7828 is not set
834# CONFIG_SENSORS_THMC50 is not set
759# CONFIG_SENSORS_VIA686A is not set 835# CONFIG_SENSORS_VIA686A is not set
760# CONFIG_SENSORS_VT1211 is not set 836# CONFIG_SENSORS_VT1211 is not set
761# CONFIG_SENSORS_VT8231 is not set 837# CONFIG_SENSORS_VT8231 is not set
838# CONFIG_SENSORS_W83781D is not set
839# CONFIG_SENSORS_W83791D is not set
840# CONFIG_SENSORS_W83792D is not set
841# CONFIG_SENSORS_W83793 is not set
842# CONFIG_SENSORS_W83L785TS is not set
843# CONFIG_SENSORS_W83L786NG is not set
762# CONFIG_SENSORS_W83627HF is not set 844# CONFIG_SENSORS_W83627HF is not set
763# CONFIG_SENSORS_W83627EHF is not set 845# CONFIG_SENSORS_W83627EHF is not set
764# CONFIG_HWMON_DEBUG_CHIP is not set 846# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -834,7 +916,56 @@ CONFIG_USB_ARCH_HAS_EHCI=y
834# CONFIG_ACCESSIBILITY is not set 916# CONFIG_ACCESSIBILITY is not set
835# CONFIG_INFINIBAND is not set 917# CONFIG_INFINIBAND is not set
836# CONFIG_EDAC is not set 918# CONFIG_EDAC is not set
837# CONFIG_RTC_CLASS is not set 919CONFIG_RTC_LIB=y
920CONFIG_RTC_CLASS=y
921CONFIG_RTC_HCTOSYS=y
922CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
923# CONFIG_RTC_DEBUG is not set
924
925#
926# RTC interfaces
927#
928CONFIG_RTC_INTF_SYSFS=y
929CONFIG_RTC_INTF_PROC=y
930CONFIG_RTC_INTF_DEV=y
931# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
932# CONFIG_RTC_DRV_TEST is not set
933
934#
935# I2C RTC drivers
936#
937CONFIG_RTC_DRV_DS1307=y
938# CONFIG_RTC_DRV_DS1374 is not set
939# CONFIG_RTC_DRV_DS1672 is not set
940# CONFIG_RTC_DRV_MAX6900 is not set
941# CONFIG_RTC_DRV_RS5C372 is not set
942# CONFIG_RTC_DRV_ISL1208 is not set
943# CONFIG_RTC_DRV_X1205 is not set
944# CONFIG_RTC_DRV_PCF8563 is not set
945# CONFIG_RTC_DRV_PCF8583 is not set
946# CONFIG_RTC_DRV_M41T80 is not set
947# CONFIG_RTC_DRV_S35390A is not set
948
949#
950# SPI RTC drivers
951#
952
953#
954# Platform RTC drivers
955#
956# CONFIG_RTC_DRV_CMOS is not set
957# CONFIG_RTC_DRV_DS1511 is not set
958# CONFIG_RTC_DRV_DS1553 is not set
959# CONFIG_RTC_DRV_DS1742 is not set
960# CONFIG_RTC_DRV_STK17TA8 is not set
961# CONFIG_RTC_DRV_M48T86 is not set
962# CONFIG_RTC_DRV_M48T59 is not set
963# CONFIG_RTC_DRV_V3020 is not set
964
965#
966# on-CPU RTC drivers
967#
968# CONFIG_RTC_DRV_PPC is not set
838# CONFIG_DMADEVICES is not set 969# CONFIG_DMADEVICES is not set
839# CONFIG_UIO is not set 970# CONFIG_UIO is not set
840 971
diff --git a/arch/powerpc/configs/mpc8536_ds_defconfig b/arch/powerpc/configs/mpc8536_ds_defconfig
new file mode 100644
index 000000000000..f1e2931de5da
--- /dev/null
+++ b/arch/powerpc/configs/mpc8536_ds_defconfig
@@ -0,0 +1,1637 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc8
4# Wed Jul 2 01:34:26 2008
5#
6# CONFIG_PPC64 is not set
7
8#
9# Processor support
10#
11# CONFIG_6xx is not set
12CONFIG_PPC_85xx=y
13# CONFIG_PPC_8xx is not set
14# CONFIG_40x is not set
15# CONFIG_44x is not set
16# CONFIG_E200 is not set
17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
19CONFIG_BOOKE=y
20CONFIG_FSL_BOOKE=y
21CONFIG_FSL_EMB_PERFMON=y
22# CONFIG_PHYS_64BIT is not set
23CONFIG_SPE=y
24# CONFIG_PPC_MM_SLICES is not set
25CONFIG_PPC32=y
26CONFIG_WORD_SIZE=32
27CONFIG_PPC_MERGE=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
34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
35CONFIG_IRQ_PER_CPU=y
36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_LOCKDEP_SUPPORT=y
38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
39CONFIG_ARCH_HAS_ILOG2_U32=y
40CONFIG_GENERIC_HWEIGHT=y
41CONFIG_GENERIC_CALIBRATE_DELAY=y
42CONFIG_GENERIC_FIND_NEXT_BIT=y
43# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
44CONFIG_PPC=y
45CONFIG_EARLY_PRINTK=y
46CONFIG_GENERIC_NVRAM=y
47CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
49CONFIG_PPC_OF=y
50CONFIG_OF=y
51CONFIG_PPC_UDBG_16550=y
52# CONFIG_GENERIC_TBSYNC is not set
53CONFIG_AUDIT_ARCH=y
54CONFIG_GENERIC_BUG=y
55CONFIG_DEFAULT_UIMAGE=y
56# CONFIG_PPC_DCR_NATIVE is not set
57# CONFIG_PPC_DCR_MMIO is not set
58CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
59
60#
61# General setup
62#
63CONFIG_EXPERIMENTAL=y
64CONFIG_BROKEN_ON_SMP=y
65CONFIG_INIT_ENV_ARG_LIMIT=32
66CONFIG_LOCALVERSION=""
67CONFIG_LOCALVERSION_AUTO=y
68CONFIG_SWAP=y
69CONFIG_SYSVIPC=y
70CONFIG_SYSVIPC_SYSCTL=y
71CONFIG_POSIX_MQUEUE=y
72CONFIG_BSD_PROCESS_ACCT=y
73# CONFIG_BSD_PROCESS_ACCT_V3 is not set
74# CONFIG_TASKSTATS is not set
75CONFIG_AUDIT=y
76# CONFIG_AUDITSYSCALL is not set
77CONFIG_IKCONFIG=y
78CONFIG_IKCONFIG_PROC=y
79CONFIG_LOG_BUF_SHIFT=14
80# CONFIG_CGROUPS is not set
81CONFIG_GROUP_SCHED=y
82# CONFIG_FAIR_GROUP_SCHED is not set
83# CONFIG_RT_GROUP_SCHED is not set
84CONFIG_USER_SCHED=y
85# CONFIG_CGROUP_SCHED is not set
86CONFIG_SYSFS_DEPRECATED=y
87CONFIG_SYSFS_DEPRECATED_V2=y
88# CONFIG_RELAY is not set
89# CONFIG_NAMESPACES is not set
90CONFIG_BLK_DEV_INITRD=y
91CONFIG_INITRAMFS_SOURCE=""
92# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
93CONFIG_SYSCTL=y
94CONFIG_EMBEDDED=y
95CONFIG_SYSCTL_SYSCALL=y
96CONFIG_SYSCTL_SYSCALL_CHECK=y
97CONFIG_KALLSYMS=y
98CONFIG_KALLSYMS_ALL=y
99CONFIG_KALLSYMS_EXTRA_PASS=y
100CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y
102CONFIG_BUG=y
103CONFIG_ELF_CORE=y
104CONFIG_COMPAT_BRK=y
105CONFIG_BASE_FULL=y
106CONFIG_FUTEX=y
107CONFIG_ANON_INODES=y
108CONFIG_EPOLL=y
109CONFIG_SIGNALFD=y
110CONFIG_TIMERFD=y
111CONFIG_EVENTFD=y
112CONFIG_SHMEM=y
113CONFIG_VM_EVENT_COUNTERS=y
114CONFIG_SLUB_DEBUG=y
115# CONFIG_SLAB is not set
116CONFIG_SLUB=y
117# CONFIG_SLOB is not set
118# CONFIG_PROFILING is not set
119# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y
121# CONFIG_KPROBES is not set
122CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y
124# CONFIG_HAVE_DMA_ATTRS is not set
125CONFIG_PROC_PAGE_MONITOR=y
126CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set
129CONFIG_BASE_SMALL=0
130CONFIG_MODULES=y
131# CONFIG_MODULE_FORCE_LOAD is not set
132CONFIG_MODULE_UNLOAD=y
133CONFIG_MODULE_FORCE_UNLOAD=y
134CONFIG_MODVERSIONS=y
135# CONFIG_MODULE_SRCVERSION_ALL is not set
136CONFIG_KMOD=y
137CONFIG_BLOCK=y
138CONFIG_LBD=y
139# CONFIG_BLK_DEV_IO_TRACE is not set
140# CONFIG_LSF is not set
141# CONFIG_BLK_DEV_BSG is not set
142
143#
144# IO Schedulers
145#
146CONFIG_IOSCHED_NOOP=y
147CONFIG_IOSCHED_AS=y
148CONFIG_IOSCHED_DEADLINE=y
149CONFIG_IOSCHED_CFQ=y
150# CONFIG_DEFAULT_AS is not set
151# CONFIG_DEFAULT_DEADLINE is not set
152CONFIG_DEFAULT_CFQ=y
153# CONFIG_DEFAULT_NOOP is not set
154CONFIG_DEFAULT_IOSCHED="cfq"
155CONFIG_CLASSIC_RCU=y
156
157#
158# Platform support
159#
160# CONFIG_PPC_MPC512x is not set
161# CONFIG_PPC_MPC5121 is not set
162# CONFIG_PPC_CELL is not set
163# CONFIG_PPC_CELL_NATIVE is not set
164# CONFIG_PQ2ADS is not set
165CONFIG_MPC85xx=y
166# CONFIG_MPC8540_ADS is not set
167# CONFIG_MPC8560_ADS is not set
168# CONFIG_MPC85xx_CDS is not set
169# CONFIG_MPC85xx_MDS is not set
170CONFIG_MPC8536_DS=y
171# CONFIG_MPC85xx_DS is not set
172# CONFIG_KSI8560 is not set
173# CONFIG_STX_GP3 is not set
174# CONFIG_TQM8540 is not set
175# CONFIG_TQM8541 is not set
176# CONFIG_TQM8548 is not set
177# CONFIG_TQM8555 is not set
178# CONFIG_TQM8560 is not set
179# CONFIG_SBC8548 is not set
180# CONFIG_SBC8560 is not set
181# CONFIG_IPIC is not set
182CONFIG_MPIC=y
183# CONFIG_MPIC_WEIRD is not set
184# CONFIG_PPC_I8259 is not set
185# CONFIG_PPC_RTAS is not set
186# CONFIG_MMIO_NVRAM is not set
187# CONFIG_PPC_MPC106 is not set
188# CONFIG_PPC_970_NAP is not set
189# CONFIG_PPC_INDIRECT_IO is not set
190# CONFIG_GENERIC_IOMAP is not set
191# CONFIG_CPU_FREQ is not set
192# CONFIG_CPM2 is not set
193# CONFIG_FSL_ULI1575 is not set
194
195#
196# Kernel options
197#
198CONFIG_HIGHMEM=y
199CONFIG_TICK_ONESHOT=y
200CONFIG_NO_HZ=y
201CONFIG_HIGH_RES_TIMERS=y
202CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
203# CONFIG_HZ_100 is not set
204CONFIG_HZ_250=y
205# CONFIG_HZ_300 is not set
206# CONFIG_HZ_1000 is not set
207CONFIG_HZ=250
208# CONFIG_SCHED_HRTICK is not set
209CONFIG_PREEMPT_NONE=y
210# CONFIG_PREEMPT_VOLUNTARY is not set
211# CONFIG_PREEMPT is not set
212CONFIG_BINFMT_ELF=y
213CONFIG_BINFMT_MISC=m
214CONFIG_MATH_EMULATION=y
215# CONFIG_IOMMU_HELPER is not set
216CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
217CONFIG_ARCH_HAS_WALK_MEMORY=y
218CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
219CONFIG_ARCH_FLATMEM_ENABLE=y
220CONFIG_ARCH_POPULATES_NODE_MAP=y
221CONFIG_SELECT_MEMORY_MODEL=y
222CONFIG_FLATMEM_MANUAL=y
223# CONFIG_DISCONTIGMEM_MANUAL is not set
224# CONFIG_SPARSEMEM_MANUAL is not set
225CONFIG_FLATMEM=y
226CONFIG_FLAT_NODE_MEM_MAP=y
227# CONFIG_SPARSEMEM_STATIC is not set
228# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
229CONFIG_PAGEFLAGS_EXTENDED=y
230CONFIG_SPLIT_PTLOCK_CPUS=4
231# CONFIG_RESOURCES_64BIT is not set
232CONFIG_ZONE_DMA_FLAG=1
233CONFIG_BOUNCE=y
234CONFIG_VIRT_TO_BUS=y
235CONFIG_FORCE_MAX_ZONEORDER=11
236CONFIG_PROC_DEVICETREE=y
237# CONFIG_CMDLINE_BOOL is not set
238# CONFIG_PM is not set
239CONFIG_SECCOMP=y
240CONFIG_ISA_DMA_API=y
241
242#
243# Bus options
244#
245CONFIG_ZONE_DMA=y
246CONFIG_PPC_INDIRECT_PCI=y
247CONFIG_FSL_SOC=y
248CONFIG_FSL_PCI=y
249CONFIG_PCI=y
250CONFIG_PCI_DOMAINS=y
251CONFIG_PCI_SYSCALL=y
252# CONFIG_PCIEPORTBUS is not set
253CONFIG_ARCH_SUPPORTS_MSI=y
254# CONFIG_PCI_MSI is not set
255CONFIG_PCI_LEGACY=y
256# CONFIG_PCI_DEBUG is not set
257# CONFIG_PCCARD is not set
258# CONFIG_HOTPLUG_PCI is not set
259# CONFIG_HAS_RAPIDIO is not set
260
261#
262# Advanced setup
263#
264# CONFIG_ADVANCED_OPTIONS is not set
265
266#
267# Default settings for advanced configuration options are used
268#
269CONFIG_LOWMEM_SIZE=0x30000000
270CONFIG_PAGE_OFFSET=0xc0000000
271CONFIG_KERNEL_START=0xc0000000
272CONFIG_PHYSICAL_START=0x00000000
273CONFIG_PHYSICAL_ALIGN=0x10000000
274CONFIG_TASK_SIZE=0xc0000000
275
276#
277# Networking
278#
279CONFIG_NET=y
280
281#
282# Networking options
283#
284CONFIG_PACKET=y
285# CONFIG_PACKET_MMAP is not set
286CONFIG_UNIX=y
287CONFIG_XFRM=y
288CONFIG_XFRM_USER=y
289# CONFIG_XFRM_SUB_POLICY is not set
290# CONFIG_XFRM_MIGRATE is not set
291# CONFIG_XFRM_STATISTICS is not set
292CONFIG_NET_KEY=m
293# CONFIG_NET_KEY_MIGRATE is not set
294CONFIG_INET=y
295CONFIG_IP_MULTICAST=y
296CONFIG_IP_ADVANCED_ROUTER=y
297CONFIG_ASK_IP_FIB_HASH=y
298# CONFIG_IP_FIB_TRIE is not set
299CONFIG_IP_FIB_HASH=y
300CONFIG_IP_MULTIPLE_TABLES=y
301CONFIG_IP_ROUTE_MULTIPATH=y
302CONFIG_IP_ROUTE_VERBOSE=y
303CONFIG_IP_PNP=y
304CONFIG_IP_PNP_DHCP=y
305CONFIG_IP_PNP_BOOTP=y
306CONFIG_IP_PNP_RARP=y
307CONFIG_NET_IPIP=y
308CONFIG_NET_IPGRE=y
309CONFIG_NET_IPGRE_BROADCAST=y
310CONFIG_IP_MROUTE=y
311CONFIG_IP_PIMSM_V1=y
312CONFIG_IP_PIMSM_V2=y
313CONFIG_ARPD=y
314# CONFIG_SYN_COOKIES is not set
315# CONFIG_INET_AH is not set
316# CONFIG_INET_ESP is not set
317# CONFIG_INET_IPCOMP is not set
318# CONFIG_INET_XFRM_TUNNEL is not set
319CONFIG_INET_TUNNEL=y
320# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
321# CONFIG_INET_XFRM_MODE_TUNNEL is not set
322# CONFIG_INET_XFRM_MODE_BEET is not set
323# CONFIG_INET_LRO is not set
324CONFIG_INET_DIAG=y
325CONFIG_INET_TCP_DIAG=y
326# CONFIG_TCP_CONG_ADVANCED is not set
327CONFIG_TCP_CONG_CUBIC=y
328CONFIG_DEFAULT_TCP_CONG="cubic"
329# CONFIG_TCP_MD5SIG is not set
330CONFIG_IPV6=y
331# CONFIG_IPV6_PRIVACY is not set
332# CONFIG_IPV6_ROUTER_PREF is not set
333# CONFIG_IPV6_OPTIMISTIC_DAD is not set
334# CONFIG_INET6_AH is not set
335# CONFIG_INET6_ESP is not set
336# CONFIG_INET6_IPCOMP is not set
337# CONFIG_IPV6_MIP6 is not set
338# CONFIG_INET6_XFRM_TUNNEL is not set
339# CONFIG_INET6_TUNNEL is not set
340CONFIG_INET6_XFRM_MODE_TRANSPORT=y
341CONFIG_INET6_XFRM_MODE_TUNNEL=y
342CONFIG_INET6_XFRM_MODE_BEET=y
343# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
344CONFIG_IPV6_SIT=y
345CONFIG_IPV6_NDISC_NODETYPE=y
346# CONFIG_IPV6_TUNNEL is not set
347# CONFIG_IPV6_MULTIPLE_TABLES is not set
348# CONFIG_IPV6_MROUTE is not set
349# CONFIG_NETWORK_SECMARK is not set
350# CONFIG_NETFILTER is not set
351# CONFIG_IP_DCCP is not set
352CONFIG_IP_SCTP=m
353# CONFIG_SCTP_DBG_MSG is not set
354# CONFIG_SCTP_DBG_OBJCNT is not set
355# CONFIG_SCTP_HMAC_NONE is not set
356# CONFIG_SCTP_HMAC_SHA1 is not set
357CONFIG_SCTP_HMAC_MD5=y
358# CONFIG_TIPC is not set
359# CONFIG_ATM is not set
360# CONFIG_BRIDGE is not set
361# CONFIG_VLAN_8021Q is not set
362# CONFIG_DECNET is not set
363# CONFIG_LLC2 is not set
364# CONFIG_IPX is not set
365# CONFIG_ATALK is not set
366# CONFIG_X25 is not set
367# CONFIG_LAPB is not set
368# CONFIG_ECONET is not set
369# CONFIG_WAN_ROUTER is not set
370# CONFIG_NET_SCHED is not set
371
372#
373# Network testing
374#
375# CONFIG_NET_PKTGEN is not set
376# CONFIG_HAMRADIO is not set
377# CONFIG_CAN is not set
378# CONFIG_IRDA is not set
379# CONFIG_BT is not set
380# CONFIG_AF_RXRPC is not set
381CONFIG_FIB_RULES=y
382
383#
384# Wireless
385#
386# CONFIG_CFG80211 is not set
387# CONFIG_WIRELESS_EXT is not set
388# CONFIG_MAC80211 is not set
389# CONFIG_IEEE80211 is not set
390# CONFIG_RFKILL is not set
391# CONFIG_NET_9P is not set
392
393#
394# Device Drivers
395#
396
397#
398# Generic Driver Options
399#
400CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
401CONFIG_STANDALONE=y
402CONFIG_PREVENT_FIRMWARE_BUILD=y
403CONFIG_FW_LOADER=y
404# CONFIG_DEBUG_DRIVER is not set
405# CONFIG_DEBUG_DEVRES is not set
406# CONFIG_SYS_HYPERVISOR is not set
407# CONFIG_CONNECTOR is not set
408# CONFIG_MTD is not set
409CONFIG_OF_DEVICE=y
410CONFIG_OF_I2C=y
411# CONFIG_PARPORT is not set
412CONFIG_BLK_DEV=y
413# CONFIG_BLK_DEV_FD is not set
414# CONFIG_BLK_CPQ_DA is not set
415# CONFIG_BLK_CPQ_CISS_DA is not set
416# CONFIG_BLK_DEV_DAC960 is not set
417# CONFIG_BLK_DEV_UMEM is not set
418# CONFIG_BLK_DEV_COW_COMMON is not set
419CONFIG_BLK_DEV_LOOP=y
420# CONFIG_BLK_DEV_CRYPTOLOOP is not set
421CONFIG_BLK_DEV_NBD=y
422# CONFIG_BLK_DEV_SX8 is not set
423# CONFIG_BLK_DEV_UB is not set
424CONFIG_BLK_DEV_RAM=y
425CONFIG_BLK_DEV_RAM_COUNT=16
426CONFIG_BLK_DEV_RAM_SIZE=524288
427# CONFIG_BLK_DEV_XIP is not set
428# CONFIG_CDROM_PKTCDVD is not set
429# CONFIG_ATA_OVER_ETH is not set
430CONFIG_MISC_DEVICES=y
431# CONFIG_PHANTOM is not set
432# CONFIG_EEPROM_93CX6 is not set
433# CONFIG_SGI_IOC4 is not set
434# CONFIG_TIFM_CORE is not set
435# CONFIG_ENCLOSURE_SERVICES is not set
436CONFIG_HAVE_IDE=y
437# CONFIG_IDE is not set
438
439#
440# SCSI device support
441#
442# CONFIG_RAID_ATTRS is not set
443CONFIG_SCSI=y
444CONFIG_SCSI_DMA=y
445# CONFIG_SCSI_TGT is not set
446# CONFIG_SCSI_NETLINK is not set
447CONFIG_SCSI_PROC_FS=y
448
449#
450# SCSI support type (disk, tape, CD-ROM)
451#
452CONFIG_BLK_DEV_SD=y
453CONFIG_CHR_DEV_ST=y
454# CONFIG_CHR_DEV_OSST is not set
455CONFIG_BLK_DEV_SR=y
456# CONFIG_BLK_DEV_SR_VENDOR is not set
457CONFIG_CHR_DEV_SG=y
458# CONFIG_CHR_DEV_SCH is not set
459
460#
461# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
462#
463CONFIG_SCSI_MULTI_LUN=y
464# CONFIG_SCSI_CONSTANTS is not set
465CONFIG_SCSI_LOGGING=y
466# CONFIG_SCSI_SCAN_ASYNC is not set
467CONFIG_SCSI_WAIT_SCAN=m
468
469#
470# SCSI Transports
471#
472# CONFIG_SCSI_SPI_ATTRS is not set
473# CONFIG_SCSI_FC_ATTRS is not set
474# CONFIG_SCSI_ISCSI_ATTRS is not set
475# CONFIG_SCSI_SAS_LIBSAS is not set
476# CONFIG_SCSI_SRP_ATTRS is not set
477CONFIG_SCSI_LOWLEVEL=y
478# CONFIG_ISCSI_TCP is not set
479# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
480# CONFIG_SCSI_3W_9XXX is not set
481# CONFIG_SCSI_ACARD is not set
482# CONFIG_SCSI_AACRAID is not set
483# CONFIG_SCSI_AIC7XXX is not set
484# CONFIG_SCSI_AIC7XXX_OLD is not set
485# CONFIG_SCSI_AIC79XX is not set
486# CONFIG_SCSI_AIC94XX is not set
487# CONFIG_SCSI_DPT_I2O is not set
488# CONFIG_SCSI_ADVANSYS is not set
489# CONFIG_SCSI_ARCMSR is not set
490# CONFIG_MEGARAID_NEWGEN is not set
491# CONFIG_MEGARAID_LEGACY is not set
492# CONFIG_MEGARAID_SAS is not set
493# CONFIG_SCSI_HPTIOP is not set
494# CONFIG_SCSI_BUSLOGIC is not set
495# CONFIG_SCSI_DMX3191D is not set
496# CONFIG_SCSI_EATA is not set
497# CONFIG_SCSI_FUTURE_DOMAIN is not set
498# CONFIG_SCSI_GDTH is not set
499# CONFIG_SCSI_IPS is not set
500# CONFIG_SCSI_INITIO is not set
501# CONFIG_SCSI_INIA100 is not set
502# CONFIG_SCSI_MVSAS is not set
503# CONFIG_SCSI_STEX is not set
504# CONFIG_SCSI_SYM53C8XX_2 is not set
505# CONFIG_SCSI_IPR is not set
506# CONFIG_SCSI_QLOGIC_1280 is not set
507# CONFIG_SCSI_QLA_FC is not set
508# CONFIG_SCSI_QLA_ISCSI is not set
509# CONFIG_SCSI_LPFC is not set
510# CONFIG_SCSI_DC395x is not set
511# CONFIG_SCSI_DC390T is not set
512# CONFIG_SCSI_NSP32 is not set
513# CONFIG_SCSI_DEBUG is not set
514# CONFIG_SCSI_SRP is not set
515CONFIG_ATA=y
516# CONFIG_ATA_NONSTANDARD is not set
517CONFIG_SATA_PMP=y
518# CONFIG_SATA_AHCI is not set
519CONFIG_SATA_SIL24=y
520CONFIG_SATA_FSL=y
521CONFIG_ATA_SFF=y
522# CONFIG_SATA_SVW is not set
523# CONFIG_ATA_PIIX is not set
524# CONFIG_SATA_MV is not set
525# CONFIG_SATA_NV is not set
526# CONFIG_PDC_ADMA is not set
527# CONFIG_SATA_QSTOR is not set
528# CONFIG_SATA_PROMISE is not set
529# CONFIG_SATA_SX4 is not set
530CONFIG_SATA_SIL=y
531# CONFIG_SATA_SIS is not set
532# CONFIG_SATA_ULI is not set
533# CONFIG_SATA_VIA is not set
534# CONFIG_SATA_VITESSE is not set
535# CONFIG_SATA_INIC162X is not set
536# CONFIG_PATA_ALI is not set
537# CONFIG_PATA_AMD is not set
538# CONFIG_PATA_ARTOP is not set
539# CONFIG_PATA_ATIIXP is not set
540# CONFIG_PATA_CMD640_PCI is not set
541# CONFIG_PATA_CMD64X is not set
542# CONFIG_PATA_CS5520 is not set
543# CONFIG_PATA_CS5530 is not set
544# CONFIG_PATA_CYPRESS is not set
545# CONFIG_PATA_EFAR is not set
546# CONFIG_ATA_GENERIC is not set
547# CONFIG_PATA_HPT366 is not set
548# CONFIG_PATA_HPT37X is not set
549# CONFIG_PATA_HPT3X2N is not set
550# CONFIG_PATA_HPT3X3 is not set
551# CONFIG_PATA_IT821X is not set
552# CONFIG_PATA_IT8213 is not set
553# CONFIG_PATA_JMICRON is not set
554# CONFIG_PATA_TRIFLEX is not set
555# CONFIG_PATA_MARVELL is not set
556# CONFIG_PATA_MPIIX is not set
557# CONFIG_PATA_OLDPIIX is not set
558# CONFIG_PATA_NETCELL is not set
559# CONFIG_PATA_NINJA32 is not set
560# CONFIG_PATA_NS87410 is not set
561# CONFIG_PATA_NS87415 is not set
562# CONFIG_PATA_OPTI is not set
563# CONFIG_PATA_OPTIDMA is not set
564# CONFIG_PATA_PDC_OLD is not set
565# CONFIG_PATA_RADISYS is not set
566# CONFIG_PATA_RZ1000 is not set
567# CONFIG_PATA_SC1200 is not set
568# CONFIG_PATA_SERVERWORKS is not set
569# CONFIG_PATA_PDC2027X is not set
570# CONFIG_PATA_SIL680 is not set
571# CONFIG_PATA_SIS is not set
572# CONFIG_PATA_VIA is not set
573# CONFIG_PATA_WINBOND is not set
574# CONFIG_PATA_PLATFORM is not set
575# CONFIG_PATA_SCH is not set
576# CONFIG_MD is not set
577# CONFIG_FUSION is not set
578
579#
580# IEEE 1394 (FireWire) support
581#
582
583#
584# Enable only one of the two stacks, unless you know what you are doing
585#
586# CONFIG_FIREWIRE is not set
587# CONFIG_IEEE1394 is not set
588# CONFIG_I2O is not set
589# CONFIG_MACINTOSH_DRIVERS is not set
590CONFIG_NETDEVICES=y
591# CONFIG_NETDEVICES_MULTIQUEUE is not set
592CONFIG_DUMMY=y
593# CONFIG_BONDING is not set
594# CONFIG_MACVLAN is not set
595# CONFIG_EQUALIZER is not set
596# CONFIG_TUN is not set
597# CONFIG_VETH is not set
598# CONFIG_ARCNET is not set
599CONFIG_PHYLIB=y
600
601#
602# MII PHY device drivers
603#
604# CONFIG_MARVELL_PHY is not set
605# CONFIG_DAVICOM_PHY is not set
606# CONFIG_QSEMI_PHY is not set
607# CONFIG_LXT_PHY is not set
608# CONFIG_CICADA_PHY is not set
609CONFIG_VITESSE_PHY=y
610# CONFIG_SMSC_PHY is not set
611# CONFIG_BROADCOM_PHY is not set
612# CONFIG_ICPLUS_PHY is not set
613# CONFIG_REALTEK_PHY is not set
614# CONFIG_FIXED_PHY is not set
615# CONFIG_MDIO_BITBANG is not set
616CONFIG_NET_ETHERNET=y
617CONFIG_MII=y
618# CONFIG_HAPPYMEAL is not set
619# CONFIG_SUNGEM is not set
620# CONFIG_CASSINI is not set
621# CONFIG_NET_VENDOR_3COM is not set
622# CONFIG_NET_TULIP is not set
623# CONFIG_HP100 is not set
624# CONFIG_IBM_NEW_EMAC_ZMII is not set
625# CONFIG_IBM_NEW_EMAC_RGMII is not set
626# CONFIG_IBM_NEW_EMAC_TAH is not set
627# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
628# CONFIG_NET_PCI is not set
629# CONFIG_B44 is not set
630CONFIG_NETDEV_1000=y
631# CONFIG_ACENIC is not set
632# CONFIG_DL2K is not set
633# CONFIG_E1000 is not set
634# CONFIG_E1000E is not set
635# CONFIG_E1000E_ENABLED is not set
636# CONFIG_IP1000 is not set
637# CONFIG_IGB is not set
638# CONFIG_NS83820 is not set
639# CONFIG_HAMACHI is not set
640# CONFIG_YELLOWFIN is not set
641# CONFIG_R8169 is not set
642# CONFIG_SIS190 is not set
643CONFIG_SKGE=y
644# CONFIG_SKGE_DEBUG is not set
645CONFIG_SKY2=y
646# CONFIG_SKY2_DEBUG is not set
647# CONFIG_VIA_VELOCITY is not set
648# CONFIG_TIGON3 is not set
649# CONFIG_BNX2 is not set
650CONFIG_GIANFAR=y
651CONFIG_GFAR_NAPI=y
652# CONFIG_QLA3XXX is not set
653# CONFIG_ATL1 is not set
654CONFIG_NETDEV_10000=y
655# CONFIG_CHELSIO_T1 is not set
656# CONFIG_CHELSIO_T3 is not set
657# CONFIG_IXGBE is not set
658# CONFIG_IXGB is not set
659# CONFIG_S2IO is not set
660# CONFIG_MYRI10GE is not set
661# CONFIG_NETXEN_NIC is not set
662# CONFIG_NIU is not set
663# CONFIG_MLX4_CORE is not set
664# CONFIG_TEHUTI is not set
665# CONFIG_BNX2X is not set
666# CONFIG_SFC is not set
667# CONFIG_TR is not set
668
669#
670# Wireless LAN
671#
672# CONFIG_WLAN_PRE80211 is not set
673# CONFIG_WLAN_80211 is not set
674# CONFIG_IWLWIFI_LEDS is not set
675
676#
677# USB Network Adapters
678#
679# CONFIG_USB_CATC is not set
680# CONFIG_USB_KAWETH is not set
681# CONFIG_USB_PEGASUS is not set
682# CONFIG_USB_RTL8150 is not set
683# CONFIG_USB_USBNET is not set
684# CONFIG_WAN is not set
685# CONFIG_FDDI is not set
686# CONFIG_HIPPI is not set
687# CONFIG_PPP is not set
688# CONFIG_SLIP is not set
689# CONFIG_NET_FC is not set
690# CONFIG_NETCONSOLE is not set
691# CONFIG_NETPOLL is not set
692# CONFIG_NET_POLL_CONTROLLER is not set
693# CONFIG_ISDN is not set
694# CONFIG_PHONE is not set
695
696#
697# Input device support
698#
699CONFIG_INPUT=y
700# CONFIG_INPUT_FF_MEMLESS is not set
701# CONFIG_INPUT_POLLDEV is not set
702
703#
704# Userland interfaces
705#
706# CONFIG_INPUT_MOUSEDEV is not set
707# CONFIG_INPUT_JOYDEV is not set
708# CONFIG_INPUT_EVDEV is not set
709# CONFIG_INPUT_EVBUG is not set
710
711#
712# Input Device Drivers
713#
714# CONFIG_INPUT_KEYBOARD is not set
715# CONFIG_INPUT_MOUSE is not set
716# CONFIG_INPUT_JOYSTICK is not set
717# CONFIG_INPUT_TABLET is not set
718# CONFIG_INPUT_TOUCHSCREEN is not set
719# CONFIG_INPUT_MISC is not set
720
721#
722# Hardware I/O ports
723#
724CONFIG_SERIO=y
725CONFIG_SERIO_I8042=y
726CONFIG_SERIO_SERPORT=y
727# CONFIG_SERIO_PCIPS2 is not set
728CONFIG_SERIO_LIBPS2=y
729# CONFIG_SERIO_RAW is not set
730# CONFIG_GAMEPORT is not set
731
732#
733# Character devices
734#
735CONFIG_VT=y
736CONFIG_VT_CONSOLE=y
737CONFIG_HW_CONSOLE=y
738# CONFIG_VT_HW_CONSOLE_BINDING is not set
739CONFIG_DEVKMEM=y
740# CONFIG_SERIAL_NONSTANDARD is not set
741# CONFIG_NOZOMI is not set
742
743#
744# Serial drivers
745#
746CONFIG_SERIAL_8250=y
747CONFIG_SERIAL_8250_CONSOLE=y
748CONFIG_SERIAL_8250_PCI=y
749CONFIG_SERIAL_8250_NR_UARTS=2
750CONFIG_SERIAL_8250_RUNTIME_UARTS=2
751CONFIG_SERIAL_8250_EXTENDED=y
752CONFIG_SERIAL_8250_MANY_PORTS=y
753CONFIG_SERIAL_8250_SHARE_IRQ=y
754CONFIG_SERIAL_8250_DETECT_IRQ=y
755CONFIG_SERIAL_8250_RSA=y
756
757#
758# Non-8250 serial port support
759#
760# CONFIG_SERIAL_UARTLITE is not set
761CONFIG_SERIAL_CORE=y
762CONFIG_SERIAL_CORE_CONSOLE=y
763# CONFIG_SERIAL_JSM is not set
764# CONFIG_SERIAL_OF_PLATFORM is not set
765CONFIG_UNIX98_PTYS=y
766CONFIG_LEGACY_PTYS=y
767CONFIG_LEGACY_PTY_COUNT=256
768# CONFIG_IPMI_HANDLER is not set
769# CONFIG_HW_RANDOM is not set
770# CONFIG_NVRAM is not set
771# CONFIG_R3964 is not set
772# CONFIG_APPLICOM is not set
773# CONFIG_RAW_DRIVER is not set
774# CONFIG_TCG_TPM is not set
775CONFIG_DEVPORT=y
776CONFIG_I2C=y
777CONFIG_I2C_BOARDINFO=y
778# CONFIG_I2C_CHARDEV is not set
779
780#
781# I2C Hardware Bus support
782#
783# CONFIG_I2C_ALI1535 is not set
784# CONFIG_I2C_ALI1563 is not set
785# CONFIG_I2C_ALI15X3 is not set
786# CONFIG_I2C_AMD756 is not set
787# CONFIG_I2C_AMD8111 is not set
788# CONFIG_I2C_I801 is not set
789# CONFIG_I2C_I810 is not set
790# CONFIG_I2C_PIIX4 is not set
791CONFIG_I2C_MPC=y
792# CONFIG_I2C_NFORCE2 is not set
793# CONFIG_I2C_OCORES is not set
794# CONFIG_I2C_PARPORT_LIGHT is not set
795# CONFIG_I2C_PROSAVAGE is not set
796# CONFIG_I2C_SAVAGE4 is not set
797# CONFIG_I2C_SIMTEC is not set
798# CONFIG_I2C_SIS5595 is not set
799# CONFIG_I2C_SIS630 is not set
800# CONFIG_I2C_SIS96X is not set
801# CONFIG_I2C_TAOS_EVM is not set
802# CONFIG_I2C_STUB is not set
803# CONFIG_I2C_TINY_USB is not set
804# CONFIG_I2C_VIA is not set
805# CONFIG_I2C_VIAPRO is not set
806# CONFIG_I2C_VOODOO3 is not set
807# CONFIG_I2C_PCA_PLATFORM is not set
808
809#
810# Miscellaneous I2C Chip support
811#
812# CONFIG_DS1682 is not set
813CONFIG_SENSORS_EEPROM=y
814# CONFIG_SENSORS_PCF8574 is not set
815# CONFIG_PCF8575 is not set
816# CONFIG_SENSORS_PCF8591 is not set
817# CONFIG_SENSORS_MAX6875 is not set
818# CONFIG_SENSORS_TSL2550 is not set
819# CONFIG_I2C_DEBUG_CORE is not set
820# CONFIG_I2C_DEBUG_ALGO is not set
821# CONFIG_I2C_DEBUG_BUS is not set
822# CONFIG_I2C_DEBUG_CHIP is not set
823# CONFIG_SPI is not set
824# CONFIG_W1 is not set
825# CONFIG_POWER_SUPPLY is not set
826# CONFIG_HWMON is not set
827CONFIG_THERMAL=y
828# CONFIG_WATCHDOG is not set
829
830#
831# Sonics Silicon Backplane
832#
833CONFIG_SSB_POSSIBLE=y
834# CONFIG_SSB is not set
835
836#
837# Multifunction device drivers
838#
839# CONFIG_MFD_SM501 is not set
840# CONFIG_HTC_PASIC3 is not set
841
842#
843# Multimedia devices
844#
845
846#
847# Multimedia core support
848#
849# CONFIG_VIDEO_DEV is not set
850CONFIG_DVB_CORE=m
851CONFIG_VIDEO_MEDIA=m
852
853#
854# Multimedia drivers
855#
856# CONFIG_MEDIA_ATTACH is not set
857CONFIG_MEDIA_TUNER=m
858# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
859CONFIG_MEDIA_TUNER_SIMPLE=m
860CONFIG_MEDIA_TUNER_TDA8290=m
861CONFIG_MEDIA_TUNER_TDA9887=m
862CONFIG_MEDIA_TUNER_TEA5761=m
863CONFIG_MEDIA_TUNER_TEA5767=m
864CONFIG_MEDIA_TUNER_MT20XX=m
865CONFIG_MEDIA_TUNER_XC2028=m
866CONFIG_MEDIA_TUNER_XC5000=m
867CONFIG_DVB_CAPTURE_DRIVERS=y
868
869#
870# Supported SAA7146 based PCI Adapters
871#
872# CONFIG_TTPCI_EEPROM is not set
873# CONFIG_DVB_BUDGET_CORE is not set
874
875#
876# Supported USB Adapters
877#
878# CONFIG_DVB_USB is not set
879# CONFIG_DVB_TTUSB_BUDGET is not set
880# CONFIG_DVB_TTUSB_DEC is not set
881# CONFIG_DVB_CINERGYT2 is not set
882
883#
884# Supported FlexCopII (B2C2) Adapters
885#
886# CONFIG_DVB_B2C2_FLEXCOP is not set
887
888#
889# Supported BT878 Adapters
890#
891
892#
893# Supported Pluto2 Adapters
894#
895# CONFIG_DVB_PLUTO2 is not set
896
897#
898# Supported DVB Frontends
899#
900
901#
902# Customise DVB Frontends
903#
904# CONFIG_DVB_FE_CUSTOMISE is not set
905
906#
907# DVB-S (satellite) frontends
908#
909# CONFIG_DVB_CX24110 is not set
910# CONFIG_DVB_CX24123 is not set
911# CONFIG_DVB_MT312 is not set
912# CONFIG_DVB_S5H1420 is not set
913# CONFIG_DVB_STV0299 is not set
914# CONFIG_DVB_TDA8083 is not set
915# CONFIG_DVB_TDA10086 is not set
916# CONFIG_DVB_VES1X93 is not set
917# CONFIG_DVB_TUNER_ITD1000 is not set
918# CONFIG_DVB_TDA826X is not set
919# CONFIG_DVB_TUA6100 is not set
920
921#
922# DVB-T (terrestrial) frontends
923#
924# CONFIG_DVB_SP8870 is not set
925# CONFIG_DVB_SP887X is not set
926# CONFIG_DVB_CX22700 is not set
927# CONFIG_DVB_CX22702 is not set
928# CONFIG_DVB_L64781 is not set
929# CONFIG_DVB_TDA1004X is not set
930# CONFIG_DVB_NXT6000 is not set
931# CONFIG_DVB_MT352 is not set
932# CONFIG_DVB_ZL10353 is not set
933# CONFIG_DVB_DIB3000MB is not set
934# CONFIG_DVB_DIB3000MC is not set
935# CONFIG_DVB_DIB7000M is not set
936# CONFIG_DVB_DIB7000P is not set
937# CONFIG_DVB_TDA10048 is not set
938
939#
940# DVB-C (cable) frontends
941#
942# CONFIG_DVB_VES1820 is not set
943# CONFIG_DVB_TDA10021 is not set
944# CONFIG_DVB_TDA10023 is not set
945# CONFIG_DVB_STV0297 is not set
946
947#
948# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
949#
950# CONFIG_DVB_NXT200X is not set
951# CONFIG_DVB_OR51211 is not set
952# CONFIG_DVB_OR51132 is not set
953# CONFIG_DVB_BCM3510 is not set
954# CONFIG_DVB_LGDT330X is not set
955# CONFIG_DVB_S5H1409 is not set
956# CONFIG_DVB_AU8522 is not set
957# CONFIG_DVB_S5H1411 is not set
958
959#
960# Digital terrestrial only tuners/PLL
961#
962# CONFIG_DVB_PLL is not set
963# CONFIG_DVB_TUNER_DIB0070 is not set
964
965#
966# SEC control devices for DVB-S
967#
968# CONFIG_DVB_LNBP21 is not set
969# CONFIG_DVB_ISL6405 is not set
970# CONFIG_DVB_ISL6421 is not set
971CONFIG_DAB=y
972# CONFIG_USB_DABUSB is not set
973
974#
975# Graphics support
976#
977# CONFIG_AGP is not set
978# CONFIG_DRM is not set
979# CONFIG_VGASTATE is not set
980CONFIG_VIDEO_OUTPUT_CONTROL=y
981# CONFIG_FB is not set
982# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
983
984#
985# Display device support
986#
987# CONFIG_DISPLAY_SUPPORT is not set
988
989#
990# Console display driver support
991#
992CONFIG_VGA_CONSOLE=y
993# CONFIG_VGACON_SOFT_SCROLLBACK is not set
994CONFIG_DUMMY_CONSOLE=y
995
996#
997# Sound
998#
999CONFIG_SOUND=y
1000
1001#
1002# Advanced Linux Sound Architecture
1003#
1004CONFIG_SND=y
1005CONFIG_SND_TIMER=y
1006CONFIG_SND_PCM=y
1007# CONFIG_SND_SEQUENCER is not set
1008# CONFIG_SND_MIXER_OSS is not set
1009# CONFIG_SND_PCM_OSS is not set
1010# CONFIG_SND_DYNAMIC_MINORS is not set
1011CONFIG_SND_SUPPORT_OLD_API=y
1012CONFIG_SND_VERBOSE_PROCFS=y
1013# CONFIG_SND_VERBOSE_PRINTK is not set
1014# CONFIG_SND_DEBUG is not set
1015
1016#
1017# Generic devices
1018#
1019CONFIG_SND_AC97_CODEC=y
1020# CONFIG_SND_DUMMY is not set
1021# CONFIG_SND_MTPAV is not set
1022# CONFIG_SND_SERIAL_U16550 is not set
1023# CONFIG_SND_MPU401 is not set
1024
1025#
1026# PCI devices
1027#
1028# CONFIG_SND_AD1889 is not set
1029# CONFIG_SND_ALS300 is not set
1030# CONFIG_SND_ALS4000 is not set
1031# CONFIG_SND_ALI5451 is not set
1032# CONFIG_SND_ATIIXP is not set
1033# CONFIG_SND_ATIIXP_MODEM is not set
1034# CONFIG_SND_AU8810 is not set
1035# CONFIG_SND_AU8820 is not set
1036# CONFIG_SND_AU8830 is not set
1037# CONFIG_SND_AW2 is not set
1038# CONFIG_SND_AZT3328 is not set
1039# CONFIG_SND_BT87X is not set
1040# CONFIG_SND_CA0106 is not set
1041# CONFIG_SND_CMIPCI is not set
1042# CONFIG_SND_OXYGEN is not set
1043# CONFIG_SND_CS4281 is not set
1044# CONFIG_SND_CS46XX is not set
1045# CONFIG_SND_CS5530 is not set
1046# CONFIG_SND_DARLA20 is not set
1047# CONFIG_SND_GINA20 is not set
1048# CONFIG_SND_LAYLA20 is not set
1049# CONFIG_SND_DARLA24 is not set
1050# CONFIG_SND_GINA24 is not set
1051# CONFIG_SND_LAYLA24 is not set
1052# CONFIG_SND_MONA is not set
1053# CONFIG_SND_MIA is not set
1054# CONFIG_SND_ECHO3G is not set
1055# CONFIG_SND_INDIGO is not set
1056# CONFIG_SND_INDIGOIO is not set
1057# CONFIG_SND_INDIGODJ is not set
1058# CONFIG_SND_EMU10K1 is not set
1059# CONFIG_SND_EMU10K1X is not set
1060# CONFIG_SND_ENS1370 is not set
1061# CONFIG_SND_ENS1371 is not set
1062# CONFIG_SND_ES1938 is not set
1063# CONFIG_SND_ES1968 is not set
1064# CONFIG_SND_FM801 is not set
1065# CONFIG_SND_HDA_INTEL is not set
1066# CONFIG_SND_HDSP is not set
1067# CONFIG_SND_HDSPM is not set
1068# CONFIG_SND_HIFIER is not set
1069# CONFIG_SND_ICE1712 is not set
1070# CONFIG_SND_ICE1724 is not set
1071CONFIG_SND_INTEL8X0=y
1072# CONFIG_SND_INTEL8X0M is not set
1073# CONFIG_SND_KORG1212 is not set
1074# CONFIG_SND_MAESTRO3 is not set
1075# CONFIG_SND_MIXART is not set
1076# CONFIG_SND_NM256 is not set
1077# CONFIG_SND_PCXHR is not set
1078# CONFIG_SND_RIPTIDE is not set
1079# CONFIG_SND_RME32 is not set
1080# CONFIG_SND_RME96 is not set
1081# CONFIG_SND_RME9652 is not set
1082# CONFIG_SND_SONICVIBES is not set
1083# CONFIG_SND_TRIDENT is not set
1084# CONFIG_SND_VIA82XX is not set
1085# CONFIG_SND_VIA82XX_MODEM is not set
1086# CONFIG_SND_VIRTUOSO is not set
1087# CONFIG_SND_VX222 is not set
1088# CONFIG_SND_YMFPCI is not set
1089# CONFIG_SND_AC97_POWER_SAVE is not set
1090
1091#
1092# ALSA PowerMac devices
1093#
1094
1095#
1096# ALSA PowerPC devices
1097#
1098
1099#
1100# USB devices
1101#
1102# CONFIG_SND_USB_AUDIO is not set
1103# CONFIG_SND_USB_USX2Y is not set
1104# CONFIG_SND_USB_CAIAQ is not set
1105
1106#
1107# System on Chip audio support
1108#
1109# CONFIG_SND_SOC is not set
1110
1111#
1112# ALSA SoC audio for Freescale SOCs
1113#
1114
1115#
1116# SoC Audio for the Texas Instruments OMAP
1117#
1118
1119#
1120# Open Sound System
1121#
1122# CONFIG_SOUND_PRIME is not set
1123CONFIG_AC97_BUS=y
1124CONFIG_HID_SUPPORT=y
1125CONFIG_HID=y
1126# CONFIG_HID_DEBUG is not set
1127# CONFIG_HIDRAW is not set
1128
1129#
1130# USB Input Devices
1131#
1132CONFIG_USB_HID=y
1133# CONFIG_USB_HIDINPUT_POWERBOOK is not set
1134# CONFIG_HID_FF is not set
1135# CONFIG_USB_HIDDEV is not set
1136CONFIG_USB_SUPPORT=y
1137CONFIG_USB_ARCH_HAS_HCD=y
1138CONFIG_USB_ARCH_HAS_OHCI=y
1139CONFIG_USB_ARCH_HAS_EHCI=y
1140CONFIG_USB=y
1141# CONFIG_USB_DEBUG is not set
1142# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1143
1144#
1145# Miscellaneous USB options
1146#
1147CONFIG_USB_DEVICEFS=y
1148CONFIG_USB_DEVICE_CLASS=y
1149# CONFIG_USB_DYNAMIC_MINORS is not set
1150# CONFIG_USB_OTG is not set
1151# CONFIG_USB_OTG_WHITELIST is not set
1152# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1153
1154#
1155# USB Host Controller Drivers
1156#
1157# CONFIG_USB_C67X00_HCD is not set
1158CONFIG_USB_EHCI_HCD=y
1159CONFIG_USB_EHCI_ROOT_HUB_TT=y
1160# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1161CONFIG_USB_EHCI_FSL=y
1162CONFIG_USB_EHCI_HCD_PPC_OF=y
1163# CONFIG_USB_ISP116X_HCD is not set
1164# CONFIG_USB_ISP1760_HCD is not set
1165CONFIG_USB_OHCI_HCD=y
1166CONFIG_USB_OHCI_HCD_PPC_OF=y
1167CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
1168CONFIG_USB_OHCI_HCD_PPC_OF_LE=y
1169CONFIG_USB_OHCI_HCD_PCI=y
1170CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
1171CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
1172CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1173# CONFIG_USB_UHCI_HCD is not set
1174# CONFIG_USB_SL811_HCD is not set
1175# CONFIG_USB_R8A66597_HCD is not set
1176
1177#
1178# USB Device Class drivers
1179#
1180# CONFIG_USB_ACM is not set
1181# CONFIG_USB_PRINTER is not set
1182# CONFIG_USB_WDM is not set
1183
1184#
1185# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1186#
1187
1188#
1189# may also be needed; see USB_STORAGE Help for more information
1190#
1191CONFIG_USB_STORAGE=y
1192# CONFIG_USB_STORAGE_DEBUG is not set
1193# CONFIG_USB_STORAGE_DATAFAB is not set
1194# CONFIG_USB_STORAGE_FREECOM is not set
1195# CONFIG_USB_STORAGE_ISD200 is not set
1196# CONFIG_USB_STORAGE_DPCM is not set
1197# CONFIG_USB_STORAGE_USBAT is not set
1198# CONFIG_USB_STORAGE_SDDR09 is not set
1199# CONFIG_USB_STORAGE_SDDR55 is not set
1200# CONFIG_USB_STORAGE_JUMPSHOT is not set
1201# CONFIG_USB_STORAGE_ALAUDA is not set
1202# CONFIG_USB_STORAGE_ONETOUCH is not set
1203# CONFIG_USB_STORAGE_KARMA is not set
1204# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1205# CONFIG_USB_LIBUSUAL is not set
1206
1207#
1208# USB Imaging devices
1209#
1210# CONFIG_USB_MDC800 is not set
1211# CONFIG_USB_MICROTEK is not set
1212CONFIG_USB_MON=y
1213
1214#
1215# USB port drivers
1216#
1217# CONFIG_USB_SERIAL is not set
1218
1219#
1220# USB Miscellaneous drivers
1221#
1222# CONFIG_USB_EMI62 is not set
1223# CONFIG_USB_EMI26 is not set
1224# CONFIG_USB_ADUTUX is not set
1225# CONFIG_USB_AUERSWALD is not set
1226# CONFIG_USB_RIO500 is not set
1227# CONFIG_USB_LEGOTOWER is not set
1228# CONFIG_USB_LCD is not set
1229# CONFIG_USB_BERRY_CHARGE is not set
1230# CONFIG_USB_LED is not set
1231# CONFIG_USB_CYPRESS_CY7C63 is not set
1232# CONFIG_USB_CYTHERM is not set
1233# CONFIG_USB_PHIDGET is not set
1234# CONFIG_USB_IDMOUSE is not set
1235# CONFIG_USB_FTDI_ELAN is not set
1236# CONFIG_USB_APPLEDISPLAY is not set
1237# CONFIG_USB_SISUSBVGA is not set
1238# CONFIG_USB_LD is not set
1239# CONFIG_USB_TRANCEVIBRATOR is not set
1240# CONFIG_USB_IOWARRIOR is not set
1241# CONFIG_USB_TEST is not set
1242# CONFIG_USB_ISIGHTFW is not set
1243# CONFIG_USB_GADGET is not set
1244# CONFIG_MMC is not set
1245# CONFIG_MEMSTICK is not set
1246# CONFIG_NEW_LEDS is not set
1247# CONFIG_ACCESSIBILITY is not set
1248# CONFIG_INFINIBAND is not set
1249# CONFIG_EDAC is not set
1250CONFIG_RTC_LIB=y
1251CONFIG_RTC_CLASS=y
1252CONFIG_RTC_HCTOSYS=y
1253CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1254# CONFIG_RTC_DEBUG is not set
1255
1256#
1257# RTC interfaces
1258#
1259CONFIG_RTC_INTF_SYSFS=y
1260CONFIG_RTC_INTF_PROC=y
1261CONFIG_RTC_INTF_DEV=y
1262# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1263# CONFIG_RTC_DRV_TEST is not set
1264
1265#
1266# I2C RTC drivers
1267#
1268# CONFIG_RTC_DRV_DS1307 is not set
1269# CONFIG_RTC_DRV_DS1374 is not set
1270# CONFIG_RTC_DRV_DS1672 is not set
1271# CONFIG_RTC_DRV_MAX6900 is not set
1272# CONFIG_RTC_DRV_RS5C372 is not set
1273# CONFIG_RTC_DRV_ISL1208 is not set
1274# CONFIG_RTC_DRV_X1205 is not set
1275# CONFIG_RTC_DRV_PCF8563 is not set
1276# CONFIG_RTC_DRV_PCF8583 is not set
1277# CONFIG_RTC_DRV_M41T80 is not set
1278# CONFIG_RTC_DRV_S35390A is not set
1279# CONFIG_RTC_DRV_FM3130 is not set
1280
1281#
1282# SPI RTC drivers
1283#
1284
1285#
1286# Platform RTC drivers
1287#
1288CONFIG_RTC_DRV_CMOS=y
1289# CONFIG_RTC_DRV_DS1511 is not set
1290# CONFIG_RTC_DRV_DS1553 is not set
1291# CONFIG_RTC_DRV_DS1742 is not set
1292# CONFIG_RTC_DRV_STK17TA8 is not set
1293# CONFIG_RTC_DRV_M48T86 is not set
1294# CONFIG_RTC_DRV_M48T59 is not set
1295# CONFIG_RTC_DRV_V3020 is not set
1296
1297#
1298# on-CPU RTC drivers
1299#
1300# CONFIG_RTC_DRV_PPC is not set
1301CONFIG_DMADEVICES=y
1302
1303#
1304# DMA Devices
1305#
1306CONFIG_FSL_DMA=y
1307CONFIG_DMA_ENGINE=y
1308
1309#
1310# DMA Clients
1311#
1312# CONFIG_NET_DMA is not set
1313# CONFIG_UIO is not set
1314
1315#
1316# File systems
1317#
1318CONFIG_EXT2_FS=y
1319# CONFIG_EXT2_FS_XATTR is not set
1320# CONFIG_EXT2_FS_XIP is not set
1321CONFIG_EXT3_FS=y
1322CONFIG_EXT3_FS_XATTR=y
1323# CONFIG_EXT3_FS_POSIX_ACL is not set
1324# CONFIG_EXT3_FS_SECURITY is not set
1325# CONFIG_EXT4DEV_FS is not set
1326CONFIG_JBD=y
1327# CONFIG_JBD_DEBUG is not set
1328CONFIG_FS_MBCACHE=y
1329# CONFIG_REISERFS_FS is not set
1330# CONFIG_JFS_FS is not set
1331# CONFIG_FS_POSIX_ACL is not set
1332# CONFIG_XFS_FS is not set
1333# CONFIG_OCFS2_FS is not set
1334CONFIG_DNOTIFY=y
1335CONFIG_INOTIFY=y
1336CONFIG_INOTIFY_USER=y
1337# CONFIG_QUOTA is not set
1338# CONFIG_AUTOFS_FS is not set
1339# CONFIG_AUTOFS4_FS is not set
1340# CONFIG_FUSE_FS is not set
1341
1342#
1343# CD-ROM/DVD Filesystems
1344#
1345CONFIG_ISO9660_FS=m
1346CONFIG_JOLIET=y
1347CONFIG_ZISOFS=y
1348CONFIG_UDF_FS=m
1349CONFIG_UDF_NLS=y
1350
1351#
1352# DOS/FAT/NT Filesystems
1353#
1354CONFIG_FAT_FS=y
1355CONFIG_MSDOS_FS=m
1356CONFIG_VFAT_FS=y
1357CONFIG_FAT_DEFAULT_CODEPAGE=437
1358CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1359CONFIG_NTFS_FS=y
1360# CONFIG_NTFS_DEBUG is not set
1361# CONFIG_NTFS_RW is not set
1362
1363#
1364# Pseudo filesystems
1365#
1366CONFIG_PROC_FS=y
1367CONFIG_PROC_KCORE=y
1368CONFIG_PROC_SYSCTL=y
1369CONFIG_SYSFS=y
1370CONFIG_TMPFS=y
1371# CONFIG_TMPFS_POSIX_ACL is not set
1372# CONFIG_HUGETLB_PAGE is not set
1373# CONFIG_CONFIGFS_FS is not set
1374
1375#
1376# Miscellaneous filesystems
1377#
1378CONFIG_ADFS_FS=m
1379# CONFIG_ADFS_FS_RW is not set
1380CONFIG_AFFS_FS=m
1381CONFIG_HFS_FS=m
1382CONFIG_HFSPLUS_FS=m
1383CONFIG_BEFS_FS=m
1384# CONFIG_BEFS_DEBUG is not set
1385CONFIG_BFS_FS=m
1386CONFIG_EFS_FS=m
1387CONFIG_CRAMFS=y
1388CONFIG_VXFS_FS=m
1389# CONFIG_MINIX_FS is not set
1390CONFIG_HPFS_FS=m
1391CONFIG_QNX4FS_FS=m
1392# CONFIG_ROMFS_FS is not set
1393CONFIG_SYSV_FS=m
1394CONFIG_UFS_FS=m
1395# CONFIG_UFS_FS_WRITE is not set
1396# CONFIG_UFS_DEBUG is not set
1397CONFIG_NETWORK_FILESYSTEMS=y
1398CONFIG_NFS_FS=y
1399CONFIG_NFS_V3=y
1400# CONFIG_NFS_V3_ACL is not set
1401CONFIG_NFS_V4=y
1402CONFIG_NFSD=y
1403# CONFIG_NFSD_V3 is not set
1404# CONFIG_NFSD_V4 is not set
1405CONFIG_ROOT_NFS=y
1406CONFIG_LOCKD=y
1407CONFIG_LOCKD_V4=y
1408CONFIG_EXPORTFS=y
1409CONFIG_NFS_COMMON=y
1410CONFIG_SUNRPC=y
1411CONFIG_SUNRPC_GSS=y
1412# CONFIG_SUNRPC_BIND34 is not set
1413CONFIG_RPCSEC_GSS_KRB5=y
1414# CONFIG_RPCSEC_GSS_SPKM3 is not set
1415# CONFIG_SMB_FS is not set
1416# CONFIG_CIFS is not set
1417# CONFIG_NCP_FS is not set
1418# CONFIG_CODA_FS is not set
1419# CONFIG_AFS_FS is not set
1420
1421#
1422# Partition Types
1423#
1424CONFIG_PARTITION_ADVANCED=y
1425# CONFIG_ACORN_PARTITION is not set
1426# CONFIG_OSF_PARTITION is not set
1427# CONFIG_AMIGA_PARTITION is not set
1428# CONFIG_ATARI_PARTITION is not set
1429CONFIG_MAC_PARTITION=y
1430CONFIG_MSDOS_PARTITION=y
1431# CONFIG_BSD_DISKLABEL is not set
1432# CONFIG_MINIX_SUBPARTITION is not set
1433# CONFIG_SOLARIS_X86_PARTITION is not set
1434# CONFIG_UNIXWARE_DISKLABEL is not set
1435# CONFIG_LDM_PARTITION is not set
1436# CONFIG_SGI_PARTITION is not set
1437# CONFIG_ULTRIX_PARTITION is not set
1438# CONFIG_SUN_PARTITION is not set
1439# CONFIG_KARMA_PARTITION is not set
1440# CONFIG_EFI_PARTITION is not set
1441# CONFIG_SYSV68_PARTITION is not set
1442CONFIG_NLS=y
1443CONFIG_NLS_DEFAULT="iso8859-1"
1444# CONFIG_NLS_CODEPAGE_437 is not set
1445# CONFIG_NLS_CODEPAGE_737 is not set
1446# CONFIG_NLS_CODEPAGE_775 is not set
1447# CONFIG_NLS_CODEPAGE_850 is not set
1448# CONFIG_NLS_CODEPAGE_852 is not set
1449# CONFIG_NLS_CODEPAGE_855 is not set
1450# CONFIG_NLS_CODEPAGE_857 is not set
1451# CONFIG_NLS_CODEPAGE_860 is not set
1452# CONFIG_NLS_CODEPAGE_861 is not set
1453# CONFIG_NLS_CODEPAGE_862 is not set
1454# CONFIG_NLS_CODEPAGE_863 is not set
1455# CONFIG_NLS_CODEPAGE_864 is not set
1456# CONFIG_NLS_CODEPAGE_865 is not set
1457# CONFIG_NLS_CODEPAGE_866 is not set
1458# CONFIG_NLS_CODEPAGE_869 is not set
1459# CONFIG_NLS_CODEPAGE_936 is not set
1460# CONFIG_NLS_CODEPAGE_950 is not set
1461# CONFIG_NLS_CODEPAGE_932 is not set
1462# CONFIG_NLS_CODEPAGE_949 is not set
1463# CONFIG_NLS_CODEPAGE_874 is not set
1464# CONFIG_NLS_ISO8859_8 is not set
1465# CONFIG_NLS_CODEPAGE_1250 is not set
1466# CONFIG_NLS_CODEPAGE_1251 is not set
1467# CONFIG_NLS_ASCII is not set
1468# CONFIG_NLS_ISO8859_1 is not set
1469# CONFIG_NLS_ISO8859_2 is not set
1470# CONFIG_NLS_ISO8859_3 is not set
1471# CONFIG_NLS_ISO8859_4 is not set
1472# CONFIG_NLS_ISO8859_5 is not set
1473# CONFIG_NLS_ISO8859_6 is not set
1474# CONFIG_NLS_ISO8859_7 is not set
1475# CONFIG_NLS_ISO8859_9 is not set
1476# CONFIG_NLS_ISO8859_13 is not set
1477# CONFIG_NLS_ISO8859_14 is not set
1478# CONFIG_NLS_ISO8859_15 is not set
1479# CONFIG_NLS_KOI8_R is not set
1480# CONFIG_NLS_KOI8_U is not set
1481CONFIG_NLS_UTF8=m
1482# CONFIG_DLM is not set
1483
1484#
1485# Library routines
1486#
1487CONFIG_BITREVERSE=y
1488# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1489# CONFIG_CRC_CCITT is not set
1490# CONFIG_CRC16 is not set
1491CONFIG_CRC_ITU_T=m
1492CONFIG_CRC32=y
1493# CONFIG_CRC7 is not set
1494CONFIG_LIBCRC32C=m
1495CONFIG_ZLIB_INFLATE=y
1496CONFIG_PLIST=y
1497CONFIG_HAS_IOMEM=y
1498CONFIG_HAS_IOPORT=y
1499CONFIG_HAS_DMA=y
1500CONFIG_HAVE_LMB=y
1501
1502#
1503# Kernel hacking
1504#
1505# CONFIG_PRINTK_TIME is not set
1506CONFIG_ENABLE_WARN_DEPRECATED=y
1507CONFIG_ENABLE_MUST_CHECK=y
1508CONFIG_FRAME_WARN=1024
1509# CONFIG_MAGIC_SYSRQ is not set
1510# CONFIG_UNUSED_SYMBOLS is not set
1511CONFIG_DEBUG_FS=y
1512# CONFIG_HEADERS_CHECK is not set
1513CONFIG_DEBUG_KERNEL=y
1514# CONFIG_DEBUG_SHIRQ is not set
1515CONFIG_DETECT_SOFTLOCKUP=y
1516CONFIG_SCHED_DEBUG=y
1517# CONFIG_SCHEDSTATS is not set
1518# CONFIG_TIMER_STATS is not set
1519# CONFIG_DEBUG_OBJECTS is not set
1520# CONFIG_SLUB_DEBUG_ON is not set
1521# CONFIG_SLUB_STATS is not set
1522# CONFIG_DEBUG_RT_MUTEXES is not set
1523# CONFIG_RT_MUTEX_TESTER is not set
1524# CONFIG_DEBUG_SPINLOCK is not set
1525# CONFIG_DEBUG_MUTEXES is not set
1526# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1527# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1528# CONFIG_DEBUG_KOBJECT is not set
1529# CONFIG_DEBUG_HIGHMEM is not set
1530# CONFIG_DEBUG_BUGVERBOSE is not set
1531CONFIG_DEBUG_INFO=y
1532# CONFIG_DEBUG_VM is not set
1533# CONFIG_DEBUG_WRITECOUNT is not set
1534# CONFIG_DEBUG_LIST is not set
1535# CONFIG_DEBUG_SG is not set
1536# CONFIG_BOOT_PRINTK_DELAY is not set
1537# CONFIG_RCU_TORTURE_TEST is not set
1538# CONFIG_BACKTRACE_SELF_TEST is not set
1539# CONFIG_FAULT_INJECTION is not set
1540# CONFIG_SAMPLES is not set
1541# CONFIG_DEBUG_STACKOVERFLOW is not set
1542# CONFIG_DEBUG_STACK_USAGE is not set
1543# CONFIG_DEBUG_PAGEALLOC is not set
1544# CONFIG_DEBUGGER is not set
1545# CONFIG_CODE_PATCHING_SELFTEST is not set
1546# CONFIG_FTR_FIXUP_SELFTEST is not set
1547# CONFIG_IRQSTACKS is not set
1548# CONFIG_VIRQ_DEBUG is not set
1549# CONFIG_BDI_SWITCH is not set
1550# CONFIG_PPC_EARLY_DEBUG is not set
1551
1552#
1553# Security options
1554#
1555# CONFIG_KEYS is not set
1556# CONFIG_SECURITY is not set
1557# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1558CONFIG_CRYPTO=y
1559
1560#
1561# Crypto core or helper
1562#
1563CONFIG_CRYPTO_ALGAPI=y
1564CONFIG_CRYPTO_BLKCIPHER=y
1565CONFIG_CRYPTO_HASH=y
1566CONFIG_CRYPTO_MANAGER=y
1567# CONFIG_CRYPTO_GF128MUL is not set
1568# CONFIG_CRYPTO_NULL is not set
1569# CONFIG_CRYPTO_CRYPTD is not set
1570# CONFIG_CRYPTO_AUTHENC is not set
1571# CONFIG_CRYPTO_TEST is not set
1572
1573#
1574# Authenticated Encryption with Associated Data
1575#
1576# CONFIG_CRYPTO_CCM is not set
1577# CONFIG_CRYPTO_GCM is not set
1578# CONFIG_CRYPTO_SEQIV is not set
1579
1580#
1581# Block modes
1582#
1583CONFIG_CRYPTO_CBC=y
1584# CONFIG_CRYPTO_CTR is not set
1585# CONFIG_CRYPTO_CTS is not set
1586# CONFIG_CRYPTO_ECB is not set
1587# CONFIG_CRYPTO_LRW is not set
1588CONFIG_CRYPTO_PCBC=m
1589# CONFIG_CRYPTO_XTS is not set
1590
1591#
1592# Hash modes
1593#
1594CONFIG_CRYPTO_HMAC=y
1595# CONFIG_CRYPTO_XCBC is not set
1596
1597#
1598# Digest
1599#
1600# CONFIG_CRYPTO_CRC32C is not set
1601# CONFIG_CRYPTO_MD4 is not set
1602CONFIG_CRYPTO_MD5=y
1603# CONFIG_CRYPTO_MICHAEL_MIC is not set
1604CONFIG_CRYPTO_SHA1=m
1605# CONFIG_CRYPTO_SHA256 is not set
1606# CONFIG_CRYPTO_SHA512 is not set
1607# CONFIG_CRYPTO_TGR192 is not set
1608# CONFIG_CRYPTO_WP512 is not set
1609
1610#
1611# Ciphers
1612#
1613# CONFIG_CRYPTO_AES is not set
1614# CONFIG_CRYPTO_ANUBIS is not set
1615# CONFIG_CRYPTO_ARC4 is not set
1616# CONFIG_CRYPTO_BLOWFISH is not set
1617# CONFIG_CRYPTO_CAMELLIA is not set
1618# CONFIG_CRYPTO_CAST5 is not set
1619# CONFIG_CRYPTO_CAST6 is not set
1620CONFIG_CRYPTO_DES=y
1621# CONFIG_CRYPTO_FCRYPT is not set
1622# CONFIG_CRYPTO_KHAZAD is not set
1623# CONFIG_CRYPTO_SALSA20 is not set
1624# CONFIG_CRYPTO_SEED is not set
1625# CONFIG_CRYPTO_SERPENT is not set
1626# CONFIG_CRYPTO_TEA is not set
1627# CONFIG_CRYPTO_TWOFISH is not set
1628
1629#
1630# Compression
1631#
1632# CONFIG_CRYPTO_DEFLATE is not set
1633# CONFIG_CRYPTO_LZO is not set
1634CONFIG_CRYPTO_HW=y
1635# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1636# CONFIG_PPC_CLOCK is not set
1637# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/ppc44x_defconfig b/arch/powerpc/configs/ppc44x_defconfig
index 12f9b5a80220..f9d279bb700b 100644
--- a/arch/powerpc/configs/ppc44x_defconfig
+++ b/arch/powerpc/configs/ppc44x_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.25-rc6 3# Linux kernel version: 2.6.26-rc8
4# Sat Apr 5 09:35:48 2008 4# Wed Jul 9 13:50:48 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
@@ -88,6 +90,7 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 90CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 91CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 92CONFIG_SYSCTL_SYSCALL=y
93CONFIG_SYSCTL_SYSCALL_CHECK=y
91CONFIG_KALLSYMS=y 94CONFIG_KALLSYMS=y
92CONFIG_KALLSYMS_ALL=y 95CONFIG_KALLSYMS_ALL=y
93CONFIG_KALLSYMS_EXTRA_PASS=y 96CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -115,12 +118,14 @@ CONFIG_HAVE_OPROFILE=y
115# CONFIG_KPROBES is not set 118# CONFIG_KPROBES is not set
116CONFIG_HAVE_KPROBES=y 119CONFIG_HAVE_KPROBES=y
117CONFIG_HAVE_KRETPROBES=y 120CONFIG_HAVE_KRETPROBES=y
121# CONFIG_HAVE_DMA_ATTRS is not set
118CONFIG_PROC_PAGE_MONITOR=y 122CONFIG_PROC_PAGE_MONITOR=y
119CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 125# CONFIG_TINY_SHMEM is not set
122CONFIG_BASE_SMALL=0 126CONFIG_BASE_SMALL=0
123CONFIG_MODULES=y 127CONFIG_MODULES=y
128# CONFIG_MODULE_FORCE_LOAD is not set
124CONFIG_MODULE_UNLOAD=y 129CONFIG_MODULE_UNLOAD=y
125# CONFIG_MODULE_FORCE_UNLOAD is not set 130# CONFIG_MODULE_FORCE_UNLOAD is not set
126# CONFIG_MODVERSIONS is not set 131# CONFIG_MODVERSIONS is not set
@@ -157,6 +162,7 @@ CONFIG_PPC4xx_PCI_EXPRESS=y
157# CONFIG_PQ2ADS is not set 162# CONFIG_PQ2ADS is not set
158CONFIG_BAMBOO=y 163CONFIG_BAMBOO=y
159CONFIG_EBONY=y 164CONFIG_EBONY=y
165CONFIG_SAM440EP=y
160CONFIG_SEQUOIA=y 166CONFIG_SEQUOIA=y
161CONFIG_TAISHAN=y 167CONFIG_TAISHAN=y
162CONFIG_KATMAI=y 168CONFIG_KATMAI=y
@@ -164,6 +170,7 @@ CONFIG_RAINIER=y
164CONFIG_WARP=y 170CONFIG_WARP=y
165CONFIG_CANYONLANDS=y 171CONFIG_CANYONLANDS=y
166CONFIG_YOSEMITE=y 172CONFIG_YOSEMITE=y
173CONFIG_XILINX_VIRTEX440_GENERIC_BOARD=y
167CONFIG_440EP=y 174CONFIG_440EP=y
168CONFIG_440EPX=y 175CONFIG_440EPX=y
169CONFIG_440GRX=y 176CONFIG_440GRX=y
@@ -172,6 +179,8 @@ CONFIG_440GX=y
172CONFIG_440SPe=y 179CONFIG_440SPe=y
173CONFIG_460EX=y 180CONFIG_460EX=y
174CONFIG_IBM440EP_ERR42=y 181CONFIG_IBM440EP_ERR42=y
182CONFIG_XILINX_VIRTEX=y
183CONFIG_XILINX_VIRTEX_5_FXT=y
175# CONFIG_IPIC is not set 184# CONFIG_IPIC is not set
176# CONFIG_MPIC is not set 185# CONFIG_MPIC is not set
177# CONFIG_MPIC_WEIRD is not set 186# CONFIG_MPIC_WEIRD is not set
@@ -220,13 +229,16 @@ CONFIG_FLATMEM=y
220CONFIG_FLAT_NODE_MEM_MAP=y 229CONFIG_FLAT_NODE_MEM_MAP=y
221# CONFIG_SPARSEMEM_STATIC is not set 230# CONFIG_SPARSEMEM_STATIC is not set
222# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 231# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
232CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 233CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_RESOURCES_64BIT=y 234CONFIG_RESOURCES_64BIT=y
225CONFIG_ZONE_DMA_FLAG=1 235CONFIG_ZONE_DMA_FLAG=1
226CONFIG_BOUNCE=y 236CONFIG_BOUNCE=y
227CONFIG_VIRT_TO_BUS=y 237CONFIG_VIRT_TO_BUS=y
238CONFIG_FORCE_MAX_ZONEORDER=11
228CONFIG_PROC_DEVICETREE=y 239CONFIG_PROC_DEVICETREE=y
229# CONFIG_CMDLINE_BOOL is not set 240# CONFIG_CMDLINE_BOOL is not set
241CONFIG_EXTRA_TARGETS=""
230CONFIG_SECCOMP=y 242CONFIG_SECCOMP=y
231CONFIG_ISA_DMA_API=y 243CONFIG_ISA_DMA_API=y
232 244
@@ -246,6 +258,7 @@ CONFIG_PCI_LEGACY=y
246# CONFIG_PCI_DEBUG is not set 258# CONFIG_PCI_DEBUG is not set
247# CONFIG_PCCARD is not set 259# CONFIG_PCCARD is not set
248# CONFIG_HOTPLUG_PCI is not set 260# CONFIG_HOTPLUG_PCI is not set
261# CONFIG_HAS_RAPIDIO is not set
249 262
250# 263#
251# Advanced setup 264# Advanced setup
@@ -255,13 +268,13 @@ CONFIG_PCI_LEGACY=y
255# 268#
256# Default settings for advanced configuration options are used 269# Default settings for advanced configuration options are used
257# 270#
258CONFIG_HIGHMEM_START=0xfe000000
259CONFIG_LOWMEM_SIZE=0x30000000 271CONFIG_LOWMEM_SIZE=0x30000000
272CONFIG_PAGE_OFFSET=0xc0000000
260CONFIG_KERNEL_START=0xc0000000 273CONFIG_KERNEL_START=0xc0000000
274CONFIG_PHYSICAL_START=0x00000000
261CONFIG_TASK_SIZE=0xc0000000 275CONFIG_TASK_SIZE=0xc0000000
262CONFIG_CONSISTENT_START=0xff100000 276CONFIG_CONSISTENT_START=0xff100000
263CONFIG_CONSISTENT_SIZE=0x00200000 277CONFIG_CONSISTENT_SIZE=0x00200000
264CONFIG_BOOT_LOAD=0x01000000
265 278
266# 279#
267# Networking 280# Networking
@@ -303,8 +316,6 @@ CONFIG_TCP_CONG_CUBIC=y
303CONFIG_DEFAULT_TCP_CONG="cubic" 316CONFIG_DEFAULT_TCP_CONG="cubic"
304# CONFIG_TCP_MD5SIG is not set 317# CONFIG_TCP_MD5SIG is not set
305# CONFIG_IPV6 is not set 318# CONFIG_IPV6 is not set
306# CONFIG_INET6_XFRM_TUNNEL is not set
307# CONFIG_INET6_TUNNEL is not set
308# CONFIG_NETWORK_SECMARK is not set 319# CONFIG_NETWORK_SECMARK is not set
309# CONFIG_NETFILTER is not set 320# CONFIG_NETFILTER is not set
310# CONFIG_IP_DCCP is not set 321# CONFIG_IP_DCCP is not set
@@ -366,6 +377,7 @@ CONFIG_MTD_PARTITIONS=y
366# CONFIG_MTD_REDBOOT_PARTS is not set 377# CONFIG_MTD_REDBOOT_PARTS is not set
367# CONFIG_MTD_CMDLINE_PARTS is not set 378# CONFIG_MTD_CMDLINE_PARTS is not set
368CONFIG_MTD_OF_PARTS=y 379CONFIG_MTD_OF_PARTS=y
380# CONFIG_MTD_AR7_PARTS is not set
369 381
370# 382#
371# User Modules And Translation Layers 383# User Modules And Translation Layers
@@ -478,6 +490,10 @@ CONFIG_HAVE_IDE=y
478# 490#
479# IEEE 1394 (FireWire) support 491# IEEE 1394 (FireWire) support
480# 492#
493
494#
495# Enable only one of the two stacks, unless you know what you are doing
496#
481# CONFIG_FIREWIRE is not set 497# CONFIG_FIREWIRE is not set
482# CONFIG_IEEE1394 is not set 498# CONFIG_IEEE1394 is not set
483# CONFIG_I2O is not set 499# CONFIG_I2O is not set
@@ -528,7 +544,6 @@ CONFIG_NETDEV_1000=y
528# CONFIG_SIS190 is not set 544# CONFIG_SIS190 is not set
529# CONFIG_SKGE is not set 545# CONFIG_SKGE is not set
530# CONFIG_SKY2 is not set 546# CONFIG_SKY2 is not set
531# CONFIG_SK98LIN is not set
532# CONFIG_VIA_VELOCITY is not set 547# CONFIG_VIA_VELOCITY is not set
533# CONFIG_TIGON3 is not set 548# CONFIG_TIGON3 is not set
534# CONFIG_BNX2 is not set 549# CONFIG_BNX2 is not set
@@ -546,6 +561,7 @@ CONFIG_NETDEV_10000=y
546# CONFIG_MLX4_CORE is not set 561# CONFIG_MLX4_CORE is not set
547# CONFIG_TEHUTI is not set 562# CONFIG_TEHUTI is not set
548# CONFIG_BNX2X is not set 563# CONFIG_BNX2X is not set
564# CONFIG_SFC is not set
549# CONFIG_TR is not set 565# CONFIG_TR is not set
550 566
551# 567#
@@ -553,6 +569,7 @@ CONFIG_NETDEV_10000=y
553# 569#
554# CONFIG_WLAN_PRE80211 is not set 570# CONFIG_WLAN_PRE80211 is not set
555# CONFIG_WLAN_80211 is not set 571# CONFIG_WLAN_80211 is not set
572# CONFIG_IWLWIFI_LEDS is not set
556# CONFIG_WAN is not set 573# CONFIG_WAN is not set
557# CONFIG_FDDI is not set 574# CONFIG_FDDI is not set
558# CONFIG_HIPPI is not set 575# CONFIG_HIPPI is not set
@@ -579,6 +596,7 @@ CONFIG_NETDEV_10000=y
579# Character devices 596# Character devices
580# 597#
581# CONFIG_VT is not set 598# CONFIG_VT is not set
599CONFIG_DEVKMEM=y
582# CONFIG_SERIAL_NONSTANDARD is not set 600# CONFIG_SERIAL_NONSTANDARD is not set
583# CONFIG_NOZOMI is not set 601# CONFIG_NOZOMI is not set
584 602
@@ -611,22 +629,19 @@ CONFIG_LEGACY_PTY_COUNT=256
611# CONFIG_HW_RANDOM is not set 629# CONFIG_HW_RANDOM is not set
612# CONFIG_NVRAM is not set 630# CONFIG_NVRAM is not set
613# CONFIG_GEN_RTC is not set 631# CONFIG_GEN_RTC is not set
632CONFIG_XILINX_HWICAP=m
614# CONFIG_R3964 is not set 633# CONFIG_R3964 is not set
615# CONFIG_APPLICOM is not set 634# CONFIG_APPLICOM is not set
616# CONFIG_RAW_DRIVER is not set 635# CONFIG_RAW_DRIVER is not set
617# CONFIG_TCG_TPM is not set 636# CONFIG_TCG_TPM is not set
618CONFIG_DEVPORT=y 637CONFIG_DEVPORT=y
619# CONFIG_I2C is not set 638# CONFIG_I2C is not set
620
621#
622# SPI support
623#
624# CONFIG_SPI is not set 639# CONFIG_SPI is not set
625# CONFIG_SPI_MASTER is not set
626# CONFIG_W1 is not set 640# CONFIG_W1 is not set
627# CONFIG_POWER_SUPPLY is not set 641# CONFIG_POWER_SUPPLY is not set
628# CONFIG_HWMON is not set 642# CONFIG_HWMON is not set
629# CONFIG_THERMAL is not set 643# CONFIG_THERMAL is not set
644# CONFIG_THERMAL_HWMON is not set
630# CONFIG_WATCHDOG is not set 645# CONFIG_WATCHDOG is not set
631 646
632# 647#
@@ -639,12 +654,22 @@ CONFIG_SSB_POSSIBLE=y
639# Multifunction device drivers 654# Multifunction device drivers
640# 655#
641# CONFIG_MFD_SM501 is not set 656# CONFIG_MFD_SM501 is not set
657# CONFIG_HTC_PASIC3 is not set
642 658
643# 659#
644# Multimedia devices 660# Multimedia devices
645# 661#
662
663#
664# Multimedia core support
665#
646# CONFIG_VIDEO_DEV is not set 666# CONFIG_VIDEO_DEV is not set
647# CONFIG_DVB_CORE is not set 667# CONFIG_DVB_CORE is not set
668# CONFIG_VIDEO_MEDIA is not set
669
670#
671# Multimedia drivers
672#
648# CONFIG_DAB is not set 673# CONFIG_DAB is not set
649 674
650# 675#
@@ -671,6 +696,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
671CONFIG_USB_ARCH_HAS_OHCI=y 696CONFIG_USB_ARCH_HAS_OHCI=y
672CONFIG_USB_ARCH_HAS_EHCI=y 697CONFIG_USB_ARCH_HAS_EHCI=y
673# CONFIG_USB is not set 698# CONFIG_USB is not set
699# CONFIG_USB_OTG_WHITELIST is not set
700# CONFIG_USB_OTG_BLACKLIST_HUB is not set
674 701
675# 702#
676# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 703# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -679,14 +706,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y
679# CONFIG_MMC is not set 706# CONFIG_MMC is not set
680# CONFIG_MEMSTICK is not set 707# CONFIG_MEMSTICK is not set
681# CONFIG_NEW_LEDS is not set 708# CONFIG_NEW_LEDS is not set
709# CONFIG_ACCESSIBILITY is not set
682# CONFIG_INFINIBAND is not set 710# CONFIG_INFINIBAND is not set
683# CONFIG_EDAC is not set 711# CONFIG_EDAC is not set
684# CONFIG_RTC_CLASS is not set 712# CONFIG_RTC_CLASS is not set
685# CONFIG_DMADEVICES is not set 713# CONFIG_DMADEVICES is not set
686
687#
688# Userspace I/O
689#
690# CONFIG_UIO is not set 714# CONFIG_UIO is not set
691 715
692# 716#
@@ -701,7 +725,6 @@ CONFIG_EXT2_FS=y
701# CONFIG_JFS_FS is not set 725# CONFIG_JFS_FS is not set
702# CONFIG_FS_POSIX_ACL is not set 726# CONFIG_FS_POSIX_ACL is not set
703# CONFIG_XFS_FS is not set 727# CONFIG_XFS_FS is not set
704# CONFIG_GFS2_FS is not set
705# CONFIG_OCFS2_FS is not set 728# CONFIG_OCFS2_FS is not set
706CONFIG_DNOTIFY=y 729CONFIG_DNOTIFY=y
707CONFIG_INOTIFY=y 730CONFIG_INOTIFY=y
@@ -770,7 +793,6 @@ CONFIG_NFS_FS=y
770CONFIG_NFS_V3=y 793CONFIG_NFS_V3=y
771# CONFIG_NFS_V3_ACL is not set 794# CONFIG_NFS_V3_ACL is not set
772# CONFIG_NFS_V4 is not set 795# CONFIG_NFS_V4 is not set
773# CONFIG_NFS_DIRECTIO is not set
774# CONFIG_NFSD is not set 796# CONFIG_NFSD is not set
775CONFIG_ROOT_NFS=y 797CONFIG_ROOT_NFS=y
776CONFIG_LOCKD=y 798CONFIG_LOCKD=y
@@ -798,6 +820,7 @@ CONFIG_MSDOS_PARTITION=y
798# Library routines 820# Library routines
799# 821#
800CONFIG_BITREVERSE=y 822CONFIG_BITREVERSE=y
823# CONFIG_GENERIC_FIND_FIRST_BIT is not set
801# CONFIG_CRC_CCITT is not set 824# CONFIG_CRC_CCITT is not set
802# CONFIG_CRC16 is not set 825# CONFIG_CRC16 is not set
803# CONFIG_CRC_ITU_T is not set 826# CONFIG_CRC_ITU_T is not set
@@ -818,6 +841,7 @@ CONFIG_HAVE_LMB=y
818# CONFIG_PRINTK_TIME is not set 841# CONFIG_PRINTK_TIME is not set
819CONFIG_ENABLE_WARN_DEPRECATED=y 842CONFIG_ENABLE_WARN_DEPRECATED=y
820CONFIG_ENABLE_MUST_CHECK=y 843CONFIG_ENABLE_MUST_CHECK=y
844CONFIG_FRAME_WARN=1024
821CONFIG_MAGIC_SYSRQ=y 845CONFIG_MAGIC_SYSRQ=y
822# CONFIG_UNUSED_SYMBOLS is not set 846# CONFIG_UNUSED_SYMBOLS is not set
823# CONFIG_DEBUG_FS is not set 847# CONFIG_DEBUG_FS is not set
@@ -828,6 +852,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
828CONFIG_SCHED_DEBUG=y 852CONFIG_SCHED_DEBUG=y
829# CONFIG_SCHEDSTATS is not set 853# CONFIG_SCHEDSTATS is not set
830# CONFIG_TIMER_STATS is not set 854# CONFIG_TIMER_STATS is not set
855# CONFIG_DEBUG_OBJECTS is not set
831# CONFIG_SLUB_DEBUG_ON is not set 856# CONFIG_SLUB_DEBUG_ON is not set
832# CONFIG_SLUB_STATS is not set 857# CONFIG_SLUB_STATS is not set
833# CONFIG_DEBUG_RT_MUTEXES is not set 858# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -840,6 +865,7 @@ CONFIG_SCHED_DEBUG=y
840CONFIG_DEBUG_BUGVERBOSE=y 865CONFIG_DEBUG_BUGVERBOSE=y
841# CONFIG_DEBUG_INFO is not set 866# CONFIG_DEBUG_INFO is not set
842# CONFIG_DEBUG_VM is not set 867# CONFIG_DEBUG_VM is not set
868# CONFIG_DEBUG_WRITECOUNT is not set
843# CONFIG_DEBUG_LIST is not set 869# CONFIG_DEBUG_LIST is not set
844# CONFIG_DEBUG_SG is not set 870# CONFIG_DEBUG_SG is not set
845# CONFIG_BOOT_PRINTK_DELAY is not set 871# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -851,6 +877,9 @@ CONFIG_DEBUG_BUGVERBOSE=y
851# CONFIG_DEBUG_STACK_USAGE is not set 877# CONFIG_DEBUG_STACK_USAGE is not set
852# CONFIG_DEBUG_PAGEALLOC is not set 878# CONFIG_DEBUG_PAGEALLOC is not set
853# CONFIG_DEBUGGER is not set 879# CONFIG_DEBUGGER is not set
880# CONFIG_CODE_PATCHING_SELFTEST is not set
881# CONFIG_FTR_FIXUP_SELFTEST is not set
882# CONFIG_IRQSTACKS is not set
854# CONFIG_BDI_SWITCH is not set 883# CONFIG_BDI_SWITCH is not set
855# CONFIG_PPC_EARLY_DEBUG is not set 884# CONFIG_PPC_EARLY_DEBUG is not set
856 885
@@ -861,50 +890,80 @@ CONFIG_DEBUG_BUGVERBOSE=y
861# CONFIG_SECURITY is not set 890# CONFIG_SECURITY is not set
862# CONFIG_SECURITY_FILE_CAPABILITIES is not set 891# CONFIG_SECURITY_FILE_CAPABILITIES is not set
863CONFIG_CRYPTO=y 892CONFIG_CRYPTO=y
893
894#
895# Crypto core or helper
896#
864CONFIG_CRYPTO_ALGAPI=y 897CONFIG_CRYPTO_ALGAPI=y
865CONFIG_CRYPTO_BLKCIPHER=y 898CONFIG_CRYPTO_BLKCIPHER=y
866# CONFIG_CRYPTO_SEQIV is not set
867CONFIG_CRYPTO_MANAGER=y 899CONFIG_CRYPTO_MANAGER=y
900# CONFIG_CRYPTO_GF128MUL is not set
901# CONFIG_CRYPTO_NULL is not set
902# CONFIG_CRYPTO_CRYPTD is not set
903# CONFIG_CRYPTO_AUTHENC is not set
904# CONFIG_CRYPTO_TEST is not set
905
906#
907# Authenticated Encryption with Associated Data
908#
909# CONFIG_CRYPTO_CCM is not set
910# CONFIG_CRYPTO_GCM is not set
911# CONFIG_CRYPTO_SEQIV is not set
912
913#
914# Block modes
915#
916CONFIG_CRYPTO_CBC=y
917# CONFIG_CRYPTO_CTR is not set
918# CONFIG_CRYPTO_CTS is not set
919CONFIG_CRYPTO_ECB=y
920# CONFIG_CRYPTO_LRW is not set
921CONFIG_CRYPTO_PCBC=y
922# CONFIG_CRYPTO_XTS is not set
923
924#
925# Hash modes
926#
868# CONFIG_CRYPTO_HMAC is not set 927# CONFIG_CRYPTO_HMAC is not set
869# CONFIG_CRYPTO_XCBC is not set 928# CONFIG_CRYPTO_XCBC is not set
870# CONFIG_CRYPTO_NULL is not set 929
930#
931# Digest
932#
933# CONFIG_CRYPTO_CRC32C is not set
871# CONFIG_CRYPTO_MD4 is not set 934# CONFIG_CRYPTO_MD4 is not set
872CONFIG_CRYPTO_MD5=y 935CONFIG_CRYPTO_MD5=y
936# CONFIG_CRYPTO_MICHAEL_MIC is not set
873# CONFIG_CRYPTO_SHA1 is not set 937# CONFIG_CRYPTO_SHA1 is not set
874# CONFIG_CRYPTO_SHA256 is not set 938# CONFIG_CRYPTO_SHA256 is not set
875# CONFIG_CRYPTO_SHA512 is not set 939# CONFIG_CRYPTO_SHA512 is not set
876# CONFIG_CRYPTO_WP512 is not set
877# CONFIG_CRYPTO_TGR192 is not set 940# CONFIG_CRYPTO_TGR192 is not set
878# CONFIG_CRYPTO_GF128MUL is not set 941# CONFIG_CRYPTO_WP512 is not set
879CONFIG_CRYPTO_ECB=y 942
880CONFIG_CRYPTO_CBC=y 943#
881CONFIG_CRYPTO_PCBC=y 944# Ciphers
882# CONFIG_CRYPTO_LRW is not set 945#
883# CONFIG_CRYPTO_XTS is not set
884# CONFIG_CRYPTO_CTR is not set
885# CONFIG_CRYPTO_GCM is not set
886# CONFIG_CRYPTO_CCM is not set
887# CONFIG_CRYPTO_CRYPTD is not set
888CONFIG_CRYPTO_DES=y
889# CONFIG_CRYPTO_FCRYPT is not set
890# CONFIG_CRYPTO_BLOWFISH is not set
891# CONFIG_CRYPTO_TWOFISH is not set
892# CONFIG_CRYPTO_SERPENT is not set
893# CONFIG_CRYPTO_AES is not set 946# CONFIG_CRYPTO_AES is not set
947# CONFIG_CRYPTO_ANUBIS is not set
948# CONFIG_CRYPTO_ARC4 is not set
949# CONFIG_CRYPTO_BLOWFISH is not set
950# CONFIG_CRYPTO_CAMELLIA is not set
894# CONFIG_CRYPTO_CAST5 is not set 951# CONFIG_CRYPTO_CAST5 is not set
895# CONFIG_CRYPTO_CAST6 is not set 952# CONFIG_CRYPTO_CAST6 is not set
896# CONFIG_CRYPTO_TEA is not set 953CONFIG_CRYPTO_DES=y
897# CONFIG_CRYPTO_ARC4 is not set 954# CONFIG_CRYPTO_FCRYPT is not set
898# CONFIG_CRYPTO_KHAZAD is not set 955# CONFIG_CRYPTO_KHAZAD is not set
899# CONFIG_CRYPTO_ANUBIS is not set
900# CONFIG_CRYPTO_SEED is not set
901# CONFIG_CRYPTO_SALSA20 is not set 956# CONFIG_CRYPTO_SALSA20 is not set
957# CONFIG_CRYPTO_SEED is not set
958# CONFIG_CRYPTO_SERPENT is not set
959# CONFIG_CRYPTO_TEA is not set
960# CONFIG_CRYPTO_TWOFISH is not set
961
962#
963# Compression
964#
902# CONFIG_CRYPTO_DEFLATE is not set 965# CONFIG_CRYPTO_DEFLATE is not set
903# CONFIG_CRYPTO_MICHAEL_MIC is not set
904# CONFIG_CRYPTO_CRC32C is not set
905# CONFIG_CRYPTO_CAMELLIA is not set
906# CONFIG_CRYPTO_TEST is not set
907# CONFIG_CRYPTO_AUTHENC is not set
908# CONFIG_CRYPTO_LZO is not set 966# CONFIG_CRYPTO_LZO is not set
909# CONFIG_CRYPTO_HW is not set 967# CONFIG_CRYPTO_HW is not set
910# CONFIG_PPC_CLOCK is not set 968# CONFIG_PPC_CLOCK is not set
969# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/kernel/align.c b/arch/powerpc/kernel/align.c
index c95954c81454..f22b5d0a4a97 100644
--- a/arch/powerpc/kernel/align.c
+++ b/arch/powerpc/kernel/align.c
@@ -363,8 +363,8 @@ static int emulate_multiple(struct pt_regs *regs, unsigned char __user *addr,
363 * Only POWER6 has these instructions, and it does true little-endian, 363 * Only POWER6 has these instructions, and it does true little-endian,
364 * so we don't need the address swizzling. 364 * so we don't need the address swizzling.
365 */ 365 */
366static int emulate_fp_pair(struct pt_regs *regs, unsigned char __user *addr, 366static int emulate_fp_pair(unsigned char __user *addr, unsigned int reg,
367 unsigned int reg, unsigned int flags) 367 unsigned int flags)
368{ 368{
369 char *ptr = (char *) &current->thread.TS_FPR(reg); 369 char *ptr = (char *) &current->thread.TS_FPR(reg);
370 int i, ret; 370 int i, ret;
@@ -759,7 +759,7 @@ int fix_alignment(struct pt_regs *regs)
759 759
760 /* Special case for 16-byte FP loads and stores */ 760 /* Special case for 16-byte FP loads and stores */
761 if (nb == 16) 761 if (nb == 16)
762 return emulate_fp_pair(regs, addr, reg, flags); 762 return emulate_fp_pair(addr, reg, flags);
763 763
764 /* If we are loading, get the data from user space, else 764 /* If we are loading, get the data from user space, else
765 * get it from register values 765 * get it from register values
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
index 817cea1b5ad3..72adb19a204d 100644
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
@@ -1447,6 +1447,16 @@ static struct cpu_spec __initdata cpu_specs[] = {
1447 .machine_check = machine_check_440A, 1447 .machine_check = machine_check_440A,
1448 .platform = "ppc440", 1448 .platform = "ppc440",
1449 }, 1449 },
1450 { /* 440 in Xilinx Virtex-5 FXT */
1451 .pvr_mask = 0xfffffff0,
1452 .pvr_value = 0x7ff21910,
1453 .cpu_name = "440 in Virtex-5 FXT",
1454 .cpu_features = CPU_FTRS_44X,
1455 .cpu_user_features = COMMON_USER_BOOKE,
1456 .icache_bsize = 32,
1457 .dcache_bsize = 32,
1458 .platform = "ppc440",
1459 },
1450 { /* 460EX */ 1460 { /* 460EX */
1451 .pvr_mask = 0xffff0002, 1461 .pvr_mask = 0xffff0002,
1452 .pvr_value = 0x13020002, 1462 .pvr_value = 0x13020002,
diff --git a/arch/powerpc/kernel/dma_64.c b/arch/powerpc/kernel/dma_64.c
index 3a317cb0636a..ae5708e3a312 100644
--- a/arch/powerpc/kernel/dma_64.c
+++ b/arch/powerpc/kernel/dma_64.c
@@ -15,15 +15,6 @@
15 * Generic iommu implementation 15 * Generic iommu implementation
16 */ 16 */
17 17
18static inline unsigned long device_to_mask(struct device *dev)
19{
20 if (dev->dma_mask && *dev->dma_mask)
21 return *dev->dma_mask;
22 /* Assume devices without mask can take 32 bit addresses */
23 return 0xfffffffful;
24}
25
26
27/* Allocates a contiguous real buffer and creates mappings over it. 18/* Allocates a contiguous real buffer and creates mappings over it.
28 * Returns the virtual address of the buffer and sets dma_handle 19 * Returns the virtual address of the buffer and sets dma_handle
29 * to the dma address (mapping) of the first page. 20 * to the dma address (mapping) of the first page.
@@ -50,32 +41,38 @@ static void dma_iommu_free_coherent(struct device *dev, size_t size,
50 */ 41 */
51static dma_addr_t dma_iommu_map_single(struct device *dev, void *vaddr, 42static dma_addr_t dma_iommu_map_single(struct device *dev, void *vaddr,
52 size_t size, 43 size_t size,
53 enum dma_data_direction direction) 44 enum dma_data_direction direction,
45 struct dma_attrs *attrs)
54{ 46{
55 return iommu_map_single(dev, dev->archdata.dma_data, vaddr, size, 47 return iommu_map_single(dev, dev->archdata.dma_data, vaddr, size,
56 device_to_mask(dev), direction); 48 device_to_mask(dev), direction, attrs);
57} 49}
58 50
59 51
60static void dma_iommu_unmap_single(struct device *dev, dma_addr_t dma_handle, 52static void dma_iommu_unmap_single(struct device *dev, dma_addr_t dma_handle,
61 size_t size, 53 size_t size,
62 enum dma_data_direction direction) 54 enum dma_data_direction direction,
55 struct dma_attrs *attrs)
63{ 56{
64 iommu_unmap_single(dev->archdata.dma_data, dma_handle, size, direction); 57 iommu_unmap_single(dev->archdata.dma_data, dma_handle, size, direction,
58 attrs);
65} 59}
66 60
67 61
68static int dma_iommu_map_sg(struct device *dev, struct scatterlist *sglist, 62static int dma_iommu_map_sg(struct device *dev, struct scatterlist *sglist,
69 int nelems, enum dma_data_direction direction) 63 int nelems, enum dma_data_direction direction,
64 struct dma_attrs *attrs)
70{ 65{
71 return iommu_map_sg(dev, sglist, nelems, 66 return iommu_map_sg(dev, dev->archdata.dma_data, sglist, nelems,
72 device_to_mask(dev), direction); 67 device_to_mask(dev), direction, attrs);
73} 68}
74 69
75static void dma_iommu_unmap_sg(struct device *dev, struct scatterlist *sglist, 70static void dma_iommu_unmap_sg(struct device *dev, struct scatterlist *sglist,
76 int nelems, enum dma_data_direction direction) 71 int nelems, enum dma_data_direction direction,
72 struct dma_attrs *attrs)
77{ 73{
78 iommu_unmap_sg(dev->archdata.dma_data, sglist, nelems, direction); 74 iommu_unmap_sg(dev->archdata.dma_data, sglist, nelems, direction,
75 attrs);
79} 76}
80 77
81/* We support DMA to/from any memory page via the iommu */ 78/* We support DMA to/from any memory page via the iommu */
@@ -148,19 +145,22 @@ static void dma_direct_free_coherent(struct device *dev, size_t size,
148 145
149static dma_addr_t dma_direct_map_single(struct device *dev, void *ptr, 146static dma_addr_t dma_direct_map_single(struct device *dev, void *ptr,
150 size_t size, 147 size_t size,
151 enum dma_data_direction direction) 148 enum dma_data_direction direction,
149 struct dma_attrs *attrs)
152{ 150{
153 return virt_to_abs(ptr) + get_dma_direct_offset(dev); 151 return virt_to_abs(ptr) + get_dma_direct_offset(dev);
154} 152}
155 153
156static void dma_direct_unmap_single(struct device *dev, dma_addr_t dma_addr, 154static void dma_direct_unmap_single(struct device *dev, dma_addr_t dma_addr,
157 size_t size, 155 size_t size,
158 enum dma_data_direction direction) 156 enum dma_data_direction direction,
157 struct dma_attrs *attrs)
159{ 158{
160} 159}
161 160
162static int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, 161static int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl,
163 int nents, enum dma_data_direction direction) 162 int nents, enum dma_data_direction direction,
163 struct dma_attrs *attrs)
164{ 164{
165 struct scatterlist *sg; 165 struct scatterlist *sg;
166 int i; 166 int i;
@@ -174,7 +174,8 @@ static int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl,
174} 174}
175 175
176static void dma_direct_unmap_sg(struct device *dev, struct scatterlist *sg, 176static void dma_direct_unmap_sg(struct device *dev, struct scatterlist *sg,
177 int nents, enum dma_data_direction direction) 177 int nents, enum dma_data_direction direction,
178 struct dma_attrs *attrs)
178{ 179{
179} 180}
180 181
diff --git a/arch/powerpc/kernel/head_44x.S b/arch/powerpc/kernel/head_44x.S
index 2944529e8bf9..f3a1ea9d7fe4 100644
--- a/arch/powerpc/kernel/head_44x.S
+++ b/arch/powerpc/kernel/head_44x.S
@@ -293,119 +293,9 @@ interrupt_base:
293 MCHECK_EXCEPTION(0x0210, MachineCheckA, machine_check_exception) 293 MCHECK_EXCEPTION(0x0210, MachineCheckA, machine_check_exception)
294 294
295 /* Data Storage Interrupt */ 295 /* Data Storage Interrupt */
296 START_EXCEPTION(DataStorage) 296 DATA_STORAGE_EXCEPTION
297 mtspr SPRN_SPRG0, r10 /* Save some working registers */
298 mtspr SPRN_SPRG1, r11
299 mtspr SPRN_SPRG4W, r12
300 mtspr SPRN_SPRG5W, r13
301 mfcr r11
302 mtspr SPRN_SPRG7W, r11
303
304 /*
305 * Check if it was a store fault, if not then bail
306 * because a user tried to access a kernel or
307 * read-protected page. Otherwise, get the
308 * offending address and handle it.
309 */
310 mfspr r10, SPRN_ESR
311 andis. r10, r10, ESR_ST@h
312 beq 2f
313
314 mfspr r10, SPRN_DEAR /* Get faulting address */
315
316 /* If we are faulting a kernel address, we have to use the
317 * kernel page tables.
318 */
319 lis r11, PAGE_OFFSET@h
320 cmplw r10, r11
321 blt+ 3f
322 lis r11, swapper_pg_dir@h
323 ori r11, r11, swapper_pg_dir@l
324
325 mfspr r12,SPRN_MMUCR
326 rlwinm r12,r12,0,0,23 /* Clear TID */
327
328 b 4f
329
330 /* Get the PGD for the current thread */
3313:
332 mfspr r11,SPRN_SPRG3
333 lwz r11,PGDIR(r11)
334
335 /* Load PID into MMUCR TID */
336 mfspr r12,SPRN_MMUCR /* Get MMUCR */
337 mfspr r13,SPRN_PID /* Get PID */
338 rlwimi r12,r13,0,24,31 /* Set TID */
339
3404:
341 mtspr SPRN_MMUCR,r12
342
343 rlwinm r12, r10, 13, 19, 29 /* Compute pgdir/pmd offset */
344 lwzx r11, r12, r11 /* Get pgd/pmd entry */
345 rlwinm. r12, r11, 0, 0, 20 /* Extract pt base address */
346 beq 2f /* Bail if no table */
347
348 rlwimi r12, r10, 23, 20, 28 /* Compute pte address */
349 lwz r11, 4(r12) /* Get pte entry */
350
351 andi. r13, r11, _PAGE_RW /* Is it writeable? */
352 beq 2f /* Bail if not */
353
354 /* Update 'changed'.
355 */
356 ori r11, r11, _PAGE_DIRTY|_PAGE_ACCESSED|_PAGE_HWWRITE
357 stw r11, 4(r12) /* Update Linux page table */
358
359 li r13, PPC44x_TLB_SR@l /* Set SR */
360 rlwimi r13, r11, 29, 29, 29 /* SX = _PAGE_HWEXEC */
361 rlwimi r13, r11, 0, 30, 30 /* SW = _PAGE_RW */
362 rlwimi r13, r11, 29, 28, 28 /* UR = _PAGE_USER */
363 rlwimi r12, r11, 31, 26, 26 /* (_PAGE_USER>>1)->r12 */
364 rlwimi r12, r11, 29, 30, 30 /* (_PAGE_USER>>3)->r12 */
365 and r12, r12, r11 /* HWEXEC/RW & USER */
366 rlwimi r13, r12, 0, 26, 26 /* UX = HWEXEC & USER */
367 rlwimi r13, r12, 3, 27, 27 /* UW = RW & USER */
368
369 rlwimi r11,r13,0,26,31 /* Insert static perms */
370
371 /*
372 * Clear U0-U3 and WL1 IL1I IL1D IL2I IL2D bits which are added
373 * on newer 440 cores like the 440x6 used on AMCC 460EX/460GT (see
374 * include/asm-powerpc/pgtable-ppc32.h for details).
375 */
376 rlwinm r11,r11,0,20,10
377
378 /* find the TLB index that caused the fault. It has to be here. */
379 tlbsx r10, 0, r10
380
381 tlbwe r11, r10, PPC44x_TLB_ATTRIB /* Write ATTRIB */
382
383 /* Done...restore registers and get out of here.
384 */
385 mfspr r11, SPRN_SPRG7R
386 mtcr r11
387 mfspr r13, SPRN_SPRG5R
388 mfspr r12, SPRN_SPRG4R
389 297
390 mfspr r11, SPRN_SPRG1 298 /* Instruction Storage Interrupt */
391 mfspr r10, SPRN_SPRG0
392 rfi /* Force context change */
393
3942:
395 /*
396 * The bailout. Restore registers to pre-exception conditions
397 * and call the heavyweights to help us out.
398 */
399 mfspr r11, SPRN_SPRG7R
400 mtcr r11
401 mfspr r13, SPRN_SPRG5R
402 mfspr r12, SPRN_SPRG4R
403
404 mfspr r11, SPRN_SPRG1
405 mfspr r10, SPRN_SPRG0
406 b data_access
407
408 /* Instruction Storage Interrupt */
409 INSTRUCTION_STORAGE_EXCEPTION 299 INSTRUCTION_STORAGE_EXCEPTION
410 300
411 /* External Input Interrupt */ 301 /* External Input Interrupt */
@@ -423,7 +313,6 @@ interrupt_base:
423#else 313#else
424 EXCEPTION(0x2010, FloatingPointUnavailable, unknown_exception, EXC_XFER_EE) 314 EXCEPTION(0x2010, FloatingPointUnavailable, unknown_exception, EXC_XFER_EE)
425#endif 315#endif
426
427 /* System Call Interrupt */ 316 /* System Call Interrupt */
428 START_EXCEPTION(SystemCall) 317 START_EXCEPTION(SystemCall)
429 NORMAL_EXCEPTION_PROLOG 318 NORMAL_EXCEPTION_PROLOG
@@ -484,18 +373,57 @@ interrupt_base:
4844: 3734:
485 mtspr SPRN_MMUCR,r12 374 mtspr SPRN_MMUCR,r12
486 375
376 /* Mask of required permission bits. Note that while we
377 * do copy ESR:ST to _PAGE_RW position as trying to write
378 * to an RO page is pretty common, we don't do it with
379 * _PAGE_DIRTY. We could do it, but it's a fairly rare
380 * event so I'd rather take the overhead when it happens
381 * rather than adding an instruction here. We should measure
382 * whether the whole thing is worth it in the first place
383 * as we could avoid loading SPRN_ESR completely in the first
384 * place...
385 *
386 * TODO: Is it worth doing that mfspr & rlwimi in the first
387 * place or can we save a couple of instructions here ?
388 */
389 mfspr r12,SPRN_ESR
390 li r13,_PAGE_PRESENT|_PAGE_ACCESSED
391 rlwimi r13,r12,10,30,30
392
393 /* Load the PTE */
487 rlwinm r12, r10, 13, 19, 29 /* Compute pgdir/pmd offset */ 394 rlwinm r12, r10, 13, 19, 29 /* Compute pgdir/pmd offset */
488 lwzx r11, r12, r11 /* Get pgd/pmd entry */ 395 lwzx r11, r12, r11 /* Get pgd/pmd entry */
489 rlwinm. r12, r11, 0, 0, 20 /* Extract pt base address */ 396 rlwinm. r12, r11, 0, 0, 20 /* Extract pt base address */
490 beq 2f /* Bail if no table */ 397 beq 2f /* Bail if no table */
491 398
492 rlwimi r12, r10, 23, 20, 28 /* Compute pte address */ 399 rlwimi r12, r10, 23, 20, 28 /* Compute pte address */
493 lwz r11, 4(r12) /* Get pte entry */ 400 lwz r11, 0(r12) /* Get high word of pte entry */
494 andi. r13, r11, _PAGE_PRESENT /* Is the page present? */ 401 lwz r12, 4(r12) /* Get low word of pte entry */
495 beq 2f /* Bail if not present */
496 402
497 ori r11, r11, _PAGE_ACCESSED 403 lis r10,tlb_44x_index@ha
498 stw r11, 4(r12) 404
405 andc. r13,r13,r12 /* Check permission */
406
407 /* Load the next available TLB index */
408 lwz r13,tlb_44x_index@l(r10)
409
410 bne 2f /* Bail if permission mismach */
411
412 /* Increment, rollover, and store TLB index */
413 addi r13,r13,1
414
415 /* Compare with watermark (instruction gets patched) */
416 .globl tlb_44x_patch_hwater_D
417tlb_44x_patch_hwater_D:
418 cmpwi 0,r13,1 /* reserve entries */
419 ble 5f
420 li r13,0
4215:
422 /* Store the next available TLB index */
423 stw r13,tlb_44x_index@l(r10)
424
425 /* Re-load the faulting address */
426 mfspr r10,SPRN_DEAR
499 427
500 /* Jump to common tlb load */ 428 /* Jump to common tlb load */
501 b finish_tlb_load 429 b finish_tlb_load
@@ -510,7 +438,7 @@ interrupt_base:
510 mfspr r12, SPRN_SPRG4R 438 mfspr r12, SPRN_SPRG4R
511 mfspr r11, SPRN_SPRG1 439 mfspr r11, SPRN_SPRG1
512 mfspr r10, SPRN_SPRG0 440 mfspr r10, SPRN_SPRG0
513 b data_access 441 b DataStorage
514 442
515 /* Instruction TLB Error Interrupt */ 443 /* Instruction TLB Error Interrupt */
516 /* 444 /*
@@ -554,18 +482,42 @@ interrupt_base:
5544: 4824:
555 mtspr SPRN_MMUCR,r12 483 mtspr SPRN_MMUCR,r12
556 484
485 /* Make up the required permissions */
486 li r13,_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_HWEXEC
487
557 rlwinm r12, r10, 13, 19, 29 /* Compute pgdir/pmd offset */ 488 rlwinm r12, r10, 13, 19, 29 /* Compute pgdir/pmd offset */
558 lwzx r11, r12, r11 /* Get pgd/pmd entry */ 489 lwzx r11, r12, r11 /* Get pgd/pmd entry */
559 rlwinm. r12, r11, 0, 0, 20 /* Extract pt base address */ 490 rlwinm. r12, r11, 0, 0, 20 /* Extract pt base address */
560 beq 2f /* Bail if no table */ 491 beq 2f /* Bail if no table */
561 492
562 rlwimi r12, r10, 23, 20, 28 /* Compute pte address */ 493 rlwimi r12, r10, 23, 20, 28 /* Compute pte address */
563 lwz r11, 4(r12) /* Get pte entry */ 494 lwz r11, 0(r12) /* Get high word of pte entry */
564 andi. r13, r11, _PAGE_PRESENT /* Is the page present? */ 495 lwz r12, 4(r12) /* Get low word of pte entry */
565 beq 2f /* Bail if not present */
566 496
567 ori r11, r11, _PAGE_ACCESSED 497 lis r10,tlb_44x_index@ha
568 stw r11, 4(r12) 498
499 andc. r13,r13,r12 /* Check permission */
500
501 /* Load the next available TLB index */
502 lwz r13,tlb_44x_index@l(r10)
503
504 bne 2f /* Bail if permission mismach */
505
506 /* Increment, rollover, and store TLB index */
507 addi r13,r13,1
508
509 /* Compare with watermark (instruction gets patched) */
510 .globl tlb_44x_patch_hwater_I
511tlb_44x_patch_hwater_I:
512 cmpwi 0,r13,1 /* reserve entries */
513 ble 5f
514 li r13,0
5155:
516 /* Store the next available TLB index */
517 stw r13,tlb_44x_index@l(r10)
518
519 /* Re-load the faulting address */
520 mfspr r10,SPRN_SRR0
569 521
570 /* Jump to common TLB load point */ 522 /* Jump to common TLB load point */
571 b finish_tlb_load 523 b finish_tlb_load
@@ -587,86 +539,40 @@ interrupt_base:
587 539
588/* 540/*
589 * Local functions 541 * Local functions
590 */ 542 */
591 /*
592 * Data TLB exceptions will bail out to this point
593 * if they can't resolve the lightweight TLB fault.
594 */
595data_access:
596 NORMAL_EXCEPTION_PROLOG
597 mfspr r5,SPRN_ESR /* Grab the ESR, save it, pass arg3 */
598 stw r5,_ESR(r11)
599 mfspr r4,SPRN_DEAR /* Grab the DEAR, save it, pass arg2 */
600 EXC_XFER_EE_LITE(0x0300, handle_page_fault)
601 543
602/* 544/*
603 545
604 * Both the instruction and data TLB miss get to this 546 * Both the instruction and data TLB miss get to this
605 * point to load the TLB. 547 * point to load the TLB.
606 * r10 - EA of fault 548 * r10 - EA of fault
607 * r11 - available to use 549 * r11 - PTE high word value
608 * r12 - Pointer to the 64-bit PTE 550 * r12 - PTE low word value
609 * r13 - available to use 551 * r13 - TLB index
610 * MMUCR - loaded with proper value when we get here 552 * MMUCR - loaded with proper value when we get here
611 * Upon exit, we reload everything and RFI. 553 * Upon exit, we reload everything and RFI.
612 */ 554 */
613finish_tlb_load: 555finish_tlb_load:
614 /* 556 /* Combine RPN & ERPN an write WS 0 */
615 * We set execute, because we don't have the granularity to 557 rlwimi r11,r12,0,0,19
616 * properly set this at the page level (Linux problem). 558 tlbwe r11,r13,PPC44x_TLB_XLAT
617 * If shared is set, we cause a zero PID->TID load.
618 * Many of these bits are software only. Bits we don't set
619 * here we (properly should) assume have the appropriate value.
620 */
621
622 /* Load the next available TLB index */
623 lis r13, tlb_44x_index@ha
624 lwz r13, tlb_44x_index@l(r13)
625 /* Load the TLB high watermark */
626 lis r11, tlb_44x_hwater@ha
627 lwz r11, tlb_44x_hwater@l(r11)
628
629 /* Increment, rollover, and store TLB index */
630 addi r13, r13, 1
631 cmpw 0, r13, r11 /* reserve entries */
632 ble 7f
633 li r13, 0
6347:
635 /* Store the next available TLB index */
636 lis r11, tlb_44x_index@ha
637 stw r13, tlb_44x_index@l(r11)
638
639 lwz r11, 0(r12) /* Get MS word of PTE */
640 lwz r12, 4(r12) /* Get LS word of PTE */
641 rlwimi r11, r12, 0, 0 , 19 /* Insert RPN */
642 tlbwe r11, r13, PPC44x_TLB_XLAT /* Write XLAT */
643 559
644 /* 560 /*
645 * Create PAGEID. This is the faulting address, 561 * Create WS1. This is the faulting address (EPN),
646 * page size, and valid flag. 562 * page size, and valid flag.
647 */ 563 */
648 li r11, PPC44x_TLB_VALID | PPC44x_TLB_4K 564 li r11,PPC44x_TLB_VALID | PPC44x_TLB_4K
649 rlwimi r10, r11, 0, 20, 31 /* Insert valid and page size */ 565 rlwimi r10,r11,0,20,31 /* Insert valid and page size*/
650 tlbwe r10, r13, PPC44x_TLB_PAGEID /* Write PAGEID */ 566 tlbwe r10,r13,PPC44x_TLB_PAGEID /* Write PAGEID */
651 567
652 li r10, PPC44x_TLB_SR@l /* Set SR */ 568 /* And WS 2 */
653 rlwimi r10, r12, 0, 30, 30 /* Set SW = _PAGE_RW */ 569 li r10,0xf85 /* Mask to apply from PTE */
654 rlwimi r10, r12, 29, 29, 29 /* SX = _PAGE_HWEXEC */ 570 rlwimi r10,r12,29,30,30 /* DIRTY -> SW position */
655 rlwimi r10, r12, 29, 28, 28 /* UR = _PAGE_USER */ 571 and r11,r12,r10 /* Mask PTE bits to keep */
656 rlwimi r11, r12, 31, 26, 26 /* (_PAGE_USER>>1)->r12 */ 572 andi. r10,r12,_PAGE_USER /* User page ? */
657 and r11, r12, r11 /* HWEXEC & USER */ 573 beq 1f /* nope, leave U bits empty */
658 rlwimi r10, r11, 0, 26, 26 /* UX = HWEXEC & USER */ 574 rlwimi r11,r11,3,26,28 /* yes, copy S bits to U */
659 5751: tlbwe r11,r13,PPC44x_TLB_ATTRIB /* Write ATTRIB */
660 rlwimi r12, r10, 0, 26, 31 /* Insert static perms */
661
662 /*
663 * Clear U0-U3 and WL1 IL1I IL1D IL2I IL2D bits which are added
664 * on newer 440 cores like the 440x6 used on AMCC 460EX/460GT (see
665 * include/asm-powerpc/pgtable-ppc32.h for details).
666 */
667 rlwinm r12, r12, 0, 20, 10
668
669 tlbwe r12, r13, PPC44x_TLB_ATTRIB /* Write ATTRIB */
670 576
671 /* Done...restore registers and get out of here. 577 /* Done...restore registers and get out of here.
672 */ 578 */
diff --git a/arch/powerpc/kernel/head_booke.h b/arch/powerpc/kernel/head_booke.h
index b0461be1c928..fce2df988504 100644
--- a/arch/powerpc/kernel/head_booke.h
+++ b/arch/powerpc/kernel/head_booke.h
@@ -340,6 +340,14 @@ label:
340 addi r3,r1,STACK_FRAME_OVERHEAD; \ 340 addi r3,r1,STACK_FRAME_OVERHEAD; \
341 EXC_XFER_TEMPLATE(DebugException, 0x2002, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), NOCOPY, crit_transfer_to_handler, ret_from_crit_exc) 341 EXC_XFER_TEMPLATE(DebugException, 0x2002, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), NOCOPY, crit_transfer_to_handler, ret_from_crit_exc)
342 342
343#define DATA_STORAGE_EXCEPTION \
344 START_EXCEPTION(DataStorage) \
345 NORMAL_EXCEPTION_PROLOG; \
346 mfspr r5,SPRN_ESR; /* Grab the ESR and save it */ \
347 stw r5,_ESR(r11); \
348 mfspr r4,SPRN_DEAR; /* Grab the DEAR */ \
349 EXC_XFER_EE_LITE(0x0300, handle_page_fault)
350
343#define INSTRUCTION_STORAGE_EXCEPTION \ 351#define INSTRUCTION_STORAGE_EXCEPTION \
344 START_EXCEPTION(InstructionStorage) \ 352 START_EXCEPTION(InstructionStorage) \
345 NORMAL_EXCEPTION_PROLOG; \ 353 NORMAL_EXCEPTION_PROLOG; \
diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c
index 9971159c8040..9d42eb57aea3 100644
--- a/arch/powerpc/kernel/ibmebus.c
+++ b/arch/powerpc/kernel/ibmebus.c
@@ -53,7 +53,7 @@ static struct device ibmebus_bus_device = { /* fake "parent" device */
53struct bus_type ibmebus_bus_type; 53struct bus_type ibmebus_bus_type;
54 54
55/* These devices will automatically be added to the bus during init */ 55/* These devices will automatically be added to the bus during init */
56static struct of_device_id __initdata builtin_matches[] = { 56static struct of_device_id __initdata ibmebus_matches[] = {
57 { .compatible = "IBM,lhca" }, 57 { .compatible = "IBM,lhca" },
58 { .compatible = "IBM,lhea" }, 58 { .compatible = "IBM,lhea" },
59 {}, 59 {},
@@ -82,7 +82,8 @@ static void ibmebus_free_coherent(struct device *dev,
82static dma_addr_t ibmebus_map_single(struct device *dev, 82static dma_addr_t ibmebus_map_single(struct device *dev,
83 void *ptr, 83 void *ptr,
84 size_t size, 84 size_t size,
85 enum dma_data_direction direction) 85 enum dma_data_direction direction,
86 struct dma_attrs *attrs)
86{ 87{
87 return (dma_addr_t)(ptr); 88 return (dma_addr_t)(ptr);
88} 89}
@@ -90,14 +91,16 @@ static dma_addr_t ibmebus_map_single(struct device *dev,
90static void ibmebus_unmap_single(struct device *dev, 91static void ibmebus_unmap_single(struct device *dev,
91 dma_addr_t dma_addr, 92 dma_addr_t dma_addr,
92 size_t size, 93 size_t size,
93 enum dma_data_direction direction) 94 enum dma_data_direction direction,
95 struct dma_attrs *attrs)
94{ 96{
95 return; 97 return;
96} 98}
97 99
98static int ibmebus_map_sg(struct device *dev, 100static int ibmebus_map_sg(struct device *dev,
99 struct scatterlist *sgl, 101 struct scatterlist *sgl,
100 int nents, enum dma_data_direction direction) 102 int nents, enum dma_data_direction direction,
103 struct dma_attrs *attrs)
101{ 104{
102 struct scatterlist *sg; 105 struct scatterlist *sg;
103 int i; 106 int i;
@@ -112,7 +115,8 @@ static int ibmebus_map_sg(struct device *dev,
112 115
113static void ibmebus_unmap_sg(struct device *dev, 116static void ibmebus_unmap_sg(struct device *dev,
114 struct scatterlist *sg, 117 struct scatterlist *sg,
115 int nents, enum dma_data_direction direction) 118 int nents, enum dma_data_direction direction,
119 struct dma_attrs *attrs)
116{ 120{
117 return; 121 return;
118} 122}
@@ -350,7 +354,7 @@ static int __init ibmebus_bus_init(void)
350 return err; 354 return err;
351 } 355 }
352 356
353 err = ibmebus_create_devices(builtin_matches); 357 err = ibmebus_create_devices(ibmebus_matches);
354 if (err) { 358 if (err) {
355 device_unregister(&ibmebus_bus_device); 359 device_unregister(&ibmebus_bus_device);
356 bus_unregister(&ibmebus_bus_type); 360 bus_unregister(&ibmebus_bus_type);
diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c
index 0c663669bc32..8c68ee9e5d1c 100644
--- a/arch/powerpc/kernel/iommu.c
+++ b/arch/powerpc/kernel/iommu.c
@@ -267,11 +267,11 @@ static void iommu_free(struct iommu_table *tbl, dma_addr_t dma_addr,
267 spin_unlock_irqrestore(&(tbl->it_lock), flags); 267 spin_unlock_irqrestore(&(tbl->it_lock), flags);
268} 268}
269 269
270int iommu_map_sg(struct device *dev, struct scatterlist *sglist, 270int iommu_map_sg(struct device *dev, struct iommu_table *tbl,
271 int nelems, unsigned long mask, 271 struct scatterlist *sglist, int nelems,
272 enum dma_data_direction direction) 272 unsigned long mask, enum dma_data_direction direction,
273 struct dma_attrs *attrs)
273{ 274{
274 struct iommu_table *tbl = dev->archdata.dma_data;
275 dma_addr_t dma_next = 0, dma_addr; 275 dma_addr_t dma_next = 0, dma_addr;
276 unsigned long flags; 276 unsigned long flags;
277 struct scatterlist *s, *outs, *segstart; 277 struct scatterlist *s, *outs, *segstart;
@@ -412,7 +412,8 @@ int iommu_map_sg(struct device *dev, struct scatterlist *sglist,
412 412
413 413
414void iommu_unmap_sg(struct iommu_table *tbl, struct scatterlist *sglist, 414void iommu_unmap_sg(struct iommu_table *tbl, struct scatterlist *sglist,
415 int nelems, enum dma_data_direction direction) 415 int nelems, enum dma_data_direction direction,
416 struct dma_attrs *attrs)
416{ 417{
417 struct scatterlist *sg; 418 struct scatterlist *sg;
418 unsigned long flags; 419 unsigned long flags;
@@ -554,7 +555,7 @@ void iommu_free_table(struct iommu_table *tbl, const char *node_name)
554 */ 555 */
555dma_addr_t iommu_map_single(struct device *dev, struct iommu_table *tbl, 556dma_addr_t iommu_map_single(struct device *dev, struct iommu_table *tbl,
556 void *vaddr, size_t size, unsigned long mask, 557 void *vaddr, size_t size, unsigned long mask,
557 enum dma_data_direction direction) 558 enum dma_data_direction direction, struct dma_attrs *attrs)
558{ 559{
559 dma_addr_t dma_handle = DMA_ERROR_CODE; 560 dma_addr_t dma_handle = DMA_ERROR_CODE;
560 unsigned long uaddr; 561 unsigned long uaddr;
@@ -587,7 +588,8 @@ dma_addr_t iommu_map_single(struct device *dev, struct iommu_table *tbl,
587} 588}
588 589
589void iommu_unmap_single(struct iommu_table *tbl, dma_addr_t dma_handle, 590void iommu_unmap_single(struct iommu_table *tbl, dma_addr_t dma_handle,
590 size_t size, enum dma_data_direction direction) 591 size_t size, enum dma_data_direction direction,
592 struct dma_attrs *attrs)
591{ 593{
592 unsigned int npages; 594 unsigned int npages;
593 595
diff --git a/arch/powerpc/kernel/legacy_serial.c b/arch/powerpc/kernel/legacy_serial.c
index 61dd17449ddc..4d96e1db55ee 100644
--- a/arch/powerpc/kernel/legacy_serial.c
+++ b/arch/powerpc/kernel/legacy_serial.c
@@ -33,13 +33,14 @@ static struct legacy_serial_info {
33 phys_addr_t taddr; 33 phys_addr_t taddr;
34} legacy_serial_infos[MAX_LEGACY_SERIAL_PORTS]; 34} legacy_serial_infos[MAX_LEGACY_SERIAL_PORTS];
35 35
36static struct __initdata of_device_id parents[] = { 36static struct __initdata of_device_id legacy_serial_parents[] = {
37 {.type = "soc",}, 37 {.type = "soc",},
38 {.type = "tsi-bridge",}, 38 {.type = "tsi-bridge",},
39 {.type = "opb", }, 39 {.type = "opb", },
40 {.compatible = "ibm,opb",}, 40 {.compatible = "ibm,opb",},
41 {.compatible = "simple-bus",}, 41 {.compatible = "simple-bus",},
42 {.compatible = "wrs,epld-localbus",}, 42 {.compatible = "wrs,epld-localbus",},
43 {},
43}; 44};
44 45
45static unsigned int legacy_serial_count; 46static unsigned int legacy_serial_count;
@@ -136,6 +137,11 @@ static int __init add_legacy_soc_port(struct device_node *np,
136 if (of_get_property(np, "clock-frequency", NULL) == NULL) 137 if (of_get_property(np, "clock-frequency", NULL) == NULL)
137 return -1; 138 return -1;
138 139
140 /* if reg-shift or offset, don't try to use it */
141 if ((of_get_property(np, "reg-shift", NULL) != NULL) ||
142 (of_get_property(np, "reg-offset", NULL) != NULL))
143 return -1;
144
139 /* if rtas uses this device, don't try to use it as well */ 145 /* if rtas uses this device, don't try to use it as well */
140 if (of_get_property(np, "used-by-rtas", NULL) != NULL) 146 if (of_get_property(np, "used-by-rtas", NULL) != NULL)
141 return -1; 147 return -1;
@@ -322,7 +328,7 @@ void __init find_legacy_serial_ports(void)
322 struct device_node *parent = of_get_parent(np); 328 struct device_node *parent = of_get_parent(np);
323 if (!parent) 329 if (!parent)
324 continue; 330 continue;
325 if (of_match_node(parents, parent) != NULL) { 331 if (of_match_node(legacy_serial_parents, parent) != NULL) {
326 index = add_legacy_soc_port(np, np); 332 index = add_legacy_soc_port(np, np);
327 if (index >= 0 && np == stdout) 333 if (index >= 0 && np == stdout)
328 legacy_serial_console = index; 334 legacy_serial_console = index;
diff --git a/arch/powerpc/kernel/of_platform.c b/arch/powerpc/kernel/of_platform.c
index e79ad8afda07..3f37a6e62771 100644
--- a/arch/powerpc/kernel/of_platform.c
+++ b/arch/powerpc/kernel/of_platform.c
@@ -76,6 +76,8 @@ struct of_device* of_platform_device_create(struct device_node *np,
76 return NULL; 76 return NULL;
77 77
78 dev->dma_mask = 0xffffffffUL; 78 dev->dma_mask = 0xffffffffUL;
79 dev->dev.coherent_dma_mask = DMA_32BIT_MASK;
80
79 dev->dev.bus = &of_platform_bus_type; 81 dev->dev.bus = &of_platform_bus_type;
80 82
81 /* We do not fill the DMA ops for platform devices by default. 83 /* We do not fill the DMA ops for platform devices by default.
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
index 85e557300d86..0a4eb0811590 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -485,10 +485,8 @@ void show_regs(struct pt_regs * regs)
485 * Lookup NIP late so we have the best change of getting the 485 * Lookup NIP late so we have the best change of getting the
486 * above info out without failing 486 * above info out without failing
487 */ 487 */
488 printk("NIP ["REG"] ", regs->nip); 488 printk("NIP ["REG"] %pS\n", regs->nip, (void *)regs->nip);
489 print_symbol("%s\n", regs->nip); 489 printk("LR ["REG"] %pS\n", regs->link, (void *)regs->link);
490 printk("LR ["REG"] ", regs->link);
491 print_symbol("%s\n", regs->link);
492#endif 490#endif
493 show_stack(current, (unsigned long *) regs->gpr[1]); 491 show_stack(current, (unsigned long *) regs->gpr[1]);
494 if (!user_mode(regs)) 492 if (!user_mode(regs))
@@ -976,8 +974,7 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
976 newsp = stack[0]; 974 newsp = stack[0];
977 ip = stack[STACK_FRAME_LR_SAVE]; 975 ip = stack[STACK_FRAME_LR_SAVE];
978 if (!firstframe || ip != lr) { 976 if (!firstframe || ip != lr) {
979 printk("["REG"] ["REG"] ", sp, ip); 977 printk("["REG"] ["REG"] %pS", sp, ip, (void *)ip);
980 print_symbol("%s", ip);
981 if (firstframe) 978 if (firstframe)
982 printk(" (unreliable)"); 979 printk(" (unreliable)");
983 printk("\n"); 980 printk("\n");
@@ -992,10 +989,9 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
992 && stack[STACK_FRAME_MARKER] == STACK_FRAME_REGS_MARKER) { 989 && stack[STACK_FRAME_MARKER] == STACK_FRAME_REGS_MARKER) {
993 struct pt_regs *regs = (struct pt_regs *) 990 struct pt_regs *regs = (struct pt_regs *)
994 (sp + STACK_FRAME_OVERHEAD); 991 (sp + STACK_FRAME_OVERHEAD);
995 printk("--- Exception: %lx", regs->trap);
996 print_symbol(" at %s\n", regs->nip);
997 lr = regs->link; 992 lr = regs->link;
998 print_symbol(" LR = %s\n", lr); 993 printk("--- Exception: %lx at %pS\n LR = %pS\n",
994 regs->trap, (void *)regs->nip, (void *)lr);
999 firstframe = 1; 995 firstframe = 1;
1000 } 996 }
1001 997
diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
index 9991e2a58bf4..6f6810db0a74 100644
--- a/arch/powerpc/kernel/signal_32.c
+++ b/arch/powerpc/kernel/signal_32.c
@@ -68,6 +68,13 @@
68#define ucontext ucontext32 68#define ucontext ucontext32
69 69
70/* 70/*
71 * Userspace code may pass a ucontext which doesn't include VSX added
72 * at the end. We need to check for this case.
73 */
74#define UCONTEXTSIZEWITHOUTVSX \
75 (sizeof(struct ucontext) - sizeof(elf_vsrreghalf_t32))
76
77/*
71 * Returning 0 means we return to userspace via 78 * Returning 0 means we return to userspace via
72 * ret_from_except and thus restore all user 79 * ret_from_except and thus restore all user
73 * registers from *regs. This is what we need 80 * registers from *regs. This is what we need
@@ -930,12 +937,42 @@ long sys_swapcontext(struct ucontext __user *old_ctx,
930{ 937{
931 unsigned char tmp; 938 unsigned char tmp;
932 939
940#ifdef CONFIG_PPC64
941 unsigned long new_msr = 0;
942
943 if (new_ctx &&
944 __get_user(new_msr, &new_ctx->uc_mcontext.mc_gregs[PT_MSR]))
945 return -EFAULT;
946 /*
947 * Check that the context is not smaller than the original
948 * size (with VMX but without VSX)
949 */
950 if (ctx_size < UCONTEXTSIZEWITHOUTVSX)
951 return -EINVAL;
952 /*
953 * If the new context state sets the MSR VSX bits but
954 * it doesn't provide VSX state.
955 */
956 if ((ctx_size < sizeof(struct ucontext)) &&
957 (new_msr & MSR_VSX))
958 return -EINVAL;
959#ifdef CONFIG_VSX
960 /*
961 * If userspace doesn't provide enough room for VSX data,
962 * but current thread has used VSX, we don't have anywhere
963 * to store the full context back into.
964 */
965 if ((ctx_size < sizeof(struct ucontext)) &&
966 (current->thread.used_vsr && old_ctx))
967 return -EINVAL;
968#endif
969#else
933 /* Context size is for future use. Right now, we only make sure 970 /* Context size is for future use. Right now, we only make sure
934 * we are passed something we understand 971 * we are passed something we understand
935 */ 972 */
936 if (ctx_size < sizeof(struct ucontext)) 973 if (ctx_size < sizeof(struct ucontext))
937 return -EINVAL; 974 return -EINVAL;
938 975#endif
939 if (old_ctx != NULL) { 976 if (old_ctx != NULL) {
940 struct mcontext __user *mctx; 977 struct mcontext __user *mctx;
941 978
diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c
index 93ebfb6944b6..5f9d2ef2e24b 100644
--- a/arch/powerpc/kernel/signal_64.c
+++ b/arch/powerpc/kernel/signal_64.c
@@ -268,6 +268,13 @@ static long setup_trampoline(unsigned int syscall, unsigned int __user *tramp)
268} 268}
269 269
270/* 270/*
271 * Userspace code may pass a ucontext which doesn't include VSX added
272 * at the end. We need to check for this case.
273 */
274#define UCONTEXTSIZEWITHOUTVSX \
275 (sizeof(struct ucontext) - 32*sizeof(long))
276
277/*
271 * Handle {get,set,swap}_context operations 278 * Handle {get,set,swap}_context operations
272 */ 279 */
273int sys_swapcontext(struct ucontext __user *old_ctx, 280int sys_swapcontext(struct ucontext __user *old_ctx,
@@ -276,13 +283,34 @@ int sys_swapcontext(struct ucontext __user *old_ctx,
276{ 283{
277 unsigned char tmp; 284 unsigned char tmp;
278 sigset_t set; 285 sigset_t set;
286 unsigned long new_msr = 0;
279 287
280 /* Context size is for future use. Right now, we only make sure 288 if (new_ctx &&
281 * we are passed something we understand 289 __get_user(new_msr, &new_ctx->uc_mcontext.gp_regs[PT_MSR]))
290 return -EFAULT;
291 /*
292 * Check that the context is not smaller than the original
293 * size (with VMX but without VSX)
282 */ 294 */
283 if (ctx_size < sizeof(struct ucontext)) 295 if (ctx_size < UCONTEXTSIZEWITHOUTVSX)
284 return -EINVAL; 296 return -EINVAL;
285 297 /*
298 * If the new context state sets the MSR VSX bits but
299 * it doesn't provide VSX state.
300 */
301 if ((ctx_size < sizeof(struct ucontext)) &&
302 (new_msr & MSR_VSX))
303 return -EINVAL;
304#ifdef CONFIG_VSX
305 /*
306 * If userspace doesn't provide enough room for VSX data,
307 * but current thread has used VSX, we don't have anywhere
308 * to store the full context back into.
309 */
310 if ((ctx_size < sizeof(struct ucontext)) &&
311 (current->thread.used_vsr && old_ctx))
312 return -EINVAL;
313#endif
286 if (old_ctx != NULL) { 314 if (old_ctx != NULL) {
287 if (!access_ok(VERIFY_WRITE, old_ctx, sizeof(*old_ctx)) 315 if (!access_ok(VERIFY_WRITE, old_ctx, sizeof(*old_ctx))
288 || setup_sigcontext(&old_ctx->uc_mcontext, regs, 0, NULL, 0) 316 || setup_sigcontext(&old_ctx->uc_mcontext, regs, 0, NULL, 0)
diff --git a/arch/powerpc/kernel/syscalls.c b/arch/powerpc/kernel/syscalls.c
index 4fe69ca24481..c04832c4a02e 100644
--- a/arch/powerpc/kernel/syscalls.c
+++ b/arch/powerpc/kernel/syscalls.c
@@ -143,6 +143,9 @@ static inline unsigned long do_mmap2(unsigned long addr, size_t len,
143 struct file * file = NULL; 143 struct file * file = NULL;
144 unsigned long ret = -EINVAL; 144 unsigned long ret = -EINVAL;
145 145
146 if (!arch_validate_prot(prot))
147 goto out;
148
146 if (shift) { 149 if (shift) {
147 if (off & ((1 << shift) - 1)) 150 if (off & ((1 << shift) - 1))
148 goto out; 151 goto out;
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
index c73fc33aa817..eb938808ddfb 100644
--- a/arch/powerpc/kernel/time.c
+++ b/arch/powerpc/kernel/time.c
@@ -742,10 +742,6 @@ void __init generic_calibrate_decr(void)
742 } 742 }
743 743
744#if defined(CONFIG_BOOKE) || defined(CONFIG_40x) 744#if defined(CONFIG_BOOKE) || defined(CONFIG_40x)
745 /* Set the time base to zero */
746 mtspr(SPRN_TBWL, 0);
747 mtspr(SPRN_TBWU, 0);
748
749 /* Clear any pending timer interrupts */ 745 /* Clear any pending timer interrupts */
750 mtspr(SPRN_TSR, TSR_ENW | TSR_WIS | TSR_DIS | TSR_FIS); 746 mtspr(SPRN_TSR, TSR_ENW | TSR_WIS | TSR_DIS | TSR_FIS);
751 747
diff --git a/arch/powerpc/mm/44x_mmu.c b/arch/powerpc/mm/44x_mmu.c
index 953fb919eb06..98052ac96580 100644
--- a/arch/powerpc/mm/44x_mmu.c
+++ b/arch/powerpc/mm/44x_mmu.c
@@ -27,6 +27,7 @@
27#include <asm/mmu.h> 27#include <asm/mmu.h>
28#include <asm/system.h> 28#include <asm/system.h>
29#include <asm/page.h> 29#include <asm/page.h>
30#include <asm/cacheflush.h>
30 31
31#include "mmu_decl.h" 32#include "mmu_decl.h"
32 33
@@ -37,11 +38,35 @@ unsigned int tlb_44x_index; /* = 0 */
37unsigned int tlb_44x_hwater = PPC44x_TLB_SIZE - 1 - PPC44x_EARLY_TLBS; 38unsigned int tlb_44x_hwater = PPC44x_TLB_SIZE - 1 - PPC44x_EARLY_TLBS;
38int icache_44x_need_flush; 39int icache_44x_need_flush;
39 40
41static void __init ppc44x_update_tlb_hwater(void)
42{
43 extern unsigned int tlb_44x_patch_hwater_D[];
44 extern unsigned int tlb_44x_patch_hwater_I[];
45
46 /* The TLB miss handlers hard codes the watermark in a cmpli
47 * instruction to improve performances rather than loading it
48 * from the global variable. Thus, we patch the instructions
49 * in the 2 TLB miss handlers when updating the value
50 */
51 tlb_44x_patch_hwater_D[0] = (tlb_44x_patch_hwater_D[0] & 0xffff0000) |
52 tlb_44x_hwater;
53 flush_icache_range((unsigned long)&tlb_44x_patch_hwater_D[0],
54 (unsigned long)&tlb_44x_patch_hwater_D[1]);
55 tlb_44x_patch_hwater_I[0] = (tlb_44x_patch_hwater_I[0] & 0xffff0000) |
56 tlb_44x_hwater;
57 flush_icache_range((unsigned long)&tlb_44x_patch_hwater_I[0],
58 (unsigned long)&tlb_44x_patch_hwater_I[1]);
59}
60
40/* 61/*
41 * "Pins" a 256MB TLB entry in AS0 for kernel lowmem 62 * "Pins" a 256MB TLB entry in AS0 for kernel lowmem
42 */ 63 */
43static void __init ppc44x_pin_tlb(unsigned int virt, unsigned int phys) 64static void __init ppc44x_pin_tlb(unsigned int virt, unsigned int phys)
44{ 65{
66 unsigned int entry = tlb_44x_hwater--;
67
68 ppc44x_update_tlb_hwater();
69
45 __asm__ __volatile__( 70 __asm__ __volatile__(
46 "tlbwe %2,%3,%4\n" 71 "tlbwe %2,%3,%4\n"
47 "tlbwe %1,%3,%5\n" 72 "tlbwe %1,%3,%5\n"
@@ -50,7 +75,7 @@ static void __init ppc44x_pin_tlb(unsigned int virt, unsigned int phys)
50 : "r" (PPC44x_TLB_SW | PPC44x_TLB_SR | PPC44x_TLB_SX | PPC44x_TLB_G), 75 : "r" (PPC44x_TLB_SW | PPC44x_TLB_SR | PPC44x_TLB_SX | PPC44x_TLB_G),
51 "r" (phys), 76 "r" (phys),
52 "r" (virt | PPC44x_TLB_VALID | PPC44x_TLB_256M), 77 "r" (virt | PPC44x_TLB_VALID | PPC44x_TLB_256M),
53 "r" (tlb_44x_hwater--), /* slot for this TLB entry */ 78 "r" (entry),
54 "i" (PPC44x_TLB_PAGEID), 79 "i" (PPC44x_TLB_PAGEID),
55 "i" (PPC44x_TLB_XLAT), 80 "i" (PPC44x_TLB_XLAT),
56 "i" (PPC44x_TLB_ATTRIB)); 81 "i" (PPC44x_TLB_ATTRIB));
@@ -58,6 +83,8 @@ static void __init ppc44x_pin_tlb(unsigned int virt, unsigned int phys)
58 83
59void __init MMU_init_hw(void) 84void __init MMU_init_hw(void)
60{ 85{
86 ppc44x_update_tlb_hwater();
87
61 flush_instruction_cache(); 88 flush_instruction_cache();
62} 89}
63 90
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index 7b2510799266..1707d00331fc 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -306,7 +306,8 @@ good_area:
306 flush_dcache_icache_page(page); 306 flush_dcache_icache_page(page);
307 set_bit(PG_arch_1, &page->flags); 307 set_bit(PG_arch_1, &page->flags);
308 } 308 }
309 pte_update(ptep, 0, _PAGE_HWEXEC); 309 pte_update(ptep, 0, _PAGE_HWEXEC |
310 _PAGE_ACCESSED);
310 _tlbie(address, mm->context.id); 311 _tlbie(address, mm->context.id);
311 pte_unmap_unlock(ptep, ptl); 312 pte_unmap_unlock(ptep, ptl);
312 up_read(&mm->mmap_sem); 313 up_read(&mm->mmap_sem);
diff --git a/arch/powerpc/mm/init_32.c b/arch/powerpc/mm/init_32.c
index 45418590b6a9..388ceda632f3 100644
--- a/arch/powerpc/mm/init_32.c
+++ b/arch/powerpc/mm/init_32.c
@@ -57,8 +57,8 @@
57 57
58DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); 58DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
59 59
60unsigned long total_memory; 60phys_addr_t total_memory;
61unsigned long total_lowmem; 61phys_addr_t total_lowmem;
62 62
63phys_addr_t memstart_addr = (phys_addr_t)~0ull; 63phys_addr_t memstart_addr = (phys_addr_t)~0ull;
64EXPORT_SYMBOL(memstart_addr); 64EXPORT_SYMBOL(memstart_addr);
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index 776ba6ad5e1e..1ca2235f0965 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -330,7 +330,7 @@ static int __init mark_nonram_nosave(void)
330void __init paging_init(void) 330void __init paging_init(void)
331{ 331{
332 unsigned long total_ram = lmb_phys_mem_size(); 332 unsigned long total_ram = lmb_phys_mem_size();
333 unsigned long top_of_ram = lmb_end_of_DRAM(); 333 phys_addr_t top_of_ram = lmb_end_of_DRAM();
334 unsigned long max_zone_pfns[MAX_NR_ZONES]; 334 unsigned long max_zone_pfns[MAX_NR_ZONES];
335 335
336#ifdef CONFIG_PPC32 336#ifdef CONFIG_PPC32
@@ -349,10 +349,10 @@ void __init paging_init(void)
349 kmap_prot = PAGE_KERNEL; 349 kmap_prot = PAGE_KERNEL;
350#endif /* CONFIG_HIGHMEM */ 350#endif /* CONFIG_HIGHMEM */
351 351
352 printk(KERN_DEBUG "Top of RAM: 0x%lx, Total RAM: 0x%lx\n", 352 printk(KERN_DEBUG "Top of RAM: 0x%llx, Total RAM: 0x%lx\n",
353 top_of_ram, total_ram); 353 (u64)top_of_ram, total_ram);
354 printk(KERN_DEBUG "Memory hole size: %ldMB\n", 354 printk(KERN_DEBUG "Memory hole size: %ldMB\n",
355 (top_of_ram - total_ram) >> 20); 355 (long int)((top_of_ram - total_ram) >> 20));
356 memset(max_zone_pfns, 0, sizeof(max_zone_pfns)); 356 memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
357#ifdef CONFIG_HIGHMEM 357#ifdef CONFIG_HIGHMEM
358 max_zone_pfns[ZONE_DMA] = lowmem_end_addr >> PAGE_SHIFT; 358 max_zone_pfns[ZONE_DMA] = lowmem_end_addr >> PAGE_SHIFT;
diff --git a/arch/powerpc/mm/mmu_decl.h b/arch/powerpc/mm/mmu_decl.h
index 46585b7bb194..fab3cfad4099 100644
--- a/arch/powerpc/mm/mmu_decl.h
+++ b/arch/powerpc/mm/mmu_decl.h
@@ -49,8 +49,8 @@ extern unsigned int num_tlbcam_entries;
49extern unsigned long ioremap_bot; 49extern unsigned long ioremap_bot;
50extern unsigned long __max_low_memory; 50extern unsigned long __max_low_memory;
51extern phys_addr_t __initial_memory_limit_addr; 51extern phys_addr_t __initial_memory_limit_addr;
52extern unsigned long total_memory; 52extern phys_addr_t total_memory;
53extern unsigned long total_lowmem; 53extern phys_addr_t total_lowmem;
54extern phys_addr_t memstart_addr; 54extern phys_addr_t memstart_addr;
55extern phys_addr_t lowmem_end_addr; 55extern phys_addr_t lowmem_end_addr;
56 56
diff --git a/arch/powerpc/platforms/44x/Kconfig b/arch/powerpc/platforms/44x/Kconfig
index bee49ca704ef..249ba01c6674 100644
--- a/arch/powerpc/platforms/44x/Kconfig
+++ b/arch/powerpc/platforms/44x/Kconfig
@@ -111,6 +111,22 @@ config YOSEMITE
111# help 111# help
112# This option enables support for the IBM PPC440GX evaluation board. 112# This option enables support for the IBM PPC440GX evaluation board.
113 113
114config XILINX_VIRTEX440_GENERIC_BOARD
115 bool "Generic Xilinx Virtex 440 board"
116 depends on 44x
117 default n
118 select XILINX_VIRTEX_5_FXT
119 help
120 This option enables generic support for Xilinx Virtex based boards
121 that use a 440 based processor in the Virtex 5 FXT FPGA architecture.
122
123 The generic virtex board support matches any device tree which
124 specifies 'xlnx,virtex440' in its compatible field. This includes
125 the Xilinx ML5xx reference designs using the powerpc core.
126
127 Most Virtex 5 designs should use this unless it needs to do some
128 special configuration at board probe time.
129
114# 44x specific CPU modules, selected based on the board above. 130# 44x specific CPU modules, selected based on the board above.
115config 440EP 131config 440EP
116 bool 132 bool
@@ -161,3 +177,13 @@ config 460EX
161# 44x errata/workaround config symbols, selected by the CPU models above 177# 44x errata/workaround config symbols, selected by the CPU models above
162config IBM440EP_ERR42 178config IBM440EP_ERR42
163 bool 179 bool
180
181# Xilinx specific config options.
182config XILINX_VIRTEX
183 bool
184
185# Xilinx Virtex 5 FXT FPGA architecture, selected by a Xilinx board above
186config XILINX_VIRTEX_5_FXT
187 bool
188 select XILINX_VIRTEX
189
diff --git a/arch/powerpc/platforms/44x/Makefile b/arch/powerpc/platforms/44x/Makefile
index 4e71e77f9a23..8d0b1a192d62 100644
--- a/arch/powerpc/platforms/44x/Makefile
+++ b/arch/powerpc/platforms/44x/Makefile
@@ -10,3 +10,4 @@ obj-$(CONFIG_RAINIER) += rainier.o
10obj-$(CONFIG_WARP) += warp.o 10obj-$(CONFIG_WARP) += warp.o
11obj-$(CONFIG_WARP) += warp-nand.o 11obj-$(CONFIG_WARP) += warp-nand.o
12obj-$(CONFIG_CANYONLANDS) += canyonlands.o 12obj-$(CONFIG_CANYONLANDS) += canyonlands.o
13obj-$(CONFIG_XILINX_VIRTEX_5_FXT) += virtex.o
diff --git a/arch/powerpc/platforms/44x/virtex.c b/arch/powerpc/platforms/44x/virtex.c
new file mode 100644
index 000000000000..68637faf70ae
--- /dev/null
+++ b/arch/powerpc/platforms/44x/virtex.c
@@ -0,0 +1,60 @@
1/*
2 * Xilinx Virtex 5FXT based board support, derived from
3 * the Xilinx Virtex (IIpro & 4FX) based board support
4 *
5 * Copyright 2007 Secret Lab Technologies Ltd.
6 * Copyright 2008 Xilinx, Inc.
7 *
8 * This file is licensed under the terms of the GNU General Public License
9 * version 2. This program is licensed "as is" without any warranty of any
10 * kind, whether express or implied.
11 */
12
13#include <linux/init.h>
14#include <linux/of_platform.h>
15#include <asm/machdep.h>
16#include <asm/prom.h>
17#include <asm/time.h>
18#include <asm/xilinx_intc.h>
19#include <asm/reg.h>
20#include <asm/ppc4xx.h>
21#include "44x.h"
22
23static struct of_device_id xilinx_of_bus_ids[] __initdata = {
24 { .compatible = "simple-bus", },
25 { .compatible = "xlnx,plb-v46-1.00.a", },
26 { .compatible = "xlnx,plb-v46-1.02.a", },
27 { .compatible = "xlnx,plb-v34-1.01.a", },
28 { .compatible = "xlnx,plb-v34-1.02.a", },
29 { .compatible = "xlnx,opb-v20-1.10.c", },
30 { .compatible = "xlnx,dcr-v29-1.00.a", },
31 { .compatible = "xlnx,compound", },
32 {}
33};
34
35static int __init virtex_device_probe(void)
36{
37 of_platform_bus_probe(NULL, xilinx_of_bus_ids, NULL);
38
39 return 0;
40}
41machine_device_initcall(virtex, virtex_device_probe);
42
43static int __init virtex_probe(void)
44{
45 unsigned long root = of_get_flat_dt_root();
46
47 if (!of_flat_dt_is_compatible(root, "xlnx,virtex440"))
48 return 0;
49
50 return 1;
51}
52
53define_machine(virtex) {
54 .name = "Xilinx Virtex440",
55 .probe = virtex_probe,
56 .init_IRQ = xilinx_intc_init_tree,
57 .get_irq = xilinx_intc_get_irq,
58 .calibrate_decr = generic_calibrate_decr,
59 .restart = ppc4xx_reset_system,
60};
diff --git a/arch/powerpc/platforms/44x/warp-nand.c b/arch/powerpc/platforms/44x/warp-nand.c
index 7bec2815771a..e55746b824b4 100644
--- a/arch/powerpc/platforms/44x/warp-nand.c
+++ b/arch/powerpc/platforms/44x/warp-nand.c
@@ -113,9 +113,14 @@ static int warp_setup_nand_flash(void)
113 pp = of_find_property(np, "reg", NULL); 113 pp = of_find_property(np, "reg", NULL);
114 if (pp && (pp->length == 12)) { 114 if (pp && (pp->length == 12)) {
115 u32 *v = pp->value; 115 u32 *v = pp->value;
116 if (v[2] == 0x4000000) 116 if (v[2] == 0x4000000) {
117 /* Rev A = 64M NAND */ 117 /* Rev A = 64M NAND */
118 warp_nand_chip0.nr_partitions = 2; 118 warp_nand_chip0.nr_partitions = 3;
119
120 nand_parts[1].size = 0x3000000;
121 nand_parts[2].offset = 0x3200000;
122 nand_parts[2].size = 0x0e00000;
123 }
119 } 124 }
120 of_node_put(np); 125 of_node_put(np);
121 } 126 }
diff --git a/arch/powerpc/platforms/52xx/lite5200_pm.c b/arch/powerpc/platforms/52xx/lite5200_pm.c
index 41c7fd91e99e..fe92e65103ed 100644
--- a/arch/powerpc/platforms/52xx/lite5200_pm.c
+++ b/arch/powerpc/platforms/52xx/lite5200_pm.c
@@ -14,6 +14,7 @@ static struct mpc52xx_sdma __iomem *bes;
14static struct mpc52xx_xlb __iomem *xlb; 14static struct mpc52xx_xlb __iomem *xlb;
15static struct mpc52xx_gpio __iomem *gps; 15static struct mpc52xx_gpio __iomem *gps;
16static struct mpc52xx_gpio_wkup __iomem *gpw; 16static struct mpc52xx_gpio_wkup __iomem *gpw;
17static void __iomem *pci;
17static void __iomem *sram; 18static void __iomem *sram;
18static const int sram_size = 0x4000; /* 16 kBytes */ 19static const int sram_size = 0x4000; /* 16 kBytes */
19static void __iomem *mbar; 20static void __iomem *mbar;
@@ -50,6 +51,8 @@ static int lite5200_pm_prepare(void)
50 { .type = "builtin", .compatible = "mpc5200", }, /* efika */ 51 { .type = "builtin", .compatible = "mpc5200", }, /* efika */
51 {} 52 {}
52 }; 53 };
54 u64 regaddr64 = 0;
55 const u32 *regaddr_p;
53 56
54 /* deep sleep? let mpc52xx code handle that */ 57 /* deep sleep? let mpc52xx code handle that */
55 if (lite5200_pm_target_state == PM_SUSPEND_STANDBY) 58 if (lite5200_pm_target_state == PM_SUSPEND_STANDBY)
@@ -60,8 +63,12 @@ static int lite5200_pm_prepare(void)
60 63
61 /* map registers */ 64 /* map registers */
62 np = of_find_matching_node(NULL, immr_ids); 65 np = of_find_matching_node(NULL, immr_ids);
63 mbar = of_iomap(np, 0); 66 regaddr_p = of_get_address(np, 0, NULL, NULL);
67 if (regaddr_p)
68 regaddr64 = of_translate_address(np, regaddr_p);
64 of_node_put(np); 69 of_node_put(np);
70
71 mbar = ioremap((u32) regaddr64, 0xC000);
65 if (!mbar) { 72 if (!mbar) {
66 printk(KERN_ERR "%s:%i Error mapping registers\n", __func__, __LINE__); 73 printk(KERN_ERR "%s:%i Error mapping registers\n", __func__, __LINE__);
67 return -ENOSYS; 74 return -ENOSYS;
@@ -71,6 +78,7 @@ static int lite5200_pm_prepare(void)
71 pic = mbar + 0x500; 78 pic = mbar + 0x500;
72 gps = mbar + 0xb00; 79 gps = mbar + 0xb00;
73 gpw = mbar + 0xc00; 80 gpw = mbar + 0xc00;
81 pci = mbar + 0xd00;
74 bes = mbar + 0x1200; 82 bes = mbar + 0x1200;
75 xlb = mbar + 0x1f00; 83 xlb = mbar + 0x1f00;
76 sram = mbar + 0x8000; 84 sram = mbar + 0x8000;
@@ -85,6 +93,7 @@ static struct mpc52xx_sdma sbes;
85static struct mpc52xx_xlb sxlb; 93static struct mpc52xx_xlb sxlb;
86static struct mpc52xx_gpio sgps; 94static struct mpc52xx_gpio sgps;
87static struct mpc52xx_gpio_wkup sgpw; 95static struct mpc52xx_gpio_wkup sgpw;
96static char spci[0x200];
88 97
89static void lite5200_save_regs(void) 98static void lite5200_save_regs(void)
90{ 99{
@@ -94,6 +103,7 @@ static void lite5200_save_regs(void)
94 _memcpy_fromio(&sxlb, xlb, sizeof(*xlb)); 103 _memcpy_fromio(&sxlb, xlb, sizeof(*xlb));
95 _memcpy_fromio(&sgps, gps, sizeof(*gps)); 104 _memcpy_fromio(&sgps, gps, sizeof(*gps));
96 _memcpy_fromio(&sgpw, gpw, sizeof(*gpw)); 105 _memcpy_fromio(&sgpw, gpw, sizeof(*gpw));
106 _memcpy_fromio(spci, pci, 0x200);
97 107
98 _memcpy_fromio(saved_sram, sram, sram_size); 108 _memcpy_fromio(saved_sram, sram, sram_size);
99} 109}
@@ -103,6 +113,8 @@ static void lite5200_restore_regs(void)
103 int i; 113 int i;
104 _memcpy_toio(sram, saved_sram, sram_size); 114 _memcpy_toio(sram, saved_sram, sram_size);
105 115
116 /* PCI Configuration */
117 _memcpy_toio(pci, spci, 0x200);
106 118
107 /* 119 /*
108 * GPIOs. Interrupt Master Enable has higher address then other 120 * GPIOs. Interrupt Master Enable has higher address then other
diff --git a/arch/powerpc/platforms/82xx/Kconfig b/arch/powerpc/platforms/82xx/Kconfig
index 917ac8891555..1c8034bfa796 100644
--- a/arch/powerpc/platforms/82xx/Kconfig
+++ b/arch/powerpc/platforms/82xx/Kconfig
@@ -1,7 +1,8 @@
1choice 1menuconfig PPC_82xx
2 prompt "82xx Board Type" 2 bool "82xx-based boards (PQ II)"
3 depends on PPC_82xx 3 depends on 6xx && PPC_MULTIPLATFORM
4 default MPC8272_ADS 4
5if PPC_82xx
5 6
6config MPC8272_ADS 7config MPC8272_ADS
7 bool "Freescale MPC8272 ADS" 8 bool "Freescale MPC8272 ADS"
@@ -36,7 +37,7 @@ config EP8248E
36 This board is also resold by Freescale as the QUICCStart 37 This board is also resold by Freescale as the QUICCStart
37 MPC8248 Evaluation System and/or the CWH-PPC-8248N-VE. 38 MPC8248 Evaluation System and/or the CWH-PPC-8248N-VE.
38 39
39endchoice 40endif
40 41
41config PQ2ADS 42config PQ2ADS
42 bool 43 bool
diff --git a/arch/powerpc/platforms/82xx/mpc8272_ads.c b/arch/powerpc/platforms/82xx/mpc8272_ads.c
index 7d3018751988..8054c685d323 100644
--- a/arch/powerpc/platforms/82xx/mpc8272_ads.c
+++ b/arch/powerpc/platforms/82xx/mpc8272_ads.c
@@ -96,6 +96,10 @@ static struct cpm_pin mpc8272_ads_pins[] = {
96 {1, 31, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY}, 96 {1, 31, CPM_PIN_OUTPUT | CPM_PIN_PRIMARY},
97 {2, 16, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, 97 {2, 16, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
98 {2, 17, CPM_PIN_INPUT | CPM_PIN_PRIMARY}, 98 {2, 17, CPM_PIN_INPUT | CPM_PIN_PRIMARY},
99
100 /* I2C */
101 {3, 14, CPM_PIN_INPUT | CPM_PIN_SECONDARY | CPM_PIN_OPENDRAIN},
102 {3, 15, CPM_PIN_INPUT | CPM_PIN_SECONDARY | CPM_PIN_OPENDRAIN},
99}; 103};
100 104
101static void __init init_ioports(void) 105static void __init init_ioports(void)
diff --git a/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c b/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
index a8013816125c..9876d7e072f4 100644
--- a/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
+++ b/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
@@ -109,7 +109,7 @@ static int pci_pic_host_map(struct irq_host *h, unsigned int virq,
109{ 109{
110 get_irq_desc(virq)->status |= IRQ_LEVEL; 110 get_irq_desc(virq)->status |= IRQ_LEVEL;
111 set_irq_chip_data(virq, h->host_data); 111 set_irq_chip_data(virq, h->host_data);
112 set_irq_chip(virq, &pq2ads_pci_ic); 112 set_irq_chip_and_handler(virq, &pq2ads_pci_ic, handle_level_irq);
113 return 0; 113 return 0;
114} 114}
115 115
diff --git a/arch/powerpc/platforms/83xx/Kconfig b/arch/powerpc/platforms/83xx/Kconfig
index fe75b2ac3c9f..27d9bf86de01 100644
--- a/arch/powerpc/platforms/83xx/Kconfig
+++ b/arch/powerpc/platforms/83xx/Kconfig
@@ -1,10 +1,12 @@
1menuconfig MPC83xx 1menuconfig PPC_83xx
2 bool "83xx Board Type" 2 bool "83xx-based boards"
3 depends on PPC_83xx 3 depends on 6xx && PPC_MULTIPLATFORM
4 select PPC_UDBG_16550 4 select PPC_UDBG_16550
5 select PPC_INDIRECT_PCI 5 select PPC_INDIRECT_PCI
6 select FSL_SOC
7 select IPIC
6 8
7if MPC83xx 9if PPC_83xx
8 10
9config MPC831x_RDB 11config MPC831x_RDB
10 bool "Freescale MPC831x RDB" 12 bool "Freescale MPC831x RDB"
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig
index 9cb8e29987a3..cebea5cadbc1 100644
--- a/arch/powerpc/platforms/85xx/Kconfig
+++ b/arch/powerpc/platforms/85xx/Kconfig
@@ -38,6 +38,12 @@ config MPC85xx_MDS
38 help 38 help
39 This option enables support for the MPC85xx MDS board 39 This option enables support for the MPC85xx MDS board
40 40
41config MPC8536_DS
42 bool "Freescale MPC8536 DS"
43 select DEFAULT_UIMAGE
44 help
45 This option enables support for the MPC8536 DS board
46
41config MPC85xx_DS 47config MPC85xx_DS
42 bool "Freescale MPC85xx DS" 48 bool "Freescale MPC85xx DS"
43 select PPC_I8259 49 select PPC_I8259
diff --git a/arch/powerpc/platforms/85xx/Makefile b/arch/powerpc/platforms/85xx/Makefile
index 6cea185f62b2..cb3054e1001d 100644
--- a/arch/powerpc/platforms/85xx/Makefile
+++ b/arch/powerpc/platforms/85xx/Makefile
@@ -4,6 +4,7 @@
4obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads.o 4obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads.o
5obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads.o 5obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads.o
6obj-$(CONFIG_MPC85xx_CDS) += mpc85xx_cds.o 6obj-$(CONFIG_MPC85xx_CDS) += mpc85xx_cds.o
7obj-$(CONFIG_MPC8536_DS) += mpc8536_ds.o
7obj-$(CONFIG_MPC85xx_DS) += mpc85xx_ds.o 8obj-$(CONFIG_MPC85xx_DS) += mpc85xx_ds.o
8obj-$(CONFIG_MPC85xx_MDS) += mpc85xx_mds.o 9obj-$(CONFIG_MPC85xx_MDS) += mpc85xx_mds.o
9obj-$(CONFIG_STX_GP3) += stx_gp3.o 10obj-$(CONFIG_STX_GP3) += stx_gp3.o
diff --git a/arch/powerpc/platforms/85xx/mpc8536_ds.c b/arch/powerpc/platforms/85xx/mpc8536_ds.c
new file mode 100644
index 000000000000..6b846aa1ced9
--- /dev/null
+++ b/arch/powerpc/platforms/85xx/mpc8536_ds.c
@@ -0,0 +1,125 @@
1/*
2 * MPC8536 DS Board Setup
3 *
4 * Copyright 2008 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#include <linux/stddef.h>
13#include <linux/kernel.h>
14#include <linux/pci.h>
15#include <linux/kdev_t.h>
16#include <linux/delay.h>
17#include <linux/seq_file.h>
18#include <linux/interrupt.h>
19#include <linux/of_platform.h>
20
21#include <asm/system.h>
22#include <asm/time.h>
23#include <asm/machdep.h>
24#include <asm/pci-bridge.h>
25#include <mm/mmu_decl.h>
26#include <asm/prom.h>
27#include <asm/udbg.h>
28#include <asm/mpic.h>
29
30#include <sysdev/fsl_soc.h>
31#include <sysdev/fsl_pci.h>
32
33void __init mpc8536_ds_pic_init(void)
34{
35 struct mpic *mpic;
36 struct resource r;
37 struct device_node *np;
38
39 np = of_find_node_by_type(NULL, "open-pic");
40 if (np == NULL) {
41 printk(KERN_ERR "Could not find open-pic node\n");
42 return;
43 }
44
45 if (of_address_to_resource(np, 0, &r)) {
46 printk(KERN_ERR "Failed to map mpic register space\n");
47 of_node_put(np);
48 return;
49 }
50
51 mpic = mpic_alloc(np, r.start,
52 MPIC_PRIMARY | MPIC_WANTS_RESET |
53 MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS,
54 0, 256, " OpenPIC ");
55 BUG_ON(mpic == NULL);
56 of_node_put(np);
57
58 mpic_init(mpic);
59}
60
61/*
62 * Setup the architecture
63 */
64static void __init mpc8536_ds_setup_arch(void)
65{
66#ifdef CONFIG_PCI
67 struct device_node *np;
68#endif
69
70 if (ppc_md.progress)
71 ppc_md.progress("mpc8536_ds_setup_arch()", 0);
72
73#ifdef CONFIG_PCI
74 for_each_node_by_type(np, "pci") {
75 if (of_device_is_compatible(np, "fsl,mpc8540-pci") ||
76 of_device_is_compatible(np, "fsl,mpc8548-pcie")) {
77 struct resource rsrc;
78 of_address_to_resource(np, 0, &rsrc);
79 if ((rsrc.start & 0xfffff) == 0x8000)
80 fsl_add_bridge(np, 1);
81 else
82 fsl_add_bridge(np, 0);
83 }
84 }
85
86#endif
87
88 printk("MPC8536 DS board from Freescale Semiconductor\n");
89}
90
91static struct of_device_id __initdata mpc8536_ds_ids[] = {
92 { .type = "soc", },
93 { .compatible = "soc", },
94 {},
95};
96
97static int __init mpc8536_ds_publish_devices(void)
98{
99 return of_platform_bus_probe(NULL, mpc8536_ds_ids, NULL);
100}
101machine_device_initcall(mpc8536_ds, mpc8536_ds_publish_devices);
102
103/*
104 * Called very early, device-tree isn't unflattened
105 */
106static int __init mpc8536_ds_probe(void)
107{
108 unsigned long root = of_get_flat_dt_root();
109
110 return of_flat_dt_is_compatible(root, "fsl,mpc8536ds");
111}
112
113define_machine(mpc8536_ds) {
114 .name = "MPC8536 DS",
115 .probe = mpc8536_ds_probe,
116 .setup_arch = mpc8536_ds_setup_arch,
117 .init_IRQ = mpc8536_ds_pic_init,
118#ifdef CONFIG_PCI
119 .pcibios_fixup_bus = fsl_pcibios_fixup_bus,
120#endif
121 .get_irq = mpic_get_irq,
122 .restart = fsl_rstcr_restart,
123 .calibrate_decr = generic_calibrate_decr,
124 .progress = udbg_progress,
125};
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_cds.c b/arch/powerpc/platforms/85xx/mpc85xx_cds.c
index 8b1de7884be6..50d7ea8f922b 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_cds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_cds.c
@@ -26,6 +26,7 @@
26#include <linux/module.h> 26#include <linux/module.h>
27#include <linux/interrupt.h> 27#include <linux/interrupt.h>
28#include <linux/fsl_devices.h> 28#include <linux/fsl_devices.h>
29#include <linux/of_platform.h>
29 30
30#include <asm/system.h> 31#include <asm/system.h>
31#include <asm/pgtable.h> 32#include <asm/pgtable.h>
@@ -335,6 +336,19 @@ static int __init mpc85xx_cds_probe(void)
335 return of_flat_dt_is_compatible(root, "MPC85xxCDS"); 336 return of_flat_dt_is_compatible(root, "MPC85xxCDS");
336} 337}
337 338
339static struct of_device_id __initdata of_bus_ids[] = {
340 { .type = "soc", },
341 { .compatible = "soc", },
342 { .compatible = "simple-bus", },
343 {},
344};
345
346static int __init declare_of_platform_devices(void)
347{
348 return of_platform_bus_probe(NULL, of_bus_ids, NULL);
349}
350machine_device_initcall(mpc85xx_cds, declare_of_platform_devices);
351
338define_machine(mpc85xx_cds) { 352define_machine(mpc85xx_cds) {
339 .name = "MPC85xx CDS", 353 .name = "MPC85xx CDS",
340 .probe = mpc85xx_cds_probe, 354 .probe = mpc85xx_cds_probe,
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ds.c b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
index b010dc9dec65..25f41cd2d33a 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_ds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
@@ -58,14 +58,13 @@ void __init mpc85xx_ds_pic_init(void)
58{ 58{
59 struct mpic *mpic; 59 struct mpic *mpic;
60 struct resource r; 60 struct resource r;
61 struct device_node *np = NULL; 61 struct device_node *np;
62#ifdef CONFIG_PPC_I8259 62#ifdef CONFIG_PPC_I8259
63 struct device_node *cascade_node = NULL; 63 struct device_node *cascade_node = NULL;
64 int cascade_irq; 64 int cascade_irq;
65#endif 65#endif
66 66
67 np = of_find_node_by_type(np, "open-pic"); 67 np = of_find_node_by_type(NULL, "open-pic");
68
69 if (np == NULL) { 68 if (np == NULL) {
70 printk(KERN_ERR "Could not find open-pic node\n"); 69 printk(KERN_ERR "Could not find open-pic node\n");
71 return; 70 return;
@@ -82,6 +81,7 @@ void __init mpc85xx_ds_pic_init(void)
82 MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS, 81 MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS,
83 0, 256, " OpenPIC "); 82 0, 256, " OpenPIC ");
84 BUG_ON(mpic == NULL); 83 BUG_ON(mpic == NULL);
84 of_node_put(np);
85 85
86 mpic_init(mpic); 86 mpic_init(mpic);
87 87
@@ -185,7 +185,7 @@ static int __init mpc8544_ds_probe(void)
185 } 185 }
186} 186}
187 187
188static struct of_device_id mpc85xxds_ids[] = { 188static struct of_device_id __initdata mpc85xxds_ids[] = {
189 { .type = "soc", }, 189 { .type = "soc", },
190 { .compatible = "soc", }, 190 { .compatible = "soc", },
191 {}, 191 {},
diff --git a/arch/powerpc/platforms/86xx/Kconfig b/arch/powerpc/platforms/86xx/Kconfig
index 053f49a1dcae..80a81e02bb55 100644
--- a/arch/powerpc/platforms/86xx/Kconfig
+++ b/arch/powerpc/platforms/86xx/Kconfig
@@ -1,7 +1,13 @@
1choice 1config PPC_86xx
2 prompt "86xx Board Type" 2menuconfig PPC_86xx
3 depends on PPC_86xx 3 bool "86xx-based boards"
4 default MPC8641_HPCN 4 depends on 6xx && PPC_MULTIPLATFORM
5 select FSL_SOC
6 select ALTIVEC
7 help
8 The Freescale E600 SoCs have 74xx cores.
9
10if PPC_86xx
5 11
6config MPC8641_HPCN 12config MPC8641_HPCN
7 bool "Freescale MPC8641 HPCN" 13 bool "Freescale MPC8641 HPCN"
@@ -24,7 +30,7 @@ config MPC8610_HPCD
24 help 30 help
25 This option enables support for the MPC8610 HPCD board. 31 This option enables support for the MPC8610 HPCD board.
26 32
27endchoice 33endif
28 34
29config MPC8641 35config MPC8641
30 bool 36 bool
diff --git a/arch/powerpc/platforms/86xx/Makefile b/arch/powerpc/platforms/86xx/Makefile
index 1b9b4a9b2525..8fee37dec795 100644
--- a/arch/powerpc/platforms/86xx/Makefile
+++ b/arch/powerpc/platforms/86xx/Makefile
@@ -2,6 +2,7 @@
2# Makefile for the PowerPC 86xx linux kernel. 2# Makefile for the PowerPC 86xx linux kernel.
3# 3#
4 4
5obj-y := pic.o
5obj-$(CONFIG_SMP) += mpc86xx_smp.o 6obj-$(CONFIG_SMP) += mpc86xx_smp.o
6obj-$(CONFIG_MPC8641_HPCN) += mpc86xx_hpcn.o 7obj-$(CONFIG_MPC8641_HPCN) += mpc86xx_hpcn.o
7obj-$(CONFIG_SBC8641D) += sbc8641d.o 8obj-$(CONFIG_SBC8641D) += sbc8641d.o
diff --git a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
index eb16208b29d9..30725302884a 100644
--- a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
+++ b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
@@ -39,6 +39,8 @@
39#include <sysdev/fsl_pci.h> 39#include <sysdev/fsl_pci.h>
40#include <sysdev/fsl_soc.h> 40#include <sysdev/fsl_soc.h>
41 41
42#include "mpc86xx.h"
43
42static unsigned char *pixis_bdcfg0, *pixis_arch; 44static unsigned char *pixis_bdcfg0, *pixis_arch;
43 45
44static struct of_device_id __initdata mpc8610_ids[] = { 46static struct of_device_id __initdata mpc8610_ids[] = {
@@ -56,28 +58,6 @@ static int __init mpc8610_declare_of_platform_devices(void)
56} 58}
57machine_device_initcall(mpc86xx_hpcd, mpc8610_declare_of_platform_devices); 59machine_device_initcall(mpc86xx_hpcd, mpc8610_declare_of_platform_devices);
58 60
59static void __init mpc86xx_hpcd_init_irq(void)
60{
61 struct mpic *mpic1;
62 struct device_node *np;
63 struct resource res;
64
65 /* Determine PIC address. */
66 np = of_find_node_by_type(NULL, "open-pic");
67 if (np == NULL)
68 return;
69 of_address_to_resource(np, 0, &res);
70
71 /* Alloc mpic structure and per isu has 16 INT entries. */
72 mpic1 = mpic_alloc(np, res.start,
73 MPIC_PRIMARY | MPIC_WANTS_RESET |
74 MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS,
75 0, 256, " MPIC ");
76 BUG_ON(mpic1 == NULL);
77
78 mpic_init(mpic1);
79}
80
81#ifdef CONFIG_PCI 61#ifdef CONFIG_PCI
82static void __devinit quirk_uli1575(struct pci_dev *dev) 62static void __devinit quirk_uli1575(struct pci_dev *dev)
83{ 63{
@@ -405,7 +385,7 @@ define_machine(mpc86xx_hpcd) {
405 .name = "MPC86xx HPCD", 385 .name = "MPC86xx HPCD",
406 .probe = mpc86xx_hpcd_probe, 386 .probe = mpc86xx_hpcd_probe,
407 .setup_arch = mpc86xx_hpcd_setup_arch, 387 .setup_arch = mpc86xx_hpcd_setup_arch,
408 .init_IRQ = mpc86xx_hpcd_init_irq, 388 .init_IRQ = mpc86xx_init_irq,
409 .get_irq = mpic_get_irq, 389 .get_irq = mpic_get_irq,
410 .restart = fsl_rstcr_restart, 390 .restart = fsl_rstcr_restart,
411 .time_init = mpc86xx_time_init, 391 .time_init = mpc86xx_time_init,
diff --git a/arch/powerpc/platforms/86xx/mpc86xx.h b/arch/powerpc/platforms/86xx/mpc86xx.h
index 525ffa1904f9..08efb57559d1 100644
--- a/arch/powerpc/platforms/86xx/mpc86xx.h
+++ b/arch/powerpc/platforms/86xx/mpc86xx.h
@@ -15,6 +15,7 @@
15 * mpc86xx_* files. Mostly for use by mpc86xx_setup(). 15 * mpc86xx_* files. Mostly for use by mpc86xx_setup().
16 */ 16 */
17 17
18extern void __init mpc86xx_smp_init(void); 18extern void mpc86xx_smp_init(void);
19extern void mpc86xx_init_irq(void);
19 20
20#endif /* __MPC86XX_H__ */ 21#endif /* __MPC86XX_H__ */
diff --git a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
index f13704aabbea..7916599c9126 100644
--- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
+++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
@@ -28,7 +28,6 @@
28#include <asm/prom.h> 28#include <asm/prom.h>
29#include <mm/mmu_decl.h> 29#include <mm/mmu_decl.h>
30#include <asm/udbg.h> 30#include <asm/udbg.h>
31#include <asm/i8259.h>
32 31
33#include <asm/mpic.h> 32#include <asm/mpic.h>
34 33
@@ -46,67 +45,6 @@
46#endif 45#endif
47 46
48#ifdef CONFIG_PCI 47#ifdef CONFIG_PCI
49static void mpc86xx_8259_cascade(unsigned int irq, struct irq_desc *desc)
50{
51 unsigned int cascade_irq = i8259_irq();
52 if (cascade_irq != NO_IRQ)
53 generic_handle_irq(cascade_irq);
54 desc->chip->eoi(irq);
55}
56#endif /* CONFIG_PCI */
57
58static void __init
59mpc86xx_hpcn_init_irq(void)
60{
61 struct mpic *mpic1;
62 struct device_node *np;
63 struct resource res;
64#ifdef CONFIG_PCI
65 struct device_node *cascade_node = NULL;
66 int cascade_irq;
67#endif
68
69 /* Determine PIC address. */
70 np = of_find_node_by_type(NULL, "open-pic");
71 if (np == NULL)
72 return;
73 of_address_to_resource(np, 0, &res);
74
75 /* Alloc mpic structure and per isu has 16 INT entries. */
76 mpic1 = mpic_alloc(np, res.start,
77 MPIC_PRIMARY | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN,
78 0, 256, " MPIC ");
79 BUG_ON(mpic1 == NULL);
80
81 mpic_init(mpic1);
82
83#ifdef CONFIG_PCI
84 /* Initialize i8259 controller */
85 for_each_node_by_type(np, "interrupt-controller")
86 if (of_device_is_compatible(np, "chrp,iic")) {
87 cascade_node = np;
88 break;
89 }
90 if (cascade_node == NULL) {
91 printk(KERN_DEBUG "mpc86xxhpcn: no ISA interrupt controller\n");
92 return;
93 }
94
95 cascade_irq = irq_of_parse_and_map(cascade_node, 0);
96 if (cascade_irq == NO_IRQ) {
97 printk(KERN_ERR "mpc86xxhpcn: failed to map cascade interrupt");
98 return;
99 }
100 DBG("mpc86xxhpcn: cascade mapped to irq %d\n", cascade_irq);
101
102 i8259_init(cascade_node, 0);
103 of_node_put(cascade_node);
104
105 set_irq_chained_handler(cascade_irq, mpc86xx_8259_cascade);
106#endif
107}
108
109#ifdef CONFIG_PCI
110extern int uses_fsl_uli_m1575; 48extern int uses_fsl_uli_m1575;
111extern int uli_exclude_device(struct pci_controller *hose, 49extern int uli_exclude_device(struct pci_controller *hose,
112 u_char bus, u_char devfn); 50 u_char bus, u_char devfn);
@@ -237,7 +175,7 @@ define_machine(mpc86xx_hpcn) {
237 .name = "MPC86xx HPCN", 175 .name = "MPC86xx HPCN",
238 .probe = mpc86xx_hpcn_probe, 176 .probe = mpc86xx_hpcn_probe,
239 .setup_arch = mpc86xx_hpcn_setup_arch, 177 .setup_arch = mpc86xx_hpcn_setup_arch,
240 .init_IRQ = mpc86xx_hpcn_init_irq, 178 .init_IRQ = mpc86xx_init_irq,
241 .show_cpuinfo = mpc86xx_hpcn_show_cpuinfo, 179 .show_cpuinfo = mpc86xx_hpcn_show_cpuinfo,
242 .get_irq = mpic_get_irq, 180 .get_irq = mpic_get_irq,
243 .restart = fsl_rstcr_restart, 181 .restart = fsl_rstcr_restart,
diff --git a/arch/powerpc/platforms/86xx/pic.c b/arch/powerpc/platforms/86xx/pic.c
new file mode 100644
index 000000000000..8881c5de500d
--- /dev/null
+++ b/arch/powerpc/platforms/86xx/pic.c
@@ -0,0 +1,78 @@
1/*
2 * Copyright 2008 Freescale Semiconductor, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 */
9
10#include <linux/stddef.h>
11#include <linux/kernel.h>
12#include <linux/interrupt.h>
13#include <linux/of_platform.h>
14
15#include <asm/system.h>
16#include <asm/mpic.h>
17#include <asm/i8259.h>
18
19#ifdef CONFIG_PPC_I8259
20static void mpc86xx_8259_cascade(unsigned int irq, struct irq_desc *desc)
21{
22 unsigned int cascade_irq = i8259_irq();
23 if (cascade_irq != NO_IRQ)
24 generic_handle_irq(cascade_irq);
25 desc->chip->eoi(irq);
26}
27#endif /* CONFIG_PPC_I8259 */
28
29void __init mpc86xx_init_irq(void)
30{
31 struct mpic *mpic;
32 struct device_node *np;
33 struct resource res;
34#ifdef CONFIG_PPC_I8259
35 struct device_node *cascade_node = NULL;
36 int cascade_irq;
37#endif
38
39 /* Determine PIC address. */
40 np = of_find_node_by_type(NULL, "open-pic");
41 if (np == NULL)
42 return;
43 of_address_to_resource(np, 0, &res);
44
45 mpic = mpic_alloc(np, res.start,
46 MPIC_PRIMARY | MPIC_WANTS_RESET |
47 MPIC_BIG_ENDIAN | MPIC_BROKEN_FRR_NIRQS,
48 0, 256, " MPIC ");
49 of_node_put(np);
50 BUG_ON(mpic == NULL);
51
52 mpic_init(mpic);
53
54#ifdef CONFIG_PPC_I8259
55 /* Initialize i8259 controller */
56 for_each_node_by_type(np, "interrupt-controller")
57 if (of_device_is_compatible(np, "chrp,iic")) {
58 cascade_node = np;
59 break;
60 }
61
62 if (cascade_node == NULL) {
63 printk(KERN_DEBUG "Could not find i8259 PIC\n");
64 return;
65 }
66
67 cascade_irq = irq_of_parse_and_map(cascade_node, 0);
68 if (cascade_irq == NO_IRQ) {
69 printk(KERN_ERR "Failed to map cascade interrupt\n");
70 return;
71 }
72
73 i8259_init(cascade_node, 0);
74 of_node_put(cascade_node);
75
76 set_irq_chained_handler(cascade_irq, mpc86xx_8259_cascade);
77#endif
78}
diff --git a/arch/powerpc/platforms/86xx/sbc8641d.c b/arch/powerpc/platforms/86xx/sbc8641d.c
index 510a06ef0b55..00e6fad3b3ca 100644
--- a/arch/powerpc/platforms/86xx/sbc8641d.c
+++ b/arch/powerpc/platforms/86xx/sbc8641d.c
@@ -38,29 +38,6 @@
38#include "mpc86xx.h" 38#include "mpc86xx.h"
39 39
40static void __init 40static void __init
41sbc8641_init_irq(void)
42{
43 struct mpic *mpic1;
44 struct device_node *np;
45 struct resource res;
46
47 /* Determine PIC address. */
48 np = of_find_node_by_type(NULL, "open-pic");
49 if (np == NULL)
50 return;
51 of_address_to_resource(np, 0, &res);
52
53 /* Alloc mpic structure and per isu has 16 INT entries. */
54 mpic1 = mpic_alloc(np, res.start,
55 MPIC_PRIMARY | MPIC_WANTS_RESET | MPIC_BIG_ENDIAN,
56 0, 256, " MPIC ");
57 of_node_put(np);
58 BUG_ON(mpic1 == NULL);
59
60 mpic_init(mpic1);
61}
62
63static void __init
64sbc8641_setup_arch(void) 41sbc8641_setup_arch(void)
65{ 42{
66#ifdef CONFIG_PCI 43#ifdef CONFIG_PCI
@@ -151,7 +128,7 @@ define_machine(sbc8641) {
151 .name = "SBC8641D", 128 .name = "SBC8641D",
152 .probe = sbc8641_probe, 129 .probe = sbc8641_probe,
153 .setup_arch = sbc8641_setup_arch, 130 .setup_arch = sbc8641_setup_arch,
154 .init_IRQ = sbc8641_init_irq, 131 .init_IRQ = mpc86xx_init_irq,
155 .show_cpuinfo = sbc8641_show_cpuinfo, 132 .show_cpuinfo = sbc8641_show_cpuinfo,
156 .get_irq = mpic_get_irq, 133 .get_irq = mpic_get_irq,
157 .restart = fsl_rstcr_restart, 134 .restart = fsl_rstcr_restart,
diff --git a/arch/powerpc/platforms/8xx/mpc86xads_setup.c b/arch/powerpc/platforms/8xx/mpc86xads_setup.c
index c028a5b71bbb..caaec29796b7 100644
--- a/arch/powerpc/platforms/8xx/mpc86xads_setup.c
+++ b/arch/powerpc/platforms/8xx/mpc86xads_setup.c
@@ -65,6 +65,10 @@ static struct cpm_pin mpc866ads_pins[] = {
65 {CPM_PORTD, 13, CPM_PIN_OUTPUT}, 65 {CPM_PORTD, 13, CPM_PIN_OUTPUT},
66 {CPM_PORTD, 14, CPM_PIN_OUTPUT}, 66 {CPM_PORTD, 14, CPM_PIN_OUTPUT},
67 {CPM_PORTD, 15, CPM_PIN_OUTPUT}, 67 {CPM_PORTD, 15, CPM_PIN_OUTPUT},
68
69 /* I2C */
70 {CPM_PORTB, 26, CPM_PIN_INPUT | CPM_PIN_OPENDRAIN},
71 {CPM_PORTB, 27, CPM_PIN_INPUT | CPM_PIN_OPENDRAIN},
68}; 72};
69 73
70static void __init init_ioports(void) 74static void __init init_ioports(void)
diff --git a/arch/powerpc/platforms/8xx/mpc885ads_setup.c b/arch/powerpc/platforms/8xx/mpc885ads_setup.c
index 6e7ded0233f6..45ed6cdc1310 100644
--- a/arch/powerpc/platforms/8xx/mpc885ads_setup.c
+++ b/arch/powerpc/platforms/8xx/mpc885ads_setup.c
@@ -158,6 +158,9 @@ static struct cpm_pin mpc885ads_pins[] = {
158 {CPM_PORTE, 28, CPM_PIN_OUTPUT}, 158 {CPM_PORTE, 28, CPM_PIN_OUTPUT},
159 {CPM_PORTE, 29, CPM_PIN_OUTPUT}, 159 {CPM_PORTE, 29, CPM_PIN_OUTPUT},
160#endif 160#endif
161 /* I2C */
162 {CPM_PORTB, 26, CPM_PIN_INPUT | CPM_PIN_OPENDRAIN},
163 {CPM_PORTB, 27, CPM_PIN_INPUT | CPM_PIN_OPENDRAIN},
161}; 164};
162 165
163static void __init init_ioports(void) 166static void __init init_ioports(void)
diff --git a/arch/powerpc/platforms/Kconfig b/arch/powerpc/platforms/Kconfig
index 87454c526973..690c1f46e698 100644
--- a/arch/powerpc/platforms/Kconfig
+++ b/arch/powerpc/platforms/Kconfig
@@ -1,36 +1,9 @@
1menu "Platform support" 1menu "Platform support"
2 2
3choice
4 prompt "Machine type"
5 depends on PPC64 || 6xx
6 default PPC_MULTIPLATFORM
7
8config PPC_MULTIPLATFORM 3config PPC_MULTIPLATFORM
9 bool "Generic desktop/server/laptop" 4 bool
10 help 5 depends on PPC64 || 6xx
11 Select this option if configuring for an IBM pSeries or 6 default y
12 RS/6000 machine, an Apple machine, or a PReP, CHRP,
13 Maple or Cell-based machine.
14
15config PPC_82xx
16 bool "Freescale 82xx"
17 depends on 6xx
18
19config PPC_83xx
20 bool "Freescale 83xx"
21 depends on 6xx
22 select FSL_SOC
23 select MPC83xx
24 select IPIC
25
26config PPC_86xx
27 bool "Freescale 86xx"
28 depends on 6xx
29 select FSL_SOC
30 select ALTIVEC
31 help
32 The Freescale E600 SoCs have 74xx cores.
33endchoice
34 7
35config CLASSIC32 8config CLASSIC32
36 def_bool y 9 def_bool y
diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c
index 45646b2b4af4..eeacb3a52ca1 100644
--- a/arch/powerpc/platforms/cell/iommu.c
+++ b/arch/powerpc/platforms/cell/iommu.c
@@ -540,7 +540,7 @@ static unsigned long cell_dma_direct_offset;
540static unsigned long dma_iommu_fixed_base; 540static unsigned long dma_iommu_fixed_base;
541struct dma_mapping_ops dma_iommu_fixed_ops; 541struct dma_mapping_ops dma_iommu_fixed_ops;
542 542
543static void cell_dma_dev_setup_iommu(struct device *dev) 543static struct iommu_table *cell_get_iommu_table(struct device *dev)
544{ 544{
545 struct iommu_window *window; 545 struct iommu_window *window;
546 struct cbe_iommu *iommu; 546 struct cbe_iommu *iommu;
@@ -555,11 +555,11 @@ static void cell_dma_dev_setup_iommu(struct device *dev)
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 archdata->of_node ? archdata->of_node->full_name : "?",
557 archdata->numa_node); 557 archdata->numa_node);
558 return; 558 return NULL;
559 } 559 }
560 window = list_entry(iommu->windows.next, struct iommu_window, list); 560 window = list_entry(iommu->windows.next, struct iommu_window, list);
561 561
562 archdata->dma_data = &window->table; 562 return &window->table;
563} 563}
564 564
565static void cell_dma_dev_setup_fixed(struct device *dev); 565static void cell_dma_dev_setup_fixed(struct device *dev);
@@ -572,7 +572,7 @@ static void cell_dma_dev_setup(struct device *dev)
572 if (get_dma_ops(dev) == &dma_iommu_fixed_ops) 572 if (get_dma_ops(dev) == &dma_iommu_fixed_ops)
573 cell_dma_dev_setup_fixed(dev); 573 cell_dma_dev_setup_fixed(dev);
574 else if (get_pci_dma_ops() == &dma_iommu_ops) 574 else if (get_pci_dma_ops() == &dma_iommu_ops)
575 cell_dma_dev_setup_iommu(dev); 575 archdata->dma_data = cell_get_iommu_table(dev);
576 else if (get_pci_dma_ops() == &dma_direct_ops) 576 else if (get_pci_dma_ops() == &dma_direct_ops)
577 archdata->dma_data = (void *)cell_dma_direct_offset; 577 archdata->dma_data = (void *)cell_dma_direct_offset;
578 else 578 else
diff --git a/arch/powerpc/platforms/cell/spufs/context.c b/arch/powerpc/platforms/cell/spufs/context.c
index 177735f79317..6653ddbed048 100644
--- a/arch/powerpc/platforms/cell/spufs/context.c
+++ b/arch/powerpc/platforms/cell/spufs/context.c
@@ -130,17 +130,17 @@ void spu_unmap_mappings(struct spu_context *ctx)
130 if (ctx->local_store) 130 if (ctx->local_store)
131 unmap_mapping_range(ctx->local_store, 0, LS_SIZE, 1); 131 unmap_mapping_range(ctx->local_store, 0, LS_SIZE, 1);
132 if (ctx->mfc) 132 if (ctx->mfc)
133 unmap_mapping_range(ctx->mfc, 0, 0x1000, 1); 133 unmap_mapping_range(ctx->mfc, 0, SPUFS_MFC_MAP_SIZE, 1);
134 if (ctx->cntl) 134 if (ctx->cntl)
135 unmap_mapping_range(ctx->cntl, 0, 0x1000, 1); 135 unmap_mapping_range(ctx->cntl, 0, SPUFS_CNTL_MAP_SIZE, 1);
136 if (ctx->signal1) 136 if (ctx->signal1)
137 unmap_mapping_range(ctx->signal1, 0, PAGE_SIZE, 1); 137 unmap_mapping_range(ctx->signal1, 0, SPUFS_SIGNAL_MAP_SIZE, 1);
138 if (ctx->signal2) 138 if (ctx->signal2)
139 unmap_mapping_range(ctx->signal2, 0, PAGE_SIZE, 1); 139 unmap_mapping_range(ctx->signal2, 0, SPUFS_SIGNAL_MAP_SIZE, 1);
140 if (ctx->mss) 140 if (ctx->mss)
141 unmap_mapping_range(ctx->mss, 0, 0x1000, 1); 141 unmap_mapping_range(ctx->mss, 0, SPUFS_MSS_MAP_SIZE, 1);
142 if (ctx->psmap) 142 if (ctx->psmap)
143 unmap_mapping_range(ctx->psmap, 0, 0x20000, 1); 143 unmap_mapping_range(ctx->psmap, 0, SPUFS_PS_MAP_SIZE, 1);
144 mutex_unlock(&ctx->mapping_lock); 144 mutex_unlock(&ctx->mapping_lock);
145} 145}
146 146
diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c
index f74259979cb6..99c73066b82f 100644
--- a/arch/powerpc/platforms/cell/spufs/file.c
+++ b/arch/powerpc/platforms/cell/spufs/file.c
@@ -410,7 +410,7 @@ refault:
410static int spufs_cntl_mmap_fault(struct vm_area_struct *vma, 410static int spufs_cntl_mmap_fault(struct vm_area_struct *vma,
411 struct vm_fault *vmf) 411 struct vm_fault *vmf)
412{ 412{
413 return spufs_ps_fault(vma, vmf, 0x4000, 0x1000); 413 return spufs_ps_fault(vma, vmf, 0x4000, SPUFS_CNTL_MAP_SIZE);
414} 414}
415 415
416static struct vm_operations_struct spufs_cntl_mmap_vmops = { 416static struct vm_operations_struct spufs_cntl_mmap_vmops = {
@@ -1102,13 +1102,13 @@ static ssize_t spufs_signal1_write(struct file *file, const char __user *buf,
1102static int 1102static int
1103spufs_signal1_mmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf) 1103spufs_signal1_mmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
1104{ 1104{
1105#if PAGE_SIZE == 0x1000 1105#if SPUFS_SIGNAL_MAP_SIZE == 0x1000
1106 return spufs_ps_fault(vma, vmf, 0x14000, 0x1000); 1106 return spufs_ps_fault(vma, vmf, 0x14000, SPUFS_SIGNAL_MAP_SIZE);
1107#elif PAGE_SIZE == 0x10000 1107#elif SPUFS_SIGNAL_MAP_SIZE == 0x10000
1108 /* For 64k pages, both signal1 and signal2 can be used to mmap the whole 1108 /* For 64k pages, both signal1 and signal2 can be used to mmap the whole
1109 * signal 1 and 2 area 1109 * signal 1 and 2 area
1110 */ 1110 */
1111 return spufs_ps_fault(vma, vmf, 0x10000, 0x10000); 1111 return spufs_ps_fault(vma, vmf, 0x10000, SPUFS_SIGNAL_MAP_SIZE);
1112#else 1112#else
1113#error unsupported page size 1113#error unsupported page size
1114#endif 1114#endif
@@ -1239,13 +1239,13 @@ static ssize_t spufs_signal2_write(struct file *file, const char __user *buf,
1239static int 1239static int
1240spufs_signal2_mmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf) 1240spufs_signal2_mmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
1241{ 1241{
1242#if PAGE_SIZE == 0x1000 1242#if SPUFS_SIGNAL_MAP_SIZE == 0x1000
1243 return spufs_ps_fault(vma, vmf, 0x1c000, 0x1000); 1243 return spufs_ps_fault(vma, vmf, 0x1c000, SPUFS_SIGNAL_MAP_SIZE);
1244#elif PAGE_SIZE == 0x10000 1244#elif SPUFS_SIGNAL_MAP_SIZE == 0x10000
1245 /* For 64k pages, both signal1 and signal2 can be used to mmap the whole 1245 /* For 64k pages, both signal1 and signal2 can be used to mmap the whole
1246 * signal 1 and 2 area 1246 * signal 1 and 2 area
1247 */ 1247 */
1248 return spufs_ps_fault(vma, vmf, 0x10000, 0x10000); 1248 return spufs_ps_fault(vma, vmf, 0x10000, SPUFS_SIGNAL_MAP_SIZE);
1249#else 1249#else
1250#error unsupported page size 1250#error unsupported page size
1251#endif 1251#endif
@@ -1367,7 +1367,7 @@ DEFINE_SPUFS_ATTRIBUTE(spufs_signal2_type, spufs_signal2_type_get,
1367static int 1367static int
1368spufs_mss_mmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf) 1368spufs_mss_mmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
1369{ 1369{
1370 return spufs_ps_fault(vma, vmf, 0x0000, 0x1000); 1370 return spufs_ps_fault(vma, vmf, 0x0000, SPUFS_MSS_MAP_SIZE);
1371} 1371}
1372 1372
1373static struct vm_operations_struct spufs_mss_mmap_vmops = { 1373static struct vm_operations_struct spufs_mss_mmap_vmops = {
@@ -1429,7 +1429,7 @@ static const struct file_operations spufs_mss_fops = {
1429static int 1429static int
1430spufs_psmap_mmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf) 1430spufs_psmap_mmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
1431{ 1431{
1432 return spufs_ps_fault(vma, vmf, 0x0000, 0x20000); 1432 return spufs_ps_fault(vma, vmf, 0x0000, SPUFS_PS_MAP_SIZE);
1433} 1433}
1434 1434
1435static struct vm_operations_struct spufs_psmap_mmap_vmops = { 1435static struct vm_operations_struct spufs_psmap_mmap_vmops = {
@@ -1489,7 +1489,7 @@ static const struct file_operations spufs_psmap_fops = {
1489static int 1489static int
1490spufs_mfc_mmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf) 1490spufs_mfc_mmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
1491{ 1491{
1492 return spufs_ps_fault(vma, vmf, 0x3000, 0x1000); 1492 return spufs_ps_fault(vma, vmf, 0x3000, SPUFS_MFC_MAP_SIZE);
1493} 1493}
1494 1494
1495static struct vm_operations_struct spufs_mfc_mmap_vmops = { 1495static struct vm_operations_struct spufs_mfc_mmap_vmops = {
@@ -2555,22 +2555,74 @@ void spu_switch_log_notify(struct spu *spu, struct spu_context *ctx,
2555 wake_up(&ctx->switch_log->wait); 2555 wake_up(&ctx->switch_log->wait);
2556} 2556}
2557 2557
2558struct tree_descr spufs_dir_contents[] = { 2558static int spufs_show_ctx(struct seq_file *s, void *private)
2559{
2560 struct spu_context *ctx = s->private;
2561 u64 mfc_control_RW;
2562
2563 mutex_lock(&ctx->state_mutex);
2564 if (ctx->spu) {
2565 struct spu *spu = ctx->spu;
2566 struct spu_priv2 __iomem *priv2 = spu->priv2;
2567
2568 spin_lock_irq(&spu->register_lock);
2569 mfc_control_RW = in_be64(&priv2->mfc_control_RW);
2570 spin_unlock_irq(&spu->register_lock);
2571 } else {
2572 struct spu_state *csa = &ctx->csa;
2573
2574 mfc_control_RW = csa->priv2.mfc_control_RW;
2575 }
2576
2577 seq_printf(s, "%c flgs(%lx) sflgs(%lx) pri(%d) ts(%d) spu(%02d)"
2578 " %c %lx %lx %lx %lx %x %x\n",
2579 ctx->state == SPU_STATE_SAVED ? 'S' : 'R',
2580 ctx->flags,
2581 ctx->sched_flags,
2582 ctx->prio,
2583 ctx->time_slice,
2584 ctx->spu ? ctx->spu->number : -1,
2585 !list_empty(&ctx->rq) ? 'q' : ' ',
2586 ctx->csa.class_0_pending,
2587 ctx->csa.class_0_dar,
2588 ctx->csa.class_1_dsisr,
2589 mfc_control_RW,
2590 ctx->ops->runcntl_read(ctx),
2591 ctx->ops->status_read(ctx));
2592
2593 mutex_unlock(&ctx->state_mutex);
2594
2595 return 0;
2596}
2597
2598static int spufs_ctx_open(struct inode *inode, struct file *file)
2599{
2600 return single_open(file, spufs_show_ctx, SPUFS_I(inode)->i_ctx);
2601}
2602
2603static const struct file_operations spufs_ctx_fops = {
2604 .open = spufs_ctx_open,
2605 .read = seq_read,
2606 .llseek = seq_lseek,
2607 .release = single_release,
2608};
2609
2610struct spufs_tree_descr spufs_dir_contents[] = {
2559 { "capabilities", &spufs_caps_fops, 0444, }, 2611 { "capabilities", &spufs_caps_fops, 0444, },
2560 { "mem", &spufs_mem_fops, 0666, }, 2612 { "mem", &spufs_mem_fops, 0666, LS_SIZE, },
2561 { "regs", &spufs_regs_fops, 0666, }, 2613 { "regs", &spufs_regs_fops, 0666, sizeof(struct spu_reg128[128]), },
2562 { "mbox", &spufs_mbox_fops, 0444, }, 2614 { "mbox", &spufs_mbox_fops, 0444, },
2563 { "ibox", &spufs_ibox_fops, 0444, }, 2615 { "ibox", &spufs_ibox_fops, 0444, },
2564 { "wbox", &spufs_wbox_fops, 0222, }, 2616 { "wbox", &spufs_wbox_fops, 0222, },
2565 { "mbox_stat", &spufs_mbox_stat_fops, 0444, }, 2617 { "mbox_stat", &spufs_mbox_stat_fops, 0444, sizeof(u32), },
2566 { "ibox_stat", &spufs_ibox_stat_fops, 0444, }, 2618 { "ibox_stat", &spufs_ibox_stat_fops, 0444, sizeof(u32), },
2567 { "wbox_stat", &spufs_wbox_stat_fops, 0444, }, 2619 { "wbox_stat", &spufs_wbox_stat_fops, 0444, sizeof(u32), },
2568 { "signal1", &spufs_signal1_fops, 0666, }, 2620 { "signal1", &spufs_signal1_fops, 0666, },
2569 { "signal2", &spufs_signal2_fops, 0666, }, 2621 { "signal2", &spufs_signal2_fops, 0666, },
2570 { "signal1_type", &spufs_signal1_type, 0666, }, 2622 { "signal1_type", &spufs_signal1_type, 0666, },
2571 { "signal2_type", &spufs_signal2_type, 0666, }, 2623 { "signal2_type", &spufs_signal2_type, 0666, },
2572 { "cntl", &spufs_cntl_fops, 0666, }, 2624 { "cntl", &spufs_cntl_fops, 0666, },
2573 { "fpcr", &spufs_fpcr_fops, 0666, }, 2625 { "fpcr", &spufs_fpcr_fops, 0666, sizeof(struct spu_reg128), },
2574 { "lslr", &spufs_lslr_ops, 0444, }, 2626 { "lslr", &spufs_lslr_ops, 0444, },
2575 { "mfc", &spufs_mfc_fops, 0666, }, 2627 { "mfc", &spufs_mfc_fops, 0666, },
2576 { "mss", &spufs_mss_fops, 0666, }, 2628 { "mss", &spufs_mss_fops, 0666, },
@@ -2580,29 +2632,31 @@ struct tree_descr spufs_dir_contents[] = {
2580 { "decr_status", &spufs_decr_status_ops, 0666, }, 2632 { "decr_status", &spufs_decr_status_ops, 0666, },
2581 { "event_mask", &spufs_event_mask_ops, 0666, }, 2633 { "event_mask", &spufs_event_mask_ops, 0666, },
2582 { "event_status", &spufs_event_status_ops, 0444, }, 2634 { "event_status", &spufs_event_status_ops, 0444, },
2583 { "psmap", &spufs_psmap_fops, 0666, }, 2635 { "psmap", &spufs_psmap_fops, 0666, SPUFS_PS_MAP_SIZE, },
2584 { "phys-id", &spufs_id_ops, 0666, }, 2636 { "phys-id", &spufs_id_ops, 0666, },
2585 { "object-id", &spufs_object_id_ops, 0666, }, 2637 { "object-id", &spufs_object_id_ops, 0666, },
2586 { "mbox_info", &spufs_mbox_info_fops, 0444, }, 2638 { "mbox_info", &spufs_mbox_info_fops, 0444, sizeof(u32), },
2587 { "ibox_info", &spufs_ibox_info_fops, 0444, }, 2639 { "ibox_info", &spufs_ibox_info_fops, 0444, sizeof(u32), },
2588 { "wbox_info", &spufs_wbox_info_fops, 0444, }, 2640 { "wbox_info", &spufs_wbox_info_fops, 0444, sizeof(u32), },
2589 { "dma_info", &spufs_dma_info_fops, 0444, }, 2641 { "dma_info", &spufs_dma_info_fops, 0444,
2590 { "proxydma_info", &spufs_proxydma_info_fops, 0444, }, 2642 sizeof(struct spu_dma_info), },
2643 { "proxydma_info", &spufs_proxydma_info_fops, 0444,
2644 sizeof(struct spu_proxydma_info)},
2591 { "tid", &spufs_tid_fops, 0444, }, 2645 { "tid", &spufs_tid_fops, 0444, },
2592 { "stat", &spufs_stat_fops, 0444, }, 2646 { "stat", &spufs_stat_fops, 0444, },
2593 { "switch_log", &spufs_switch_log_fops, 0444 }, 2647 { "switch_log", &spufs_switch_log_fops, 0444 },
2594 {}, 2648 {},
2595}; 2649};
2596 2650
2597struct tree_descr spufs_dir_nosched_contents[] = { 2651struct spufs_tree_descr spufs_dir_nosched_contents[] = {
2598 { "capabilities", &spufs_caps_fops, 0444, }, 2652 { "capabilities", &spufs_caps_fops, 0444, },
2599 { "mem", &spufs_mem_fops, 0666, }, 2653 { "mem", &spufs_mem_fops, 0666, LS_SIZE, },
2600 { "mbox", &spufs_mbox_fops, 0444, }, 2654 { "mbox", &spufs_mbox_fops, 0444, },
2601 { "ibox", &spufs_ibox_fops, 0444, }, 2655 { "ibox", &spufs_ibox_fops, 0444, },
2602 { "wbox", &spufs_wbox_fops, 0222, }, 2656 { "wbox", &spufs_wbox_fops, 0222, },
2603 { "mbox_stat", &spufs_mbox_stat_fops, 0444, }, 2657 { "mbox_stat", &spufs_mbox_stat_fops, 0444, sizeof(u32), },
2604 { "ibox_stat", &spufs_ibox_stat_fops, 0444, }, 2658 { "ibox_stat", &spufs_ibox_stat_fops, 0444, sizeof(u32), },
2605 { "wbox_stat", &spufs_wbox_stat_fops, 0444, }, 2659 { "wbox_stat", &spufs_wbox_stat_fops, 0444, sizeof(u32), },
2606 { "signal1", &spufs_signal1_nosched_fops, 0222, }, 2660 { "signal1", &spufs_signal1_nosched_fops, 0222, },
2607 { "signal2", &spufs_signal2_nosched_fops, 0222, }, 2661 { "signal2", &spufs_signal2_nosched_fops, 0222, },
2608 { "signal1_type", &spufs_signal1_type, 0666, }, 2662 { "signal1_type", &spufs_signal1_type, 0666, },
@@ -2611,7 +2665,7 @@ struct tree_descr spufs_dir_nosched_contents[] = {
2611 { "mfc", &spufs_mfc_fops, 0666, }, 2665 { "mfc", &spufs_mfc_fops, 0666, },
2612 { "cntl", &spufs_cntl_fops, 0666, }, 2666 { "cntl", &spufs_cntl_fops, 0666, },
2613 { "npc", &spufs_npc_ops, 0666, }, 2667 { "npc", &spufs_npc_ops, 0666, },
2614 { "psmap", &spufs_psmap_fops, 0666, }, 2668 { "psmap", &spufs_psmap_fops, 0666, SPUFS_PS_MAP_SIZE, },
2615 { "phys-id", &spufs_id_ops, 0666, }, 2669 { "phys-id", &spufs_id_ops, 0666, },
2616 { "object-id", &spufs_object_id_ops, 0666, }, 2670 { "object-id", &spufs_object_id_ops, 0666, },
2617 { "tid", &spufs_tid_fops, 0444, }, 2671 { "tid", &spufs_tid_fops, 0444, },
@@ -2619,6 +2673,11 @@ struct tree_descr spufs_dir_nosched_contents[] = {
2619 {}, 2673 {},
2620}; 2674};
2621 2675
2676struct spufs_tree_descr spufs_dir_debug_contents[] = {
2677 { ".ctx", &spufs_ctx_fops, 0444, },
2678 {},
2679};
2680
2622struct spufs_coredump_reader spufs_coredump_read[] = { 2681struct spufs_coredump_reader spufs_coredump_read[] = {
2623 { "regs", __spufs_regs_read, NULL, sizeof(struct spu_reg128[128])}, 2682 { "regs", __spufs_regs_read, NULL, sizeof(struct spu_reg128[128])},
2624 { "fpcr", __spufs_fpcr_read, NULL, sizeof(struct spu_reg128) }, 2683 { "fpcr", __spufs_fpcr_read, NULL, sizeof(struct spu_reg128) },
diff --git a/arch/powerpc/platforms/cell/spufs/inode.c b/arch/powerpc/platforms/cell/spufs/inode.c
index f407b2471855..7123472801d9 100644
--- a/arch/powerpc/platforms/cell/spufs/inode.c
+++ b/arch/powerpc/platforms/cell/spufs/inode.c
@@ -42,10 +42,19 @@
42 42
43#include "spufs.h" 43#include "spufs.h"
44 44
45struct spufs_sb_info {
46 int debug;
47};
48
45static struct kmem_cache *spufs_inode_cache; 49static struct kmem_cache *spufs_inode_cache;
46char *isolated_loader; 50char *isolated_loader;
47static int isolated_loader_size; 51static int isolated_loader_size;
48 52
53static struct spufs_sb_info *spufs_get_sb_info(struct super_block *sb)
54{
55 return sb->s_fs_info;
56}
57
49static struct inode * 58static struct inode *
50spufs_alloc_inode(struct super_block *sb) 59spufs_alloc_inode(struct super_block *sb)
51{ 60{
@@ -109,7 +118,7 @@ spufs_setattr(struct dentry *dentry, struct iattr *attr)
109static int 118static int
110spufs_new_file(struct super_block *sb, struct dentry *dentry, 119spufs_new_file(struct super_block *sb, struct dentry *dentry,
111 const struct file_operations *fops, int mode, 120 const struct file_operations *fops, int mode,
112 struct spu_context *ctx) 121 size_t size, struct spu_context *ctx)
113{ 122{
114 static struct inode_operations spufs_file_iops = { 123 static struct inode_operations spufs_file_iops = {
115 .setattr = spufs_setattr, 124 .setattr = spufs_setattr,
@@ -125,6 +134,7 @@ spufs_new_file(struct super_block *sb, struct dentry *dentry,
125 ret = 0; 134 ret = 0;
126 inode->i_op = &spufs_file_iops; 135 inode->i_op = &spufs_file_iops;
127 inode->i_fop = fops; 136 inode->i_fop = fops;
137 inode->i_size = size;
128 inode->i_private = SPUFS_I(inode)->i_ctx = get_spu_context(ctx); 138 inode->i_private = SPUFS_I(inode)->i_ctx = get_spu_context(ctx);
129 d_add(dentry, inode); 139 d_add(dentry, inode);
130out: 140out:
@@ -177,7 +187,7 @@ static int spufs_rmdir(struct inode *parent, struct dentry *dir)
177 return simple_rmdir(parent, dir); 187 return simple_rmdir(parent, dir);
178} 188}
179 189
180static int spufs_fill_dir(struct dentry *dir, struct tree_descr *files, 190static int spufs_fill_dir(struct dentry *dir, struct spufs_tree_descr *files,
181 int mode, struct spu_context *ctx) 191 int mode, struct spu_context *ctx)
182{ 192{
183 struct dentry *dentry, *tmp; 193 struct dentry *dentry, *tmp;
@@ -189,7 +199,7 @@ static int spufs_fill_dir(struct dentry *dir, struct tree_descr *files,
189 if (!dentry) 199 if (!dentry)
190 goto out; 200 goto out;
191 ret = spufs_new_file(dir->d_sb, dentry, files->ops, 201 ret = spufs_new_file(dir->d_sb, dentry, files->ops,
192 files->mode & mode, ctx); 202 files->mode & mode, files->size, ctx);
193 if (ret) 203 if (ret)
194 goto out; 204 goto out;
195 files++; 205 files++;
@@ -279,6 +289,13 @@ spufs_mkdir(struct inode *dir, struct dentry *dentry, unsigned int flags,
279 if (ret) 289 if (ret)
280 goto out_free_ctx; 290 goto out_free_ctx;
281 291
292 if (spufs_get_sb_info(dir->i_sb)->debug)
293 ret = spufs_fill_dir(dentry, spufs_dir_debug_contents,
294 mode, ctx);
295
296 if (ret)
297 goto out_free_ctx;
298
282 d_instantiate(dentry, inode); 299 d_instantiate(dentry, inode);
283 dget(dentry); 300 dget(dentry);
284 dir->i_nlink++; 301 dir->i_nlink++;
@@ -639,18 +656,19 @@ out:
639 656
640/* File system initialization */ 657/* File system initialization */
641enum { 658enum {
642 Opt_uid, Opt_gid, Opt_mode, Opt_err, 659 Opt_uid, Opt_gid, Opt_mode, Opt_debug, Opt_err,
643}; 660};
644 661
645static match_table_t spufs_tokens = { 662static match_table_t spufs_tokens = {
646 { Opt_uid, "uid=%d" }, 663 { Opt_uid, "uid=%d" },
647 { Opt_gid, "gid=%d" }, 664 { Opt_gid, "gid=%d" },
648 { Opt_mode, "mode=%o" }, 665 { Opt_mode, "mode=%o" },
649 { Opt_err, NULL }, 666 { Opt_debug, "debug" },
667 { Opt_err, NULL },
650}; 668};
651 669
652static int 670static int
653spufs_parse_options(char *options, struct inode *root) 671spufs_parse_options(struct super_block *sb, char *options, struct inode *root)
654{ 672{
655 char *p; 673 char *p;
656 substring_t args[MAX_OPT_ARGS]; 674 substring_t args[MAX_OPT_ARGS];
@@ -678,6 +696,9 @@ spufs_parse_options(char *options, struct inode *root)
678 return 0; 696 return 0;
679 root->i_mode = option | S_IFDIR; 697 root->i_mode = option | S_IFDIR;
680 break; 698 break;
699 case Opt_debug:
700 spufs_get_sb_info(sb)->debug = 1;
701 break;
681 default: 702 default:
682 return 0; 703 return 0;
683 } 704 }
@@ -736,7 +757,7 @@ spufs_create_root(struct super_block *sb, void *data)
736 SPUFS_I(inode)->i_ctx = NULL; 757 SPUFS_I(inode)->i_ctx = NULL;
737 758
738 ret = -EINVAL; 759 ret = -EINVAL;
739 if (!spufs_parse_options(data, inode)) 760 if (!spufs_parse_options(sb, data, inode))
740 goto out_iput; 761 goto out_iput;
741 762
742 ret = -ENOMEM; 763 ret = -ENOMEM;
@@ -754,6 +775,7 @@ out:
754static int 775static int
755spufs_fill_super(struct super_block *sb, void *data, int silent) 776spufs_fill_super(struct super_block *sb, void *data, int silent)
756{ 777{
778 struct spufs_sb_info *info;
757 static struct super_operations s_ops = { 779 static struct super_operations s_ops = {
758 .alloc_inode = spufs_alloc_inode, 780 .alloc_inode = spufs_alloc_inode,
759 .destroy_inode = spufs_destroy_inode, 781 .destroy_inode = spufs_destroy_inode,
@@ -765,11 +787,16 @@ spufs_fill_super(struct super_block *sb, void *data, int silent)
765 787
766 save_mount_options(sb, data); 788 save_mount_options(sb, data);
767 789
790 info = kzalloc(sizeof(*info), GFP_KERNEL);
791 if (!info)
792 return -ENOMEM;
793
768 sb->s_maxbytes = MAX_LFS_FILESIZE; 794 sb->s_maxbytes = MAX_LFS_FILESIZE;
769 sb->s_blocksize = PAGE_CACHE_SIZE; 795 sb->s_blocksize = PAGE_CACHE_SIZE;
770 sb->s_blocksize_bits = PAGE_CACHE_SHIFT; 796 sb->s_blocksize_bits = PAGE_CACHE_SHIFT;
771 sb->s_magic = SPUFS_MAGIC; 797 sb->s_magic = SPUFS_MAGIC;
772 sb->s_op = &s_ops; 798 sb->s_op = &s_ops;
799 sb->s_fs_info = info;
773 800
774 return spufs_create_root(sb, data); 801 return spufs_create_root(sb, data);
775} 802}
diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c
index e929e70a84e3..34654743363d 100644
--- a/arch/powerpc/platforms/cell/spufs/sched.c
+++ b/arch/powerpc/platforms/cell/spufs/sched.c
@@ -899,7 +899,8 @@ static noinline void spusched_tick(struct spu_context *ctx)
899 spu_add_to_rq(ctx); 899 spu_add_to_rq(ctx);
900 } else { 900 } else {
901 spu_context_nospu_trace(spusched_tick__newslice, ctx); 901 spu_context_nospu_trace(spusched_tick__newslice, ctx);
902 ctx->time_slice++; 902 if (!ctx->time_slice)
903 ctx->time_slice++;
903 } 904 }
904out: 905out:
905 spu_release(ctx); 906 spu_release(ctx);
@@ -993,6 +994,7 @@ void spuctx_switch_state(struct spu_context *ctx,
993 struct timespec ts; 994 struct timespec ts;
994 struct spu *spu; 995 struct spu *spu;
995 enum spu_utilization_state old_state; 996 enum spu_utilization_state old_state;
997 int node;
996 998
997 ktime_get_ts(&ts); 999 ktime_get_ts(&ts);
998 curtime = timespec_to_ns(&ts); 1000 curtime = timespec_to_ns(&ts);
@@ -1014,6 +1016,11 @@ void spuctx_switch_state(struct spu_context *ctx,
1014 spu->stats.times[old_state] += delta; 1016 spu->stats.times[old_state] += delta;
1015 spu->stats.util_state = new_state; 1017 spu->stats.util_state = new_state;
1016 spu->stats.tstamp = curtime; 1018 spu->stats.tstamp = curtime;
1019 node = spu->node;
1020 if (old_state == SPU_UTIL_USER)
1021 atomic_dec(&cbe_spu_info[node].busy_spus);
1022 if (new_state == SPU_UTIL_USER);
1023 atomic_inc(&cbe_spu_info[node].busy_spus);
1017 } 1024 }
1018} 1025}
1019 1026
diff --git a/arch/powerpc/platforms/cell/spufs/spufs.h b/arch/powerpc/platforms/cell/spufs/spufs.h
index 454c277c1457..8ae8ef9dfc22 100644
--- a/arch/powerpc/platforms/cell/spufs/spufs.h
+++ b/arch/powerpc/platforms/cell/spufs/spufs.h
@@ -32,6 +32,13 @@
32#include <asm/spu_csa.h> 32#include <asm/spu_csa.h>
33#include <asm/spu_info.h> 33#include <asm/spu_info.h>
34 34
35#define SPUFS_PS_MAP_SIZE 0x20000
36#define SPUFS_MFC_MAP_SIZE 0x1000
37#define SPUFS_CNTL_MAP_SIZE 0x1000
38#define SPUFS_CNTL_MAP_SIZE 0x1000
39#define SPUFS_SIGNAL_MAP_SIZE PAGE_SIZE
40#define SPUFS_MSS_MAP_SIZE 0x1000
41
35/* The magic number for our file system */ 42/* The magic number for our file system */
36enum { 43enum {
37 SPUFS_MAGIC = 0x23c9b64e, 44 SPUFS_MAGIC = 0x23c9b64e,
@@ -228,8 +235,16 @@ struct spufs_inode_info {
228#define SPUFS_I(inode) \ 235#define SPUFS_I(inode) \
229 container_of(inode, struct spufs_inode_info, vfs_inode) 236 container_of(inode, struct spufs_inode_info, vfs_inode)
230 237
231extern struct tree_descr spufs_dir_contents[]; 238struct spufs_tree_descr {
232extern struct tree_descr spufs_dir_nosched_contents[]; 239 const char *name;
240 const struct file_operations *ops;
241 int mode;
242 size_t size;
243};
244
245extern struct spufs_tree_descr spufs_dir_contents[];
246extern struct spufs_tree_descr spufs_dir_nosched_contents[];
247extern struct spufs_tree_descr spufs_dir_debug_contents[];
233 248
234/* system call implementation */ 249/* system call implementation */
235extern struct spufs_calls spufs_calls; 250extern struct spufs_calls spufs_calls;
diff --git a/arch/powerpc/platforms/iseries/iommu.c b/arch/powerpc/platforms/iseries/iommu.c
index 11fa3c772ed5..ab5d8687c3cf 100644
--- a/arch/powerpc/platforms/iseries/iommu.c
+++ b/arch/powerpc/platforms/iseries/iommu.c
@@ -214,13 +214,13 @@ dma_addr_t iseries_hv_map(void *vaddr, size_t size,
214 enum dma_data_direction direction) 214 enum dma_data_direction direction)
215{ 215{
216 return iommu_map_single(NULL, &vio_iommu_table, vaddr, size, 216 return iommu_map_single(NULL, &vio_iommu_table, vaddr, size,
217 DMA_32BIT_MASK, direction); 217 DMA_32BIT_MASK, direction, NULL);
218} 218}
219 219
220void iseries_hv_unmap(dma_addr_t dma_handle, size_t size, 220void iseries_hv_unmap(dma_addr_t dma_handle, size_t size,
221 enum dma_data_direction direction) 221 enum dma_data_direction direction)
222{ 222{
223 iommu_unmap_single(&vio_iommu_table, dma_handle, size, direction); 223 iommu_unmap_single(&vio_iommu_table, dma_handle, size, direction, NULL);
224} 224}
225 225
226void __init iommu_vio_init(void) 226void __init iommu_vio_init(void)
diff --git a/arch/powerpc/platforms/ps3/system-bus.c b/arch/powerpc/platforms/ps3/system-bus.c
index 43c493fca2d0..d66c3628a112 100644
--- a/arch/powerpc/platforms/ps3/system-bus.c
+++ b/arch/powerpc/platforms/ps3/system-bus.c
@@ -349,9 +349,14 @@ static int ps3_system_bus_match(struct device *_dev,
349 349
350 result = dev->match_id == drv->match_id; 350 result = dev->match_id == drv->match_id;
351 351
352 pr_info("%s:%d: dev=%u(%s), drv=%u(%s): %s\n", __func__, __LINE__, 352 if (result)
353 dev->match_id, dev->core.bus_id, drv->match_id, drv->core.name, 353 pr_info("%s:%d: dev=%u(%s), drv=%u(%s): match\n", __func__,
354 (result ? "match" : "miss")); 354 __LINE__, dev->match_id, dev->core.bus_id,
355 drv->match_id, drv->core.name);
356 else
357 pr_debug("%s:%d: dev=%u(%s), drv=%u(%s): miss\n", __func__,
358 __LINE__, dev->match_id, dev->core.bus_id,
359 drv->match_id, drv->core.name);
355 return result; 360 return result;
356} 361}
357 362
@@ -362,7 +367,7 @@ static int ps3_system_bus_probe(struct device *_dev)
362 struct ps3_system_bus_driver *drv; 367 struct ps3_system_bus_driver *drv;
363 368
364 BUG_ON(!dev); 369 BUG_ON(!dev);
365 pr_info(" -> %s:%d: %s\n", __func__, __LINE__, _dev->bus_id); 370 pr_debug(" -> %s:%d: %s\n", __func__, __LINE__, _dev->bus_id);
366 371
367 drv = ps3_system_bus_dev_to_system_bus_drv(dev); 372 drv = ps3_system_bus_dev_to_system_bus_drv(dev);
368 BUG_ON(!drv); 373 BUG_ON(!drv);
@@ -370,10 +375,10 @@ static int ps3_system_bus_probe(struct device *_dev)
370 if (drv->probe) 375 if (drv->probe)
371 result = drv->probe(dev); 376 result = drv->probe(dev);
372 else 377 else
373 pr_info("%s:%d: %s no probe method\n", __func__, __LINE__, 378 pr_debug("%s:%d: %s no probe method\n", __func__, __LINE__,
374 dev->core.bus_id); 379 dev->core.bus_id);
375 380
376 pr_info(" <- %s:%d: %s\n", __func__, __LINE__, dev->core.bus_id); 381 pr_debug(" <- %s:%d: %s\n", __func__, __LINE__, dev->core.bus_id);
377 return result; 382 return result;
378} 383}
379 384
@@ -384,7 +389,7 @@ static int ps3_system_bus_remove(struct device *_dev)
384 struct ps3_system_bus_driver *drv; 389 struct ps3_system_bus_driver *drv;
385 390
386 BUG_ON(!dev); 391 BUG_ON(!dev);
387 pr_info(" -> %s:%d: %s\n", __func__, __LINE__, _dev->bus_id); 392 pr_debug(" -> %s:%d: %s\n", __func__, __LINE__, _dev->bus_id);
388 393
389 drv = ps3_system_bus_dev_to_system_bus_drv(dev); 394 drv = ps3_system_bus_dev_to_system_bus_drv(dev);
390 BUG_ON(!drv); 395 BUG_ON(!drv);
@@ -395,7 +400,7 @@ static int ps3_system_bus_remove(struct device *_dev)
395 dev_dbg(&dev->core, "%s:%d %s: no remove method\n", 400 dev_dbg(&dev->core, "%s:%d %s: no remove method\n",
396 __func__, __LINE__, drv->core.name); 401 __func__, __LINE__, drv->core.name);
397 402
398 pr_info(" <- %s:%d: %s\n", __func__, __LINE__, dev->core.bus_id); 403 pr_debug(" <- %s:%d: %s\n", __func__, __LINE__, dev->core.bus_id);
399 return result; 404 return result;
400} 405}
401 406
@@ -550,7 +555,7 @@ static void ps3_free_coherent(struct device *_dev, size_t size, void *vaddr,
550 */ 555 */
551 556
552static dma_addr_t ps3_sb_map_single(struct device *_dev, void *ptr, size_t size, 557static dma_addr_t ps3_sb_map_single(struct device *_dev, void *ptr, size_t size,
553 enum dma_data_direction direction) 558 enum dma_data_direction direction, struct dma_attrs *attrs)
554{ 559{
555 struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev); 560 struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev);
556 int result; 561 int result;
@@ -570,7 +575,8 @@ static dma_addr_t ps3_sb_map_single(struct device *_dev, void *ptr, size_t size,
570 575
571static dma_addr_t ps3_ioc0_map_single(struct device *_dev, void *ptr, 576static dma_addr_t ps3_ioc0_map_single(struct device *_dev, void *ptr,
572 size_t size, 577 size_t size,
573 enum dma_data_direction direction) 578 enum dma_data_direction direction,
579 struct dma_attrs *attrs)
574{ 580{
575 struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev); 581 struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev);
576 int result; 582 int result;
@@ -603,7 +609,7 @@ static dma_addr_t ps3_ioc0_map_single(struct device *_dev, void *ptr,
603} 609}
604 610
605static void ps3_unmap_single(struct device *_dev, dma_addr_t dma_addr, 611static void ps3_unmap_single(struct device *_dev, dma_addr_t dma_addr,
606 size_t size, enum dma_data_direction direction) 612 size_t size, enum dma_data_direction direction, struct dma_attrs *attrs)
607{ 613{
608 struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev); 614 struct ps3_system_bus_device *dev = ps3_dev_to_system_bus_dev(_dev);
609 int result; 615 int result;
@@ -617,7 +623,7 @@ static void ps3_unmap_single(struct device *_dev, dma_addr_t dma_addr,
617} 623}
618 624
619static int ps3_sb_map_sg(struct device *_dev, struct scatterlist *sgl, 625static int ps3_sb_map_sg(struct device *_dev, struct scatterlist *sgl,
620 int nents, enum dma_data_direction direction) 626 int nents, enum dma_data_direction direction, struct dma_attrs *attrs)
621{ 627{
622#if defined(CONFIG_PS3_DYNAMIC_DMA) 628#if defined(CONFIG_PS3_DYNAMIC_DMA)
623 BUG_ON("do"); 629 BUG_ON("do");
@@ -646,14 +652,15 @@ static int ps3_sb_map_sg(struct device *_dev, struct scatterlist *sgl,
646 652
647static int ps3_ioc0_map_sg(struct device *_dev, struct scatterlist *sg, 653static int ps3_ioc0_map_sg(struct device *_dev, struct scatterlist *sg,
648 int nents, 654 int nents,
649 enum dma_data_direction direction) 655 enum dma_data_direction direction,
656 struct dma_attrs *attrs)
650{ 657{
651 BUG(); 658 BUG();
652 return 0; 659 return 0;
653} 660}
654 661
655static void ps3_sb_unmap_sg(struct device *_dev, struct scatterlist *sg, 662static void ps3_sb_unmap_sg(struct device *_dev, struct scatterlist *sg,
656 int nents, enum dma_data_direction direction) 663 int nents, enum dma_data_direction direction, struct dma_attrs *attrs)
657{ 664{
658#if defined(CONFIG_PS3_DYNAMIC_DMA) 665#if defined(CONFIG_PS3_DYNAMIC_DMA)
659 BUG_ON("do"); 666 BUG_ON("do");
@@ -661,7 +668,8 @@ static void ps3_sb_unmap_sg(struct device *_dev, struct scatterlist *sg,
661} 668}
662 669
663static void ps3_ioc0_unmap_sg(struct device *_dev, struct scatterlist *sg, 670static void ps3_ioc0_unmap_sg(struct device *_dev, struct scatterlist *sg,
664 int nents, enum dma_data_direction direction) 671 int nents, enum dma_data_direction direction,
672 struct dma_attrs *attrs)
665{ 673{
666 BUG(); 674 BUG();
667} 675}
diff --git a/arch/powerpc/platforms/pseries/eeh.c b/arch/powerpc/platforms/pseries/eeh.c
index 6f544ba4b37f..c027f0a70a04 100644
--- a/arch/powerpc/platforms/pseries/eeh.c
+++ b/arch/powerpc/platforms/pseries/eeh.c
@@ -812,6 +812,7 @@ int rtas_set_slot_reset(struct pci_dn *pdn)
812static inline void __restore_bars (struct pci_dn *pdn) 812static inline void __restore_bars (struct pci_dn *pdn)
813{ 813{
814 int i; 814 int i;
815 u32 cmd;
815 816
816 if (NULL==pdn->phb) return; 817 if (NULL==pdn->phb) return;
817 for (i=4; i<10; i++) { 818 for (i=4; i<10; i++) {
@@ -832,6 +833,19 @@ static inline void __restore_bars (struct pci_dn *pdn)
832 833
833 /* max latency, min grant, interrupt pin and line */ 834 /* max latency, min grant, interrupt pin and line */
834 rtas_write_config(pdn, 15*4, 4, pdn->config_space[15]); 835 rtas_write_config(pdn, 15*4, 4, pdn->config_space[15]);
836
837 /* Restore PERR & SERR bits, some devices require it,
838 don't touch the other command bits */
839 rtas_read_config(pdn, PCI_COMMAND, 4, &cmd);
840 if (pdn->config_space[1] & PCI_COMMAND_PARITY)
841 cmd |= PCI_COMMAND_PARITY;
842 else
843 cmd &= ~PCI_COMMAND_PARITY;
844 if (pdn->config_space[1] & PCI_COMMAND_SERR)
845 cmd |= PCI_COMMAND_SERR;
846 else
847 cmd &= ~PCI_COMMAND_SERR;
848 rtas_write_config(pdn, PCI_COMMAND, 4, cmd);
835} 849}
836 850
837/** 851/**
diff --git a/arch/powerpc/platforms/pseries/lpar.c b/arch/powerpc/platforms/pseries/lpar.c
index 3b4651b6ee05..38b5927b3629 100644
--- a/arch/powerpc/platforms/pseries/lpar.c
+++ b/arch/powerpc/platforms/pseries/lpar.c
@@ -305,7 +305,8 @@ static long pSeries_lpar_hpte_insert(unsigned long hpte_group,
305 flags = 0; 305 flags = 0;
306 306
307 /* Make pHyp happy */ 307 /* Make pHyp happy */
308 if (rflags & (_PAGE_GUARDED|_PAGE_NO_CACHE)) 308 if ((rflags & _PAGE_GUARDED) ||
309 ((rflags & _PAGE_NO_CACHE) & !(rflags & _PAGE_WRITETHRU)))
309 hpte_r &= ~_PAGE_COHERENT; 310 hpte_r &= ~_PAGE_COHERENT;
310 311
311 lpar_rc = plpar_pte_enter(flags, hpte_group, hpte_v, hpte_r, &slot); 312 lpar_rc = plpar_pte_enter(flags, hpte_group, hpte_v, hpte_r, &slot);
diff --git a/arch/powerpc/sysdev/cpm_common.c b/arch/powerpc/sysdev/cpm_common.c
index 9b75d164bdf9..e4b7296acb2c 100644
--- a/arch/powerpc/sysdev/cpm_common.c
+++ b/arch/powerpc/sysdev/cpm_common.c
@@ -37,7 +37,7 @@ static void udbg_putc_cpm(char c)
37 u8 __iomem *txbuf = (u8 __iomem __force *)in_be32(&cpm_udbg_txdesc[1]); 37 u8 __iomem *txbuf = (u8 __iomem __force *)in_be32(&cpm_udbg_txdesc[1]);
38 38
39 if (c == '\n') 39 if (c == '\n')
40 udbg_putc('\r'); 40 udbg_putc_cpm('\r');
41 41
42 while (in_be32(&cpm_udbg_txdesc[0]) & 0x80000000) 42 while (in_be32(&cpm_udbg_txdesc[0]) & 0x80000000)
43 ; 43 ;
@@ -53,7 +53,6 @@ void __init udbg_init_cpm(void)
53 setbat(1, 0xf0000000, 0xf0000000, 1024*1024, _PAGE_IO); 53 setbat(1, 0xf0000000, 0xf0000000, 1024*1024, _PAGE_IO);
54#endif 54#endif
55 udbg_putc = udbg_putc_cpm; 55 udbg_putc = udbg_putc_cpm;
56 udbg_putc('X');
57 } 56 }
58} 57}
59#endif 58#endif
diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
index 489ca5a397b1..87b0aa13ab48 100644
--- a/arch/powerpc/sysdev/fsl_pci.c
+++ b/arch/powerpc/sysdev/fsl_pci.c
@@ -243,6 +243,8 @@ DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8544E, quirk_fsl_pcie_header);
243DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8544, quirk_fsl_pcie_header); 243DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8544, quirk_fsl_pcie_header);
244DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8572E, quirk_fsl_pcie_header); 244DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8572E, quirk_fsl_pcie_header);
245DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8572, quirk_fsl_pcie_header); 245DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8572, quirk_fsl_pcie_header);
246DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8536E, quirk_fsl_pcie_header);
247DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8536, quirk_fsl_pcie_header);
246DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8641, quirk_fsl_pcie_header); 248DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8641, quirk_fsl_pcie_header);
247DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8641D, quirk_fsl_pcie_header); 249DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8641D, quirk_fsl_pcie_header);
248DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8610, quirk_fsl_pcie_header); 250DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8610, quirk_fsl_pcie_header);