diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2008-07-14 21:54:57 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2008-07-14 21:54:57 -0400 |
commit | 930074b6b9c4895d20cdadba5aff97907e28728d (patch) | |
tree | 3725eca121188f2e9c3b8bb4d4b8ba35e92640c7 | |
parent | 3fd44736db9a5bf33e4a216b9cd43c9cfd57c459 (diff) | |
parent | 2bf3016f89344d4cd8b2c96bbec2b642a2bde413 (diff) |
Merge commit 'jwb/jwb-next'
-rw-r--r-- | Documentation/powerpc/bootwrapper.txt | 141 | ||||
-rw-r--r-- | arch/powerpc/Kconfig | 13 | ||||
-rw-r--r-- | arch/powerpc/Makefile | 15 | ||||
-rw-r--r-- | arch/powerpc/boot/Makefile | 5 | ||||
-rw-r--r-- | arch/powerpc/boot/dts/virtex440-ml507.dts | 296 | ||||
-rw-r--r-- | arch/powerpc/boot/simpleboot.c | 6 | ||||
-rw-r--r-- | arch/powerpc/boot/virtex.c | 100 | ||||
-rwxr-xr-x | arch/powerpc/boot/wrapper | 10 | ||||
-rw-r--r-- | arch/powerpc/configs/44x/virtex5_defconfig | 1107 | ||||
-rw-r--r-- | arch/powerpc/configs/ppc44x_defconfig | 149 | ||||
-rw-r--r-- | arch/powerpc/kernel/cputable.c | 10 | ||||
-rw-r--r-- | arch/powerpc/kernel/head_44x.S | 286 | ||||
-rw-r--r-- | arch/powerpc/kernel/head_booke.h | 8 | ||||
-rw-r--r-- | arch/powerpc/mm/44x_mmu.c | 29 | ||||
-rw-r--r-- | arch/powerpc/mm/fault.c | 3 | ||||
-rw-r--r-- | arch/powerpc/mm/init_32.c | 4 | ||||
-rw-r--r-- | arch/powerpc/mm/mem.c | 8 | ||||
-rw-r--r-- | arch/powerpc/mm/mmu_decl.h | 4 | ||||
-rw-r--r-- | arch/powerpc/platforms/44x/Kconfig | 26 | ||||
-rw-r--r-- | arch/powerpc/platforms/44x/Makefile | 1 | ||||
-rw-r--r-- | arch/powerpc/platforms/44x/virtex.c | 60 | ||||
-rw-r--r-- | arch/powerpc/platforms/44x/warp-nand.c | 9 | ||||
-rw-r--r-- | include/asm-powerpc/pgtable-ppc32.h | 61 |
23 files changed, 2086 insertions, 265 deletions
diff --git a/Documentation/powerpc/bootwrapper.txt b/Documentation/powerpc/bootwrapper.txt new file mode 100644 index 00000000000..d60fced5e1c --- /dev/null +++ b/Documentation/powerpc/bootwrapper.txt | |||
@@ -0,0 +1,141 @@ | |||
1 | The PowerPC boot wrapper | ||
2 | ------------------------ | ||
3 | Copyright (C) Secret Lab Technologies Ltd. | ||
4 | |||
5 | PowerPC image targets compresses and wraps the kernel image (vmlinux) with | ||
6 | a boot wrapper to make it usable by the system firmware. There is no | ||
7 | standard PowerPC firmware interface, so the boot wrapper is designed to | ||
8 | be adaptable for each kind of image that needs to be built. | ||
9 | |||
10 | The boot wrapper can be found in the arch/powerpc/boot/ directory. The | ||
11 | Makefile in that directory has targets for all the available image types. | ||
12 | The different image types are used to support all of the various firmware | ||
13 | interfaces found on PowerPC platforms. OpenFirmware is the most commonly | ||
14 | used firmware type on general purpose PowerPC systems from Apple, IBM and | ||
15 | others. U-Boot is typically found on embedded PowerPC hardware, but there | ||
16 | are a handful of other firmware implementations which are also popular. Each | ||
17 | firmware interface requires a different image format. | ||
18 | |||
19 | The boot wrapper is built from the makefile in arch/powerpc/boot/Makefile and | ||
20 | it uses the wrapper script (arch/powerpc/boot/wrapper) to generate target | ||
21 | image. The details of the build system is discussed in the next section. | ||
22 | Currently, the following image format targets exist: | ||
23 | |||
24 | cuImage.%: Backwards compatible uImage for older version of | ||
25 | U-Boot (for versions that don't understand the device | ||
26 | tree). This image embeds a device tree blob inside | ||
27 | the image. The boot wrapper, kernel and device tree | ||
28 | are all embedded inside the U-Boot uImage file format | ||
29 | with boot wrapper code that extracts data from the old | ||
30 | bd_info structure and loads the data into the device | ||
31 | tree before jumping into the kernel. | ||
32 | Because of the series of #ifdefs found in the | ||
33 | bd_info structure used in the old U-Boot interfaces, | ||
34 | cuImages are platform specific. Each specific | ||
35 | U-Boot platform has a different platform init file | ||
36 | which populates the embedded device tree with data | ||
37 | from the platform specific bd_info file. The platform | ||
38 | specific cuImage platform init code can be found in | ||
39 | arch/powerpc/boot/cuboot.*.c. Selection of the correct | ||
40 | cuImage init code for a specific board can be found in | ||
41 | the wrapper structure. | ||
42 | dtbImage.%: Similar to zImage, except device tree blob is embedded | ||
43 | inside the image instead of provided by firmware. The | ||
44 | output image file can be either an elf file or a flat | ||
45 | binary depending on the platform. | ||
46 | dtbImages are used on systems which do not have an | ||
47 | interface for passing a device tree directly. | ||
48 | dtbImages are similar to simpleImages except that | ||
49 | dtbImages have platform specific code for extracting | ||
50 | data from the board firmware, but simpleImages do not | ||
51 | talk to the firmware at all. | ||
52 | PlayStation 3 support uses dtbImage. So do Embedded | ||
53 | Planet boards using the PlanetCore firmware. Board | ||
54 | specific initialization code is typically found in a | ||
55 | file named arch/powerpc/boot/<platform>.c; but this | ||
56 | can be overridden by the wrapper script. | ||
57 | simpleImage.%: Firmware independent compressed image that does not | ||
58 | depend on any particular firmware interface and embeds | ||
59 | a device tree blob. This image is a flat binary that | ||
60 | can be loaded to any location in RAM and jumped to. | ||
61 | Firmware cannot pass any configuration data to the | ||
62 | kernel with this image type and it depends entirely on | ||
63 | the embedded device tree for all information. | ||
64 | The simpleImage is useful for booting systems with | ||
65 | an unknown firmware interface or for booting from | ||
66 | a debugger when no firmware is present (such as on | ||
67 | the Xilinx Virtex platform). The only assumption that | ||
68 | simpleImage makes is that RAM is correctly initialized | ||
69 | and that the MMU is either off or has RAM mapped to | ||
70 | base address 0. | ||
71 | simpleImage also supports inserting special platform | ||
72 | specific initialization code to the start of the bootup | ||
73 | sequence. The virtex405 platform uses this feature to | ||
74 | ensure that the cache is invalidated before caching | ||
75 | is enabled. Platform specific initialization code is | ||
76 | added as part of the wrapper script and is keyed on | ||
77 | the image target name. For example, all | ||
78 | simpleImage.virtex405-* targets will add the | ||
79 | virtex405-head.S initialization code (This also means | ||
80 | that the dts file for virtex405 targets should be | ||
81 | named (virtex405-<board>.dts). Search the wrapper | ||
82 | script for 'virtex405' and see the file | ||
83 | arch/powerpc/boot/virtex405-head.S for details. | ||
84 | treeImage.%; Image format for used with OpenBIOS firmware found | ||
85 | on some ppc4xx hardware. This image embeds a device | ||
86 | tree blob inside the image. | ||
87 | uImage: Native image format used by U-Boot. The uImage target | ||
88 | does not add any boot code. It just wraps a compressed | ||
89 | vmlinux in the uImage data structure. This image | ||
90 | requires a version of U-Boot that is able to pass | ||
91 | a device tree to the kernel at boot. If using an older | ||
92 | version of U-Boot, then you need to use a cuImage | ||
93 | instead. | ||
94 | zImage.%: Image format which does not embed a device tree. | ||
95 | Used by OpenFirmware and other firmware interfaces | ||
96 | which are able to supply a device tree. This image | ||
97 | expects firmware to provide the device tree at boot. | ||
98 | Typically, if you have general purpose PowerPC | ||
99 | hardware then you want this image format. | ||
100 | |||
101 | Image types which embed a device tree blob (simpleImage, dtbImage, treeImage, | ||
102 | and cuImage) all generate the device tree blob from a file in the | ||
103 | arch/powerpc/boot/dts/ directory. The Makefile selects the correct device | ||
104 | tree source based on the name of the target. Therefore, if the kernel is | ||
105 | built with 'make treeImage.walnut simpleImage.virtex405-ml403', then the | ||
106 | build system will use arch/powerpc/boot/dts/walnut.dts to build | ||
107 | treeImage.walnut and arch/powerpc/boot/dts/virtex405-ml403.dts to build | ||
108 | the simpleImage.virtex405-ml403. | ||
109 | |||
110 | Two special targets called 'zImage' and 'zImage.initrd' also exist. These | ||
111 | targets build all the default images as selected by the kernel configuration. | ||
112 | Default images are selected by the boot wrapper Makefile | ||
113 | (arch/powerpc/boot/Makefile) by adding targets to the $image-y variable. Look | ||
114 | at the Makefile to see which default image targets are available. | ||
115 | |||
116 | How it is built | ||
117 | --------------- | ||
118 | arch/powerpc is designed to support multiplatform kernels, which means | ||
119 | that a single vmlinux image can be booted on many different target boards. | ||
120 | It also means that the boot wrapper must be able to wrap for many kinds of | ||
121 | images on a single build. The design decision was made to not use any | ||
122 | conditional compilation code (#ifdef, etc) in the boot wrapper source code. | ||
123 | All of the boot wrapper pieces are buildable at any time regardless of the | ||
124 | kernel configuration. Building all the wrapper bits on every kernel build | ||
125 | also ensures that obscure parts of the wrapper are at the very least compile | ||
126 | tested in a large variety of environments. | ||
127 | |||
128 | The wrapper is adapted for different image types at link time by linking in | ||
129 | just the wrapper bits that are appropriate for the image type. The 'wrapper | ||
130 | script' (found in arch/powerpc/boot/wrapper) is called by the Makefile and | ||
131 | is responsible for selecting the correct wrapper bits for the image type. | ||
132 | The arguments are well documented in the script's comment block, so they | ||
133 | are not repeated here. However, it is worth mentioning that the script | ||
134 | uses the -p (platform) argument as the main method of deciding which wrapper | ||
135 | bits to compile in. Look for the large 'case "$platform" in' block in the | ||
136 | middle of the script. This is also the place where platform specific fixups | ||
137 | can be selected by changing the link order. | ||
138 | |||
139 | In particular, care should be taken when working with cuImages. cuImage | ||
140 | wrapper bits are very board specific and care should be taken to make sure | ||
141 | the target you are trying to build is supported by the wrapper bits. | ||
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 462c86a4eef..aaf99892d1b 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
@@ -459,6 +459,19 @@ config CMDLINE | |||
459 | 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 |
460 | most cases you will need to specify the root device here. | 460 | most cases you will need to specify the root device here. |
461 | 461 | ||
462 | config 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 | |||
462 | if !44x || BROKEN | 475 | if !44x || BROKEN |
463 | config ARCH_WANTS_FREEZER_CONTROL | 476 | config ARCH_WANTS_FREEZER_CONTROL |
464 | def_bool y | 477 | def_bool y |
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index 59ae7d9cdcc..9155c9312c1 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 | ||
165 | define archhelp | 165 | define 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).' | ||
172 | endef | 185 | endef |
173 | 186 | ||
174 | install: | 187 | install: |
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index 0055edbc774..19f83c8f219 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 |
72 | src-boot := $(src-wlib) $(src-plat) empty.c | 72 | src-boot := $(src-wlib) $(src-plat) empty.c |
73 | 73 | ||
74 | src-boot := $(addprefix $(obj)/, $(src-boot)) | 74 | src-boot := $(addprefix $(obj)/, $(src-boot)) |
@@ -276,6 +276,9 @@ ifeq ($(CONFIG_PPC32),y) | |||
276 | image-$(CONFIG_PPC_PMAC) += zImage.coff zImage.miboot | 276 | image-$(CONFIG_PPC_PMAC) += zImage.coff zImage.miboot |
277 | endif | 277 | endif |
278 | 278 | ||
279 | # Allow extra targets to be added to the defconfig | ||
280 | image-y += $(subst ",,$(CONFIG_EXTRA_TARGETS)) | ||
281 | |||
279 | initrd- := $(patsubst zImage%, zImage.initrd%, $(image-n) $(image-)) | 282 | initrd- := $(patsubst zImage%, zImage.initrd%, $(image-n) $(image-)) |
280 | initrd-y := $(patsubst zImage%, zImage.initrd%, \ | 283 | initrd-y := $(patsubst zImage%, zImage.initrd%, \ |
281 | $(patsubst dtbImage%, dtbImage.initrd%, \ | 284 | $(patsubst dtbImage%, dtbImage.initrd%, \ |
diff --git a/arch/powerpc/boot/dts/virtex440-ml507.dts b/arch/powerpc/boot/dts/virtex440-ml507.dts new file mode 100644 index 00000000000..dc8e78e2dce --- /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 86cd285bccc..c58a0dada99 100644 --- a/arch/powerpc/boot/simpleboot.c +++ b/arch/powerpc/boot/simpleboot.c | |||
@@ -23,6 +23,8 @@ | |||
23 | 23 | ||
24 | BSS_STACK(4*1024); | 24 | BSS_STACK(4*1024); |
25 | 25 | ||
26 | extern int platform_specific_init(void) __attribute__((weak)); | ||
27 | |||
26 | void platform_init(unsigned long r3, unsigned long r4, unsigned long r5, | 28 | void 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 00000000000..f622805f800 --- /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 | |||
28 | static 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 **)®_base, 1) < 1) | ||
36 | return -1; | ||
37 | |||
38 | n = getprop(devp, "reg-offset", ®_offset, sizeof(reg_offset)); | ||
39 | if (n == sizeof(reg_offset)) | ||
40 | reg_base += reg_offset; | ||
41 | |||
42 | n = getprop(devp, "reg-shift", ®_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 | */ | ||
79 | int 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 df2358e9f1c..644bf9d4ea0 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 | ;; |
209 | simpleboot-virtex405-*) | 209 | simpleboot-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 | ;; | ||
213 | simpleboot-virtex440-*) | ||
214 | platformo="$object/simpleboot.o $object/virtex.o" | ||
215 | binary=y | ||
216 | ;; | ||
217 | simpleboot-*) | ||
218 | platformo="$object/simpleboot.o" | ||
211 | binary=y | 219 | binary=y |
212 | ;; | 220 | ;; |
213 | asp834x-redboot) | 221 | asp834x-redboot) |
diff --git a/arch/powerpc/configs/44x/virtex5_defconfig b/arch/powerpc/configs/44x/virtex5_defconfig new file mode 100644 index 00000000000..9c41f66b5a7 --- /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 | ||
15 | CONFIG_44x=y | ||
16 | # CONFIG_E200 is not set | ||
17 | CONFIG_4xx=y | ||
18 | CONFIG_BOOKE=y | ||
19 | CONFIG_PTE_64BIT=y | ||
20 | CONFIG_PHYS_64BIT=y | ||
21 | # CONFIG_PPC_MM_SLICES is not set | ||
22 | CONFIG_NOT_COHERENT_CACHE=y | ||
23 | CONFIG_PPC32=y | ||
24 | CONFIG_WORD_SIZE=32 | ||
25 | CONFIG_PPC_MERGE=y | ||
26 | CONFIG_MMU=y | ||
27 | CONFIG_GENERIC_CMOS_UPDATE=y | ||
28 | CONFIG_GENERIC_TIME=y | ||
29 | CONFIG_GENERIC_TIME_VSYSCALL=y | ||
30 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
31 | CONFIG_GENERIC_HARDIRQS=y | ||
32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | ||
33 | CONFIG_IRQ_PER_CPU=y | ||
34 | CONFIG_STACKTRACE_SUPPORT=y | ||
35 | CONFIG_LOCKDEP_SUPPORT=y | ||
36 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | ||
37 | CONFIG_ARCH_HAS_ILOG2_U32=y | ||
38 | CONFIG_GENERIC_HWEIGHT=y | ||
39 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
40 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
41 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | ||
42 | CONFIG_PPC=y | ||
43 | CONFIG_EARLY_PRINTK=y | ||
44 | CONFIG_GENERIC_NVRAM=y | ||
45 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
46 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
47 | CONFIG_PPC_OF=y | ||
48 | CONFIG_OF=y | ||
49 | CONFIG_PPC_UDBG_16550=y | ||
50 | # CONFIG_GENERIC_TBSYNC is not set | ||
51 | CONFIG_AUDIT_ARCH=y | ||
52 | CONFIG_GENERIC_BUG=y | ||
53 | # CONFIG_DEFAULT_UIMAGE is not set | ||
54 | CONFIG_PPC_DCR_NATIVE=y | ||
55 | # CONFIG_PPC_DCR_MMIO is not set | ||
56 | CONFIG_PPC_DCR=y | ||
57 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
58 | |||
59 | # | ||
60 | # General setup | ||
61 | # | ||
62 | CONFIG_EXPERIMENTAL=y | ||
63 | CONFIG_BROKEN_ON_SMP=y | ||
64 | CONFIG_LOCK_KERNEL=y | ||
65 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
66 | CONFIG_LOCALVERSION="" | ||
67 | # CONFIG_LOCALVERSION_AUTO is not set | ||
68 | CONFIG_SWAP=y | ||
69 | CONFIG_SYSVIPC=y | ||
70 | CONFIG_SYSVIPC_SYSCTL=y | ||
71 | CONFIG_POSIX_MQUEUE=y | ||
72 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
73 | # CONFIG_TASKSTATS is not set | ||
74 | # CONFIG_AUDIT is not set | ||
75 | CONFIG_IKCONFIG=y | ||
76 | CONFIG_IKCONFIG_PROC=y | ||
77 | CONFIG_LOG_BUF_SHIFT=14 | ||
78 | # CONFIG_CGROUPS is not set | ||
79 | # CONFIG_GROUP_SCHED is not set | ||
80 | CONFIG_SYSFS_DEPRECATED=y | ||
81 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
82 | # CONFIG_RELAY is not set | ||
83 | CONFIG_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 | ||
88 | CONFIG_BLK_DEV_INITRD=y | ||
89 | CONFIG_INITRAMFS_SOURCE="" | ||
90 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
91 | CONFIG_SYSCTL=y | ||
92 | # CONFIG_EMBEDDED is not set | ||
93 | CONFIG_SYSCTL_SYSCALL=y | ||
94 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
95 | CONFIG_KALLSYMS=y | ||
96 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
97 | CONFIG_HOTPLUG=y | ||
98 | CONFIG_PRINTK=y | ||
99 | CONFIG_BUG=y | ||
100 | CONFIG_ELF_CORE=y | ||
101 | CONFIG_COMPAT_BRK=y | ||
102 | CONFIG_BASE_FULL=y | ||
103 | CONFIG_FUTEX=y | ||
104 | CONFIG_ANON_INODES=y | ||
105 | CONFIG_EPOLL=y | ||
106 | CONFIG_SIGNALFD=y | ||
107 | CONFIG_TIMERFD=y | ||
108 | CONFIG_EVENTFD=y | ||
109 | CONFIG_SHMEM=y | ||
110 | CONFIG_VM_EVENT_COUNTERS=y | ||
111 | CONFIG_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 | ||
116 | CONFIG_HAVE_OPROFILE=y | ||
117 | # CONFIG_KPROBES is not set | ||
118 | CONFIG_HAVE_KPROBES=y | ||
119 | CONFIG_HAVE_KRETPROBES=y | ||
120 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
121 | CONFIG_PROC_PAGE_MONITOR=y | ||
122 | CONFIG_SLABINFO=y | ||
123 | CONFIG_RT_MUTEXES=y | ||
124 | # CONFIG_TINY_SHMEM is not set | ||
125 | CONFIG_BASE_SMALL=0 | ||
126 | CONFIG_MODULES=y | ||
127 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
128 | CONFIG_MODULE_UNLOAD=y | ||
129 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
130 | CONFIG_MODVERSIONS=y | ||
131 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
132 | CONFIG_KMOD=y | ||
133 | CONFIG_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 | # | ||
142 | CONFIG_IOSCHED_NOOP=y | ||
143 | CONFIG_IOSCHED_AS=y | ||
144 | CONFIG_IOSCHED_DEADLINE=y | ||
145 | CONFIG_IOSCHED_CFQ=y | ||
146 | # CONFIG_DEFAULT_AS is not set | ||
147 | # CONFIG_DEFAULT_DEADLINE is not set | ||
148 | CONFIG_DEFAULT_CFQ=y | ||
149 | # CONFIG_DEFAULT_NOOP is not set | ||
150 | CONFIG_DEFAULT_IOSCHED="cfq" | ||
151 | CONFIG_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 | ||
171 | CONFIG_XILINX_VIRTEX440_GENERIC_BOARD=y | ||
172 | CONFIG_XILINX_VIRTEX=y | ||
173 | CONFIG_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 | ||
194 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
195 | # CONFIG_HZ_100 is not set | ||
196 | CONFIG_HZ_250=y | ||
197 | # CONFIG_HZ_300 is not set | ||
198 | # CONFIG_HZ_1000 is not set | ||
199 | CONFIG_HZ=250 | ||
200 | # CONFIG_SCHED_HRTICK is not set | ||
201 | # CONFIG_PREEMPT_NONE is not set | ||
202 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
203 | CONFIG_PREEMPT=y | ||
204 | # CONFIG_PREEMPT_RCU is not set | ||
205 | CONFIG_BINFMT_ELF=y | ||
206 | # CONFIG_BINFMT_MISC is not set | ||
207 | CONFIG_MATH_EMULATION=y | ||
208 | # CONFIG_IOMMU_HELPER is not set | ||
209 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | ||
210 | CONFIG_ARCH_HAS_WALK_MEMORY=y | ||
211 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
212 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
213 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
214 | CONFIG_SELECT_MEMORY_MODEL=y | ||
215 | CONFIG_FLATMEM_MANUAL=y | ||
216 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
217 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
218 | CONFIG_FLATMEM=y | ||
219 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
220 | # CONFIG_SPARSEMEM_STATIC is not set | ||
221 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
222 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
223 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
224 | CONFIG_RESOURCES_64BIT=y | ||
225 | CONFIG_ZONE_DMA_FLAG=1 | ||
226 | CONFIG_BOUNCE=y | ||
227 | CONFIG_VIRT_TO_BUS=y | ||
228 | CONFIG_FORCE_MAX_ZONEORDER=11 | ||
229 | CONFIG_PROC_DEVICETREE=y | ||
230 | CONFIG_CMDLINE_BOOL=y | ||
231 | CONFIG_CMDLINE="" | ||
232 | CONFIG_EXTRA_TARGETS="" | ||
233 | CONFIG_SECCOMP=y | ||
234 | CONFIG_ISA_DMA_API=y | ||
235 | |||
236 | # | ||
237 | # Bus options | ||
238 | # | ||
239 | CONFIG_ZONE_DMA=y | ||
240 | CONFIG_PPC_INDIRECT_PCI=y | ||
241 | CONFIG_4xx_SOC=y | ||
242 | CONFIG_PCI=y | ||
243 | CONFIG_PCI_DOMAINS=y | ||
244 | CONFIG_PCI_SYSCALL=y | ||
245 | # CONFIG_PCIEPORTBUS is not set | ||
246 | CONFIG_ARCH_SUPPORTS_MSI=y | ||
247 | # CONFIG_PCI_MSI is not set | ||
248 | CONFIG_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 | # | ||
261 | CONFIG_LOWMEM_SIZE=0x30000000 | ||
262 | CONFIG_PAGE_OFFSET=0xc0000000 | ||
263 | CONFIG_KERNEL_START=0xc0000000 | ||
264 | CONFIG_PHYSICAL_START=0x00000000 | ||
265 | CONFIG_TASK_SIZE=0xc0000000 | ||
266 | CONFIG_CONSISTENT_START=0xff100000 | ||
267 | CONFIG_CONSISTENT_SIZE=0x00200000 | ||
268 | |||
269 | # | ||
270 | # Networking | ||
271 | # | ||
272 | CONFIG_NET=y | ||
273 | |||
274 | # | ||
275 | # Networking options | ||
276 | # | ||
277 | CONFIG_PACKET=y | ||
278 | # CONFIG_PACKET_MMAP is not set | ||
279 | CONFIG_UNIX=y | ||
280 | CONFIG_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 | ||
286 | CONFIG_INET=y | ||
287 | CONFIG_IP_MULTICAST=y | ||
288 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
289 | CONFIG_IP_FIB_HASH=y | ||
290 | CONFIG_IP_PNP=y | ||
291 | CONFIG_IP_PNP_DHCP=y | ||
292 | CONFIG_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 | ||
303 | CONFIG_INET_TUNNEL=m | ||
304 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
305 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
306 | CONFIG_INET_XFRM_MODE_BEET=y | ||
307 | # CONFIG_INET_LRO is not set | ||
308 | CONFIG_INET_DIAG=y | ||
309 | CONFIG_INET_TCP_DIAG=y | ||
310 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
311 | CONFIG_TCP_CONG_CUBIC=y | ||
312 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
313 | # CONFIG_TCP_MD5SIG is not set | ||
314 | # CONFIG_IP_VS is not set | ||
315 | CONFIG_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 | ||
325 | CONFIG_INET6_XFRM_MODE_TRANSPORT=m | ||
326 | CONFIG_INET6_XFRM_MODE_TUNNEL=m | ||
327 | CONFIG_INET6_XFRM_MODE_BEET=m | ||
328 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | ||
329 | CONFIG_IPV6_SIT=m | ||
330 | CONFIG_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 | ||
335 | CONFIG_NETFILTER=y | ||
336 | # CONFIG_NETFILTER_DEBUG is not set | ||
337 | CONFIG_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 | ||
345 | CONFIG_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 | ||
382 | CONFIG_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 | ||
388 | CONFIG_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 | ||
392 | CONFIG_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 | # | ||
446 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
447 | CONFIG_STANDALONE=y | ||
448 | CONFIG_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 | ||
453 | CONFIG_OF_DEVICE=y | ||
454 | CONFIG_OF_I2C=y | ||
455 | # CONFIG_PARPORT is not set | ||
456 | CONFIG_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 | ||
463 | CONFIG_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 | ||
467 | CONFIG_BLK_DEV_RAM=y | ||
468 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
469 | CONFIG_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 | ||
474 | CONFIG_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 | ||
480 | CONFIG_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 | ||
505 | CONFIG_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 | ||
515 | CONFIG_NET_ETHERNET=y | ||
516 | CONFIG_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 | ||
530 | CONFIG_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 | # | ||
573 | CONFIG_INPUT=y | ||
574 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
575 | # CONFIG_INPUT_POLLDEV is not set | ||
576 | |||
577 | # | ||
578 | # Userland interfaces | ||
579 | # | ||
580 | CONFIG_INPUT_MOUSEDEV=y | ||
581 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
582 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
583 | CONFIG_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 | # | ||
591 | CONFIG_INPUT_KEYBOARD=y | ||
592 | CONFIG_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 | ||
598 | CONFIG_INPUT_MOUSE=y | ||
599 | CONFIG_MOUSE_PS2=y | ||
600 | CONFIG_MOUSE_PS2_ALPS=y | ||
601 | CONFIG_MOUSE_PS2_LOGIPS2PP=y | ||
602 | CONFIG_MOUSE_PS2_SYNAPTICS=y | ||
603 | CONFIG_MOUSE_PS2_LIFEBOOK=y | ||
604 | CONFIG_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 | # | ||
616 | CONFIG_SERIO=y | ||
617 | # CONFIG_SERIO_I8042 is not set | ||
618 | CONFIG_SERIO_SERPORT=y | ||
619 | # CONFIG_SERIO_PCIPS2 is not set | ||
620 | CONFIG_SERIO_LIBPS2=y | ||
621 | # CONFIG_SERIO_RAW is not set | ||
622 | # CONFIG_GAMEPORT is not set | ||
623 | |||
624 | # | ||
625 | # Character devices | ||
626 | # | ||
627 | CONFIG_VT=y | ||
628 | CONFIG_VT_CONSOLE=y | ||
629 | CONFIG_HW_CONSOLE=y | ||
630 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
631 | CONFIG_DEVKMEM=y | ||
632 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
633 | # CONFIG_NOZOMI is not set | ||
634 | |||
635 | # | ||
636 | # Serial drivers | ||
637 | # | ||
638 | CONFIG_SERIAL_8250=y | ||
639 | CONFIG_SERIAL_8250_CONSOLE=y | ||
640 | CONFIG_SERIAL_8250_PCI=y | ||
641 | CONFIG_SERIAL_8250_NR_UARTS=4 | ||
642 | CONFIG_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 | ||
649 | CONFIG_SERIAL_CORE=y | ||
650 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
651 | # CONFIG_SERIAL_JSM is not set | ||
652 | CONFIG_SERIAL_OF_PLATFORM=y | ||
653 | CONFIG_UNIX98_PTYS=y | ||
654 | CONFIG_LEGACY_PTYS=y | ||
655 | CONFIG_LEGACY_PTY_COUNT=256 | ||
656 | # CONFIG_IPMI_HANDLER is not set | ||
657 | CONFIG_HW_RANDOM=m | ||
658 | # CONFIG_NVRAM is not set | ||
659 | # CONFIG_GEN_RTC is not set | ||
660 | CONFIG_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 | ||
665 | CONFIG_DEVPORT=y | ||
666 | CONFIG_I2C=y | ||
667 | CONFIG_I2C_BOARDINFO=y | ||
668 | CONFIG_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 | ||
709 | CONFIG_I2C_DEBUG_CORE=y | ||
710 | CONFIG_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 | # | ||
723 | CONFIG_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 | ||
755 | CONFIG_FB=y | ||
756 | # CONFIG_FIRMWARE_EDID is not set | ||
757 | # CONFIG_FB_DDC is not set | ||
758 | CONFIG_FB_CFB_FILLRECT=y | ||
759 | CONFIG_FB_CFB_COPYAREA=y | ||
760 | CONFIG_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 | ||
803 | CONFIG_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 | # | ||
815 | CONFIG_DUMMY_CONSOLE=y | ||
816 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
817 | # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set | ||
818 | # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set | ||
819 | CONFIG_FONTS=y | ||
820 | CONFIG_FONT_8x8=y | ||
821 | CONFIG_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 | ||
830 | CONFIG_LOGO=y | ||
831 | CONFIG_LOGO_LINUX_MONO=y | ||
832 | CONFIG_LOGO_LINUX_VGA16=y | ||
833 | CONFIG_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 | # | ||
854 | CONFIG_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 | ||
864 | CONFIG_DNOTIFY=y | ||
865 | CONFIG_INOTIFY=y | ||
866 | CONFIG_INOTIFY_USER=y | ||
867 | # CONFIG_QUOTA is not set | ||
868 | CONFIG_AUTOFS_FS=y | ||
869 | CONFIG_AUTOFS4_FS=y | ||
870 | CONFIG_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 | # | ||
881 | CONFIG_FAT_FS=y | ||
882 | CONFIG_MSDOS_FS=y | ||
883 | CONFIG_VFAT_FS=y | ||
884 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
885 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
886 | # CONFIG_NTFS_FS is not set | ||
887 | |||
888 | # | ||
889 | # Pseudo filesystems | ||
890 | # | ||
891 | CONFIG_PROC_FS=y | ||
892 | # CONFIG_PROC_KCORE is not set | ||
893 | CONFIG_PROC_SYSCTL=y | ||
894 | CONFIG_SYSFS=y | ||
895 | CONFIG_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 | ||
910 | CONFIG_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 | ||
915 | CONFIG_ROMFS_FS=y | ||
916 | # CONFIG_SYSV_FS is not set | ||
917 | # CONFIG_UFS_FS is not set | ||
918 | CONFIG_NETWORK_FILESYSTEMS=y | ||
919 | CONFIG_NFS_FS=y | ||
920 | CONFIG_NFS_V3=y | ||
921 | # CONFIG_NFS_V3_ACL is not set | ||
922 | # CONFIG_NFS_V4 is not set | ||
923 | CONFIG_NFSD=y | ||
924 | CONFIG_NFSD_V3=y | ||
925 | # CONFIG_NFSD_V3_ACL is not set | ||
926 | # CONFIG_NFSD_V4 is not set | ||
927 | CONFIG_ROOT_NFS=y | ||
928 | CONFIG_LOCKD=y | ||
929 | CONFIG_LOCKD_V4=y | ||
930 | CONFIG_EXPORTFS=y | ||
931 | CONFIG_NFS_COMMON=y | ||
932 | CONFIG_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 | ||
936 | CONFIG_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 | ||
947 | CONFIG_MSDOS_PARTITION=y | ||
948 | CONFIG_NLS=y | ||
949 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
950 | CONFIG_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 | ||
973 | CONFIG_NLS_ASCII=m | ||
974 | CONFIG_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 | ||
987 | CONFIG_NLS_UTF8=m | ||
988 | # CONFIG_DLM is not set | ||
989 | |||
990 | # | ||
991 | # Library routines | ||
992 | # | ||
993 | CONFIG_BITREVERSE=y | ||
994 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
995 | CONFIG_CRC_CCITT=y | ||
996 | # CONFIG_CRC16 is not set | ||
997 | # CONFIG_CRC_ITU_T is not set | ||
998 | CONFIG_CRC32=y | ||
999 | # CONFIG_CRC7 is not set | ||
1000 | # CONFIG_LIBCRC32C is not set | ||
1001 | CONFIG_ZLIB_INFLATE=y | ||
1002 | CONFIG_PLIST=y | ||
1003 | CONFIG_HAS_IOMEM=y | ||
1004 | CONFIG_HAS_IOPORT=y | ||
1005 | CONFIG_HAS_DMA=y | ||
1006 | CONFIG_HAVE_LMB=y | ||
1007 | |||
1008 | # | ||
1009 | # Kernel hacking | ||
1010 | # | ||
1011 | # CONFIG_PRINTK_TIME is not set | ||
1012 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
1013 | CONFIG_ENABLE_MUST_CHECK=y | ||
1014 | CONFIG_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 | ||
1020 | CONFIG_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 | ||
1031 | CONFIG_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 | ||
1104 | CONFIG_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/ppc44x_defconfig b/arch/powerpc/configs/ppc44x_defconfig index 12f9b5a8022..f9d279bb700 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 | |||
32 | CONFIG_GENERIC_HARDIRQS=y | 32 | CONFIG_GENERIC_HARDIRQS=y |
33 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 33 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
34 | CONFIG_IRQ_PER_CPU=y | 34 | CONFIG_IRQ_PER_CPU=y |
35 | CONFIG_STACKTRACE_SUPPORT=y | ||
36 | CONFIG_LOCKDEP_SUPPORT=y | ||
35 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 37 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
36 | CONFIG_ARCH_HAS_ILOG2_U32=y | 38 | CONFIG_ARCH_HAS_ILOG2_U32=y |
37 | CONFIG_GENERIC_HWEIGHT=y | 39 | CONFIG_GENERIC_HWEIGHT=y |
@@ -88,6 +90,7 @@ CONFIG_INITRAMFS_SOURCE="" | |||
88 | CONFIG_SYSCTL=y | 90 | CONFIG_SYSCTL=y |
89 | CONFIG_EMBEDDED=y | 91 | CONFIG_EMBEDDED=y |
90 | CONFIG_SYSCTL_SYSCALL=y | 92 | CONFIG_SYSCTL_SYSCALL=y |
93 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
91 | CONFIG_KALLSYMS=y | 94 | CONFIG_KALLSYMS=y |
92 | CONFIG_KALLSYMS_ALL=y | 95 | CONFIG_KALLSYMS_ALL=y |
93 | CONFIG_KALLSYMS_EXTRA_PASS=y | 96 | CONFIG_KALLSYMS_EXTRA_PASS=y |
@@ -115,12 +118,14 @@ CONFIG_HAVE_OPROFILE=y | |||
115 | # CONFIG_KPROBES is not set | 118 | # CONFIG_KPROBES is not set |
116 | CONFIG_HAVE_KPROBES=y | 119 | CONFIG_HAVE_KPROBES=y |
117 | CONFIG_HAVE_KRETPROBES=y | 120 | CONFIG_HAVE_KRETPROBES=y |
121 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
118 | CONFIG_PROC_PAGE_MONITOR=y | 122 | CONFIG_PROC_PAGE_MONITOR=y |
119 | CONFIG_SLABINFO=y | 123 | CONFIG_SLABINFO=y |
120 | CONFIG_RT_MUTEXES=y | 124 | CONFIG_RT_MUTEXES=y |
121 | # CONFIG_TINY_SHMEM is not set | 125 | # CONFIG_TINY_SHMEM is not set |
122 | CONFIG_BASE_SMALL=0 | 126 | CONFIG_BASE_SMALL=0 |
123 | CONFIG_MODULES=y | 127 | CONFIG_MODULES=y |
128 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
124 | CONFIG_MODULE_UNLOAD=y | 129 | CONFIG_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 |
158 | CONFIG_BAMBOO=y | 163 | CONFIG_BAMBOO=y |
159 | CONFIG_EBONY=y | 164 | CONFIG_EBONY=y |
165 | CONFIG_SAM440EP=y | ||
160 | CONFIG_SEQUOIA=y | 166 | CONFIG_SEQUOIA=y |
161 | CONFIG_TAISHAN=y | 167 | CONFIG_TAISHAN=y |
162 | CONFIG_KATMAI=y | 168 | CONFIG_KATMAI=y |
@@ -164,6 +170,7 @@ CONFIG_RAINIER=y | |||
164 | CONFIG_WARP=y | 170 | CONFIG_WARP=y |
165 | CONFIG_CANYONLANDS=y | 171 | CONFIG_CANYONLANDS=y |
166 | CONFIG_YOSEMITE=y | 172 | CONFIG_YOSEMITE=y |
173 | CONFIG_XILINX_VIRTEX440_GENERIC_BOARD=y | ||
167 | CONFIG_440EP=y | 174 | CONFIG_440EP=y |
168 | CONFIG_440EPX=y | 175 | CONFIG_440EPX=y |
169 | CONFIG_440GRX=y | 176 | CONFIG_440GRX=y |
@@ -172,6 +179,8 @@ CONFIG_440GX=y | |||
172 | CONFIG_440SPe=y | 179 | CONFIG_440SPe=y |
173 | CONFIG_460EX=y | 180 | CONFIG_460EX=y |
174 | CONFIG_IBM440EP_ERR42=y | 181 | CONFIG_IBM440EP_ERR42=y |
182 | CONFIG_XILINX_VIRTEX=y | ||
183 | CONFIG_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 | |||
220 | CONFIG_FLAT_NODE_MEM_MAP=y | 229 | CONFIG_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 |
232 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
223 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 233 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
224 | CONFIG_RESOURCES_64BIT=y | 234 | CONFIG_RESOURCES_64BIT=y |
225 | CONFIG_ZONE_DMA_FLAG=1 | 235 | CONFIG_ZONE_DMA_FLAG=1 |
226 | CONFIG_BOUNCE=y | 236 | CONFIG_BOUNCE=y |
227 | CONFIG_VIRT_TO_BUS=y | 237 | CONFIG_VIRT_TO_BUS=y |
238 | CONFIG_FORCE_MAX_ZONEORDER=11 | ||
228 | CONFIG_PROC_DEVICETREE=y | 239 | CONFIG_PROC_DEVICETREE=y |
229 | # CONFIG_CMDLINE_BOOL is not set | 240 | # CONFIG_CMDLINE_BOOL is not set |
241 | CONFIG_EXTRA_TARGETS="" | ||
230 | CONFIG_SECCOMP=y | 242 | CONFIG_SECCOMP=y |
231 | CONFIG_ISA_DMA_API=y | 243 | CONFIG_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 | # |
258 | CONFIG_HIGHMEM_START=0xfe000000 | ||
259 | CONFIG_LOWMEM_SIZE=0x30000000 | 271 | CONFIG_LOWMEM_SIZE=0x30000000 |
272 | CONFIG_PAGE_OFFSET=0xc0000000 | ||
260 | CONFIG_KERNEL_START=0xc0000000 | 273 | CONFIG_KERNEL_START=0xc0000000 |
274 | CONFIG_PHYSICAL_START=0x00000000 | ||
261 | CONFIG_TASK_SIZE=0xc0000000 | 275 | CONFIG_TASK_SIZE=0xc0000000 |
262 | CONFIG_CONSISTENT_START=0xff100000 | 276 | CONFIG_CONSISTENT_START=0xff100000 |
263 | CONFIG_CONSISTENT_SIZE=0x00200000 | 277 | CONFIG_CONSISTENT_SIZE=0x00200000 |
264 | CONFIG_BOOT_LOAD=0x01000000 | ||
265 | 278 | ||
266 | # | 279 | # |
267 | # Networking | 280 | # Networking |
@@ -303,8 +316,6 @@ CONFIG_TCP_CONG_CUBIC=y | |||
303 | CONFIG_DEFAULT_TCP_CONG="cubic" | 316 | CONFIG_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 |
368 | CONFIG_MTD_OF_PARTS=y | 379 | CONFIG_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 |
599 | CONFIG_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 |
632 | CONFIG_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 |
618 | CONFIG_DEVPORT=y | 637 | CONFIG_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 | |||
671 | CONFIG_USB_ARCH_HAS_OHCI=y | 696 | CONFIG_USB_ARCH_HAS_OHCI=y |
672 | CONFIG_USB_ARCH_HAS_EHCI=y | 697 | CONFIG_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 |
706 | CONFIG_DNOTIFY=y | 729 | CONFIG_DNOTIFY=y |
707 | CONFIG_INOTIFY=y | 730 | CONFIG_INOTIFY=y |
@@ -770,7 +793,6 @@ CONFIG_NFS_FS=y | |||
770 | CONFIG_NFS_V3=y | 793 | CONFIG_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 |
775 | CONFIG_ROOT_NFS=y | 797 | CONFIG_ROOT_NFS=y |
776 | CONFIG_LOCKD=y | 798 | CONFIG_LOCKD=y |
@@ -798,6 +820,7 @@ CONFIG_MSDOS_PARTITION=y | |||
798 | # Library routines | 820 | # Library routines |
799 | # | 821 | # |
800 | CONFIG_BITREVERSE=y | 822 | CONFIG_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 |
819 | CONFIG_ENABLE_WARN_DEPRECATED=y | 842 | CONFIG_ENABLE_WARN_DEPRECATED=y |
820 | CONFIG_ENABLE_MUST_CHECK=y | 843 | CONFIG_ENABLE_MUST_CHECK=y |
844 | CONFIG_FRAME_WARN=1024 | ||
821 | CONFIG_MAGIC_SYSRQ=y | 845 | CONFIG_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 | |||
828 | CONFIG_SCHED_DEBUG=y | 852 | CONFIG_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 | |||
840 | CONFIG_DEBUG_BUGVERBOSE=y | 865 | CONFIG_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 |
863 | CONFIG_CRYPTO=y | 892 | CONFIG_CRYPTO=y |
893 | |||
894 | # | ||
895 | # Crypto core or helper | ||
896 | # | ||
864 | CONFIG_CRYPTO_ALGAPI=y | 897 | CONFIG_CRYPTO_ALGAPI=y |
865 | CONFIG_CRYPTO_BLKCIPHER=y | 898 | CONFIG_CRYPTO_BLKCIPHER=y |
866 | # CONFIG_CRYPTO_SEQIV is not set | ||
867 | CONFIG_CRYPTO_MANAGER=y | 899 | CONFIG_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 | # | ||
916 | CONFIG_CRYPTO_CBC=y | ||
917 | # CONFIG_CRYPTO_CTR is not set | ||
918 | # CONFIG_CRYPTO_CTS is not set | ||
919 | CONFIG_CRYPTO_ECB=y | ||
920 | # CONFIG_CRYPTO_LRW is not set | ||
921 | CONFIG_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 |
872 | CONFIG_CRYPTO_MD5=y | 935 | CONFIG_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 |
879 | CONFIG_CRYPTO_ECB=y | 942 | |
880 | CONFIG_CRYPTO_CBC=y | 943 | # |
881 | CONFIG_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 | ||
888 | CONFIG_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 | 953 | CONFIG_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/cputable.c b/arch/powerpc/kernel/cputable.c index 817cea1b5ad..72adb19a204 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/head_44x.S b/arch/powerpc/kernel/head_44x.S index 2944529e8bf..f3a1ea9d7fe 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 */ | ||
331 | 3: | ||
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 | |||
340 | 4: | ||
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 | |||
394 | 2: | ||
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: | |||
484 | 4: | 373 | 4: |
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 | ||
417 | tlb_44x_patch_hwater_D: | ||
418 | cmpwi 0,r13,1 /* reserve entries */ | ||
419 | ble 5f | ||
420 | li r13,0 | ||
421 | 5: | ||
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: | |||
554 | 4: | 482 | 4: |
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 | ||
511 | tlb_44x_patch_hwater_I: | ||
512 | cmpwi 0,r13,1 /* reserve entries */ | ||
513 | ble 5f | ||
514 | li r13,0 | ||
515 | 5: | ||
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 | */ | ||
595 | data_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 | */ |
613 | finish_tlb_load: | 555 | finish_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 | ||
634 | 7: | ||
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 | 575 | 1: 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 b0461be1c92..fce2df98850 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/mm/44x_mmu.c b/arch/powerpc/mm/44x_mmu.c index 953fb919eb0..98052ac9658 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 */ | |||
37 | unsigned int tlb_44x_hwater = PPC44x_TLB_SIZE - 1 - PPC44x_EARLY_TLBS; | 38 | unsigned int tlb_44x_hwater = PPC44x_TLB_SIZE - 1 - PPC44x_EARLY_TLBS; |
38 | int icache_44x_need_flush; | 39 | int icache_44x_need_flush; |
39 | 40 | ||
41 | static 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 | */ |
43 | static void __init ppc44x_pin_tlb(unsigned int virt, unsigned int phys) | 64 | static 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 | ||
59 | void __init MMU_init_hw(void) | 84 | void __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 7b251079926..1707d00331f 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 45418590b6a..388ceda632f 100644 --- a/arch/powerpc/mm/init_32.c +++ b/arch/powerpc/mm/init_32.c | |||
@@ -57,8 +57,8 @@ | |||
57 | 57 | ||
58 | DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); | 58 | DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); |
59 | 59 | ||
60 | unsigned long total_memory; | 60 | phys_addr_t total_memory; |
61 | unsigned long total_lowmem; | 61 | phys_addr_t total_lowmem; |
62 | 62 | ||
63 | phys_addr_t memstart_addr = (phys_addr_t)~0ull; | 63 | phys_addr_t memstart_addr = (phys_addr_t)~0ull; |
64 | EXPORT_SYMBOL(memstart_addr); | 64 | EXPORT_SYMBOL(memstart_addr); |
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index 776ba6ad5e1..1ca2235f096 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c | |||
@@ -330,7 +330,7 @@ static int __init mark_nonram_nosave(void) | |||
330 | void __init paging_init(void) | 330 | void __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 46585b7bb19..fab3cfad409 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; | |||
49 | extern unsigned long ioremap_bot; | 49 | extern unsigned long ioremap_bot; |
50 | extern unsigned long __max_low_memory; | 50 | extern unsigned long __max_low_memory; |
51 | extern phys_addr_t __initial_memory_limit_addr; | 51 | extern phys_addr_t __initial_memory_limit_addr; |
52 | extern unsigned long total_memory; | 52 | extern phys_addr_t total_memory; |
53 | extern unsigned long total_lowmem; | 53 | extern phys_addr_t total_lowmem; |
54 | extern phys_addr_t memstart_addr; | 54 | extern phys_addr_t memstart_addr; |
55 | extern phys_addr_t lowmem_end_addr; | 55 | extern phys_addr_t lowmem_end_addr; |
56 | 56 | ||
diff --git a/arch/powerpc/platforms/44x/Kconfig b/arch/powerpc/platforms/44x/Kconfig index bee49ca704e..249ba01c667 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 | ||
114 | config 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. |
115 | config 440EP | 131 | config 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 |
162 | config IBM440EP_ERR42 | 178 | config IBM440EP_ERR42 |
163 | bool | 179 | bool |
180 | |||
181 | # Xilinx specific config options. | ||
182 | config XILINX_VIRTEX | ||
183 | bool | ||
184 | |||
185 | # Xilinx Virtex 5 FXT FPGA architecture, selected by a Xilinx board above | ||
186 | config 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 4e71e77f9a2..8d0b1a192d6 100644 --- a/arch/powerpc/platforms/44x/Makefile +++ b/arch/powerpc/platforms/44x/Makefile | |||
@@ -10,3 +10,4 @@ obj-$(CONFIG_RAINIER) += rainier.o | |||
10 | obj-$(CONFIG_WARP) += warp.o | 10 | obj-$(CONFIG_WARP) += warp.o |
11 | obj-$(CONFIG_WARP) += warp-nand.o | 11 | obj-$(CONFIG_WARP) += warp-nand.o |
12 | obj-$(CONFIG_CANYONLANDS) += canyonlands.o | 12 | obj-$(CONFIG_CANYONLANDS) += canyonlands.o |
13 | obj-$(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 00000000000..68637faf70a --- /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 | |||
23 | static 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 | |||
35 | static int __init virtex_device_probe(void) | ||
36 | { | ||
37 | of_platform_bus_probe(NULL, xilinx_of_bus_ids, NULL); | ||
38 | |||
39 | return 0; | ||
40 | } | ||
41 | machine_device_initcall(virtex, virtex_device_probe); | ||
42 | |||
43 | static 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 | |||
53 | define_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 7bec2815771..e55746b824b 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/include/asm-powerpc/pgtable-ppc32.h b/include/asm-powerpc/pgtable-ppc32.h index e1d2bb57f1d..11eede4a290 100644 --- a/include/asm-powerpc/pgtable-ppc32.h +++ b/include/asm-powerpc/pgtable-ppc32.h | |||
@@ -182,6 +182,9 @@ extern int icache_44x_need_flush; | |||
182 | #define _PMD_SIZE_16M 0x0e0 | 182 | #define _PMD_SIZE_16M 0x0e0 |
183 | #define PMD_PAGE_SIZE(pmdval) (1024 << (((pmdval) & _PMD_SIZE) >> 4)) | 183 | #define PMD_PAGE_SIZE(pmdval) (1024 << (((pmdval) & _PMD_SIZE) >> 4)) |
184 | 184 | ||
185 | /* Until my rework is finished, 40x still needs atomic PTE updates */ | ||
186 | #define PTE_ATOMIC_UPDATES 1 | ||
187 | |||
185 | #elif defined(CONFIG_44x) | 188 | #elif defined(CONFIG_44x) |
186 | /* | 189 | /* |
187 | * Definitions for PPC440 | 190 | * Definitions for PPC440 |
@@ -253,17 +256,17 @@ extern int icache_44x_need_flush; | |||
253 | */ | 256 | */ |
254 | 257 | ||
255 | #define _PAGE_PRESENT 0x00000001 /* S: PTE valid */ | 258 | #define _PAGE_PRESENT 0x00000001 /* S: PTE valid */ |
256 | #define _PAGE_RW 0x00000002 /* S: Write permission */ | 259 | #define _PAGE_RW 0x00000002 /* S: Write permission */ |
257 | #define _PAGE_FILE 0x00000004 /* S: nonlinear file mapping */ | 260 | #define _PAGE_FILE 0x00000004 /* S: nonlinear file mapping */ |
261 | #define _PAGE_HWEXEC 0x00000004 /* H: Execute permission */ | ||
258 | #define _PAGE_ACCESSED 0x00000008 /* S: Page referenced */ | 262 | #define _PAGE_ACCESSED 0x00000008 /* S: Page referenced */ |
259 | #define _PAGE_HWWRITE 0x00000010 /* H: Dirty & RW */ | 263 | #define _PAGE_DIRTY 0x00000010 /* S: Page dirty */ |
260 | #define _PAGE_HWEXEC 0x00000020 /* H: Execute permission */ | 264 | #define _PAGE_USER 0x00000040 /* S: User page */ |
261 | #define _PAGE_USER 0x00000040 /* S: User page */ | 265 | #define _PAGE_ENDIAN 0x00000080 /* H: E bit */ |
262 | #define _PAGE_ENDIAN 0x00000080 /* H: E bit */ | 266 | #define _PAGE_GUARDED 0x00000100 /* H: G bit */ |
263 | #define _PAGE_GUARDED 0x00000100 /* H: G bit */ | 267 | #define _PAGE_COHERENT 0x00000200 /* H: M bit */ |
264 | #define _PAGE_DIRTY 0x00000200 /* S: Page dirty */ | 268 | #define _PAGE_NO_CACHE 0x00000400 /* H: I bit */ |
265 | #define _PAGE_NO_CACHE 0x00000400 /* H: I bit */ | 269 | #define _PAGE_WRITETHRU 0x00000800 /* H: W bit */ |
266 | #define _PAGE_WRITETHRU 0x00000800 /* H: W bit */ | ||
267 | 270 | ||
268 | /* TODO: Add large page lowmem mapping support */ | 271 | /* TODO: Add large page lowmem mapping support */ |
269 | #define _PMD_PRESENT 0 | 272 | #define _PMD_PRESENT 0 |
@@ -273,6 +276,7 @@ extern int icache_44x_need_flush; | |||
273 | /* ERPN in a PTE never gets cleared, ignore it */ | 276 | /* ERPN in a PTE never gets cleared, ignore it */ |
274 | #define _PTE_NONE_MASK 0xffffffff00000000ULL | 277 | #define _PTE_NONE_MASK 0xffffffff00000000ULL |
275 | 278 | ||
279 | |||
276 | #elif defined(CONFIG_FSL_BOOKE) | 280 | #elif defined(CONFIG_FSL_BOOKE) |
277 | /* | 281 | /* |
278 | MMU Assist Register 3: | 282 | MMU Assist Register 3: |
@@ -315,6 +319,9 @@ extern int icache_44x_need_flush; | |||
315 | #define _PMD_PRESENT_MASK (PAGE_MASK) | 319 | #define _PMD_PRESENT_MASK (PAGE_MASK) |
316 | #define _PMD_BAD (~PAGE_MASK) | 320 | #define _PMD_BAD (~PAGE_MASK) |
317 | 321 | ||
322 | /* Until my rework is finished, FSL BookE still needs atomic PTE updates */ | ||
323 | #define PTE_ATOMIC_UPDATES 1 | ||
324 | |||
318 | #elif defined(CONFIG_8xx) | 325 | #elif defined(CONFIG_8xx) |
319 | /* Definitions for 8xx embedded chips. */ | 326 | /* Definitions for 8xx embedded chips. */ |
320 | #define _PAGE_PRESENT 0x0001 /* Page is valid */ | 327 | #define _PAGE_PRESENT 0x0001 /* Page is valid */ |
@@ -345,6 +352,9 @@ extern int icache_44x_need_flush; | |||
345 | 352 | ||
346 | #define _PTE_NONE_MASK _PAGE_ACCESSED | 353 | #define _PTE_NONE_MASK _PAGE_ACCESSED |
347 | 354 | ||
355 | /* Until my rework is finished, 8xx still needs atomic PTE updates */ | ||
356 | #define PTE_ATOMIC_UPDATES 1 | ||
357 | |||
348 | #else /* CONFIG_6xx */ | 358 | #else /* CONFIG_6xx */ |
349 | /* Definitions for 60x, 740/750, etc. */ | 359 | /* Definitions for 60x, 740/750, etc. */ |
350 | #define _PAGE_PRESENT 0x001 /* software: pte contains a translation */ | 360 | #define _PAGE_PRESENT 0x001 /* software: pte contains a translation */ |
@@ -365,6 +375,10 @@ extern int icache_44x_need_flush; | |||
365 | #define _PMD_PRESENT 0 | 375 | #define _PMD_PRESENT 0 |
366 | #define _PMD_PRESENT_MASK (PAGE_MASK) | 376 | #define _PMD_PRESENT_MASK (PAGE_MASK) |
367 | #define _PMD_BAD (~PAGE_MASK) | 377 | #define _PMD_BAD (~PAGE_MASK) |
378 | |||
379 | /* Hash table based platforms need atomic updates of the linux PTE */ | ||
380 | #define PTE_ATOMIC_UPDATES 1 | ||
381 | |||
368 | #endif | 382 | #endif |
369 | 383 | ||
370 | /* | 384 | /* |
@@ -557,9 +571,11 @@ extern void add_hash_page(unsigned context, unsigned long va, | |||
557 | * low PTE word since we expect ALL flag bits to be there | 571 | * low PTE word since we expect ALL flag bits to be there |
558 | */ | 572 | */ |
559 | #ifndef CONFIG_PTE_64BIT | 573 | #ifndef CONFIG_PTE_64BIT |
560 | static inline unsigned long pte_update(pte_t *p, unsigned long clr, | 574 | static inline unsigned long pte_update(pte_t *p, |
575 | unsigned long clr, | ||
561 | unsigned long set) | 576 | unsigned long set) |
562 | { | 577 | { |
578 | #ifdef PTE_ATOMIC_UPDATES | ||
563 | unsigned long old, tmp; | 579 | unsigned long old, tmp; |
564 | 580 | ||
565 | __asm__ __volatile__("\ | 581 | __asm__ __volatile__("\ |
@@ -572,16 +588,26 @@ static inline unsigned long pte_update(pte_t *p, unsigned long clr, | |||
572 | : "=&r" (old), "=&r" (tmp), "=m" (*p) | 588 | : "=&r" (old), "=&r" (tmp), "=m" (*p) |
573 | : "r" (p), "r" (clr), "r" (set), "m" (*p) | 589 | : "r" (p), "r" (clr), "r" (set), "m" (*p) |
574 | : "cc" ); | 590 | : "cc" ); |
591 | #else /* PTE_ATOMIC_UPDATES */ | ||
592 | unsigned long old = pte_val(*p); | ||
593 | *p = __pte((old & ~clr) | set); | ||
594 | #endif /* !PTE_ATOMIC_UPDATES */ | ||
595 | |||
575 | #ifdef CONFIG_44x | 596 | #ifdef CONFIG_44x |
576 | if ((old & _PAGE_USER) && (old & _PAGE_HWEXEC)) | 597 | if ((old & _PAGE_USER) && (old & _PAGE_HWEXEC)) |
577 | icache_44x_need_flush = 1; | 598 | icache_44x_need_flush = 1; |
578 | #endif | 599 | #endif |
579 | return old; | 600 | return old; |
580 | } | 601 | } |
581 | #else | 602 | #else /* CONFIG_PTE_64BIT */ |
582 | static inline unsigned long long pte_update(pte_t *p, unsigned long clr, | 603 | /* TODO: Change that to only modify the low word and move set_pte_at() |
583 | unsigned long set) | 604 | * out of line |
605 | */ | ||
606 | static inline unsigned long long pte_update(pte_t *p, | ||
607 | unsigned long clr, | ||
608 | unsigned long set) | ||
584 | { | 609 | { |
610 | #ifdef PTE_ATOMIC_UPDATES | ||
585 | unsigned long long old; | 611 | unsigned long long old; |
586 | unsigned long tmp; | 612 | unsigned long tmp; |
587 | 613 | ||
@@ -596,13 +622,18 @@ static inline unsigned long long pte_update(pte_t *p, unsigned long clr, | |||
596 | : "=&r" (old), "=&r" (tmp), "=m" (*p) | 622 | : "=&r" (old), "=&r" (tmp), "=m" (*p) |
597 | : "r" (p), "r" ((unsigned long)(p) + 4), "r" (clr), "r" (set), "m" (*p) | 623 | : "r" (p), "r" ((unsigned long)(p) + 4), "r" (clr), "r" (set), "m" (*p) |
598 | : "cc" ); | 624 | : "cc" ); |
625 | #else /* PTE_ATOMIC_UPDATES */ | ||
626 | unsigned long long old = pte_val(*p); | ||
627 | *p = __pte((old & ~clr) | set); | ||
628 | #endif /* !PTE_ATOMIC_UPDATES */ | ||
629 | |||
599 | #ifdef CONFIG_44x | 630 | #ifdef CONFIG_44x |
600 | if ((old & _PAGE_USER) && (old & _PAGE_HWEXEC)) | 631 | if ((old & _PAGE_USER) && (old & _PAGE_HWEXEC)) |
601 | icache_44x_need_flush = 1; | 632 | icache_44x_need_flush = 1; |
602 | #endif | 633 | #endif |
603 | return old; | 634 | return old; |
604 | } | 635 | } |
605 | #endif | 636 | #endif /* CONFIG_PTE_64BIT */ |
606 | 637 | ||
607 | /* | 638 | /* |
608 | * set_pte stores a linux PTE into the linux page table. | 639 | * set_pte stores a linux PTE into the linux page table. |
@@ -671,7 +702,7 @@ static inline void __ptep_set_access_flags(pte_t *ptep, pte_t entry, int dirty) | |||
671 | ({ \ | 702 | ({ \ |
672 | int __changed = !pte_same(*(__ptep), __entry); \ | 703 | int __changed = !pte_same(*(__ptep), __entry); \ |
673 | if (__changed) { \ | 704 | if (__changed) { \ |
674 | __ptep_set_access_flags(__ptep, __entry, __dirty); \ | 705 | __ptep_set_access_flags(__ptep, __entry, __dirty); \ |
675 | flush_tlb_page_nohash(__vma, __address); \ | 706 | flush_tlb_page_nohash(__vma, __address); \ |
676 | } \ | 707 | } \ |
677 | __changed; \ | 708 | __changed; \ |