diff options
| author | Jeff Garzik <jgarzik@pobox.com> | 2005-10-13 21:22:27 -0400 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@pobox.com> | 2005-10-13 21:22:27 -0400 |
| commit | 59aee3c2a1e69fe5062bd1facb72d6fcea3f3f8f (patch) | |
| tree | b337d73229a69e399d4e4f7128b33ce734660e35 /arch | |
| parent | 0d69ae5fb7eb9ba3b54cf0ba4ef5ae591f31eef7 (diff) | |
| parent | 046d20b73960b7a2474b6d5e920d54c3fd7c23fe (diff) | |
Merge branch 'master'
Diffstat (limited to 'arch')
78 files changed, 6164 insertions, 1068 deletions
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 7779f2d1acad..299bc0468702 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile | |||
| @@ -53,7 +53,7 @@ tune-$(CONFIG_CPU_ARM926T) :=-mtune=arm9tdmi | |||
| 53 | tune-$(CONFIG_CPU_SA110) :=-mtune=strongarm110 | 53 | tune-$(CONFIG_CPU_SA110) :=-mtune=strongarm110 |
| 54 | tune-$(CONFIG_CPU_SA1100) :=-mtune=strongarm1100 | 54 | tune-$(CONFIG_CPU_SA1100) :=-mtune=strongarm1100 |
| 55 | tune-$(CONFIG_CPU_XSCALE) :=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale | 55 | tune-$(CONFIG_CPU_XSCALE) :=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale |
| 56 | tune-$(CONFIG_CPU_V6) :=-mtune=strongarm | 56 | tune-$(CONFIG_CPU_V6) :=$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm) |
| 57 | 57 | ||
| 58 | # Need -Uarm for gcc < 3.x | 58 | # Need -Uarm for gcc < 3.x |
| 59 | CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,) | 59 | CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,) |
diff --git a/arch/arm/common/scoop.c b/arch/arm/common/scoop.c index d3a04c2a2c85..9e5245c702de 100644 --- a/arch/arm/common/scoop.c +++ b/arch/arm/common/scoop.c | |||
| @@ -26,6 +26,8 @@ struct scoop_pcmcia_dev *scoop_devs; | |||
| 26 | struct scoop_dev { | 26 | struct scoop_dev { |
| 27 | void *base; | 27 | void *base; |
| 28 | spinlock_t scoop_lock; | 28 | spinlock_t scoop_lock; |
| 29 | unsigned short suspend_clr; | ||
| 30 | unsigned short suspend_set; | ||
| 29 | u32 scoop_gpwr; | 31 | u32 scoop_gpwr; |
| 30 | }; | 32 | }; |
| 31 | 33 | ||
| @@ -90,14 +92,24 @@ EXPORT_SYMBOL(reset_scoop); | |||
| 90 | EXPORT_SYMBOL(read_scoop_reg); | 92 | EXPORT_SYMBOL(read_scoop_reg); |
| 91 | EXPORT_SYMBOL(write_scoop_reg); | 93 | EXPORT_SYMBOL(write_scoop_reg); |
| 92 | 94 | ||
| 95 | static void check_scoop_reg(struct scoop_dev *sdev) | ||
| 96 | { | ||
| 97 | unsigned short mcr; | ||
| 98 | |||
| 99 | mcr = SCOOP_REG(sdev->base, SCOOP_MCR); | ||
| 100 | if ((mcr & 0x100) == 0) | ||
| 101 | SCOOP_REG(sdev->base, SCOOP_MCR) = 0x0101; | ||
| 102 | } | ||
| 103 | |||
| 93 | #ifdef CONFIG_PM | 104 | #ifdef CONFIG_PM |
| 94 | static int scoop_suspend(struct device *dev, pm_message_t state, uint32_t level) | 105 | static int scoop_suspend(struct device *dev, pm_message_t state, uint32_t level) |
| 95 | { | 106 | { |
| 96 | if (level == SUSPEND_POWER_DOWN) { | 107 | if (level == SUSPEND_POWER_DOWN) { |
| 97 | struct scoop_dev *sdev = dev_get_drvdata(dev); | 108 | struct scoop_dev *sdev = dev_get_drvdata(dev); |
| 98 | 109 | ||
| 99 | sdev->scoop_gpwr = SCOOP_REG(sdev->base,SCOOP_GPWR); | 110 | check_scoop_reg(sdev); |
| 100 | SCOOP_REG(sdev->base,SCOOP_GPWR) = 0; | 111 | sdev->scoop_gpwr = SCOOP_REG(sdev->base, SCOOP_GPWR); |
| 112 | SCOOP_REG(sdev->base, SCOOP_GPWR) = (sdev->scoop_gpwr & ~sdev->suspend_clr) | sdev->suspend_set; | ||
| 101 | } | 113 | } |
| 102 | return 0; | 114 | return 0; |
| 103 | } | 115 | } |
| @@ -107,6 +119,7 @@ static int scoop_resume(struct device *dev, uint32_t level) | |||
| 107 | if (level == RESUME_POWER_ON) { | 119 | if (level == RESUME_POWER_ON) { |
| 108 | struct scoop_dev *sdev = dev_get_drvdata(dev); | 120 | struct scoop_dev *sdev = dev_get_drvdata(dev); |
| 109 | 121 | ||
| 122 | check_scoop_reg(sdev); | ||
| 110 | SCOOP_REG(sdev->base,SCOOP_GPWR) = sdev->scoop_gpwr; | 123 | SCOOP_REG(sdev->base,SCOOP_GPWR) = sdev->scoop_gpwr; |
| 111 | } | 124 | } |
| 112 | return 0; | 125 | return 0; |
| @@ -151,6 +164,9 @@ int __init scoop_probe(struct device *dev) | |||
| 151 | SCOOP_REG(devptr->base, SCOOP_GPCR) = inf->io_dir & 0xffff; | 164 | SCOOP_REG(devptr->base, SCOOP_GPCR) = inf->io_dir & 0xffff; |
| 152 | SCOOP_REG(devptr->base, SCOOP_GPWR) = inf->io_out & 0xffff; | 165 | SCOOP_REG(devptr->base, SCOOP_GPWR) = inf->io_out & 0xffff; |
| 153 | 166 | ||
| 167 | devptr->suspend_clr = inf->suspend_clr; | ||
| 168 | devptr->suspend_set = inf->suspend_set; | ||
| 169 | |||
| 154 | return 0; | 170 | return 0; |
| 155 | } | 171 | } |
| 156 | 172 | ||
diff --git a/arch/arm/configs/collie_defconfig b/arch/arm/configs/collie_defconfig new file mode 100644 index 000000000000..40dfe07a8bce --- /dev/null +++ b/arch/arm/configs/collie_defconfig | |||
| @@ -0,0 +1,888 @@ | |||
| 1 | # | ||
| 2 | # Automatically generated make config: don't edit | ||
| 3 | # Linux kernel version: 2.6.14-rc3 | ||
| 4 | # Sun Oct 9 16:55:14 2005 | ||
| 5 | # | ||
| 6 | CONFIG_ARM=y | ||
| 7 | CONFIG_MMU=y | ||
| 8 | CONFIG_UID16=y | ||
| 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
| 10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
| 11 | |||
| 12 | # | ||
| 13 | # Code maturity level options | ||
| 14 | # | ||
| 15 | CONFIG_EXPERIMENTAL=y | ||
| 16 | # CONFIG_CLEAN_COMPILE is not set | ||
| 17 | CONFIG_BROKEN=y | ||
| 18 | CONFIG_BROKEN_ON_SMP=y | ||
| 19 | CONFIG_LOCK_KERNEL=y | ||
| 20 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
| 21 | |||
| 22 | # | ||
| 23 | # General setup | ||
| 24 | # | ||
| 25 | CONFIG_LOCALVERSION="" | ||
| 26 | CONFIG_LOCALVERSION_AUTO=y | ||
| 27 | CONFIG_SWAP=y | ||
| 28 | CONFIG_SYSVIPC=y | ||
| 29 | # CONFIG_POSIX_MQUEUE is not set | ||
| 30 | CONFIG_BSD_PROCESS_ACCT=y | ||
| 31 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | ||
| 32 | CONFIG_SYSCTL=y | ||
| 33 | # CONFIG_AUDIT is not set | ||
| 34 | CONFIG_HOTPLUG=y | ||
| 35 | CONFIG_KOBJECT_UEVENT=y | ||
| 36 | # CONFIG_IKCONFIG is not set | ||
| 37 | CONFIG_INITRAMFS_SOURCE="" | ||
| 38 | CONFIG_EMBEDDED=y | ||
| 39 | CONFIG_KALLSYMS=y | ||
| 40 | # CONFIG_KALLSYMS_ALL is not set | ||
| 41 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
| 42 | CONFIG_PRINTK=y | ||
| 43 | CONFIG_BUG=y | ||
| 44 | CONFIG_BASE_FULL=y | ||
| 45 | CONFIG_FUTEX=y | ||
| 46 | CONFIG_EPOLL=y | ||
| 47 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
| 48 | CONFIG_SHMEM=y | ||
| 49 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
| 50 | CONFIG_CC_ALIGN_LABELS=0 | ||
| 51 | CONFIG_CC_ALIGN_LOOPS=0 | ||
| 52 | CONFIG_CC_ALIGN_JUMPS=0 | ||
| 53 | # CONFIG_TINY_SHMEM is not set | ||
| 54 | CONFIG_BASE_SMALL=0 | ||
| 55 | |||
| 56 | # | ||
| 57 | # Loadable module support | ||
| 58 | # | ||
| 59 | CONFIG_MODULES=y | ||
| 60 | CONFIG_MODULE_UNLOAD=y | ||
| 61 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
| 62 | CONFIG_OBSOLETE_MODPARM=y | ||
| 63 | CONFIG_MODVERSIONS=y | ||
| 64 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
| 65 | CONFIG_KMOD=y | ||
| 66 | |||
| 67 | # | ||
| 68 | # System Type | ||
| 69 | # | ||
| 70 | # CONFIG_ARCH_CLPS7500 is not set | ||
| 71 | # CONFIG_ARCH_CLPS711X is not set | ||
| 72 | # CONFIG_ARCH_CO285 is not set | ||
| 73 | # CONFIG_ARCH_EBSA110 is not set | ||
| 74 | # CONFIG_ARCH_CAMELOT is not set | ||
| 75 | # CONFIG_ARCH_FOOTBRIDGE is not set | ||
| 76 | # CONFIG_ARCH_INTEGRATOR is not set | ||
| 77 | # CONFIG_ARCH_IOP3XX is not set | ||
| 78 | # CONFIG_ARCH_IXP4XX is not set | ||
| 79 | # CONFIG_ARCH_IXP2000 is not set | ||
| 80 | # CONFIG_ARCH_L7200 is not set | ||
| 81 | # CONFIG_ARCH_PXA is not set | ||
| 82 | # CONFIG_ARCH_RPC is not set | ||
| 83 | CONFIG_ARCH_SA1100=y | ||
| 84 | # CONFIG_ARCH_S3C2410 is not set | ||
| 85 | # CONFIG_ARCH_SHARK is not set | ||
| 86 | # CONFIG_ARCH_LH7A40X is not set | ||
| 87 | # CONFIG_ARCH_OMAP is not set | ||
| 88 | # CONFIG_ARCH_VERSATILE is not set | ||
| 89 | # CONFIG_ARCH_IMX is not set | ||
| 90 | # CONFIG_ARCH_H720X is not set | ||
| 91 | # CONFIG_ARCH_AAEC2000 is not set | ||
| 92 | |||
| 93 | # | ||
| 94 | # SA11x0 Implementations | ||
| 95 | # | ||
| 96 | # CONFIG_SA1100_ASSABET is not set | ||
| 97 | # CONFIG_SA1100_CERF is not set | ||
| 98 | CONFIG_SA1100_COLLIE=y | ||
| 99 | # CONFIG_SA1100_H3100 is not set | ||
| 100 | # CONFIG_SA1100_H3600 is not set | ||
| 101 | # CONFIG_SA1100_H3800 is not set | ||
| 102 | # CONFIG_SA1100_BADGE4 is not set | ||
| 103 | # CONFIG_SA1100_JORNADA720 is not set | ||
| 104 | # CONFIG_SA1100_HACKKIT is not set | ||
| 105 | # CONFIG_SA1100_LART is not set | ||
| 106 | # CONFIG_SA1100_PLEB is not set | ||
| 107 | # CONFIG_SA1100_SHANNON is not set | ||
| 108 | # CONFIG_SA1100_SIMPAD is not set | ||
| 109 | # CONFIG_SA1100_SSP is not set | ||
| 110 | |||
| 111 | # | ||
| 112 | # Processor Type | ||
| 113 | # | ||
| 114 | CONFIG_CPU_32=y | ||
| 115 | CONFIG_CPU_SA1100=y | ||
| 116 | CONFIG_CPU_32v4=y | ||
| 117 | CONFIG_CPU_ABRT_EV4=y | ||
| 118 | CONFIG_CPU_CACHE_V4WB=y | ||
| 119 | CONFIG_CPU_CACHE_VIVT=y | ||
| 120 | CONFIG_CPU_TLB_V4WB=y | ||
| 121 | |||
| 122 | # | ||
| 123 | # Processor Features | ||
| 124 | # | ||
| 125 | CONFIG_SHARP_LOCOMO=y | ||
| 126 | CONFIG_SHARP_PARAM=y | ||
| 127 | CONFIG_SHARP_SCOOP=y | ||
| 128 | |||
| 129 | # | ||
| 130 | # Bus support | ||
| 131 | # | ||
| 132 | CONFIG_ISA=y | ||
| 133 | CONFIG_ISA_DMA_API=y | ||
| 134 | |||
| 135 | # | ||
| 136 | # PCCARD (PCMCIA/CardBus) support | ||
| 137 | # | ||
| 138 | # CONFIG_PCCARD is not set | ||
| 139 | |||
| 140 | # | ||
| 141 | # Kernel Features | ||
| 142 | # | ||
| 143 | # CONFIG_SMP is not set | ||
| 144 | CONFIG_PREEMPT=y | ||
| 145 | # CONFIG_NO_IDLE_HZ is not set | ||
| 146 | CONFIG_ARCH_DISCONTIGMEM_ENABLE=y | ||
| 147 | CONFIG_SELECT_MEMORY_MODEL=y | ||
| 148 | # CONFIG_FLATMEM_MANUAL is not set | ||
| 149 | CONFIG_DISCONTIGMEM_MANUAL=y | ||
| 150 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
| 151 | CONFIG_DISCONTIGMEM=y | ||
| 152 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
| 153 | CONFIG_NEED_MULTIPLE_NODES=y | ||
| 154 | # CONFIG_SPARSEMEM_STATIC is not set | ||
| 155 | # CONFIG_LEDS is not set | ||
| 156 | CONFIG_ALIGNMENT_TRAP=y | ||
| 157 | |||
| 158 | # | ||
| 159 | # Boot options | ||
| 160 | # | ||
| 161 | CONFIG_ZBOOT_ROM_TEXT=0x0 | ||
| 162 | CONFIG_ZBOOT_ROM_BSS=0x0 | ||
| 163 | CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug" | ||
| 164 | # CONFIG_XIP_KERNEL is not set | ||
| 165 | |||
| 166 | # | ||
| 167 | # CPU Frequency scaling | ||
| 168 | # | ||
| 169 | # CONFIG_CPU_FREQ is not set | ||
| 170 | |||
| 171 | # | ||
| 172 | # Floating point emulation | ||
| 173 | # | ||
| 174 | |||
| 175 | # | ||
| 176 | # At least one emulation must be selected | ||
| 177 | # | ||
| 178 | CONFIG_FPE_NWFPE=y | ||
| 179 | # CONFIG_FPE_NWFPE_XP is not set | ||
| 180 | # CONFIG_FPE_FASTFPE is not set | ||
| 181 | |||
| 182 | # | ||
| 183 | # Userspace binary formats | ||
| 184 | # | ||
| 185 | CONFIG_BINFMT_ELF=y | ||
| 186 | CONFIG_BINFMT_AOUT=m | ||
| 187 | CONFIG_BINFMT_MISC=m | ||
| 188 | # CONFIG_ARTHUR is not set | ||
| 189 | |||
| 190 | # | ||
| 191 | # Power management options | ||
| 192 | # | ||
| 193 | CONFIG_PM=y | ||
| 194 | CONFIG_APM=y | ||
| 195 | |||
| 196 | # | ||
| 197 | # Networking | ||
| 198 | # | ||
| 199 | CONFIG_NET=y | ||
| 200 | |||
| 201 | # | ||
| 202 | # Networking options | ||
| 203 | # | ||
| 204 | CONFIG_PACKET=y | ||
| 205 | CONFIG_PACKET_MMAP=y | ||
| 206 | CONFIG_UNIX=y | ||
| 207 | # CONFIG_NET_KEY is not set | ||
| 208 | CONFIG_INET=y | ||
| 209 | # CONFIG_IP_MULTICAST is not set | ||
| 210 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
| 211 | CONFIG_IP_FIB_HASH=y | ||
| 212 | # CONFIG_IP_PNP is not set | ||
| 213 | # CONFIG_NET_IPIP is not set | ||
| 214 | # CONFIG_NET_IPGRE is not set | ||
| 215 | # CONFIG_ARPD is not set | ||
| 216 | CONFIG_SYN_COOKIES=y | ||
| 217 | # CONFIG_INET_AH is not set | ||
| 218 | # CONFIG_INET_ESP is not set | ||
| 219 | # CONFIG_INET_IPCOMP is not set | ||
| 220 | # CONFIG_INET_TUNNEL is not set | ||
| 221 | CONFIG_INET_DIAG=y | ||
| 222 | CONFIG_INET_TCP_DIAG=y | ||
| 223 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
| 224 | CONFIG_TCP_CONG_BIC=y | ||
| 225 | # CONFIG_IPV6 is not set | ||
| 226 | # CONFIG_NETFILTER is not set | ||
| 227 | |||
| 228 | # | ||
| 229 | # DCCP Configuration (EXPERIMENTAL) | ||
| 230 | # | ||
| 231 | # CONFIG_IP_DCCP is not set | ||
| 232 | |||
| 233 | # | ||
| 234 | # SCTP Configuration (EXPERIMENTAL) | ||
| 235 | # | ||
| 236 | # CONFIG_IP_SCTP is not set | ||
| 237 | # CONFIG_ATM is not set | ||
| 238 | # CONFIG_BRIDGE is not set | ||
| 239 | # CONFIG_VLAN_8021Q is not set | ||
| 240 | # CONFIG_DECNET is not set | ||
| 241 | # CONFIG_LLC2 is not set | ||
| 242 | # CONFIG_IPX is not set | ||
| 243 | # CONFIG_ATALK is not set | ||
| 244 | # CONFIG_X25 is not set | ||
| 245 | # CONFIG_LAPB is not set | ||
| 246 | # CONFIG_NET_DIVERT is not set | ||
| 247 | # CONFIG_ECONET is not set | ||
| 248 | # CONFIG_WAN_ROUTER is not set | ||
| 249 | # CONFIG_NET_SCHED is not set | ||
| 250 | # CONFIG_NET_CLS_ROUTE is not set | ||
| 251 | |||
| 252 | # | ||
| 253 | # Network testing | ||
| 254 | # | ||
| 255 | # CONFIG_NET_PKTGEN is not set | ||
| 256 | # CONFIG_HAMRADIO is not set | ||
| 257 | # CONFIG_IRDA is not set | ||
| 258 | # CONFIG_BT is not set | ||
| 259 | # CONFIG_IEEE80211 is not set | ||
| 260 | |||
| 261 | # | ||
| 262 | # Device Drivers | ||
| 263 | # | ||
| 264 | |||
| 265 | # | ||
| 266 | # Generic Driver Options | ||
| 267 | # | ||
| 268 | CONFIG_STANDALONE=y | ||
| 269 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
| 270 | CONFIG_FW_LOADER=m | ||
| 271 | # CONFIG_DEBUG_DRIVER is not set | ||
| 272 | |||
| 273 | # | ||
| 274 | # Memory Technology Devices (MTD) | ||
| 275 | # | ||
| 276 | CONFIG_MTD=y | ||
| 277 | # CONFIG_MTD_DEBUG is not set | ||
| 278 | # CONFIG_MTD_CONCAT is not set | ||
| 279 | CONFIG_MTD_PARTITIONS=y | ||
| 280 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
| 281 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
| 282 | # CONFIG_MTD_AFS_PARTS is not set | ||
| 283 | |||
| 284 | # | ||
| 285 | # User Modules And Translation Layers | ||
| 286 | # | ||
| 287 | CONFIG_MTD_CHAR=y | ||
| 288 | CONFIG_MTD_BLOCK=y | ||
| 289 | # CONFIG_FTL is not set | ||
| 290 | # CONFIG_NFTL is not set | ||
| 291 | # CONFIG_INFTL is not set | ||
| 292 | |||
| 293 | # | ||
| 294 | # RAM/ROM/Flash chip drivers | ||
| 295 | # | ||
| 296 | # CONFIG_MTD_CFI is not set | ||
| 297 | # CONFIG_MTD_JEDECPROBE is not set | ||
| 298 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
| 299 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
| 300 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
| 301 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
| 302 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
| 303 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
| 304 | CONFIG_MTD_CFI_I1=y | ||
| 305 | CONFIG_MTD_CFI_I2=y | ||
| 306 | # CONFIG_MTD_CFI_I4 is not set | ||
| 307 | # CONFIG_MTD_CFI_I8 is not set | ||
| 308 | # CONFIG_MTD_RAM is not set | ||
| 309 | # CONFIG_MTD_ROM is not set | ||
| 310 | # CONFIG_MTD_ABSENT is not set | ||
| 311 | CONFIG_MTD_OBSOLETE_CHIPS=y | ||
| 312 | # CONFIG_MTD_AMDSTD is not set | ||
| 313 | CONFIG_MTD_SHARP=y | ||
| 314 | # CONFIG_MTD_JEDEC is not set | ||
| 315 | |||
| 316 | # | ||
| 317 | # Mapping drivers for chip access | ||
| 318 | # | ||
| 319 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
| 320 | # CONFIG_MTD_PLATRAM is not set | ||
| 321 | |||
| 322 | # | ||
| 323 | # Self-contained MTD device drivers | ||
| 324 | # | ||
| 325 | # CONFIG_MTD_SLRAM is not set | ||
| 326 | # CONFIG_MTD_PHRAM is not set | ||
| 327 | # CONFIG_MTD_MTDRAM is not set | ||
| 328 | # CONFIG_MTD_BLKMTD is not set | ||
| 329 | # CONFIG_MTD_BLOCK2MTD is not set | ||
| 330 | |||
| 331 | # | ||
| 332 | # Disk-On-Chip Device Drivers | ||
| 333 | # | ||
| 334 | # CONFIG_MTD_DOC2000 is not set | ||
| 335 | # CONFIG_MTD_DOC2001 is not set | ||
| 336 | # CONFIG_MTD_DOC2001PLUS is not set | ||
| 337 | |||
| 338 | # | ||
| 339 | # NAND Flash Device Drivers | ||
| 340 | # | ||
| 341 | # CONFIG_MTD_NAND is not set | ||
| 342 | |||
| 343 | # | ||
| 344 | # Parallel port support | ||
| 345 | # | ||
| 346 | # CONFIG_PARPORT is not set | ||
| 347 | |||
| 348 | # | ||
| 349 | # Plug and Play support | ||
| 350 | # | ||
| 351 | # CONFIG_PNP is not set | ||
| 352 | |||
| 353 | # | ||
| 354 | # Block devices | ||
| 355 | # | ||
| 356 | # CONFIG_BLK_DEV_XD is not set | ||
| 357 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
| 358 | CONFIG_BLK_DEV_LOOP=y | ||
| 359 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
| 360 | # CONFIG_BLK_DEV_NBD is not set | ||
| 361 | CONFIG_BLK_DEV_RAM=y | ||
| 362 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
| 363 | CONFIG_BLK_DEV_RAM_SIZE=1024 | ||
| 364 | CONFIG_BLK_DEV_INITRD=y | ||
| 365 | # CONFIG_CDROM_PKTCDVD is not set | ||
| 366 | |||
| 367 | # | ||
| 368 | # IO Schedulers | ||
| 369 | # | ||
| 370 | CONFIG_IOSCHED_NOOP=y | ||
| 371 | CONFIG_IOSCHED_AS=y | ||
| 372 | CONFIG_IOSCHED_DEADLINE=y | ||
| 373 | CONFIG_IOSCHED_CFQ=y | ||
| 374 | CONFIG_ATA_OVER_ETH=m | ||
| 375 | |||
| 376 | # | ||
| 377 | # ATA/ATAPI/MFM/RLL support | ||
| 378 | # | ||
| 379 | # CONFIG_IDE is not set | ||
| 380 | |||
| 381 | # | ||
| 382 | # SCSI device support | ||
| 383 | # | ||
| 384 | # CONFIG_RAID_ATTRS is not set | ||
| 385 | # CONFIG_SCSI is not set | ||
| 386 | |||
| 387 | # | ||
| 388 | # Multi-device support (RAID and LVM) | ||
| 389 | # | ||
| 390 | # CONFIG_MD is not set | ||
| 391 | |||
| 392 | # | ||
| 393 | # Fusion MPT device support | ||
| 394 | # | ||
| 395 | # CONFIG_FUSION is not set | ||
| 396 | |||
| 397 | # | ||
| 398 | # IEEE 1394 (FireWire) support | ||
| 399 | # | ||
| 400 | # CONFIG_IEEE1394 is not set | ||
| 401 | |||
| 402 | # | ||
| 403 | # I2O device support | ||
| 404 | # | ||
| 405 | |||
| 406 | # | ||
| 407 | # Network device support | ||
| 408 | # | ||
| 409 | # CONFIG_NETDEVICES is not set | ||
| 410 | # CONFIG_NETPOLL is not set | ||
| 411 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
| 412 | |||
| 413 | # | ||
| 414 | # ISDN subsystem | ||
| 415 | # | ||
| 416 | # CONFIG_ISDN is not set | ||
| 417 | |||
| 418 | # | ||
| 419 | # Input device support | ||
| 420 | # | ||
| 421 | CONFIG_INPUT=y | ||
| 422 | |||
| 423 | # | ||
| 424 | # Userland interfaces | ||
| 425 | # | ||
| 426 | # CONFIG_INPUT_MOUSEDEV is not set | ||
| 427 | # CONFIG_INPUT_JOYDEV is not set | ||
| 428 | CONFIG_INPUT_TSDEV=y | ||
| 429 | CONFIG_INPUT_TSDEV_SCREEN_X=240 | ||
| 430 | CONFIG_INPUT_TSDEV_SCREEN_Y=320 | ||
| 431 | CONFIG_INPUT_EVDEV=y | ||
| 432 | CONFIG_INPUT_EVBUG=y | ||
| 433 | |||
| 434 | # | ||
| 435 | # Input Device Drivers | ||
| 436 | # | ||
| 437 | CONFIG_INPUT_KEYBOARD=y | ||
| 438 | # CONFIG_KEYBOARD_ATKBD is not set | ||
| 439 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
| 440 | # CONFIG_KEYBOARD_LKKBD is not set | ||
| 441 | CONFIG_KEYBOARD_LOCOMO=y | ||
| 442 | # CONFIG_KEYBOARD_XTKBD is not set | ||
| 443 | # CONFIG_KEYBOARD_NEWTON is not set | ||
| 444 | # CONFIG_INPUT_MOUSE is not set | ||
| 445 | # CONFIG_INPUT_JOYSTICK is not set | ||
| 446 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
| 447 | # CONFIG_INPUT_MISC is not set | ||
| 448 | |||
| 449 | # | ||
| 450 | # Hardware I/O ports | ||
| 451 | # | ||
| 452 | CONFIG_SERIO=y | ||
| 453 | # CONFIG_SERIO_SERPORT is not set | ||
| 454 | # CONFIG_SERIO_LIBPS2 is not set | ||
| 455 | # CONFIG_SERIO_RAW is not set | ||
| 456 | # CONFIG_GAMEPORT is not set | ||
| 457 | |||
| 458 | # | ||
| 459 | # Character devices | ||
| 460 | # | ||
| 461 | CONFIG_VT=y | ||
| 462 | CONFIG_VT_CONSOLE=y | ||
| 463 | CONFIG_HW_CONSOLE=y | ||
| 464 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
| 465 | |||
| 466 | # | ||
| 467 | # Serial drivers | ||
| 468 | # | ||
| 469 | # CONFIG_SERIAL_8250 is not set | ||
| 470 | |||
| 471 | # | ||
| 472 | # Non-8250 serial port support | ||
| 473 | # | ||
| 474 | CONFIG_SERIAL_SA1100=y | ||
| 475 | CONFIG_SERIAL_SA1100_CONSOLE=y | ||
| 476 | CONFIG_SERIAL_CORE=y | ||
| 477 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
| 478 | CONFIG_UNIX98_PTYS=y | ||
| 479 | # CONFIG_LEGACY_PTYS is not set | ||
| 480 | |||
| 481 | # | ||
| 482 | # IPMI | ||
| 483 | # | ||
| 484 | # CONFIG_IPMI_HANDLER is not set | ||
| 485 | |||
| 486 | # | ||
| 487 | # Watchdog Cards | ||
| 488 | # | ||
| 489 | # CONFIG_WATCHDOG is not set | ||
| 490 | # CONFIG_NVRAM is not set | ||
| 491 | # CONFIG_RTC is not set | ||
| 492 | # CONFIG_DTLK is not set | ||
| 493 | # CONFIG_R3964 is not set | ||
| 494 | |||
| 495 | # | ||
| 496 | # Ftape, the floppy tape device driver | ||
| 497 | # | ||
| 498 | # CONFIG_RAW_DRIVER is not set | ||
| 499 | |||
| 500 | # | ||
| 501 | # TPM devices | ||
| 502 | # | ||
| 503 | |||
| 504 | # | ||
| 505 | # I2C support | ||
| 506 | # | ||
| 507 | CONFIG_I2C=m | ||
| 508 | # CONFIG_I2C_CHARDEV is not set | ||
| 509 | |||
| 510 | # | ||
| 511 | # I2C Algorithms | ||
| 512 | # | ||
| 513 | CONFIG_I2C_ALGOBIT=m | ||
| 514 | # CONFIG_I2C_ALGOPCF is not set | ||
| 515 | # CONFIG_I2C_ALGOPCA is not set | ||
| 516 | |||
| 517 | # | ||
| 518 | # I2C Hardware Bus support | ||
| 519 | # | ||
| 520 | # CONFIG_I2C_ELEKTOR is not set | ||
| 521 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
| 522 | # CONFIG_I2C_STUB is not set | ||
| 523 | # CONFIG_I2C_PCA_ISA is not set | ||
| 524 | |||
| 525 | # | ||
| 526 | # Miscellaneous I2C Chip support | ||
| 527 | # | ||
| 528 | # CONFIG_SENSORS_DS1337 is not set | ||
| 529 | # CONFIG_SENSORS_DS1374 is not set | ||
| 530 | # CONFIG_SENSORS_EEPROM is not set | ||
| 531 | # CONFIG_SENSORS_PCF8574 is not set | ||
| 532 | # CONFIG_SENSORS_PCA9539 is not set | ||
| 533 | # CONFIG_SENSORS_PCF8591 is not set | ||
| 534 | # CONFIG_SENSORS_RTC8564 is not set | ||
| 535 | # CONFIG_SENSORS_MAX6875 is not set | ||
| 536 | # CONFIG_I2C_DEBUG_CORE is not set | ||
| 537 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
| 538 | # CONFIG_I2C_DEBUG_BUS is not set | ||
| 539 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
| 540 | |||
| 541 | # | ||
| 542 | # Hardware Monitoring support | ||
| 543 | # | ||
| 544 | CONFIG_HWMON=y | ||
| 545 | # CONFIG_HWMON_VID is not set | ||
| 546 | # CONFIG_SENSORS_ADM1021 is not set | ||
| 547 | # CONFIG_SENSORS_ADM1025 is not set | ||
| 548 | # CONFIG_SENSORS_ADM1026 is not set | ||
| 549 | # CONFIG_SENSORS_ADM1031 is not set | ||
| 550 | # CONFIG_SENSORS_ADM9240 is not set | ||
| 551 | # CONFIG_SENSORS_ASB100 is not set | ||
| 552 | # CONFIG_SENSORS_ATXP1 is not set | ||
| 553 | # CONFIG_SENSORS_DS1621 is not set | ||
| 554 | # CONFIG_SENSORS_FSCHER is not set | ||
| 555 | # CONFIG_SENSORS_FSCPOS is not set | ||
| 556 | # CONFIG_SENSORS_GL518SM is not set | ||
| 557 | # CONFIG_SENSORS_GL520SM is not set | ||
| 558 | # CONFIG_SENSORS_IT87 is not set | ||
| 559 | # CONFIG_SENSORS_LM63 is not set | ||
| 560 | # CONFIG_SENSORS_LM75 is not set | ||
| 561 | # CONFIG_SENSORS_LM77 is not set | ||
| 562 | # CONFIG_SENSORS_LM78 is not set | ||
| 563 | # CONFIG_SENSORS_LM80 is not set | ||
| 564 | # CONFIG_SENSORS_LM83 is not set | ||
| 565 | # CONFIG_SENSORS_LM85 is not set | ||
| 566 | # CONFIG_SENSORS_LM87 is not set | ||
| 567 | # CONFIG_SENSORS_LM90 is not set | ||
| 568 | # CONFIG_SENSORS_LM92 is not set | ||
| 569 | # CONFIG_SENSORS_MAX1619 is not set | ||
| 570 | # CONFIG_SENSORS_PC87360 is not set | ||
| 571 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
| 572 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
| 573 | # CONFIG_SENSORS_W83781D is not set | ||
| 574 | # CONFIG_SENSORS_W83792D is not set | ||
| 575 | # CONFIG_SENSORS_W83L785TS is not set | ||
| 576 | # CONFIG_SENSORS_W83627HF is not set | ||
| 577 | # CONFIG_SENSORS_W83627EHF is not set | ||
| 578 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
| 579 | |||
| 580 | # | ||
| 581 | # Misc devices | ||
| 582 | # | ||
| 583 | |||
| 584 | # | ||
| 585 | # Multimedia Capabilities Port drivers | ||
| 586 | # | ||
| 587 | # CONFIG_MCP_SA11X0 is not set | ||
| 588 | |||
| 589 | # | ||
| 590 | # Multimedia devices | ||
| 591 | # | ||
| 592 | CONFIG_VIDEO_DEV=m | ||
| 593 | |||
| 594 | # | ||
| 595 | # Video For Linux | ||
| 596 | # | ||
| 597 | |||
| 598 | # | ||
| 599 | # Video Adapters | ||
| 600 | # | ||
| 601 | # CONFIG_VIDEO_PMS is not set | ||
| 602 | # CONFIG_VIDEO_CPIA is not set | ||
| 603 | # CONFIG_VIDEO_SAA5246A is not set | ||
| 604 | # CONFIG_VIDEO_SAA5249 is not set | ||
| 605 | # CONFIG_TUNER_3036 is not set | ||
| 606 | # CONFIG_VIDEO_OVCAMCHIP is not set | ||
| 607 | |||
| 608 | # | ||
| 609 | # Radio Adapters | ||
| 610 | # | ||
| 611 | # CONFIG_RADIO_CADET is not set | ||
| 612 | # CONFIG_RADIO_RTRACK is not set | ||
| 613 | # CONFIG_RADIO_RTRACK2 is not set | ||
| 614 | # CONFIG_RADIO_AZTECH is not set | ||
| 615 | # CONFIG_RADIO_GEMTEK is not set | ||
| 616 | # CONFIG_RADIO_MAESTRO is not set | ||
| 617 | # CONFIG_RADIO_SF16FMI is not set | ||
| 618 | # CONFIG_RADIO_SF16FMR2 is not set | ||
| 619 | # CONFIG_RADIO_TERRATEC is not set | ||
| 620 | # CONFIG_RADIO_TRUST is not set | ||
| 621 | # CONFIG_RADIO_TYPHOON is not set | ||
| 622 | # CONFIG_RADIO_ZOLTRIX is not set | ||
| 623 | |||
| 624 | # | ||
| 625 | # Digital Video Broadcasting Devices | ||
| 626 | # | ||
| 627 | # CONFIG_DVB is not set | ||
| 628 | |||
| 629 | # | ||
| 630 | # Graphics support | ||
| 631 | # | ||
| 632 | CONFIG_FB=y | ||
| 633 | CONFIG_FB_CFB_FILLRECT=y | ||
| 634 | CONFIG_FB_CFB_COPYAREA=y | ||
| 635 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
| 636 | CONFIG_FB_SOFT_CURSOR=y | ||
| 637 | # CONFIG_FB_MACMODES is not set | ||
| 638 | CONFIG_FB_MODE_HELPERS=y | ||
| 639 | # CONFIG_FB_TILEBLITTING is not set | ||
| 640 | CONFIG_FB_SA1100=y | ||
| 641 | # CONFIG_FB_S1D13XXX is not set | ||
| 642 | # CONFIG_FB_VIRTUAL is not set | ||
| 643 | |||
| 644 | # | ||
| 645 | # Console display driver support | ||
| 646 | # | ||
| 647 | # CONFIG_VGA_CONSOLE is not set | ||
| 648 | # CONFIG_MDA_CONSOLE is not set | ||
| 649 | CONFIG_DUMMY_CONSOLE=y | ||
| 650 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
| 651 | CONFIG_FONTS=y | ||
| 652 | CONFIG_FONT_8x8=y | ||
| 653 | # CONFIG_FONT_8x16 is not set | ||
| 654 | # CONFIG_FONT_6x11 is not set | ||
| 655 | # CONFIG_FONT_7x14 is not set | ||
| 656 | # CONFIG_FONT_PEARL_8x8 is not set | ||
| 657 | # CONFIG_FONT_ACORN_8x8 is not set | ||
| 658 | # CONFIG_FONT_MINI_4x6 is not set | ||
| 659 | # CONFIG_FONT_SUN8x16 is not set | ||
| 660 | # CONFIG_FONT_SUN12x22 is not set | ||
| 661 | # CONFIG_FONT_10x18 is not set | ||
| 662 | |||
| 663 | # | ||
| 664 | # Logo configuration | ||
| 665 | # | ||
| 666 | # CONFIG_LOGO is not set | ||
| 667 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
| 668 | |||
| 669 | # | ||
| 670 | # Sound | ||
| 671 | # | ||
| 672 | # CONFIG_SOUND is not set | ||
| 673 | |||
| 674 | # | ||
| 675 | # USB support | ||
| 676 | # | ||
| 677 | CONFIG_USB_ARCH_HAS_HCD=y | ||
| 678 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
| 679 | # CONFIG_USB is not set | ||
| 680 | |||
| 681 | # | ||
| 682 | # USB Gadget Support | ||
| 683 | # | ||
| 684 | CONFIG_USB_GADGET=y | ||
| 685 | # CONFIG_USB_GADGET_DEBUG_FILES is not set | ||
| 686 | # CONFIG_USB_GADGET_NET2280 is not set | ||
| 687 | # CONFIG_USB_GADGET_PXA2XX is not set | ||
| 688 | # CONFIG_USB_GADGET_GOKU is not set | ||
| 689 | # CONFIG_USB_GADGET_LH7A40X is not set | ||
| 690 | # CONFIG_USB_GADGET_OMAP is not set | ||
| 691 | # CONFIG_USB_GADGET_DUMMY_HCD is not set | ||
| 692 | # CONFIG_USB_GADGET_DUALSPEED is not set | ||
| 693 | |||
| 694 | # | ||
| 695 | # MMC/SD Card support | ||
| 696 | # | ||
| 697 | # CONFIG_MMC is not set | ||
| 698 | |||
| 699 | # | ||
| 700 | # File systems | ||
| 701 | # | ||
| 702 | CONFIG_EXT2_FS=y | ||
| 703 | CONFIG_EXT2_FS_XATTR=y | ||
| 704 | CONFIG_EXT2_FS_POSIX_ACL=y | ||
| 705 | CONFIG_EXT2_FS_SECURITY=y | ||
| 706 | # CONFIG_EXT2_FS_XIP is not set | ||
| 707 | # CONFIG_EXT3_FS is not set | ||
| 708 | # CONFIG_JBD is not set | ||
| 709 | CONFIG_FS_MBCACHE=y | ||
| 710 | # CONFIG_REISERFS_FS is not set | ||
| 711 | # CONFIG_JFS_FS is not set | ||
| 712 | CONFIG_FS_POSIX_ACL=y | ||
| 713 | # CONFIG_XFS_FS is not set | ||
| 714 | # CONFIG_MINIX_FS is not set | ||
| 715 | CONFIG_ROMFS_FS=y | ||
| 716 | CONFIG_INOTIFY=y | ||
| 717 | # CONFIG_QUOTA is not set | ||
| 718 | # CONFIG_DNOTIFY is not set | ||
| 719 | # CONFIG_AUTOFS_FS is not set | ||
| 720 | # CONFIG_AUTOFS4_FS is not set | ||
| 721 | # CONFIG_FUSE_FS is not set | ||
| 722 | |||
| 723 | # | ||
| 724 | # CD-ROM/DVD Filesystems | ||
| 725 | # | ||
| 726 | # CONFIG_ISO9660_FS is not set | ||
| 727 | # CONFIG_UDF_FS is not set | ||
| 728 | |||
| 729 | # | ||
| 730 | # DOS/FAT/NT Filesystems | ||
| 731 | # | ||
| 732 | CONFIG_FAT_FS=y | ||
| 733 | CONFIG_MSDOS_FS=y | ||
| 734 | CONFIG_VFAT_FS=y | ||
| 735 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
| 736 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
| 737 | # CONFIG_NTFS_FS is not set | ||
| 738 | |||
| 739 | # | ||
| 740 | # Pseudo filesystems | ||
| 741 | # | ||
| 742 | CONFIG_PROC_FS=y | ||
| 743 | CONFIG_SYSFS=y | ||
| 744 | CONFIG_TMPFS=y | ||
| 745 | # CONFIG_HUGETLBFS is not set | ||
| 746 | # CONFIG_HUGETLB_PAGE is not set | ||
| 747 | CONFIG_RAMFS=y | ||
| 748 | # CONFIG_RELAYFS_FS is not set | ||
| 749 | |||
| 750 | # | ||
| 751 | # Miscellaneous filesystems | ||
| 752 | # | ||
| 753 | # CONFIG_ADFS_FS is not set | ||
| 754 | # CONFIG_AFFS_FS is not set | ||
| 755 | # CONFIG_HFS_FS is not set | ||
| 756 | # CONFIG_HFSPLUS_FS is not set | ||
| 757 | # CONFIG_BEFS_FS is not set | ||
| 758 | # CONFIG_BFS_FS is not set | ||
| 759 | # CONFIG_EFS_FS is not set | ||
| 760 | # CONFIG_JFFS_FS is not set | ||
| 761 | CONFIG_JFFS2_FS=y | ||
| 762 | CONFIG_JFFS2_FS_DEBUG=0 | ||
| 763 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
| 764 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
| 765 | CONFIG_JFFS2_ZLIB=y | ||
| 766 | CONFIG_JFFS2_RTIME=y | ||
| 767 | # CONFIG_JFFS2_RUBIN is not set | ||
| 768 | CONFIG_CRAMFS=y | ||
| 769 | # CONFIG_VXFS_FS is not set | ||
| 770 | # CONFIG_HPFS_FS is not set | ||
| 771 | # CONFIG_QNX4FS_FS is not set | ||
| 772 | # CONFIG_SYSV_FS is not set | ||
| 773 | # CONFIG_UFS_FS is not set | ||
| 774 | |||
| 775 | # | ||
| 776 | # Network File Systems | ||
| 777 | # | ||
| 778 | # CONFIG_NFS_FS is not set | ||
| 779 | # CONFIG_NFSD is not set | ||
| 780 | # CONFIG_SMB_FS is not set | ||
| 781 | # CONFIG_CIFS is not set | ||
| 782 | # CONFIG_NCP_FS is not set | ||
| 783 | # CONFIG_CODA_FS is not set | ||
| 784 | # CONFIG_AFS_FS is not set | ||
| 785 | # CONFIG_9P_FS is not set | ||
| 786 | |||
| 787 | # | ||
| 788 | # Partition Types | ||
| 789 | # | ||
| 790 | # CONFIG_PARTITION_ADVANCED is not set | ||
| 791 | CONFIG_MSDOS_PARTITION=y | ||
| 792 | |||
| 793 | # | ||
| 794 | # Native Language Support | ||
| 795 | # | ||
| 796 | CONFIG_NLS=y | ||
| 797 | CONFIG_NLS_DEFAULT="cp437" | ||
| 798 | CONFIG_NLS_CODEPAGE_437=m | ||
| 799 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
| 800 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
| 801 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
| 802 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
| 803 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
| 804 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
| 805 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
| 806 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
| 807 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
| 808 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
| 809 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
| 810 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
| 811 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
| 812 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
| 813 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
| 814 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
| 815 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
| 816 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
| 817 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
| 818 | # CONFIG_NLS_ISO8859_8 is not set | ||
| 819 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
| 820 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
| 821 | # CONFIG_NLS_ASCII is not set | ||
| 822 | CONFIG_NLS_ISO8859_1=m | ||
| 823 | # CONFIG_NLS_ISO8859_2 is not set | ||
| 824 | # CONFIG_NLS_ISO8859_3 is not set | ||
| 825 | # CONFIG_NLS_ISO8859_4 is not set | ||
| 826 | # CONFIG_NLS_ISO8859_5 is not set | ||
| 827 | # CONFIG_NLS_ISO8859_6 is not set | ||
| 828 | # CONFIG_NLS_ISO8859_7 is not set | ||
| 829 | # CONFIG_NLS_ISO8859_9 is not set | ||
| 830 | # CONFIG_NLS_ISO8859_13 is not set | ||
| 831 | # CONFIG_NLS_ISO8859_14 is not set | ||
| 832 | # CONFIG_NLS_ISO8859_15 is not set | ||
| 833 | # CONFIG_NLS_KOI8_R is not set | ||
| 834 | # CONFIG_NLS_KOI8_U is not set | ||
| 835 | CONFIG_NLS_UTF8=m | ||
| 836 | |||
| 837 | # | ||
| 838 | # Profiling support | ||
| 839 | # | ||
| 840 | # CONFIG_PROFILING is not set | ||
| 841 | |||
| 842 | # | ||
| 843 | # Kernel hacking | ||
| 844 | # | ||
| 845 | # CONFIG_PRINTK_TIME is not set | ||
| 846 | CONFIG_DEBUG_KERNEL=y | ||
| 847 | CONFIG_MAGIC_SYSRQ=y | ||
| 848 | CONFIG_LOG_BUF_SHIFT=14 | ||
| 849 | CONFIG_DETECT_SOFTLOCKUP=y | ||
| 850 | # CONFIG_SCHEDSTATS is not set | ||
| 851 | # CONFIG_DEBUG_SLAB is not set | ||
| 852 | CONFIG_DEBUG_PREEMPT=y | ||
| 853 | # CONFIG_DEBUG_SPINLOCK is not set | ||
| 854 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
| 855 | # CONFIG_DEBUG_KOBJECT is not set | ||
| 856 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
| 857 | # CONFIG_DEBUG_INFO is not set | ||
| 858 | # CONFIG_DEBUG_FS is not set | ||
| 859 | CONFIG_FRAME_POINTER=y | ||
| 860 | # CONFIG_DEBUG_USER is not set | ||
| 861 | # CONFIG_DEBUG_WAITQ is not set | ||
| 862 | CONFIG_DEBUG_ERRORS=y | ||
| 863 | # CONFIG_DEBUG_LL is not set | ||
| 864 | |||
| 865 | # | ||
| 866 | # Security options | ||
| 867 | # | ||
| 868 | # CONFIG_KEYS is not set | ||
| 869 | # CONFIG_SECURITY is not set | ||
| 870 | |||
| 871 | # | ||
| 872 | # Cryptographic options | ||
| 873 | # | ||
| 874 | # CONFIG_CRYPTO is not set | ||
| 875 | |||
| 876 | # | ||
| 877 | # Hardware crypto devices | ||
| 878 | # | ||
| 879 | |||
| 880 | # | ||
| 881 | # Library routines | ||
| 882 | # | ||
| 883 | # CONFIG_CRC_CCITT is not set | ||
| 884 | # CONFIG_CRC16 is not set | ||
| 885 | CONFIG_CRC32=y | ||
| 886 | # CONFIG_LIBCRC32C is not set | ||
| 887 | CONFIG_ZLIB_INFLATE=y | ||
| 888 | CONFIG_ZLIB_DEFLATE=y | ||
diff --git a/arch/arm/configs/corgi_defconfig b/arch/arm/configs/corgi_defconfig new file mode 100644 index 000000000000..24987c89609a --- /dev/null +++ b/arch/arm/configs/corgi_defconfig | |||
| @@ -0,0 +1,1523 @@ | |||
| 1 | # | ||
| 2 | # Automatically generated make config: don't edit | ||
| 3 | # Linux kernel version: 2.6.14-rc3 | ||
| 4 | # Sun Oct 9 15:46:42 2005 | ||
| 5 | # | ||
| 6 | CONFIG_ARM=y | ||
| 7 | CONFIG_MMU=y | ||
| 8 | CONFIG_UID16=y | ||
| 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
| 10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
| 11 | |||
| 12 | # | ||
| 13 | # Code maturity level options | ||
| 14 | # | ||
| 15 | CONFIG_EXPERIMENTAL=y | ||
| 16 | CONFIG_CLEAN_COMPILE=y | ||
| 17 | CONFIG_BROKEN_ON_SMP=y | ||
| 18 | CONFIG_LOCK_KERNEL=y | ||
| 19 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
| 20 | |||
| 21 | # | ||
| 22 | # General setup | ||
| 23 | # | ||
| 24 | CONFIG_LOCALVERSION="" | ||
| 25 | CONFIG_LOCALVERSION_AUTO=y | ||
| 26 | CONFIG_SWAP=y | ||
| 27 | CONFIG_SYSVIPC=y | ||
| 28 | # CONFIG_POSIX_MQUEUE is not set | ||
| 29 | CONFIG_BSD_PROCESS_ACCT=y | ||
| 30 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | ||
| 31 | CONFIG_SYSCTL=y | ||
| 32 | # CONFIG_AUDIT is not set | ||
| 33 | CONFIG_HOTPLUG=y | ||
| 34 | CONFIG_KOBJECT_UEVENT=y | ||
| 35 | # CONFIG_IKCONFIG is not set | ||
| 36 | CONFIG_INITRAMFS_SOURCE="" | ||
| 37 | CONFIG_EMBEDDED=y | ||
| 38 | CONFIG_KALLSYMS=y | ||
| 39 | # CONFIG_KALLSYMS_ALL is not set | ||
| 40 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
| 41 | CONFIG_PRINTK=y | ||
| 42 | CONFIG_BUG=y | ||
| 43 | CONFIG_BASE_FULL=y | ||
| 44 | CONFIG_FUTEX=y | ||
| 45 | CONFIG_EPOLL=y | ||
| 46 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
| 47 | CONFIG_SHMEM=y | ||
| 48 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
| 49 | CONFIG_CC_ALIGN_LABELS=0 | ||
| 50 | CONFIG_CC_ALIGN_LOOPS=0 | ||
| 51 | CONFIG_CC_ALIGN_JUMPS=0 | ||
| 52 | # CONFIG_TINY_SHMEM is not set | ||
| 53 | CONFIG_BASE_SMALL=0 | ||
| 54 | |||
| 55 | # | ||
| 56 | # Loadable module support | ||
| 57 | # | ||
| 58 | CONFIG_MODULES=y | ||
| 59 | CONFIG_MODULE_UNLOAD=y | ||
| 60 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
| 61 | CONFIG_OBSOLETE_MODPARM=y | ||
| 62 | # CONFIG_MODVERSIONS is not set | ||
| 63 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
| 64 | CONFIG_KMOD=y | ||
| 65 | |||
| 66 | # | ||
| 67 | # System Type | ||
| 68 | # | ||
| 69 | # CONFIG_ARCH_CLPS7500 is not set | ||
| 70 | # CONFIG_ARCH_CLPS711X is not set | ||
| 71 | # CONFIG_ARCH_CO285 is not set | ||
| 72 | # CONFIG_ARCH_EBSA110 is not set | ||
| 73 | # CONFIG_ARCH_CAMELOT is not set | ||
| 74 | # CONFIG_ARCH_FOOTBRIDGE is not set | ||
| 75 | # CONFIG_ARCH_INTEGRATOR is not set | ||
| 76 | # CONFIG_ARCH_IOP3XX is not set | ||
| 77 | # CONFIG_ARCH_IXP4XX is not set | ||
| 78 | # CONFIG_ARCH_IXP2000 is not set | ||
| 79 | # CONFIG_ARCH_L7200 is not set | ||
| 80 | CONFIG_ARCH_PXA=y | ||
| 81 | # CONFIG_ARCH_RPC is not set | ||
| 82 | # CONFIG_ARCH_SA1100 is not set | ||
| 83 | # CONFIG_ARCH_S3C2410 is not set | ||
| 84 | # CONFIG_ARCH_SHARK is not set | ||
| 85 | # CONFIG_ARCH_LH7A40X is not set | ||
| 86 | # CONFIG_ARCH_OMAP is not set | ||
| 87 | # CONFIG_ARCH_VERSATILE is not set | ||
| 88 | # CONFIG_ARCH_IMX is not set | ||
| 89 | # CONFIG_ARCH_H720X is not set | ||
| 90 | # CONFIG_ARCH_AAEC2000 is not set | ||
| 91 | |||
| 92 | # | ||
| 93 | # Intel PXA2xx Implementations | ||
| 94 | # | ||
| 95 | # CONFIG_ARCH_LUBBOCK is not set | ||
| 96 | # CONFIG_MACH_MAINSTONE is not set | ||
| 97 | # CONFIG_ARCH_PXA_IDP is not set | ||
| 98 | CONFIG_PXA_SHARPSL=y | ||
| 99 | CONFIG_PXA_SHARPSL_25x=y | ||
| 100 | # CONFIG_PXA_SHARPSL_27x is not set | ||
| 101 | # CONFIG_MACH_POODLE is not set | ||
| 102 | CONFIG_MACH_CORGI=y | ||
| 103 | CONFIG_MACH_SHEPHERD=y | ||
| 104 | CONFIG_MACH_HUSKY=y | ||
| 105 | CONFIG_PXA25x=y | ||
| 106 | CONFIG_PXA_SHARP_C7xx=y | ||
| 107 | |||
| 108 | # | ||
| 109 | # Processor Type | ||
| 110 | # | ||
| 111 | CONFIG_CPU_32=y | ||
| 112 | CONFIG_CPU_XSCALE=y | ||
| 113 | CONFIG_CPU_32v5=y | ||
| 114 | CONFIG_CPU_ABRT_EV5T=y | ||
| 115 | CONFIG_CPU_CACHE_VIVT=y | ||
| 116 | CONFIG_CPU_TLB_V4WBI=y | ||
| 117 | |||
| 118 | # | ||
| 119 | # Processor Features | ||
| 120 | # | ||
| 121 | CONFIG_ARM_THUMB=y | ||
| 122 | CONFIG_XSCALE_PMU=y | ||
| 123 | CONFIG_SHARP_PARAM=y | ||
| 124 | CONFIG_SHARP_SCOOP=y | ||
| 125 | |||
| 126 | # | ||
| 127 | # Bus support | ||
| 128 | # | ||
| 129 | CONFIG_ISA_DMA_API=y | ||
| 130 | |||
| 131 | # | ||
| 132 | # PCCARD (PCMCIA/CardBus) support | ||
| 133 | # | ||
| 134 | CONFIG_PCCARD=y | ||
| 135 | # CONFIG_PCMCIA_DEBUG is not set | ||
| 136 | CONFIG_PCMCIA=y | ||
| 137 | CONFIG_PCMCIA_LOAD_CIS=y | ||
| 138 | CONFIG_PCMCIA_IOCTL=y | ||
| 139 | |||
| 140 | # | ||
| 141 | # PC-card bridges | ||
| 142 | # | ||
| 143 | CONFIG_PCMCIA_PXA2XX=y | ||
| 144 | |||
| 145 | # | ||
| 146 | # Kernel Features | ||
| 147 | # | ||
| 148 | CONFIG_PREEMPT=y | ||
| 149 | # CONFIG_NO_IDLE_HZ is not set | ||
| 150 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set | ||
| 151 | CONFIG_SELECT_MEMORY_MODEL=y | ||
| 152 | CONFIG_FLATMEM_MANUAL=y | ||
| 153 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
| 154 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
| 155 | CONFIG_FLATMEM=y | ||
| 156 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
| 157 | # CONFIG_SPARSEMEM_STATIC is not set | ||
| 158 | CONFIG_ALIGNMENT_TRAP=y | ||
| 159 | |||
| 160 | # | ||
| 161 | # Boot options | ||
| 162 | # | ||
| 163 | CONFIG_ZBOOT_ROM_TEXT=0x0 | ||
| 164 | CONFIG_ZBOOT_ROM_BSS=0x0 | ||
| 165 | CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug" | ||
| 166 | # CONFIG_XIP_KERNEL is not set | ||
| 167 | |||
| 168 | # | ||
| 169 | # Floating point emulation | ||
| 170 | # | ||
| 171 | |||
| 172 | # | ||
| 173 | # At least one emulation must be selected | ||
| 174 | # | ||
| 175 | CONFIG_FPE_NWFPE=y | ||
| 176 | # CONFIG_FPE_NWFPE_XP is not set | ||
| 177 | # CONFIG_FPE_FASTFPE is not set | ||
| 178 | |||
| 179 | # | ||
| 180 | # Userspace binary formats | ||
| 181 | # | ||
| 182 | CONFIG_BINFMT_ELF=y | ||
| 183 | CONFIG_BINFMT_AOUT=m | ||
| 184 | CONFIG_BINFMT_MISC=m | ||
| 185 | # CONFIG_ARTHUR is not set | ||
| 186 | |||
| 187 | # | ||
| 188 | # Power management options | ||
| 189 | # | ||
| 190 | CONFIG_PM=y | ||
| 191 | CONFIG_APM=y | ||
| 192 | |||
| 193 | # | ||
| 194 | # Networking | ||
| 195 | # | ||
| 196 | CONFIG_NET=y | ||
| 197 | |||
| 198 | # | ||
| 199 | # Networking options | ||
| 200 | # | ||
| 201 | CONFIG_PACKET=y | ||
| 202 | CONFIG_PACKET_MMAP=y | ||
| 203 | CONFIG_UNIX=y | ||
| 204 | CONFIG_XFRM=y | ||
| 205 | CONFIG_XFRM_USER=m | ||
| 206 | # CONFIG_NET_KEY is not set | ||
| 207 | CONFIG_INET=y | ||
| 208 | # CONFIG_IP_MULTICAST is not set | ||
| 209 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
| 210 | CONFIG_IP_FIB_HASH=y | ||
| 211 | # CONFIG_IP_PNP is not set | ||
| 212 | # CONFIG_NET_IPIP is not set | ||
| 213 | # CONFIG_NET_IPGRE is not set | ||
| 214 | # CONFIG_ARPD is not set | ||
| 215 | CONFIG_SYN_COOKIES=y | ||
| 216 | # CONFIG_INET_AH is not set | ||
| 217 | # CONFIG_INET_ESP is not set | ||
| 218 | # CONFIG_INET_IPCOMP is not set | ||
| 219 | # CONFIG_INET_TUNNEL is not set | ||
| 220 | CONFIG_INET_DIAG=y | ||
| 221 | CONFIG_INET_TCP_DIAG=y | ||
| 222 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
| 223 | CONFIG_TCP_CONG_BIC=y | ||
| 224 | |||
| 225 | # | ||
| 226 | # IP: Virtual Server Configuration | ||
| 227 | # | ||
| 228 | # CONFIG_IP_VS is not set | ||
| 229 | CONFIG_IPV6=m | ||
| 230 | # CONFIG_IPV6_PRIVACY is not set | ||
| 231 | CONFIG_INET6_AH=m | ||
| 232 | CONFIG_INET6_ESP=m | ||
| 233 | CONFIG_INET6_IPCOMP=m | ||
| 234 | CONFIG_INET6_TUNNEL=m | ||
| 235 | CONFIG_IPV6_TUNNEL=m | ||
| 236 | CONFIG_NETFILTER=y | ||
| 237 | # CONFIG_NETFILTER_DEBUG is not set | ||
| 238 | # CONFIG_NETFILTER_NETLINK is not set | ||
| 239 | |||
| 240 | # | ||
| 241 | # IP: Netfilter Configuration | ||
| 242 | # | ||
| 243 | CONFIG_IP_NF_CONNTRACK=m | ||
| 244 | # CONFIG_IP_NF_CT_ACCT is not set | ||
| 245 | # CONFIG_IP_NF_CONNTRACK_MARK is not set | ||
| 246 | # CONFIG_IP_NF_CONNTRACK_EVENTS is not set | ||
| 247 | CONFIG_IP_NF_CT_PROTO_SCTP=m | ||
| 248 | CONFIG_IP_NF_FTP=m | ||
| 249 | CONFIG_IP_NF_IRC=m | ||
| 250 | # CONFIG_IP_NF_NETBIOS_NS is not set | ||
| 251 | CONFIG_IP_NF_TFTP=m | ||
| 252 | CONFIG_IP_NF_AMANDA=m | ||
| 253 | # CONFIG_IP_NF_PPTP is not set | ||
| 254 | CONFIG_IP_NF_QUEUE=m | ||
| 255 | CONFIG_IP_NF_IPTABLES=m | ||
| 256 | CONFIG_IP_NF_MATCH_LIMIT=m | ||
| 257 | CONFIG_IP_NF_MATCH_IPRANGE=m | ||
| 258 | CONFIG_IP_NF_MATCH_MAC=m | ||
| 259 | CONFIG_IP_NF_MATCH_PKTTYPE=m | ||
| 260 | CONFIG_IP_NF_MATCH_MARK=m | ||
| 261 | CONFIG_IP_NF_MATCH_MULTIPORT=m | ||
| 262 | CONFIG_IP_NF_MATCH_TOS=m | ||
| 263 | CONFIG_IP_NF_MATCH_RECENT=m | ||
| 264 | CONFIG_IP_NF_MATCH_ECN=m | ||
| 265 | CONFIG_IP_NF_MATCH_DSCP=m | ||
| 266 | CONFIG_IP_NF_MATCH_AH_ESP=m | ||
| 267 | CONFIG_IP_NF_MATCH_LENGTH=m | ||
| 268 | CONFIG_IP_NF_MATCH_TTL=m | ||
| 269 | CONFIG_IP_NF_MATCH_TCPMSS=m | ||
| 270 | CONFIG_IP_NF_MATCH_HELPER=m | ||
| 271 | CONFIG_IP_NF_MATCH_STATE=m | ||
| 272 | CONFIG_IP_NF_MATCH_CONNTRACK=m | ||
| 273 | CONFIG_IP_NF_MATCH_OWNER=m | ||
| 274 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | ||
| 275 | CONFIG_IP_NF_MATCH_REALM=m | ||
| 276 | CONFIG_IP_NF_MATCH_SCTP=m | ||
| 277 | # CONFIG_IP_NF_MATCH_DCCP is not set | ||
| 278 | CONFIG_IP_NF_MATCH_COMMENT=m | ||
| 279 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | ||
| 280 | # CONFIG_IP_NF_MATCH_STRING is not set | ||
| 281 | CONFIG_IP_NF_FILTER=m | ||
| 282 | # CONFIG_IP_NF_TARGET_REJECT is not set | ||
| 283 | CONFIG_IP_NF_TARGET_LOG=m | ||
| 284 | CONFIG_IP_NF_TARGET_ULOG=m | ||
| 285 | CONFIG_IP_NF_TARGET_TCPMSS=m | ||
| 286 | # CONFIG_IP_NF_TARGET_NFQUEUE is not set | ||
| 287 | CONFIG_IP_NF_NAT=m | ||
| 288 | CONFIG_IP_NF_NAT_NEEDED=y | ||
| 289 | # CONFIG_IP_NF_TARGET_MASQUERADE is not set | ||
| 290 | # CONFIG_IP_NF_TARGET_REDIRECT is not set | ||
| 291 | # CONFIG_IP_NF_TARGET_NETMAP is not set | ||
| 292 | # CONFIG_IP_NF_TARGET_SAME is not set | ||
| 293 | # CONFIG_IP_NF_NAT_SNMP_BASIC is not set | ||
| 294 | CONFIG_IP_NF_NAT_IRC=m | ||
| 295 | CONFIG_IP_NF_NAT_FTP=m | ||
| 296 | CONFIG_IP_NF_NAT_TFTP=m | ||
| 297 | CONFIG_IP_NF_NAT_AMANDA=m | ||
| 298 | CONFIG_IP_NF_MANGLE=m | ||
| 299 | # CONFIG_IP_NF_TARGET_TOS is not set | ||
| 300 | # CONFIG_IP_NF_TARGET_ECN is not set | ||
| 301 | # CONFIG_IP_NF_TARGET_DSCP is not set | ||
| 302 | # CONFIG_IP_NF_TARGET_MARK is not set | ||
| 303 | # CONFIG_IP_NF_TARGET_CLASSIFY is not set | ||
| 304 | # CONFIG_IP_NF_TARGET_TTL is not set | ||
| 305 | CONFIG_IP_NF_RAW=m | ||
| 306 | # CONFIG_IP_NF_TARGET_NOTRACK is not set | ||
| 307 | CONFIG_IP_NF_ARPTABLES=m | ||
| 308 | CONFIG_IP_NF_ARPFILTER=m | ||
| 309 | CONFIG_IP_NF_ARP_MANGLE=m | ||
| 310 | |||
| 311 | # | ||
| 312 | # IPv6: Netfilter Configuration (EXPERIMENTAL) | ||
| 313 | # | ||
| 314 | CONFIG_IP6_NF_QUEUE=m | ||
| 315 | CONFIG_IP6_NF_IPTABLES=m | ||
| 316 | CONFIG_IP6_NF_MATCH_LIMIT=m | ||
| 317 | CONFIG_IP6_NF_MATCH_MAC=m | ||
| 318 | CONFIG_IP6_NF_MATCH_RT=m | ||
| 319 | CONFIG_IP6_NF_MATCH_OPTS=m | ||
| 320 | CONFIG_IP6_NF_MATCH_FRAG=m | ||
| 321 | CONFIG_IP6_NF_MATCH_HL=m | ||
| 322 | CONFIG_IP6_NF_MATCH_MULTIPORT=m | ||
| 323 | CONFIG_IP6_NF_MATCH_OWNER=m | ||
| 324 | CONFIG_IP6_NF_MATCH_MARK=m | ||
| 325 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | ||
| 326 | CONFIG_IP6_NF_MATCH_AHESP=m | ||
| 327 | CONFIG_IP6_NF_MATCH_LENGTH=m | ||
| 328 | CONFIG_IP6_NF_MATCH_EUI64=m | ||
| 329 | CONFIG_IP6_NF_FILTER=m | ||
| 330 | # CONFIG_IP6_NF_TARGET_LOG is not set | ||
| 331 | # CONFIG_IP6_NF_TARGET_REJECT is not set | ||
| 332 | # CONFIG_IP6_NF_TARGET_NFQUEUE is not set | ||
| 333 | CONFIG_IP6_NF_MANGLE=m | ||
| 334 | # CONFIG_IP6_NF_TARGET_MARK is not set | ||
| 335 | # CONFIG_IP6_NF_TARGET_HL is not set | ||
| 336 | CONFIG_IP6_NF_RAW=m | ||
| 337 | |||
| 338 | # | ||
| 339 | # DCCP Configuration (EXPERIMENTAL) | ||
| 340 | # | ||
| 341 | # CONFIG_IP_DCCP is not set | ||
| 342 | |||
| 343 | # | ||
| 344 | # SCTP Configuration (EXPERIMENTAL) | ||
| 345 | # | ||
| 346 | # CONFIG_IP_SCTP is not set | ||
| 347 | # CONFIG_ATM is not set | ||
| 348 | # CONFIG_BRIDGE is not set | ||
| 349 | # CONFIG_VLAN_8021Q is not set | ||
| 350 | # CONFIG_DECNET is not set | ||
| 351 | # CONFIG_LLC2 is not set | ||
| 352 | # CONFIG_IPX is not set | ||
| 353 | # CONFIG_ATALK is not set | ||
| 354 | # CONFIG_X25 is not set | ||
| 355 | # CONFIG_LAPB is not set | ||
| 356 | # CONFIG_NET_DIVERT is not set | ||
| 357 | # CONFIG_ECONET is not set | ||
| 358 | # CONFIG_WAN_ROUTER is not set | ||
| 359 | # CONFIG_NET_SCHED is not set | ||
| 360 | CONFIG_NET_CLS_ROUTE=y | ||
| 361 | |||
| 362 | # | ||
| 363 | # Network testing | ||
| 364 | # | ||
| 365 | # CONFIG_NET_PKTGEN is not set | ||
| 366 | # CONFIG_HAMRADIO is not set | ||
| 367 | CONFIG_IRDA=m | ||
| 368 | |||
| 369 | # | ||
| 370 | # IrDA protocols | ||
| 371 | # | ||
| 372 | CONFIG_IRLAN=m | ||
| 373 | CONFIG_IRNET=m | ||
| 374 | CONFIG_IRCOMM=m | ||
| 375 | # CONFIG_IRDA_ULTRA is not set | ||
| 376 | |||
| 377 | # | ||
| 378 | # IrDA options | ||
| 379 | # | ||
| 380 | # CONFIG_IRDA_CACHE_LAST_LSAP is not set | ||
| 381 | # CONFIG_IRDA_FAST_RR is not set | ||
| 382 | # CONFIG_IRDA_DEBUG is not set | ||
| 383 | |||
| 384 | # | ||
| 385 | # Infrared-port device drivers | ||
| 386 | # | ||
| 387 | |||
| 388 | # | ||
| 389 | # SIR device drivers | ||
| 390 | # | ||
| 391 | # CONFIG_IRTTY_SIR is not set | ||
| 392 | |||
| 393 | # | ||
| 394 | # Dongle support | ||
| 395 | # | ||
| 396 | |||
| 397 | # | ||
| 398 | # Old SIR device drivers | ||
| 399 | # | ||
| 400 | # CONFIG_IRPORT_SIR is not set | ||
| 401 | |||
| 402 | # | ||
| 403 | # Old Serial dongle support | ||
| 404 | # | ||
| 405 | |||
| 406 | # | ||
| 407 | # FIR device drivers | ||
| 408 | # | ||
| 409 | # CONFIG_USB_IRDA is not set | ||
| 410 | # CONFIG_SIGMATEL_FIR is not set | ||
| 411 | # CONFIG_NSC_FIR is not set | ||
| 412 | # CONFIG_WINBOND_FIR is not set | ||
| 413 | # CONFIG_SMC_IRCC_FIR is not set | ||
| 414 | # CONFIG_ALI_FIR is not set | ||
| 415 | # CONFIG_VIA_FIR is not set | ||
| 416 | CONFIG_BT=m | ||
| 417 | CONFIG_BT_L2CAP=m | ||
| 418 | CONFIG_BT_SCO=m | ||
| 419 | CONFIG_BT_RFCOMM=m | ||
| 420 | CONFIG_BT_RFCOMM_TTY=y | ||
| 421 | CONFIG_BT_BNEP=m | ||
| 422 | CONFIG_BT_BNEP_MC_FILTER=y | ||
| 423 | CONFIG_BT_BNEP_PROTO_FILTER=y | ||
| 424 | CONFIG_BT_HIDP=m | ||
| 425 | |||
| 426 | # | ||
| 427 | # Bluetooth device drivers | ||
| 428 | # | ||
| 429 | CONFIG_BT_HCIUSB=m | ||
| 430 | # CONFIG_BT_HCIUSB_SCO is not set | ||
| 431 | CONFIG_BT_HCIUART=m | ||
| 432 | CONFIG_BT_HCIUART_H4=y | ||
| 433 | CONFIG_BT_HCIUART_BCSP=y | ||
| 434 | CONFIG_BT_HCIUART_BCSP_TXCRC=y | ||
| 435 | CONFIG_BT_HCIBCM203X=m | ||
| 436 | CONFIG_BT_HCIBPA10X=m | ||
| 437 | CONFIG_BT_HCIBFUSB=m | ||
| 438 | CONFIG_BT_HCIDTL1=m | ||
| 439 | CONFIG_BT_HCIBT3C=m | ||
| 440 | CONFIG_BT_HCIBLUECARD=m | ||
| 441 | CONFIG_BT_HCIBTUART=m | ||
| 442 | CONFIG_BT_HCIVHCI=m | ||
| 443 | CONFIG_IEEE80211=m | ||
| 444 | # CONFIG_IEEE80211_DEBUG is not set | ||
| 445 | CONFIG_IEEE80211_CRYPT_WEP=m | ||
| 446 | # CONFIG_IEEE80211_CRYPT_CCMP is not set | ||
| 447 | # CONFIG_IEEE80211_CRYPT_TKIP is not set | ||
| 448 | |||
| 449 | # | ||
| 450 | # Device Drivers | ||
| 451 | # | ||
| 452 | |||
| 453 | # | ||
| 454 | # Generic Driver Options | ||
| 455 | # | ||
| 456 | CONFIG_STANDALONE=y | ||
| 457 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
| 458 | CONFIG_FW_LOADER=y | ||
| 459 | # CONFIG_DEBUG_DRIVER is not set | ||
| 460 | |||
| 461 | # | ||
| 462 | # Memory Technology Devices (MTD) | ||
| 463 | # | ||
| 464 | CONFIG_MTD=y | ||
| 465 | # CONFIG_MTD_DEBUG is not set | ||
| 466 | # CONFIG_MTD_CONCAT is not set | ||
| 467 | CONFIG_MTD_PARTITIONS=y | ||
| 468 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
| 469 | CONFIG_MTD_CMDLINE_PARTS=y | ||
| 470 | # CONFIG_MTD_AFS_PARTS is not set | ||
| 471 | |||
| 472 | # | ||
| 473 | # User Modules And Translation Layers | ||
| 474 | # | ||
| 475 | CONFIG_MTD_CHAR=y | ||
| 476 | CONFIG_MTD_BLOCK=y | ||
| 477 | # CONFIG_FTL is not set | ||
| 478 | # CONFIG_NFTL is not set | ||
| 479 | # CONFIG_INFTL is not set | ||
| 480 | |||
| 481 | # | ||
| 482 | # RAM/ROM/Flash chip drivers | ||
| 483 | # | ||
| 484 | # CONFIG_MTD_CFI is not set | ||
| 485 | # CONFIG_MTD_JEDECPROBE is not set | ||
| 486 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
| 487 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
| 488 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
| 489 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
| 490 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
| 491 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
| 492 | CONFIG_MTD_CFI_I1=y | ||
| 493 | CONFIG_MTD_CFI_I2=y | ||
| 494 | # CONFIG_MTD_CFI_I4 is not set | ||
| 495 | # CONFIG_MTD_CFI_I8 is not set | ||
| 496 | # CONFIG_MTD_RAM is not set | ||
| 497 | CONFIG_MTD_ROM=y | ||
| 498 | # CONFIG_MTD_ABSENT is not set | ||
| 499 | |||
| 500 | # | ||
| 501 | # Mapping drivers for chip access | ||
| 502 | # | ||
| 503 | CONFIG_MTD_COMPLEX_MAPPINGS=y | ||
| 504 | CONFIG_MTD_SHARP_SL=y | ||
| 505 | # CONFIG_MTD_PLATRAM is not set | ||
| 506 | |||
| 507 | # | ||
| 508 | # Self-contained MTD device drivers | ||
| 509 | # | ||
| 510 | # CONFIG_MTD_SLRAM is not set | ||
| 511 | # CONFIG_MTD_PHRAM is not set | ||
| 512 | # CONFIG_MTD_MTDRAM is not set | ||
| 513 | # CONFIG_MTD_BLKMTD is not set | ||
| 514 | # CONFIG_MTD_BLOCK2MTD is not set | ||
| 515 | |||
| 516 | # | ||
| 517 | # Disk-On-Chip Device Drivers | ||
| 518 | # | ||
| 519 | # CONFIG_MTD_DOC2000 is not set | ||
| 520 | # CONFIG_MTD_DOC2001 is not set | ||
| 521 | # CONFIG_MTD_DOC2001PLUS is not set | ||
| 522 | |||
| 523 | # | ||
| 524 | # NAND Flash Device Drivers | ||
| 525 | # | ||
| 526 | CONFIG_MTD_NAND=y | ||
| 527 | CONFIG_MTD_NAND_VERIFY_WRITE=y | ||
| 528 | # CONFIG_MTD_NAND_H1900 is not set | ||
| 529 | CONFIG_MTD_NAND_IDS=y | ||
| 530 | # CONFIG_MTD_NAND_DISKONCHIP is not set | ||
| 531 | CONFIG_MTD_NAND_SHARPSL=y | ||
| 532 | # CONFIG_MTD_NAND_NANDSIM is not set | ||
| 533 | |||
| 534 | # | ||
| 535 | # Parallel port support | ||
| 536 | # | ||
| 537 | # CONFIG_PARPORT is not set | ||
| 538 | |||
| 539 | # | ||
| 540 | # Plug and Play support | ||
| 541 | # | ||
| 542 | |||
| 543 | # | ||
| 544 | # Block devices | ||
| 545 | # | ||
| 546 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
| 547 | CONFIG_BLK_DEV_LOOP=y | ||
| 548 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
| 549 | # CONFIG_BLK_DEV_NBD is not set | ||
| 550 | # CONFIG_BLK_DEV_UB is not set | ||
| 551 | # CONFIG_BLK_DEV_RAM is not set | ||
| 552 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
| 553 | # CONFIG_CDROM_PKTCDVD is not set | ||
| 554 | |||
| 555 | # | ||
| 556 | # IO Schedulers | ||
| 557 | # | ||
| 558 | CONFIG_IOSCHED_NOOP=y | ||
| 559 | CONFIG_IOSCHED_AS=y | ||
| 560 | CONFIG_IOSCHED_DEADLINE=y | ||
| 561 | CONFIG_IOSCHED_CFQ=y | ||
| 562 | # CONFIG_ATA_OVER_ETH is not set | ||
| 563 | |||
| 564 | # | ||
| 565 | # ATA/ATAPI/MFM/RLL support | ||
| 566 | # | ||
| 567 | CONFIG_IDE=y | ||
| 568 | CONFIG_BLK_DEV_IDE=y | ||
| 569 | |||
| 570 | # | ||
| 571 | # Please see Documentation/ide.txt for help/info on IDE drives | ||
| 572 | # | ||
| 573 | # CONFIG_BLK_DEV_IDE_SATA is not set | ||
| 574 | CONFIG_BLK_DEV_IDEDISK=y | ||
| 575 | # CONFIG_IDEDISK_MULTI_MODE is not set | ||
| 576 | CONFIG_BLK_DEV_IDECS=y | ||
| 577 | # CONFIG_BLK_DEV_IDECD is not set | ||
| 578 | # CONFIG_BLK_DEV_IDETAPE is not set | ||
| 579 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
| 580 | # CONFIG_BLK_DEV_IDESCSI is not set | ||
| 581 | # CONFIG_IDE_TASK_IOCTL is not set | ||
| 582 | |||
| 583 | # | ||
| 584 | # IDE chipset support/bugfixes | ||
| 585 | # | ||
| 586 | CONFIG_IDE_GENERIC=y | ||
| 587 | # CONFIG_IDE_ARM is not set | ||
| 588 | # CONFIG_BLK_DEV_IDEDMA is not set | ||
| 589 | # CONFIG_IDEDMA_AUTO is not set | ||
| 590 | # CONFIG_BLK_DEV_HD is not set | ||
| 591 | |||
| 592 | # | ||
| 593 | # SCSI device support | ||
| 594 | # | ||
| 595 | # CONFIG_RAID_ATTRS is not set | ||
| 596 | CONFIG_SCSI=m | ||
| 597 | CONFIG_SCSI_PROC_FS=y | ||
| 598 | |||
| 599 | # | ||
| 600 | # SCSI support type (disk, tape, CD-ROM) | ||
| 601 | # | ||
| 602 | CONFIG_BLK_DEV_SD=m | ||
| 603 | CONFIG_CHR_DEV_ST=m | ||
| 604 | CONFIG_CHR_DEV_OSST=m | ||
| 605 | CONFIG_BLK_DEV_SR=m | ||
| 606 | # CONFIG_BLK_DEV_SR_VENDOR is not set | ||
| 607 | CONFIG_CHR_DEV_SG=m | ||
| 608 | # CONFIG_CHR_DEV_SCH is not set | ||
| 609 | |||
| 610 | # | ||
| 611 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
| 612 | # | ||
| 613 | CONFIG_SCSI_MULTI_LUN=y | ||
| 614 | # CONFIG_SCSI_CONSTANTS is not set | ||
| 615 | # CONFIG_SCSI_LOGGING is not set | ||
| 616 | |||
| 617 | # | ||
| 618 | # SCSI Transport Attributes | ||
| 619 | # | ||
| 620 | # CONFIG_SCSI_SPI_ATTRS is not set | ||
| 621 | # CONFIG_SCSI_FC_ATTRS is not set | ||
| 622 | # CONFIG_SCSI_ISCSI_ATTRS is not set | ||
| 623 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
| 624 | |||
| 625 | # | ||
| 626 | # SCSI low-level drivers | ||
| 627 | # | ||
| 628 | # CONFIG_SCSI_SATA is not set | ||
| 629 | # CONFIG_SCSI_DEBUG is not set | ||
| 630 | |||
| 631 | # | ||
| 632 | # PCMCIA SCSI adapter support | ||
| 633 | # | ||
| 634 | # CONFIG_PCMCIA_AHA152X is not set | ||
| 635 | # CONFIG_PCMCIA_FDOMAIN is not set | ||
| 636 | # CONFIG_PCMCIA_NINJA_SCSI is not set | ||
| 637 | # CONFIG_PCMCIA_QLOGIC is not set | ||
| 638 | # CONFIG_PCMCIA_SYM53C500 is not set | ||
| 639 | |||
| 640 | # | ||
| 641 | # Multi-device support (RAID and LVM) | ||
| 642 | # | ||
| 643 | # CONFIG_MD is not set | ||
| 644 | |||
| 645 | # | ||
| 646 | # Fusion MPT device support | ||
| 647 | # | ||
| 648 | # CONFIG_FUSION is not set | ||
| 649 | |||
| 650 | # | ||
| 651 | # IEEE 1394 (FireWire) support | ||
| 652 | # | ||
| 653 | |||
| 654 | # | ||
| 655 | # I2O device support | ||
| 656 | # | ||
| 657 | |||
| 658 | # | ||
| 659 | # Network device support | ||
| 660 | # | ||
| 661 | CONFIG_NETDEVICES=y | ||
| 662 | # CONFIG_DUMMY is not set | ||
| 663 | # CONFIG_BONDING is not set | ||
| 664 | # CONFIG_EQUALIZER is not set | ||
| 665 | # CONFIG_TUN is not set | ||
| 666 | |||
| 667 | # | ||
| 668 | # PHY device support | ||
| 669 | # | ||
| 670 | # CONFIG_PHYLIB is not set | ||
| 671 | |||
| 672 | # | ||
| 673 | # Ethernet (10 or 100Mbit) | ||
| 674 | # | ||
| 675 | CONFIG_NET_ETHERNET=y | ||
| 676 | CONFIG_MII=m | ||
| 677 | # CONFIG_SMC91X is not set | ||
| 678 | # CONFIG_DM9000 is not set | ||
| 679 | |||
| 680 | # | ||
| 681 | # Ethernet (1000 Mbit) | ||
| 682 | # | ||
| 683 | |||
| 684 | # | ||
| 685 | # Ethernet (10000 Mbit) | ||
| 686 | # | ||
| 687 | |||
| 688 | # | ||
| 689 | # Token Ring devices | ||
| 690 | # | ||
| 691 | |||
| 692 | # | ||
| 693 | # Wireless LAN (non-hamradio) | ||
| 694 | # | ||
| 695 | CONFIG_NET_RADIO=y | ||
| 696 | |||
| 697 | # | ||
| 698 | # Obsolete Wireless cards support (pre-802.11) | ||
| 699 | # | ||
| 700 | # CONFIG_STRIP is not set | ||
| 701 | # CONFIG_PCMCIA_WAVELAN is not set | ||
| 702 | # CONFIG_PCMCIA_NETWAVE is not set | ||
| 703 | |||
| 704 | # | ||
| 705 | # Wireless 802.11 Frequency Hopping cards support | ||
| 706 | # | ||
| 707 | # CONFIG_PCMCIA_RAYCS is not set | ||
| 708 | |||
| 709 | # | ||
| 710 | # Wireless 802.11b ISA/PCI cards support | ||
| 711 | # | ||
| 712 | CONFIG_HERMES=m | ||
| 713 | # CONFIG_ATMEL is not set | ||
| 714 | |||
| 715 | # | ||
| 716 | # Wireless 802.11b Pcmcia/Cardbus cards support | ||
| 717 | # | ||
| 718 | CONFIG_PCMCIA_HERMES=m | ||
| 719 | CONFIG_PCMCIA_SPECTRUM=m | ||
| 720 | # CONFIG_AIRO_CS is not set | ||
| 721 | # CONFIG_PCMCIA_WL3501 is not set | ||
| 722 | CONFIG_HOSTAP=m | ||
| 723 | CONFIG_HOSTAP_FIRMWARE=y | ||
| 724 | CONFIG_HOSTAP_CS=m | ||
| 725 | CONFIG_NET_WIRELESS=y | ||
| 726 | |||
| 727 | # | ||
| 728 | # PCMCIA network device support | ||
| 729 | # | ||
| 730 | CONFIG_NET_PCMCIA=y | ||
| 731 | # CONFIG_PCMCIA_3C589 is not set | ||
| 732 | # CONFIG_PCMCIA_3C574 is not set | ||
| 733 | # CONFIG_PCMCIA_FMVJ18X is not set | ||
| 734 | CONFIG_PCMCIA_PCNET=m | ||
| 735 | # CONFIG_PCMCIA_NMCLAN is not set | ||
| 736 | # CONFIG_PCMCIA_SMC91C92 is not set | ||
| 737 | # CONFIG_PCMCIA_XIRC2PS is not set | ||
| 738 | # CONFIG_PCMCIA_AXNET is not set | ||
| 739 | |||
| 740 | # | ||
| 741 | # Wan interfaces | ||
| 742 | # | ||
| 743 | # CONFIG_WAN is not set | ||
| 744 | CONFIG_PPP=m | ||
| 745 | # CONFIG_PPP_MULTILINK is not set | ||
| 746 | # CONFIG_PPP_FILTER is not set | ||
| 747 | CONFIG_PPP_ASYNC=m | ||
| 748 | # CONFIG_PPP_SYNC_TTY is not set | ||
| 749 | # CONFIG_PPP_DEFLATE is not set | ||
| 750 | CONFIG_PPP_BSDCOMP=m | ||
| 751 | # CONFIG_PPPOE is not set | ||
| 752 | # CONFIG_SLIP is not set | ||
| 753 | # CONFIG_SHAPER is not set | ||
| 754 | # CONFIG_NETCONSOLE is not set | ||
| 755 | # CONFIG_NETPOLL is not set | ||
| 756 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
| 757 | |||
| 758 | # | ||
| 759 | # ISDN subsystem | ||
| 760 | # | ||
| 761 | # CONFIG_ISDN is not set | ||
| 762 | |||
| 763 | # | ||
| 764 | # Input device support | ||
| 765 | # | ||
| 766 | CONFIG_INPUT=y | ||
| 767 | |||
| 768 | # | ||
| 769 | # Userland interfaces | ||
| 770 | # | ||
| 771 | # CONFIG_INPUT_MOUSEDEV is not set | ||
| 772 | # CONFIG_INPUT_JOYDEV is not set | ||
| 773 | # CONFIG_INPUT_TSDEV is not set | ||
| 774 | CONFIG_INPUT_EVDEV=y | ||
| 775 | # CONFIG_INPUT_EVBUG is not set | ||
| 776 | |||
| 777 | # | ||
| 778 | # Input Device Drivers | ||
| 779 | # | ||
| 780 | CONFIG_INPUT_KEYBOARD=y | ||
| 781 | # CONFIG_KEYBOARD_ATKBD is not set | ||
| 782 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
| 783 | # CONFIG_KEYBOARD_LKKBD is not set | ||
| 784 | # CONFIG_KEYBOARD_XTKBD is not set | ||
| 785 | # CONFIG_KEYBOARD_NEWTON is not set | ||
| 786 | CONFIG_KEYBOARD_CORGI=y | ||
| 787 | CONFIG_KEYBOARD_SPITZ=y | ||
| 788 | # CONFIG_INPUT_MOUSE is not set | ||
| 789 | # CONFIG_INPUT_JOYSTICK is not set | ||
| 790 | CONFIG_INPUT_TOUCHSCREEN=y | ||
| 791 | CONFIG_TOUCHSCREEN_CORGI=y | ||
| 792 | # CONFIG_TOUCHSCREEN_GUNZE is not set | ||
| 793 | # CONFIG_TOUCHSCREEN_ELO is not set | ||
| 794 | # CONFIG_TOUCHSCREEN_MTOUCH is not set | ||
| 795 | # CONFIG_TOUCHSCREEN_MK712 is not set | ||
| 796 | CONFIG_INPUT_MISC=y | ||
| 797 | CONFIG_INPUT_UINPUT=m | ||
| 798 | |||
| 799 | # | ||
| 800 | # Hardware I/O ports | ||
| 801 | # | ||
| 802 | # CONFIG_SERIO is not set | ||
| 803 | # CONFIG_GAMEPORT is not set | ||
| 804 | |||
| 805 | # | ||
| 806 | # Character devices | ||
| 807 | # | ||
| 808 | CONFIG_VT=y | ||
| 809 | CONFIG_VT_CONSOLE=y | ||
| 810 | CONFIG_HW_CONSOLE=y | ||
| 811 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
| 812 | |||
| 813 | # | ||
| 814 | # Serial drivers | ||
| 815 | # | ||
| 816 | CONFIG_SERIAL_8250=m | ||
| 817 | CONFIG_SERIAL_8250_CS=m | ||
| 818 | CONFIG_SERIAL_8250_NR_UARTS=4 | ||
| 819 | # CONFIG_SERIAL_8250_EXTENDED is not set | ||
| 820 | |||
| 821 | # | ||
| 822 | # Non-8250 serial port support | ||
| 823 | # | ||
| 824 | CONFIG_SERIAL_PXA=y | ||
| 825 | CONFIG_SERIAL_PXA_CONSOLE=y | ||
| 826 | CONFIG_SERIAL_CORE=y | ||
| 827 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
| 828 | CONFIG_UNIX98_PTYS=y | ||
| 829 | # CONFIG_LEGACY_PTYS is not set | ||
| 830 | |||
| 831 | # | ||
| 832 | # IPMI | ||
| 833 | # | ||
| 834 | # CONFIG_IPMI_HANDLER is not set | ||
| 835 | |||
| 836 | # | ||
| 837 | # Watchdog Cards | ||
| 838 | # | ||
| 839 | # CONFIG_WATCHDOG is not set | ||
| 840 | # CONFIG_NVRAM is not set | ||
| 841 | # CONFIG_RTC is not set | ||
| 842 | # CONFIG_DTLK is not set | ||
| 843 | # CONFIG_R3964 is not set | ||
| 844 | |||
| 845 | # | ||
| 846 | # Ftape, the floppy tape device driver | ||
| 847 | # | ||
| 848 | |||
| 849 | # | ||
| 850 | # PCMCIA character devices | ||
| 851 | # | ||
| 852 | # CONFIG_SYNCLINK_CS is not set | ||
| 853 | # CONFIG_RAW_DRIVER is not set | ||
| 854 | |||
| 855 | # | ||
| 856 | # TPM devices | ||
| 857 | # | ||
| 858 | |||
| 859 | # | ||
| 860 | # I2C support | ||
| 861 | # | ||
| 862 | CONFIG_I2C=y | ||
| 863 | # CONFIG_I2C_CHARDEV is not set | ||
| 864 | |||
| 865 | # | ||
| 866 | # I2C Algorithms | ||
| 867 | # | ||
| 868 | CONFIG_I2C_ALGOBIT=y | ||
| 869 | # CONFIG_I2C_ALGOPCF is not set | ||
| 870 | # CONFIG_I2C_ALGOPCA is not set | ||
| 871 | |||
| 872 | # | ||
| 873 | # I2C Hardware Bus support | ||
| 874 | # | ||
| 875 | CONFIG_I2C_PXA=y | ||
| 876 | # CONFIG_I2C_PXA_SLAVE is not set | ||
| 877 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
| 878 | # CONFIG_I2C_STUB is not set | ||
| 879 | # CONFIG_I2C_PCA_ISA is not set | ||
| 880 | |||
| 881 | # | ||
| 882 | # Miscellaneous I2C Chip support | ||
| 883 | # | ||
| 884 | # CONFIG_SENSORS_DS1337 is not set | ||
| 885 | # CONFIG_SENSORS_DS1374 is not set | ||
| 886 | # CONFIG_SENSORS_EEPROM is not set | ||
| 887 | # CONFIG_SENSORS_PCF8574 is not set | ||
| 888 | # CONFIG_SENSORS_PCA9539 is not set | ||
| 889 | # CONFIG_SENSORS_PCF8591 is not set | ||
| 890 | # CONFIG_SENSORS_RTC8564 is not set | ||
| 891 | # CONFIG_SENSORS_MAX6875 is not set | ||
| 892 | # CONFIG_I2C_DEBUG_CORE is not set | ||
| 893 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
| 894 | # CONFIG_I2C_DEBUG_BUS is not set | ||
| 895 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
| 896 | |||
| 897 | # | ||
| 898 | # Hardware Monitoring support | ||
| 899 | # | ||
| 900 | CONFIG_HWMON=y | ||
| 901 | # CONFIG_HWMON_VID is not set | ||
| 902 | # CONFIG_SENSORS_ADM1021 is not set | ||
| 903 | # CONFIG_SENSORS_ADM1025 is not set | ||
| 904 | # CONFIG_SENSORS_ADM1026 is not set | ||
| 905 | # CONFIG_SENSORS_ADM1031 is not set | ||
| 906 | # CONFIG_SENSORS_ADM9240 is not set | ||
| 907 | # CONFIG_SENSORS_ASB100 is not set | ||
| 908 | # CONFIG_SENSORS_ATXP1 is not set | ||
| 909 | # CONFIG_SENSORS_DS1621 is not set | ||
| 910 | # CONFIG_SENSORS_FSCHER is not set | ||
| 911 | # CONFIG_SENSORS_FSCPOS is not set | ||
| 912 | # CONFIG_SENSORS_GL518SM is not set | ||
| 913 | # CONFIG_SENSORS_GL520SM is not set | ||
| 914 | # CONFIG_SENSORS_IT87 is not set | ||
| 915 | # CONFIG_SENSORS_LM63 is not set | ||
| 916 | # CONFIG_SENSORS_LM75 is not set | ||
| 917 | # CONFIG_SENSORS_LM77 is not set | ||
| 918 | # CONFIG_SENSORS_LM78 is not set | ||
| 919 | # CONFIG_SENSORS_LM80 is not set | ||
| 920 | # CONFIG_SENSORS_LM83 is not set | ||
| 921 | # CONFIG_SENSORS_LM85 is not set | ||
| 922 | # CONFIG_SENSORS_LM87 is not set | ||
| 923 | # CONFIG_SENSORS_LM90 is not set | ||
| 924 | # CONFIG_SENSORS_LM92 is not set | ||
| 925 | # CONFIG_SENSORS_MAX1619 is not set | ||
| 926 | # CONFIG_SENSORS_PC87360 is not set | ||
| 927 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
| 928 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
| 929 | # CONFIG_SENSORS_W83781D is not set | ||
| 930 | # CONFIG_SENSORS_W83792D is not set | ||
| 931 | # CONFIG_SENSORS_W83L785TS is not set | ||
| 932 | # CONFIG_SENSORS_W83627HF is not set | ||
| 933 | # CONFIG_SENSORS_W83627EHF is not set | ||
| 934 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
| 935 | |||
| 936 | # | ||
| 937 | # Misc devices | ||
| 938 | # | ||
| 939 | |||
| 940 | # | ||
| 941 | # Multimedia Capabilities Port drivers | ||
| 942 | # | ||
| 943 | |||
| 944 | # | ||
| 945 | # Multimedia devices | ||
| 946 | # | ||
| 947 | CONFIG_VIDEO_DEV=m | ||
| 948 | |||
| 949 | # | ||
| 950 | # Video For Linux | ||
| 951 | # | ||
| 952 | |||
| 953 | # | ||
| 954 | # Video Adapters | ||
| 955 | # | ||
| 956 | # CONFIG_VIDEO_CPIA is not set | ||
| 957 | # CONFIG_VIDEO_SAA5246A is not set | ||
| 958 | # CONFIG_VIDEO_SAA5249 is not set | ||
| 959 | # CONFIG_TUNER_3036 is not set | ||
| 960 | # CONFIG_VIDEO_OVCAMCHIP is not set | ||
| 961 | |||
| 962 | # | ||
| 963 | # Radio Adapters | ||
| 964 | # | ||
| 965 | # CONFIG_RADIO_MAESTRO is not set | ||
| 966 | |||
| 967 | # | ||
| 968 | # Digital Video Broadcasting Devices | ||
| 969 | # | ||
| 970 | # CONFIG_DVB is not set | ||
| 971 | |||
| 972 | # | ||
| 973 | # Graphics support | ||
| 974 | # | ||
| 975 | CONFIG_FB=y | ||
| 976 | CONFIG_FB_CFB_FILLRECT=y | ||
| 977 | CONFIG_FB_CFB_COPYAREA=y | ||
| 978 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
| 979 | CONFIG_FB_SOFT_CURSOR=y | ||
| 980 | # CONFIG_FB_MACMODES is not set | ||
| 981 | # CONFIG_FB_MODE_HELPERS is not set | ||
| 982 | # CONFIG_FB_TILEBLITTING is not set | ||
| 983 | # CONFIG_FB_PXA is not set | ||
| 984 | CONFIG_FB_W100=y | ||
| 985 | # CONFIG_FB_S1D13XXX is not set | ||
| 986 | # CONFIG_FB_VIRTUAL is not set | ||
| 987 | |||
| 988 | # | ||
| 989 | # Console display driver support | ||
| 990 | # | ||
| 991 | # CONFIG_VGA_CONSOLE is not set | ||
| 992 | CONFIG_DUMMY_CONSOLE=y | ||
| 993 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
| 994 | CONFIG_FONTS=y | ||
| 995 | CONFIG_FONT_8x8=y | ||
| 996 | CONFIG_FONT_8x16=y | ||
| 997 | # CONFIG_FONT_6x11 is not set | ||
| 998 | # CONFIG_FONT_7x14 is not set | ||
| 999 | # CONFIG_FONT_PEARL_8x8 is not set | ||
| 1000 | # CONFIG_FONT_ACORN_8x8 is not set | ||
| 1001 | # CONFIG_FONT_MINI_4x6 is not set | ||
| 1002 | # CONFIG_FONT_SUN8x16 is not set | ||
| 1003 | # CONFIG_FONT_SUN12x22 is not set | ||
| 1004 | # CONFIG_FONT_10x18 is not set | ||
| 1005 | |||
| 1006 | # | ||
| 1007 | # Logo configuration | ||
| 1008 | # | ||
| 1009 | # CONFIG_LOGO is not set | ||
| 1010 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
| 1011 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
| 1012 | CONFIG_BACKLIGHT_DEVICE=y | ||
| 1013 | # CONFIG_LCD_CLASS_DEVICE is not set | ||
| 1014 | CONFIG_BACKLIGHT_CORGI=y | ||
| 1015 | |||
| 1016 | # | ||
| 1017 | # Sound | ||
| 1018 | # | ||
| 1019 | CONFIG_SOUND=y | ||
| 1020 | |||
| 1021 | # | ||
| 1022 | # Advanced Linux Sound Architecture | ||
| 1023 | # | ||
| 1024 | # CONFIG_SND is not set | ||
| 1025 | |||
| 1026 | # | ||
| 1027 | # Open Sound System | ||
| 1028 | # | ||
| 1029 | CONFIG_SOUND_PRIME=y | ||
| 1030 | # CONFIG_SOUND_MSNDCLAS is not set | ||
| 1031 | # CONFIG_SOUND_MSNDPIN is not set | ||
| 1032 | CONFIG_SOUND_OSS=y | ||
| 1033 | # CONFIG_SOUND_TRACEINIT is not set | ||
| 1034 | # CONFIG_SOUND_DMAP is not set | ||
| 1035 | # CONFIG_SOUND_AD1816 is not set | ||
| 1036 | # CONFIG_SOUND_SGALAXY is not set | ||
| 1037 | # CONFIG_SOUND_ADLIB is not set | ||
| 1038 | # CONFIG_SOUND_ACI_MIXER is not set | ||
| 1039 | # CONFIG_SOUND_CS4232 is not set | ||
| 1040 | # CONFIG_SOUND_SSCAPE is not set | ||
| 1041 | # CONFIG_SOUND_GUS is not set | ||
| 1042 | # CONFIG_SOUND_VMIDI is not set | ||
| 1043 | # CONFIG_SOUND_TRIX is not set | ||
| 1044 | # CONFIG_SOUND_MSS is not set | ||
| 1045 | # CONFIG_SOUND_MPU401 is not set | ||
| 1046 | # CONFIG_SOUND_NM256 is not set | ||
| 1047 | # CONFIG_SOUND_MAD16 is not set | ||
| 1048 | # CONFIG_SOUND_PAS is not set | ||
| 1049 | # CONFIG_SOUND_PSS is not set | ||
| 1050 | # CONFIG_SOUND_SB is not set | ||
| 1051 | # CONFIG_SOUND_AWE32_SYNTH is not set | ||
| 1052 | # CONFIG_SOUND_WAVEFRONT is not set | ||
| 1053 | # CONFIG_SOUND_MAUI is not set | ||
| 1054 | # CONFIG_SOUND_YM3812 is not set | ||
| 1055 | # CONFIG_SOUND_OPL3SA1 is not set | ||
| 1056 | # CONFIG_SOUND_OPL3SA2 is not set | ||
| 1057 | # CONFIG_SOUND_UART6850 is not set | ||
| 1058 | # CONFIG_SOUND_AEDSP16 is not set | ||
| 1059 | # CONFIG_SOUND_TVMIXER is not set | ||
| 1060 | # CONFIG_SOUND_AD1980 is not set | ||
| 1061 | |||
| 1062 | # | ||
| 1063 | # USB support | ||
| 1064 | # | ||
| 1065 | CONFIG_USB_ARCH_HAS_HCD=y | ||
| 1066 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
| 1067 | CONFIG_USB=m | ||
| 1068 | # CONFIG_USB_DEBUG is not set | ||
| 1069 | |||
| 1070 | # | ||
| 1071 | # Miscellaneous USB options | ||
| 1072 | # | ||
| 1073 | CONFIG_USB_DEVICEFS=y | ||
| 1074 | # CONFIG_USB_BANDWIDTH is not set | ||
| 1075 | # CONFIG_USB_DYNAMIC_MINORS is not set | ||
| 1076 | # CONFIG_USB_SUSPEND is not set | ||
| 1077 | # CONFIG_USB_OTG is not set | ||
| 1078 | |||
| 1079 | # | ||
| 1080 | # USB Host Controller Drivers | ||
| 1081 | # | ||
| 1082 | # CONFIG_USB_ISP116X_HCD is not set | ||
| 1083 | CONFIG_USB_SL811_HCD=m | ||
| 1084 | CONFIG_USB_SL811_CS=m | ||
| 1085 | |||
| 1086 | # | ||
| 1087 | # USB Device Class drivers | ||
| 1088 | # | ||
| 1089 | # CONFIG_OBSOLETE_OSS_USB_DRIVER is not set | ||
| 1090 | |||
| 1091 | # | ||
| 1092 | # USB Bluetooth TTY can only be used with disabled Bluetooth subsystem | ||
| 1093 | # | ||
| 1094 | CONFIG_USB_ACM=m | ||
| 1095 | CONFIG_USB_PRINTER=m | ||
| 1096 | |||
| 1097 | # | ||
| 1098 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information | ||
| 1099 | # | ||
| 1100 | CONFIG_USB_STORAGE=m | ||
| 1101 | # CONFIG_USB_STORAGE_DEBUG is not set | ||
| 1102 | # CONFIG_USB_STORAGE_DATAFAB is not set | ||
| 1103 | # CONFIG_USB_STORAGE_FREECOM is not set | ||
| 1104 | # CONFIG_USB_STORAGE_ISD200 is not set | ||
| 1105 | # CONFIG_USB_STORAGE_DPCM is not set | ||
| 1106 | # CONFIG_USB_STORAGE_USBAT is not set | ||
| 1107 | # CONFIG_USB_STORAGE_SDDR09 is not set | ||
| 1108 | # CONFIG_USB_STORAGE_SDDR55 is not set | ||
| 1109 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | ||
| 1110 | # CONFIG_USB_STORAGE_ONETOUCH is not set | ||
| 1111 | |||
| 1112 | # | ||
| 1113 | # USB Input Devices | ||
| 1114 | # | ||
| 1115 | CONFIG_USB_HID=m | ||
| 1116 | CONFIG_USB_HIDINPUT=y | ||
| 1117 | # CONFIG_HID_FF is not set | ||
| 1118 | # CONFIG_USB_HIDDEV is not set | ||
| 1119 | |||
| 1120 | # | ||
| 1121 | # USB HID Boot Protocol drivers | ||
| 1122 | # | ||
| 1123 | CONFIG_USB_KBD=m | ||
| 1124 | CONFIG_USB_MOUSE=m | ||
| 1125 | CONFIG_USB_AIPTEK=m | ||
| 1126 | CONFIG_USB_WACOM=m | ||
| 1127 | # CONFIG_USB_ACECAD is not set | ||
| 1128 | CONFIG_USB_KBTAB=m | ||
| 1129 | CONFIG_USB_POWERMATE=m | ||
| 1130 | CONFIG_USB_MTOUCH=m | ||
| 1131 | # CONFIG_USB_ITMTOUCH is not set | ||
| 1132 | CONFIG_USB_EGALAX=m | ||
| 1133 | # CONFIG_USB_YEALINK is not set | ||
| 1134 | CONFIG_USB_XPAD=m | ||
| 1135 | CONFIG_USB_ATI_REMOTE=m | ||
| 1136 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
| 1137 | # CONFIG_USB_APPLETOUCH is not set | ||
| 1138 | |||
| 1139 | # | ||
| 1140 | # USB Imaging devices | ||
| 1141 | # | ||
| 1142 | CONFIG_USB_MDC800=m | ||
| 1143 | CONFIG_USB_MICROTEK=m | ||
| 1144 | |||
| 1145 | # | ||
| 1146 | # USB Multimedia devices | ||
| 1147 | # | ||
| 1148 | CONFIG_USB_DABUSB=m | ||
| 1149 | CONFIG_USB_VICAM=m | ||
| 1150 | CONFIG_USB_DSBR=m | ||
| 1151 | CONFIG_USB_IBMCAM=m | ||
| 1152 | CONFIG_USB_KONICAWC=m | ||
| 1153 | CONFIG_USB_OV511=m | ||
| 1154 | CONFIG_USB_SE401=m | ||
| 1155 | CONFIG_USB_SN9C102=m | ||
| 1156 | CONFIG_USB_STV680=m | ||
| 1157 | # CONFIG_USB_PWC is not set | ||
| 1158 | |||
| 1159 | # | ||
| 1160 | # USB Network Adapters | ||
| 1161 | # | ||
| 1162 | CONFIG_USB_CATC=m | ||
| 1163 | CONFIG_USB_KAWETH=m | ||
| 1164 | CONFIG_USB_PEGASUS=m | ||
| 1165 | CONFIG_USB_RTL8150=m | ||
| 1166 | CONFIG_USB_USBNET=m | ||
| 1167 | CONFIG_USB_NET_AX8817X=m | ||
| 1168 | CONFIG_USB_NET_CDCETHER=m | ||
| 1169 | # CONFIG_USB_NET_GL620A is not set | ||
| 1170 | CONFIG_USB_NET_NET1080=m | ||
| 1171 | # CONFIG_USB_NET_PLUSB is not set | ||
| 1172 | # CONFIG_USB_NET_RNDIS_HOST is not set | ||
| 1173 | # CONFIG_USB_NET_CDC_SUBSET is not set | ||
| 1174 | CONFIG_USB_NET_ZAURUS=m | ||
| 1175 | # CONFIG_USB_ZD1201 is not set | ||
| 1176 | CONFIG_USB_MON=y | ||
| 1177 | |||
| 1178 | # | ||
| 1179 | # USB port drivers | ||
| 1180 | # | ||
| 1181 | |||
| 1182 | # | ||
| 1183 | # USB Serial Converter support | ||
| 1184 | # | ||
| 1185 | CONFIG_USB_SERIAL=m | ||
| 1186 | CONFIG_USB_SERIAL_GENERIC=y | ||
| 1187 | # CONFIG_USB_SERIAL_AIRPRIME is not set | ||
| 1188 | CONFIG_USB_SERIAL_BELKIN=m | ||
| 1189 | # CONFIG_USB_SERIAL_WHITEHEAT is not set | ||
| 1190 | CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m | ||
| 1191 | # CONFIG_USB_SERIAL_CP2101 is not set | ||
| 1192 | CONFIG_USB_SERIAL_CYPRESS_M8=m | ||
| 1193 | CONFIG_USB_SERIAL_EMPEG=m | ||
| 1194 | CONFIG_USB_SERIAL_FTDI_SIO=m | ||
| 1195 | CONFIG_USB_SERIAL_VISOR=m | ||
| 1196 | CONFIG_USB_SERIAL_IPAQ=m | ||
| 1197 | CONFIG_USB_SERIAL_IR=m | ||
| 1198 | CONFIG_USB_SERIAL_EDGEPORT=m | ||
| 1199 | CONFIG_USB_SERIAL_EDGEPORT_TI=m | ||
| 1200 | CONFIG_USB_SERIAL_GARMIN=m | ||
| 1201 | CONFIG_USB_SERIAL_IPW=m | ||
| 1202 | CONFIG_USB_SERIAL_KEYSPAN_PDA=m | ||
| 1203 | CONFIG_USB_SERIAL_KEYSPAN=m | ||
| 1204 | # CONFIG_USB_SERIAL_KEYSPAN_MPR is not set | ||
| 1205 | # CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set | ||
| 1206 | # CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set | ||
| 1207 | # CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set | ||
| 1208 | # CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set | ||
| 1209 | # CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set | ||
| 1210 | # CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set | ||
| 1211 | # CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set | ||
| 1212 | # CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set | ||
| 1213 | # CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set | ||
| 1214 | # CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set | ||
| 1215 | # CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set | ||
| 1216 | CONFIG_USB_SERIAL_KLSI=m | ||
| 1217 | CONFIG_USB_SERIAL_KOBIL_SCT=m | ||
| 1218 | CONFIG_USB_SERIAL_MCT_U232=m | ||
| 1219 | CONFIG_USB_SERIAL_PL2303=m | ||
| 1220 | # CONFIG_USB_SERIAL_HP4X is not set | ||
| 1221 | CONFIG_USB_SERIAL_SAFE=m | ||
| 1222 | # CONFIG_USB_SERIAL_SAFE_PADDED is not set | ||
| 1223 | CONFIG_USB_SERIAL_TI=m | ||
| 1224 | CONFIG_USB_SERIAL_CYBERJACK=m | ||
| 1225 | CONFIG_USB_SERIAL_XIRCOM=m | ||
| 1226 | CONFIG_USB_SERIAL_OMNINET=m | ||
| 1227 | CONFIG_USB_EZUSB=y | ||
| 1228 | |||
| 1229 | # | ||
| 1230 | # USB Miscellaneous drivers | ||
| 1231 | # | ||
| 1232 | CONFIG_USB_EMI62=m | ||
| 1233 | CONFIG_USB_EMI26=m | ||
| 1234 | CONFIG_USB_AUERSWALD=m | ||
| 1235 | CONFIG_USB_RIO500=m | ||
| 1236 | CONFIG_USB_LEGOTOWER=m | ||
| 1237 | CONFIG_USB_LCD=m | ||
| 1238 | CONFIG_USB_LED=m | ||
| 1239 | CONFIG_USB_CYTHERM=m | ||
| 1240 | CONFIG_USB_PHIDGETKIT=m | ||
| 1241 | CONFIG_USB_PHIDGETSERVO=m | ||
| 1242 | CONFIG_USB_IDMOUSE=m | ||
| 1243 | # CONFIG_USB_LD is not set | ||
| 1244 | # CONFIG_USB_TEST is not set | ||
| 1245 | |||
| 1246 | # | ||
| 1247 | # USB DSL modem support | ||
| 1248 | # | ||
| 1249 | |||
| 1250 | # | ||
| 1251 | # USB Gadget Support | ||
| 1252 | # | ||
| 1253 | CONFIG_USB_GADGET=y | ||
| 1254 | # CONFIG_USB_GADGET_DEBUG_FILES is not set | ||
| 1255 | CONFIG_USB_GADGET_SELECTED=y | ||
| 1256 | # CONFIG_USB_GADGET_NET2280 is not set | ||
| 1257 | CONFIG_USB_GADGET_PXA2XX=y | ||
| 1258 | CONFIG_USB_PXA2XX=y | ||
| 1259 | # CONFIG_USB_PXA2XX_SMALL is not set | ||
| 1260 | # CONFIG_USB_GADGET_GOKU is not set | ||
| 1261 | # CONFIG_USB_GADGET_LH7A40X is not set | ||
| 1262 | # CONFIG_USB_GADGET_OMAP is not set | ||
| 1263 | # CONFIG_USB_GADGET_DUMMY_HCD is not set | ||
| 1264 | # CONFIG_USB_GADGET_DUALSPEED is not set | ||
| 1265 | CONFIG_USB_ZERO=m | ||
| 1266 | CONFIG_USB_ETH=m | ||
| 1267 | CONFIG_USB_ETH_RNDIS=y | ||
| 1268 | CONFIG_USB_GADGETFS=m | ||
| 1269 | CONFIG_USB_FILE_STORAGE=m | ||
| 1270 | # CONFIG_USB_FILE_STORAGE_TEST is not set | ||
| 1271 | CONFIG_USB_G_SERIAL=m | ||
| 1272 | |||
| 1273 | # | ||
| 1274 | # MMC/SD Card support | ||
| 1275 | # | ||
| 1276 | CONFIG_MMC=y | ||
| 1277 | # CONFIG_MMC_DEBUG is not set | ||
| 1278 | CONFIG_MMC_BLOCK=y | ||
| 1279 | CONFIG_MMC_PXA=y | ||
| 1280 | # CONFIG_MMC_WBSD is not set | ||
| 1281 | |||
| 1282 | # | ||
| 1283 | # File systems | ||
| 1284 | # | ||
| 1285 | CONFIG_EXT2_FS=y | ||
| 1286 | # CONFIG_EXT2_FS_XATTR is not set | ||
| 1287 | # CONFIG_EXT2_FS_XIP is not set | ||
| 1288 | # CONFIG_EXT3_FS is not set | ||
| 1289 | # CONFIG_JBD is not set | ||
| 1290 | # CONFIG_REISERFS_FS is not set | ||
| 1291 | # CONFIG_JFS_FS is not set | ||
| 1292 | # CONFIG_FS_POSIX_ACL is not set | ||
| 1293 | # CONFIG_XFS_FS is not set | ||
| 1294 | # CONFIG_MINIX_FS is not set | ||
| 1295 | # CONFIG_ROMFS_FS is not set | ||
| 1296 | CONFIG_INOTIFY=y | ||
| 1297 | # CONFIG_QUOTA is not set | ||
| 1298 | CONFIG_DNOTIFY=y | ||
| 1299 | # CONFIG_AUTOFS_FS is not set | ||
| 1300 | # CONFIG_AUTOFS4_FS is not set | ||
| 1301 | # CONFIG_FUSE_FS is not set | ||
| 1302 | |||
| 1303 | # | ||
| 1304 | # CD-ROM/DVD Filesystems | ||
| 1305 | # | ||
| 1306 | # CONFIG_ISO9660_FS is not set | ||
| 1307 | # CONFIG_UDF_FS is not set | ||
| 1308 | |||
| 1309 | # | ||
| 1310 | # DOS/FAT/NT Filesystems | ||
| 1311 | # | ||
| 1312 | CONFIG_FAT_FS=y | ||
| 1313 | CONFIG_MSDOS_FS=y | ||
| 1314 | CONFIG_VFAT_FS=y | ||
| 1315 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
| 1316 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
| 1317 | # CONFIG_NTFS_FS is not set | ||
| 1318 | |||
| 1319 | # | ||
| 1320 | # Pseudo filesystems | ||
| 1321 | # | ||
| 1322 | CONFIG_PROC_FS=y | ||
| 1323 | CONFIG_SYSFS=y | ||
| 1324 | CONFIG_TMPFS=y | ||
| 1325 | # CONFIG_HUGETLB_PAGE is not set | ||
| 1326 | CONFIG_RAMFS=y | ||
| 1327 | # CONFIG_RELAYFS_FS is not set | ||
| 1328 | |||
| 1329 | # | ||
| 1330 | # Miscellaneous filesystems | ||
| 1331 | # | ||
| 1332 | # CONFIG_ADFS_FS is not set | ||
| 1333 | # CONFIG_AFFS_FS is not set | ||
| 1334 | # CONFIG_HFS_FS is not set | ||
| 1335 | # CONFIG_HFSPLUS_FS is not set | ||
| 1336 | # CONFIG_BEFS_FS is not set | ||
| 1337 | # CONFIG_BFS_FS is not set | ||
| 1338 | # CONFIG_EFS_FS is not set | ||
| 1339 | # CONFIG_JFFS_FS is not set | ||
| 1340 | CONFIG_JFFS2_FS=y | ||
| 1341 | CONFIG_JFFS2_FS_DEBUG=0 | ||
| 1342 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
| 1343 | CONFIG_JFFS2_COMPRESSION_OPTIONS=y | ||
| 1344 | CONFIG_JFFS2_ZLIB=y | ||
| 1345 | CONFIG_JFFS2_RTIME=y | ||
| 1346 | CONFIG_JFFS2_RUBIN=y | ||
| 1347 | # CONFIG_JFFS2_CMODE_NONE is not set | ||
| 1348 | CONFIG_JFFS2_CMODE_PRIORITY=y | ||
| 1349 | # CONFIG_JFFS2_CMODE_SIZE is not set | ||
| 1350 | CONFIG_CRAMFS=m | ||
| 1351 | # CONFIG_VXFS_FS is not set | ||
| 1352 | # CONFIG_HPFS_FS is not set | ||
| 1353 | # CONFIG_QNX4FS_FS is not set | ||
| 1354 | # CONFIG_SYSV_FS is not set | ||
| 1355 | # CONFIG_UFS_FS is not set | ||
| 1356 | |||
| 1357 | # | ||
| 1358 | # Network File Systems | ||
| 1359 | # | ||
| 1360 | CONFIG_NFS_FS=m | ||
| 1361 | CONFIG_NFS_V3=y | ||
| 1362 | # CONFIG_NFS_V3_ACL is not set | ||
| 1363 | CONFIG_NFS_V4=y | ||
| 1364 | # CONFIG_NFS_DIRECTIO is not set | ||
| 1365 | # CONFIG_NFSD is not set | ||
| 1366 | CONFIG_LOCKD=m | ||
| 1367 | CONFIG_LOCKD_V4=y | ||
| 1368 | CONFIG_NFS_COMMON=y | ||
| 1369 | CONFIG_SUNRPC=m | ||
| 1370 | CONFIG_SUNRPC_GSS=m | ||
| 1371 | CONFIG_RPCSEC_GSS_KRB5=m | ||
| 1372 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
| 1373 | CONFIG_SMB_FS=m | ||
| 1374 | CONFIG_SMB_NLS_DEFAULT=y | ||
| 1375 | CONFIG_SMB_NLS_REMOTE="cp437" | ||
| 1376 | # CONFIG_CIFS is not set | ||
| 1377 | # CONFIG_NCP_FS is not set | ||
| 1378 | # CONFIG_CODA_FS is not set | ||
| 1379 | # CONFIG_AFS_FS is not set | ||
| 1380 | # CONFIG_9P_FS is not set | ||
| 1381 | |||
| 1382 | # | ||
| 1383 | # Partition Types | ||
| 1384 | # | ||
| 1385 | CONFIG_PARTITION_ADVANCED=y | ||
| 1386 | # CONFIG_ACORN_PARTITION is not set | ||
| 1387 | # CONFIG_OSF_PARTITION is not set | ||
| 1388 | # CONFIG_AMIGA_PARTITION is not set | ||
| 1389 | # CONFIG_ATARI_PARTITION is not set | ||
| 1390 | # CONFIG_MAC_PARTITION is not set | ||
| 1391 | CONFIG_MSDOS_PARTITION=y | ||
| 1392 | # CONFIG_BSD_DISKLABEL is not set | ||
| 1393 | # CONFIG_MINIX_SUBPARTITION is not set | ||
| 1394 | # CONFIG_SOLARIS_X86_PARTITION is not set | ||
| 1395 | # CONFIG_UNIXWARE_DISKLABEL is not set | ||
| 1396 | # CONFIG_LDM_PARTITION is not set | ||
| 1397 | # CONFIG_SGI_PARTITION is not set | ||
| 1398 | # CONFIG_ULTRIX_PARTITION is not set | ||
| 1399 | # CONFIG_SUN_PARTITION is not set | ||
| 1400 | # CONFIG_EFI_PARTITION is not set | ||
| 1401 | |||
| 1402 | # | ||
| 1403 | # Native Language Support | ||
| 1404 | # | ||
| 1405 | CONFIG_NLS=y | ||
| 1406 | CONFIG_NLS_DEFAULT="cp437" | ||
| 1407 | CONFIG_NLS_CODEPAGE_437=y | ||
| 1408 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
| 1409 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
| 1410 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
| 1411 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
| 1412 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
| 1413 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
| 1414 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
| 1415 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
| 1416 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
| 1417 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
| 1418 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
| 1419 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
| 1420 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
| 1421 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
| 1422 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
| 1423 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
| 1424 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
| 1425 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
| 1426 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
| 1427 | # CONFIG_NLS_ISO8859_8 is not set | ||
| 1428 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
| 1429 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
| 1430 | # CONFIG_NLS_ASCII is not set | ||
| 1431 | CONFIG_NLS_ISO8859_1=y | ||
| 1432 | # CONFIG_NLS_ISO8859_2 is not set | ||
| 1433 | # CONFIG_NLS_ISO8859_3 is not set | ||
| 1434 | # CONFIG_NLS_ISO8859_4 is not set | ||
| 1435 | # CONFIG_NLS_ISO8859_5 is not set | ||
| 1436 | # CONFIG_NLS_ISO8859_6 is not set | ||
| 1437 | # CONFIG_NLS_ISO8859_7 is not set | ||
| 1438 | # CONFIG_NLS_ISO8859_9 is not set | ||
| 1439 | # CONFIG_NLS_ISO8859_13 is not set | ||
| 1440 | # CONFIG_NLS_ISO8859_14 is not set | ||
| 1441 | # CONFIG_NLS_ISO8859_15 is not set | ||
| 1442 | # CONFIG_NLS_KOI8_R is not set | ||
| 1443 | # CONFIG_NLS_KOI8_U is not set | ||
| 1444 | CONFIG_NLS_UTF8=y | ||
| 1445 | |||
| 1446 | # | ||
| 1447 | # Profiling support | ||
| 1448 | # | ||
| 1449 | CONFIG_PROFILING=y | ||
| 1450 | CONFIG_OPROFILE=m | ||
| 1451 | |||
| 1452 | # | ||
| 1453 | # Kernel hacking | ||
| 1454 | # | ||
| 1455 | # CONFIG_PRINTK_TIME is not set | ||
| 1456 | CONFIG_DEBUG_KERNEL=y | ||
| 1457 | CONFIG_MAGIC_SYSRQ=y | ||
| 1458 | CONFIG_LOG_BUF_SHIFT=14 | ||
| 1459 | CONFIG_DETECT_SOFTLOCKUP=y | ||
| 1460 | # CONFIG_SCHEDSTATS is not set | ||
| 1461 | # CONFIG_DEBUG_SLAB is not set | ||
| 1462 | # CONFIG_DEBUG_PREEMPT is not set | ||
| 1463 | # CONFIG_DEBUG_SPINLOCK is not set | ||
| 1464 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
| 1465 | # CONFIG_DEBUG_KOBJECT is not set | ||
| 1466 | CONFIG_DEBUG_BUGVERBOSE=y | ||
| 1467 | # CONFIG_DEBUG_INFO is not set | ||
| 1468 | # CONFIG_DEBUG_FS is not set | ||
| 1469 | CONFIG_FRAME_POINTER=y | ||
| 1470 | # CONFIG_DEBUG_USER is not set | ||
| 1471 | # CONFIG_DEBUG_WAITQ is not set | ||
| 1472 | CONFIG_DEBUG_ERRORS=y | ||
| 1473 | CONFIG_DEBUG_LL=y | ||
| 1474 | # CONFIG_DEBUG_ICEDCC is not set | ||
| 1475 | |||
| 1476 | # | ||
| 1477 | # Security options | ||
| 1478 | # | ||
| 1479 | # CONFIG_KEYS is not set | ||
| 1480 | # CONFIG_SECURITY is not set | ||
| 1481 | |||
| 1482 | # | ||
| 1483 | # Cryptographic options | ||
| 1484 | # | ||
| 1485 | CONFIG_CRYPTO=y | ||
| 1486 | CONFIG_CRYPTO_HMAC=y | ||
| 1487 | CONFIG_CRYPTO_NULL=m | ||
| 1488 | CONFIG_CRYPTO_MD4=m | ||
| 1489 | CONFIG_CRYPTO_MD5=m | ||
| 1490 | CONFIG_CRYPTO_SHA1=m | ||
| 1491 | CONFIG_CRYPTO_SHA256=m | ||
| 1492 | CONFIG_CRYPTO_SHA512=m | ||
| 1493 | CONFIG_CRYPTO_WP512=m | ||
| 1494 | # CONFIG_CRYPTO_TGR192 is not set | ||
| 1495 | CONFIG_CRYPTO_DES=m | ||
| 1496 | CONFIG_CRYPTO_BLOWFISH=m | ||
| 1497 | CONFIG_CRYPTO_TWOFISH=m | ||
| 1498 | CONFIG_CRYPTO_SERPENT=m | ||
| 1499 | CONFIG_CRYPTO_AES=m | ||
| 1500 | CONFIG_CRYPTO_CAST5=m | ||
| 1501 | CONFIG_CRYPTO_CAST6=m | ||
| 1502 | CONFIG_CRYPTO_TEA=m | ||
| 1503 | CONFIG_CRYPTO_ARC4=m | ||
| 1504 | CONFIG_CRYPTO_KHAZAD=m | ||
| 1505 | CONFIG_CRYPTO_ANUBIS=m | ||
| 1506 | CONFIG_CRYPTO_DEFLATE=m | ||
| 1507 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
| 1508 | CONFIG_CRYPTO_CRC32C=m | ||
| 1509 | CONFIG_CRYPTO_TEST=m | ||
| 1510 | |||
| 1511 | # | ||
| 1512 | # Hardware crypto devices | ||
| 1513 | # | ||
| 1514 | |||
| 1515 | # | ||
| 1516 | # Library routines | ||
| 1517 | # | ||
| 1518 | CONFIG_CRC_CCITT=y | ||
| 1519 | # CONFIG_CRC16 is not set | ||
| 1520 | CONFIG_CRC32=y | ||
| 1521 | CONFIG_LIBCRC32C=m | ||
| 1522 | CONFIG_ZLIB_INFLATE=y | ||
| 1523 | CONFIG_ZLIB_DEFLATE=y | ||
diff --git a/arch/arm/configs/poodle_defconfig b/arch/arm/configs/poodle_defconfig new file mode 100644 index 000000000000..72822907759f --- /dev/null +++ b/arch/arm/configs/poodle_defconfig | |||
| @@ -0,0 +1,1015 @@ | |||
| 1 | # | ||
| 2 | # Automatically generated make config: don't edit | ||
| 3 | # Linux kernel version: 2.6.14-rc3 | ||
| 4 | # Sun Oct 9 17:04:29 2005 | ||
| 5 | # | ||
| 6 | CONFIG_ARM=y | ||
| 7 | CONFIG_MMU=y | ||
| 8 | CONFIG_UID16=y | ||
| 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
| 10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
| 11 | |||
| 12 | # | ||
| 13 | # Code maturity level options | ||
| 14 | # | ||
| 15 | CONFIG_EXPERIMENTAL=y | ||
| 16 | CONFIG_CLEAN_COMPILE=y | ||
| 17 | CONFIG_BROKEN_ON_SMP=y | ||
| 18 | CONFIG_LOCK_KERNEL=y | ||
| 19 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
| 20 | |||
| 21 | # | ||
| 22 | # General setup | ||
| 23 | # | ||
| 24 | CONFIG_LOCALVERSION="" | ||
| 25 | CONFIG_LOCALVERSION_AUTO=y | ||
| 26 | CONFIG_SWAP=y | ||
| 27 | CONFIG_SYSVIPC=y | ||
| 28 | # CONFIG_POSIX_MQUEUE is not set | ||
| 29 | CONFIG_BSD_PROCESS_ACCT=y | ||
| 30 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | ||
| 31 | CONFIG_SYSCTL=y | ||
| 32 | # CONFIG_AUDIT is not set | ||
| 33 | CONFIG_HOTPLUG=y | ||
| 34 | CONFIG_KOBJECT_UEVENT=y | ||
| 35 | # CONFIG_IKCONFIG is not set | ||
| 36 | CONFIG_INITRAMFS_SOURCE="" | ||
| 37 | CONFIG_EMBEDDED=y | ||
| 38 | CONFIG_KALLSYMS=y | ||
| 39 | # CONFIG_KALLSYMS_ALL is not set | ||
| 40 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
| 41 | CONFIG_PRINTK=y | ||
| 42 | CONFIG_BUG=y | ||
| 43 | CONFIG_BASE_FULL=y | ||
| 44 | CONFIG_FUTEX=y | ||
| 45 | CONFIG_EPOLL=y | ||
| 46 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
| 47 | CONFIG_SHMEM=y | ||
| 48 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
| 49 | CONFIG_CC_ALIGN_LABELS=0 | ||
| 50 | CONFIG_CC_ALIGN_LOOPS=0 | ||
| 51 | CONFIG_CC_ALIGN_JUMPS=0 | ||
| 52 | # CONFIG_TINY_SHMEM is not set | ||
| 53 | CONFIG_BASE_SMALL=0 | ||
| 54 | |||
| 55 | # | ||
| 56 | # Loadable module support | ||
| 57 | # | ||
| 58 | CONFIG_MODULES=y | ||
| 59 | CONFIG_MODULE_UNLOAD=y | ||
| 60 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
| 61 | CONFIG_OBSOLETE_MODPARM=y | ||
| 62 | CONFIG_MODVERSIONS=y | ||
| 63 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
| 64 | CONFIG_KMOD=y | ||
| 65 | |||
| 66 | # | ||
| 67 | # System Type | ||
| 68 | # | ||
| 69 | # CONFIG_ARCH_CLPS7500 is not set | ||
| 70 | # CONFIG_ARCH_CLPS711X is not set | ||
| 71 | # CONFIG_ARCH_CO285 is not set | ||
| 72 | # CONFIG_ARCH_EBSA110 is not set | ||
| 73 | # CONFIG_ARCH_CAMELOT is not set | ||
| 74 | # CONFIG_ARCH_FOOTBRIDGE is not set | ||
| 75 | # CONFIG_ARCH_INTEGRATOR is not set | ||
| 76 | # CONFIG_ARCH_IOP3XX is not set | ||
| 77 | # CONFIG_ARCH_IXP4XX is not set | ||
| 78 | # CONFIG_ARCH_IXP2000 is not set | ||
| 79 | # CONFIG_ARCH_L7200 is not set | ||
| 80 | CONFIG_ARCH_PXA=y | ||
| 81 | # CONFIG_ARCH_RPC is not set | ||
| 82 | # CONFIG_ARCH_SA1100 is not set | ||
| 83 | # CONFIG_ARCH_S3C2410 is not set | ||
| 84 | # CONFIG_ARCH_SHARK is not set | ||
| 85 | # CONFIG_ARCH_LH7A40X is not set | ||
| 86 | # CONFIG_ARCH_OMAP is not set | ||
| 87 | # CONFIG_ARCH_VERSATILE is not set | ||
| 88 | # CONFIG_ARCH_IMX is not set | ||
| 89 | # CONFIG_ARCH_H720X is not set | ||
| 90 | # CONFIG_ARCH_AAEC2000 is not set | ||
| 91 | |||
| 92 | # | ||
| 93 | # Intel PXA2xx Implementations | ||
| 94 | # | ||
| 95 | # CONFIG_ARCH_LUBBOCK is not set | ||
| 96 | # CONFIG_MACH_MAINSTONE is not set | ||
| 97 | # CONFIG_ARCH_PXA_IDP is not set | ||
| 98 | CONFIG_PXA_SHARPSL=y | ||
| 99 | CONFIG_PXA_SHARPSL_25x=y | ||
| 100 | # CONFIG_PXA_SHARPSL_27x is not set | ||
| 101 | CONFIG_MACH_POODLE=y | ||
| 102 | # CONFIG_MACH_CORGI is not set | ||
| 103 | # CONFIG_MACH_SHEPHERD is not set | ||
| 104 | # CONFIG_MACH_HUSKY is not set | ||
| 105 | CONFIG_PXA25x=y | ||
| 106 | |||
| 107 | # | ||
| 108 | # Processor Type | ||
| 109 | # | ||
| 110 | CONFIG_CPU_32=y | ||
| 111 | CONFIG_CPU_XSCALE=y | ||
| 112 | CONFIG_CPU_32v5=y | ||
| 113 | CONFIG_CPU_ABRT_EV5T=y | ||
| 114 | CONFIG_CPU_CACHE_VIVT=y | ||
| 115 | CONFIG_CPU_TLB_V4WBI=y | ||
| 116 | |||
| 117 | # | ||
| 118 | # Processor Features | ||
| 119 | # | ||
| 120 | CONFIG_ARM_THUMB=y | ||
| 121 | CONFIG_XSCALE_PMU=y | ||
| 122 | CONFIG_SHARP_LOCOMO=y | ||
| 123 | CONFIG_SHARP_PARAM=y | ||
| 124 | CONFIG_SHARP_SCOOP=y | ||
| 125 | |||
| 126 | # | ||
| 127 | # Bus support | ||
| 128 | # | ||
| 129 | CONFIG_ISA_DMA_API=y | ||
| 130 | |||
| 131 | # | ||
| 132 | # PCCARD (PCMCIA/CardBus) support | ||
| 133 | # | ||
| 134 | CONFIG_PCCARD=y | ||
| 135 | # CONFIG_PCMCIA_DEBUG is not set | ||
| 136 | CONFIG_PCMCIA=y | ||
| 137 | CONFIG_PCMCIA_LOAD_CIS=y | ||
| 138 | CONFIG_PCMCIA_IOCTL=y | ||
| 139 | |||
| 140 | # | ||
| 141 | # PC-card bridges | ||
| 142 | # | ||
| 143 | CONFIG_PCMCIA_PXA2XX=y | ||
| 144 | |||
| 145 | # | ||
| 146 | # Kernel Features | ||
| 147 | # | ||
| 148 | CONFIG_PREEMPT=y | ||
| 149 | # CONFIG_NO_IDLE_HZ is not set | ||
| 150 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set | ||
| 151 | CONFIG_SELECT_MEMORY_MODEL=y | ||
| 152 | CONFIG_FLATMEM_MANUAL=y | ||
| 153 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
| 154 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
| 155 | CONFIG_FLATMEM=y | ||
| 156 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
| 157 | # CONFIG_SPARSEMEM_STATIC is not set | ||
| 158 | CONFIG_ALIGNMENT_TRAP=y | ||
| 159 | |||
| 160 | # | ||
| 161 | # Boot options | ||
| 162 | # | ||
| 163 | CONFIG_ZBOOT_ROM_TEXT=0x0 | ||
| 164 | CONFIG_ZBOOT_ROM_BSS=0x0 | ||
| 165 | CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug" | ||
| 166 | # CONFIG_XIP_KERNEL is not set | ||
| 167 | |||
| 168 | # | ||
| 169 | # Floating point emulation | ||
| 170 | # | ||
| 171 | |||
| 172 | # | ||
| 173 | # At least one emulation must be selected | ||
| 174 | # | ||
| 175 | CONFIG_FPE_NWFPE=y | ||
| 176 | # CONFIG_FPE_NWFPE_XP is not set | ||
| 177 | # CONFIG_FPE_FASTFPE is not set | ||
| 178 | |||
| 179 | # | ||
| 180 | # Userspace binary formats | ||
| 181 | # | ||
| 182 | CONFIG_BINFMT_ELF=y | ||
| 183 | CONFIG_BINFMT_AOUT=m | ||
| 184 | CONFIG_BINFMT_MISC=m | ||
| 185 | # CONFIG_ARTHUR is not set | ||
| 186 | |||
| 187 | # | ||
| 188 | # Power management options | ||
| 189 | # | ||
| 190 | CONFIG_PM=y | ||
| 191 | CONFIG_APM=y | ||
| 192 | |||
| 193 | # | ||
| 194 | # Networking | ||
| 195 | # | ||
| 196 | CONFIG_NET=y | ||
| 197 | |||
| 198 | # | ||
| 199 | # Networking options | ||
| 200 | # | ||
| 201 | CONFIG_PACKET=y | ||
| 202 | CONFIG_PACKET_MMAP=y | ||
| 203 | CONFIG_UNIX=y | ||
| 204 | # CONFIG_NET_KEY is not set | ||
| 205 | CONFIG_INET=y | ||
| 206 | # CONFIG_IP_MULTICAST is not set | ||
| 207 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
| 208 | CONFIG_IP_FIB_HASH=y | ||
| 209 | # CONFIG_IP_PNP is not set | ||
| 210 | # CONFIG_NET_IPIP is not set | ||
| 211 | # CONFIG_NET_IPGRE is not set | ||
| 212 | # CONFIG_ARPD is not set | ||
| 213 | CONFIG_SYN_COOKIES=y | ||
| 214 | # CONFIG_INET_AH is not set | ||
| 215 | # CONFIG_INET_ESP is not set | ||
| 216 | # CONFIG_INET_IPCOMP is not set | ||
| 217 | # CONFIG_INET_TUNNEL is not set | ||
| 218 | CONFIG_INET_DIAG=y | ||
| 219 | CONFIG_INET_TCP_DIAG=y | ||
| 220 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
| 221 | CONFIG_TCP_CONG_BIC=y | ||
| 222 | # CONFIG_IPV6 is not set | ||
| 223 | # CONFIG_NETFILTER is not set | ||
| 224 | |||
| 225 | # | ||
| 226 | # DCCP Configuration (EXPERIMENTAL) | ||
| 227 | # | ||
| 228 | # CONFIG_IP_DCCP is not set | ||
| 229 | |||
| 230 | # | ||
| 231 | # SCTP Configuration (EXPERIMENTAL) | ||
| 232 | # | ||
| 233 | # CONFIG_IP_SCTP is not set | ||
| 234 | # CONFIG_ATM is not set | ||
| 235 | # CONFIG_BRIDGE is not set | ||
| 236 | # CONFIG_VLAN_8021Q is not set | ||
| 237 | # CONFIG_DECNET is not set | ||
| 238 | # CONFIG_LLC2 is not set | ||
| 239 | # CONFIG_IPX is not set | ||
| 240 | # CONFIG_ATALK is not set | ||
| 241 | # CONFIG_X25 is not set | ||
| 242 | # CONFIG_LAPB is not set | ||
| 243 | # CONFIG_NET_DIVERT is not set | ||
| 244 | # CONFIG_ECONET is not set | ||
| 245 | # CONFIG_WAN_ROUTER is not set | ||
| 246 | # CONFIG_NET_SCHED is not set | ||
| 247 | # CONFIG_NET_CLS_ROUTE is not set | ||
| 248 | |||
| 249 | # | ||
| 250 | # Network testing | ||
| 251 | # | ||
| 252 | # CONFIG_NET_PKTGEN is not set | ||
| 253 | # CONFIG_HAMRADIO is not set | ||
| 254 | # CONFIG_IRDA is not set | ||
| 255 | # CONFIG_BT is not set | ||
| 256 | # CONFIG_IEEE80211 is not set | ||
| 257 | |||
| 258 | # | ||
| 259 | # Device Drivers | ||
| 260 | # | ||
| 261 | |||
| 262 | # | ||
| 263 | # Generic Driver Options | ||
| 264 | # | ||
| 265 | CONFIG_STANDALONE=y | ||
| 266 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
| 267 | CONFIG_FW_LOADER=y | ||
| 268 | # CONFIG_DEBUG_DRIVER is not set | ||
| 269 | |||
| 270 | # | ||
| 271 | # Memory Technology Devices (MTD) | ||
| 272 | # | ||
| 273 | CONFIG_MTD=y | ||
| 274 | # CONFIG_MTD_DEBUG is not set | ||
| 275 | # CONFIG_MTD_CONCAT is not set | ||
| 276 | CONFIG_MTD_PARTITIONS=y | ||
| 277 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
| 278 | # CONFIG_MTD_CMDLINE_PARTS is not set | ||
| 279 | # CONFIG_MTD_AFS_PARTS is not set | ||
| 280 | |||
| 281 | # | ||
| 282 | # User Modules And Translation Layers | ||
| 283 | # | ||
| 284 | CONFIG_MTD_CHAR=y | ||
| 285 | CONFIG_MTD_BLOCK=y | ||
| 286 | # CONFIG_FTL is not set | ||
| 287 | # CONFIG_NFTL is not set | ||
| 288 | # CONFIG_INFTL is not set | ||
| 289 | |||
| 290 | # | ||
| 291 | # RAM/ROM/Flash chip drivers | ||
| 292 | # | ||
| 293 | # CONFIG_MTD_CFI is not set | ||
| 294 | # CONFIG_MTD_JEDECPROBE is not set | ||
| 295 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
| 296 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
| 297 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
| 298 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
| 299 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
| 300 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
| 301 | CONFIG_MTD_CFI_I1=y | ||
| 302 | CONFIG_MTD_CFI_I2=y | ||
| 303 | # CONFIG_MTD_CFI_I4 is not set | ||
| 304 | # CONFIG_MTD_CFI_I8 is not set | ||
| 305 | # CONFIG_MTD_RAM is not set | ||
| 306 | # CONFIG_MTD_ROM is not set | ||
| 307 | # CONFIG_MTD_ABSENT is not set | ||
| 308 | |||
| 309 | # | ||
| 310 | # Mapping drivers for chip access | ||
| 311 | # | ||
| 312 | CONFIG_MTD_COMPLEX_MAPPINGS=y | ||
| 313 | CONFIG_MTD_SHARP_SL=y | ||
| 314 | # CONFIG_MTD_PLATRAM is not set | ||
| 315 | |||
| 316 | # | ||
| 317 | # Self-contained MTD device drivers | ||
| 318 | # | ||
| 319 | # CONFIG_MTD_SLRAM is not set | ||
| 320 | # CONFIG_MTD_PHRAM is not set | ||
| 321 | # CONFIG_MTD_MTDRAM is not set | ||
| 322 | # CONFIG_MTD_BLKMTD is not set | ||
| 323 | # CONFIG_MTD_BLOCK2MTD is not set | ||
| 324 | |||
| 325 | # | ||
| 326 | # Disk-On-Chip Device Drivers | ||
| 327 | # | ||
| 328 | # CONFIG_MTD_DOC2000 is not set | ||
| 329 | # CONFIG_MTD_DOC2001 is not set | ||
| 330 | # CONFIG_MTD_DOC2001PLUS is not set | ||
| 331 | |||
| 332 | # | ||
| 333 | # NAND Flash Device Drivers | ||
| 334 | # | ||
| 335 | CONFIG_MTD_NAND=y | ||
| 336 | CONFIG_MTD_NAND_VERIFY_WRITE=y | ||
| 337 | # CONFIG_MTD_NAND_H1900 is not set | ||
| 338 | CONFIG_MTD_NAND_IDS=y | ||
| 339 | # CONFIG_MTD_NAND_DISKONCHIP is not set | ||
| 340 | CONFIG_MTD_NAND_SHARPSL=y | ||
| 341 | # CONFIG_MTD_NAND_NANDSIM is not set | ||
| 342 | |||
| 343 | # | ||
| 344 | # Parallel port support | ||
| 345 | # | ||
| 346 | # CONFIG_PARPORT is not set | ||
| 347 | |||
| 348 | # | ||
| 349 | # Plug and Play support | ||
| 350 | # | ||
| 351 | |||
| 352 | # | ||
| 353 | # Block devices | ||
| 354 | # | ||
| 355 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
| 356 | CONFIG_BLK_DEV_LOOP=y | ||
| 357 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
| 358 | # CONFIG_BLK_DEV_NBD is not set | ||
| 359 | # CONFIG_BLK_DEV_RAM is not set | ||
| 360 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
| 361 | # CONFIG_CDROM_PKTCDVD is not set | ||
| 362 | |||
| 363 | # | ||
| 364 | # IO Schedulers | ||
| 365 | # | ||
| 366 | CONFIG_IOSCHED_NOOP=y | ||
| 367 | CONFIG_IOSCHED_AS=y | ||
| 368 | CONFIG_IOSCHED_DEADLINE=y | ||
| 369 | CONFIG_IOSCHED_CFQ=y | ||
| 370 | # CONFIG_ATA_OVER_ETH is not set | ||
| 371 | |||
| 372 | # | ||
| 373 | # ATA/ATAPI/MFM/RLL support | ||
| 374 | # | ||
| 375 | CONFIG_IDE=y | ||
| 376 | CONFIG_BLK_DEV_IDE=y | ||
| 377 | |||
| 378 | # | ||
| 379 | # Please see Documentation/ide.txt for help/info on IDE drives | ||
| 380 | # | ||
| 381 | # CONFIG_BLK_DEV_IDE_SATA is not set | ||
| 382 | CONFIG_BLK_DEV_IDEDISK=y | ||
| 383 | # CONFIG_IDEDISK_MULTI_MODE is not set | ||
| 384 | CONFIG_BLK_DEV_IDECS=y | ||
| 385 | # CONFIG_BLK_DEV_IDECD is not set | ||
| 386 | # CONFIG_BLK_DEV_IDETAPE is not set | ||
| 387 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
| 388 | # CONFIG_IDE_TASK_IOCTL is not set | ||
| 389 | |||
| 390 | # | ||
| 391 | # IDE chipset support/bugfixes | ||
| 392 | # | ||
| 393 | CONFIG_IDE_GENERIC=y | ||
| 394 | # CONFIG_IDE_ARM is not set | ||
| 395 | # CONFIG_BLK_DEV_IDEDMA is not set | ||
| 396 | # CONFIG_IDEDMA_AUTO is not set | ||
| 397 | # CONFIG_BLK_DEV_HD is not set | ||
| 398 | |||
| 399 | # | ||
| 400 | # SCSI device support | ||
| 401 | # | ||
| 402 | # CONFIG_RAID_ATTRS is not set | ||
| 403 | # CONFIG_SCSI is not set | ||
| 404 | |||
| 405 | # | ||
| 406 | # Multi-device support (RAID and LVM) | ||
| 407 | # | ||
| 408 | # CONFIG_MD is not set | ||
| 409 | |||
| 410 | # | ||
| 411 | # Fusion MPT device support | ||
| 412 | # | ||
| 413 | # CONFIG_FUSION is not set | ||
| 414 | |||
| 415 | # | ||
| 416 | # IEEE 1394 (FireWire) support | ||
| 417 | # | ||
| 418 | |||
| 419 | # | ||
| 420 | # I2O device support | ||
| 421 | # | ||
| 422 | |||
| 423 | # | ||
| 424 | # Network device support | ||
| 425 | # | ||
| 426 | CONFIG_NETDEVICES=y | ||
| 427 | # CONFIG_DUMMY is not set | ||
| 428 | # CONFIG_BONDING is not set | ||
| 429 | # CONFIG_EQUALIZER is not set | ||
| 430 | # CONFIG_TUN is not set | ||
| 431 | |||
| 432 | # | ||
| 433 | # PHY device support | ||
| 434 | # | ||
| 435 | # CONFIG_PHYLIB is not set | ||
| 436 | |||
| 437 | # | ||
| 438 | # Ethernet (10 or 100Mbit) | ||
| 439 | # | ||
| 440 | CONFIG_NET_ETHERNET=y | ||
| 441 | # CONFIG_MII is not set | ||
| 442 | # CONFIG_SMC91X is not set | ||
| 443 | # CONFIG_DM9000 is not set | ||
| 444 | |||
| 445 | # | ||
| 446 | # Ethernet (1000 Mbit) | ||
| 447 | # | ||
| 448 | |||
| 449 | # | ||
| 450 | # Ethernet (10000 Mbit) | ||
| 451 | # | ||
| 452 | |||
| 453 | # | ||
| 454 | # Token Ring devices | ||
| 455 | # | ||
| 456 | |||
| 457 | # | ||
| 458 | # Wireless LAN (non-hamradio) | ||
| 459 | # | ||
| 460 | CONFIG_NET_RADIO=y | ||
| 461 | |||
| 462 | # | ||
| 463 | # Obsolete Wireless cards support (pre-802.11) | ||
| 464 | # | ||
| 465 | # CONFIG_STRIP is not set | ||
| 466 | # CONFIG_PCMCIA_WAVELAN is not set | ||
| 467 | # CONFIG_PCMCIA_NETWAVE is not set | ||
| 468 | |||
| 469 | # | ||
| 470 | # Wireless 802.11 Frequency Hopping cards support | ||
| 471 | # | ||
| 472 | # CONFIG_PCMCIA_RAYCS is not set | ||
| 473 | |||
| 474 | # | ||
| 475 | # Wireless 802.11b ISA/PCI cards support | ||
| 476 | # | ||
| 477 | # CONFIG_HERMES is not set | ||
| 478 | # CONFIG_ATMEL is not set | ||
| 479 | |||
| 480 | # | ||
| 481 | # Wireless 802.11b Pcmcia/Cardbus cards support | ||
| 482 | # | ||
| 483 | # CONFIG_AIRO_CS is not set | ||
| 484 | # CONFIG_PCMCIA_WL3501 is not set | ||
| 485 | # CONFIG_HOSTAP is not set | ||
| 486 | CONFIG_NET_WIRELESS=y | ||
| 487 | |||
| 488 | # | ||
| 489 | # PCMCIA network device support | ||
| 490 | # | ||
| 491 | CONFIG_NET_PCMCIA=y | ||
| 492 | # CONFIG_PCMCIA_3C589 is not set | ||
| 493 | # CONFIG_PCMCIA_3C574 is not set | ||
| 494 | # CONFIG_PCMCIA_FMVJ18X is not set | ||
| 495 | CONFIG_PCMCIA_PCNET=y | ||
| 496 | # CONFIG_PCMCIA_NMCLAN is not set | ||
| 497 | # CONFIG_PCMCIA_SMC91C92 is not set | ||
| 498 | # CONFIG_PCMCIA_XIRC2PS is not set | ||
| 499 | # CONFIG_PCMCIA_AXNET is not set | ||
| 500 | |||
| 501 | # | ||
| 502 | # Wan interfaces | ||
| 503 | # | ||
| 504 | # CONFIG_WAN is not set | ||
| 505 | CONFIG_PPP=m | ||
| 506 | # CONFIG_PPP_MULTILINK is not set | ||
| 507 | # CONFIG_PPP_FILTER is not set | ||
| 508 | CONFIG_PPP_ASYNC=m | ||
| 509 | # CONFIG_PPP_SYNC_TTY is not set | ||
| 510 | # CONFIG_PPP_DEFLATE is not set | ||
| 511 | CONFIG_PPP_BSDCOMP=m | ||
| 512 | # CONFIG_PPPOE is not set | ||
| 513 | # CONFIG_SLIP is not set | ||
| 514 | # CONFIG_SHAPER is not set | ||
| 515 | # CONFIG_NETCONSOLE is not set | ||
| 516 | # CONFIG_NETPOLL is not set | ||
| 517 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
| 518 | |||
| 519 | # | ||
| 520 | # ISDN subsystem | ||
| 521 | # | ||
| 522 | # CONFIG_ISDN is not set | ||
| 523 | |||
| 524 | # | ||
| 525 | # Input device support | ||
| 526 | # | ||
| 527 | CONFIG_INPUT=y | ||
| 528 | |||
| 529 | # | ||
| 530 | # Userland interfaces | ||
| 531 | # | ||
| 532 | # CONFIG_INPUT_MOUSEDEV is not set | ||
| 533 | # CONFIG_INPUT_JOYDEV is not set | ||
| 534 | CONFIG_INPUT_TSDEV=y | ||
| 535 | CONFIG_INPUT_TSDEV_SCREEN_X=240 | ||
| 536 | CONFIG_INPUT_TSDEV_SCREEN_Y=320 | ||
| 537 | CONFIG_INPUT_EVDEV=y | ||
| 538 | CONFIG_INPUT_EVBUG=y | ||
| 539 | |||
| 540 | # | ||
| 541 | # Input Device Drivers | ||
| 542 | # | ||
| 543 | CONFIG_INPUT_KEYBOARD=y | ||
| 544 | # CONFIG_KEYBOARD_ATKBD is not set | ||
| 545 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
| 546 | # CONFIG_KEYBOARD_LKKBD is not set | ||
| 547 | CONFIG_KEYBOARD_LOCOMO=y | ||
| 548 | # CONFIG_KEYBOARD_XTKBD is not set | ||
| 549 | # CONFIG_KEYBOARD_NEWTON is not set | ||
| 550 | # CONFIG_KEYBOARD_CORGI is not set | ||
| 551 | CONFIG_KEYBOARD_SPITZ=y | ||
| 552 | # CONFIG_INPUT_MOUSE is not set | ||
| 553 | # CONFIG_INPUT_JOYSTICK is not set | ||
| 554 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
| 555 | # CONFIG_INPUT_MISC is not set | ||
| 556 | |||
| 557 | # | ||
| 558 | # Hardware I/O ports | ||
| 559 | # | ||
| 560 | # CONFIG_SERIO is not set | ||
| 561 | # CONFIG_GAMEPORT is not set | ||
| 562 | |||
| 563 | # | ||
| 564 | # Character devices | ||
| 565 | # | ||
| 566 | CONFIG_VT=y | ||
| 567 | CONFIG_VT_CONSOLE=y | ||
| 568 | CONFIG_HW_CONSOLE=y | ||
| 569 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
| 570 | |||
| 571 | # | ||
| 572 | # Serial drivers | ||
| 573 | # | ||
| 574 | # CONFIG_SERIAL_8250 is not set | ||
| 575 | |||
| 576 | # | ||
| 577 | # Non-8250 serial port support | ||
| 578 | # | ||
| 579 | CONFIG_SERIAL_PXA=y | ||
| 580 | CONFIG_SERIAL_PXA_CONSOLE=y | ||
| 581 | CONFIG_SERIAL_CORE=y | ||
| 582 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
| 583 | CONFIG_UNIX98_PTYS=y | ||
| 584 | # CONFIG_LEGACY_PTYS is not set | ||
| 585 | |||
| 586 | # | ||
| 587 | # IPMI | ||
| 588 | # | ||
| 589 | # CONFIG_IPMI_HANDLER is not set | ||
| 590 | |||
| 591 | # | ||
| 592 | # Watchdog Cards | ||
| 593 | # | ||
| 594 | # CONFIG_WATCHDOG is not set | ||
| 595 | # CONFIG_NVRAM is not set | ||
| 596 | # CONFIG_RTC is not set | ||
| 597 | # CONFIG_DTLK is not set | ||
| 598 | # CONFIG_R3964 is not set | ||
| 599 | |||
| 600 | # | ||
| 601 | # Ftape, the floppy tape device driver | ||
| 602 | # | ||
| 603 | |||
| 604 | # | ||
| 605 | # PCMCIA character devices | ||
| 606 | # | ||
| 607 | # CONFIG_SYNCLINK_CS is not set | ||
| 608 | # CONFIG_RAW_DRIVER is not set | ||
| 609 | |||
| 610 | # | ||
| 611 | # TPM devices | ||
| 612 | # | ||
| 613 | |||
| 614 | # | ||
| 615 | # I2C support | ||
| 616 | # | ||
| 617 | CONFIG_I2C=y | ||
| 618 | # CONFIG_I2C_CHARDEV is not set | ||
| 619 | |||
| 620 | # | ||
| 621 | # I2C Algorithms | ||
| 622 | # | ||
| 623 | CONFIG_I2C_ALGOBIT=y | ||
| 624 | # CONFIG_I2C_ALGOPCF is not set | ||
| 625 | # CONFIG_I2C_ALGOPCA is not set | ||
| 626 | |||
| 627 | # | ||
| 628 | # I2C Hardware Bus support | ||
| 629 | # | ||
| 630 | # CONFIG_I2C_PXA is not set | ||
| 631 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
| 632 | # CONFIG_I2C_STUB is not set | ||
| 633 | # CONFIG_I2C_PCA_ISA is not set | ||
| 634 | |||
| 635 | # | ||
| 636 | # Miscellaneous I2C Chip support | ||
| 637 | # | ||
| 638 | # CONFIG_SENSORS_DS1337 is not set | ||
| 639 | # CONFIG_SENSORS_DS1374 is not set | ||
| 640 | # CONFIG_SENSORS_EEPROM is not set | ||
| 641 | # CONFIG_SENSORS_PCF8574 is not set | ||
| 642 | # CONFIG_SENSORS_PCA9539 is not set | ||
| 643 | # CONFIG_SENSORS_PCF8591 is not set | ||
| 644 | # CONFIG_SENSORS_RTC8564 is not set | ||
| 645 | # CONFIG_SENSORS_MAX6875 is not set | ||
| 646 | CONFIG_I2C_DEBUG_CORE=y | ||
| 647 | CONFIG_I2C_DEBUG_ALGO=y | ||
| 648 | CONFIG_I2C_DEBUG_BUS=y | ||
| 649 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
| 650 | |||
| 651 | # | ||
| 652 | # Hardware Monitoring support | ||
| 653 | # | ||
| 654 | CONFIG_HWMON=y | ||
| 655 | # CONFIG_HWMON_VID is not set | ||
| 656 | # CONFIG_SENSORS_ADM1021 is not set | ||
| 657 | # CONFIG_SENSORS_ADM1025 is not set | ||
| 658 | # CONFIG_SENSORS_ADM1026 is not set | ||
| 659 | # CONFIG_SENSORS_ADM1031 is not set | ||
| 660 | # CONFIG_SENSORS_ADM9240 is not set | ||
| 661 | # CONFIG_SENSORS_ASB100 is not set | ||
| 662 | # CONFIG_SENSORS_ATXP1 is not set | ||
| 663 | # CONFIG_SENSORS_DS1621 is not set | ||
| 664 | # CONFIG_SENSORS_FSCHER is not set | ||
| 665 | # CONFIG_SENSORS_FSCPOS is not set | ||
| 666 | # CONFIG_SENSORS_GL518SM is not set | ||
| 667 | # CONFIG_SENSORS_GL520SM is not set | ||
| 668 | # CONFIG_SENSORS_IT87 is not set | ||
| 669 | # CONFIG_SENSORS_LM63 is not set | ||
| 670 | # CONFIG_SENSORS_LM75 is not set | ||
| 671 | # CONFIG_SENSORS_LM77 is not set | ||
| 672 | # CONFIG_SENSORS_LM78 is not set | ||
| 673 | # CONFIG_SENSORS_LM80 is not set | ||
| 674 | # CONFIG_SENSORS_LM83 is not set | ||
| 675 | # CONFIG_SENSORS_LM85 is not set | ||
| 676 | # CONFIG_SENSORS_LM87 is not set | ||
| 677 | # CONFIG_SENSORS_LM90 is not set | ||
| 678 | # CONFIG_SENSORS_LM92 is not set | ||
| 679 | # CONFIG_SENSORS_MAX1619 is not set | ||
| 680 | # CONFIG_SENSORS_PC87360 is not set | ||
| 681 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
| 682 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
| 683 | # CONFIG_SENSORS_W83781D is not set | ||
| 684 | # CONFIG_SENSORS_W83792D is not set | ||
| 685 | # CONFIG_SENSORS_W83L785TS is not set | ||
| 686 | # CONFIG_SENSORS_W83627HF is not set | ||
| 687 | # CONFIG_SENSORS_W83627EHF is not set | ||
| 688 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
| 689 | |||
| 690 | # | ||
| 691 | # Misc devices | ||
| 692 | # | ||
| 693 | |||
| 694 | # | ||
| 695 | # Multimedia Capabilities Port drivers | ||
| 696 | # | ||
| 697 | |||
| 698 | # | ||
| 699 | # Multimedia devices | ||
| 700 | # | ||
| 701 | CONFIG_VIDEO_DEV=m | ||
| 702 | |||
| 703 | # | ||
| 704 | # Video For Linux | ||
| 705 | # | ||
| 706 | |||
| 707 | # | ||
| 708 | # Video Adapters | ||
| 709 | # | ||
| 710 | # CONFIG_VIDEO_CPIA is not set | ||
| 711 | # CONFIG_VIDEO_SAA5246A is not set | ||
| 712 | # CONFIG_VIDEO_SAA5249 is not set | ||
| 713 | # CONFIG_TUNER_3036 is not set | ||
| 714 | # CONFIG_VIDEO_OVCAMCHIP is not set | ||
| 715 | |||
| 716 | # | ||
| 717 | # Radio Adapters | ||
| 718 | # | ||
| 719 | # CONFIG_RADIO_MAESTRO is not set | ||
| 720 | |||
| 721 | # | ||
| 722 | # Digital Video Broadcasting Devices | ||
| 723 | # | ||
| 724 | # CONFIG_DVB is not set | ||
| 725 | |||
| 726 | # | ||
| 727 | # Graphics support | ||
| 728 | # | ||
| 729 | CONFIG_FB=y | ||
| 730 | CONFIG_FB_CFB_FILLRECT=y | ||
| 731 | CONFIG_FB_CFB_COPYAREA=y | ||
| 732 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
| 733 | CONFIG_FB_SOFT_CURSOR=y | ||
| 734 | # CONFIG_FB_MACMODES is not set | ||
| 735 | CONFIG_FB_MODE_HELPERS=y | ||
| 736 | # CONFIG_FB_TILEBLITTING is not set | ||
| 737 | CONFIG_FB_PXA=y | ||
| 738 | # CONFIG_FB_W100 is not set | ||
| 739 | # CONFIG_FB_PXA_PARAMETERS is not set | ||
| 740 | # CONFIG_FB_S1D13XXX is not set | ||
| 741 | # CONFIG_FB_VIRTUAL is not set | ||
| 742 | |||
| 743 | # | ||
| 744 | # Console display driver support | ||
| 745 | # | ||
| 746 | # CONFIG_VGA_CONSOLE is not set | ||
| 747 | CONFIG_DUMMY_CONSOLE=y | ||
| 748 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
| 749 | CONFIG_FONTS=y | ||
| 750 | CONFIG_FONT_8x8=y | ||
| 751 | # CONFIG_FONT_8x16 is not set | ||
| 752 | # CONFIG_FONT_6x11 is not set | ||
| 753 | # CONFIG_FONT_7x14 is not set | ||
| 754 | # CONFIG_FONT_PEARL_8x8 is not set | ||
| 755 | # CONFIG_FONT_ACORN_8x8 is not set | ||
| 756 | # CONFIG_FONT_MINI_4x6 is not set | ||
| 757 | # CONFIG_FONT_SUN8x16 is not set | ||
| 758 | # CONFIG_FONT_SUN12x22 is not set | ||
| 759 | # CONFIG_FONT_10x18 is not set | ||
| 760 | |||
| 761 | # | ||
| 762 | # Logo configuration | ||
| 763 | # | ||
| 764 | # CONFIG_LOGO is not set | ||
| 765 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
| 766 | |||
| 767 | # | ||
| 768 | # Sound | ||
| 769 | # | ||
| 770 | # CONFIG_SOUND is not set | ||
| 771 | |||
| 772 | # | ||
| 773 | # USB support | ||
| 774 | # | ||
| 775 | CONFIG_USB_ARCH_HAS_HCD=y | ||
| 776 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
| 777 | # CONFIG_USB is not set | ||
| 778 | |||
| 779 | # | ||
| 780 | # USB Gadget Support | ||
| 781 | # | ||
| 782 | CONFIG_USB_GADGET=y | ||
| 783 | # CONFIG_USB_GADGET_DEBUG_FILES is not set | ||
| 784 | CONFIG_USB_GADGET_SELECTED=y | ||
| 785 | # CONFIG_USB_GADGET_NET2280 is not set | ||
| 786 | CONFIG_USB_GADGET_PXA2XX=y | ||
| 787 | CONFIG_USB_PXA2XX=y | ||
| 788 | # CONFIG_USB_PXA2XX_SMALL is not set | ||
| 789 | # CONFIG_USB_GADGET_GOKU is not set | ||
| 790 | # CONFIG_USB_GADGET_LH7A40X is not set | ||
| 791 | # CONFIG_USB_GADGET_OMAP is not set | ||
| 792 | # CONFIG_USB_GADGET_DUMMY_HCD is not set | ||
| 793 | # CONFIG_USB_GADGET_DUALSPEED is not set | ||
| 794 | # CONFIG_USB_ZERO is not set | ||
| 795 | CONFIG_USB_ETH=y | ||
| 796 | CONFIG_USB_ETH_RNDIS=y | ||
| 797 | # CONFIG_USB_GADGETFS is not set | ||
| 798 | # CONFIG_USB_FILE_STORAGE is not set | ||
| 799 | # CONFIG_USB_G_SERIAL is not set | ||
| 800 | |||
| 801 | # | ||
| 802 | # MMC/SD Card support | ||
| 803 | # | ||
| 804 | CONFIG_MMC=y | ||
| 805 | CONFIG_MMC_DEBUG=y | ||
| 806 | CONFIG_MMC_BLOCK=y | ||
| 807 | CONFIG_MMC_PXA=y | ||
| 808 | # CONFIG_MMC_WBSD is not set | ||
| 809 | |||
| 810 | # | ||
| 811 | # File systems | ||
| 812 | # | ||
| 813 | CONFIG_EXT2_FS=y | ||
| 814 | CONFIG_EXT2_FS_XATTR=y | ||
| 815 | CONFIG_EXT2_FS_POSIX_ACL=y | ||
| 816 | CONFIG_EXT2_FS_SECURITY=y | ||
| 817 | # CONFIG_EXT2_FS_XIP is not set | ||
| 818 | # CONFIG_EXT3_FS is not set | ||
| 819 | # CONFIG_JBD is not set | ||
| 820 | CONFIG_FS_MBCACHE=y | ||
| 821 | # CONFIG_REISERFS_FS is not set | ||
| 822 | # CONFIG_JFS_FS is not set | ||
| 823 | CONFIG_FS_POSIX_ACL=y | ||
| 824 | # CONFIG_XFS_FS is not set | ||
| 825 | # CONFIG_MINIX_FS is not set | ||
| 826 | # CONFIG_ROMFS_FS is not set | ||
| 827 | CONFIG_INOTIFY=y | ||
| 828 | # CONFIG_QUOTA is not set | ||
| 829 | CONFIG_DNOTIFY=y | ||
| 830 | # CONFIG_AUTOFS_FS is not set | ||
| 831 | # CONFIG_AUTOFS4_FS is not set | ||
| 832 | # CONFIG_FUSE_FS is not set | ||
| 833 | |||
| 834 | # | ||
| 835 | # CD-ROM/DVD Filesystems | ||
| 836 | # | ||
| 837 | # CONFIG_ISO9660_FS is not set | ||
| 838 | # CONFIG_UDF_FS is not set | ||
| 839 | |||
| 840 | # | ||
| 841 | # DOS/FAT/NT Filesystems | ||
| 842 | # | ||
| 843 | CONFIG_FAT_FS=y | ||
| 844 | CONFIG_MSDOS_FS=y | ||
| 845 | CONFIG_VFAT_FS=y | ||
| 846 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
| 847 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
| 848 | # CONFIG_NTFS_FS is not set | ||
| 849 | |||
| 850 | # | ||
| 851 | # Pseudo filesystems | ||
| 852 | # | ||
| 853 | CONFIG_PROC_FS=y | ||
| 854 | CONFIG_SYSFS=y | ||
| 855 | CONFIG_TMPFS=y | ||
| 856 | # CONFIG_HUGETLB_PAGE is not set | ||
| 857 | CONFIG_RAMFS=y | ||
| 858 | # CONFIG_RELAYFS_FS is not set | ||
| 859 | |||
| 860 | # | ||
| 861 | # Miscellaneous filesystems | ||
| 862 | # | ||
| 863 | # CONFIG_ADFS_FS is not set | ||
| 864 | # CONFIG_AFFS_FS is not set | ||
| 865 | # CONFIG_HFS_FS is not set | ||
| 866 | # CONFIG_HFSPLUS_FS is not set | ||
| 867 | # CONFIG_BEFS_FS is not set | ||
| 868 | # CONFIG_BFS_FS is not set | ||
| 869 | # CONFIG_EFS_FS is not set | ||
| 870 | # CONFIG_JFFS_FS is not set | ||
| 871 | CONFIG_JFFS2_FS=y | ||
| 872 | CONFIG_JFFS2_FS_DEBUG=0 | ||
| 873 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
| 874 | CONFIG_JFFS2_COMPRESSION_OPTIONS=y | ||
| 875 | CONFIG_JFFS2_ZLIB=y | ||
| 876 | CONFIG_JFFS2_RTIME=y | ||
| 877 | CONFIG_JFFS2_RUBIN=y | ||
| 878 | # CONFIG_JFFS2_CMODE_NONE is not set | ||
| 879 | CONFIG_JFFS2_CMODE_PRIORITY=y | ||
| 880 | # CONFIG_JFFS2_CMODE_SIZE is not set | ||
| 881 | CONFIG_CRAMFS=m | ||
| 882 | # CONFIG_VXFS_FS is not set | ||
| 883 | # CONFIG_HPFS_FS is not set | ||
| 884 | # CONFIG_QNX4FS_FS is not set | ||
| 885 | # CONFIG_SYSV_FS is not set | ||
| 886 | # CONFIG_UFS_FS is not set | ||
| 887 | |||
| 888 | # | ||
| 889 | # Network File Systems | ||
| 890 | # | ||
| 891 | # CONFIG_NFS_FS is not set | ||
| 892 | # CONFIG_NFSD is not set | ||
| 893 | # CONFIG_SMB_FS is not set | ||
| 894 | # CONFIG_CIFS is not set | ||
| 895 | # CONFIG_NCP_FS is not set | ||
| 896 | # CONFIG_CODA_FS is not set | ||
| 897 | # CONFIG_AFS_FS is not set | ||
| 898 | # CONFIG_9P_FS is not set | ||
| 899 | |||
| 900 | # | ||
| 901 | # Partition Types | ||
| 902 | # | ||
| 903 | CONFIG_PARTITION_ADVANCED=y | ||
| 904 | # CONFIG_ACORN_PARTITION is not set | ||
| 905 | # CONFIG_OSF_PARTITION is not set | ||
| 906 | # CONFIG_AMIGA_PARTITION is not set | ||
| 907 | # CONFIG_ATARI_PARTITION is not set | ||
| 908 | # CONFIG_MAC_PARTITION is not set | ||
| 909 | CONFIG_MSDOS_PARTITION=y | ||
| 910 | # CONFIG_BSD_DISKLABEL is not set | ||
| 911 | # CONFIG_MINIX_SUBPARTITION is not set | ||
| 912 | # CONFIG_SOLARIS_X86_PARTITION is not set | ||
| 913 | # CONFIG_UNIXWARE_DISKLABEL is not set | ||
| 914 | # CONFIG_LDM_PARTITION is not set | ||
| 915 | # CONFIG_SGI_PARTITION is not set | ||
| 916 | # CONFIG_ULTRIX_PARTITION is not set | ||
| 917 | # CONFIG_SUN_PARTITION is not set | ||
| 918 | # CONFIG_EFI_PARTITION is not set | ||
| 919 | |||
| 920 | # | ||
| 921 | # Native Language Support | ||
| 922 | # | ||
| 923 | CONFIG_NLS=y | ||
| 924 | CONFIG_NLS_DEFAULT="cp437" | ||
| 925 | CONFIG_NLS_CODEPAGE_437=y | ||
| 926 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
| 927 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
| 928 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
| 929 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
| 930 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
| 931 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
| 932 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
| 933 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
| 934 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
| 935 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
| 936 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
| 937 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
| 938 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
| 939 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
| 940 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
| 941 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
| 942 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
| 943 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
| 944 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
| 945 | # CONFIG_NLS_ISO8859_8 is not set | ||
| 946 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
| 947 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
| 948 | CONFIG_NLS_ASCII=y | ||
| 949 | CONFIG_NLS_ISO8859_1=y | ||
| 950 | # CONFIG_NLS_ISO8859_2 is not set | ||
| 951 | # CONFIG_NLS_ISO8859_3 is not set | ||
| 952 | # CONFIG_NLS_ISO8859_4 is not set | ||
| 953 | # CONFIG_NLS_ISO8859_5 is not set | ||
| 954 | # CONFIG_NLS_ISO8859_6 is not set | ||
| 955 | # CONFIG_NLS_ISO8859_7 is not set | ||
| 956 | # CONFIG_NLS_ISO8859_9 is not set | ||
| 957 | # CONFIG_NLS_ISO8859_13 is not set | ||
| 958 | # CONFIG_NLS_ISO8859_14 is not set | ||
| 959 | # CONFIG_NLS_ISO8859_15 is not set | ||
| 960 | # CONFIG_NLS_KOI8_R is not set | ||
| 961 | # CONFIG_NLS_KOI8_U is not set | ||
| 962 | CONFIG_NLS_UTF8=y | ||
| 963 | |||
| 964 | # | ||
| 965 | # Profiling support | ||
| 966 | # | ||
| 967 | # CONFIG_PROFILING is not set | ||
| 968 | |||
| 969 | # | ||
| 970 | # Kernel hacking | ||
| 971 | # | ||
| 972 | # CONFIG_PRINTK_TIME is not set | ||
| 973 | CONFIG_DEBUG_KERNEL=y | ||
| 974 | CONFIG_MAGIC_SYSRQ=y | ||
| 975 | CONFIG_LOG_BUF_SHIFT=14 | ||
| 976 | CONFIG_DETECT_SOFTLOCKUP=y | ||
| 977 | # CONFIG_SCHEDSTATS is not set | ||
| 978 | # CONFIG_DEBUG_SLAB is not set | ||
| 979 | CONFIG_DEBUG_PREEMPT=y | ||
| 980 | # CONFIG_DEBUG_SPINLOCK is not set | ||
| 981 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
| 982 | # CONFIG_DEBUG_KOBJECT is not set | ||
| 983 | # CONFIG_DEBUG_BUGVERBOSE is not set | ||
| 984 | # CONFIG_DEBUG_INFO is not set | ||
| 985 | # CONFIG_DEBUG_FS is not set | ||
| 986 | CONFIG_FRAME_POINTER=y | ||
| 987 | # CONFIG_DEBUG_USER is not set | ||
| 988 | # CONFIG_DEBUG_WAITQ is not set | ||
| 989 | CONFIG_DEBUG_ERRORS=y | ||
| 990 | # CONFIG_DEBUG_LL is not set | ||
| 991 | |||
| 992 | # | ||
| 993 | # Security options | ||
| 994 | # | ||
| 995 | # CONFIG_KEYS is not set | ||
| 996 | # CONFIG_SECURITY is not set | ||
| 997 | |||
| 998 | # | ||
| 999 | # Cryptographic options | ||
| 1000 | # | ||
| 1001 | # CONFIG_CRYPTO is not set | ||
| 1002 | |||
| 1003 | # | ||
| 1004 | # Hardware crypto devices | ||
| 1005 | # | ||
| 1006 | |||
| 1007 | # | ||
| 1008 | # Library routines | ||
| 1009 | # | ||
| 1010 | CONFIG_CRC_CCITT=y | ||
| 1011 | # CONFIG_CRC16 is not set | ||
| 1012 | CONFIG_CRC32=y | ||
| 1013 | # CONFIG_LIBCRC32C is not set | ||
| 1014 | CONFIG_ZLIB_INFLATE=y | ||
| 1015 | CONFIG_ZLIB_DEFLATE=y | ||
diff --git a/arch/arm/configs/spitz_defconfig b/arch/arm/configs/spitz_defconfig new file mode 100644 index 000000000000..900e04f8e38c --- /dev/null +++ b/arch/arm/configs/spitz_defconfig | |||
| @@ -0,0 +1,1401 @@ | |||
| 1 | # | ||
| 2 | # Automatically generated make config: don't edit | ||
| 3 | # Linux kernel version: 2.6.14-rc3 | ||
| 4 | # Sun Oct 9 17:11:19 2005 | ||
| 5 | # | ||
| 6 | CONFIG_ARM=y | ||
| 7 | CONFIG_MMU=y | ||
| 8 | CONFIG_UID16=y | ||
| 9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
| 10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
| 11 | |||
| 12 | # | ||
| 13 | # Code maturity level options | ||
| 14 | # | ||
| 15 | CONFIG_EXPERIMENTAL=y | ||
| 16 | CONFIG_CLEAN_COMPILE=y | ||
| 17 | CONFIG_BROKEN_ON_SMP=y | ||
| 18 | CONFIG_LOCK_KERNEL=y | ||
| 19 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
| 20 | |||
| 21 | # | ||
| 22 | # General setup | ||
| 23 | # | ||
| 24 | CONFIG_LOCALVERSION="" | ||
| 25 | CONFIG_LOCALVERSION_AUTO=y | ||
| 26 | CONFIG_SWAP=y | ||
| 27 | CONFIG_SYSVIPC=y | ||
| 28 | # CONFIG_POSIX_MQUEUE is not set | ||
| 29 | CONFIG_BSD_PROCESS_ACCT=y | ||
| 30 | # CONFIG_BSD_PROCESS_ACCT_V3 is not set | ||
| 31 | CONFIG_SYSCTL=y | ||
| 32 | # CONFIG_AUDIT is not set | ||
| 33 | CONFIG_HOTPLUG=y | ||
| 34 | CONFIG_KOBJECT_UEVENT=y | ||
| 35 | # CONFIG_IKCONFIG is not set | ||
| 36 | CONFIG_INITRAMFS_SOURCE="" | ||
| 37 | CONFIG_EMBEDDED=y | ||
| 38 | CONFIG_KALLSYMS=y | ||
| 39 | # CONFIG_KALLSYMS_ALL is not set | ||
| 40 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
| 41 | CONFIG_PRINTK=y | ||
| 42 | CONFIG_BUG=y | ||
| 43 | CONFIG_BASE_FULL=y | ||
| 44 | CONFIG_FUTEX=y | ||
| 45 | CONFIG_EPOLL=y | ||
| 46 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
| 47 | CONFIG_SHMEM=y | ||
| 48 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
| 49 | CONFIG_CC_ALIGN_LABELS=0 | ||
| 50 | CONFIG_CC_ALIGN_LOOPS=0 | ||
| 51 | CONFIG_CC_ALIGN_JUMPS=0 | ||
| 52 | # CONFIG_TINY_SHMEM is not set | ||
| 53 | CONFIG_BASE_SMALL=0 | ||
| 54 | |||
| 55 | # | ||
| 56 | # Loadable module support | ||
| 57 | # | ||
| 58 | CONFIG_MODULES=y | ||
| 59 | CONFIG_MODULE_UNLOAD=y | ||
| 60 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
| 61 | CONFIG_OBSOLETE_MODPARM=y | ||
| 62 | # CONFIG_MODVERSIONS is not set | ||
| 63 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
| 64 | CONFIG_KMOD=y | ||
| 65 | |||
| 66 | # | ||
| 67 | # System Type | ||
| 68 | # | ||
| 69 | # CONFIG_ARCH_CLPS7500 is not set | ||
| 70 | # CONFIG_ARCH_CLPS711X is not set | ||
| 71 | # CONFIG_ARCH_CO285 is not set | ||
| 72 | # CONFIG_ARCH_EBSA110 is not set | ||
| 73 | # CONFIG_ARCH_CAMELOT is not set | ||
| 74 | # CONFIG_ARCH_FOOTBRIDGE is not set | ||
| 75 | # CONFIG_ARCH_INTEGRATOR is not set | ||
| 76 | # CONFIG_ARCH_IOP3XX is not set | ||
| 77 | # CONFIG_ARCH_IXP4XX is not set | ||
| 78 | # CONFIG_ARCH_IXP2000 is not set | ||
| 79 | # CONFIG_ARCH_L7200 is not set | ||
| 80 | CONFIG_ARCH_PXA=y | ||
| 81 | # CONFIG_ARCH_RPC is not set | ||
| 82 | # CONFIG_ARCH_SA1100 is not set | ||
| 83 | # CONFIG_ARCH_S3C2410 is not set | ||
| 84 | # CONFIG_ARCH_SHARK is not set | ||
| 85 | # CONFIG_ARCH_LH7A40X is not set | ||
| 86 | # CONFIG_ARCH_OMAP is not set | ||
| 87 | # CONFIG_ARCH_VERSATILE is not set | ||
| 88 | # CONFIG_ARCH_IMX is not set | ||
| 89 | # CONFIG_ARCH_H720X is not set | ||
| 90 | # CONFIG_ARCH_AAEC2000 is not set | ||
| 91 | |||
| 92 | # | ||
| 93 | # Intel PXA2xx Implementations | ||
| 94 | # | ||
| 95 | # CONFIG_ARCH_LUBBOCK is not set | ||
| 96 | # CONFIG_MACH_MAINSTONE is not set | ||
| 97 | # CONFIG_ARCH_PXA_IDP is not set | ||
| 98 | CONFIG_PXA_SHARPSL=y | ||
| 99 | # CONFIG_PXA_SHARPSL_25x is not set | ||
| 100 | CONFIG_PXA_SHARPSL_27x=y | ||
| 101 | CONFIG_MACH_SPITZ=y | ||
| 102 | CONFIG_MACH_BORZOI=y | ||
| 103 | CONFIG_PXA27x=y | ||
| 104 | CONFIG_PXA_SHARP_Cxx00=y | ||
| 105 | |||
| 106 | # | ||
| 107 | # Processor Type | ||
| 108 | # | ||
| 109 | CONFIG_CPU_32=y | ||
| 110 | CONFIG_CPU_XSCALE=y | ||
| 111 | CONFIG_CPU_32v5=y | ||
| 112 | CONFIG_CPU_ABRT_EV5T=y | ||
| 113 | CONFIG_CPU_CACHE_VIVT=y | ||
| 114 | CONFIG_CPU_TLB_V4WBI=y | ||
| 115 | |||
| 116 | # | ||
| 117 | # Processor Features | ||
| 118 | # | ||
| 119 | CONFIG_ARM_THUMB=y | ||
| 120 | CONFIG_XSCALE_PMU=y | ||
| 121 | CONFIG_SHARP_PARAM=y | ||
| 122 | CONFIG_SHARP_SCOOP=y | ||
| 123 | |||
| 124 | # | ||
| 125 | # Bus support | ||
| 126 | # | ||
| 127 | CONFIG_ISA_DMA_API=y | ||
| 128 | |||
| 129 | # | ||
| 130 | # PCCARD (PCMCIA/CardBus) support | ||
| 131 | # | ||
| 132 | CONFIG_PCCARD=y | ||
| 133 | # CONFIG_PCMCIA_DEBUG is not set | ||
| 134 | CONFIG_PCMCIA=y | ||
| 135 | CONFIG_PCMCIA_LOAD_CIS=y | ||
| 136 | CONFIG_PCMCIA_IOCTL=y | ||
| 137 | |||
| 138 | # | ||
| 139 | # PC-card bridges | ||
| 140 | # | ||
| 141 | CONFIG_PCMCIA_PXA2XX=y | ||
| 142 | |||
| 143 | # | ||
| 144 | # Kernel Features | ||
| 145 | # | ||
| 146 | CONFIG_PREEMPT=y | ||
| 147 | # CONFIG_NO_IDLE_HZ is not set | ||
| 148 | # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set | ||
| 149 | CONFIG_SELECT_MEMORY_MODEL=y | ||
| 150 | CONFIG_FLATMEM_MANUAL=y | ||
| 151 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
| 152 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
| 153 | CONFIG_FLATMEM=y | ||
| 154 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
| 155 | # CONFIG_SPARSEMEM_STATIC is not set | ||
| 156 | CONFIG_ALIGNMENT_TRAP=y | ||
| 157 | |||
| 158 | # | ||
| 159 | # Boot options | ||
| 160 | # | ||
| 161 | CONFIG_ZBOOT_ROM_TEXT=0x0 | ||
| 162 | CONFIG_ZBOOT_ROM_BSS=0x0 | ||
| 163 | CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 debug" | ||
| 164 | # CONFIG_XIP_KERNEL is not set | ||
| 165 | |||
| 166 | # | ||
| 167 | # Floating point emulation | ||
| 168 | # | ||
| 169 | |||
| 170 | # | ||
| 171 | # At least one emulation must be selected | ||
| 172 | # | ||
| 173 | CONFIG_FPE_NWFPE=y | ||
| 174 | # CONFIG_FPE_NWFPE_XP is not set | ||
| 175 | # CONFIG_FPE_FASTFPE is not set | ||
| 176 | |||
| 177 | # | ||
| 178 | # Userspace binary formats | ||
| 179 | # | ||
| 180 | CONFIG_BINFMT_ELF=y | ||
| 181 | CONFIG_BINFMT_AOUT=m | ||
| 182 | CONFIG_BINFMT_MISC=m | ||
| 183 | # CONFIG_ARTHUR is not set | ||
| 184 | |||
| 185 | # | ||
| 186 | # Power management options | ||
| 187 | # | ||
| 188 | CONFIG_PM=y | ||
| 189 | CONFIG_APM=y | ||
| 190 | |||
| 191 | # | ||
| 192 | # Networking | ||
| 193 | # | ||
| 194 | CONFIG_NET=y | ||
| 195 | |||
| 196 | # | ||
| 197 | # Networking options | ||
| 198 | # | ||
| 199 | CONFIG_PACKET=y | ||
| 200 | CONFIG_PACKET_MMAP=y | ||
| 201 | CONFIG_UNIX=y | ||
| 202 | CONFIG_XFRM=y | ||
| 203 | # CONFIG_XFRM_USER is not set | ||
| 204 | # CONFIG_NET_KEY is not set | ||
| 205 | CONFIG_INET=y | ||
| 206 | # CONFIG_IP_MULTICAST is not set | ||
| 207 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
| 208 | CONFIG_IP_FIB_HASH=y | ||
| 209 | # CONFIG_IP_PNP is not set | ||
| 210 | # CONFIG_NET_IPIP is not set | ||
| 211 | # CONFIG_NET_IPGRE is not set | ||
| 212 | # CONFIG_ARPD is not set | ||
| 213 | CONFIG_SYN_COOKIES=y | ||
| 214 | # CONFIG_INET_AH is not set | ||
| 215 | # CONFIG_INET_ESP is not set | ||
| 216 | # CONFIG_INET_IPCOMP is not set | ||
| 217 | # CONFIG_INET_TUNNEL is not set | ||
| 218 | CONFIG_INET_DIAG=y | ||
| 219 | CONFIG_INET_TCP_DIAG=y | ||
| 220 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
| 221 | CONFIG_TCP_CONG_BIC=y | ||
| 222 | |||
| 223 | # | ||
| 224 | # IP: Virtual Server Configuration | ||
| 225 | # | ||
| 226 | # CONFIG_IP_VS is not set | ||
| 227 | CONFIG_IPV6=m | ||
| 228 | # CONFIG_IPV6_PRIVACY is not set | ||
| 229 | CONFIG_INET6_AH=m | ||
| 230 | CONFIG_INET6_ESP=m | ||
| 231 | CONFIG_INET6_IPCOMP=m | ||
| 232 | CONFIG_INET6_TUNNEL=m | ||
| 233 | CONFIG_IPV6_TUNNEL=m | ||
| 234 | CONFIG_NETFILTER=y | ||
| 235 | # CONFIG_NETFILTER_DEBUG is not set | ||
| 236 | # CONFIG_NETFILTER_NETLINK is not set | ||
| 237 | |||
| 238 | # | ||
| 239 | # IP: Netfilter Configuration | ||
| 240 | # | ||
| 241 | CONFIG_IP_NF_CONNTRACK=m | ||
| 242 | # CONFIG_IP_NF_CT_ACCT is not set | ||
| 243 | # CONFIG_IP_NF_CONNTRACK_MARK is not set | ||
| 244 | # CONFIG_IP_NF_CONNTRACK_EVENTS is not set | ||
| 245 | CONFIG_IP_NF_CT_PROTO_SCTP=m | ||
| 246 | CONFIG_IP_NF_FTP=m | ||
| 247 | CONFIG_IP_NF_IRC=m | ||
| 248 | # CONFIG_IP_NF_NETBIOS_NS is not set | ||
| 249 | CONFIG_IP_NF_TFTP=m | ||
| 250 | CONFIG_IP_NF_AMANDA=m | ||
| 251 | # CONFIG_IP_NF_PPTP is not set | ||
| 252 | CONFIG_IP_NF_QUEUE=m | ||
| 253 | CONFIG_IP_NF_IPTABLES=m | ||
| 254 | CONFIG_IP_NF_MATCH_LIMIT=m | ||
| 255 | CONFIG_IP_NF_MATCH_IPRANGE=m | ||
| 256 | CONFIG_IP_NF_MATCH_MAC=m | ||
| 257 | CONFIG_IP_NF_MATCH_PKTTYPE=m | ||
| 258 | CONFIG_IP_NF_MATCH_MARK=m | ||
| 259 | CONFIG_IP_NF_MATCH_MULTIPORT=m | ||
| 260 | CONFIG_IP_NF_MATCH_TOS=m | ||
| 261 | CONFIG_IP_NF_MATCH_RECENT=m | ||
| 262 | CONFIG_IP_NF_MATCH_ECN=m | ||
| 263 | CONFIG_IP_NF_MATCH_DSCP=m | ||
| 264 | CONFIG_IP_NF_MATCH_AH_ESP=m | ||
| 265 | CONFIG_IP_NF_MATCH_LENGTH=m | ||
| 266 | CONFIG_IP_NF_MATCH_TTL=m | ||
| 267 | CONFIG_IP_NF_MATCH_TCPMSS=m | ||
| 268 | CONFIG_IP_NF_MATCH_HELPER=m | ||
| 269 | CONFIG_IP_NF_MATCH_STATE=m | ||
| 270 | CONFIG_IP_NF_MATCH_CONNTRACK=m | ||
| 271 | CONFIG_IP_NF_MATCH_OWNER=m | ||
| 272 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | ||
| 273 | CONFIG_IP_NF_MATCH_REALM=m | ||
| 274 | CONFIG_IP_NF_MATCH_SCTP=m | ||
| 275 | # CONFIG_IP_NF_MATCH_DCCP is not set | ||
| 276 | CONFIG_IP_NF_MATCH_COMMENT=m | ||
| 277 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | ||
| 278 | # CONFIG_IP_NF_MATCH_STRING is not set | ||
| 279 | CONFIG_IP_NF_FILTER=m | ||
| 280 | # CONFIG_IP_NF_TARGET_REJECT is not set | ||
| 281 | CONFIG_IP_NF_TARGET_LOG=m | ||
| 282 | CONFIG_IP_NF_TARGET_ULOG=m | ||
| 283 | CONFIG_IP_NF_TARGET_TCPMSS=m | ||
| 284 | # CONFIG_IP_NF_TARGET_NFQUEUE is not set | ||
| 285 | CONFIG_IP_NF_NAT=m | ||
| 286 | CONFIG_IP_NF_NAT_NEEDED=y | ||
| 287 | # CONFIG_IP_NF_TARGET_MASQUERADE is not set | ||
| 288 | # CONFIG_IP_NF_TARGET_REDIRECT is not set | ||
| 289 | # CONFIG_IP_NF_TARGET_NETMAP is not set | ||
| 290 | # CONFIG_IP_NF_TARGET_SAME is not set | ||
| 291 | # CONFIG_IP_NF_NAT_SNMP_BASIC is not set | ||
| 292 | CONFIG_IP_NF_NAT_IRC=m | ||
| 293 | CONFIG_IP_NF_NAT_FTP=m | ||
| 294 | CONFIG_IP_NF_NAT_TFTP=m | ||
| 295 | CONFIG_IP_NF_NAT_AMANDA=m | ||
| 296 | CONFIG_IP_NF_MANGLE=m | ||
| 297 | # CONFIG_IP_NF_TARGET_TOS is not set | ||
| 298 | # CONFIG_IP_NF_TARGET_ECN is not set | ||
| 299 | # CONFIG_IP_NF_TARGET_DSCP is not set | ||
| 300 | # CONFIG_IP_NF_TARGET_MARK is not set | ||
| 301 | # CONFIG_IP_NF_TARGET_CLASSIFY is not set | ||
| 302 | # CONFIG_IP_NF_TARGET_TTL is not set | ||
| 303 | CONFIG_IP_NF_RAW=m | ||
| 304 | # CONFIG_IP_NF_TARGET_NOTRACK is not set | ||
| 305 | CONFIG_IP_NF_ARPTABLES=m | ||
| 306 | CONFIG_IP_NF_ARPFILTER=m | ||
| 307 | CONFIG_IP_NF_ARP_MANGLE=m | ||
| 308 | |||
| 309 | # | ||
| 310 | # IPv6: Netfilter Configuration (EXPERIMENTAL) | ||
| 311 | # | ||
| 312 | CONFIG_IP6_NF_QUEUE=m | ||
| 313 | CONFIG_IP6_NF_IPTABLES=m | ||
| 314 | CONFIG_IP6_NF_MATCH_LIMIT=m | ||
| 315 | CONFIG_IP6_NF_MATCH_MAC=m | ||
| 316 | CONFIG_IP6_NF_MATCH_RT=m | ||
| 317 | CONFIG_IP6_NF_MATCH_OPTS=m | ||
| 318 | CONFIG_IP6_NF_MATCH_FRAG=m | ||
| 319 | CONFIG_IP6_NF_MATCH_HL=m | ||
| 320 | CONFIG_IP6_NF_MATCH_MULTIPORT=m | ||
| 321 | CONFIG_IP6_NF_MATCH_OWNER=m | ||
| 322 | CONFIG_IP6_NF_MATCH_MARK=m | ||
| 323 | CONFIG_IP6_NF_MATCH_IPV6HEADER=m | ||
| 324 | CONFIG_IP6_NF_MATCH_AHESP=m | ||
| 325 | CONFIG_IP6_NF_MATCH_LENGTH=m | ||
| 326 | CONFIG_IP6_NF_MATCH_EUI64=m | ||
| 327 | CONFIG_IP6_NF_FILTER=m | ||
| 328 | # CONFIG_IP6_NF_TARGET_LOG is not set | ||
| 329 | # CONFIG_IP6_NF_TARGET_REJECT is not set | ||
| 330 | # CONFIG_IP6_NF_TARGET_NFQUEUE is not set | ||
| 331 | CONFIG_IP6_NF_MANGLE=m | ||
| 332 | # CONFIG_IP6_NF_TARGET_MARK is not set | ||
| 333 | # CONFIG_IP6_NF_TARGET_HL is not set | ||
| 334 | CONFIG_IP6_NF_RAW=m | ||
| 335 | |||
| 336 | # | ||
| 337 | # DCCP Configuration (EXPERIMENTAL) | ||
| 338 | # | ||
| 339 | # CONFIG_IP_DCCP is not set | ||
| 340 | |||
| 341 | # | ||
| 342 | # SCTP Configuration (EXPERIMENTAL) | ||
| 343 | # | ||
| 344 | # CONFIG_IP_SCTP is not set | ||
| 345 | # CONFIG_ATM is not set | ||
| 346 | # CONFIG_BRIDGE is not set | ||
| 347 | # CONFIG_VLAN_8021Q is not set | ||
| 348 | # CONFIG_DECNET is not set | ||
| 349 | # CONFIG_LLC2 is not set | ||
| 350 | # CONFIG_IPX is not set | ||
| 351 | # CONFIG_ATALK is not set | ||
| 352 | # CONFIG_X25 is not set | ||
| 353 | # CONFIG_LAPB is not set | ||
| 354 | # CONFIG_NET_DIVERT is not set | ||
| 355 | # CONFIG_ECONET is not set | ||
| 356 | # CONFIG_WAN_ROUTER is not set | ||
| 357 | # CONFIG_NET_SCHED is not set | ||
| 358 | CONFIG_NET_CLS_ROUTE=y | ||
| 359 | |||
| 360 | # | ||
| 361 | # Network testing | ||
| 362 | # | ||
| 363 | # CONFIG_NET_PKTGEN is not set | ||
| 364 | # CONFIG_HAMRADIO is not set | ||
| 365 | CONFIG_IRDA=m | ||
| 366 | |||
| 367 | # | ||
| 368 | # IrDA protocols | ||
| 369 | # | ||
| 370 | CONFIG_IRLAN=m | ||
| 371 | CONFIG_IRNET=m | ||
| 372 | CONFIG_IRCOMM=m | ||
| 373 | # CONFIG_IRDA_ULTRA is not set | ||
| 374 | |||
| 375 | # | ||
| 376 | # IrDA options | ||
| 377 | # | ||
| 378 | # CONFIG_IRDA_CACHE_LAST_LSAP is not set | ||
| 379 | # CONFIG_IRDA_FAST_RR is not set | ||
| 380 | # CONFIG_IRDA_DEBUG is not set | ||
| 381 | |||
| 382 | # | ||
| 383 | # Infrared-port device drivers | ||
| 384 | # | ||
| 385 | |||
| 386 | # | ||
| 387 | # SIR device drivers | ||
| 388 | # | ||
| 389 | # CONFIG_IRTTY_SIR is not set | ||
| 390 | |||
| 391 | # | ||
| 392 | # Dongle support | ||
| 393 | # | ||
| 394 | |||
| 395 | # | ||
| 396 | # Old SIR device drivers | ||
| 397 | # | ||
| 398 | # CONFIG_IRPORT_SIR is not set | ||
| 399 | |||
| 400 | # | ||
| 401 | # Old Serial dongle support | ||
| 402 | # | ||
| 403 | |||
| 404 | # | ||
| 405 | # FIR device drivers | ||
| 406 | # | ||
| 407 | # CONFIG_USB_IRDA is not set | ||
| 408 | # CONFIG_SIGMATEL_FIR is not set | ||
| 409 | # CONFIG_NSC_FIR is not set | ||
| 410 | # CONFIG_WINBOND_FIR is not set | ||
| 411 | # CONFIG_SMC_IRCC_FIR is not set | ||
| 412 | # CONFIG_ALI_FIR is not set | ||
| 413 | # CONFIG_VIA_FIR is not set | ||
| 414 | CONFIG_BT=m | ||
| 415 | CONFIG_BT_L2CAP=m | ||
| 416 | CONFIG_BT_SCO=m | ||
| 417 | CONFIG_BT_RFCOMM=m | ||
| 418 | CONFIG_BT_RFCOMM_TTY=y | ||
| 419 | CONFIG_BT_BNEP=m | ||
| 420 | CONFIG_BT_BNEP_MC_FILTER=y | ||
| 421 | CONFIG_BT_BNEP_PROTO_FILTER=y | ||
| 422 | CONFIG_BT_HIDP=m | ||
| 423 | |||
| 424 | # | ||
| 425 | # Bluetooth device drivers | ||
| 426 | # | ||
| 427 | CONFIG_BT_HCIUSB=m | ||
| 428 | # CONFIG_BT_HCIUSB_SCO is not set | ||
| 429 | CONFIG_BT_HCIUART=m | ||
| 430 | CONFIG_BT_HCIUART_H4=y | ||
| 431 | CONFIG_BT_HCIUART_BCSP=y | ||
| 432 | CONFIG_BT_HCIUART_BCSP_TXCRC=y | ||
| 433 | CONFIG_BT_HCIBCM203X=m | ||
| 434 | CONFIG_BT_HCIBPA10X=m | ||
| 435 | CONFIG_BT_HCIBFUSB=m | ||
| 436 | CONFIG_BT_HCIDTL1=m | ||
| 437 | CONFIG_BT_HCIBT3C=m | ||
| 438 | CONFIG_BT_HCIBLUECARD=m | ||
| 439 | CONFIG_BT_HCIBTUART=m | ||
| 440 | CONFIG_BT_HCIVHCI=m | ||
| 441 | CONFIG_IEEE80211=m | ||
| 442 | # CONFIG_IEEE80211_DEBUG is not set | ||
| 443 | CONFIG_IEEE80211_CRYPT_WEP=m | ||
| 444 | # CONFIG_IEEE80211_CRYPT_CCMP is not set | ||
| 445 | # CONFIG_IEEE80211_CRYPT_TKIP is not set | ||
| 446 | |||
| 447 | # | ||
| 448 | # Device Drivers | ||
| 449 | # | ||
| 450 | |||
| 451 | # | ||
| 452 | # Generic Driver Options | ||
| 453 | # | ||
| 454 | CONFIG_STANDALONE=y | ||
| 455 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
| 456 | CONFIG_FW_LOADER=y | ||
| 457 | # CONFIG_DEBUG_DRIVER is not set | ||
| 458 | |||
| 459 | # | ||
| 460 | # Memory Technology Devices (MTD) | ||
| 461 | # | ||
| 462 | CONFIG_MTD=y | ||
| 463 | # CONFIG_MTD_DEBUG is not set | ||
| 464 | # CONFIG_MTD_CONCAT is not set | ||
| 465 | CONFIG_MTD_PARTITIONS=y | ||
| 466 | # CONFIG_MTD_REDBOOT_PARTS is not set | ||
| 467 | CONFIG_MTD_CMDLINE_PARTS=y | ||
| 468 | # CONFIG_MTD_AFS_PARTS is not set | ||
| 469 | |||
| 470 | # | ||
| 471 | # User Modules And Translation Layers | ||
| 472 | # | ||
| 473 | CONFIG_MTD_CHAR=y | ||
| 474 | CONFIG_MTD_BLOCK=y | ||
| 475 | # CONFIG_FTL is not set | ||
| 476 | # CONFIG_NFTL is not set | ||
| 477 | # CONFIG_INFTL is not set | ||
| 478 | |||
| 479 | # | ||
| 480 | # RAM/ROM/Flash chip drivers | ||
| 481 | # | ||
| 482 | # CONFIG_MTD_CFI is not set | ||
| 483 | # CONFIG_MTD_JEDECPROBE is not set | ||
| 484 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
| 485 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
| 486 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
| 487 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
| 488 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
| 489 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
| 490 | CONFIG_MTD_CFI_I1=y | ||
| 491 | CONFIG_MTD_CFI_I2=y | ||
| 492 | # CONFIG_MTD_CFI_I4 is not set | ||
| 493 | # CONFIG_MTD_CFI_I8 is not set | ||
| 494 | # CONFIG_MTD_RAM is not set | ||
| 495 | CONFIG_MTD_ROM=y | ||
| 496 | # CONFIG_MTD_ABSENT is not set | ||
| 497 | |||
| 498 | # | ||
| 499 | # Mapping drivers for chip access | ||
| 500 | # | ||
| 501 | CONFIG_MTD_COMPLEX_MAPPINGS=y | ||
| 502 | CONFIG_MTD_SHARP_SL=y | ||
| 503 | # CONFIG_MTD_PLATRAM is not set | ||
| 504 | |||
| 505 | # | ||
| 506 | # Self-contained MTD device drivers | ||
| 507 | # | ||
| 508 | # CONFIG_MTD_SLRAM is not set | ||
| 509 | # CONFIG_MTD_PHRAM is not set | ||
| 510 | # CONFIG_MTD_MTDRAM is not set | ||
| 511 | # CONFIG_MTD_BLKMTD is not set | ||
| 512 | # CONFIG_MTD_BLOCK2MTD is not set | ||
| 513 | |||
| 514 | # | ||
| 515 | # Disk-On-Chip Device Drivers | ||
| 516 | # | ||
| 517 | # CONFIG_MTD_DOC2000 is not set | ||
| 518 | # CONFIG_MTD_DOC2001 is not set | ||
| 519 | # CONFIG_MTD_DOC2001PLUS is not set | ||
| 520 | |||
| 521 | # | ||
| 522 | # NAND Flash Device Drivers | ||
| 523 | # | ||
| 524 | CONFIG_MTD_NAND=y | ||
| 525 | CONFIG_MTD_NAND_VERIFY_WRITE=y | ||
| 526 | # CONFIG_MTD_NAND_H1900 is not set | ||
| 527 | CONFIG_MTD_NAND_IDS=y | ||
| 528 | # CONFIG_MTD_NAND_DISKONCHIP is not set | ||
| 529 | CONFIG_MTD_NAND_SHARPSL=y | ||
| 530 | # CONFIG_MTD_NAND_NANDSIM is not set | ||
| 531 | |||
| 532 | # | ||
| 533 | # Parallel port support | ||
| 534 | # | ||
| 535 | # CONFIG_PARPORT is not set | ||
| 536 | |||
| 537 | # | ||
| 538 | # Plug and Play support | ||
| 539 | # | ||
| 540 | |||
| 541 | # | ||
| 542 | # Block devices | ||
| 543 | # | ||
| 544 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
| 545 | CONFIG_BLK_DEV_LOOP=y | ||
| 546 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
| 547 | # CONFIG_BLK_DEV_NBD is not set | ||
| 548 | # CONFIG_BLK_DEV_UB is not set | ||
| 549 | # CONFIG_BLK_DEV_RAM is not set | ||
| 550 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
| 551 | # CONFIG_CDROM_PKTCDVD is not set | ||
| 552 | |||
| 553 | # | ||
| 554 | # IO Schedulers | ||
| 555 | # | ||
| 556 | CONFIG_IOSCHED_NOOP=y | ||
| 557 | CONFIG_IOSCHED_AS=y | ||
| 558 | CONFIG_IOSCHED_DEADLINE=y | ||
| 559 | CONFIG_IOSCHED_CFQ=y | ||
| 560 | # CONFIG_ATA_OVER_ETH is not set | ||
| 561 | |||
| 562 | # | ||
| 563 | # ATA/ATAPI/MFM/RLL support | ||
| 564 | # | ||
| 565 | CONFIG_IDE=y | ||
| 566 | CONFIG_BLK_DEV_IDE=y | ||
| 567 | |||
| 568 | # | ||
| 569 | # Please see Documentation/ide.txt for help/info on IDE drives | ||
| 570 | # | ||
| 571 | # CONFIG_BLK_DEV_IDE_SATA is not set | ||
| 572 | CONFIG_BLK_DEV_IDEDISK=y | ||
| 573 | # CONFIG_IDEDISK_MULTI_MODE is not set | ||
| 574 | CONFIG_BLK_DEV_IDECS=y | ||
| 575 | # CONFIG_BLK_DEV_IDECD is not set | ||
| 576 | # CONFIG_BLK_DEV_IDETAPE is not set | ||
| 577 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | ||
| 578 | # CONFIG_BLK_DEV_IDESCSI is not set | ||
| 579 | # CONFIG_IDE_TASK_IOCTL is not set | ||
| 580 | |||
| 581 | # | ||
| 582 | # IDE chipset support/bugfixes | ||
| 583 | # | ||
| 584 | CONFIG_IDE_GENERIC=y | ||
| 585 | # CONFIG_IDE_ARM is not set | ||
| 586 | # CONFIG_BLK_DEV_IDEDMA is not set | ||
| 587 | # CONFIG_IDEDMA_AUTO is not set | ||
| 588 | # CONFIG_BLK_DEV_HD is not set | ||
| 589 | |||
| 590 | # | ||
| 591 | # SCSI device support | ||
| 592 | # | ||
| 593 | # CONFIG_RAID_ATTRS is not set | ||
| 594 | CONFIG_SCSI=m | ||
| 595 | CONFIG_SCSI_PROC_FS=y | ||
| 596 | |||
| 597 | # | ||
| 598 | # SCSI support type (disk, tape, CD-ROM) | ||
| 599 | # | ||
| 600 | CONFIG_BLK_DEV_SD=m | ||
| 601 | CONFIG_CHR_DEV_ST=m | ||
| 602 | CONFIG_CHR_DEV_OSST=m | ||
| 603 | CONFIG_BLK_DEV_SR=m | ||
| 604 | # CONFIG_BLK_DEV_SR_VENDOR is not set | ||
| 605 | CONFIG_CHR_DEV_SG=m | ||
| 606 | # CONFIG_CHR_DEV_SCH is not set | ||
| 607 | |||
| 608 | # | ||
| 609 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
| 610 | # | ||
| 611 | CONFIG_SCSI_MULTI_LUN=y | ||
| 612 | # CONFIG_SCSI_CONSTANTS is not set | ||
| 613 | # CONFIG_SCSI_LOGGING is not set | ||
| 614 | |||
| 615 | # | ||
| 616 | # SCSI Transport Attributes | ||
| 617 | # | ||
| 618 | # CONFIG_SCSI_SPI_ATTRS is not set | ||
| 619 | # CONFIG_SCSI_FC_ATTRS is not set | ||
| 620 | # CONFIG_SCSI_ISCSI_ATTRS is not set | ||
| 621 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
| 622 | |||
| 623 | # | ||
| 624 | # SCSI low-level drivers | ||
| 625 | # | ||
| 626 | # CONFIG_SCSI_SATA is not set | ||
| 627 | # CONFIG_SCSI_DEBUG is not set | ||
| 628 | |||
| 629 | # | ||
| 630 | # PCMCIA SCSI adapter support | ||
| 631 | # | ||
| 632 | # CONFIG_PCMCIA_AHA152X is not set | ||
| 633 | # CONFIG_PCMCIA_FDOMAIN is not set | ||
| 634 | # CONFIG_PCMCIA_NINJA_SCSI is not set | ||
| 635 | # CONFIG_PCMCIA_QLOGIC is not set | ||
| 636 | # CONFIG_PCMCIA_SYM53C500 is not set | ||
| 637 | |||
| 638 | # | ||
| 639 | # Multi-device support (RAID and LVM) | ||
| 640 | # | ||
| 641 | # CONFIG_MD is not set | ||
| 642 | |||
| 643 | # | ||
| 644 | # Fusion MPT device support | ||
| 645 | # | ||
| 646 | # CONFIG_FUSION is not set | ||
| 647 | |||
| 648 | # | ||
| 649 | # IEEE 1394 (FireWire) support | ||
| 650 | # | ||
| 651 | |||
| 652 | # | ||
| 653 | # I2O device support | ||
| 654 | # | ||
| 655 | |||
| 656 | # | ||
| 657 | # Network device support | ||
| 658 | # | ||
| 659 | CONFIG_NETDEVICES=y | ||
| 660 | # CONFIG_DUMMY is not set | ||
| 661 | # CONFIG_BONDING is not set | ||
| 662 | # CONFIG_EQUALIZER is not set | ||
| 663 | # CONFIG_TUN is not set | ||
| 664 | |||
| 665 | # | ||
| 666 | # PHY device support | ||
| 667 | # | ||
| 668 | # CONFIG_PHYLIB is not set | ||
| 669 | |||
| 670 | # | ||
| 671 | # Ethernet (10 or 100Mbit) | ||
| 672 | # | ||
| 673 | CONFIG_NET_ETHERNET=y | ||
| 674 | CONFIG_MII=m | ||
| 675 | # CONFIG_SMC91X is not set | ||
| 676 | # CONFIG_DM9000 is not set | ||
| 677 | |||
| 678 | # | ||
| 679 | # Ethernet (1000 Mbit) | ||
| 680 | # | ||
| 681 | |||
| 682 | # | ||
| 683 | # Ethernet (10000 Mbit) | ||
| 684 | # | ||
| 685 | |||
| 686 | # | ||
| 687 | # Token Ring devices | ||
| 688 | # | ||
| 689 | |||
| 690 | # | ||
| 691 | # Wireless LAN (non-hamradio) | ||
| 692 | # | ||
| 693 | CONFIG_NET_RADIO=y | ||
| 694 | |||
| 695 | # | ||
| 696 | # Obsolete Wireless cards support (pre-802.11) | ||
| 697 | # | ||
| 698 | # CONFIG_STRIP is not set | ||
| 699 | # CONFIG_PCMCIA_WAVELAN is not set | ||
| 700 | # CONFIG_PCMCIA_NETWAVE is not set | ||
| 701 | |||
| 702 | # | ||
| 703 | # Wireless 802.11 Frequency Hopping cards support | ||
| 704 | # | ||
| 705 | # CONFIG_PCMCIA_RAYCS is not set | ||
| 706 | |||
| 707 | # | ||
| 708 | # Wireless 802.11b ISA/PCI cards support | ||
| 709 | # | ||
| 710 | CONFIG_HERMES=m | ||
| 711 | # CONFIG_ATMEL is not set | ||
| 712 | |||
| 713 | # | ||
| 714 | # Wireless 802.11b Pcmcia/Cardbus cards support | ||
| 715 | # | ||
| 716 | CONFIG_PCMCIA_HERMES=m | ||
| 717 | CONFIG_PCMCIA_SPECTRUM=m | ||
| 718 | # CONFIG_AIRO_CS is not set | ||
| 719 | # CONFIG_PCMCIA_WL3501 is not set | ||
| 720 | CONFIG_HOSTAP=m | ||
| 721 | CONFIG_HOSTAP_FIRMWARE=y | ||
| 722 | CONFIG_HOSTAP_CS=m | ||
| 723 | CONFIG_NET_WIRELESS=y | ||
| 724 | |||
| 725 | # | ||
| 726 | # PCMCIA network device support | ||
| 727 | # | ||
| 728 | CONFIG_NET_PCMCIA=y | ||
| 729 | # CONFIG_PCMCIA_3C589 is not set | ||
| 730 | # CONFIG_PCMCIA_3C574 is not set | ||
| 731 | # CONFIG_PCMCIA_FMVJ18X is not set | ||
| 732 | CONFIG_PCMCIA_PCNET=m | ||
| 733 | # CONFIG_PCMCIA_NMCLAN is not set | ||
| 734 | # CONFIG_PCMCIA_SMC91C92 is not set | ||
| 735 | # CONFIG_PCMCIA_XIRC2PS is not set | ||
| 736 | # CONFIG_PCMCIA_AXNET is not set | ||
| 737 | |||
| 738 | # | ||
| 739 | # Wan interfaces | ||
| 740 | # | ||
| 741 | # CONFIG_WAN is not set | ||
| 742 | CONFIG_PPP=m | ||
| 743 | # CONFIG_PPP_MULTILINK is not set | ||
| 744 | # CONFIG_PPP_FILTER is not set | ||
| 745 | CONFIG_PPP_ASYNC=m | ||
| 746 | # CONFIG_PPP_SYNC_TTY is not set | ||
| 747 | # CONFIG_PPP_DEFLATE is not set | ||
| 748 | CONFIG_PPP_BSDCOMP=m | ||
| 749 | # CONFIG_PPPOE is not set | ||
| 750 | # CONFIG_SLIP is not set | ||
| 751 | # CONFIG_SHAPER is not set | ||
| 752 | # CONFIG_NETCONSOLE is not set | ||
| 753 | # CONFIG_NETPOLL is not set | ||
| 754 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
| 755 | |||
| 756 | # | ||
| 757 | # ISDN subsystem | ||
| 758 | # | ||
| 759 | # CONFIG_ISDN is not set | ||
| 760 | |||
| 761 | # | ||
| 762 | # Input device support | ||
| 763 | # | ||
| 764 | CONFIG_INPUT=y | ||
| 765 | |||
| 766 | # | ||
| 767 | # Userland interfaces | ||
| 768 | # | ||
| 769 | # CONFIG_INPUT_MOUSEDEV is not set | ||
| 770 | # CONFIG_INPUT_JOYDEV is not set | ||
| 771 | # CONFIG_INPUT_TSDEV is not set | ||
| 772 | CONFIG_INPUT_EVDEV=y | ||
| 773 | # CONFIG_INPUT_EVBUG is not set | ||
| 774 | |||
| 775 | # | ||
| 776 | # Input Device Drivers | ||
| 777 | # | ||
| 778 | CONFIG_INPUT_KEYBOARD=y | ||
| 779 | # CONFIG_KEYBOARD_ATKBD is not set | ||
| 780 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
| 781 | # CONFIG_KEYBOARD_LKKBD is not set | ||
| 782 | # CONFIG_KEYBOARD_XTKBD is not set | ||
| 783 | # CONFIG_KEYBOARD_NEWTON is not set | ||
| 784 | # CONFIG_KEYBOARD_CORGI is not set | ||
| 785 | CONFIG_KEYBOARD_SPITZ=y | ||
| 786 | # CONFIG_INPUT_MOUSE is not set | ||
| 787 | # CONFIG_INPUT_JOYSTICK is not set | ||
| 788 | CONFIG_INPUT_TOUCHSCREEN=y | ||
| 789 | CONFIG_TOUCHSCREEN_CORGI=y | ||
| 790 | # CONFIG_TOUCHSCREEN_GUNZE is not set | ||
| 791 | # CONFIG_TOUCHSCREEN_ELO is not set | ||
| 792 | # CONFIG_TOUCHSCREEN_MTOUCH is not set | ||
| 793 | # CONFIG_TOUCHSCREEN_MK712 is not set | ||
| 794 | CONFIG_INPUT_MISC=y | ||
| 795 | CONFIG_INPUT_UINPUT=m | ||
| 796 | |||
| 797 | # | ||
| 798 | # Hardware I/O ports | ||
| 799 | # | ||
| 800 | # CONFIG_SERIO is not set | ||
| 801 | # CONFIG_GAMEPORT is not set | ||
| 802 | |||
| 803 | # | ||
| 804 | # Character devices | ||
| 805 | # | ||
| 806 | CONFIG_VT=y | ||
| 807 | CONFIG_VT_CONSOLE=y | ||
| 808 | CONFIG_HW_CONSOLE=y | ||
| 809 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
| 810 | |||
| 811 | # | ||
| 812 | # Serial drivers | ||
| 813 | # | ||
| 814 | CONFIG_SERIAL_8250=m | ||
| 815 | CONFIG_SERIAL_8250_CS=m | ||
| 816 | CONFIG_SERIAL_8250_NR_UARTS=4 | ||
| 817 | # CONFIG_SERIAL_8250_EXTENDED is not set | ||
| 818 | |||
| 819 | # | ||
| 820 | # Non-8250 serial port support | ||
| 821 | # | ||
| 822 | CONFIG_SERIAL_PXA=y | ||
| 823 | CONFIG_SERIAL_PXA_CONSOLE=y | ||
| 824 | CONFIG_SERIAL_CORE=y | ||
| 825 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
| 826 | CONFIG_UNIX98_PTYS=y | ||
| 827 | # CONFIG_LEGACY_PTYS is not set | ||
| 828 | |||
| 829 | # | ||
| 830 | # IPMI | ||
| 831 | # | ||
| 832 | # CONFIG_IPMI_HANDLER is not set | ||
| 833 | |||
| 834 | # | ||
| 835 | # Watchdog Cards | ||
| 836 | # | ||
| 837 | # CONFIG_WATCHDOG is not set | ||
| 838 | # CONFIG_NVRAM is not set | ||
| 839 | # CONFIG_RTC is not set | ||
| 840 | # CONFIG_DTLK is not set | ||
| 841 | # CONFIG_R3964 is not set | ||
| 842 | |||
| 843 | # | ||
| 844 | # Ftape, the floppy tape device driver | ||
| 845 | # | ||
| 846 | |||
| 847 | # | ||
| 848 | # PCMCIA character devices | ||
| 849 | # | ||
| 850 | # CONFIG_SYNCLINK_CS is not set | ||
| 851 | # CONFIG_RAW_DRIVER is not set | ||
| 852 | |||
| 853 | # | ||
| 854 | # TPM devices | ||
| 855 | # | ||
| 856 | |||
| 857 | # | ||
| 858 | # I2C support | ||
| 859 | # | ||
| 860 | # CONFIG_I2C is not set | ||
| 861 | |||
| 862 | # | ||
| 863 | # Hardware Monitoring support | ||
| 864 | # | ||
| 865 | CONFIG_HWMON=y | ||
| 866 | # CONFIG_HWMON_VID is not set | ||
| 867 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
| 868 | |||
| 869 | # | ||
| 870 | # Misc devices | ||
| 871 | # | ||
| 872 | |||
| 873 | # | ||
| 874 | # Multimedia Capabilities Port drivers | ||
| 875 | # | ||
| 876 | |||
| 877 | # | ||
| 878 | # Multimedia devices | ||
| 879 | # | ||
| 880 | # CONFIG_VIDEO_DEV is not set | ||
| 881 | |||
| 882 | # | ||
| 883 | # Digital Video Broadcasting Devices | ||
| 884 | # | ||
| 885 | # CONFIG_DVB is not set | ||
| 886 | |||
| 887 | # | ||
| 888 | # Graphics support | ||
| 889 | # | ||
| 890 | CONFIG_FB=y | ||
| 891 | CONFIG_FB_CFB_FILLRECT=y | ||
| 892 | CONFIG_FB_CFB_COPYAREA=y | ||
| 893 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
| 894 | CONFIG_FB_SOFT_CURSOR=y | ||
| 895 | # CONFIG_FB_MACMODES is not set | ||
| 896 | # CONFIG_FB_MODE_HELPERS is not set | ||
| 897 | # CONFIG_FB_TILEBLITTING is not set | ||
| 898 | CONFIG_FB_PXA=y | ||
| 899 | # CONFIG_FB_W100 is not set | ||
| 900 | # CONFIG_FB_PXA_PARAMETERS is not set | ||
| 901 | # CONFIG_FB_S1D13XXX is not set | ||
| 902 | # CONFIG_FB_VIRTUAL is not set | ||
| 903 | |||
| 904 | # | ||
| 905 | # Console display driver support | ||
| 906 | # | ||
| 907 | # CONFIG_VGA_CONSOLE is not set | ||
| 908 | CONFIG_DUMMY_CONSOLE=y | ||
| 909 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
| 910 | CONFIG_FONTS=y | ||
| 911 | CONFIG_FONT_8x8=y | ||
| 912 | CONFIG_FONT_8x16=y | ||
| 913 | # CONFIG_FONT_6x11 is not set | ||
| 914 | # CONFIG_FONT_7x14 is not set | ||
| 915 | # CONFIG_FONT_PEARL_8x8 is not set | ||
| 916 | # CONFIG_FONT_ACORN_8x8 is not set | ||
| 917 | # CONFIG_FONT_MINI_4x6 is not set | ||
| 918 | # CONFIG_FONT_SUN8x16 is not set | ||
| 919 | # CONFIG_FONT_SUN12x22 is not set | ||
| 920 | # CONFIG_FONT_10x18 is not set | ||
| 921 | |||
| 922 | # | ||
| 923 | # Logo configuration | ||
| 924 | # | ||
| 925 | # CONFIG_LOGO is not set | ||
| 926 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
| 927 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
| 928 | CONFIG_BACKLIGHT_DEVICE=y | ||
| 929 | CONFIG_LCD_CLASS_DEVICE=y | ||
| 930 | CONFIG_LCD_DEVICE=y | ||
| 931 | CONFIG_BACKLIGHT_CORGI=y | ||
| 932 | |||
| 933 | # | ||
| 934 | # Sound | ||
| 935 | # | ||
| 936 | # CONFIG_SOUND is not set | ||
| 937 | |||
| 938 | # | ||
| 939 | # USB support | ||
| 940 | # | ||
| 941 | CONFIG_USB_ARCH_HAS_HCD=y | ||
| 942 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
| 943 | CONFIG_USB=m | ||
| 944 | # CONFIG_USB_DEBUG is not set | ||
| 945 | |||
| 946 | # | ||
| 947 | # Miscellaneous USB options | ||
| 948 | # | ||
| 949 | CONFIG_USB_DEVICEFS=y | ||
| 950 | # CONFIG_USB_BANDWIDTH is not set | ||
| 951 | # CONFIG_USB_DYNAMIC_MINORS is not set | ||
| 952 | # CONFIG_USB_SUSPEND is not set | ||
| 953 | # CONFIG_USB_OTG is not set | ||
| 954 | |||
| 955 | # | ||
| 956 | # USB Host Controller Drivers | ||
| 957 | # | ||
| 958 | # CONFIG_USB_ISP116X_HCD is not set | ||
| 959 | CONFIG_USB_OHCI_HCD=m | ||
| 960 | # CONFIG_USB_OHCI_BIG_ENDIAN is not set | ||
| 961 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | ||
| 962 | CONFIG_USB_SL811_HCD=m | ||
| 963 | CONFIG_USB_SL811_CS=m | ||
| 964 | |||
| 965 | # | ||
| 966 | # USB Device Class drivers | ||
| 967 | # | ||
| 968 | |||
| 969 | # | ||
| 970 | # USB Bluetooth TTY can only be used with disabled Bluetooth subsystem | ||
| 971 | # | ||
| 972 | CONFIG_USB_ACM=m | ||
| 973 | CONFIG_USB_PRINTER=m | ||
| 974 | |||
| 975 | # | ||
| 976 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information | ||
| 977 | # | ||
| 978 | CONFIG_USB_STORAGE=m | ||
| 979 | # CONFIG_USB_STORAGE_DEBUG is not set | ||
| 980 | # CONFIG_USB_STORAGE_DATAFAB is not set | ||
| 981 | # CONFIG_USB_STORAGE_FREECOM is not set | ||
| 982 | # CONFIG_USB_STORAGE_ISD200 is not set | ||
| 983 | # CONFIG_USB_STORAGE_DPCM is not set | ||
| 984 | # CONFIG_USB_STORAGE_USBAT is not set | ||
| 985 | # CONFIG_USB_STORAGE_SDDR09 is not set | ||
| 986 | # CONFIG_USB_STORAGE_SDDR55 is not set | ||
| 987 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | ||
| 988 | # CONFIG_USB_STORAGE_ONETOUCH is not set | ||
| 989 | |||
| 990 | # | ||
| 991 | # USB Input Devices | ||
| 992 | # | ||
| 993 | CONFIG_USB_HID=m | ||
| 994 | CONFIG_USB_HIDINPUT=y | ||
| 995 | # CONFIG_HID_FF is not set | ||
| 996 | # CONFIG_USB_HIDDEV is not set | ||
| 997 | |||
| 998 | # | ||
| 999 | # USB HID Boot Protocol drivers | ||
| 1000 | # | ||
| 1001 | CONFIG_USB_KBD=m | ||
| 1002 | CONFIG_USB_MOUSE=m | ||
| 1003 | CONFIG_USB_AIPTEK=m | ||
| 1004 | CONFIG_USB_WACOM=m | ||
| 1005 | # CONFIG_USB_ACECAD is not set | ||
| 1006 | CONFIG_USB_KBTAB=m | ||
| 1007 | CONFIG_USB_POWERMATE=m | ||
| 1008 | CONFIG_USB_MTOUCH=m | ||
| 1009 | # CONFIG_USB_ITMTOUCH is not set | ||
| 1010 | CONFIG_USB_EGALAX=m | ||
| 1011 | # CONFIG_USB_YEALINK is not set | ||
| 1012 | CONFIG_USB_XPAD=m | ||
| 1013 | CONFIG_USB_ATI_REMOTE=m | ||
| 1014 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
| 1015 | # CONFIG_USB_APPLETOUCH is not set | ||
| 1016 | |||
| 1017 | # | ||
| 1018 | # USB Imaging devices | ||
| 1019 | # | ||
| 1020 | CONFIG_USB_MDC800=m | ||
| 1021 | CONFIG_USB_MICROTEK=m | ||
| 1022 | |||
| 1023 | # | ||
| 1024 | # USB Multimedia devices | ||
| 1025 | # | ||
| 1026 | CONFIG_USB_DABUSB=m | ||
| 1027 | |||
| 1028 | # | ||
| 1029 | # Video4Linux support is needed for USB Multimedia device support | ||
| 1030 | # | ||
| 1031 | |||
| 1032 | # | ||
| 1033 | # USB Network Adapters | ||
| 1034 | # | ||
| 1035 | CONFIG_USB_CATC=m | ||
| 1036 | CONFIG_USB_KAWETH=m | ||
| 1037 | CONFIG_USB_PEGASUS=m | ||
| 1038 | CONFIG_USB_RTL8150=m | ||
| 1039 | CONFIG_USB_USBNET=m | ||
| 1040 | CONFIG_USB_NET_AX8817X=m | ||
| 1041 | CONFIG_USB_NET_CDCETHER=m | ||
| 1042 | # CONFIG_USB_NET_GL620A is not set | ||
| 1043 | CONFIG_USB_NET_NET1080=m | ||
| 1044 | # CONFIG_USB_NET_PLUSB is not set | ||
| 1045 | # CONFIG_USB_NET_RNDIS_HOST is not set | ||
| 1046 | # CONFIG_USB_NET_CDC_SUBSET is not set | ||
| 1047 | CONFIG_USB_NET_ZAURUS=m | ||
| 1048 | # CONFIG_USB_ZD1201 is not set | ||
| 1049 | CONFIG_USB_MON=y | ||
| 1050 | |||
| 1051 | # | ||
| 1052 | # USB port drivers | ||
| 1053 | # | ||
| 1054 | |||
| 1055 | # | ||
| 1056 | # USB Serial Converter support | ||
| 1057 | # | ||
| 1058 | CONFIG_USB_SERIAL=m | ||
| 1059 | CONFIG_USB_SERIAL_GENERIC=y | ||
| 1060 | # CONFIG_USB_SERIAL_AIRPRIME is not set | ||
| 1061 | CONFIG_USB_SERIAL_BELKIN=m | ||
| 1062 | # CONFIG_USB_SERIAL_WHITEHEAT is not set | ||
| 1063 | CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m | ||
| 1064 | # CONFIG_USB_SERIAL_CP2101 is not set | ||
| 1065 | CONFIG_USB_SERIAL_CYPRESS_M8=m | ||
| 1066 | CONFIG_USB_SERIAL_EMPEG=m | ||
| 1067 | CONFIG_USB_SERIAL_FTDI_SIO=m | ||
| 1068 | CONFIG_USB_SERIAL_VISOR=m | ||
| 1069 | CONFIG_USB_SERIAL_IPAQ=m | ||
| 1070 | CONFIG_USB_SERIAL_IR=m | ||
| 1071 | CONFIG_USB_SERIAL_EDGEPORT=m | ||
| 1072 | CONFIG_USB_SERIAL_EDGEPORT_TI=m | ||
| 1073 | CONFIG_USB_SERIAL_GARMIN=m | ||
| 1074 | CONFIG_USB_SERIAL_IPW=m | ||
| 1075 | CONFIG_USB_SERIAL_KEYSPAN_PDA=m | ||
| 1076 | CONFIG_USB_SERIAL_KEYSPAN=m | ||
| 1077 | # CONFIG_USB_SERIAL_KEYSPAN_MPR is not set | ||
| 1078 | # CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set | ||
| 1079 | # CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set | ||
| 1080 | # CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set | ||
| 1081 | # CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set | ||
| 1082 | # CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set | ||
| 1083 | # CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set | ||
| 1084 | # CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set | ||
| 1085 | # CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set | ||
| 1086 | # CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set | ||
| 1087 | # CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set | ||
| 1088 | # CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set | ||
| 1089 | CONFIG_USB_SERIAL_KLSI=m | ||
| 1090 | CONFIG_USB_SERIAL_KOBIL_SCT=m | ||
| 1091 | CONFIG_USB_SERIAL_MCT_U232=m | ||
| 1092 | CONFIG_USB_SERIAL_PL2303=m | ||
| 1093 | # CONFIG_USB_SERIAL_HP4X is not set | ||
| 1094 | CONFIG_USB_SERIAL_SAFE=m | ||
| 1095 | # CONFIG_USB_SERIAL_SAFE_PADDED is not set | ||
| 1096 | CONFIG_USB_SERIAL_TI=m | ||
| 1097 | CONFIG_USB_SERIAL_CYBERJACK=m | ||
| 1098 | CONFIG_USB_SERIAL_XIRCOM=m | ||
| 1099 | # CONFIG_USB_SERIAL_OPTION is not set | ||
| 1100 | CONFIG_USB_SERIAL_OMNINET=m | ||
| 1101 | CONFIG_USB_EZUSB=y | ||
| 1102 | |||
| 1103 | # | ||
| 1104 | # USB Miscellaneous drivers | ||
| 1105 | # | ||
| 1106 | CONFIG_USB_EMI62=m | ||
| 1107 | CONFIG_USB_EMI26=m | ||
| 1108 | CONFIG_USB_AUERSWALD=m | ||
| 1109 | CONFIG_USB_RIO500=m | ||
| 1110 | CONFIG_USB_LEGOTOWER=m | ||
| 1111 | CONFIG_USB_LCD=m | ||
| 1112 | CONFIG_USB_LED=m | ||
| 1113 | CONFIG_USB_CYTHERM=m | ||
| 1114 | CONFIG_USB_PHIDGETKIT=m | ||
| 1115 | CONFIG_USB_PHIDGETSERVO=m | ||
| 1116 | CONFIG_USB_IDMOUSE=m | ||
| 1117 | # CONFIG_USB_LD is not set | ||
| 1118 | # CONFIG_USB_TEST is not set | ||
| 1119 | |||
| 1120 | # | ||
| 1121 | # USB DSL modem support | ||
| 1122 | # | ||
| 1123 | |||
| 1124 | # | ||
| 1125 | # USB Gadget Support | ||
| 1126 | # | ||
| 1127 | CONFIG_USB_GADGET=m | ||
| 1128 | # CONFIG_USB_GADGET_DEBUG_FILES is not set | ||
| 1129 | CONFIG_USB_GADGET_SELECTED=y | ||
| 1130 | # CONFIG_USB_GADGET_NET2280 is not set | ||
| 1131 | # CONFIG_USB_GADGET_PXA2XX is not set | ||
| 1132 | # CONFIG_USB_GADGET_GOKU is not set | ||
| 1133 | # CONFIG_USB_GADGET_LH7A40X is not set | ||
| 1134 | # CONFIG_USB_GADGET_OMAP is not set | ||
| 1135 | CONFIG_USB_GADGET_DUMMY_HCD=y | ||
| 1136 | CONFIG_USB_DUMMY_HCD=m | ||
| 1137 | CONFIG_USB_GADGET_DUALSPEED=y | ||
| 1138 | CONFIG_USB_ZERO=m | ||
| 1139 | CONFIG_USB_ETH=m | ||
| 1140 | CONFIG_USB_ETH_RNDIS=y | ||
| 1141 | CONFIG_USB_GADGETFS=m | ||
| 1142 | CONFIG_USB_FILE_STORAGE=m | ||
| 1143 | # CONFIG_USB_FILE_STORAGE_TEST is not set | ||
| 1144 | CONFIG_USB_G_SERIAL=m | ||
| 1145 | |||
| 1146 | # | ||
| 1147 | # MMC/SD Card support | ||
| 1148 | # | ||
| 1149 | CONFIG_MMC=y | ||
| 1150 | # CONFIG_MMC_DEBUG is not set | ||
| 1151 | CONFIG_MMC_BLOCK=y | ||
| 1152 | CONFIG_MMC_PXA=y | ||
| 1153 | # CONFIG_MMC_WBSD is not set | ||
| 1154 | |||
| 1155 | # | ||
| 1156 | # File systems | ||
| 1157 | # | ||
| 1158 | CONFIG_EXT2_FS=y | ||
| 1159 | CONFIG_EXT2_FS_XATTR=y | ||
| 1160 | CONFIG_EXT2_FS_POSIX_ACL=y | ||
| 1161 | CONFIG_EXT2_FS_SECURITY=y | ||
| 1162 | # CONFIG_EXT2_FS_XIP is not set | ||
| 1163 | CONFIG_EXT3_FS=y | ||
| 1164 | # CONFIG_EXT3_FS_XATTR is not set | ||
| 1165 | CONFIG_JBD=y | ||
| 1166 | # CONFIG_JBD_DEBUG is not set | ||
| 1167 | CONFIG_FS_MBCACHE=y | ||
| 1168 | # CONFIG_REISERFS_FS is not set | ||
| 1169 | # CONFIG_JFS_FS is not set | ||
| 1170 | CONFIG_FS_POSIX_ACL=y | ||
| 1171 | # CONFIG_XFS_FS is not set | ||
| 1172 | # CONFIG_MINIX_FS is not set | ||
| 1173 | # CONFIG_ROMFS_FS is not set | ||
| 1174 | CONFIG_INOTIFY=y | ||
| 1175 | # CONFIG_QUOTA is not set | ||
| 1176 | CONFIG_DNOTIFY=y | ||
| 1177 | # CONFIG_AUTOFS_FS is not set | ||
| 1178 | # CONFIG_AUTOFS4_FS is not set | ||
| 1179 | # CONFIG_FUSE_FS is not set | ||
| 1180 | |||
| 1181 | # | ||
| 1182 | # CD-ROM/DVD Filesystems | ||
| 1183 | # | ||
| 1184 | # CONFIG_ISO9660_FS is not set | ||
| 1185 | # CONFIG_UDF_FS is not set | ||
| 1186 | |||
| 1187 | # | ||
| 1188 | # DOS/FAT/NT Filesystems | ||
| 1189 | # | ||
| 1190 | CONFIG_FAT_FS=y | ||
| 1191 | CONFIG_MSDOS_FS=y | ||
| 1192 | CONFIG_VFAT_FS=y | ||
| 1193 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
| 1194 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
| 1195 | # CONFIG_NTFS_FS is not set | ||
| 1196 | |||
| 1197 | # | ||
| 1198 | # Pseudo filesystems | ||
| 1199 | # | ||
| 1200 | CONFIG_PROC_FS=y | ||
| 1201 | CONFIG_SYSFS=y | ||
| 1202 | CONFIG_TMPFS=y | ||
| 1203 | # CONFIG_HUGETLB_PAGE is not set | ||
| 1204 | CONFIG_RAMFS=y | ||
| 1205 | # CONFIG_RELAYFS_FS is not set | ||
| 1206 | |||
| 1207 | # | ||
| 1208 | # Miscellaneous filesystems | ||
| 1209 | # | ||
| 1210 | # CONFIG_ADFS_FS is not set | ||
| 1211 | # CONFIG_AFFS_FS is not set | ||
| 1212 | # CONFIG_HFS_FS is not set | ||
| 1213 | # CONFIG_HFSPLUS_FS is not set | ||
| 1214 | # CONFIG_BEFS_FS is not set | ||
| 1215 | # CONFIG_BFS_FS is not set | ||
| 1216 | # CONFIG_EFS_FS is not set | ||
| 1217 | # CONFIG_JFFS_FS is not set | ||
| 1218 | CONFIG_JFFS2_FS=y | ||
| 1219 | CONFIG_JFFS2_FS_DEBUG=0 | ||
| 1220 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
| 1221 | CONFIG_JFFS2_COMPRESSION_OPTIONS=y | ||
| 1222 | CONFIG_JFFS2_ZLIB=y | ||
| 1223 | CONFIG_JFFS2_RTIME=y | ||
| 1224 | CONFIG_JFFS2_RUBIN=y | ||
| 1225 | # CONFIG_JFFS2_CMODE_NONE is not set | ||
| 1226 | CONFIG_JFFS2_CMODE_PRIORITY=y | ||
| 1227 | # CONFIG_JFFS2_CMODE_SIZE is not set | ||
| 1228 | CONFIG_CRAMFS=m | ||
| 1229 | # CONFIG_VXFS_FS is not set | ||
| 1230 | # CONFIG_HPFS_FS is not set | ||
| 1231 | # CONFIG_QNX4FS_FS is not set | ||
| 1232 | # CONFIG_SYSV_FS is not set | ||
| 1233 | # CONFIG_UFS_FS is not set | ||
| 1234 | |||
| 1235 | # | ||
| 1236 | # Network File Systems | ||
| 1237 | # | ||
| 1238 | CONFIG_NFS_FS=m | ||
| 1239 | CONFIG_NFS_V3=y | ||
| 1240 | # CONFIG_NFS_V3_ACL is not set | ||
| 1241 | CONFIG_NFS_V4=y | ||
| 1242 | # CONFIG_NFS_DIRECTIO is not set | ||
| 1243 | # CONFIG_NFSD is not set | ||
| 1244 | CONFIG_LOCKD=m | ||
| 1245 | CONFIG_LOCKD_V4=y | ||
| 1246 | CONFIG_NFS_COMMON=y | ||
| 1247 | CONFIG_SUNRPC=m | ||
| 1248 | CONFIG_SUNRPC_GSS=m | ||
| 1249 | CONFIG_RPCSEC_GSS_KRB5=m | ||
| 1250 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
| 1251 | CONFIG_SMB_FS=m | ||
| 1252 | CONFIG_SMB_NLS_DEFAULT=y | ||
| 1253 | CONFIG_SMB_NLS_REMOTE="cp437" | ||
| 1254 | # CONFIG_CIFS is not set | ||
| 1255 | # CONFIG_NCP_FS is not set | ||
| 1256 | # CONFIG_CODA_FS is not set | ||
| 1257 | # CONFIG_AFS_FS is not set | ||
| 1258 | # CONFIG_9P_FS is not set | ||
| 1259 | |||
| 1260 | # | ||
| 1261 | # Partition Types | ||
| 1262 | # | ||
| 1263 | CONFIG_PARTITION_ADVANCED=y | ||
| 1264 | # CONFIG_ACORN_PARTITION is not set | ||
| 1265 | # CONFIG_OSF_PARTITION is not set | ||
| 1266 | # CONFIG_AMIGA_PARTITION is not set | ||
| 1267 | # CONFIG_ATARI_PARTITION is not set | ||
| 1268 | # CONFIG_MAC_PARTITION is not set | ||
| 1269 | CONFIG_MSDOS_PARTITION=y | ||
| 1270 | # CONFIG_BSD_DISKLABEL is not set | ||
| 1271 | # CONFIG_MINIX_SUBPARTITION is not set | ||
| 1272 | # CONFIG_SOLARIS_X86_PARTITION is not set | ||
| 1273 | # CONFIG_UNIXWARE_DISKLABEL is not set | ||
| 1274 | # CONFIG_LDM_PARTITION is not set | ||
| 1275 | # CONFIG_SGI_PARTITION is not set | ||
| 1276 | # CONFIG_ULTRIX_PARTITION is not set | ||
| 1277 | # CONFIG_SUN_PARTITION is not set | ||
| 1278 | # CONFIG_EFI_PARTITION is not set | ||
| 1279 | |||
| 1280 | # | ||
| 1281 | # Native Language Support | ||
| 1282 | # | ||
| 1283 | CONFIG_NLS=y | ||
| 1284 | CONFIG_NLS_DEFAULT="cp437" | ||
| 1285 | CONFIG_NLS_CODEPAGE_437=y | ||
| 1286 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
| 1287 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
| 1288 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
| 1289 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
| 1290 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
| 1291 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
| 1292 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
| 1293 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
| 1294 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
| 1295 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
| 1296 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
| 1297 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
| 1298 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
| 1299 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
| 1300 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
| 1301 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
| 1302 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
| 1303 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
| 1304 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
| 1305 | # CONFIG_NLS_ISO8859_8 is not set | ||
| 1306 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
| 1307 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
| 1308 | # CONFIG_NLS_ASCII is not set | ||
| 1309 | CONFIG_NLS_ISO8859_1=y | ||
| 1310 | # CONFIG_NLS_ISO8859_2 is not set | ||
| 1311 | # CONFIG_NLS_ISO8859_3 is not set | ||
| 1312 | # CONFIG_NLS_ISO8859_4 is not set | ||
| 1313 | # CONFIG_NLS_ISO8859_5 is not set | ||
| 1314 | # CONFIG_NLS_ISO8859_6 is not set | ||
| 1315 | # CONFIG_NLS_ISO8859_7 is not set | ||
| 1316 | # CONFIG_NLS_ISO8859_9 is not set | ||
| 1317 | # CONFIG_NLS_ISO8859_13 is not set | ||
| 1318 | # CONFIG_NLS_ISO8859_14 is not set | ||
| 1319 | # CONFIG_NLS_ISO8859_15 is not set | ||
| 1320 | # CONFIG_NLS_KOI8_R is not set | ||
| 1321 | # CONFIG_NLS_KOI8_U is not set | ||
| 1322 | CONFIG_NLS_UTF8=y | ||
| 1323 | |||
| 1324 | # | ||
| 1325 | # Profiling support | ||
| 1326 | # | ||
| 1327 | CONFIG_PROFILING=y | ||
| 1328 | CONFIG_OPROFILE=m | ||
| 1329 | |||
| 1330 | # | ||
| 1331 | # Kernel hacking | ||
| 1332 | # | ||
| 1333 | # CONFIG_PRINTK_TIME is not set | ||
| 1334 | CONFIG_DEBUG_KERNEL=y | ||
| 1335 | CONFIG_MAGIC_SYSRQ=y | ||
| 1336 | CONFIG_LOG_BUF_SHIFT=14 | ||
| 1337 | CONFIG_DETECT_SOFTLOCKUP=y | ||
| 1338 | # CONFIG_SCHEDSTATS is not set | ||
| 1339 | # CONFIG_DEBUG_SLAB is not set | ||
| 1340 | # CONFIG_DEBUG_PREEMPT is not set | ||
| 1341 | # CONFIG_DEBUG_SPINLOCK is not set | ||
| 1342 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
| 1343 | # CONFIG_DEBUG_KOBJECT is not set | ||
| 1344 | CONFIG_DEBUG_BUGVERBOSE=y | ||
| 1345 | # CONFIG_DEBUG_INFO is not set | ||
| 1346 | # CONFIG_DEBUG_FS is not set | ||
| 1347 | CONFIG_FRAME_POINTER=y | ||
| 1348 | # CONFIG_DEBUG_USER is not set | ||
| 1349 | # CONFIG_DEBUG_WAITQ is not set | ||
| 1350 | CONFIG_DEBUG_ERRORS=y | ||
| 1351 | CONFIG_DEBUG_LL=y | ||
| 1352 | # CONFIG_DEBUG_ICEDCC is not set | ||
| 1353 | |||
| 1354 | # | ||
| 1355 | # Security options | ||
| 1356 | # | ||
| 1357 | # CONFIG_KEYS is not set | ||
| 1358 | # CONFIG_SECURITY is not set | ||
| 1359 | |||
| 1360 | # | ||
| 1361 | # Cryptographic options | ||
| 1362 | # | ||
| 1363 | CONFIG_CRYPTO=y | ||
| 1364 | CONFIG_CRYPTO_HMAC=y | ||
| 1365 | CONFIG_CRYPTO_NULL=m | ||
| 1366 | CONFIG_CRYPTO_MD4=m | ||
| 1367 | CONFIG_CRYPTO_MD5=m | ||
| 1368 | CONFIG_CRYPTO_SHA1=m | ||
| 1369 | CONFIG_CRYPTO_SHA256=m | ||
| 1370 | CONFIG_CRYPTO_SHA512=m | ||
| 1371 | CONFIG_CRYPTO_WP512=m | ||
| 1372 | # CONFIG_CRYPTO_TGR192 is not set | ||
| 1373 | CONFIG_CRYPTO_DES=m | ||
| 1374 | CONFIG_CRYPTO_BLOWFISH=m | ||
| 1375 | CONFIG_CRYPTO_TWOFISH=m | ||
| 1376 | CONFIG_CRYPTO_SERPENT=m | ||
| 1377 | CONFIG_CRYPTO_AES=m | ||
| 1378 | CONFIG_CRYPTO_CAST5=m | ||
| 1379 | CONFIG_CRYPTO_CAST6=m | ||
| 1380 | CONFIG_CRYPTO_TEA=m | ||
| 1381 | CONFIG_CRYPTO_ARC4=m | ||
| 1382 | CONFIG_CRYPTO_KHAZAD=m | ||
| 1383 | CONFIG_CRYPTO_ANUBIS=m | ||
| 1384 | CONFIG_CRYPTO_DEFLATE=m | ||
| 1385 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
| 1386 | CONFIG_CRYPTO_CRC32C=m | ||
| 1387 | CONFIG_CRYPTO_TEST=m | ||
| 1388 | |||
| 1389 | # | ||
| 1390 | # Hardware crypto devices | ||
| 1391 | # | ||
| 1392 | |||
| 1393 | # | ||
| 1394 | # Library routines | ||
| 1395 | # | ||
| 1396 | CONFIG_CRC_CCITT=y | ||
| 1397 | # CONFIG_CRC16 is not set | ||
| 1398 | CONFIG_CRC32=y | ||
| 1399 | CONFIG_LIBCRC32C=m | ||
| 1400 | CONFIG_ZLIB_INFLATE=y | ||
| 1401 | CONFIG_ZLIB_DEFLATE=y | ||
diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c index 835d450797a1..7b17a87a3311 100644 --- a/arch/arm/kernel/armksyms.c +++ b/arch/arm/kernel/armksyms.c | |||
| @@ -45,8 +45,8 @@ extern void fp_enter(void); | |||
| 45 | 45 | ||
| 46 | #define EXPORT_SYMBOL_ALIAS(sym,orig) \ | 46 | #define EXPORT_SYMBOL_ALIAS(sym,orig) \ |
| 47 | EXPORT_CRC_ALIAS(sym) \ | 47 | EXPORT_CRC_ALIAS(sym) \ |
| 48 | const struct kernel_symbol __ksymtab_##sym \ | 48 | static const struct kernel_symbol __ksymtab_##sym \ |
| 49 | __attribute__((section("__ksymtab"))) = \ | 49 | __attribute_used__ __attribute__((section("__ksymtab"))) = \ |
| 50 | { (unsigned long)&orig, #sym }; | 50 | { (unsigned long)&orig, #sym }; |
| 51 | 51 | ||
| 52 | /* | 52 | /* |
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 81d450ac3fab..066597f4345a 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S | |||
| @@ -106,15 +106,10 @@ ENTRY(ret_from_fork) | |||
| 106 | .endm | 106 | .endm |
| 107 | 107 | ||
| 108 | .Larm700bug: | 108 | .Larm700bug: |
| 109 | ldr r0, [sp, #S_PSR] @ Get calling cpsr | ||
| 110 | sub lr, lr, #4 | ||
| 111 | str lr, [r8] | ||
| 112 | msr spsr_cxsf, r0 | ||
| 113 | ldmia sp, {r0 - lr}^ @ Get calling r0 - lr | 109 | ldmia sp, {r0 - lr}^ @ Get calling r0 - lr |
| 114 | mov r0, r0 | 110 | mov r0, r0 |
| 115 | ldr lr, [sp, #S_PC] @ Get PC | ||
| 116 | add sp, sp, #S_FRAME_SIZE | 111 | add sp, sp, #S_FRAME_SIZE |
| 117 | movs pc, lr | 112 | subs pc, lr, #4 |
| 118 | #else | 113 | #else |
| 119 | .macro arm710_bug_check, instr, temp | 114 | .macro arm710_bug_check, instr, temp |
| 120 | .endm | 115 | .endm |
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c index be37586cb1b0..60c8b9d8bb9c 100644 --- a/arch/arm/mach-pxa/corgi.c +++ b/arch/arm/mach-pxa/corgi.c | |||
| @@ -36,6 +36,7 @@ | |||
| 36 | #include <asm/arch/mmc.h> | 36 | #include <asm/arch/mmc.h> |
| 37 | #include <asm/arch/udc.h> | 37 | #include <asm/arch/udc.h> |
| 38 | #include <asm/arch/corgi.h> | 38 | #include <asm/arch/corgi.h> |
| 39 | #include <asm/arch/sharpsl.h> | ||
| 39 | 40 | ||
| 40 | #include <asm/mach/sharpsl_param.h> | 41 | #include <asm/mach/sharpsl_param.h> |
| 41 | #include <asm/hardware/scoop.h> | 42 | #include <asm/hardware/scoop.h> |
diff --git a/arch/arm/mach-s3c2410/mach-anubis.c b/arch/arm/mach-s3c2410/mach-anubis.c index 7c05f27fe1d6..5ae80f4e3e67 100644 --- a/arch/arm/mach-s3c2410/mach-anubis.c +++ b/arch/arm/mach-s3c2410/mach-anubis.c | |||
| @@ -125,7 +125,7 @@ static int external_map[] = { 2 }; | |||
| 125 | static int chip0_map[] = { 0 }; | 125 | static int chip0_map[] = { 0 }; |
| 126 | static int chip1_map[] = { 1 }; | 126 | static int chip1_map[] = { 1 }; |
| 127 | 127 | ||
| 128 | struct mtd_partition anubis_default_nand_part[] = { | 128 | static struct mtd_partition anubis_default_nand_part[] = { |
| 129 | [0] = { | 129 | [0] = { |
| 130 | .name = "Boot Agent", | 130 | .name = "Boot Agent", |
| 131 | .size = SZ_16K, | 131 | .size = SZ_16K, |
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c index ed1f07d7252f..8ca955984645 100644 --- a/arch/arm/mach-s3c2410/mach-bast.c +++ b/arch/arm/mach-s3c2410/mach-bast.c | |||
| @@ -230,7 +230,7 @@ static int chip0_map[] = { 1 }; | |||
| 230 | static int chip1_map[] = { 2 }; | 230 | static int chip1_map[] = { 2 }; |
| 231 | static int chip2_map[] = { 3 }; | 231 | static int chip2_map[] = { 3 }; |
| 232 | 232 | ||
| 233 | struct mtd_partition bast_default_nand_part[] = { | 233 | static struct mtd_partition bast_default_nand_part[] = { |
| 234 | [0] = { | 234 | [0] = { |
| 235 | .name = "Boot Agent", | 235 | .name = "Boot Agent", |
| 236 | .size = SZ_16K, | 236 | .size = SZ_16K, |
| @@ -340,7 +340,7 @@ static struct resource bast_dm9k_resource[] = { | |||
| 340 | * better IO routines can be written and tested | 340 | * better IO routines can be written and tested |
| 341 | */ | 341 | */ |
| 342 | 342 | ||
| 343 | struct dm9000_plat_data bast_dm9k_platdata = { | 343 | static struct dm9000_plat_data bast_dm9k_platdata = { |
| 344 | .flags = DM9000_PLATF_16BITONLY | 344 | .flags = DM9000_PLATF_16BITONLY |
| 345 | }; | 345 | }; |
| 346 | 346 | ||
diff --git a/arch/arm/mach-s3c2410/mach-vr1000.c b/arch/arm/mach-s3c2410/mach-vr1000.c index 663a7f98fc0b..46b259673c18 100644 --- a/arch/arm/mach-s3c2410/mach-vr1000.c +++ b/arch/arm/mach-s3c2410/mach-vr1000.c | |||
| @@ -288,7 +288,7 @@ static struct resource vr1000_dm9k1_resource[] = { | |||
| 288 | * better IO routines can be written and tested | 288 | * better IO routines can be written and tested |
| 289 | */ | 289 | */ |
| 290 | 290 | ||
| 291 | struct dm9000_plat_data vr1000_dm9k_platdata = { | 291 | static struct dm9000_plat_data vr1000_dm9k_platdata = { |
| 292 | .flags = DM9000_PLATF_16BITONLY, | 292 | .flags = DM9000_PLATF_16BITONLY, |
| 293 | }; | 293 | }; |
| 294 | 294 | ||
diff --git a/arch/arm/mach-s3c2410/s3c2410.c b/arch/arm/mach-s3c2410/s3c2410.c index 0b88993dfd27..a8bf5ec82602 100644 --- a/arch/arm/mach-s3c2410/s3c2410.c +++ b/arch/arm/mach-s3c2410/s3c2410.c | |||
| @@ -125,9 +125,6 @@ static struct platform_device *uart_devices[] __initdata = { | |||
| 125 | &s3c_uart2 | 125 | &s3c_uart2 |
| 126 | }; | 126 | }; |
| 127 | 127 | ||
| 128 | /* store our uart devices for the serial driver console */ | ||
| 129 | struct platform_device *s3c2410_uart_devices[3]; | ||
| 130 | |||
| 131 | static int s3c2410_uart_count = 0; | 128 | static int s3c2410_uart_count = 0; |
| 132 | 129 | ||
| 133 | /* uart registration process */ | 130 | /* uart registration process */ |
diff --git a/arch/arm/mach-s3c2410/s3c2440.c b/arch/arm/mach-s3c2410/s3c2440.c index d4c8281b55f6..833fa36bce05 100644 --- a/arch/arm/mach-s3c2410/s3c2440.c +++ b/arch/arm/mach-s3c2410/s3c2440.c | |||
| @@ -151,7 +151,7 @@ void __init s3c2440_init_uarts(struct s3c2410_uartcfg *cfg, int no) | |||
| 151 | 151 | ||
| 152 | #ifdef CONFIG_PM | 152 | #ifdef CONFIG_PM |
| 153 | 153 | ||
| 154 | struct sleep_save s3c2440_sleep[] = { | 154 | static struct sleep_save s3c2440_sleep[] = { |
| 155 | SAVE_ITEM(S3C2440_DSC0), | 155 | SAVE_ITEM(S3C2440_DSC0), |
| 156 | SAVE_ITEM(S3C2440_DSC1), | 156 | SAVE_ITEM(S3C2440_DSC1), |
| 157 | SAVE_ITEM(S3C2440_GPJDAT), | 157 | SAVE_ITEM(S3C2440_GPJDAT), |
| @@ -260,7 +260,7 @@ void __init s3c2440_init_clocks(int xtal) | |||
| 260 | * as a driver which may support both 2410 and 2440 may try and use it. | 260 | * as a driver which may support both 2410 and 2440 may try and use it. |
| 261 | */ | 261 | */ |
| 262 | 262 | ||
| 263 | int __init s3c2440_core_init(void) | 263 | static int __init s3c2440_core_init(void) |
| 264 | { | 264 | { |
| 265 | return sysdev_class_register(&s3c2440_sysclass); | 265 | return sysdev_class_register(&s3c2440_sysclass); |
| 266 | } | 266 | } |
diff --git a/arch/arm/mach-s3c2410/time.c b/arch/arm/mach-s3c2410/time.c index c0acfb2ad790..8a00e3c3cd08 100644 --- a/arch/arm/mach-s3c2410/time.c +++ b/arch/arm/mach-s3c2410/time.c | |||
| @@ -38,6 +38,7 @@ | |||
| 38 | #include <asm/hardware/clock.h> | 38 | #include <asm/hardware/clock.h> |
| 39 | 39 | ||
| 40 | #include "clock.h" | 40 | #include "clock.h" |
| 41 | #include "cpu.h" | ||
| 41 | 42 | ||
| 42 | static unsigned long timer_startval; | 43 | static unsigned long timer_startval; |
| 43 | static unsigned long timer_usec_ticks; | 44 | static unsigned long timer_usec_ticks; |
diff --git a/arch/arm/mach-sa1100/collie.c b/arch/arm/mach-sa1100/collie.c index 25d6a4e27533..6ecab7e2c238 100644 --- a/arch/arm/mach-sa1100/collie.c +++ b/arch/arm/mach-sa1100/collie.c | |||
| @@ -111,11 +111,11 @@ static struct mtd_partition collie_partitions[] = { | |||
| 111 | 111 | ||
| 112 | static void collie_set_vpp(int vpp) | 112 | static void collie_set_vpp(int vpp) |
| 113 | { | 113 | { |
| 114 | write_scoop_reg(&colliescoop_device.dev, SCOOP_GPCR, read_scoop_reg(SCOOP_GPCR) | COLLIE_SCP_VPEN); | 114 | write_scoop_reg(&colliescoop_device.dev, SCOOP_GPCR, read_scoop_reg(&colliescoop_device.dev, SCOOP_GPCR) | COLLIE_SCP_VPEN); |
| 115 | if (vpp) | 115 | if (vpp) |
| 116 | write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(SCOOP_GPWR) | COLLIE_SCP_VPEN); | 116 | write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR) | COLLIE_SCP_VPEN); |
| 117 | else | 117 | else |
| 118 | write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(SCOOP_GPWR) & ~COLLIE_SCP_VPEN); | 118 | write_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR, read_scoop_reg(&colliescoop_device.dev, SCOOP_GPWR) & ~COLLIE_SCP_VPEN); |
| 119 | } | 119 | } |
| 120 | 120 | ||
| 121 | static struct flash_platform_data collie_flash_data = { | 121 | static struct flash_platform_data collie_flash_data = { |
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index db5e47dfc303..c54e04c995ee 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig | |||
| @@ -370,21 +370,21 @@ config CPU_BIG_ENDIAN | |||
| 370 | 370 | ||
| 371 | config CPU_ICACHE_DISABLE | 371 | config CPU_ICACHE_DISABLE |
| 372 | bool "Disable I-Cache" | 372 | bool "Disable I-Cache" |
| 373 | depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 | 373 | depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6 |
| 374 | help | 374 | help |
| 375 | Say Y here to disable the processor instruction cache. Unless | 375 | Say Y here to disable the processor instruction cache. Unless |
| 376 | you have a reason not to or are unsure, say N. | 376 | you have a reason not to or are unsure, say N. |
| 377 | 377 | ||
| 378 | config CPU_DCACHE_DISABLE | 378 | config CPU_DCACHE_DISABLE |
| 379 | bool "Disable D-Cache" | 379 | bool "Disable D-Cache" |
| 380 | depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 | 380 | depends on CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6 |
| 381 | help | 381 | help |
| 382 | Say Y here to disable the processor data cache. Unless | 382 | Say Y here to disable the processor data cache. Unless |
| 383 | you have a reason not to or are unsure, say N. | 383 | you have a reason not to or are unsure, say N. |
| 384 | 384 | ||
| 385 | config CPU_DCACHE_WRITETHROUGH | 385 | config CPU_DCACHE_WRITETHROUGH |
| 386 | bool "Force write through D-cache" | 386 | bool "Force write through D-cache" |
| 387 | depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020) && !CPU_DCACHE_DISABLE | 387 | depends on (CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_V6) && !CPU_DCACHE_DISABLE |
| 388 | default y if CPU_ARM925T | 388 | default y if CPU_ARM925T |
| 389 | help | 389 | help |
| 390 | Say Y here to use the data cache in writethrough mode. Unless you | 390 | Say Y here to use the data cache in writethrough mode. Unless you |
| @@ -399,7 +399,7 @@ config CPU_CACHE_ROUND_ROBIN | |||
| 399 | 399 | ||
| 400 | config CPU_BPREDICT_DISABLE | 400 | config CPU_BPREDICT_DISABLE |
| 401 | bool "Disable branch prediction" | 401 | bool "Disable branch prediction" |
| 402 | depends on CPU_ARM1020 | 402 | depends on CPU_ARM1020 || CPU_V6 |
| 403 | help | 403 | help |
| 404 | Say Y here to disable branch prediction. If unsure, say N. | 404 | Say Y here to disable branch prediction. If unsure, say N. |
| 405 | 405 | ||
diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c index 4b39d867ac14..705c98921c37 100644 --- a/arch/arm/mm/alignment.c +++ b/arch/arm/mm/alignment.c | |||
| @@ -111,7 +111,7 @@ proc_alignment_read(char *page, char **start, off_t off, int count, int *eof, | |||
| 111 | } | 111 | } |
| 112 | 112 | ||
| 113 | static int proc_alignment_write(struct file *file, const char __user *buffer, | 113 | static int proc_alignment_write(struct file *file, const char __user *buffer, |
| 114 | unsigned long count, void *data) | 114 | unsigned long count, void *data) |
| 115 | { | 115 | { |
| 116 | char mode; | 116 | char mode; |
| 117 | 117 | ||
| @@ -119,7 +119,7 @@ static int proc_alignment_write(struct file *file, const char __user *buffer, | |||
| 119 | if (get_user(mode, buffer)) | 119 | if (get_user(mode, buffer)) |
| 120 | return -EFAULT; | 120 | return -EFAULT; |
| 121 | if (mode >= '0' && mode <= '5') | 121 | if (mode >= '0' && mode <= '5') |
| 122 | ai_usermode = mode - '0'; | 122 | ai_usermode = mode - '0'; |
| 123 | } | 123 | } |
| 124 | return count; | 124 | return count; |
| 125 | } | 125 | } |
| @@ -262,7 +262,7 @@ union offset_union { | |||
| 262 | goto fault; \ | 262 | goto fault; \ |
| 263 | } while (0) | 263 | } while (0) |
| 264 | 264 | ||
| 265 | #define put32_unaligned_check(val,addr) \ | 265 | #define put32_unaligned_check(val,addr) \ |
| 266 | __put32_unaligned_check("strb", val, addr) | 266 | __put32_unaligned_check("strb", val, addr) |
| 267 | 267 | ||
| 268 | #define put32t_unaligned_check(val,addr) \ | 268 | #define put32t_unaligned_check(val,addr) \ |
| @@ -306,19 +306,19 @@ do_alignment_ldrhstrh(unsigned long addr, unsigned long instr, struct pt_regs *r | |||
| 306 | return TYPE_LDST; | 306 | return TYPE_LDST; |
| 307 | 307 | ||
| 308 | user: | 308 | user: |
| 309 | if (LDST_L_BIT(instr)) { | 309 | if (LDST_L_BIT(instr)) { |
| 310 | unsigned long val; | 310 | unsigned long val; |
| 311 | get16t_unaligned_check(val, addr); | 311 | get16t_unaligned_check(val, addr); |
| 312 | 312 | ||
| 313 | /* signed half-word? */ | 313 | /* signed half-word? */ |
| 314 | if (instr & 0x40) | 314 | if (instr & 0x40) |
| 315 | val = (signed long)((signed short) val); | 315 | val = (signed long)((signed short) val); |
| 316 | 316 | ||
| 317 | regs->uregs[rd] = val; | 317 | regs->uregs[rd] = val; |
| 318 | } else | 318 | } else |
| 319 | put16t_unaligned_check(regs->uregs[rd], addr); | 319 | put16t_unaligned_check(regs->uregs[rd], addr); |
| 320 | 320 | ||
| 321 | return TYPE_LDST; | 321 | return TYPE_LDST; |
| 322 | 322 | ||
| 323 | fault: | 323 | fault: |
| 324 | return TYPE_FAULT; | 324 | return TYPE_FAULT; |
| @@ -330,6 +330,9 @@ do_alignment_ldrdstrd(unsigned long addr, unsigned long instr, | |||
| 330 | { | 330 | { |
| 331 | unsigned int rd = RD_BITS(instr); | 331 | unsigned int rd = RD_BITS(instr); |
| 332 | 332 | ||
| 333 | if (((rd & 1) == 1) || (rd == 14)) | ||
| 334 | goto bad; | ||
| 335 | |||
| 333 | ai_dword += 1; | 336 | ai_dword += 1; |
| 334 | 337 | ||
| 335 | if (user_mode(regs)) | 338 | if (user_mode(regs)) |
| @@ -339,11 +342,11 @@ do_alignment_ldrdstrd(unsigned long addr, unsigned long instr, | |||
| 339 | unsigned long val; | 342 | unsigned long val; |
| 340 | get32_unaligned_check(val, addr); | 343 | get32_unaligned_check(val, addr); |
| 341 | regs->uregs[rd] = val; | 344 | regs->uregs[rd] = val; |
| 342 | get32_unaligned_check(val, addr+4); | 345 | get32_unaligned_check(val, addr + 4); |
| 343 | regs->uregs[rd+1] = val; | 346 | regs->uregs[rd + 1] = val; |
| 344 | } else { | 347 | } else { |
| 345 | put32_unaligned_check(regs->uregs[rd], addr); | 348 | put32_unaligned_check(regs->uregs[rd], addr); |
| 346 | put32_unaligned_check(regs->uregs[rd+1], addr+4); | 349 | put32_unaligned_check(regs->uregs[rd + 1], addr + 4); |
| 347 | } | 350 | } |
| 348 | 351 | ||
| 349 | return TYPE_LDST; | 352 | return TYPE_LDST; |
| @@ -353,15 +356,16 @@ do_alignment_ldrdstrd(unsigned long addr, unsigned long instr, | |||
| 353 | unsigned long val; | 356 | unsigned long val; |
| 354 | get32t_unaligned_check(val, addr); | 357 | get32t_unaligned_check(val, addr); |
| 355 | regs->uregs[rd] = val; | 358 | regs->uregs[rd] = val; |
| 356 | get32t_unaligned_check(val, addr+4); | 359 | get32t_unaligned_check(val, addr + 4); |
| 357 | regs->uregs[rd+1] = val; | 360 | regs->uregs[rd + 1] = val; |
| 358 | } else { | 361 | } else { |
| 359 | put32t_unaligned_check(regs->uregs[rd], addr); | 362 | put32t_unaligned_check(regs->uregs[rd], addr); |
| 360 | put32t_unaligned_check(regs->uregs[rd+1], addr+4); | 363 | put32t_unaligned_check(regs->uregs[rd + 1], addr + 4); |
| 361 | } | 364 | } |
| 362 | 365 | ||
| 363 | return TYPE_LDST; | 366 | return TYPE_LDST; |
| 364 | 367 | bad: | |
| 368 | return TYPE_ERROR; | ||
| 365 | fault: | 369 | fault: |
| 366 | return TYPE_FAULT; | 370 | return TYPE_FAULT; |
| 367 | } | 371 | } |
| @@ -439,7 +443,7 @@ do_alignment_ldmstm(unsigned long addr, unsigned long instr, struct pt_regs *reg | |||
| 439 | if (LDST_P_EQ_U(instr)) /* U = P */ | 443 | if (LDST_P_EQ_U(instr)) /* U = P */ |
| 440 | eaddr += 4; | 444 | eaddr += 4; |
| 441 | 445 | ||
| 442 | /* | 446 | /* |
| 443 | * For alignment faults on the ARM922T/ARM920T the MMU makes | 447 | * For alignment faults on the ARM922T/ARM920T the MMU makes |
| 444 | * the FSR (and hence addr) equal to the updated base address | 448 | * the FSR (and hence addr) equal to the updated base address |
| 445 | * of the multiple access rather than the restored value. | 449 | * of the multiple access rather than the restored value. |
| @@ -566,7 +570,7 @@ thumb2arm(u16 tinstr) | |||
| 566 | /* 6.5.1 Format 3: */ | 570 | /* 6.5.1 Format 3: */ |
| 567 | case 0x4800 >> 11: /* 7.1.28 LDR(3) */ | 571 | case 0x4800 >> 11: /* 7.1.28 LDR(3) */ |
| 568 | /* NOTE: This case is not technically possible. We're | 572 | /* NOTE: This case is not technically possible. We're |
| 569 | * loading 32-bit memory data via PC relative | 573 | * loading 32-bit memory data via PC relative |
| 570 | * addressing mode. So we can and should eliminate | 574 | * addressing mode. So we can and should eliminate |
| 571 | * this case. But I'll leave it here for now. | 575 | * this case. But I'll leave it here for now. |
| 572 | */ | 576 | */ |
| @@ -638,7 +642,7 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs) | |||
| 638 | 642 | ||
| 639 | if (fault) { | 643 | if (fault) { |
| 640 | type = TYPE_FAULT; | 644 | type = TYPE_FAULT; |
| 641 | goto bad_or_fault; | 645 | goto bad_or_fault; |
| 642 | } | 646 | } |
| 643 | 647 | ||
| 644 | if (user_mode(regs)) | 648 | if (user_mode(regs)) |
| @@ -663,6 +667,8 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs) | |||
| 663 | else if ((instr & 0x001000f0) == 0x000000d0 || /* LDRD */ | 667 | else if ((instr & 0x001000f0) == 0x000000d0 || /* LDRD */ |
| 664 | (instr & 0x001000f0) == 0x000000f0) /* STRD */ | 668 | (instr & 0x001000f0) == 0x000000f0) /* STRD */ |
| 665 | handler = do_alignment_ldrdstrd; | 669 | handler = do_alignment_ldrdstrd; |
| 670 | else if ((instr & 0x01f00ff0) == 0x01000090) /* SWP */ | ||
| 671 | goto swp; | ||
| 666 | else | 672 | else |
| 667 | goto bad; | 673 | goto bad; |
| 668 | break; | 674 | break; |
| @@ -733,6 +739,9 @@ do_alignment(unsigned long addr, unsigned int fsr, struct pt_regs *regs) | |||
| 733 | do_bad_area(current, current->mm, addr, fsr, regs); | 739 | do_bad_area(current, current->mm, addr, fsr, regs); |
| 734 | return 0; | 740 | return 0; |
| 735 | 741 | ||
| 742 | swp: | ||
| 743 | printk(KERN_ERR "Alignment trap: not handling swp instruction\n"); | ||
| 744 | |||
| 736 | bad: | 745 | bad: |
| 737 | /* | 746 | /* |
| 738 | * Oops, we didn't handle the instruction. | 747 | * Oops, we didn't handle the instruction. |
diff --git a/arch/arm/nwfpe/fpa11.c b/arch/arm/nwfpe/fpa11.c index 7690f731ee87..7b3d74d73c80 100644 --- a/arch/arm/nwfpe/fpa11.c +++ b/arch/arm/nwfpe/fpa11.c | |||
| @@ -31,11 +31,6 @@ | |||
| 31 | #include <linux/string.h> | 31 | #include <linux/string.h> |
| 32 | #include <asm/system.h> | 32 | #include <asm/system.h> |
| 33 | 33 | ||
| 34 | /* forward declarations */ | ||
| 35 | unsigned int EmulateCPDO(const unsigned int); | ||
| 36 | unsigned int EmulateCPDT(const unsigned int); | ||
| 37 | unsigned int EmulateCPRT(const unsigned int); | ||
| 38 | |||
| 39 | /* Reset the FPA11 chip. Called to initialize and reset the emulator. */ | 34 | /* Reset the FPA11 chip. Called to initialize and reset the emulator. */ |
| 40 | static void resetFPA11(void) | 35 | static void resetFPA11(void) |
| 41 | { | 36 | { |
diff --git a/arch/arm/nwfpe/fpa11.h b/arch/arm/nwfpe/fpa11.h index 93523ae4b7a1..9677ae8448e8 100644 --- a/arch/arm/nwfpe/fpa11.h +++ b/arch/arm/nwfpe/fpa11.h | |||
| @@ -95,4 +95,24 @@ extern int8 SetRoundingMode(const unsigned int); | |||
| 95 | extern int8 SetRoundingPrecision(const unsigned int); | 95 | extern int8 SetRoundingPrecision(const unsigned int); |
| 96 | extern void nwfpe_init_fpa(union fp_state *fp); | 96 | extern void nwfpe_init_fpa(union fp_state *fp); |
| 97 | 97 | ||
| 98 | extern unsigned int EmulateAll(unsigned int opcode); | ||
| 99 | |||
| 100 | extern unsigned int EmulateCPDT(const unsigned int opcode); | ||
| 101 | extern unsigned int EmulateCPDO(const unsigned int opcode); | ||
| 102 | extern unsigned int EmulateCPRT(const unsigned int opcode); | ||
| 103 | |||
| 104 | /* fpa11_cpdt.c */ | ||
| 105 | extern unsigned int PerformLDF(const unsigned int opcode); | ||
| 106 | extern unsigned int PerformSTF(const unsigned int opcode); | ||
| 107 | extern unsigned int PerformLFM(const unsigned int opcode); | ||
| 108 | extern unsigned int PerformSFM(const unsigned int opcode); | ||
| 109 | |||
| 110 | /* single_cpdo.c */ | ||
| 111 | |||
| 112 | extern unsigned int SingleCPDO(struct roundingData *roundData, | ||
| 113 | const unsigned int opcode, FPREG * rFd); | ||
| 114 | /* double_cpdo.c */ | ||
| 115 | extern unsigned int DoubleCPDO(struct roundingData *roundData, | ||
| 116 | const unsigned int opcode, FPREG * rFd); | ||
| 117 | |||
| 98 | #endif | 118 | #endif |
diff --git a/arch/arm/nwfpe/fpa11_cprt.c b/arch/arm/nwfpe/fpa11_cprt.c index adf8d3000540..7c67023655e4 100644 --- a/arch/arm/nwfpe/fpa11_cprt.c +++ b/arch/arm/nwfpe/fpa11_cprt.c | |||
| @@ -26,12 +26,11 @@ | |||
| 26 | #include "fpa11.inl" | 26 | #include "fpa11.inl" |
| 27 | #include "fpmodule.h" | 27 | #include "fpmodule.h" |
| 28 | #include "fpmodule.inl" | 28 | #include "fpmodule.inl" |
| 29 | #include "softfloat.h" | ||
| 29 | 30 | ||
| 30 | #ifdef CONFIG_FPE_NWFPE_XP | 31 | #ifdef CONFIG_FPE_NWFPE_XP |
| 31 | extern flag floatx80_is_nan(floatx80); | 32 | extern flag floatx80_is_nan(floatx80); |
| 32 | #endif | 33 | #endif |
| 33 | extern flag float64_is_nan(float64); | ||
| 34 | extern flag float32_is_nan(float32); | ||
| 35 | 34 | ||
| 36 | unsigned int PerformFLT(const unsigned int opcode); | 35 | unsigned int PerformFLT(const unsigned int opcode); |
| 37 | unsigned int PerformFIX(const unsigned int opcode); | 36 | unsigned int PerformFIX(const unsigned int opcode); |
diff --git a/arch/arm/nwfpe/fpopcode.h b/arch/arm/nwfpe/fpopcode.h index 1777e92a88e6..6528e081c83f 100644 --- a/arch/arm/nwfpe/fpopcode.h +++ b/arch/arm/nwfpe/fpopcode.h | |||
| @@ -476,4 +476,10 @@ static inline unsigned int getDestinationSize(const unsigned int opcode) | |||
| 476 | return (nRc); | 476 | return (nRc); |
| 477 | } | 477 | } |
| 478 | 478 | ||
| 479 | extern unsigned int checkCondition(const unsigned int opcode, | ||
| 480 | const unsigned int ccodes); | ||
| 481 | |||
| 482 | extern const float64 float64Constant[]; | ||
| 483 | extern const float32 float32Constant[]; | ||
| 484 | |||
| 479 | #endif | 485 | #endif |
diff --git a/arch/arm/nwfpe/softfloat.h b/arch/arm/nwfpe/softfloat.h index 1c8799b9ee4d..14151700b6b2 100644 --- a/arch/arm/nwfpe/softfloat.h +++ b/arch/arm/nwfpe/softfloat.h | |||
| @@ -265,4 +265,7 @@ static inline flag float64_lt_nocheck(float64 a, float64 b) | |||
| 265 | return (a != b) && (aSign ^ (a < b)); | 265 | return (a != b) && (aSign ^ (a < b)); |
| 266 | } | 266 | } |
| 267 | 267 | ||
| 268 | extern flag float32_is_nan( float32 a ); | ||
| 269 | extern flag float64_is_nan( float64 a ); | ||
| 270 | |||
| 268 | #endif | 271 | #endif |
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types index 6d3a79e5fef8..ae7c64b8cec3 100644 --- a/arch/arm/tools/mach-types +++ b/arch/arm/tools/mach-types | |||
| @@ -2,11 +2,17 @@ | |||
| 2 | # | 2 | # |
| 3 | # This file is linux/arch/arm/tools/mach-types | 3 | # This file is linux/arch/arm/tools/mach-types |
| 4 | # | 4 | # |
| 5 | # Up to date versions of this file can be obtained from: | ||
| 6 | # | ||
| 7 | # http://www.arm.linux.org.uk/developer/machines/?action=download | ||
| 8 | # | ||
| 5 | # Please do not send patches to this file; it is automatically generated! | 9 | # Please do not send patches to this file; it is automatically generated! |
| 6 | # To add an entry into this database, please see Documentation/arm/README, | 10 | # To add an entry into this database, please see Documentation/arm/README, |
| 7 | # or contact rmk@arm.linux.org.uk | 11 | # or visit: |
| 12 | # | ||
| 13 | # http://www.arm.linux.org.uk/developer/machines/?action=new | ||
| 8 | # | 14 | # |
| 9 | # Last update: Thu Jun 23 20:19:33 2005 | 15 | # Last update: Mon Oct 10 09:46:25 2005 |
| 10 | # | 16 | # |
| 11 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number | 17 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number |
| 12 | # | 18 | # |
| @@ -421,7 +427,7 @@ mt02 MACH_MT02 MT02 410 | |||
| 421 | mport3s MACH_MPORT3S MPORT3S 411 | 427 | mport3s MACH_MPORT3S MPORT3S 411 |
| 422 | ra_alpha MACH_RA_ALPHA RA_ALPHA 412 | 428 | ra_alpha MACH_RA_ALPHA RA_ALPHA 412 |
| 423 | xcep MACH_XCEP XCEP 413 | 429 | xcep MACH_XCEP XCEP 413 |
| 424 | arcom_mercury MACH_ARCOM_MERCURY ARCOM_MERCURY 414 | 430 | arcom_vulcan MACH_ARCOM_VULCAN ARCOM_VULCAN 414 |
| 425 | stargate MACH_STARGATE STARGATE 415 | 431 | stargate MACH_STARGATE STARGATE 415 |
| 426 | armadilloj MACH_ARMADILLOJ ARMADILLOJ 416 | 432 | armadilloj MACH_ARMADILLOJ ARMADILLOJ 416 |
| 427 | elroy_jack MACH_ELROY_JACK ELROY_JACK 417 | 433 | elroy_jack MACH_ELROY_JACK ELROY_JACK 417 |
| @@ -454,7 +460,7 @@ esl_sarva MACH_ESL_SARVA ESL_SARVA 443 | |||
| 454 | xm250 MACH_XM250 XM250 444 | 460 | xm250 MACH_XM250 XM250 444 |
| 455 | t6tc1xb MACH_T6TC1XB T6TC1XB 445 | 461 | t6tc1xb MACH_T6TC1XB T6TC1XB 445 |
| 456 | ess710 MACH_ESS710 ESS710 446 | 462 | ess710 MACH_ESS710 ESS710 446 |
| 457 | mx3ads MACH_MX3ADS MX3ADS 447 | 463 | mx31ads MACH_MX3ADS MX3ADS 447 |
| 458 | himalaya MACH_HIMALAYA HIMALAYA 448 | 464 | himalaya MACH_HIMALAYA HIMALAYA 448 |
| 459 | bolfenk MACH_BOLFENK BOLFENK 449 | 465 | bolfenk MACH_BOLFENK BOLFENK 449 |
| 460 | at91rm9200kr MACH_AT91RM9200KR AT91RM9200KR 450 | 466 | at91rm9200kr MACH_AT91RM9200KR AT91RM9200KR 450 |
| @@ -787,3 +793,79 @@ ez_ixp42x MACH_EZ_IXP42X EZ_IXP42X 778 | |||
| 787 | tapwave_zodiac MACH_TAPWAVE_ZODIAC TAPWAVE_ZODIAC 779 | 793 | tapwave_zodiac MACH_TAPWAVE_ZODIAC TAPWAVE_ZODIAC 779 |
| 788 | universalmeter MACH_UNIVERSALMETER UNIVERSALMETER 780 | 794 | universalmeter MACH_UNIVERSALMETER UNIVERSALMETER 780 |
| 789 | hicoarm9 MACH_HICOARM9 HICOARM9 781 | 795 | hicoarm9 MACH_HICOARM9 HICOARM9 781 |
| 796 | pnx4008 MACH_PNX4008 PNX4008 782 | ||
| 797 | kws6000 MACH_KWS6000 KWS6000 783 | ||
| 798 | portux920t MACH_PORTUX920T PORTUX920T 784 | ||
| 799 | ez_x5 MACH_EZ_X5 EZ_X5 785 | ||
| 800 | omap_rudolph MACH_OMAP_RUDOLPH OMAP_RUDOLPH 786 | ||
| 801 | cpuat91 MACH_CPUAT91 CPUAT91 787 | ||
| 802 | rea9200 MACH_REA9200 REA9200 788 | ||
| 803 | acts_pune_sa1110 MACH_ACTS_PUNE_SA1110 ACTS_PUNE_SA1110 789 | ||
| 804 | ixp425 MACH_IXP425 IXP425 790 | ||
| 805 | argonplusodyssey MACH_ODYSSEY ODYSSEY 791 | ||
| 806 | perch MACH_PERCH PERCH 792 | ||
| 807 | eis05r1 MACH_EIS05R1 EIS05R1 793 | ||
| 808 | pepperpad MACH_PEPPERPAD PEPPERPAD 794 | ||
| 809 | sb3010 MACH_SB3010 SB3010 795 | ||
| 810 | rm9200 MACH_RM9200 RM9200 796 | ||
| 811 | dma03 MACH_DMA03 DMA03 797 | ||
| 812 | road_s101 MACH_ROAD_S101 ROAD_S101 798 | ||
| 813 | iq_nextgen_a MACH_IQ_NEXTGEN_A IQ_NEXTGEN_A 799 | ||
| 814 | iq_nextgen_b MACH_IQ_NEXTGEN_B IQ_NEXTGEN_B 800 | ||
| 815 | iq_nextgen_c MACH_IQ_NEXTGEN_C IQ_NEXTGEN_C 801 | ||
| 816 | iq_nextgen_d MACH_IQ_NEXTGEN_D IQ_NEXTGEN_D 802 | ||
| 817 | iq_nextgen_e MACH_IQ_NEXTGEN_E IQ_NEXTGEN_E 803 | ||
| 818 | mallow_at91 MACH_MALLOW_AT91 MALLOW_AT91 804 | ||
| 819 | cybertracker MACH_CYBERTRACKER CYBERTRACKER 805 | ||
| 820 | gesbc931x MACH_GESBC931X GESBC931X 806 | ||
| 821 | centipad MACH_CENTIPAD CENTIPAD 807 | ||
| 822 | armsoc MACH_ARMSOC ARMSOC 808 | ||
| 823 | se4200 MACH_SE4200 SE4200 809 | ||
| 824 | ems197a MACH_EMS197A EMS197A 810 | ||
| 825 | micro9 MACH_MICRO9 MICRO9 811 | ||
| 826 | micro9l MACH_MICRO9L MICRO9L 812 | ||
| 827 | uc5471dsp MACH_UC5471DSP UC5471DSP 813 | ||
| 828 | sj5471eng MACH_SJ5471ENG SJ5471ENG 814 | ||
| 829 | none MACH_CMPXA26X CMPXA26X 815 | ||
| 830 | nc MACH_NC NC 816 | ||
| 831 | omap_palmte MACH_OMAP_PALMTE OMAP_PALMTE 817 | ||
| 832 | ajax52x MACH_AJAX52X AJAX52X 818 | ||
| 833 | siriustar MACH_SIRIUSTAR SIRIUSTAR 819 | ||
| 834 | iodata_hdlg MACH_IODATA_HDLG IODATA_HDLG 820 | ||
| 835 | at91rm9200utl MACH_AT91RM9200UTL AT91RM9200UTL 821 | ||
| 836 | biosafe MACH_BIOSAFE BIOSAFE 822 | ||
| 837 | mp1000 MACH_MP1000 MP1000 823 | ||
| 838 | parsy MACH_PARSY PARSY 824 | ||
| 839 | ccxp270 MACH_CCXP CCXP 825 | ||
| 840 | omap_gsample MACH_OMAP_GSAMPLE OMAP_GSAMPLE 826 | ||
| 841 | realview_eb MACH_REALVIEW_EB REALVIEW_EB 827 | ||
| 842 | samoa MACH_SAMOA SAMOA 828 | ||
| 843 | t3xscale MACH_T3XSCALE T3XSCALE 829 | ||
| 844 | i878 MACH_I878 I878 830 | ||
| 845 | borzoi MACH_BORZOI BORZOI 831 | ||
| 846 | gecko MACH_GECKO GECKO 832 | ||
| 847 | ds101 MACH_DS101 DS101 833 | ||
| 848 | omap_palmtt2 MACH_OMAP_PALMTT2 OMAP_PALMTT2 834 | ||
| 849 | xscale_palmld MACH_XSCALE_PALMLD XSCALE_PALMLD 835 | ||
| 850 | cc9c MACH_CC9C CC9C 836 | ||
| 851 | sbc1670 MACH_SBC1670 SBC1670 837 | ||
| 852 | ixdp28x5 MACH_IXDP28X5 IXDP28X5 838 | ||
| 853 | omap_palmtt MACH_OMAP_PALMTT OMAP_PALMTT 839 | ||
| 854 | ml696k MACH_ML696K ML696K 840 | ||
| 855 | arcom_zeus MACH_ARCOM_ZEUS ARCOM_ZEUS 841 | ||
| 856 | osiris MACH_OSIRIS OSIRIS 842 | ||
| 857 | maestro MACH_MAESTRO MAESTRO 843 | ||
| 858 | tunge2 MACH_TUNGE2 TUNGE2 844 | ||
| 859 | ixbbm MACH_IXBBM IXBBM 845 | ||
| 860 | mx27 MACH_MX27 MX27 846 | ||
| 861 | ax8004 MACH_AX8004 AX8004 847 | ||
| 862 | at91sam9261ek MACH_AT91SAM9261EK AT91SAM9261EK 848 | ||
| 863 | loft MACH_LOFT LOFT 849 | ||
| 864 | magpie MACH_MAGPIE MAGPIE 850 | ||
| 865 | mx21 MACH_MX21 MX21 851 | ||
| 866 | mb87m3400 MACH_MB87M3400 MB87M3400 852 | ||
| 867 | mguard_delta MACH_MGUARD_DELTA MGUARD_DELTA 853 | ||
| 868 | davinci_dvdp MACH_DAVINCI_DVDP DAVINCI_DVDP 854 | ||
| 869 | htcuniversal MACH_HTCUNIVERSAL HTCUNIVERSAL 855 | ||
| 870 | tpad MACH_TPAD TPAD 856 | ||
| 871 | roverp3 MACH_ROVERP3 ROVERP3 857 | ||
diff --git a/arch/cris/arch-v32/drivers/pci/dma.c b/arch/cris/arch-v32/drivers/pci/dma.c index 10329306d23c..426b09878a05 100644 --- a/arch/cris/arch-v32/drivers/pci/dma.c +++ b/arch/cris/arch-v32/drivers/pci/dma.c | |||
| @@ -24,7 +24,7 @@ struct dma_coherent_mem { | |||
| 24 | }; | 24 | }; |
| 25 | 25 | ||
| 26 | void *dma_alloc_coherent(struct device *dev, size_t size, | 26 | void *dma_alloc_coherent(struct device *dev, size_t size, |
| 27 | dma_addr_t *dma_handle, unsigned int __nocast gfp) | 27 | dma_addr_t *dma_handle, gfp_t gfp) |
| 28 | { | 28 | { |
| 29 | void *ret; | 29 | void *ret; |
| 30 | struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL; | 30 | struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL; |
diff --git a/arch/cris/arch-v32/kernel/smp.c b/arch/cris/arch-v32/kernel/smp.c index 2c5cae04a95c..957f551ba5ce 100644 --- a/arch/cris/arch-v32/kernel/smp.c +++ b/arch/cris/arch-v32/kernel/smp.c | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
| 16 | #include <linux/cpumask.h> | 16 | #include <linux/cpumask.h> |
| 17 | #include <linux/interrupt.h> | 17 | #include <linux/interrupt.h> |
| 18 | #include <linux/module.h> | ||
| 18 | 19 | ||
| 19 | #define IPI_SCHEDULE 1 | 20 | #define IPI_SCHEDULE 1 |
| 20 | #define IPI_CALL 2 | 21 | #define IPI_CALL 2 |
| @@ -28,6 +29,7 @@ spinlock_t cris_atomic_locks[] = { [0 ... LOCK_COUNT - 1] = SPIN_LOCK_UNLOCKED}; | |||
| 28 | /* CPU masks */ | 29 | /* CPU masks */ |
| 29 | cpumask_t cpu_online_map = CPU_MASK_NONE; | 30 | cpumask_t cpu_online_map = CPU_MASK_NONE; |
| 30 | cpumask_t phys_cpu_present_map = CPU_MASK_NONE; | 31 | cpumask_t phys_cpu_present_map = CPU_MASK_NONE; |
| 32 | EXPORT_SYMBOL(phys_cpu_present_map); | ||
| 31 | 33 | ||
| 32 | /* Variables used during SMP boot */ | 34 | /* Variables used during SMP boot */ |
| 33 | volatile int cpu_now_booting = 0; | 35 | volatile int cpu_now_booting = 0; |
diff --git a/arch/i386/kernel/cpu/amd.c b/arch/i386/kernel/cpu/amd.c index 4c1ddf2b57cc..53a1681cd964 100644 --- a/arch/i386/kernel/cpu/amd.c +++ b/arch/i386/kernel/cpu/amd.c | |||
| @@ -29,7 +29,7 @@ static void __init init_amd(struct cpuinfo_x86 *c) | |||
| 29 | int r; | 29 | int r; |
| 30 | 30 | ||
| 31 | #ifdef CONFIG_SMP | 31 | #ifdef CONFIG_SMP |
| 32 | unsigned long value; | 32 | unsigned long long value; |
| 33 | 33 | ||
| 34 | /* Disable TLB flush filter by setting HWCR.FFDIS on K8 | 34 | /* Disable TLB flush filter by setting HWCR.FFDIS on K8 |
| 35 | * bit 6 of msr C001_0015 | 35 | * bit 6 of msr C001_0015 |
diff --git a/arch/i386/kernel/pci-dma.c b/arch/i386/kernel/pci-dma.c index 1e51427cc9eb..25fe66853934 100644 --- a/arch/i386/kernel/pci-dma.c +++ b/arch/i386/kernel/pci-dma.c | |||
| @@ -23,7 +23,7 @@ struct dma_coherent_mem { | |||
| 23 | }; | 23 | }; |
| 24 | 24 | ||
| 25 | void *dma_alloc_coherent(struct device *dev, size_t size, | 25 | void *dma_alloc_coherent(struct device *dev, size_t size, |
| 26 | dma_addr_t *dma_handle, unsigned int __nocast gfp) | 26 | dma_addr_t *dma_handle, gfp_t gfp) |
| 27 | { | 27 | { |
| 28 | void *ret; | 28 | void *ret; |
| 29 | struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL; | 29 | struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL; |
diff --git a/arch/i386/kernel/signal.c b/arch/i386/kernel/signal.c index 61eb0c8a6e47..adcd069db91e 100644 --- a/arch/i386/kernel/signal.c +++ b/arch/i386/kernel/signal.c | |||
| @@ -338,7 +338,11 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size) | |||
| 338 | esp = (unsigned long) ka->sa.sa_restorer; | 338 | esp = (unsigned long) ka->sa.sa_restorer; |
| 339 | } | 339 | } |
| 340 | 340 | ||
| 341 | return (void __user *)((esp - frame_size) & -8ul); | 341 | esp -= frame_size; |
| 342 | /* Align the stack pointer according to the i386 ABI, | ||
| 343 | * i.e. so that on function entry ((sp + 4) & 15) == 0. */ | ||
| 344 | esp = ((esp + 4) & -16ul) - 4; | ||
| 345 | return (void __user *) esp; | ||
| 342 | } | 346 | } |
| 343 | 347 | ||
| 344 | /* These symbols are defined with the addresses in the vsyscall page. | 348 | /* These symbols are defined with the addresses in the vsyscall page. |
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index 6dc726ad7137..d0a5106fba24 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c | |||
| @@ -1016,6 +1016,11 @@ ia64_mca_cmc_int_handler(int cmc_irq, void *arg, struct pt_regs *ptregs) | |||
| 1016 | 1016 | ||
| 1017 | cmc_polling_enabled = 1; | 1017 | cmc_polling_enabled = 1; |
| 1018 | spin_unlock(&cmc_history_lock); | 1018 | spin_unlock(&cmc_history_lock); |
| 1019 | /* If we're being hit with CMC interrupts, we won't | ||
| 1020 | * ever execute the schedule_work() below. Need to | ||
| 1021 | * disable CMC interrupts on this processor now. | ||
| 1022 | */ | ||
| 1023 | ia64_mca_cmc_vector_disable(NULL); | ||
| 1019 | schedule_work(&cmc_disable_work); | 1024 | schedule_work(&cmc_disable_work); |
| 1020 | 1025 | ||
| 1021 | /* | 1026 | /* |
diff --git a/arch/m32r/kernel/entry.S b/arch/m32r/kernel/entry.S index dddbf6b5ed2c..85920fb8d08c 100644 --- a/arch/m32r/kernel/entry.S +++ b/arch/m32r/kernel/entry.S | |||
| @@ -681,6 +681,15 @@ ENTRY(debug_trap) | |||
| 681 | bl do_debug_trap | 681 | bl do_debug_trap |
| 682 | bra error_code | 682 | bra error_code |
| 683 | 683 | ||
| 684 | ENTRY(ill_trap) | ||
| 685 | /* void ill_trap(void) */ | ||
| 686 | SWITCH_TO_KERNEL_STACK | ||
| 687 | SAVE_ALL | ||
| 688 | ldi r1, #0 ; error_code ; FIXME | ||
| 689 | mv r0, sp ; pt_regs | ||
| 690 | bl do_ill_trap | ||
| 691 | bra error_code | ||
| 692 | |||
| 684 | 693 | ||
| 685 | /* Cache flushing handler */ | 694 | /* Cache flushing handler */ |
| 686 | ENTRY(cache_flushing_handler) | 695 | ENTRY(cache_flushing_handler) |
diff --git a/arch/m32r/kernel/traps.c b/arch/m32r/kernel/traps.c index 01922271d17e..5fe8ed6d62dc 100644 --- a/arch/m32r/kernel/traps.c +++ b/arch/m32r/kernel/traps.c | |||
| @@ -5,8 +5,6 @@ | |||
| 5 | * Hitoshi Yamamoto | 5 | * Hitoshi Yamamoto |
| 6 | */ | 6 | */ |
| 7 | 7 | ||
| 8 | /* $Id$ */ | ||
| 9 | |||
| 10 | /* | 8 | /* |
| 11 | * 'traps.c' handles hardware traps and faults after we have saved some | 9 | * 'traps.c' handles hardware traps and faults after we have saved some |
| 12 | * state in 'entry.S'. | 10 | * state in 'entry.S'. |
| @@ -35,6 +33,7 @@ asmlinkage void ei_handler(void); | |||
| 35 | asmlinkage void rie_handler(void); | 33 | asmlinkage void rie_handler(void); |
| 36 | asmlinkage void debug_trap(void); | 34 | asmlinkage void debug_trap(void); |
| 37 | asmlinkage void cache_flushing_handler(void); | 35 | asmlinkage void cache_flushing_handler(void); |
| 36 | asmlinkage void ill_trap(void); | ||
| 38 | 37 | ||
| 39 | #ifdef CONFIG_SMP | 38 | #ifdef CONFIG_SMP |
| 40 | extern void smp_reschedule_interrupt(void); | 39 | extern void smp_reschedule_interrupt(void); |
| @@ -77,22 +76,22 @@ void set_eit_vector_entries(void) | |||
| 77 | eit_vector[5] = BRA_INSN(default_eit_handler, 5); | 76 | eit_vector[5] = BRA_INSN(default_eit_handler, 5); |
| 78 | eit_vector[8] = BRA_INSN(rie_handler, 8); | 77 | eit_vector[8] = BRA_INSN(rie_handler, 8); |
| 79 | eit_vector[12] = BRA_INSN(alignment_check, 12); | 78 | eit_vector[12] = BRA_INSN(alignment_check, 12); |
| 80 | eit_vector[16] = 0xff000000UL; | 79 | eit_vector[16] = BRA_INSN(ill_trap, 16); |
| 81 | eit_vector[17] = BRA_INSN(debug_trap, 17); | 80 | eit_vector[17] = BRA_INSN(debug_trap, 17); |
| 82 | eit_vector[18] = BRA_INSN(system_call, 18); | 81 | eit_vector[18] = BRA_INSN(system_call, 18); |
| 83 | eit_vector[19] = 0xff000000UL; | 82 | eit_vector[19] = BRA_INSN(ill_trap, 19); |
| 84 | eit_vector[20] = 0xff000000UL; | 83 | eit_vector[20] = BRA_INSN(ill_trap, 20); |
| 85 | eit_vector[21] = 0xff000000UL; | 84 | eit_vector[21] = BRA_INSN(ill_trap, 21); |
| 86 | eit_vector[22] = 0xff000000UL; | 85 | eit_vector[22] = BRA_INSN(ill_trap, 22); |
| 87 | eit_vector[23] = 0xff000000UL; | 86 | eit_vector[23] = BRA_INSN(ill_trap, 23); |
| 88 | eit_vector[24] = 0xff000000UL; | 87 | eit_vector[24] = BRA_INSN(ill_trap, 24); |
| 89 | eit_vector[25] = 0xff000000UL; | 88 | eit_vector[25] = BRA_INSN(ill_trap, 25); |
| 90 | eit_vector[26] = 0xff000000UL; | 89 | eit_vector[26] = BRA_INSN(ill_trap, 26); |
| 91 | eit_vector[27] = 0xff000000UL; | 90 | eit_vector[27] = BRA_INSN(ill_trap, 27); |
| 92 | eit_vector[28] = BRA_INSN(cache_flushing_handler, 28); | 91 | eit_vector[28] = BRA_INSN(cache_flushing_handler, 28); |
| 93 | eit_vector[29] = 0xff000000UL; | 92 | eit_vector[29] = BRA_INSN(ill_trap, 29); |
| 94 | eit_vector[30] = 0xff000000UL; | 93 | eit_vector[30] = BRA_INSN(ill_trap, 30); |
| 95 | eit_vector[31] = 0xff000000UL; | 94 | eit_vector[31] = BRA_INSN(ill_trap, 31); |
| 96 | eit_vector[32] = BRA_INSN(ei_handler, 32); | 95 | eit_vector[32] = BRA_INSN(ei_handler, 32); |
| 97 | eit_vector[64] = BRA_INSN(pie_handler, 64); | 96 | eit_vector[64] = BRA_INSN(pie_handler, 64); |
| 98 | #ifdef CONFIG_MMU | 97 | #ifdef CONFIG_MMU |
| @@ -286,7 +285,8 @@ asmlinkage void do_##name(struct pt_regs * regs, long error_code) \ | |||
| 286 | 285 | ||
| 287 | DO_ERROR( 1, SIGTRAP, "debug trap", debug_trap) | 286 | DO_ERROR( 1, SIGTRAP, "debug trap", debug_trap) |
| 288 | DO_ERROR_INFO(0x20, SIGILL, "reserved instruction ", rie_handler, ILL_ILLOPC, regs->bpc) | 287 | DO_ERROR_INFO(0x20, SIGILL, "reserved instruction ", rie_handler, ILL_ILLOPC, regs->bpc) |
| 289 | DO_ERROR_INFO(0x100, SIGILL, "privilege instruction", pie_handler, ILL_PRVOPC, regs->bpc) | 288 | DO_ERROR_INFO(0x100, SIGILL, "privileged instruction", pie_handler, ILL_PRVOPC, regs->bpc) |
| 289 | DO_ERROR_INFO(-1, SIGILL, "illegal trap", ill_trap, ILL_ILLTRP, regs->bpc) | ||
| 290 | 290 | ||
| 291 | extern int handle_unaligned_access(unsigned long, struct pt_regs *); | 291 | extern int handle_unaligned_access(unsigned long, struct pt_regs *); |
| 292 | 292 | ||
| @@ -329,4 +329,3 @@ asmlinkage void do_alignment_check(struct pt_regs *regs, long error_code) | |||
| 329 | set_fs(oldfs); | 329 | set_fs(oldfs); |
| 330 | } | 330 | } |
| 331 | } | 331 | } |
| 332 | |||
diff --git a/arch/ppc/kernel/cputable.c b/arch/ppc/kernel/cputable.c index 546e1ea4cafa..6b76cf58d9e0 100644 --- a/arch/ppc/kernel/cputable.c +++ b/arch/ppc/kernel/cputable.c | |||
| @@ -91,7 +91,7 @@ struct cpu_spec cpu_specs[] = { | |||
| 91 | .cpu_features = CPU_FTR_COMMON | CPU_FTR_601 | | 91 | .cpu_features = CPU_FTR_COMMON | CPU_FTR_601 | |
| 92 | CPU_FTR_HPTE_TABLE, | 92 | CPU_FTR_HPTE_TABLE, |
| 93 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_601_INSTR | | 93 | .cpu_user_features = COMMON_PPC | PPC_FEATURE_601_INSTR | |
| 94 | PPC_FEATURE_UNIFIED_CACHE, | 94 | PPC_FEATURE_UNIFIED_CACHE | PPC_FEATURE_NO_TB, |
| 95 | .icache_bsize = 32, | 95 | .icache_bsize = 32, |
| 96 | .dcache_bsize = 32, | 96 | .dcache_bsize = 32, |
| 97 | .cpu_setup = __setup_cpu_601 | 97 | .cpu_setup = __setup_cpu_601 |
| @@ -745,7 +745,8 @@ struct cpu_spec cpu_specs[] = { | |||
| 745 | .cpu_name = "403GCX", | 745 | .cpu_name = "403GCX", |
| 746 | .cpu_features = CPU_FTR_SPLIT_ID_CACHE | | 746 | .cpu_features = CPU_FTR_SPLIT_ID_CACHE | |
| 747 | CPU_FTR_USE_TB, | 747 | CPU_FTR_USE_TB, |
| 748 | .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU, | 748 | .cpu_user_features = PPC_FEATURE_32 | |
| 749 | PPC_FEATURE_HAS_MMU | PPC_FEATURE_NO_TB, | ||
| 749 | .icache_bsize = 16, | 750 | .icache_bsize = 16, |
| 750 | .dcache_bsize = 16, | 751 | .dcache_bsize = 16, |
| 751 | }, | 752 | }, |
diff --git a/arch/ppc/kernel/dma-mapping.c b/arch/ppc/kernel/dma-mapping.c index b566d982806c..8edee806dae7 100644 --- a/arch/ppc/kernel/dma-mapping.c +++ b/arch/ppc/kernel/dma-mapping.c | |||
| @@ -401,10 +401,10 @@ EXPORT_SYMBOL(__dma_sync); | |||
| 401 | static inline void __dma_sync_page_highmem(struct page *page, | 401 | static inline void __dma_sync_page_highmem(struct page *page, |
| 402 | unsigned long offset, size_t size, int direction) | 402 | unsigned long offset, size_t size, int direction) |
| 403 | { | 403 | { |
| 404 | size_t seg_size = min((size_t)PAGE_SIZE, size) - offset; | 404 | size_t seg_size = min((size_t)(PAGE_SIZE - offset), size); |
| 405 | size_t cur_size = seg_size; | 405 | size_t cur_size = seg_size; |
| 406 | unsigned long flags, start, seg_offset = offset; | 406 | unsigned long flags, start, seg_offset = offset; |
| 407 | int nr_segs = PAGE_ALIGN(size + (PAGE_SIZE - offset))/PAGE_SIZE; | 407 | int nr_segs = 1 + ((size - seg_size) + PAGE_SIZE - 1)/PAGE_SIZE; |
| 408 | int seg_nr = 0; | 408 | int seg_nr = 0; |
| 409 | 409 | ||
| 410 | local_irq_save(flags); | 410 | local_irq_save(flags); |
diff --git a/arch/ppc/platforms/pmac_time.c b/arch/ppc/platforms/pmac_time.c index 778ce4fec368..efb819f9490d 100644 --- a/arch/ppc/platforms/pmac_time.c +++ b/arch/ppc/platforms/pmac_time.c | |||
| @@ -195,7 +195,7 @@ via_calibrate_decr(void) | |||
| 195 | ; | 195 | ; |
| 196 | dend = get_dec(); | 196 | dend = get_dec(); |
| 197 | 197 | ||
| 198 | tb_ticks_per_jiffy = (dstart - dend) / (6 * (HZ/100)); | 198 | tb_ticks_per_jiffy = (dstart - dend) / ((6 * HZ)/100); |
| 199 | tb_to_us = mulhwu_scale_factor(dstart - dend, 60000); | 199 | tb_to_us = mulhwu_scale_factor(dstart - dend, 60000); |
| 200 | 200 | ||
| 201 | printk(KERN_INFO "via_calibrate_decr: ticks per jiffy = %u (%u ticks)\n", | 201 | printk(KERN_INFO "via_calibrate_decr: ticks per jiffy = %u (%u ticks)\n", |
diff --git a/arch/ppc64/kernel/bpa_iommu.c b/arch/ppc64/kernel/bpa_iommu.c index 507eb9d0223f..5f2460090e03 100644 --- a/arch/ppc64/kernel/bpa_iommu.c +++ b/arch/ppc64/kernel/bpa_iommu.c | |||
| @@ -310,7 +310,7 @@ static void bpa_map_iommu(void) | |||
| 310 | 310 | ||
| 311 | 311 | ||
| 312 | static void *bpa_alloc_coherent(struct device *hwdev, size_t size, | 312 | static void *bpa_alloc_coherent(struct device *hwdev, size_t size, |
| 313 | dma_addr_t *dma_handle, unsigned int __nocast flag) | 313 | dma_addr_t *dma_handle, gfp_t flag) |
| 314 | { | 314 | { |
| 315 | void *ret; | 315 | void *ret; |
| 316 | 316 | ||
diff --git a/arch/ppc64/kernel/dma.c b/arch/ppc64/kernel/dma.c index 4da8e31b2b61..7c3419656ccc 100644 --- a/arch/ppc64/kernel/dma.c +++ b/arch/ppc64/kernel/dma.c | |||
| @@ -53,7 +53,7 @@ int dma_set_mask(struct device *dev, u64 dma_mask) | |||
| 53 | EXPORT_SYMBOL(dma_set_mask); | 53 | EXPORT_SYMBOL(dma_set_mask); |
| 54 | 54 | ||
| 55 | void *dma_alloc_coherent(struct device *dev, size_t size, | 55 | void *dma_alloc_coherent(struct device *dev, size_t size, |
| 56 | dma_addr_t *dma_handle, unsigned int __nocast flag) | 56 | dma_addr_t *dma_handle, gfp_t flag) |
| 57 | { | 57 | { |
| 58 | struct dma_mapping_ops *dma_ops = get_dma_ops(dev); | 58 | struct dma_mapping_ops *dma_ops = get_dma_ops(dev); |
| 59 | 59 | ||
diff --git a/arch/ppc64/kernel/iommu.c b/arch/ppc64/kernel/iommu.c index 9032b6bfe036..4d9b4388918b 100644 --- a/arch/ppc64/kernel/iommu.c +++ b/arch/ppc64/kernel/iommu.c | |||
| @@ -519,7 +519,7 @@ void iommu_unmap_single(struct iommu_table *tbl, dma_addr_t dma_handle, | |||
| 519 | * to the dma address (mapping) of the first page. | 519 | * to the dma address (mapping) of the first page. |
| 520 | */ | 520 | */ |
| 521 | void *iommu_alloc_coherent(struct iommu_table *tbl, size_t size, | 521 | void *iommu_alloc_coherent(struct iommu_table *tbl, size_t size, |
| 522 | dma_addr_t *dma_handle, unsigned int __nocast flag) | 522 | dma_addr_t *dma_handle, gfp_t flag) |
| 523 | { | 523 | { |
| 524 | void *ret = NULL; | 524 | void *ret = NULL; |
| 525 | dma_addr_t mapping; | 525 | dma_addr_t mapping; |
diff --git a/arch/ppc64/kernel/module.c b/arch/ppc64/kernel/module.c index c683bf88e690..928b8581fcb0 100644 --- a/arch/ppc64/kernel/module.c +++ b/arch/ppc64/kernel/module.c | |||
| @@ -341,6 +341,19 @@ int apply_relocate_add(Elf64_Shdr *sechdrs, | |||
| 341 | *(unsigned long *)location = my_r2(sechdrs, me); | 341 | *(unsigned long *)location = my_r2(sechdrs, me); |
| 342 | break; | 342 | break; |
| 343 | 343 | ||
| 344 | case R_PPC64_TOC16: | ||
| 345 | /* Subtact TOC pointer */ | ||
| 346 | value -= my_r2(sechdrs, me); | ||
| 347 | if (value + 0x8000 > 0xffff) { | ||
| 348 | printk("%s: bad TOC16 relocation (%lu)\n", | ||
| 349 | me->name, value); | ||
| 350 | return -ENOEXEC; | ||
| 351 | } | ||
| 352 | *((uint16_t *) location) | ||
| 353 | = (*((uint16_t *) location) & ~0xffff) | ||
| 354 | | (value & 0xffff); | ||
| 355 | break; | ||
| 356 | |||
| 344 | case R_PPC64_TOC16_DS: | 357 | case R_PPC64_TOC16_DS: |
| 345 | /* Subtact TOC pointer */ | 358 | /* Subtact TOC pointer */ |
| 346 | value -= my_r2(sechdrs, me); | 359 | value -= my_r2(sechdrs, me); |
diff --git a/arch/ppc64/kernel/pSeries_pci.c b/arch/ppc64/kernel/pSeries_pci.c index 1f5f141fb7a1..928f8febdb3b 100644 --- a/arch/ppc64/kernel/pSeries_pci.c +++ b/arch/ppc64/kernel/pSeries_pci.c | |||
| @@ -32,7 +32,7 @@ | |||
| 32 | 32 | ||
| 33 | #include "pci.h" | 33 | #include "pci.h" |
| 34 | 34 | ||
| 35 | static int __initdata s7a_workaround = -1; | 35 | static int __devinitdata s7a_workaround = -1; |
| 36 | 36 | ||
| 37 | #if 0 | 37 | #if 0 |
| 38 | void pcibios_name_device(struct pci_dev *dev) | 38 | void pcibios_name_device(struct pci_dev *dev) |
| @@ -60,7 +60,7 @@ void pcibios_name_device(struct pci_dev *dev) | |||
| 60 | DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pcibios_name_device); | 60 | DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pcibios_name_device); |
| 61 | #endif | 61 | #endif |
| 62 | 62 | ||
| 63 | static void __init check_s7a(void) | 63 | static void __devinit check_s7a(void) |
| 64 | { | 64 | { |
| 65 | struct device_node *root; | 65 | struct device_node *root; |
| 66 | char *model; | 66 | char *model; |
diff --git a/arch/ppc64/kernel/pci_direct_iommu.c b/arch/ppc64/kernel/pci_direct_iommu.c index b8f7f58824f4..54055c81017a 100644 --- a/arch/ppc64/kernel/pci_direct_iommu.c +++ b/arch/ppc64/kernel/pci_direct_iommu.c | |||
| @@ -31,7 +31,7 @@ | |||
| 31 | #include "pci.h" | 31 | #include "pci.h" |
| 32 | 32 | ||
| 33 | static void *pci_direct_alloc_coherent(struct device *hwdev, size_t size, | 33 | static void *pci_direct_alloc_coherent(struct device *hwdev, size_t size, |
| 34 | dma_addr_t *dma_handle, unsigned int __nocast flag) | 34 | dma_addr_t *dma_handle, gfp_t flag) |
| 35 | { | 35 | { |
| 36 | void *ret; | 36 | void *ret; |
| 37 | 37 | ||
diff --git a/arch/ppc64/kernel/pci_iommu.c b/arch/ppc64/kernel/pci_iommu.c index 14647e09c9cd..d9e33b7d4203 100644 --- a/arch/ppc64/kernel/pci_iommu.c +++ b/arch/ppc64/kernel/pci_iommu.c | |||
| @@ -76,7 +76,7 @@ static inline struct iommu_table *devnode_table(struct device *dev) | |||
| 76 | * to the dma address (mapping) of the first page. | 76 | * to the dma address (mapping) of the first page. |
| 77 | */ | 77 | */ |
| 78 | static void *pci_iommu_alloc_coherent(struct device *hwdev, size_t size, | 78 | static void *pci_iommu_alloc_coherent(struct device *hwdev, size_t size, |
| 79 | dma_addr_t *dma_handle, unsigned int __nocast flag) | 79 | dma_addr_t *dma_handle, gfp_t flag) |
| 80 | { | 80 | { |
| 81 | return iommu_alloc_coherent(devnode_table(hwdev), size, dma_handle, | 81 | return iommu_alloc_coherent(devnode_table(hwdev), size, dma_handle, |
| 82 | flag); | 82 | flag); |
diff --git a/arch/ppc64/kernel/vio.c b/arch/ppc64/kernel/vio.c index c90e1dd875ce..0e555b7a6587 100644 --- a/arch/ppc64/kernel/vio.c +++ b/arch/ppc64/kernel/vio.c | |||
| @@ -218,7 +218,7 @@ static void vio_unmap_sg(struct device *dev, struct scatterlist *sglist, | |||
| 218 | } | 218 | } |
| 219 | 219 | ||
| 220 | static void *vio_alloc_coherent(struct device *dev, size_t size, | 220 | static void *vio_alloc_coherent(struct device *dev, size_t size, |
| 221 | dma_addr_t *dma_handle, unsigned int __nocast flag) | 221 | dma_addr_t *dma_handle, gfp_t flag) |
| 222 | { | 222 | { |
| 223 | return iommu_alloc_coherent(to_vio_dev(dev)->iommu_table, size, | 223 | return iommu_alloc_coherent(to_vio_dev(dev)->iommu_table, size, |
| 224 | dma_handle, flag); | 224 | dma_handle, flag); |
diff --git a/arch/sh/kernel/smp.c b/arch/sh/kernel/smp.c index 56a39d69e080..5ecefc02896a 100644 --- a/arch/sh/kernel/smp.c +++ b/arch/sh/kernel/smp.c | |||
| @@ -22,6 +22,7 @@ | |||
| 22 | #include <linux/time.h> | 22 | #include <linux/time.h> |
| 23 | #include <linux/timex.h> | 23 | #include <linux/timex.h> |
| 24 | #include <linux/sched.h> | 24 | #include <linux/sched.h> |
| 25 | #include <linux/module.h> | ||
| 25 | 26 | ||
| 26 | #include <asm/atomic.h> | 27 | #include <asm/atomic.h> |
| 27 | #include <asm/processor.h> | 28 | #include <asm/processor.h> |
| @@ -39,6 +40,8 @@ struct sh_cpuinfo cpu_data[NR_CPUS]; | |||
| 39 | extern void per_cpu_trap_init(void); | 40 | extern void per_cpu_trap_init(void); |
| 40 | 41 | ||
| 41 | cpumask_t cpu_possible_map; | 42 | cpumask_t cpu_possible_map; |
| 43 | EXPORT_SYMBOL(cpu_possible_map); | ||
| 44 | |||
| 42 | cpumask_t cpu_online_map; | 45 | cpumask_t cpu_online_map; |
| 43 | static atomic_t cpus_booted = ATOMIC_INIT(0); | 46 | static atomic_t cpus_booted = ATOMIC_INIT(0); |
| 44 | 47 | ||
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index aba05394d30a..6537445dac0e 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig | |||
| @@ -25,62 +25,6 @@ source "init/Kconfig" | |||
| 25 | 25 | ||
| 26 | menu "General machine setup" | 26 | menu "General machine setup" |
| 27 | 27 | ||
| 28 | config VT | ||
| 29 | bool | ||
| 30 | select INPUT | ||
| 31 | default y | ||
| 32 | ---help--- | ||
| 33 | If you say Y here, you will get support for terminal devices with | ||
| 34 | display and keyboard devices. These are called "virtual" because you | ||
| 35 | can run several virtual terminals (also called virtual consoles) on | ||
| 36 | one physical terminal. This is rather useful, for example one | ||
| 37 | virtual terminal can collect system messages and warnings, another | ||
| 38 | one can be used for a text-mode user session, and a third could run | ||
| 39 | an X session, all in parallel. Switching between virtual terminals | ||
| 40 | is done with certain key combinations, usually Alt-<function key>. | ||
| 41 | |||
| 42 | The setterm command ("man setterm") can be used to change the | ||
| 43 | properties (such as colors or beeping) of a virtual terminal. The | ||
| 44 | man page console_codes(4) ("man console_codes") contains the special | ||
| 45 | character sequences that can be used to change those properties | ||
| 46 | directly. The fonts used on virtual terminals can be changed with | ||
| 47 | the setfont ("man setfont") command and the key bindings are defined | ||
| 48 | with the loadkeys ("man loadkeys") command. | ||
| 49 | |||
| 50 | You need at least one virtual terminal device in order to make use | ||
| 51 | of your keyboard and monitor. Therefore, only people configuring an | ||
| 52 | embedded system would want to say N here in order to save some | ||
| 53 | memory; the only way to log into such a system is then via a serial | ||
| 54 | or network connection. | ||
| 55 | |||
| 56 | If unsure, say Y, or else you won't be able to do much with your new | ||
| 57 | shiny Linux system :-) | ||
| 58 | |||
| 59 | config VT_CONSOLE | ||
| 60 | bool | ||
| 61 | default y | ||
| 62 | ---help--- | ||
| 63 | The system console is the device which receives all kernel messages | ||
| 64 | and warnings and which allows logins in single user mode. If you | ||
| 65 | answer Y here, a virtual terminal (the device used to interact with | ||
| 66 | a physical terminal) can be used as system console. This is the most | ||
| 67 | common mode of operations, so you should say Y here unless you want | ||
| 68 | the kernel messages be output only to a serial port (in which case | ||
| 69 | you should say Y to "Console on serial port", below). | ||
| 70 | |||
| 71 | If you do say Y here, by default the currently visible virtual | ||
| 72 | terminal (/dev/tty0) will be used as system console. You can change | ||
| 73 | that with a kernel command line option such as "console=tty3" which | ||
| 74 | would use the third virtual terminal as system console. (Try "man | ||
| 75 | bootparam" or see the documentation of your boot loader (lilo or | ||
| 76 | loadlin) about how to pass options to the kernel at boot time.) | ||
| 77 | |||
| 78 | If unsure, say Y. | ||
| 79 | |||
| 80 | config HW_CONSOLE | ||
| 81 | bool | ||
| 82 | default y | ||
| 83 | |||
| 84 | config SMP | 28 | config SMP |
| 85 | bool "Symmetric multi-processing support (does not work on sun4/sun4c)" | 29 | bool "Symmetric multi-processing support (does not work on sun4/sun4c)" |
| 86 | depends on BROKEN | 30 | depends on BROKEN |
diff --git a/arch/sparc64/kernel/dtlb_base.S b/arch/sparc64/kernel/dtlb_base.S index 702d349c1e88..6528786840c0 100644 --- a/arch/sparc64/kernel/dtlb_base.S +++ b/arch/sparc64/kernel/dtlb_base.S | |||
| @@ -53,19 +53,18 @@ | |||
| 53 | * be guaranteed to be 0 ... mmu_context.h does guarantee this | 53 | * be guaranteed to be 0 ... mmu_context.h does guarantee this |
| 54 | * by only using 10 bits in the hwcontext value. | 54 | * by only using 10 bits in the hwcontext value. |
| 55 | */ | 55 | */ |
| 56 | #define CREATE_VPTE_OFFSET1(r1, r2) | 56 | #define CREATE_VPTE_OFFSET1(r1, r2) nop |
| 57 | #define CREATE_VPTE_OFFSET2(r1, r2) \ | 57 | #define CREATE_VPTE_OFFSET2(r1, r2) \ |
| 58 | srax r1, 10, r2 | 58 | srax r1, 10, r2 |
| 59 | #define CREATE_VPTE_NOP nop | ||
| 60 | #else | 59 | #else |
| 61 | #define CREATE_VPTE_OFFSET1(r1, r2) \ | 60 | #define CREATE_VPTE_OFFSET1(r1, r2) \ |
| 62 | srax r1, PAGE_SHIFT, r2 | 61 | srax r1, PAGE_SHIFT, r2 |
| 63 | #define CREATE_VPTE_OFFSET2(r1, r2) \ | 62 | #define CREATE_VPTE_OFFSET2(r1, r2) \ |
| 64 | sllx r2, 3, r2 | 63 | sllx r2, 3, r2 |
| 65 | #define CREATE_VPTE_NOP | ||
| 66 | #endif | 64 | #endif |
| 67 | 65 | ||
| 68 | /* DTLB ** ICACHE line 1: Quick user TLB misses */ | 66 | /* DTLB ** ICACHE line 1: Quick user TLB misses */ |
| 67 | mov TLB_SFSR, %g1 | ||
| 69 | ldxa [%g1 + %g1] ASI_DMMU, %g4 ! Get TAG_ACCESS | 68 | ldxa [%g1 + %g1] ASI_DMMU, %g4 ! Get TAG_ACCESS |
| 70 | andcc %g4, TAG_CONTEXT_BITS, %g0 ! From Nucleus? | 69 | andcc %g4, TAG_CONTEXT_BITS, %g0 ! From Nucleus? |
| 71 | from_tl1_trap: | 70 | from_tl1_trap: |
| @@ -74,18 +73,16 @@ from_tl1_trap: | |||
| 74 | be,pn %xcc, kvmap ! Yep, special processing | 73 | be,pn %xcc, kvmap ! Yep, special processing |
| 75 | CREATE_VPTE_OFFSET2(%g4, %g6) ! Create VPTE offset | 74 | CREATE_VPTE_OFFSET2(%g4, %g6) ! Create VPTE offset |
| 76 | cmp %g5, 4 ! Last trap level? | 75 | cmp %g5, 4 ! Last trap level? |
| 77 | be,pn %xcc, longpath ! Yep, cannot risk VPTE miss | ||
| 78 | nop ! delay slot | ||
| 79 | 76 | ||
| 80 | /* DTLB ** ICACHE line 2: User finish + quick kernel TLB misses */ | 77 | /* DTLB ** ICACHE line 2: User finish + quick kernel TLB misses */ |
| 78 | be,pn %xcc, longpath ! Yep, cannot risk VPTE miss | ||
| 79 | nop ! delay slot | ||
| 81 | ldxa [%g3 + %g6] ASI_S, %g5 ! Load VPTE | 80 | ldxa [%g3 + %g6] ASI_S, %g5 ! Load VPTE |
| 82 | 1: brgez,pn %g5, longpath ! Invalid, branch out | 81 | 1: brgez,pn %g5, longpath ! Invalid, branch out |
| 83 | nop ! Delay-slot | 82 | nop ! Delay-slot |
| 84 | 9: stxa %g5, [%g0] ASI_DTLB_DATA_IN ! Reload TLB | 83 | 9: stxa %g5, [%g0] ASI_DTLB_DATA_IN ! Reload TLB |
| 85 | retry ! Trap return | 84 | retry ! Trap return |
| 86 | nop | 85 | nop |
| 87 | nop | ||
| 88 | nop | ||
| 89 | 86 | ||
| 90 | /* DTLB ** ICACHE line 3: winfixups+real_faults */ | 87 | /* DTLB ** ICACHE line 3: winfixups+real_faults */ |
| 91 | longpath: | 88 | longpath: |
| @@ -106,8 +103,7 @@ longpath: | |||
| 106 | nop | 103 | nop |
| 107 | nop | 104 | nop |
| 108 | nop | 105 | nop |
| 109 | CREATE_VPTE_NOP | 106 | nop |
| 110 | 107 | ||
| 111 | #undef CREATE_VPTE_OFFSET1 | 108 | #undef CREATE_VPTE_OFFSET1 |
| 112 | #undef CREATE_VPTE_OFFSET2 | 109 | #undef CREATE_VPTE_OFFSET2 |
| 113 | #undef CREATE_VPTE_NOP | ||
diff --git a/arch/sparc64/kernel/dtlb_prot.S b/arch/sparc64/kernel/dtlb_prot.S index d848bb7374bb..e0a920162604 100644 --- a/arch/sparc64/kernel/dtlb_prot.S +++ b/arch/sparc64/kernel/dtlb_prot.S | |||
| @@ -14,14 +14,14 @@ | |||
| 14 | */ | 14 | */ |
| 15 | 15 | ||
| 16 | /* PROT ** ICACHE line 1: User DTLB protection trap */ | 16 | /* PROT ** ICACHE line 1: User DTLB protection trap */ |
| 17 | stxa %g0, [%g1] ASI_DMMU ! Clear SFSR FaultValid bit | 17 | mov TLB_SFSR, %g1 |
| 18 | membar #Sync ! Synchronize ASI stores | 18 | stxa %g0, [%g1] ASI_DMMU ! Clear FaultValid bit |
| 19 | rdpr %pstate, %g5 ! Move into alternate globals | 19 | membar #Sync ! Synchronize stores |
| 20 | rdpr %pstate, %g5 ! Move into alt-globals | ||
| 20 | wrpr %g5, PSTATE_AG|PSTATE_MG, %pstate | 21 | wrpr %g5, PSTATE_AG|PSTATE_MG, %pstate |
| 21 | rdpr %tl, %g1 ! Need to do a winfixup? | 22 | rdpr %tl, %g1 ! Need a winfixup? |
| 22 | cmp %g1, 1 ! Trap level >1? | 23 | cmp %g1, 1 ! Trap level >1? |
| 23 | mov TLB_TAG_ACCESS, %g4 ! Prepare reload of vaddr | 24 | mov TLB_TAG_ACCESS, %g4 ! For reload of vaddr |
| 24 | nop | ||
| 25 | 25 | ||
| 26 | /* PROT ** ICACHE line 2: More real fault processing */ | 26 | /* PROT ** ICACHE line 2: More real fault processing */ |
| 27 | bgu,pn %xcc, winfix_trampoline ! Yes, perform winfixup | 27 | bgu,pn %xcc, winfix_trampoline ! Yes, perform winfixup |
diff --git a/arch/sparc64/kernel/entry.S b/arch/sparc64/kernel/entry.S index 2879b1072921..11a848402fb1 100644 --- a/arch/sparc64/kernel/entry.S +++ b/arch/sparc64/kernel/entry.S | |||
| @@ -33,7 +33,7 @@ | |||
| 33 | /* This is trivial with the new code... */ | 33 | /* This is trivial with the new code... */ |
| 34 | .globl do_fpdis | 34 | .globl do_fpdis |
| 35 | do_fpdis: | 35 | do_fpdis: |
| 36 | sethi %hi(TSTATE_PEF), %g4 ! IEU0 | 36 | sethi %hi(TSTATE_PEF), %g4 |
| 37 | rdpr %tstate, %g5 | 37 | rdpr %tstate, %g5 |
| 38 | andcc %g5, %g4, %g0 | 38 | andcc %g5, %g4, %g0 |
| 39 | be,pt %xcc, 1f | 39 | be,pt %xcc, 1f |
| @@ -50,18 +50,18 @@ do_fpdis: | |||
| 50 | add %g0, %g0, %g0 | 50 | add %g0, %g0, %g0 |
| 51 | ba,a,pt %xcc, rtrap_clr_l6 | 51 | ba,a,pt %xcc, rtrap_clr_l6 |
| 52 | 52 | ||
| 53 | 1: ldub [%g6 + TI_FPSAVED], %g5 ! Load Group | 53 | 1: ldub [%g6 + TI_FPSAVED], %g5 |
| 54 | wr %g0, FPRS_FEF, %fprs ! LSU Group+4bubbles | 54 | wr %g0, FPRS_FEF, %fprs |
| 55 | andcc %g5, FPRS_FEF, %g0 ! IEU1 Group | 55 | andcc %g5, FPRS_FEF, %g0 |
| 56 | be,a,pt %icc, 1f ! CTI | 56 | be,a,pt %icc, 1f |
| 57 | clr %g7 ! IEU0 | 57 | clr %g7 |
| 58 | ldx [%g6 + TI_GSR], %g7 ! Load Group | 58 | ldx [%g6 + TI_GSR], %g7 |
| 59 | 1: andcc %g5, FPRS_DL, %g0 ! IEU1 | 59 | 1: andcc %g5, FPRS_DL, %g0 |
| 60 | bne,pn %icc, 2f ! CTI | 60 | bne,pn %icc, 2f |
| 61 | fzero %f0 ! FPA | 61 | fzero %f0 |
| 62 | andcc %g5, FPRS_DU, %g0 ! IEU1 Group | 62 | andcc %g5, FPRS_DU, %g0 |
| 63 | bne,pn %icc, 1f ! CTI | 63 | bne,pn %icc, 1f |
| 64 | fzero %f2 ! FPA | 64 | fzero %f2 |
| 65 | faddd %f0, %f2, %f4 | 65 | faddd %f0, %f2, %f4 |
| 66 | fmuld %f0, %f2, %f6 | 66 | fmuld %f0, %f2, %f6 |
| 67 | faddd %f0, %f2, %f8 | 67 | faddd %f0, %f2, %f8 |
| @@ -97,15 +97,17 @@ do_fpdis: | |||
| 97 | faddd %f0, %f2, %f4 | 97 | faddd %f0, %f2, %f4 |
| 98 | fmuld %f0, %f2, %f6 | 98 | fmuld %f0, %f2, %f6 |
| 99 | ldxa [%g3] ASI_DMMU, %g5 | 99 | ldxa [%g3] ASI_DMMU, %g5 |
| 100 | cplus_fptrap_insn_1: | 100 | sethi %hi(sparc64_kern_sec_context), %g2 |
| 101 | sethi %hi(0), %g2 | 101 | ldx [%g2 + %lo(sparc64_kern_sec_context)], %g2 |
| 102 | stxa %g2, [%g3] ASI_DMMU | 102 | stxa %g2, [%g3] ASI_DMMU |
| 103 | membar #Sync | 103 | membar #Sync |
| 104 | add %g6, TI_FPREGS + 0xc0, %g2 | 104 | add %g6, TI_FPREGS + 0xc0, %g2 |
| 105 | faddd %f0, %f2, %f8 | 105 | faddd %f0, %f2, %f8 |
| 106 | fmuld %f0, %f2, %f10 | 106 | fmuld %f0, %f2, %f10 |
| 107 | ldda [%g1] ASI_BLK_S, %f32 ! grrr, where is ASI_BLK_NUCLEUS 8-( | 107 | membar #Sync |
| 108 | ldda [%g1] ASI_BLK_S, %f32 | ||
| 108 | ldda [%g2] ASI_BLK_S, %f48 | 109 | ldda [%g2] ASI_BLK_S, %f48 |
| 110 | membar #Sync | ||
| 109 | faddd %f0, %f2, %f12 | 111 | faddd %f0, %f2, %f12 |
| 110 | fmuld %f0, %f2, %f14 | 112 | fmuld %f0, %f2, %f14 |
| 111 | faddd %f0, %f2, %f16 | 113 | faddd %f0, %f2, %f16 |
| @@ -116,7 +118,6 @@ cplus_fptrap_insn_1: | |||
| 116 | fmuld %f0, %f2, %f26 | 118 | fmuld %f0, %f2, %f26 |
| 117 | faddd %f0, %f2, %f28 | 119 | faddd %f0, %f2, %f28 |
| 118 | fmuld %f0, %f2, %f30 | 120 | fmuld %f0, %f2, %f30 |
| 119 | membar #Sync | ||
| 120 | b,pt %xcc, fpdis_exit | 121 | b,pt %xcc, fpdis_exit |
| 121 | nop | 122 | nop |
| 122 | 2: andcc %g5, FPRS_DU, %g0 | 123 | 2: andcc %g5, FPRS_DU, %g0 |
| @@ -126,15 +127,17 @@ cplus_fptrap_insn_1: | |||
| 126 | fzero %f34 | 127 | fzero %f34 |
| 127 | ldxa [%g3] ASI_DMMU, %g5 | 128 | ldxa [%g3] ASI_DMMU, %g5 |
| 128 | add %g6, TI_FPREGS, %g1 | 129 | add %g6, TI_FPREGS, %g1 |
| 129 | cplus_fptrap_insn_2: | 130 | sethi %hi(sparc64_kern_sec_context), %g2 |
| 130 | sethi %hi(0), %g2 | 131 | ldx [%g2 + %lo(sparc64_kern_sec_context)], %g2 |
| 131 | stxa %g2, [%g3] ASI_DMMU | 132 | stxa %g2, [%g3] ASI_DMMU |
| 132 | membar #Sync | 133 | membar #Sync |
| 133 | add %g6, TI_FPREGS + 0x40, %g2 | 134 | add %g6, TI_FPREGS + 0x40, %g2 |
| 134 | faddd %f32, %f34, %f36 | 135 | faddd %f32, %f34, %f36 |
| 135 | fmuld %f32, %f34, %f38 | 136 | fmuld %f32, %f34, %f38 |
| 136 | ldda [%g1] ASI_BLK_S, %f0 ! grrr, where is ASI_BLK_NUCLEUS 8-( | 137 | membar #Sync |
| 138 | ldda [%g1] ASI_BLK_S, %f0 | ||
| 137 | ldda [%g2] ASI_BLK_S, %f16 | 139 | ldda [%g2] ASI_BLK_S, %f16 |
| 140 | membar #Sync | ||
| 138 | faddd %f32, %f34, %f40 | 141 | faddd %f32, %f34, %f40 |
| 139 | fmuld %f32, %f34, %f42 | 142 | fmuld %f32, %f34, %f42 |
| 140 | faddd %f32, %f34, %f44 | 143 | faddd %f32, %f34, %f44 |
| @@ -147,18 +150,18 @@ cplus_fptrap_insn_2: | |||
| 147 | fmuld %f32, %f34, %f58 | 150 | fmuld %f32, %f34, %f58 |
| 148 | faddd %f32, %f34, %f60 | 151 | faddd %f32, %f34, %f60 |
| 149 | fmuld %f32, %f34, %f62 | 152 | fmuld %f32, %f34, %f62 |
| 150 | membar #Sync | ||
| 151 | ba,pt %xcc, fpdis_exit | 153 | ba,pt %xcc, fpdis_exit |
| 152 | nop | 154 | nop |
| 153 | 3: mov SECONDARY_CONTEXT, %g3 | 155 | 3: mov SECONDARY_CONTEXT, %g3 |
| 154 | add %g6, TI_FPREGS, %g1 | 156 | add %g6, TI_FPREGS, %g1 |
| 155 | ldxa [%g3] ASI_DMMU, %g5 | 157 | ldxa [%g3] ASI_DMMU, %g5 |
| 156 | cplus_fptrap_insn_3: | 158 | sethi %hi(sparc64_kern_sec_context), %g2 |
| 157 | sethi %hi(0), %g2 | 159 | ldx [%g2 + %lo(sparc64_kern_sec_context)], %g2 |
| 158 | stxa %g2, [%g3] ASI_DMMU | 160 | stxa %g2, [%g3] ASI_DMMU |
| 159 | membar #Sync | 161 | membar #Sync |
| 160 | mov 0x40, %g2 | 162 | mov 0x40, %g2 |
| 161 | ldda [%g1] ASI_BLK_S, %f0 ! grrr, where is ASI_BLK_NUCLEUS 8-( | 163 | membar #Sync |
| 164 | ldda [%g1] ASI_BLK_S, %f0 | ||
| 162 | ldda [%g1 + %g2] ASI_BLK_S, %f16 | 165 | ldda [%g1 + %g2] ASI_BLK_S, %f16 |
| 163 | add %g1, 0x80, %g1 | 166 | add %g1, 0x80, %g1 |
| 164 | ldda [%g1] ASI_BLK_S, %f32 | 167 | ldda [%g1] ASI_BLK_S, %f32 |
| @@ -319,8 +322,8 @@ do_fptrap_after_fsr: | |||
| 319 | stx %g3, [%g6 + TI_GSR] | 322 | stx %g3, [%g6 + TI_GSR] |
| 320 | mov SECONDARY_CONTEXT, %g3 | 323 | mov SECONDARY_CONTEXT, %g3 |
| 321 | ldxa [%g3] ASI_DMMU, %g5 | 324 | ldxa [%g3] ASI_DMMU, %g5 |
| 322 | cplus_fptrap_insn_4: | 325 | sethi %hi(sparc64_kern_sec_context), %g2 |
| 323 | sethi %hi(0), %g2 | 326 | ldx [%g2 + %lo(sparc64_kern_sec_context)], %g2 |
| 324 | stxa %g2, [%g3] ASI_DMMU | 327 | stxa %g2, [%g3] ASI_DMMU |
| 325 | membar #Sync | 328 | membar #Sync |
| 326 | add %g6, TI_FPREGS, %g2 | 329 | add %g6, TI_FPREGS, %g2 |
| @@ -341,33 +344,6 @@ cplus_fptrap_insn_4: | |||
| 341 | ba,pt %xcc, etrap | 344 | ba,pt %xcc, etrap |
| 342 | wr %g0, 0, %fprs | 345 | wr %g0, 0, %fprs |
| 343 | 346 | ||
| 344 | cplus_fptrap_1: | ||
| 345 | sethi %hi(CTX_CHEETAH_PLUS_CTX0), %g2 | ||
| 346 | |||
| 347 | .globl cheetah_plus_patch_fpdis | ||
| 348 | cheetah_plus_patch_fpdis: | ||
| 349 | /* We configure the dTLB512_0 for 4MB pages and the | ||
| 350 | * dTLB512_1 for 8K pages when in context zero. | ||
| 351 | */ | ||
| 352 | sethi %hi(cplus_fptrap_1), %o0 | ||
| 353 | lduw [%o0 + %lo(cplus_fptrap_1)], %o1 | ||
| 354 | |||
| 355 | set cplus_fptrap_insn_1, %o2 | ||
| 356 | stw %o1, [%o2] | ||
| 357 | flush %o2 | ||
| 358 | set cplus_fptrap_insn_2, %o2 | ||
| 359 | stw %o1, [%o2] | ||
| 360 | flush %o2 | ||
| 361 | set cplus_fptrap_insn_3, %o2 | ||
| 362 | stw %o1, [%o2] | ||
| 363 | flush %o2 | ||
| 364 | set cplus_fptrap_insn_4, %o2 | ||
| 365 | stw %o1, [%o2] | ||
| 366 | flush %o2 | ||
| 367 | |||
| 368 | retl | ||
| 369 | nop | ||
| 370 | |||
| 371 | /* The registers for cross calls will be: | 347 | /* The registers for cross calls will be: |
| 372 | * | 348 | * |
| 373 | * DATA 0: [low 32-bits] Address of function to call, jmp to this | 349 | * DATA 0: [low 32-bits] Address of function to call, jmp to this |
diff --git a/arch/sparc64/kernel/etrap.S b/arch/sparc64/kernel/etrap.S index 50d2af1d98ae..0d8eba21111b 100644 --- a/arch/sparc64/kernel/etrap.S +++ b/arch/sparc64/kernel/etrap.S | |||
| @@ -68,12 +68,8 @@ etrap_irq: | |||
| 68 | 68 | ||
| 69 | wrpr %g3, 0, %otherwin | 69 | wrpr %g3, 0, %otherwin |
| 70 | wrpr %g2, 0, %wstate | 70 | wrpr %g2, 0, %wstate |
| 71 | cplus_etrap_insn_1: | 71 | sethi %hi(sparc64_kern_pri_context), %g2 |
| 72 | sethi %hi(0), %g3 | 72 | ldx [%g2 + %lo(sparc64_kern_pri_context)], %g3 |
| 73 | sllx %g3, 32, %g3 | ||
| 74 | cplus_etrap_insn_2: | ||
| 75 | sethi %hi(0), %g2 | ||
| 76 | or %g3, %g2, %g3 | ||
| 77 | stxa %g3, [%l4] ASI_DMMU | 73 | stxa %g3, [%l4] ASI_DMMU |
| 78 | flush %l6 | 74 | flush %l6 |
| 79 | wr %g0, ASI_AIUS, %asi | 75 | wr %g0, ASI_AIUS, %asi |
| @@ -215,12 +211,8 @@ scetrap: rdpr %pil, %g2 | |||
| 215 | mov PRIMARY_CONTEXT, %l4 | 211 | mov PRIMARY_CONTEXT, %l4 |
| 216 | wrpr %g3, 0, %otherwin | 212 | wrpr %g3, 0, %otherwin |
| 217 | wrpr %g2, 0, %wstate | 213 | wrpr %g2, 0, %wstate |
| 218 | cplus_etrap_insn_3: | 214 | sethi %hi(sparc64_kern_pri_context), %g2 |
| 219 | sethi %hi(0), %g3 | 215 | ldx [%g2 + %lo(sparc64_kern_pri_context)], %g3 |
| 220 | sllx %g3, 32, %g3 | ||
| 221 | cplus_etrap_insn_4: | ||
| 222 | sethi %hi(0), %g2 | ||
| 223 | or %g3, %g2, %g3 | ||
| 224 | stxa %g3, [%l4] ASI_DMMU | 216 | stxa %g3, [%l4] ASI_DMMU |
| 225 | flush %l6 | 217 | flush %l6 |
| 226 | 218 | ||
| @@ -264,38 +256,3 @@ cplus_etrap_insn_4: | |||
| 264 | 256 | ||
| 265 | #undef TASK_REGOFF | 257 | #undef TASK_REGOFF |
| 266 | #undef ETRAP_PSTATE1 | 258 | #undef ETRAP_PSTATE1 |
| 267 | |||
| 268 | cplus_einsn_1: | ||
| 269 | sethi %uhi(CTX_CHEETAH_PLUS_NUC), %g3 | ||
| 270 | cplus_einsn_2: | ||
| 271 | sethi %hi(CTX_CHEETAH_PLUS_CTX0), %g2 | ||
| 272 | |||
| 273 | .globl cheetah_plus_patch_etrap | ||
| 274 | cheetah_plus_patch_etrap: | ||
| 275 | /* We configure the dTLB512_0 for 4MB pages and the | ||
| 276 | * dTLB512_1 for 8K pages when in context zero. | ||
| 277 | */ | ||
| 278 | sethi %hi(cplus_einsn_1), %o0 | ||
| 279 | sethi %hi(cplus_etrap_insn_1), %o2 | ||
| 280 | lduw [%o0 + %lo(cplus_einsn_1)], %o1 | ||
| 281 | or %o2, %lo(cplus_etrap_insn_1), %o2 | ||
| 282 | stw %o1, [%o2] | ||
| 283 | flush %o2 | ||
| 284 | sethi %hi(cplus_etrap_insn_3), %o2 | ||
| 285 | or %o2, %lo(cplus_etrap_insn_3), %o2 | ||
| 286 | stw %o1, [%o2] | ||
| 287 | flush %o2 | ||
| 288 | |||
| 289 | sethi %hi(cplus_einsn_2), %o0 | ||
| 290 | sethi %hi(cplus_etrap_insn_2), %o2 | ||
| 291 | lduw [%o0 + %lo(cplus_einsn_2)], %o1 | ||
| 292 | or %o2, %lo(cplus_etrap_insn_2), %o2 | ||
| 293 | stw %o1, [%o2] | ||
| 294 | flush %o2 | ||
| 295 | sethi %hi(cplus_etrap_insn_4), %o2 | ||
| 296 | or %o2, %lo(cplus_etrap_insn_4), %o2 | ||
| 297 | stw %o1, [%o2] | ||
| 298 | flush %o2 | ||
| 299 | |||
| 300 | retl | ||
| 301 | nop | ||
diff --git a/arch/sparc64/kernel/head.S b/arch/sparc64/kernel/head.S index 89406f9649a9..b49dcd4504b0 100644 --- a/arch/sparc64/kernel/head.S +++ b/arch/sparc64/kernel/head.S | |||
| @@ -28,19 +28,14 @@ | |||
| 28 | #include <asm/mmu.h> | 28 | #include <asm/mmu.h> |
| 29 | 29 | ||
| 30 | /* This section from from _start to sparc64_boot_end should fit into | 30 | /* This section from from _start to sparc64_boot_end should fit into |
| 31 | * 0x0000.0000.0040.4000 to 0x0000.0000.0040.8000 and will be sharing space | 31 | * 0x0000000000404000 to 0x0000000000408000. |
| 32 | * with bootup_user_stack, which is from 0x0000.0000.0040.4000 to | ||
| 33 | * 0x0000.0000.0040.6000 and empty_bad_page, which is from | ||
| 34 | * 0x0000.0000.0040.6000 to 0x0000.0000.0040.8000. | ||
| 35 | */ | 32 | */ |
| 36 | |||
| 37 | .text | 33 | .text |
| 38 | .globl start, _start, stext, _stext | 34 | .globl start, _start, stext, _stext |
| 39 | _start: | 35 | _start: |
| 40 | start: | 36 | start: |
| 41 | _stext: | 37 | _stext: |
| 42 | stext: | 38 | stext: |
| 43 | bootup_user_stack: | ||
| 44 | ! 0x0000000000404000 | 39 | ! 0x0000000000404000 |
| 45 | b sparc64_boot | 40 | b sparc64_boot |
| 46 | flushw /* Flush register file. */ | 41 | flushw /* Flush register file. */ |
| @@ -191,8 +186,9 @@ prom_boot_mapping_phys_low: | |||
| 191 | stx %l3, [%sp + 2047 + 128 + 0x10] ! num_rets, 5 | 186 | stx %l3, [%sp + 2047 + 128 + 0x10] ! num_rets, 5 |
| 192 | stx %l2, [%sp + 2047 + 128 + 0x18] ! arg1: "translate" | 187 | stx %l2, [%sp + 2047 + 128 + 0x18] ! arg1: "translate" |
| 193 | stx %l5, [%sp + 2047 + 128 + 0x20] ! arg2: prom_mmu_ihandle_cache | 188 | stx %l5, [%sp + 2047 + 128 + 0x20] ! arg2: prom_mmu_ihandle_cache |
| 194 | srlx %l0, 22, %l3 | 189 | /* PAGE align */ |
| 195 | sllx %l3, 22, %l3 | 190 | srlx %l0, 13, %l3 |
| 191 | sllx %l3, 13, %l3 | ||
| 196 | stx %l3, [%sp + 2047 + 128 + 0x28] ! arg3: vaddr, our PC | 192 | stx %l3, [%sp + 2047 + 128 + 0x28] ! arg3: vaddr, our PC |
| 197 | stx %g0, [%sp + 2047 + 128 + 0x30] ! res1 | 193 | stx %g0, [%sp + 2047 + 128 + 0x30] ! res1 |
| 198 | stx %g0, [%sp + 2047 + 128 + 0x38] ! res2 | 194 | stx %g0, [%sp + 2047 + 128 + 0x38] ! res2 |
| @@ -211,6 +207,9 @@ prom_boot_mapping_phys_low: | |||
| 211 | ldx [%sp + 2047 + 128 + 0x48], %l2 ! physaddr high | 207 | ldx [%sp + 2047 + 128 + 0x48], %l2 ! physaddr high |
| 212 | stx %l2, [%l4 + 0x0] | 208 | stx %l2, [%l4 + 0x0] |
| 213 | ldx [%sp + 2047 + 128 + 0x50], %l3 ! physaddr low | 209 | ldx [%sp + 2047 + 128 + 0x50], %l3 ! physaddr low |
| 210 | /* 4MB align */ | ||
| 211 | srlx %l3, 22, %l3 | ||
| 212 | sllx %l3, 22, %l3 | ||
| 214 | stx %l3, [%l4 + 0x8] | 213 | stx %l3, [%l4 + 0x8] |
| 215 | 214 | ||
| 216 | /* Leave service as-is, "call-method" */ | 215 | /* Leave service as-is, "call-method" */ |
| @@ -325,23 +324,7 @@ cheetah_tlb_fixup: | |||
| 325 | 1: sethi %hi(tlb_type), %g1 | 324 | 1: sethi %hi(tlb_type), %g1 |
| 326 | stw %g2, [%g1 + %lo(tlb_type)] | 325 | stw %g2, [%g1 + %lo(tlb_type)] |
| 327 | 326 | ||
| 328 | BRANCH_IF_CHEETAH_PLUS_OR_FOLLOWON(g1,g7,1f) | 327 | /* Patch copy/page operations to cheetah optimized versions. */ |
| 329 | ba,pt %xcc, 2f | ||
| 330 | nop | ||
| 331 | |||
| 332 | 1: /* Patch context register writes to support nucleus page | ||
| 333 | * size correctly. | ||
| 334 | */ | ||
| 335 | call cheetah_plus_patch_etrap | ||
| 336 | nop | ||
| 337 | call cheetah_plus_patch_rtrap | ||
| 338 | nop | ||
| 339 | call cheetah_plus_patch_fpdis | ||
| 340 | nop | ||
| 341 | call cheetah_plus_patch_winfixup | ||
| 342 | nop | ||
| 343 | |||
| 344 | 2: /* Patch copy/page operations to cheetah optimized versions. */ | ||
| 345 | call cheetah_patch_copyops | 328 | call cheetah_patch_copyops |
| 346 | nop | 329 | nop |
| 347 | call cheetah_patch_copy_page | 330 | call cheetah_patch_copy_page |
| @@ -398,32 +381,78 @@ tlb_fixup_done: | |||
| 398 | nop | 381 | nop |
| 399 | /* Not reached... */ | 382 | /* Not reached... */ |
| 400 | 383 | ||
| 401 | /* IMPORTANT NOTE: Whenever making changes here, check | 384 | /* This is meant to allow the sharing of this code between |
| 402 | * trampoline.S as well. -jj */ | 385 | * boot processor invocation (via setup_tba() below) and |
| 403 | .globl setup_tba | 386 | * secondary processor startup (via trampoline.S). The |
| 404 | setup_tba: /* i0 = is_starfire */ | 387 | * former does use this code, the latter does not yet due |
| 405 | save %sp, -160, %sp | 388 | * to some complexities. That should be fixed up at some |
| 389 | * point. | ||
| 390 | * | ||
| 391 | * There used to be enormous complexity wrt. transferring | ||
| 392 | * over from the firwmare's trap table to the Linux kernel's. | ||
| 393 | * For example, there was a chicken & egg problem wrt. building | ||
| 394 | * the OBP page tables, yet needing to be on the Linux kernel | ||
| 395 | * trap table (to translate PAGE_OFFSET addresses) in order to | ||
| 396 | * do that. | ||
| 397 | * | ||
| 398 | * We now handle OBP tlb misses differently, via linear lookups | ||
| 399 | * into the prom_trans[] array. So that specific problem no | ||
| 400 | * longer exists. Yet, unfortunately there are still some issues | ||
| 401 | * preventing trampoline.S from using this code... ho hum. | ||
| 402 | */ | ||
| 403 | .globl setup_trap_table | ||
| 404 | setup_trap_table: | ||
| 405 | save %sp, -192, %sp | ||
| 406 | 406 | ||
| 407 | rdpr %tba, %g7 | 407 | /* Force interrupts to be disabled. */ |
| 408 | sethi %hi(prom_tba), %o1 | 408 | rdpr %pstate, %o1 |
| 409 | or %o1, %lo(prom_tba), %o1 | 409 | andn %o1, PSTATE_IE, %o1 |
| 410 | stx %g7, [%o1] | 410 | wrpr %o1, 0x0, %pstate |
| 411 | wrpr %g0, 15, %pil | ||
| 412 | |||
| 413 | /* Make the firmware call to jump over to the Linux trap table. */ | ||
| 414 | call prom_set_trap_table | ||
| 415 | sethi %hi(sparc64_ttable_tl0), %o0 | ||
| 416 | |||
| 417 | /* Start using proper page size encodings in ctx register. */ | ||
| 418 | sethi %hi(sparc64_kern_pri_context), %g3 | ||
| 419 | ldx [%g3 + %lo(sparc64_kern_pri_context)], %g2 | ||
| 420 | mov PRIMARY_CONTEXT, %g1 | ||
| 421 | stxa %g2, [%g1] ASI_DMMU | ||
| 422 | membar #Sync | ||
| 423 | |||
| 424 | /* The Linux trap handlers expect various trap global registers | ||
| 425 | * to be setup with some fixed values. So here we set these | ||
| 426 | * up very carefully. These globals are: | ||
| 427 | * | ||
| 428 | * Alternate Globals (PSTATE_AG): | ||
| 429 | * | ||
| 430 | * %g6 --> current_thread_info() | ||
| 431 | * | ||
| 432 | * MMU Globals (PSTATE_MG): | ||
| 433 | * | ||
| 434 | * %g1 --> TLB_SFSR | ||
| 435 | * %g2 --> ((_PAGE_VALID | _PAGE_SZ4MB | | ||
| 436 | * _PAGE_CP | _PAGE_CV | _PAGE_P | _PAGE_W) | ||
| 437 | * ^ 0xfffff80000000000) | ||
| 438 | * (this %g2 value is used for computing the PAGE_OFFSET kernel | ||
| 439 | * TLB entries quickly, the virtual address of the fault XOR'd | ||
| 440 | * with this %g2 value is the PTE to load into the TLB) | ||
| 441 | * %g3 --> VPTE_BASE_CHEETAH or VPTE_BASE_SPITFIRE | ||
| 442 | * | ||
| 443 | * Interrupt Globals (PSTATE_IG, setup by init_irqwork_curcpu()): | ||
| 444 | * | ||
| 445 | * %g6 --> __irq_work[smp_processor_id()] | ||
| 446 | */ | ||
| 411 | 447 | ||
| 412 | /* Setup "Linux" globals 8-) */ | ||
| 413 | rdpr %pstate, %o1 | 448 | rdpr %pstate, %o1 |
| 414 | mov %g6, %o2 | 449 | mov %g6, %o2 |
| 415 | wrpr %o1, (PSTATE_AG|PSTATE_IE), %pstate | 450 | wrpr %o1, PSTATE_AG, %pstate |
| 416 | sethi %hi(sparc64_ttable_tl0), %g1 | ||
| 417 | wrpr %g1, %tba | ||
| 418 | mov %o2, %g6 | 451 | mov %o2, %g6 |
| 419 | 452 | ||
| 420 | /* Set up MMU globals */ | ||
| 421 | wrpr %o1, (PSTATE_MG|PSTATE_IE), %pstate | ||
| 422 | |||
| 423 | /* Set fixed globals used by dTLB miss handler. */ | ||
| 424 | #define KERN_HIGHBITS ((_PAGE_VALID|_PAGE_SZ4MB)^0xfffff80000000000) | 453 | #define KERN_HIGHBITS ((_PAGE_VALID|_PAGE_SZ4MB)^0xfffff80000000000) |
| 425 | #define KERN_LOWBITS (_PAGE_CP | _PAGE_CV | _PAGE_P | _PAGE_W) | 454 | #define KERN_LOWBITS (_PAGE_CP | _PAGE_CV | _PAGE_P | _PAGE_W) |
| 426 | 455 | wrpr %o1, PSTATE_MG, %pstate | |
| 427 | mov TSB_REG, %g1 | 456 | mov TSB_REG, %g1 |
| 428 | stxa %g0, [%g1] ASI_DMMU | 457 | stxa %g0, [%g1] ASI_DMMU |
| 429 | membar #Sync | 458 | membar #Sync |
| @@ -435,17 +464,17 @@ setup_tba: /* i0 = is_starfire */ | |||
| 435 | sllx %g2, 32, %g2 | 464 | sllx %g2, 32, %g2 |
| 436 | or %g2, KERN_LOWBITS, %g2 | 465 | or %g2, KERN_LOWBITS, %g2 |
| 437 | 466 | ||
| 438 | BRANCH_IF_ANY_CHEETAH(g3,g7,cheetah_vpte_base) | 467 | BRANCH_IF_ANY_CHEETAH(g3,g7,8f) |
| 439 | ba,pt %xcc, spitfire_vpte_base | 468 | ba,pt %xcc, 9f |
| 440 | nop | 469 | nop |
| 441 | 470 | ||
| 442 | cheetah_vpte_base: | 471 | 8: |
| 443 | sethi %uhi(VPTE_BASE_CHEETAH), %g3 | 472 | sethi %uhi(VPTE_BASE_CHEETAH), %g3 |
| 444 | or %g3, %ulo(VPTE_BASE_CHEETAH), %g3 | 473 | or %g3, %ulo(VPTE_BASE_CHEETAH), %g3 |
| 445 | ba,pt %xcc, 2f | 474 | ba,pt %xcc, 2f |
| 446 | sllx %g3, 32, %g3 | 475 | sllx %g3, 32, %g3 |
| 447 | 476 | ||
| 448 | spitfire_vpte_base: | 477 | 9: |
| 449 | sethi %uhi(VPTE_BASE_SPITFIRE), %g3 | 478 | sethi %uhi(VPTE_BASE_SPITFIRE), %g3 |
| 450 | or %g3, %ulo(VPTE_BASE_SPITFIRE), %g3 | 479 | or %g3, %ulo(VPTE_BASE_SPITFIRE), %g3 |
| 451 | sllx %g3, 32, %g3 | 480 | sllx %g3, 32, %g3 |
| @@ -471,48 +500,55 @@ spitfire_vpte_base: | |||
| 471 | sllx %o2, 32, %o2 | 500 | sllx %o2, 32, %o2 |
| 472 | wr %o2, %asr25 | 501 | wr %o2, %asr25 |
| 473 | 502 | ||
| 474 | /* Ok, we're done setting up all the state our trap mechanims needs, | ||
| 475 | * now get back into normal globals and let the PROM know what is up. | ||
| 476 | */ | ||
| 477 | 2: | 503 | 2: |
| 478 | wrpr %g0, %g0, %wstate | 504 | wrpr %g0, %g0, %wstate |
| 479 | wrpr %o1, PSTATE_IE, %pstate | 505 | wrpr %o1, 0x0, %pstate |
| 480 | 506 | ||
| 481 | call init_irqwork_curcpu | 507 | call init_irqwork_curcpu |
| 482 | nop | 508 | nop |
| 483 | 509 | ||
| 484 | call prom_set_trap_table | 510 | /* Now we can turn interrupts back on. */ |
| 485 | sethi %hi(sparc64_ttable_tl0), %o0 | ||
| 486 | |||
| 487 | BRANCH_IF_CHEETAH_PLUS_OR_FOLLOWON(g2,g3,1f) | ||
| 488 | ba,pt %xcc, 2f | ||
| 489 | nop | ||
| 490 | |||
| 491 | 1: /* Start using proper page size encodings in ctx register. */ | ||
| 492 | sethi %uhi(CTX_CHEETAH_PLUS_NUC), %g3 | ||
| 493 | mov PRIMARY_CONTEXT, %g1 | ||
| 494 | sllx %g3, 32, %g3 | ||
| 495 | sethi %hi(CTX_CHEETAH_PLUS_CTX0), %g2 | ||
| 496 | or %g3, %g2, %g3 | ||
| 497 | stxa %g3, [%g1] ASI_DMMU | ||
| 498 | membar #Sync | ||
| 499 | |||
| 500 | 2: | ||
| 501 | rdpr %pstate, %o1 | 511 | rdpr %pstate, %o1 |
| 502 | or %o1, PSTATE_IE, %o1 | 512 | or %o1, PSTATE_IE, %o1 |
| 503 | wrpr %o1, 0, %pstate | 513 | wrpr %o1, 0, %pstate |
| 514 | wrpr %g0, 0x0, %pil | ||
| 515 | |||
| 516 | ret | ||
| 517 | restore | ||
| 518 | |||
| 519 | .globl setup_tba | ||
| 520 | setup_tba: /* i0 = is_starfire */ | ||
| 521 | save %sp, -192, %sp | ||
| 522 | |||
| 523 | /* The boot processor is the only cpu which invokes this | ||
| 524 | * routine, the other cpus set things up via trampoline.S. | ||
| 525 | * So save the OBP trap table address here. | ||
| 526 | */ | ||
| 527 | rdpr %tba, %g7 | ||
| 528 | sethi %hi(prom_tba), %o1 | ||
| 529 | or %o1, %lo(prom_tba), %o1 | ||
| 530 | stx %g7, [%o1] | ||
| 531 | |||
| 532 | call setup_trap_table | ||
| 533 | nop | ||
| 504 | 534 | ||
| 505 | ret | 535 | ret |
| 506 | restore | 536 | restore |
| 537 | sparc64_boot_end: | ||
| 538 | |||
| 539 | #include "systbls.S" | ||
| 540 | #include "ktlb.S" | ||
| 541 | #include "etrap.S" | ||
| 542 | #include "rtrap.S" | ||
| 543 | #include "winfixup.S" | ||
| 544 | #include "entry.S" | ||
| 507 | 545 | ||
| 508 | /* | 546 | /* |
| 509 | * The following skips make sure the trap table in ttable.S is aligned | 547 | * The following skip makes sure the trap table in ttable.S is aligned |
| 510 | * on a 32K boundary as required by the v9 specs for TBA register. | 548 | * on a 32K boundary as required by the v9 specs for TBA register. |
| 511 | */ | 549 | */ |
| 512 | sparc64_boot_end: | 550 | 1: |
| 513 | .skip 0x2000 + _start - sparc64_boot_end | 551 | .skip 0x4000 + _start - 1b |
| 514 | bootup_user_stack_end: | ||
| 515 | .skip 0x2000 | ||
| 516 | 552 | ||
| 517 | #ifdef CONFIG_SBUS | 553 | #ifdef CONFIG_SBUS |
| 518 | /* This is just a hack to fool make depend config.h discovering | 554 | /* This is just a hack to fool make depend config.h discovering |
| @@ -524,15 +560,6 @@ bootup_user_stack_end: | |||
| 524 | ! 0x0000000000408000 | 560 | ! 0x0000000000408000 |
| 525 | 561 | ||
| 526 | #include "ttable.S" | 562 | #include "ttable.S" |
| 527 | #include "systbls.S" | ||
| 528 | #include "ktlb.S" | ||
| 529 | #include "etrap.S" | ||
| 530 | #include "rtrap.S" | ||
| 531 | #include "winfixup.S" | ||
| 532 | #include "entry.S" | ||
| 533 | |||
| 534 | /* This is just anal retentiveness on my part... */ | ||
| 535 | .align 16384 | ||
| 536 | 563 | ||
| 537 | .data | 564 | .data |
| 538 | .align 8 | 565 | .align 8 |
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c index c9b69167632a..233526ba3abe 100644 --- a/arch/sparc64/kernel/irq.c +++ b/arch/sparc64/kernel/irq.c | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | #include <asm/atomic.h> | 27 | #include <asm/atomic.h> |
| 28 | #include <asm/system.h> | 28 | #include <asm/system.h> |
| 29 | #include <asm/irq.h> | 29 | #include <asm/irq.h> |
| 30 | #include <asm/io.h> | ||
| 30 | #include <asm/sbus.h> | 31 | #include <asm/sbus.h> |
| 31 | #include <asm/iommu.h> | 32 | #include <asm/iommu.h> |
| 32 | #include <asm/upa.h> | 33 | #include <asm/upa.h> |
diff --git a/arch/sparc64/kernel/itlb_base.S b/arch/sparc64/kernel/itlb_base.S index b5e32dfa4fbc..4951ff8f6877 100644 --- a/arch/sparc64/kernel/itlb_base.S +++ b/arch/sparc64/kernel/itlb_base.S | |||
| @@ -15,14 +15,12 @@ | |||
| 15 | */ | 15 | */ |
| 16 | #define CREATE_VPTE_OFFSET1(r1, r2) \ | 16 | #define CREATE_VPTE_OFFSET1(r1, r2) \ |
| 17 | srax r1, 10, r2 | 17 | srax r1, 10, r2 |
| 18 | #define CREATE_VPTE_OFFSET2(r1, r2) | 18 | #define CREATE_VPTE_OFFSET2(r1, r2) nop |
| 19 | #define CREATE_VPTE_NOP nop | ||
| 20 | #else /* PAGE_SHIFT */ | 19 | #else /* PAGE_SHIFT */ |
| 21 | #define CREATE_VPTE_OFFSET1(r1, r2) \ | 20 | #define CREATE_VPTE_OFFSET1(r1, r2) \ |
| 22 | srax r1, PAGE_SHIFT, r2 | 21 | srax r1, PAGE_SHIFT, r2 |
| 23 | #define CREATE_VPTE_OFFSET2(r1, r2) \ | 22 | #define CREATE_VPTE_OFFSET2(r1, r2) \ |
| 24 | sllx r2, 3, r2 | 23 | sllx r2, 3, r2 |
| 25 | #define CREATE_VPTE_NOP | ||
| 26 | #endif /* PAGE_SHIFT */ | 24 | #endif /* PAGE_SHIFT */ |
| 27 | 25 | ||
| 28 | 26 | ||
| @@ -36,6 +34,7 @@ | |||
| 36 | */ | 34 | */ |
| 37 | 35 | ||
| 38 | /* ITLB ** ICACHE line 1: Quick user TLB misses */ | 36 | /* ITLB ** ICACHE line 1: Quick user TLB misses */ |
| 37 | mov TLB_SFSR, %g1 | ||
| 39 | ldxa [%g1 + %g1] ASI_IMMU, %g4 ! Get TAG_ACCESS | 38 | ldxa [%g1 + %g1] ASI_IMMU, %g4 ! Get TAG_ACCESS |
| 40 | CREATE_VPTE_OFFSET1(%g4, %g6) ! Create VPTE offset | 39 | CREATE_VPTE_OFFSET1(%g4, %g6) ! Create VPTE offset |
| 41 | CREATE_VPTE_OFFSET2(%g4, %g6) ! Create VPTE offset | 40 | CREATE_VPTE_OFFSET2(%g4, %g6) ! Create VPTE offset |
| @@ -43,41 +42,38 @@ | |||
| 43 | 1: brgez,pn %g5, 3f ! Not valid, branch out | 42 | 1: brgez,pn %g5, 3f ! Not valid, branch out |
| 44 | sethi %hi(_PAGE_EXEC), %g4 ! Delay-slot | 43 | sethi %hi(_PAGE_EXEC), %g4 ! Delay-slot |
| 45 | andcc %g5, %g4, %g0 ! Executable? | 44 | andcc %g5, %g4, %g0 ! Executable? |
| 45 | |||
| 46 | /* ITLB ** ICACHE line 2: Real faults */ | ||
| 46 | be,pn %xcc, 3f ! Nope, branch. | 47 | be,pn %xcc, 3f ! Nope, branch. |
| 47 | nop ! Delay-slot | 48 | nop ! Delay-slot |
| 48 | 2: stxa %g5, [%g0] ASI_ITLB_DATA_IN ! Load PTE into TLB | 49 | 2: stxa %g5, [%g0] ASI_ITLB_DATA_IN ! Load PTE into TLB |
| 49 | retry ! Trap return | 50 | retry ! Trap return |
| 50 | 3: rdpr %pstate, %g4 ! Move into alternate globals | 51 | 3: rdpr %pstate, %g4 ! Move into alt-globals |
| 51 | |||
| 52 | /* ITLB ** ICACHE line 2: Real faults */ | ||
| 53 | wrpr %g4, PSTATE_AG|PSTATE_MG, %pstate | 52 | wrpr %g4, PSTATE_AG|PSTATE_MG, %pstate |
| 54 | rdpr %tpc, %g5 ! And load faulting VA | 53 | rdpr %tpc, %g5 ! And load faulting VA |
| 55 | mov FAULT_CODE_ITLB, %g4 ! It was read from ITLB | 54 | mov FAULT_CODE_ITLB, %g4 ! It was read from ITLB |
| 56 | sparc64_realfault_common: ! Called by TL0 dtlb_miss too | 55 | |
| 56 | /* ITLB ** ICACHE line 3: Finish faults */ | ||
| 57 | sparc64_realfault_common: ! Called by dtlb_miss | ||
| 57 | stb %g4, [%g6 + TI_FAULT_CODE] | 58 | stb %g4, [%g6 + TI_FAULT_CODE] |
| 58 | stx %g5, [%g6 + TI_FAULT_ADDR] | 59 | stx %g5, [%g6 + TI_FAULT_ADDR] |
| 59 | ba,pt %xcc, etrap ! Save state | 60 | ba,pt %xcc, etrap ! Save state |
| 60 | 1: rd %pc, %g7 ! ... | 61 | 1: rd %pc, %g7 ! ... |
| 61 | nop | ||
| 62 | |||
| 63 | /* ITLB ** ICACHE line 3: Finish faults + window fixups */ | ||
| 64 | call do_sparc64_fault ! Call fault handler | 62 | call do_sparc64_fault ! Call fault handler |
| 65 | add %sp, PTREGS_OFF, %o0! Compute pt_regs arg | 63 | add %sp, PTREGS_OFF, %o0! Compute pt_regs arg |
| 66 | ba,pt %xcc, rtrap_clr_l6 ! Restore cpu state | 64 | ba,pt %xcc, rtrap_clr_l6 ! Restore cpu state |
| 67 | nop | 65 | nop |
| 66 | |||
| 67 | /* ITLB ** ICACHE line 4: Window fixups */ | ||
| 68 | winfix_trampoline: | 68 | winfix_trampoline: |
| 69 | rdpr %tpc, %g3 ! Prepare winfixup TNPC | 69 | rdpr %tpc, %g3 ! Prepare winfixup TNPC |
| 70 | or %g3, 0x7c, %g3 ! Compute offset to branch | 70 | or %g3, 0x7c, %g3 ! Compute branch offset |
| 71 | wrpr %g3, %tnpc ! Write it into TNPC | 71 | wrpr %g3, %tnpc ! Write it into TNPC |
| 72 | done ! Do it to it | 72 | done ! Do it to it |
| 73 | |||
| 74 | /* ITLB ** ICACHE line 4: Unused... */ | ||
| 75 | nop | 73 | nop |
| 76 | nop | 74 | nop |
| 77 | nop | 75 | nop |
| 78 | nop | 76 | nop |
| 79 | CREATE_VPTE_NOP | ||
| 80 | 77 | ||
| 81 | #undef CREATE_VPTE_OFFSET1 | 78 | #undef CREATE_VPTE_OFFSET1 |
| 82 | #undef CREATE_VPTE_OFFSET2 | 79 | #undef CREATE_VPTE_OFFSET2 |
| 83 | #undef CREATE_VPTE_NOP | ||
diff --git a/arch/sparc64/kernel/ktlb.S b/arch/sparc64/kernel/ktlb.S index 7796b37f478c..d9244d3c9f73 100644 --- a/arch/sparc64/kernel/ktlb.S +++ b/arch/sparc64/kernel/ktlb.S | |||
| @@ -58,9 +58,6 @@ vpte_noent: | |||
| 58 | done | 58 | done |
| 59 | 59 | ||
| 60 | vpte_insn_obp: | 60 | vpte_insn_obp: |
| 61 | sethi %hi(prom_pmd_phys), %g5 | ||
| 62 | ldx [%g5 + %lo(prom_pmd_phys)], %g5 | ||
| 63 | |||
| 64 | /* Behave as if we are at TL0. */ | 61 | /* Behave as if we are at TL0. */ |
| 65 | wrpr %g0, 1, %tl | 62 | wrpr %g0, 1, %tl |
| 66 | rdpr %tpc, %g4 /* Find original faulting iaddr */ | 63 | rdpr %tpc, %g4 /* Find original faulting iaddr */ |
| @@ -71,58 +68,57 @@ vpte_insn_obp: | |||
| 71 | mov TLB_SFSR, %g1 | 68 | mov TLB_SFSR, %g1 |
| 72 | stxa %g4, [%g1 + %g1] ASI_IMMU | 69 | stxa %g4, [%g1 + %g1] ASI_IMMU |
| 73 | 70 | ||
| 74 | /* Get PMD offset. */ | 71 | sethi %hi(prom_trans), %g5 |
| 75 | srlx %g4, 23, %g6 | 72 | or %g5, %lo(prom_trans), %g5 |
| 76 | and %g6, 0x7ff, %g6 | 73 | |
| 77 | sllx %g6, 2, %g6 | 74 | 1: ldx [%g5 + 0x00], %g6 ! base |
| 78 | 75 | brz,a,pn %g6, longpath ! no more entries, fail | |
| 79 | /* Load PMD, is it valid? */ | 76 | mov TLB_SFSR, %g1 ! and restore %g1 |
| 80 | lduwa [%g5 + %g6] ASI_PHYS_USE_EC, %g5 | 77 | ldx [%g5 + 0x08], %g1 ! len |
| 81 | brz,pn %g5, longpath | 78 | add %g6, %g1, %g1 ! end |
| 82 | sllx %g5, 11, %g5 | 79 | cmp %g6, %g4 |
| 83 | 80 | bgu,pt %xcc, 2f | |
| 84 | /* Get PTE offset. */ | 81 | cmp %g4, %g1 |
| 85 | srlx %g4, 13, %g6 | 82 | bgeu,pt %xcc, 2f |
| 86 | and %g6, 0x3ff, %g6 | 83 | ldx [%g5 + 0x10], %g1 ! PTE |
| 87 | sllx %g6, 3, %g6 | 84 | |
| 88 | 85 | /* TLB load, restore %g1, and return from trap. */ | |
| 89 | /* Load PTE. */ | 86 | sub %g4, %g6, %g6 |
| 90 | ldxa [%g5 + %g6] ASI_PHYS_USE_EC, %g5 | 87 | add %g1, %g6, %g5 |
| 91 | brgez,pn %g5, longpath | 88 | mov TLB_SFSR, %g1 |
| 92 | nop | ||
| 93 | |||
| 94 | /* TLB load and return from trap. */ | ||
| 95 | stxa %g5, [%g0] ASI_ITLB_DATA_IN | 89 | stxa %g5, [%g0] ASI_ITLB_DATA_IN |
| 96 | retry | 90 | retry |
| 97 | 91 | ||
| 98 | kvmap_do_obp: | 92 | 2: ba,pt %xcc, 1b |
| 99 | sethi %hi(prom_pmd_phys), %g5 | 93 | add %g5, (3 * 8), %g5 ! next entry |
| 100 | ldx [%g5 + %lo(prom_pmd_phys)], %g5 | ||
| 101 | |||
| 102 | /* Get PMD offset. */ | ||
| 103 | srlx %g4, 23, %g6 | ||
| 104 | and %g6, 0x7ff, %g6 | ||
| 105 | sllx %g6, 2, %g6 | ||
| 106 | |||
| 107 | /* Load PMD, is it valid? */ | ||
| 108 | lduwa [%g5 + %g6] ASI_PHYS_USE_EC, %g5 | ||
| 109 | brz,pn %g5, longpath | ||
| 110 | sllx %g5, 11, %g5 | ||
| 111 | |||
| 112 | /* Get PTE offset. */ | ||
| 113 | srlx %g4, 13, %g6 | ||
| 114 | and %g6, 0x3ff, %g6 | ||
| 115 | sllx %g6, 3, %g6 | ||
| 116 | |||
| 117 | /* Load PTE. */ | ||
| 118 | ldxa [%g5 + %g6] ASI_PHYS_USE_EC, %g5 | ||
| 119 | brgez,pn %g5, longpath | ||
| 120 | nop | ||
| 121 | 94 | ||
| 122 | /* TLB load and return from trap. */ | 95 | kvmap_do_obp: |
| 96 | sethi %hi(prom_trans), %g5 | ||
| 97 | or %g5, %lo(prom_trans), %g5 | ||
| 98 | srlx %g4, 13, %g4 | ||
| 99 | sllx %g4, 13, %g4 | ||
| 100 | |||
| 101 | 1: ldx [%g5 + 0x00], %g6 ! base | ||
| 102 | brz,a,pn %g6, longpath ! no more entries, fail | ||
| 103 | mov TLB_SFSR, %g1 ! and restore %g1 | ||
| 104 | ldx [%g5 + 0x08], %g1 ! len | ||
| 105 | add %g6, %g1, %g1 ! end | ||
| 106 | cmp %g6, %g4 | ||
| 107 | bgu,pt %xcc, 2f | ||
| 108 | cmp %g4, %g1 | ||
| 109 | bgeu,pt %xcc, 2f | ||
| 110 | ldx [%g5 + 0x10], %g1 ! PTE | ||
| 111 | |||
| 112 | /* TLB load, restore %g1, and return from trap. */ | ||
| 113 | sub %g4, %g6, %g6 | ||
| 114 | add %g1, %g6, %g5 | ||
| 115 | mov TLB_SFSR, %g1 | ||
| 123 | stxa %g5, [%g0] ASI_DTLB_DATA_IN | 116 | stxa %g5, [%g0] ASI_DTLB_DATA_IN |
| 124 | retry | 117 | retry |
| 125 | 118 | ||
| 119 | 2: ba,pt %xcc, 1b | ||
| 120 | add %g5, (3 * 8), %g5 ! next entry | ||
| 121 | |||
| 126 | /* | 122 | /* |
| 127 | * On a first level data miss, check whether this is to the OBP range (note | 123 | * On a first level data miss, check whether this is to the OBP range (note |
| 128 | * that such accesses can be made by prom, as well as by kernel using | 124 | * that such accesses can be made by prom, as well as by kernel using |
diff --git a/arch/sparc64/kernel/power.c b/arch/sparc64/kernel/power.c index 946cee0257ea..9e8362ea3104 100644 --- a/arch/sparc64/kernel/power.c +++ b/arch/sparc64/kernel/power.c | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | 17 | ||
| 18 | #include <asm/system.h> | 18 | #include <asm/system.h> |
| 19 | #include <asm/ebus.h> | 19 | #include <asm/ebus.h> |
| 20 | #include <asm/isa.h> | ||
| 20 | #include <asm/auxio.h> | 21 | #include <asm/auxio.h> |
| 21 | 22 | ||
| 22 | #include <linux/unistd.h> | 23 | #include <linux/unistd.h> |
| @@ -100,46 +101,83 @@ again: | |||
| 100 | return 0; | 101 | return 0; |
| 101 | } | 102 | } |
| 102 | 103 | ||
| 103 | static int __init has_button_interrupt(struct linux_ebus_device *edev) | 104 | static int __init has_button_interrupt(unsigned int irq, int prom_node) |
| 104 | { | 105 | { |
| 105 | if (edev->irqs[0] == PCI_IRQ_NONE) | 106 | if (irq == PCI_IRQ_NONE) |
| 106 | return 0; | 107 | return 0; |
| 107 | if (!prom_node_has_property(edev->prom_node, "button")) | 108 | if (!prom_node_has_property(prom_node, "button")) |
| 108 | return 0; | 109 | return 0; |
| 109 | 110 | ||
| 110 | return 1; | 111 | return 1; |
| 111 | } | 112 | } |
| 112 | 113 | ||
| 113 | void __init power_init(void) | 114 | static int __init power_probe_ebus(struct resource **resp, unsigned int *irq_p, int *prom_node_p) |
| 114 | { | 115 | { |
| 115 | struct linux_ebus *ebus; | 116 | struct linux_ebus *ebus; |
| 116 | struct linux_ebus_device *edev; | 117 | struct linux_ebus_device *edev; |
| 118 | |||
| 119 | for_each_ebus(ebus) { | ||
| 120 | for_each_ebusdev(edev, ebus) { | ||
| 121 | if (!strcmp(edev->prom_name, "power")) { | ||
| 122 | *resp = &edev->resource[0]; | ||
| 123 | *irq_p = edev->irqs[0]; | ||
| 124 | *prom_node_p = edev->prom_node; | ||
| 125 | return 0; | ||
| 126 | } | ||
| 127 | } | ||
| 128 | } | ||
| 129 | return -ENODEV; | ||
| 130 | } | ||
| 131 | |||
| 132 | static int __init power_probe_isa(struct resource **resp, unsigned int *irq_p, int *prom_node_p) | ||
| 133 | { | ||
| 134 | struct sparc_isa_bridge *isa_bus; | ||
| 135 | struct sparc_isa_device *isa_dev; | ||
| 136 | |||
| 137 | for_each_isa(isa_bus) { | ||
| 138 | for_each_isadev(isa_dev, isa_bus) { | ||
| 139 | if (!strcmp(isa_dev->prom_name, "power")) { | ||
| 140 | *resp = &isa_dev->resource; | ||
| 141 | *irq_p = isa_dev->irq; | ||
| 142 | *prom_node_p = isa_dev->prom_node; | ||
| 143 | return 0; | ||
| 144 | } | ||
| 145 | } | ||
| 146 | } | ||
| 147 | return -ENODEV; | ||
| 148 | } | ||
| 149 | |||
| 150 | void __init power_init(void) | ||
| 151 | { | ||
| 152 | struct resource *res = NULL; | ||
| 153 | unsigned int irq; | ||
| 154 | int prom_node; | ||
| 117 | static int invoked; | 155 | static int invoked; |
| 118 | 156 | ||
| 119 | if (invoked) | 157 | if (invoked) |
| 120 | return; | 158 | return; |
| 121 | invoked = 1; | 159 | invoked = 1; |
| 122 | 160 | ||
| 123 | for_each_ebus(ebus) { | 161 | if (!power_probe_ebus(&res, &irq, &prom_node)) |
| 124 | for_each_ebusdev(edev, ebus) { | 162 | goto found; |
| 125 | if (!strcmp(edev->prom_name, "power")) | 163 | |
| 126 | goto found; | 164 | if (!power_probe_isa(&res, &irq, &prom_node)) |
| 127 | } | 165 | goto found; |
| 128 | } | 166 | |
| 129 | return; | 167 | return; |
| 130 | 168 | ||
| 131 | found: | 169 | found: |
| 132 | power_reg = ioremap(edev->resource[0].start, 0x4); | 170 | power_reg = ioremap(res->start, 0x4); |
| 133 | printk("power: Control reg at %p ... ", power_reg); | 171 | printk("power: Control reg at %p ... ", power_reg); |
| 134 | poweroff_method = machine_halt; /* able to use the standard halt */ | 172 | poweroff_method = machine_halt; /* able to use the standard halt */ |
| 135 | if (has_button_interrupt(edev)) { | 173 | if (has_button_interrupt(irq, prom_node)) { |
| 136 | if (kernel_thread(powerd, NULL, CLONE_FS) < 0) { | 174 | if (kernel_thread(powerd, NULL, CLONE_FS) < 0) { |
| 137 | printk("Failed to start power daemon.\n"); | 175 | printk("Failed to start power daemon.\n"); |
| 138 | return; | 176 | return; |
| 139 | } | 177 | } |
| 140 | printk("powerd running.\n"); | 178 | printk("powerd running.\n"); |
| 141 | 179 | ||
| 142 | if (request_irq(edev->irqs[0], | 180 | if (request_irq(irq, |
| 143 | power_handler, SA_SHIRQ, "power", NULL) < 0) | 181 | power_handler, SA_SHIRQ, "power", NULL) < 0) |
| 144 | printk("power: Error, cannot register IRQ handler.\n"); | 182 | printk("power: Error, cannot register IRQ handler.\n"); |
| 145 | } else { | 183 | } else { |
diff --git a/arch/sparc64/kernel/rtrap.S b/arch/sparc64/kernel/rtrap.S index fafd227735fa..090dcca00d2a 100644 --- a/arch/sparc64/kernel/rtrap.S +++ b/arch/sparc64/kernel/rtrap.S | |||
| @@ -256,9 +256,8 @@ rt_continue: ldx [%sp + PTREGS_OFF + PT_V9_G1], %g1 | |||
| 256 | brnz,pn %l3, kern_rtt | 256 | brnz,pn %l3, kern_rtt |
| 257 | mov PRIMARY_CONTEXT, %l7 | 257 | mov PRIMARY_CONTEXT, %l7 |
| 258 | ldxa [%l7 + %l7] ASI_DMMU, %l0 | 258 | ldxa [%l7 + %l7] ASI_DMMU, %l0 |
| 259 | cplus_rtrap_insn_1: | 259 | sethi %hi(sparc64_kern_pri_nuc_bits), %l1 |
| 260 | sethi %hi(0), %l1 | 260 | ldx [%l1 + %lo(sparc64_kern_pri_nuc_bits)], %l1 |
| 261 | sllx %l1, 32, %l1 | ||
| 262 | or %l0, %l1, %l0 | 261 | or %l0, %l1, %l0 |
| 263 | stxa %l0, [%l7] ASI_DMMU | 262 | stxa %l0, [%l7] ASI_DMMU |
| 264 | flush %g6 | 263 | flush %g6 |
| @@ -313,53 +312,36 @@ kern_fpucheck: ldub [%g6 + TI_FPDEPTH], %l5 | |||
| 313 | wr %g1, FPRS_FEF, %fprs | 312 | wr %g1, FPRS_FEF, %fprs |
| 314 | ldx [%o1 + %o5], %g1 | 313 | ldx [%o1 + %o5], %g1 |
| 315 | add %g6, TI_XFSR, %o1 | 314 | add %g6, TI_XFSR, %o1 |
| 316 | membar #StoreLoad | #LoadLoad | ||
| 317 | sll %o0, 8, %o2 | 315 | sll %o0, 8, %o2 |
| 318 | add %g6, TI_FPREGS, %o3 | 316 | add %g6, TI_FPREGS, %o3 |
| 319 | brz,pn %l6, 1f | 317 | brz,pn %l6, 1f |
| 320 | add %g6, TI_FPREGS+0x40, %o4 | 318 | add %g6, TI_FPREGS+0x40, %o4 |
| 321 | 319 | ||
| 320 | membar #Sync | ||
| 322 | ldda [%o3 + %o2] ASI_BLK_P, %f0 | 321 | ldda [%o3 + %o2] ASI_BLK_P, %f0 |
| 323 | ldda [%o4 + %o2] ASI_BLK_P, %f16 | 322 | ldda [%o4 + %o2] ASI_BLK_P, %f16 |
| 323 | membar #Sync | ||
| 324 | 1: andcc %l2, FPRS_DU, %g0 | 324 | 1: andcc %l2, FPRS_DU, %g0 |
| 325 | be,pn %icc, 1f | 325 | be,pn %icc, 1f |
| 326 | wr %g1, 0, %gsr | 326 | wr %g1, 0, %gsr |
| 327 | add %o2, 0x80, %o2 | 327 | add %o2, 0x80, %o2 |
| 328 | membar #Sync | ||
| 328 | ldda [%o3 + %o2] ASI_BLK_P, %f32 | 329 | ldda [%o3 + %o2] ASI_BLK_P, %f32 |
| 329 | ldda [%o4 + %o2] ASI_BLK_P, %f48 | 330 | ldda [%o4 + %o2] ASI_BLK_P, %f48 |
| 330 | |||
| 331 | 1: membar #Sync | 331 | 1: membar #Sync |
| 332 | ldx [%o1 + %o5], %fsr | 332 | ldx [%o1 + %o5], %fsr |
| 333 | 2: stb %l5, [%g6 + TI_FPDEPTH] | 333 | 2: stb %l5, [%g6 + TI_FPDEPTH] |
| 334 | ba,pt %xcc, rt_continue | 334 | ba,pt %xcc, rt_continue |
| 335 | nop | 335 | nop |
| 336 | 5: wr %g0, FPRS_FEF, %fprs | 336 | 5: wr %g0, FPRS_FEF, %fprs |
| 337 | membar #StoreLoad | #LoadLoad | ||
| 338 | sll %o0, 8, %o2 | 337 | sll %o0, 8, %o2 |
| 339 | 338 | ||
| 340 | add %g6, TI_FPREGS+0x80, %o3 | 339 | add %g6, TI_FPREGS+0x80, %o3 |
| 341 | add %g6, TI_FPREGS+0xc0, %o4 | 340 | add %g6, TI_FPREGS+0xc0, %o4 |
| 341 | membar #Sync | ||
| 342 | ldda [%o3 + %o2] ASI_BLK_P, %f32 | 342 | ldda [%o3 + %o2] ASI_BLK_P, %f32 |
| 343 | ldda [%o4 + %o2] ASI_BLK_P, %f48 | 343 | ldda [%o4 + %o2] ASI_BLK_P, %f48 |
| 344 | membar #Sync | 344 | membar #Sync |
| 345 | wr %g0, FPRS_DU, %fprs | 345 | wr %g0, FPRS_DU, %fprs |
| 346 | ba,pt %xcc, rt_continue | 346 | ba,pt %xcc, rt_continue |
| 347 | stb %l5, [%g6 + TI_FPDEPTH] | 347 | stb %l5, [%g6 + TI_FPDEPTH] |
| 348 | |||
| 349 | cplus_rinsn_1: | ||
| 350 | sethi %uhi(CTX_CHEETAH_PLUS_NUC), %l1 | ||
| 351 | |||
| 352 | .globl cheetah_plus_patch_rtrap | ||
| 353 | cheetah_plus_patch_rtrap: | ||
| 354 | /* We configure the dTLB512_0 for 4MB pages and the | ||
| 355 | * dTLB512_1 for 8K pages when in context zero. | ||
| 356 | */ | ||
| 357 | sethi %hi(cplus_rinsn_1), %o0 | ||
| 358 | sethi %hi(cplus_rtrap_insn_1), %o2 | ||
| 359 | lduw [%o0 + %lo(cplus_rinsn_1)], %o1 | ||
| 360 | or %o2, %lo(cplus_rtrap_insn_1), %o2 | ||
| 361 | stw %o1, [%o2] | ||
| 362 | flush %o2 | ||
| 363 | |||
| 364 | retl | ||
| 365 | nop | ||
diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c index 4c9c8f241748..c1f34237cdf2 100644 --- a/arch/sparc64/kernel/setup.c +++ b/arch/sparc64/kernel/setup.c | |||
| @@ -187,17 +187,13 @@ int prom_callback(long *args) | |||
| 187 | } | 187 | } |
| 188 | 188 | ||
| 189 | if ((va >= KERNBASE) && (va < (KERNBASE + (4 * 1024 * 1024)))) { | 189 | if ((va >= KERNBASE) && (va < (KERNBASE + (4 * 1024 * 1024)))) { |
| 190 | unsigned long kernel_pctx = 0; | 190 | extern unsigned long sparc64_kern_pri_context; |
| 191 | |||
| 192 | if (tlb_type == cheetah_plus) | ||
| 193 | kernel_pctx |= (CTX_CHEETAH_PLUS_NUC | | ||
| 194 | CTX_CHEETAH_PLUS_CTX0); | ||
| 195 | 191 | ||
| 196 | /* Spitfire Errata #32 workaround */ | 192 | /* Spitfire Errata #32 workaround */ |
| 197 | __asm__ __volatile__("stxa %0, [%1] %2\n\t" | 193 | __asm__ __volatile__("stxa %0, [%1] %2\n\t" |
| 198 | "flush %%g6" | 194 | "flush %%g6" |
| 199 | : /* No outputs */ | 195 | : /* No outputs */ |
| 200 | : "r" (kernel_pctx), | 196 | : "r" (sparc64_kern_pri_context), |
| 201 | "r" (PRIMARY_CONTEXT), | 197 | "r" (PRIMARY_CONTEXT), |
| 202 | "i" (ASI_DMMU)); | 198 | "i" (ASI_DMMU)); |
| 203 | 199 | ||
diff --git a/arch/sparc64/kernel/trampoline.S b/arch/sparc64/kernel/trampoline.S index 89f2fcfcd662..9478551cb020 100644 --- a/arch/sparc64/kernel/trampoline.S +++ b/arch/sparc64/kernel/trampoline.S | |||
| @@ -336,20 +336,13 @@ do_unlock: | |||
| 336 | call init_irqwork_curcpu | 336 | call init_irqwork_curcpu |
| 337 | nop | 337 | nop |
| 338 | 338 | ||
| 339 | BRANCH_IF_CHEETAH_PLUS_OR_FOLLOWON(g2,g3,1f) | 339 | /* Start using proper page size encodings in ctx register. */ |
| 340 | ba,pt %xcc, 2f | 340 | sethi %hi(sparc64_kern_pri_context), %g3 |
| 341 | nop | 341 | ldx [%g3 + %lo(sparc64_kern_pri_context)], %g2 |
| 342 | |||
| 343 | 1: /* Start using proper page size encodings in ctx register. */ | ||
| 344 | sethi %uhi(CTX_CHEETAH_PLUS_NUC), %g3 | ||
| 345 | mov PRIMARY_CONTEXT, %g1 | 342 | mov PRIMARY_CONTEXT, %g1 |
| 346 | sllx %g3, 32, %g3 | 343 | stxa %g2, [%g1] ASI_DMMU |
| 347 | sethi %hi(CTX_CHEETAH_PLUS_CTX0), %g2 | ||
| 348 | or %g3, %g2, %g3 | ||
| 349 | stxa %g3, [%g1] ASI_DMMU | ||
| 350 | membar #Sync | 344 | membar #Sync |
| 351 | 345 | ||
| 352 | 2: | ||
| 353 | rdpr %pstate, %o1 | 346 | rdpr %pstate, %o1 |
| 354 | or %o1, PSTATE_IE, %o1 | 347 | or %o1, PSTATE_IE, %o1 |
| 355 | wrpr %o1, 0, %pstate | 348 | wrpr %o1, 0, %pstate |
diff --git a/arch/sparc64/kernel/winfixup.S b/arch/sparc64/kernel/winfixup.S index 99c809a1e5ac..39160926267b 100644 --- a/arch/sparc64/kernel/winfixup.S +++ b/arch/sparc64/kernel/winfixup.S | |||
| @@ -16,23 +16,14 @@ | |||
| 16 | .text | 16 | .text |
| 17 | 17 | ||
| 18 | set_pcontext: | 18 | set_pcontext: |
| 19 | cplus_winfixup_insn_1: | 19 | sethi %hi(sparc64_kern_pri_context), %l1 |
| 20 | sethi %hi(0), %l1 | 20 | ldx [%l1 + %lo(sparc64_kern_pri_context)], %l1 |
| 21 | mov PRIMARY_CONTEXT, %g1 | 21 | mov PRIMARY_CONTEXT, %g1 |
| 22 | sllx %l1, 32, %l1 | ||
| 23 | cplus_winfixup_insn_2: | ||
| 24 | sethi %hi(0), %g2 | ||
| 25 | or %l1, %g2, %l1 | ||
| 26 | stxa %l1, [%g1] ASI_DMMU | 22 | stxa %l1, [%g1] ASI_DMMU |
| 27 | flush %g6 | 23 | flush %g6 |
| 28 | retl | 24 | retl |
| 29 | nop | 25 | nop |
| 30 | 26 | ||
| 31 | cplus_wfinsn_1: | ||
| 32 | sethi %uhi(CTX_CHEETAH_PLUS_NUC), %l1 | ||
| 33 | cplus_wfinsn_2: | ||
| 34 | sethi %hi(CTX_CHEETAH_PLUS_CTX0), %g2 | ||
| 35 | |||
| 36 | .align 32 | 27 | .align 32 |
| 37 | 28 | ||
| 38 | /* Here are the rules, pay attention. | 29 | /* Here are the rules, pay attention. |
| @@ -395,23 +386,3 @@ window_dax_from_user_common: | |||
| 395 | add %sp, PTREGS_OFF, %o0 | 386 | add %sp, PTREGS_OFF, %o0 |
| 396 | ba,pt %xcc, rtrap | 387 | ba,pt %xcc, rtrap |
| 397 | clr %l6 | 388 | clr %l6 |
| 398 | |||
| 399 | |||
| 400 | .globl cheetah_plus_patch_winfixup | ||
| 401 | cheetah_plus_patch_winfixup: | ||
| 402 | sethi %hi(cplus_wfinsn_1), %o0 | ||
| 403 | sethi %hi(cplus_winfixup_insn_1), %o2 | ||
| 404 | lduw [%o0 + %lo(cplus_wfinsn_1)], %o1 | ||
| 405 | or %o2, %lo(cplus_winfixup_insn_1), %o2 | ||
| 406 | stw %o1, [%o2] | ||
| 407 | flush %o2 | ||
| 408 | |||
| 409 | sethi %hi(cplus_wfinsn_2), %o0 | ||
| 410 | sethi %hi(cplus_winfixup_insn_2), %o2 | ||
| 411 | lduw [%o0 + %lo(cplus_wfinsn_2)], %o1 | ||
| 412 | or %o2, %lo(cplus_winfixup_insn_2), %o2 | ||
| 413 | stw %o1, [%o2] | ||
| 414 | flush %o2 | ||
| 415 | |||
| 416 | retl | ||
| 417 | nop | ||
diff --git a/arch/sparc64/lib/VISsave.S b/arch/sparc64/lib/VISsave.S index 4e18989bd602..a0ded5c5aa5c 100644 --- a/arch/sparc64/lib/VISsave.S +++ b/arch/sparc64/lib/VISsave.S | |||
| @@ -59,15 +59,17 @@ vis1: ldub [%g6 + TI_FPSAVED], %g3 | |||
| 59 | be,pn %icc, 9b | 59 | be,pn %icc, 9b |
| 60 | add %g6, TI_FPREGS, %g2 | 60 | add %g6, TI_FPREGS, %g2 |
| 61 | andcc %o5, FPRS_DL, %g0 | 61 | andcc %o5, FPRS_DL, %g0 |
| 62 | membar #StoreStore | #LoadStore | ||
| 63 | 62 | ||
| 64 | be,pn %icc, 4f | 63 | be,pn %icc, 4f |
| 65 | add %g6, TI_FPREGS+0x40, %g3 | 64 | add %g6, TI_FPREGS+0x40, %g3 |
| 65 | membar #Sync | ||
| 66 | stda %f0, [%g2 + %g1] ASI_BLK_P | 66 | stda %f0, [%g2 + %g1] ASI_BLK_P |
| 67 | stda %f16, [%g3 + %g1] ASI_BLK_P | 67 | stda %f16, [%g3 + %g1] ASI_BLK_P |
| 68 | membar #Sync | ||
| 68 | andcc %o5, FPRS_DU, %g0 | 69 | andcc %o5, FPRS_DU, %g0 |
| 69 | be,pn %icc, 5f | 70 | be,pn %icc, 5f |
| 70 | 4: add %g1, 128, %g1 | 71 | 4: add %g1, 128, %g1 |
| 72 | membar #Sync | ||
| 71 | stda %f32, [%g2 + %g1] ASI_BLK_P | 73 | stda %f32, [%g2 + %g1] ASI_BLK_P |
| 72 | 74 | ||
| 73 | stda %f48, [%g3 + %g1] ASI_BLK_P | 75 | stda %f48, [%g3 + %g1] ASI_BLK_P |
| @@ -87,7 +89,7 @@ vis1: ldub [%g6 + TI_FPSAVED], %g3 | |||
| 87 | sll %g1, 5, %g1 | 89 | sll %g1, 5, %g1 |
| 88 | add %g6, TI_FPREGS+0xc0, %g3 | 90 | add %g6, TI_FPREGS+0xc0, %g3 |
| 89 | wr %g0, FPRS_FEF, %fprs | 91 | wr %g0, FPRS_FEF, %fprs |
| 90 | membar #StoreStore | #LoadStore | 92 | membar #Sync |
| 91 | stda %f32, [%g2 + %g1] ASI_BLK_P | 93 | stda %f32, [%g2 + %g1] ASI_BLK_P |
| 92 | stda %f48, [%g3 + %g1] ASI_BLK_P | 94 | stda %f48, [%g3 + %g1] ASI_BLK_P |
| 93 | membar #Sync | 95 | membar #Sync |
| @@ -128,8 +130,8 @@ VISenterhalf: | |||
| 128 | be,pn %icc, 4f | 130 | be,pn %icc, 4f |
| 129 | add %g6, TI_FPREGS, %g2 | 131 | add %g6, TI_FPREGS, %g2 |
| 130 | 132 | ||
| 131 | membar #StoreStore | #LoadStore | ||
| 132 | add %g6, TI_FPREGS+0x40, %g3 | 133 | add %g6, TI_FPREGS+0x40, %g3 |
| 134 | membar #Sync | ||
| 133 | stda %f0, [%g2 + %g1] ASI_BLK_P | 135 | stda %f0, [%g2 + %g1] ASI_BLK_P |
| 134 | stda %f16, [%g3 + %g1] ASI_BLK_P | 136 | stda %f16, [%g3 + %g1] ASI_BLK_P |
| 135 | membar #Sync | 137 | membar #Sync |
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c index 5db50524f20d..1e44ee26cee8 100644 --- a/arch/sparc64/mm/init.c +++ b/arch/sparc64/mm/init.c | |||
| @@ -105,7 +105,7 @@ static void __init read_obp_memory(const char *property, | |||
| 105 | regs[i].phys_addr = base; | 105 | regs[i].phys_addr = base; |
| 106 | regs[i].reg_size = size; | 106 | regs[i].reg_size = size; |
| 107 | } | 107 | } |
| 108 | sort(regs, ents, sizeof(struct linux_prom64_registers), | 108 | sort(regs, ents, sizeof(struct linux_prom64_registers), |
| 109 | cmp_p64, NULL); | 109 | cmp_p64, NULL); |
| 110 | } | 110 | } |
| 111 | 111 | ||
| @@ -133,6 +133,12 @@ extern unsigned int sparc_ramdisk_size; | |||
| 133 | 133 | ||
| 134 | struct page *mem_map_zero __read_mostly; | 134 | struct page *mem_map_zero __read_mostly; |
| 135 | 135 | ||
| 136 | unsigned int sparc64_highest_unlocked_tlb_ent __read_mostly; | ||
| 137 | |||
| 138 | unsigned long sparc64_kern_pri_context __read_mostly; | ||
| 139 | unsigned long sparc64_kern_pri_nuc_bits __read_mostly; | ||
| 140 | unsigned long sparc64_kern_sec_context __read_mostly; | ||
| 141 | |||
| 136 | int bigkernel = 0; | 142 | int bigkernel = 0; |
| 137 | 143 | ||
| 138 | /* XXX Tune this... */ | 144 | /* XXX Tune this... */ |
| @@ -361,7 +367,11 @@ struct linux_prom_translation { | |||
| 361 | unsigned long size; | 367 | unsigned long size; |
| 362 | unsigned long data; | 368 | unsigned long data; |
| 363 | }; | 369 | }; |
| 364 | static struct linux_prom_translation prom_trans[512] __initdata; | 370 | |
| 371 | /* Exported for kernel TLB miss handling in ktlb.S */ | ||
| 372 | struct linux_prom_translation prom_trans[512] __read_mostly; | ||
| 373 | unsigned int prom_trans_ents __read_mostly; | ||
| 374 | unsigned int swapper_pgd_zero __read_mostly; | ||
| 365 | 375 | ||
| 366 | extern unsigned long prom_boot_page; | 376 | extern unsigned long prom_boot_page; |
| 367 | extern void prom_remap(unsigned long physpage, unsigned long virtpage, int mmu_ihandle); | 377 | extern void prom_remap(unsigned long physpage, unsigned long virtpage, int mmu_ihandle); |
| @@ -371,178 +381,57 @@ extern void register_prom_callbacks(void); | |||
| 371 | /* Exported for SMP bootup purposes. */ | 381 | /* Exported for SMP bootup purposes. */ |
| 372 | unsigned long kern_locked_tte_data; | 382 | unsigned long kern_locked_tte_data; |
| 373 | 383 | ||
| 374 | /* Exported for kernel TLB miss handling in ktlb.S */ | ||
| 375 | unsigned long prom_pmd_phys __read_mostly; | ||
| 376 | unsigned int swapper_pgd_zero __read_mostly; | ||
| 377 | |||
| 378 | /* Allocate power-of-2 aligned chunks from the end of the | ||
| 379 | * kernel image. Return physical address. | ||
| 380 | */ | ||
| 381 | static inline unsigned long early_alloc_phys(unsigned long size) | ||
| 382 | { | ||
| 383 | unsigned long base; | ||
| 384 | |||
| 385 | BUILD_BUG_ON(size & (size - 1)); | ||
| 386 | |||
| 387 | kern_size = (kern_size + (size - 1)) & ~(size - 1); | ||
| 388 | base = kern_base + kern_size; | ||
| 389 | kern_size += size; | ||
| 390 | |||
| 391 | return base; | ||
| 392 | } | ||
| 393 | |||
| 394 | static inline unsigned long load_phys32(unsigned long pa) | ||
| 395 | { | ||
| 396 | unsigned long val; | ||
| 397 | |||
| 398 | __asm__ __volatile__("lduwa [%1] %2, %0" | ||
| 399 | : "=&r" (val) | ||
| 400 | : "r" (pa), "i" (ASI_PHYS_USE_EC)); | ||
| 401 | |||
| 402 | return val; | ||
| 403 | } | ||
| 404 | |||
| 405 | static inline unsigned long load_phys64(unsigned long pa) | ||
| 406 | { | ||
| 407 | unsigned long val; | ||
| 408 | |||
| 409 | __asm__ __volatile__("ldxa [%1] %2, %0" | ||
| 410 | : "=&r" (val) | ||
| 411 | : "r" (pa), "i" (ASI_PHYS_USE_EC)); | ||
| 412 | |||
| 413 | return val; | ||
| 414 | } | ||
| 415 | |||
| 416 | static inline void store_phys32(unsigned long pa, unsigned long val) | ||
| 417 | { | ||
| 418 | __asm__ __volatile__("stwa %0, [%1] %2" | ||
| 419 | : /* no outputs */ | ||
| 420 | : "r" (val), "r" (pa), "i" (ASI_PHYS_USE_EC)); | ||
| 421 | } | ||
| 422 | |||
| 423 | static inline void store_phys64(unsigned long pa, unsigned long val) | ||
| 424 | { | ||
| 425 | __asm__ __volatile__("stxa %0, [%1] %2" | ||
| 426 | : /* no outputs */ | ||
| 427 | : "r" (val), "r" (pa), "i" (ASI_PHYS_USE_EC)); | ||
| 428 | } | ||
| 429 | |||
| 430 | #define BASE_PAGE_SIZE 8192 | ||
| 431 | |||
| 432 | /* | 384 | /* |
| 433 | * Translate PROM's mapping we capture at boot time into physical address. | 385 | * Translate PROM's mapping we capture at boot time into physical address. |
| 434 | * The second parameter is only set from prom_callback() invocations. | 386 | * The second parameter is only set from prom_callback() invocations. |
| 435 | */ | 387 | */ |
| 436 | unsigned long prom_virt_to_phys(unsigned long promva, int *error) | 388 | unsigned long prom_virt_to_phys(unsigned long promva, int *error) |
| 437 | { | 389 | { |
| 438 | unsigned long pmd_phys = (prom_pmd_phys + | 390 | int i; |
| 439 | ((promva >> 23) & 0x7ff) * sizeof(pmd_t)); | ||
| 440 | unsigned long pte_phys; | ||
| 441 | pmd_t pmd_ent; | ||
| 442 | pte_t pte_ent; | ||
| 443 | unsigned long base; | ||
| 444 | |||
| 445 | pmd_val(pmd_ent) = load_phys32(pmd_phys); | ||
| 446 | if (pmd_none(pmd_ent)) { | ||
| 447 | if (error) | ||
| 448 | *error = 1; | ||
| 449 | return 0; | ||
| 450 | } | ||
| 451 | 391 | ||
| 452 | pte_phys = (unsigned long)pmd_val(pmd_ent) << 11UL; | 392 | for (i = 0; i < prom_trans_ents; i++) { |
| 453 | pte_phys += ((promva >> 13) & 0x3ff) * sizeof(pte_t); | 393 | struct linux_prom_translation *p = &prom_trans[i]; |
| 454 | pte_val(pte_ent) = load_phys64(pte_phys); | 394 | |
| 455 | if (!pte_present(pte_ent)) { | 395 | if (promva >= p->virt && |
| 456 | if (error) | 396 | promva < (p->virt + p->size)) { |
| 457 | *error = 1; | 397 | unsigned long base = p->data & _PAGE_PADDR; |
| 458 | return 0; | 398 | |
| 459 | } | 399 | if (error) |
| 460 | if (error) { | 400 | *error = 0; |
| 461 | *error = 0; | 401 | return base + (promva & (8192 - 1)); |
| 462 | return pte_val(pte_ent); | 402 | } |
| 463 | } | 403 | } |
| 464 | base = pte_val(pte_ent) & _PAGE_PADDR; | 404 | if (error) |
| 465 | return (base + (promva & (BASE_PAGE_SIZE - 1))); | 405 | *error = 1; |
| 406 | return 0UL; | ||
| 466 | } | 407 | } |
| 467 | 408 | ||
| 468 | /* The obp translations are saved based on 8k pagesize, since obp can | 409 | /* The obp translations are saved based on 8k pagesize, since obp can |
| 469 | * use a mixture of pagesizes. Misses to the LOW_OBP_ADDRESS -> | 410 | * use a mixture of pagesizes. Misses to the LOW_OBP_ADDRESS -> |
| 470 | * HI_OBP_ADDRESS range are handled in entry.S and do not use the vpte | 411 | * HI_OBP_ADDRESS range are handled in ktlb.S and do not use the vpte |
| 471 | * scheme (also, see rant in inherit_locked_prom_mappings()). | 412 | * scheme (also, see rant in inherit_locked_prom_mappings()). |
| 472 | */ | 413 | */ |
| 473 | static void __init build_obp_range(unsigned long start, unsigned long end, unsigned long data) | ||
| 474 | { | ||
| 475 | unsigned long vaddr; | ||
| 476 | |||
| 477 | for (vaddr = start; vaddr < end; vaddr += BASE_PAGE_SIZE) { | ||
| 478 | unsigned long val, pte_phys, pmd_phys; | ||
| 479 | pmd_t pmd_ent; | ||
| 480 | int i; | ||
| 481 | |||
| 482 | pmd_phys = (prom_pmd_phys + | ||
| 483 | (((vaddr >> 23) & 0x7ff) * sizeof(pmd_t))); | ||
| 484 | pmd_val(pmd_ent) = load_phys32(pmd_phys); | ||
| 485 | if (pmd_none(pmd_ent)) { | ||
| 486 | pte_phys = early_alloc_phys(BASE_PAGE_SIZE); | ||
| 487 | |||
| 488 | for (i = 0; i < BASE_PAGE_SIZE / sizeof(pte_t); i++) | ||
| 489 | store_phys64(pte_phys+i*sizeof(pte_t),0); | ||
| 490 | |||
| 491 | pmd_val(pmd_ent) = pte_phys >> 11UL; | ||
| 492 | store_phys32(pmd_phys, pmd_val(pmd_ent)); | ||
| 493 | } | ||
| 494 | |||
| 495 | pte_phys = (unsigned long)pmd_val(pmd_ent) << 11UL; | ||
| 496 | pte_phys += (((vaddr >> 13) & 0x3ff) * sizeof(pte_t)); | ||
| 497 | |||
| 498 | val = data; | ||
| 499 | |||
| 500 | /* Clear diag TTE bits. */ | ||
| 501 | if (tlb_type == spitfire) | ||
| 502 | val &= ~0x0003fe0000000000UL; | ||
| 503 | |||
| 504 | store_phys64(pte_phys, val | _PAGE_MODIFIED); | ||
| 505 | |||
| 506 | data += BASE_PAGE_SIZE; | ||
| 507 | } | ||
| 508 | } | ||
| 509 | |||
| 510 | static inline int in_obp_range(unsigned long vaddr) | 414 | static inline int in_obp_range(unsigned long vaddr) |
| 511 | { | 415 | { |
| 512 | return (vaddr >= LOW_OBP_ADDRESS && | 416 | return (vaddr >= LOW_OBP_ADDRESS && |
| 513 | vaddr < HI_OBP_ADDRESS); | 417 | vaddr < HI_OBP_ADDRESS); |
| 514 | } | 418 | } |
| 515 | 419 | ||
| 516 | #define OBP_PMD_SIZE 2048 | 420 | static int cmp_ptrans(const void *a, const void *b) |
| 517 | static void __init build_obp_pgtable(int prom_trans_ents) | ||
| 518 | { | 421 | { |
| 519 | unsigned long i; | 422 | const struct linux_prom_translation *x = a, *y = b; |
| 520 | |||
| 521 | prom_pmd_phys = early_alloc_phys(OBP_PMD_SIZE); | ||
| 522 | for (i = 0; i < OBP_PMD_SIZE; i += 4) | ||
| 523 | store_phys32(prom_pmd_phys + i, 0); | ||
| 524 | 423 | ||
| 525 | for (i = 0; i < prom_trans_ents; i++) { | 424 | if (x->virt > y->virt) |
| 526 | unsigned long start, end; | 425 | return 1; |
| 527 | 426 | if (x->virt < y->virt) | |
| 528 | if (!in_obp_range(prom_trans[i].virt)) | 427 | return -1; |
| 529 | continue; | 428 | return 0; |
| 530 | |||
| 531 | start = prom_trans[i].virt; | ||
| 532 | end = start + prom_trans[i].size; | ||
| 533 | if (end > HI_OBP_ADDRESS) | ||
| 534 | end = HI_OBP_ADDRESS; | ||
| 535 | |||
| 536 | build_obp_range(start, end, prom_trans[i].data); | ||
| 537 | } | ||
| 538 | } | 429 | } |
| 539 | 430 | ||
| 540 | /* Read OBP translations property into 'prom_trans[]'. | 431 | /* Read OBP translations property into 'prom_trans[]'. */ |
| 541 | * Return the number of entries. | 432 | static void __init read_obp_translations(void) |
| 542 | */ | ||
| 543 | static int __init read_obp_translations(void) | ||
| 544 | { | 433 | { |
| 545 | int n, node; | 434 | int n, node, ents, first, last, i; |
| 546 | 435 | ||
| 547 | node = prom_finddevice("/virtual-memory"); | 436 | node = prom_finddevice("/virtual-memory"); |
| 548 | n = prom_getproplen(node, "translations"); | 437 | n = prom_getproplen(node, "translations"); |
| @@ -561,8 +450,44 @@ static int __init read_obp_translations(void) | |||
| 561 | prom_printf("prom_mappings: Couldn't get property.\n"); | 450 | prom_printf("prom_mappings: Couldn't get property.\n"); |
| 562 | prom_halt(); | 451 | prom_halt(); |
| 563 | } | 452 | } |
| 453 | |||
| 564 | n = n / sizeof(struct linux_prom_translation); | 454 | n = n / sizeof(struct linux_prom_translation); |
| 565 | return n; | 455 | |
| 456 | ents = n; | ||
| 457 | |||
| 458 | sort(prom_trans, ents, sizeof(struct linux_prom_translation), | ||
| 459 | cmp_ptrans, NULL); | ||
| 460 | |||
| 461 | /* Now kick out all the non-OBP entries. */ | ||
| 462 | for (i = 0; i < ents; i++) { | ||
| 463 | if (in_obp_range(prom_trans[i].virt)) | ||
| 464 | break; | ||
| 465 | } | ||
| 466 | first = i; | ||
| 467 | for (; i < ents; i++) { | ||
| 468 | if (!in_obp_range(prom_trans[i].virt)) | ||
| 469 | break; | ||
| 470 | } | ||
| 471 | last = i; | ||
| 472 | |||
| 473 | for (i = 0; i < (last - first); i++) { | ||
| 474 | struct linux_prom_translation *src = &prom_trans[i + first]; | ||
| 475 | struct linux_prom_translation *dest = &prom_trans[i]; | ||
| 476 | |||
| 477 | *dest = *src; | ||
| 478 | } | ||
| 479 | for (; i < ents; i++) { | ||
| 480 | struct linux_prom_translation *dest = &prom_trans[i]; | ||
| 481 | dest->virt = dest->size = dest->data = 0x0UL; | ||
| 482 | } | ||
| 483 | |||
| 484 | prom_trans_ents = last - first; | ||
| 485 | |||
| 486 | if (tlb_type == spitfire) { | ||
| 487 | /* Clear diag TTE bits. */ | ||
| 488 | for (i = 0; i < prom_trans_ents; i++) | ||
| 489 | prom_trans[i].data &= ~0x0003fe0000000000UL; | ||
| 490 | } | ||
| 566 | } | 491 | } |
| 567 | 492 | ||
| 568 | static void __init remap_kernel(void) | 493 | static void __init remap_kernel(void) |
| @@ -582,29 +507,36 @@ static void __init remap_kernel(void) | |||
| 582 | prom_dtlb_load(tlb_ent, tte_data, tte_vaddr); | 507 | prom_dtlb_load(tlb_ent, tte_data, tte_vaddr); |
| 583 | prom_itlb_load(tlb_ent, tte_data, tte_vaddr); | 508 | prom_itlb_load(tlb_ent, tte_data, tte_vaddr); |
| 584 | if (bigkernel) { | 509 | if (bigkernel) { |
| 585 | prom_dtlb_load(tlb_ent - 1, | 510 | tlb_ent -= 1; |
| 511 | prom_dtlb_load(tlb_ent, | ||
| 586 | tte_data + 0x400000, | 512 | tte_data + 0x400000, |
| 587 | tte_vaddr + 0x400000); | 513 | tte_vaddr + 0x400000); |
| 588 | prom_itlb_load(tlb_ent - 1, | 514 | prom_itlb_load(tlb_ent, |
| 589 | tte_data + 0x400000, | 515 | tte_data + 0x400000, |
| 590 | tte_vaddr + 0x400000); | 516 | tte_vaddr + 0x400000); |
| 591 | } | 517 | } |
| 518 | sparc64_highest_unlocked_tlb_ent = tlb_ent - 1; | ||
| 519 | if (tlb_type == cheetah_plus) { | ||
| 520 | sparc64_kern_pri_context = (CTX_CHEETAH_PLUS_CTX0 | | ||
| 521 | CTX_CHEETAH_PLUS_NUC); | ||
| 522 | sparc64_kern_pri_nuc_bits = CTX_CHEETAH_PLUS_NUC; | ||
| 523 | sparc64_kern_sec_context = CTX_CHEETAH_PLUS_CTX0; | ||
| 524 | } | ||
| 592 | } | 525 | } |
| 593 | 526 | ||
| 527 | |||
| 594 | static void __init inherit_prom_mappings(void) | 528 | static void __init inherit_prom_mappings(void) |
| 595 | { | 529 | { |
| 596 | int n; | 530 | read_obp_translations(); |
| 597 | |||
| 598 | n = read_obp_translations(); | ||
| 599 | build_obp_pgtable(n); | ||
| 600 | 531 | ||
| 601 | /* Now fixup OBP's idea about where we really are mapped. */ | 532 | /* Now fixup OBP's idea about where we really are mapped. */ |
| 602 | prom_printf("Remapping the kernel... "); | 533 | prom_printf("Remapping the kernel... "); |
| 603 | remap_kernel(); | 534 | remap_kernel(); |
| 604 | |||
| 605 | prom_printf("done.\n"); | 535 | prom_printf("done.\n"); |
| 606 | 536 | ||
| 537 | prom_printf("Registering callbacks... "); | ||
| 607 | register_prom_callbacks(); | 538 | register_prom_callbacks(); |
| 539 | prom_printf("done.\n"); | ||
| 608 | } | 540 | } |
| 609 | 541 | ||
| 610 | /* The OBP specifications for sun4u mark 0xfffffffc00000000 and | 542 | /* The OBP specifications for sun4u mark 0xfffffffc00000000 and |
| @@ -788,8 +720,8 @@ void inherit_locked_prom_mappings(int save_p) | |||
| 788 | } | 720 | } |
| 789 | } | 721 | } |
| 790 | if (tlb_type == spitfire) { | 722 | if (tlb_type == spitfire) { |
| 791 | int high = SPITFIRE_HIGHEST_LOCKED_TLBENT - bigkernel; | 723 | int high = sparc64_highest_unlocked_tlb_ent; |
| 792 | for (i = 0; i < high; i++) { | 724 | for (i = 0; i <= high; i++) { |
| 793 | unsigned long data; | 725 | unsigned long data; |
| 794 | 726 | ||
| 795 | /* Spitfire Errata #32 workaround */ | 727 | /* Spitfire Errata #32 workaround */ |
| @@ -877,9 +809,9 @@ void inherit_locked_prom_mappings(int save_p) | |||
| 877 | } | 809 | } |
| 878 | } | 810 | } |
| 879 | } else if (tlb_type == cheetah || tlb_type == cheetah_plus) { | 811 | } else if (tlb_type == cheetah || tlb_type == cheetah_plus) { |
| 880 | int high = CHEETAH_HIGHEST_LOCKED_TLBENT - bigkernel; | 812 | int high = sparc64_highest_unlocked_tlb_ent; |
| 881 | 813 | ||
| 882 | for (i = 0; i < high; i++) { | 814 | for (i = 0; i <= high; i++) { |
| 883 | unsigned long data; | 815 | unsigned long data; |
| 884 | 816 | ||
| 885 | data = cheetah_get_ldtlb_data(i); | 817 | data = cheetah_get_ldtlb_data(i); |
| @@ -1556,7 +1488,6 @@ void __init paging_init(void) | |||
| 1556 | 1488 | ||
| 1557 | swapper_pgd_zero = pgd_val(swapper_pg_dir[0]); | 1489 | swapper_pgd_zero = pgd_val(swapper_pg_dir[0]); |
| 1558 | 1490 | ||
| 1559 | /* Inherit non-locked OBP mappings. */ | ||
| 1560 | inherit_prom_mappings(); | 1491 | inherit_prom_mappings(); |
| 1561 | 1492 | ||
| 1562 | /* Ok, we can use our TLB miss and window trap handlers safely. | 1493 | /* Ok, we can use our TLB miss and window trap handlers safely. |
diff --git a/arch/um/Makefile b/arch/um/Makefile index 7af37e342e33..e1ffad224605 100644 --- a/arch/um/Makefile +++ b/arch/um/Makefile | |||
| @@ -152,7 +152,7 @@ archclean: | |||
| 152 | $(SYMLINK_HEADERS): | 152 | $(SYMLINK_HEADERS): |
| 153 | @echo ' SYMLINK $@' | 153 | @echo ' SYMLINK $@' |
| 154 | ifneq ($(KBUILD_SRC),) | 154 | ifneq ($(KBUILD_SRC),) |
| 155 | ln -fsn $(srctree)/include/asm-um/$(basename $(notdir $@))-$(SUBARCH)$(suffix $@) $@ | 155 | $(Q)ln -fsn $(srctree)/include/asm-um/$(basename $(notdir $@))-$(SUBARCH)$(suffix $@) $@ |
| 156 | else | 156 | else |
| 157 | $(Q)cd $(TOPDIR)/$(dir $@) ; \ | 157 | $(Q)cd $(TOPDIR)/$(dir $@) ; \ |
| 158 | ln -sf $(basename $(notdir $@))-$(SUBARCH)$(suffix $@) $(notdir $@) | 158 | ln -sf $(basename $(notdir $@))-$(SUBARCH)$(suffix $@) $(notdir $@) |
diff --git a/arch/um/drivers/Makefile b/arch/um/drivers/Makefile index 783e18cae090..de17d4c6e02d 100644 --- a/arch/um/drivers/Makefile +++ b/arch/um/drivers/Makefile | |||
| @@ -13,7 +13,7 @@ mcast-objs := mcast_kern.o mcast_user.o | |||
| 13 | net-objs := net_kern.o net_user.o | 13 | net-objs := net_kern.o net_user.o |
| 14 | mconsole-objs := mconsole_kern.o mconsole_user.o | 14 | mconsole-objs := mconsole_kern.o mconsole_user.o |
| 15 | hostaudio-objs := hostaudio_kern.o | 15 | hostaudio-objs := hostaudio_kern.o |
| 16 | ubd-objs := ubd_kern.o | 16 | ubd-objs := ubd_kern.o ubd_user.o |
| 17 | port-objs := port_kern.o port_user.o | 17 | port-objs := port_kern.o port_user.o |
| 18 | harddog-objs := harddog_kern.o harddog_user.o | 18 | harddog-objs := harddog_kern.o harddog_user.o |
| 19 | 19 | ||
diff --git a/arch/um/drivers/cow.h b/arch/um/drivers/cow.h index 4fcf3a8d13f4..dc36b222100b 100644 --- a/arch/um/drivers/cow.h +++ b/arch/um/drivers/cow.h | |||
| @@ -3,15 +3,40 @@ | |||
| 3 | 3 | ||
| 4 | #include <asm/types.h> | 4 | #include <asm/types.h> |
| 5 | 5 | ||
| 6 | #if defined(__BIG_ENDIAN) | 6 | #if defined(__KERNEL__) |
| 7 | # define ntohll(x) (x) | 7 | |
| 8 | # define htonll(x) (x) | 8 | # include <asm/byteorder.h> |
| 9 | #elif defined(__LITTLE_ENDIAN) | 9 | |
| 10 | # define ntohll(x) bswap_64(x) | 10 | # if defined(__BIG_ENDIAN) |
| 11 | # define htonll(x) bswap_64(x) | 11 | # define ntohll(x) (x) |
| 12 | # define htonll(x) (x) | ||
| 13 | # elif defined(__LITTLE_ENDIAN) | ||
| 14 | # define ntohll(x) be64_to_cpu(x) | ||
| 15 | # define htonll(x) cpu_to_be64(x) | ||
| 16 | # else | ||
| 17 | # error "Could not determine byte order" | ||
| 18 | # endif | ||
| 19 | |||
| 12 | #else | 20 | #else |
| 13 | #error "__BYTE_ORDER not defined" | 21 | /* For the definition of ntohl, htonl and __BYTE_ORDER */ |
| 22 | #include <endian.h> | ||
| 23 | #include <netinet/in.h> | ||
| 24 | #if defined(__BYTE_ORDER) | ||
| 25 | |||
| 26 | # if __BYTE_ORDER == __BIG_ENDIAN | ||
| 27 | # define ntohll(x) (x) | ||
| 28 | # define htonll(x) (x) | ||
| 29 | # elif __BYTE_ORDER == __LITTLE_ENDIAN | ||
| 30 | # define ntohll(x) bswap_64(x) | ||
| 31 | # define htonll(x) bswap_64(x) | ||
| 32 | # else | ||
| 33 | # error "Could not determine byte order: __BYTE_ORDER uncorrectly defined" | ||
| 34 | # endif | ||
| 35 | |||
| 36 | #else /* ! defined(__BYTE_ORDER) */ | ||
| 37 | # error "Could not determine byte order: __BYTE_ORDER not defined" | ||
| 14 | #endif | 38 | #endif |
| 39 | #endif /* ! defined(__KERNEL__) */ | ||
| 15 | 40 | ||
| 16 | extern int init_cow_file(int fd, char *cow_file, char *backing_file, | 41 | extern int init_cow_file(int fd, char *cow_file, char *backing_file, |
| 17 | int sectorsize, int alignment, int *bitmap_offset_out, | 42 | int sectorsize, int alignment, int *bitmap_offset_out, |
diff --git a/arch/um/drivers/cow_user.c b/arch/um/drivers/cow_user.c index a8ce6fc3ef26..fbe2217db5dd 100644 --- a/arch/um/drivers/cow_user.c +++ b/arch/um/drivers/cow_user.c | |||
| @@ -9,7 +9,6 @@ | |||
| 9 | #include <sys/time.h> | 9 | #include <sys/time.h> |
| 10 | #include <sys/param.h> | 10 | #include <sys/param.h> |
| 11 | #include <sys/user.h> | 11 | #include <sys/user.h> |
| 12 | #include <netinet/in.h> | ||
| 13 | 12 | ||
| 14 | #include "os.h" | 13 | #include "os.h" |
| 15 | 14 | ||
diff --git a/arch/um/drivers/ubd_kern.c b/arch/um/drivers/ubd_kern.c index e77a38da4350..f73134333f64 100644 --- a/arch/um/drivers/ubd_kern.c +++ b/arch/um/drivers/ubd_kern.c | |||
| @@ -35,7 +35,6 @@ | |||
| 35 | #include "linux/blkpg.h" | 35 | #include "linux/blkpg.h" |
| 36 | #include "linux/genhd.h" | 36 | #include "linux/genhd.h" |
| 37 | #include "linux/spinlock.h" | 37 | #include "linux/spinlock.h" |
| 38 | #include "asm/atomic.h" | ||
| 39 | #include "asm/segment.h" | 38 | #include "asm/segment.h" |
| 40 | #include "asm/uaccess.h" | 39 | #include "asm/uaccess.h" |
| 41 | #include "asm/irq.h" | 40 | #include "asm/irq.h" |
| @@ -54,21 +53,20 @@ | |||
| 54 | #include "mem.h" | 53 | #include "mem.h" |
| 55 | #include "mem_kern.h" | 54 | #include "mem_kern.h" |
| 56 | #include "cow.h" | 55 | #include "cow.h" |
| 57 | #include "aio.h" | ||
| 58 | 56 | ||
| 59 | enum ubd_req { UBD_READ, UBD_WRITE }; | 57 | enum ubd_req { UBD_READ, UBD_WRITE }; |
| 60 | 58 | ||
| 61 | struct io_thread_req { | 59 | struct io_thread_req { |
| 62 | enum aio_type op; | 60 | enum ubd_req op; |
| 63 | int fds[2]; | 61 | int fds[2]; |
| 64 | unsigned long offsets[2]; | 62 | unsigned long offsets[2]; |
| 65 | unsigned long long offset; | 63 | unsigned long long offset; |
| 66 | unsigned long length; | 64 | unsigned long length; |
| 67 | char *buffer; | 65 | char *buffer; |
| 68 | int sectorsize; | 66 | int sectorsize; |
| 69 | int bitmap_offset; | 67 | unsigned long sector_mask; |
| 70 | long bitmap_start; | 68 | unsigned long long cow_offset; |
| 71 | long bitmap_end; | 69 | unsigned long bitmap_words[2]; |
| 72 | int error; | 70 | int error; |
| 73 | }; | 71 | }; |
| 74 | 72 | ||
| @@ -82,31 +80,28 @@ extern int create_cow_file(char *cow_file, char *backing_file, | |||
| 82 | unsigned long *bitmap_len_out, | 80 | unsigned long *bitmap_len_out, |
| 83 | int *data_offset_out); | 81 | int *data_offset_out); |
| 84 | extern int read_cow_bitmap(int fd, void *buf, int offset, int len); | 82 | extern int read_cow_bitmap(int fd, void *buf, int offset, int len); |
| 85 | extern void do_io(struct io_thread_req *req, struct request *r, | 83 | extern void do_io(struct io_thread_req *req); |
| 86 | unsigned long *bitmap); | ||
| 87 | 84 | ||
| 88 | static inline int ubd_test_bit(__u64 bit, void *data) | 85 | static inline int ubd_test_bit(__u64 bit, unsigned char *data) |
| 89 | { | 86 | { |
| 90 | unsigned char *buffer = data; | ||
| 91 | __u64 n; | 87 | __u64 n; |
| 92 | int bits, off; | 88 | int bits, off; |
| 93 | 89 | ||
| 94 | bits = sizeof(buffer[0]) * 8; | 90 | bits = sizeof(data[0]) * 8; |
| 95 | n = bit / bits; | 91 | n = bit / bits; |
| 96 | off = bit % bits; | 92 | off = bit % bits; |
| 97 | return((buffer[n] & (1 << off)) != 0); | 93 | return((data[n] & (1 << off)) != 0); |
| 98 | } | 94 | } |
| 99 | 95 | ||
| 100 | static inline void ubd_set_bit(__u64 bit, void *data) | 96 | static inline void ubd_set_bit(__u64 bit, unsigned char *data) |
| 101 | { | 97 | { |
| 102 | unsigned char *buffer = data; | ||
| 103 | __u64 n; | 98 | __u64 n; |
| 104 | int bits, off; | 99 | int bits, off; |
| 105 | 100 | ||
| 106 | bits = sizeof(buffer[0]) * 8; | 101 | bits = sizeof(data[0]) * 8; |
| 107 | n = bit / bits; | 102 | n = bit / bits; |
| 108 | off = bit % bits; | 103 | off = bit % bits; |
| 109 | buffer[n] |= (1 << off); | 104 | data[n] |= (1 << off); |
| 110 | } | 105 | } |
| 111 | /*End stuff from ubd_user.h*/ | 106 | /*End stuff from ubd_user.h*/ |
| 112 | 107 | ||
| @@ -115,6 +110,8 @@ static inline void ubd_set_bit(__u64 bit, void *data) | |||
| 115 | static DEFINE_SPINLOCK(ubd_io_lock); | 110 | static DEFINE_SPINLOCK(ubd_io_lock); |
| 116 | static DEFINE_SPINLOCK(ubd_lock); | 111 | static DEFINE_SPINLOCK(ubd_lock); |
| 117 | 112 | ||
| 113 | static void (*do_ubd)(void); | ||
| 114 | |||
| 118 | static int ubd_open(struct inode * inode, struct file * filp); | 115 | static int ubd_open(struct inode * inode, struct file * filp); |
| 119 | static int ubd_release(struct inode * inode, struct file * file); | 116 | static int ubd_release(struct inode * inode, struct file * file); |
| 120 | static int ubd_ioctl(struct inode * inode, struct file * file, | 117 | static int ubd_ioctl(struct inode * inode, struct file * file, |
| @@ -161,8 +158,6 @@ struct cow { | |||
| 161 | int data_offset; | 158 | int data_offset; |
| 162 | }; | 159 | }; |
| 163 | 160 | ||
| 164 | #define MAX_SG 64 | ||
| 165 | |||
| 166 | struct ubd { | 161 | struct ubd { |
| 167 | char *file; | 162 | char *file; |
| 168 | int count; | 163 | int count; |
| @@ -173,7 +168,6 @@ struct ubd { | |||
| 173 | int no_cow; | 168 | int no_cow; |
| 174 | struct cow cow; | 169 | struct cow cow; |
| 175 | struct platform_device pdev; | 170 | struct platform_device pdev; |
| 176 | struct scatterlist sg[MAX_SG]; | ||
| 177 | }; | 171 | }; |
| 178 | 172 | ||
| 179 | #define DEFAULT_COW { \ | 173 | #define DEFAULT_COW { \ |
| @@ -466,114 +460,81 @@ __uml_help(fakehd, | |||
| 466 | ); | 460 | ); |
| 467 | 461 | ||
| 468 | static void do_ubd_request(request_queue_t * q); | 462 | static void do_ubd_request(request_queue_t * q); |
| 469 | static int in_ubd; | 463 | |
| 464 | /* Only changed by ubd_init, which is an initcall. */ | ||
| 465 | int thread_fd = -1; | ||
| 470 | 466 | ||
| 471 | /* Changed by ubd_handler, which is serialized because interrupts only | 467 | /* Changed by ubd_handler, which is serialized because interrupts only |
| 472 | * happen on CPU 0. | 468 | * happen on CPU 0. |
| 473 | */ | 469 | */ |
| 474 | int intr_count = 0; | 470 | int intr_count = 0; |
| 475 | 471 | ||
| 476 | static void ubd_end_request(struct request *req, int bytes, int uptodate) | 472 | /* call ubd_finish if you need to serialize */ |
| 473 | static void __ubd_finish(struct request *req, int error) | ||
| 477 | { | 474 | { |
| 478 | if (!end_that_request_first(req, uptodate, bytes >> 9)) { | 475 | int nsect; |
| 479 | add_disk_randomness(req->rq_disk); | 476 | |
| 480 | end_that_request_last(req); | 477 | if(error){ |
| 478 | end_request(req, 0); | ||
| 479 | return; | ||
| 481 | } | 480 | } |
| 481 | nsect = req->current_nr_sectors; | ||
| 482 | req->sector += nsect; | ||
| 483 | req->buffer += nsect << 9; | ||
| 484 | req->errors = 0; | ||
| 485 | req->nr_sectors -= nsect; | ||
| 486 | req->current_nr_sectors = 0; | ||
| 487 | end_request(req, 1); | ||
| 482 | } | 488 | } |
| 483 | 489 | ||
| 484 | /* call ubd_finish if you need to serialize */ | 490 | static inline void ubd_finish(struct request *req, int error) |
| 485 | static void __ubd_finish(struct request *req, int bytes) | ||
| 486 | { | 491 | { |
| 487 | if(bytes < 0){ | 492 | spin_lock(&ubd_io_lock); |
| 488 | ubd_end_request(req, 0, 0); | 493 | __ubd_finish(req, error); |
| 489 | return; | 494 | spin_unlock(&ubd_io_lock); |
| 490 | } | ||
| 491 | |||
| 492 | ubd_end_request(req, bytes, 1); | ||
| 493 | } | 495 | } |
| 494 | 496 | ||
| 495 | static inline void ubd_finish(struct request *req, int bytes) | 497 | /* Called without ubd_io_lock held */ |
| 498 | static void ubd_handler(void) | ||
| 496 | { | 499 | { |
| 497 | spin_lock(&ubd_io_lock); | 500 | struct io_thread_req req; |
| 498 | __ubd_finish(req, bytes); | 501 | struct request *rq = elv_next_request(ubd_queue); |
| 499 | spin_unlock(&ubd_io_lock); | 502 | int n; |
| 503 | |||
| 504 | do_ubd = NULL; | ||
| 505 | intr_count++; | ||
| 506 | n = os_read_file(thread_fd, &req, sizeof(req)); | ||
| 507 | if(n != sizeof(req)){ | ||
| 508 | printk(KERN_ERR "Pid %d - spurious interrupt in ubd_handler, " | ||
| 509 | "err = %d\n", os_getpid(), -n); | ||
| 510 | spin_lock(&ubd_io_lock); | ||
| 511 | end_request(rq, 0); | ||
| 512 | spin_unlock(&ubd_io_lock); | ||
| 513 | return; | ||
| 514 | } | ||
| 515 | |||
| 516 | ubd_finish(rq, req.error); | ||
| 517 | reactivate_fd(thread_fd, UBD_IRQ); | ||
| 518 | do_ubd_request(ubd_queue); | ||
| 500 | } | 519 | } |
| 501 | 520 | ||
| 502 | struct bitmap_io { | ||
| 503 | atomic_t count; | ||
| 504 | struct aio_context aio; | ||
| 505 | }; | ||
| 506 | |||
| 507 | struct ubd_aio { | ||
| 508 | struct aio_context aio; | ||
| 509 | struct request *req; | ||
| 510 | int len; | ||
| 511 | struct bitmap_io *bitmap; | ||
| 512 | void *bitmap_buf; | ||
| 513 | }; | ||
| 514 | |||
| 515 | static int ubd_reply_fd = -1; | ||
| 516 | |||
| 517 | static irqreturn_t ubd_intr(int irq, void *dev, struct pt_regs *unused) | 521 | static irqreturn_t ubd_intr(int irq, void *dev, struct pt_regs *unused) |
| 518 | { | 522 | { |
| 519 | struct aio_thread_reply reply; | 523 | ubd_handler(); |
| 520 | struct ubd_aio *aio; | 524 | return(IRQ_HANDLED); |
| 521 | struct request *req; | 525 | } |
| 522 | int err, n, fd = (int) (long) dev; | ||
| 523 | |||
| 524 | while(1){ | ||
| 525 | err = os_read_file(fd, &reply, sizeof(reply)); | ||
| 526 | if(err == -EAGAIN) | ||
| 527 | break; | ||
| 528 | if(err < 0){ | ||
| 529 | printk("ubd_aio_handler - read returned err %d\n", | ||
| 530 | -err); | ||
| 531 | break; | ||
| 532 | } | ||
| 533 | |||
| 534 | aio = container_of(reply.data, struct ubd_aio, aio); | ||
| 535 | n = reply.err; | ||
| 536 | |||
| 537 | if(n == 0){ | ||
| 538 | req = aio->req; | ||
| 539 | req->nr_sectors -= aio->len >> 9; | ||
| 540 | |||
| 541 | if((aio->bitmap != NULL) && | ||
| 542 | (atomic_dec_and_test(&aio->bitmap->count))){ | ||
| 543 | aio->aio = aio->bitmap->aio; | ||
| 544 | aio->len = 0; | ||
| 545 | kfree(aio->bitmap); | ||
| 546 | aio->bitmap = NULL; | ||
| 547 | submit_aio(&aio->aio); | ||
| 548 | } | ||
| 549 | else { | ||
| 550 | if((req->nr_sectors == 0) && | ||
| 551 | (aio->bitmap == NULL)){ | ||
| 552 | int len = req->hard_nr_sectors << 9; | ||
| 553 | ubd_finish(req, len); | ||
| 554 | } | ||
| 555 | |||
| 556 | if(aio->bitmap_buf != NULL) | ||
| 557 | kfree(aio->bitmap_buf); | ||
| 558 | kfree(aio); | ||
| 559 | } | ||
| 560 | } | ||
| 561 | else if(n < 0){ | ||
| 562 | ubd_finish(aio->req, n); | ||
| 563 | if(aio->bitmap != NULL) | ||
| 564 | kfree(aio->bitmap); | ||
| 565 | if(aio->bitmap_buf != NULL) | ||
| 566 | kfree(aio->bitmap_buf); | ||
| 567 | kfree(aio); | ||
| 568 | } | ||
| 569 | } | ||
| 570 | reactivate_fd(fd, UBD_IRQ); | ||
| 571 | 526 | ||
| 572 | do_ubd_request(ubd_queue); | 527 | /* Only changed by ubd_init, which is an initcall. */ |
| 528 | static int io_pid = -1; | ||
| 573 | 529 | ||
| 574 | return(IRQ_HANDLED); | 530 | void kill_io_thread(void) |
| 531 | { | ||
| 532 | if(io_pid != -1) | ||
| 533 | os_kill_process(io_pid, 1); | ||
| 575 | } | 534 | } |
| 576 | 535 | ||
| 536 | __uml_exitcall(kill_io_thread); | ||
| 537 | |||
| 577 | static int ubd_file_size(struct ubd *dev, __u64 *size_out) | 538 | static int ubd_file_size(struct ubd *dev, __u64 *size_out) |
| 578 | { | 539 | { |
| 579 | char *file; | 540 | char *file; |
| @@ -608,7 +569,7 @@ static int ubd_open_dev(struct ubd *dev) | |||
| 608 | &dev->cow.data_offset, create_ptr); | 569 | &dev->cow.data_offset, create_ptr); |
| 609 | 570 | ||
| 610 | if((dev->fd == -ENOENT) && create_cow){ | 571 | if((dev->fd == -ENOENT) && create_cow){ |
| 611 | dev->fd = create_cow_file(dev->file, dev->cow.file, | 572 | dev->fd = create_cow_file(dev->file, dev->cow.file, |
| 612 | dev->openflags, 1 << 9, PAGE_SIZE, | 573 | dev->openflags, 1 << 9, PAGE_SIZE, |
| 613 | &dev->cow.bitmap_offset, | 574 | &dev->cow.bitmap_offset, |
| 614 | &dev->cow.bitmap_len, | 575 | &dev->cow.bitmap_len, |
| @@ -870,10 +831,6 @@ int ubd_init(void) | |||
| 870 | { | 831 | { |
| 871 | int i; | 832 | int i; |
| 872 | 833 | ||
| 873 | ubd_reply_fd = init_aio_irq(UBD_IRQ, "ubd", ubd_intr); | ||
| 874 | if(ubd_reply_fd < 0) | ||
| 875 | printk("Setting up ubd AIO failed, err = %d\n", ubd_reply_fd); | ||
| 876 | |||
| 877 | devfs_mk_dir("ubd"); | 834 | devfs_mk_dir("ubd"); |
| 878 | if (register_blkdev(MAJOR_NR, "ubd")) | 835 | if (register_blkdev(MAJOR_NR, "ubd")) |
| 879 | return -1; | 836 | return -1; |
| @@ -884,7 +841,6 @@ int ubd_init(void) | |||
| 884 | return -1; | 841 | return -1; |
| 885 | } | 842 | } |
| 886 | 843 | ||
| 887 | blk_queue_max_hw_segments(ubd_queue, MAX_SG); | ||
| 888 | if (fake_major != MAJOR_NR) { | 844 | if (fake_major != MAJOR_NR) { |
| 889 | char name[sizeof("ubd_nnn\0")]; | 845 | char name[sizeof("ubd_nnn\0")]; |
| 890 | 846 | ||
| @@ -896,12 +852,40 @@ int ubd_init(void) | |||
| 896 | driver_register(&ubd_driver); | 852 | driver_register(&ubd_driver); |
| 897 | for (i = 0; i < MAX_DEV; i++) | 853 | for (i = 0; i < MAX_DEV; i++) |
| 898 | ubd_add(i); | 854 | ubd_add(i); |
| 899 | |||
| 900 | return 0; | 855 | return 0; |
| 901 | } | 856 | } |
| 902 | 857 | ||
| 903 | late_initcall(ubd_init); | 858 | late_initcall(ubd_init); |
| 904 | 859 | ||
| 860 | int ubd_driver_init(void){ | ||
| 861 | unsigned long stack; | ||
| 862 | int err; | ||
| 863 | |||
| 864 | /* Set by CONFIG_BLK_DEV_UBD_SYNC or ubd=sync.*/ | ||
| 865 | if(global_openflags.s){ | ||
| 866 | printk(KERN_INFO "ubd: Synchronous mode\n"); | ||
| 867 | /* Letting ubd=sync be like using ubd#s= instead of ubd#= is | ||
| 868 | * enough. So use anyway the io thread. */ | ||
| 869 | } | ||
| 870 | stack = alloc_stack(0, 0); | ||
| 871 | io_pid = start_io_thread(stack + PAGE_SIZE - sizeof(void *), | ||
| 872 | &thread_fd); | ||
| 873 | if(io_pid < 0){ | ||
| 874 | printk(KERN_ERR | ||
| 875 | "ubd : Failed to start I/O thread (errno = %d) - " | ||
| 876 | "falling back to synchronous I/O\n", -io_pid); | ||
| 877 | io_pid = -1; | ||
| 878 | return(0); | ||
| 879 | } | ||
| 880 | err = um_request_irq(UBD_IRQ, thread_fd, IRQ_READ, ubd_intr, | ||
| 881 | SA_INTERRUPT, "ubd", ubd_dev); | ||
| 882 | if(err != 0) | ||
| 883 | printk(KERN_ERR "um_request_irq failed - errno = %d\n", -err); | ||
| 884 | return(err); | ||
| 885 | } | ||
| 886 | |||
| 887 | device_initcall(ubd_driver_init); | ||
| 888 | |||
| 905 | static int ubd_open(struct inode *inode, struct file *filp) | 889 | static int ubd_open(struct inode *inode, struct file *filp) |
| 906 | { | 890 | { |
| 907 | struct gendisk *disk = inode->i_bdev->bd_disk; | 891 | struct gendisk *disk = inode->i_bdev->bd_disk; |
| @@ -939,55 +923,105 @@ static int ubd_release(struct inode * inode, struct file * file) | |||
| 939 | return(0); | 923 | return(0); |
| 940 | } | 924 | } |
| 941 | 925 | ||
| 942 | static void cowify_bitmap(struct io_thread_req *req, unsigned long *bitmap) | 926 | static void cowify_bitmap(__u64 io_offset, int length, unsigned long *cow_mask, |
| 927 | __u64 *cow_offset, unsigned long *bitmap, | ||
| 928 | __u64 bitmap_offset, unsigned long *bitmap_words, | ||
| 929 | __u64 bitmap_len) | ||
| 943 | { | 930 | { |
| 944 | __u64 sector = req->offset / req->sectorsize; | 931 | __u64 sector = io_offset >> 9; |
| 945 | int i; | 932 | int i, update_bitmap = 0; |
| 933 | |||
| 934 | for(i = 0; i < length >> 9; i++){ | ||
| 935 | if(cow_mask != NULL) | ||
| 936 | ubd_set_bit(i, (unsigned char *) cow_mask); | ||
| 937 | if(ubd_test_bit(sector + i, (unsigned char *) bitmap)) | ||
| 938 | continue; | ||
| 946 | 939 | ||
| 947 | for(i = 0; i < req->length / req->sectorsize; i++){ | 940 | update_bitmap = 1; |
| 948 | if(ubd_test_bit(sector + i, bitmap)) | 941 | ubd_set_bit(sector + i, (unsigned char *) bitmap); |
| 949 | continue; | 942 | } |
| 943 | |||
| 944 | if(!update_bitmap) | ||
| 945 | return; | ||
| 950 | 946 | ||
| 951 | if(req->bitmap_start == -1) | 947 | *cow_offset = sector / (sizeof(unsigned long) * 8); |
| 952 | req->bitmap_start = sector + i; | ||
| 953 | req->bitmap_end = sector + i + 1; | ||
| 954 | 948 | ||
| 955 | ubd_set_bit(sector + i, bitmap); | 949 | /* This takes care of the case where we're exactly at the end of the |
| 956 | } | 950 | * device, and *cow_offset + 1 is off the end. So, just back it up |
| 951 | * by one word. Thanks to Lynn Kerby for the fix and James McMechan | ||
| 952 | * for the original diagnosis. | ||
| 953 | */ | ||
| 954 | if(*cow_offset == ((bitmap_len + sizeof(unsigned long) - 1) / | ||
| 955 | sizeof(unsigned long) - 1)) | ||
| 956 | (*cow_offset)--; | ||
| 957 | |||
| 958 | bitmap_words[0] = bitmap[*cow_offset]; | ||
| 959 | bitmap_words[1] = bitmap[*cow_offset + 1]; | ||
| 960 | |||
| 961 | *cow_offset *= sizeof(unsigned long); | ||
| 962 | *cow_offset += bitmap_offset; | ||
| 963 | } | ||
| 964 | |||
| 965 | static void cowify_req(struct io_thread_req *req, unsigned long *bitmap, | ||
| 966 | __u64 bitmap_offset, __u64 bitmap_len) | ||
| 967 | { | ||
| 968 | __u64 sector = req->offset >> 9; | ||
| 969 | int i; | ||
| 970 | |||
| 971 | if(req->length > (sizeof(req->sector_mask) * 8) << 9) | ||
| 972 | panic("Operation too long"); | ||
| 973 | |||
| 974 | if(req->op == UBD_READ) { | ||
| 975 | for(i = 0; i < req->length >> 9; i++){ | ||
| 976 | if(ubd_test_bit(sector + i, (unsigned char *) bitmap)) | ||
| 977 | ubd_set_bit(i, (unsigned char *) | ||
| 978 | &req->sector_mask); | ||
| 979 | } | ||
| 980 | } | ||
| 981 | else cowify_bitmap(req->offset, req->length, &req->sector_mask, | ||
| 982 | &req->cow_offset, bitmap, bitmap_offset, | ||
| 983 | req->bitmap_words, bitmap_len); | ||
| 957 | } | 984 | } |
| 958 | 985 | ||
| 959 | /* Called with ubd_io_lock held */ | 986 | /* Called with ubd_io_lock held */ |
| 960 | static int prepare_request(struct request *req, struct io_thread_req *io_req, | 987 | static int prepare_request(struct request *req, struct io_thread_req *io_req) |
| 961 | unsigned long long offset, int page_offset, | ||
| 962 | int len, struct page *page) | ||
| 963 | { | 988 | { |
| 964 | struct gendisk *disk = req->rq_disk; | 989 | struct gendisk *disk = req->rq_disk; |
| 965 | struct ubd *dev = disk->private_data; | 990 | struct ubd *dev = disk->private_data; |
| 991 | __u64 offset; | ||
| 992 | int len; | ||
| 993 | |||
| 994 | if(req->rq_status == RQ_INACTIVE) return(1); | ||
| 966 | 995 | ||
| 967 | /* This should be impossible now */ | 996 | /* This should be impossible now */ |
| 968 | if((rq_data_dir(req) == WRITE) && !dev->openflags.w){ | 997 | if((rq_data_dir(req) == WRITE) && !dev->openflags.w){ |
| 969 | printk("Write attempted on readonly ubd device %s\n", | 998 | printk("Write attempted on readonly ubd device %s\n", |
| 970 | disk->disk_name); | 999 | disk->disk_name); |
| 971 | ubd_end_request(req, 0, 0); | 1000 | end_request(req, 0); |
| 972 | return(1); | 1001 | return(1); |
| 973 | } | 1002 | } |
| 974 | 1003 | ||
| 1004 | offset = ((__u64) req->sector) << 9; | ||
| 1005 | len = req->current_nr_sectors << 9; | ||
| 1006 | |||
| 975 | io_req->fds[0] = (dev->cow.file != NULL) ? dev->cow.fd : dev->fd; | 1007 | io_req->fds[0] = (dev->cow.file != NULL) ? dev->cow.fd : dev->fd; |
| 976 | io_req->fds[1] = dev->fd; | 1008 | io_req->fds[1] = dev->fd; |
| 1009 | io_req->cow_offset = -1; | ||
| 977 | io_req->offset = offset; | 1010 | io_req->offset = offset; |
| 978 | io_req->length = len; | 1011 | io_req->length = len; |
| 979 | io_req->error = 0; | 1012 | io_req->error = 0; |
| 980 | io_req->op = (rq_data_dir(req) == READ) ? AIO_READ : AIO_WRITE; | 1013 | io_req->sector_mask = 0; |
| 1014 | |||
| 1015 | io_req->op = (rq_data_dir(req) == READ) ? UBD_READ : UBD_WRITE; | ||
| 981 | io_req->offsets[0] = 0; | 1016 | io_req->offsets[0] = 0; |
| 982 | io_req->offsets[1] = dev->cow.data_offset; | 1017 | io_req->offsets[1] = dev->cow.data_offset; |
| 983 | io_req->buffer = page_address(page) + page_offset; | 1018 | io_req->buffer = req->buffer; |
| 984 | io_req->sectorsize = 1 << 9; | 1019 | io_req->sectorsize = 1 << 9; |
| 985 | io_req->bitmap_offset = dev->cow.bitmap_offset; | ||
| 986 | io_req->bitmap_start = -1; | ||
| 987 | io_req->bitmap_end = -1; | ||
| 988 | 1020 | ||
| 989 | if((dev->cow.file != NULL) && (io_req->op == UBD_WRITE)) | 1021 | if(dev->cow.file != NULL) |
| 990 | cowify_bitmap(io_req, dev->cow.bitmap); | 1022 | cowify_req(io_req, dev->cow.bitmap, dev->cow.bitmap_offset, |
| 1023 | dev->cow.bitmap_len); | ||
| 1024 | |||
| 991 | return(0); | 1025 | return(0); |
| 992 | } | 1026 | } |
| 993 | 1027 | ||
| @@ -996,36 +1030,30 @@ static void do_ubd_request(request_queue_t *q) | |||
| 996 | { | 1030 | { |
| 997 | struct io_thread_req io_req; | 1031 | struct io_thread_req io_req; |
| 998 | struct request *req; | 1032 | struct request *req; |
| 999 | __u64 sector; | 1033 | int err, n; |
| 1000 | int err; | 1034 | |
| 1001 | 1035 | if(thread_fd == -1){ | |
| 1002 | if(in_ubd) | 1036 | while((req = elv_next_request(q)) != NULL){ |
| 1003 | return; | 1037 | err = prepare_request(req, &io_req); |
| 1004 | in_ubd = 1; | 1038 | if(!err){ |
| 1005 | while((req = elv_next_request(q)) != NULL){ | 1039 | do_io(&io_req); |
| 1006 | struct gendisk *disk = req->rq_disk; | 1040 | __ubd_finish(req, io_req.error); |
| 1007 | struct ubd *dev = disk->private_data; | 1041 | } |
| 1008 | int n, i; | 1042 | } |
| 1009 | 1043 | } | |
| 1010 | blkdev_dequeue_request(req); | 1044 | else { |
| 1011 | 1045 | if(do_ubd || (req = elv_next_request(q)) == NULL) | |
| 1012 | sector = req->sector; | 1046 | return; |
| 1013 | n = blk_rq_map_sg(q, req, dev->sg); | 1047 | err = prepare_request(req, &io_req); |
| 1014 | 1048 | if(!err){ | |
| 1015 | for(i = 0; i < n; i++){ | 1049 | do_ubd = ubd_handler; |
| 1016 | struct scatterlist *sg = &dev->sg[i]; | 1050 | n = os_write_file(thread_fd, (char *) &io_req, |
| 1017 | 1051 | sizeof(io_req)); | |
| 1018 | err = prepare_request(req, &io_req, sector << 9, | 1052 | if(n != sizeof(io_req)) |
| 1019 | sg->offset, sg->length, | 1053 | printk("write to io thread failed, " |
| 1020 | sg->page); | 1054 | "errno = %d\n", -n); |
| 1021 | if(err) | ||
| 1022 | continue; | ||
| 1023 | |||
| 1024 | sector += sg->length >> 9; | ||
| 1025 | do_io(&io_req, req, dev->cow.bitmap); | ||
| 1026 | } | 1055 | } |
| 1027 | } | 1056 | } |
| 1028 | in_ubd = 0; | ||
| 1029 | } | 1057 | } |
| 1030 | 1058 | ||
| 1031 | static int ubd_ioctl(struct inode * inode, struct file * file, | 1059 | static int ubd_ioctl(struct inode * inode, struct file * file, |
| @@ -1241,95 +1269,131 @@ int create_cow_file(char *cow_file, char *backing_file, struct openflags flags, | |||
| 1241 | return(err); | 1269 | return(err); |
| 1242 | } | 1270 | } |
| 1243 | 1271 | ||
| 1244 | void do_io(struct io_thread_req *req, struct request *r, unsigned long *bitmap) | 1272 | static int update_bitmap(struct io_thread_req *req) |
| 1245 | { | 1273 | { |
| 1246 | struct ubd_aio *aio; | 1274 | int n; |
| 1247 | struct bitmap_io *bitmap_io = NULL; | ||
| 1248 | char *buf; | ||
| 1249 | void *bitmap_buf = NULL; | ||
| 1250 | unsigned long len, sector; | ||
| 1251 | int nsectors, start, end, bit, err; | ||
| 1252 | __u64 off; | ||
| 1253 | |||
| 1254 | if(req->bitmap_start != -1){ | ||
| 1255 | /* Round up to the nearest word */ | ||
| 1256 | int round = sizeof(unsigned long); | ||
| 1257 | len = (req->bitmap_end - req->bitmap_start + | ||
| 1258 | round * 8 - 1) / (round * 8); | ||
| 1259 | len *= round; | ||
| 1260 | |||
| 1261 | off = req->bitmap_start / (8 * round); | ||
| 1262 | off *= round; | ||
| 1263 | |||
| 1264 | bitmap_io = kmalloc(sizeof(*bitmap_io), GFP_KERNEL); | ||
| 1265 | if(bitmap_io == NULL){ | ||
| 1266 | printk("Failed to kmalloc bitmap IO\n"); | ||
| 1267 | req->error = 1; | ||
| 1268 | return; | ||
| 1269 | } | ||
| 1270 | 1275 | ||
| 1271 | bitmap_buf = kmalloc(len, GFP_KERNEL); | 1276 | if(req->cow_offset == -1) |
| 1272 | if(bitmap_buf == NULL){ | 1277 | return(0); |
| 1273 | printk("do_io : kmalloc of bitmap chunk " | ||
| 1274 | "failed\n"); | ||
| 1275 | kfree(bitmap_io); | ||
| 1276 | req->error = 1; | ||
| 1277 | return; | ||
| 1278 | } | ||
| 1279 | memcpy(bitmap_buf, &bitmap[off / sizeof(bitmap[0])], len); | ||
| 1280 | |||
| 1281 | *bitmap_io = ((struct bitmap_io) | ||
| 1282 | { .count = ATOMIC_INIT(0), | ||
| 1283 | .aio = INIT_AIO(AIO_WRITE, req->fds[1], | ||
| 1284 | bitmap_buf, len, | ||
| 1285 | req->bitmap_offset + off, | ||
| 1286 | ubd_reply_fd) } ); | ||
| 1287 | } | ||
| 1288 | 1278 | ||
| 1289 | nsectors = req->length / req->sectorsize; | 1279 | n = os_seek_file(req->fds[1], req->cow_offset); |
| 1290 | start = 0; | 1280 | if(n < 0){ |
| 1291 | end = nsectors; | 1281 | printk("do_io - bitmap lseek failed : err = %d\n", -n); |
| 1292 | bit = 0; | 1282 | return(1); |
| 1293 | do { | 1283 | } |
| 1294 | if(bitmap != NULL){ | ||
| 1295 | sector = req->offset / req->sectorsize; | ||
| 1296 | bit = ubd_test_bit(sector + start, bitmap); | ||
| 1297 | end = start; | ||
| 1298 | while((end < nsectors) && | ||
| 1299 | (ubd_test_bit(sector + end, bitmap) == bit)) | ||
| 1300 | end++; | ||
| 1301 | } | ||
| 1302 | 1284 | ||
| 1303 | off = req->offsets[bit] + req->offset + | 1285 | n = os_write_file(req->fds[1], &req->bitmap_words, |
| 1304 | start * req->sectorsize; | 1286 | sizeof(req->bitmap_words)); |
| 1305 | len = (end - start) * req->sectorsize; | 1287 | if(n != sizeof(req->bitmap_words)){ |
| 1306 | buf = &req->buffer[start * req->sectorsize]; | 1288 | printk("do_io - bitmap update failed, err = %d fd = %d\n", -n, |
| 1289 | req->fds[1]); | ||
| 1290 | return(1); | ||
| 1291 | } | ||
| 1307 | 1292 | ||
| 1308 | aio = kmalloc(sizeof(*aio), GFP_KERNEL); | 1293 | return(0); |
| 1309 | if(aio == NULL){ | 1294 | } |
| 1310 | req->error = 1; | ||
| 1311 | return; | ||
| 1312 | } | ||
| 1313 | 1295 | ||
| 1314 | *aio = ((struct ubd_aio) | 1296 | void do_io(struct io_thread_req *req) |
| 1315 | { .aio = INIT_AIO(req->op, req->fds[bit], buf, | 1297 | { |
| 1316 | len, off, ubd_reply_fd), | 1298 | char *buf; |
| 1317 | .len = len, | 1299 | unsigned long len; |
| 1318 | .req = r, | 1300 | int n, nsectors, start, end, bit; |
| 1319 | .bitmap = bitmap_io, | 1301 | int err; |
| 1320 | .bitmap_buf = bitmap_buf }); | 1302 | __u64 off; |
| 1321 | 1303 | ||
| 1322 | if(aio->bitmap != NULL) | 1304 | nsectors = req->length / req->sectorsize; |
| 1323 | atomic_inc(&aio->bitmap->count); | 1305 | start = 0; |
| 1324 | 1306 | do { | |
| 1325 | err = submit_aio(&aio->aio); | 1307 | bit = ubd_test_bit(start, (unsigned char *) &req->sector_mask); |
| 1326 | if(err){ | 1308 | end = start; |
| 1327 | printk("do_io - submit_aio failed, " | 1309 | while((end < nsectors) && |
| 1328 | "err = %d\n", err); | 1310 | (ubd_test_bit(end, (unsigned char *) |
| 1329 | req->error = 1; | 1311 | &req->sector_mask) == bit)) |
| 1330 | return; | 1312 | end++; |
| 1331 | } | 1313 | |
| 1314 | off = req->offset + req->offsets[bit] + | ||
| 1315 | start * req->sectorsize; | ||
| 1316 | len = (end - start) * req->sectorsize; | ||
| 1317 | buf = &req->buffer[start * req->sectorsize]; | ||
| 1318 | |||
| 1319 | err = os_seek_file(req->fds[bit], off); | ||
| 1320 | if(err < 0){ | ||
| 1321 | printk("do_io - lseek failed : err = %d\n", -err); | ||
| 1322 | req->error = 1; | ||
| 1323 | return; | ||
| 1324 | } | ||
| 1325 | if(req->op == UBD_READ){ | ||
| 1326 | n = 0; | ||
| 1327 | do { | ||
| 1328 | buf = &buf[n]; | ||
| 1329 | len -= n; | ||
| 1330 | n = os_read_file(req->fds[bit], buf, len); | ||
| 1331 | if (n < 0) { | ||
| 1332 | printk("do_io - read failed, err = %d " | ||
| 1333 | "fd = %d\n", -n, req->fds[bit]); | ||
| 1334 | req->error = 1; | ||
| 1335 | return; | ||
| 1336 | } | ||
| 1337 | } while((n < len) && (n != 0)); | ||
| 1338 | if (n < len) memset(&buf[n], 0, len - n); | ||
| 1339 | } else { | ||
| 1340 | n = os_write_file(req->fds[bit], buf, len); | ||
| 1341 | if(n != len){ | ||
| 1342 | printk("do_io - write failed err = %d " | ||
| 1343 | "fd = %d\n", -n, req->fds[bit]); | ||
| 1344 | req->error = 1; | ||
| 1345 | return; | ||
| 1346 | } | ||
| 1347 | } | ||
| 1348 | |||
| 1349 | start = end; | ||
| 1350 | } while(start < nsectors); | ||
| 1332 | 1351 | ||
| 1333 | start = end; | 1352 | req->error = update_bitmap(req); |
| 1334 | } while(start < nsectors); | ||
| 1335 | } | 1353 | } |
| 1354 | |||
| 1355 | /* Changed in start_io_thread, which is serialized by being called only | ||
| 1356 | * from ubd_init, which is an initcall. | ||
| 1357 | */ | ||
| 1358 | int kernel_fd = -1; | ||
| 1359 | |||
| 1360 | /* Only changed by the io thread */ | ||
| 1361 | int io_count = 0; | ||
| 1362 | |||
| 1363 | int io_thread(void *arg) | ||
| 1364 | { | ||
| 1365 | struct io_thread_req req; | ||
| 1366 | int n; | ||
| 1367 | |||
| 1368 | ignore_sigwinch_sig(); | ||
| 1369 | while(1){ | ||
| 1370 | n = os_read_file(kernel_fd, &req, sizeof(req)); | ||
| 1371 | if(n != sizeof(req)){ | ||
| 1372 | if(n < 0) | ||
| 1373 | printk("io_thread - read failed, fd = %d, " | ||
| 1374 | "err = %d\n", kernel_fd, -n); | ||
| 1375 | else { | ||
| 1376 | printk("io_thread - short read, fd = %d, " | ||
| 1377 | "length = %d\n", kernel_fd, n); | ||
| 1378 | } | ||
| 1379 | continue; | ||
| 1380 | } | ||
| 1381 | io_count++; | ||
| 1382 | do_io(&req); | ||
| 1383 | n = os_write_file(kernel_fd, &req, sizeof(req)); | ||
| 1384 | if(n != sizeof(req)) | ||
| 1385 | printk("io_thread - write failed, fd = %d, err = %d\n", | ||
| 1386 | kernel_fd, -n); | ||
| 1387 | } | ||
| 1388 | } | ||
| 1389 | |||
| 1390 | /* | ||
| 1391 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
| 1392 | * Emacs will notice this stuff at the end of the file and automatically | ||
| 1393 | * adjust the settings for this buffer only. This must remain at the end | ||
| 1394 | * of the file. | ||
| 1395 | * --------------------------------------------------------------------------- | ||
| 1396 | * Local variables: | ||
| 1397 | * c-file-style: "linux" | ||
| 1398 | * End: | ||
| 1399 | */ | ||
diff --git a/arch/um/drivers/ubd_user.c b/arch/um/drivers/ubd_user.c new file mode 100644 index 000000000000..b94d2bc4fe06 --- /dev/null +++ b/arch/um/drivers/ubd_user.c | |||
| @@ -0,0 +1,75 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com) | ||
| 3 | * Copyright (C) 2001 Ridgerun,Inc (glonnon@ridgerun.com) | ||
| 4 | * Licensed under the GPL | ||
| 5 | */ | ||
| 6 | |||
| 7 | #include <stddef.h> | ||
| 8 | #include <unistd.h> | ||
| 9 | #include <errno.h> | ||
| 10 | #include <sched.h> | ||
| 11 | #include <signal.h> | ||
| 12 | #include <string.h> | ||
| 13 | #include <netinet/in.h> | ||
| 14 | #include <sys/time.h> | ||
| 15 | #include <sys/socket.h> | ||
| 16 | #include <sys/mman.h> | ||
| 17 | #include <sys/param.h> | ||
| 18 | #include "asm/types.h" | ||
| 19 | #include "user_util.h" | ||
| 20 | #include "kern_util.h" | ||
| 21 | #include "user.h" | ||
| 22 | #include "ubd_user.h" | ||
| 23 | #include "os.h" | ||
| 24 | #include "cow.h" | ||
| 25 | |||
| 26 | #include <endian.h> | ||
| 27 | #include <byteswap.h> | ||
| 28 | |||
| 29 | void ignore_sigwinch_sig(void) | ||
| 30 | { | ||
| 31 | signal(SIGWINCH, SIG_IGN); | ||
| 32 | } | ||
| 33 | |||
| 34 | int start_io_thread(unsigned long sp, int *fd_out) | ||
| 35 | { | ||
| 36 | int pid, fds[2], err; | ||
| 37 | |||
| 38 | err = os_pipe(fds, 1, 1); | ||
| 39 | if(err < 0){ | ||
| 40 | printk("start_io_thread - os_pipe failed, err = %d\n", -err); | ||
| 41 | goto out; | ||
| 42 | } | ||
| 43 | |||
| 44 | kernel_fd = fds[0]; | ||
| 45 | *fd_out = fds[1]; | ||
| 46 | |||
| 47 | pid = clone(io_thread, (void *) sp, CLONE_FILES | CLONE_VM | SIGCHLD, | ||
| 48 | NULL); | ||
| 49 | if(pid < 0){ | ||
| 50 | printk("start_io_thread - clone failed : errno = %d\n", errno); | ||
| 51 | err = -errno; | ||
| 52 | goto out_close; | ||
| 53 | } | ||
| 54 | |||
| 55 | return(pid); | ||
| 56 | |||
| 57 | out_close: | ||
| 58 | os_close_file(fds[0]); | ||
| 59 | os_close_file(fds[1]); | ||
| 60 | kernel_fd = -1; | ||
| 61 | *fd_out = -1; | ||
| 62 | out: | ||
| 63 | return(err); | ||
| 64 | } | ||
| 65 | |||
| 66 | /* | ||
| 67 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
| 68 | * Emacs will notice this stuff at the end of the file and automatically | ||
| 69 | * adjust the settings for this buffer only. This must remain at the end | ||
| 70 | * of the file. | ||
| 71 | * --------------------------------------------------------------------------- | ||
| 72 | * Local variables: | ||
| 73 | * c-file-style: "linux" | ||
| 74 | * End: | ||
| 75 | */ | ||
diff --git a/arch/um/include/aio.h b/arch/um/include/aio.h index 83f16877ab08..423bae9153f8 100644 --- a/arch/um/include/aio.h +++ b/arch/um/include/aio.h | |||
| @@ -14,27 +14,15 @@ struct aio_thread_reply { | |||
| 14 | }; | 14 | }; |
| 15 | 15 | ||
| 16 | struct aio_context { | 16 | struct aio_context { |
| 17 | enum aio_type type; | ||
| 18 | int fd; | ||
| 19 | void *data; | ||
| 20 | int len; | ||
| 21 | unsigned long long offset; | ||
| 22 | int reply_fd; | 17 | int reply_fd; |
| 23 | struct aio_context *next; | 18 | struct aio_context *next; |
| 24 | }; | 19 | }; |
| 25 | 20 | ||
| 26 | #define INIT_AIO(aio_type, aio_fd, aio_data, aio_len, aio_offset, \ | ||
| 27 | aio_reply_fd) \ | ||
| 28 | { .type = aio_type, \ | ||
| 29 | .fd = aio_fd, \ | ||
| 30 | .data = aio_data, \ | ||
| 31 | .len = aio_len, \ | ||
| 32 | .offset = aio_offset, \ | ||
| 33 | .reply_fd = aio_reply_fd } | ||
| 34 | |||
| 35 | #define INIT_AIO_CONTEXT { .reply_fd = -1, \ | 21 | #define INIT_AIO_CONTEXT { .reply_fd = -1, \ |
| 36 | .next = NULL } | 22 | .next = NULL } |
| 37 | 23 | ||
| 38 | extern int submit_aio(struct aio_context *aio); | 24 | extern int submit_aio(enum aio_type type, int fd, char *buf, int len, |
| 25 | unsigned long long offset, int reply_fd, | ||
| 26 | struct aio_context *aio); | ||
| 39 | 27 | ||
| 40 | #endif | 28 | #endif |
diff --git a/arch/um/include/os.h b/arch/um/include/os.h index 6f766e1faecc..2e58e304b8be 100644 --- a/arch/um/include/os.h +++ b/arch/um/include/os.h | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | #ifndef __OS_H__ | 6 | #ifndef __OS_H__ |
| 7 | #define __OS_H__ | 7 | #define __OS_H__ |
| 8 | 8 | ||
| 9 | #include "uml-config.h" | ||
| 9 | #include "asm/types.h" | 10 | #include "asm/types.h" |
| 10 | #include "../os/include/file.h" | 11 | #include "../os/include/file.h" |
| 11 | 12 | ||
| @@ -159,7 +160,11 @@ extern int can_do_skas(void); | |||
| 159 | 160 | ||
| 160 | /* Make sure they are clear when running in TT mode. Required by | 161 | /* Make sure they are clear when running in TT mode. Required by |
| 161 | * SEGV_MAYBE_FIXABLE */ | 162 | * SEGV_MAYBE_FIXABLE */ |
| 163 | #ifdef UML_CONFIG_MODE_SKAS | ||
| 162 | #define clear_can_do_skas() do { ptrace_faultinfo = proc_mm = 0; } while (0) | 164 | #define clear_can_do_skas() do { ptrace_faultinfo = proc_mm = 0; } while (0) |
| 165 | #else | ||
| 166 | #define clear_can_do_skas() do {} while (0) | ||
| 167 | #endif | ||
| 163 | 168 | ||
| 164 | /* mem.c */ | 169 | /* mem.c */ |
| 165 | extern int create_mem_file(unsigned long len); | 170 | extern int create_mem_file(unsigned long len); |
diff --git a/arch/um/os-Linux/aio.c b/arch/um/os-Linux/aio.c index f6e64026f995..41cfb0944201 100644 --- a/arch/um/os-Linux/aio.c +++ b/arch/um/os-Linux/aio.c | |||
| @@ -6,7 +6,6 @@ | |||
| 6 | #include <stdlib.h> | 6 | #include <stdlib.h> |
| 7 | #include <unistd.h> | 7 | #include <unistd.h> |
| 8 | #include <signal.h> | 8 | #include <signal.h> |
| 9 | #include <string.h> | ||
| 10 | #include <errno.h> | 9 | #include <errno.h> |
| 11 | #include <sched.h> | 10 | #include <sched.h> |
| 12 | #include <sys/syscall.h> | 11 | #include <sys/syscall.h> |
| @@ -17,31 +16,18 @@ | |||
| 17 | #include "user.h" | 16 | #include "user.h" |
| 18 | #include "mode.h" | 17 | #include "mode.h" |
| 19 | 18 | ||
| 19 | struct aio_thread_req { | ||
| 20 | enum aio_type type; | ||
| 21 | int io_fd; | ||
| 22 | unsigned long long offset; | ||
| 23 | char *buf; | ||
| 24 | int len; | ||
| 25 | struct aio_context *aio; | ||
| 26 | }; | ||
| 27 | |||
| 20 | static int aio_req_fd_r = -1; | 28 | static int aio_req_fd_r = -1; |
| 21 | static int aio_req_fd_w = -1; | 29 | static int aio_req_fd_w = -1; |
| 22 | 30 | ||
| 23 | static int update_aio(struct aio_context *aio, int res) | ||
| 24 | { | ||
| 25 | if(res < 0) | ||
| 26 | aio->len = res; | ||
| 27 | else if((res == 0) && (aio->type == AIO_READ)){ | ||
| 28 | /* This is the EOF case - we have hit the end of the file | ||
| 29 | * and it ends in a partial block, so we fill the end of | ||
| 30 | * the block with zeros and claim success. | ||
| 31 | */ | ||
| 32 | memset(aio->data, 0, aio->len); | ||
| 33 | aio->len = 0; | ||
| 34 | } | ||
| 35 | else if(res > 0){ | ||
| 36 | aio->len -= res; | ||
| 37 | aio->data += res; | ||
| 38 | aio->offset += res; | ||
| 39 | return aio->len; | ||
| 40 | } | ||
| 41 | |||
| 42 | return 0; | ||
| 43 | } | ||
| 44 | |||
| 45 | #if defined(HAVE_AIO_ABI) | 31 | #if defined(HAVE_AIO_ABI) |
| 46 | #include <linux/aio_abi.h> | 32 | #include <linux/aio_abi.h> |
| 47 | 33 | ||
| @@ -80,7 +66,8 @@ static long io_getevents(aio_context_t ctx_id, long min_nr, long nr, | |||
| 80 | * that it now backs the mmapped area. | 66 | * that it now backs the mmapped area. |
| 81 | */ | 67 | */ |
| 82 | 68 | ||
| 83 | static int do_aio(aio_context_t ctx, struct aio_context *aio) | 69 | static int do_aio(aio_context_t ctx, enum aio_type type, int fd, char *buf, |
| 70 | int len, unsigned long long offset, struct aio_context *aio) | ||
| 84 | { | 71 | { |
| 85 | struct iocb iocb, *iocbp = &iocb; | 72 | struct iocb iocb, *iocbp = &iocb; |
| 86 | char c; | 73 | char c; |
| @@ -88,39 +75,40 @@ static int do_aio(aio_context_t ctx, struct aio_context *aio) | |||
| 88 | 75 | ||
| 89 | iocb = ((struct iocb) { .aio_data = (unsigned long) aio, | 76 | iocb = ((struct iocb) { .aio_data = (unsigned long) aio, |
| 90 | .aio_reqprio = 0, | 77 | .aio_reqprio = 0, |
| 91 | .aio_fildes = aio->fd, | 78 | .aio_fildes = fd, |
| 92 | .aio_buf = (unsigned long) aio->data, | 79 | .aio_buf = (unsigned long) buf, |
| 93 | .aio_nbytes = aio->len, | 80 | .aio_nbytes = len, |
| 94 | .aio_offset = aio->offset, | 81 | .aio_offset = offset, |
| 95 | .aio_reserved1 = 0, | 82 | .aio_reserved1 = 0, |
| 96 | .aio_reserved2 = 0, | 83 | .aio_reserved2 = 0, |
| 97 | .aio_reserved3 = 0 }); | 84 | .aio_reserved3 = 0 }); |
| 98 | 85 | ||
| 99 | switch(aio->type){ | 86 | switch(type){ |
| 100 | case AIO_READ: | 87 | case AIO_READ: |
| 101 | iocb.aio_lio_opcode = IOCB_CMD_PREAD; | 88 | iocb.aio_lio_opcode = IOCB_CMD_PREAD; |
| 89 | err = io_submit(ctx, 1, &iocbp); | ||
| 102 | break; | 90 | break; |
| 103 | case AIO_WRITE: | 91 | case AIO_WRITE: |
| 104 | iocb.aio_lio_opcode = IOCB_CMD_PWRITE; | 92 | iocb.aio_lio_opcode = IOCB_CMD_PWRITE; |
| 93 | err = io_submit(ctx, 1, &iocbp); | ||
| 105 | break; | 94 | break; |
| 106 | case AIO_MMAP: | 95 | case AIO_MMAP: |
| 107 | iocb.aio_lio_opcode = IOCB_CMD_PREAD; | 96 | iocb.aio_lio_opcode = IOCB_CMD_PREAD; |
| 108 | iocb.aio_buf = (unsigned long) &c; | 97 | iocb.aio_buf = (unsigned long) &c; |
| 109 | iocb.aio_nbytes = sizeof(c); | 98 | iocb.aio_nbytes = sizeof(c); |
| 99 | err = io_submit(ctx, 1, &iocbp); | ||
| 110 | break; | 100 | break; |
| 111 | default: | 101 | default: |
| 112 | printk("Bogus op in do_aio - %d\n", aio->type); | 102 | printk("Bogus op in do_aio - %d\n", type); |
| 113 | err = -EINVAL; | 103 | err = -EINVAL; |
| 114 | goto out; | 104 | break; |
| 115 | } | 105 | } |
| 116 | 106 | ||
| 117 | err = io_submit(ctx, 1, &iocbp); | ||
| 118 | if(err > 0) | 107 | if(err > 0) |
| 119 | err = 0; | 108 | err = 0; |
| 120 | else | 109 | else |
| 121 | err = -errno; | 110 | err = -errno; |
| 122 | 111 | ||
| 123 | out: | ||
| 124 | return err; | 112 | return err; |
| 125 | } | 113 | } |
| 126 | 114 | ||
| @@ -129,9 +117,8 @@ static aio_context_t ctx = 0; | |||
| 129 | static int aio_thread(void *arg) | 117 | static int aio_thread(void *arg) |
| 130 | { | 118 | { |
| 131 | struct aio_thread_reply reply; | 119 | struct aio_thread_reply reply; |
| 132 | struct aio_context *aio; | ||
| 133 | struct io_event event; | 120 | struct io_event event; |
| 134 | int err, n; | 121 | int err, n, reply_fd; |
| 135 | 122 | ||
| 136 | signal(SIGWINCH, SIG_IGN); | 123 | signal(SIGWINCH, SIG_IGN); |
| 137 | 124 | ||
| @@ -144,22 +131,14 @@ static int aio_thread(void *arg) | |||
| 144 | "errno = %d\n", errno); | 131 | "errno = %d\n", errno); |
| 145 | } | 132 | } |
| 146 | else { | 133 | else { |
| 147 | /* This is safe as we've just a pointer here. */ | ||
| 148 | aio = (struct aio_context *) (long) event.data; | ||
| 149 | if(update_aio(aio, event.res)){ | ||
| 150 | do_aio(ctx, aio); | ||
| 151 | continue; | ||
| 152 | } | ||
| 153 | |||
| 154 | reply = ((struct aio_thread_reply) | 134 | reply = ((struct aio_thread_reply) |
| 155 | { .data = aio, | 135 | { .data = (void *) (long) event.data, |
| 156 | .err = aio->len }); | 136 | .err = event.res }); |
| 157 | err = os_write_file(aio->reply_fd, &reply, | 137 | reply_fd = ((struct aio_context *) reply.data)->reply_fd; |
| 158 | sizeof(reply)); | 138 | err = os_write_file(reply_fd, &reply, sizeof(reply)); |
| 159 | if(err != sizeof(reply)) | 139 | if(err != sizeof(reply)) |
| 160 | printk("aio_thread - write failed, " | 140 | printk("aio_thread - write failed, fd = %d, " |
| 161 | "fd = %d, err = %d\n", aio->reply_fd, | 141 | "err = %d\n", aio_req_fd_r, -err); |
| 162 | -err); | ||
| 163 | } | 142 | } |
| 164 | } | 143 | } |
| 165 | return 0; | 144 | return 0; |
| @@ -167,35 +146,35 @@ static int aio_thread(void *arg) | |||
| 167 | 146 | ||
| 168 | #endif | 147 | #endif |
| 169 | 148 | ||
| 170 | static int do_not_aio(struct aio_context *aio) | 149 | static int do_not_aio(struct aio_thread_req *req) |
| 171 | { | 150 | { |
| 172 | char c; | 151 | char c; |
| 173 | int err; | 152 | int err; |
| 174 | 153 | ||
| 175 | switch(aio->type){ | 154 | switch(req->type){ |
| 176 | case AIO_READ: | 155 | case AIO_READ: |
| 177 | err = os_seek_file(aio->fd, aio->offset); | 156 | err = os_seek_file(req->io_fd, req->offset); |
| 178 | if(err) | 157 | if(err) |
| 179 | goto out; | 158 | goto out; |
| 180 | 159 | ||
| 181 | err = os_read_file(aio->fd, aio->data, aio->len); | 160 | err = os_read_file(req->io_fd, req->buf, req->len); |
| 182 | break; | 161 | break; |
| 183 | case AIO_WRITE: | 162 | case AIO_WRITE: |
| 184 | err = os_seek_file(aio->fd, aio->offset); | 163 | err = os_seek_file(req->io_fd, req->offset); |
| 185 | if(err) | 164 | if(err) |
| 186 | goto out; | 165 | goto out; |
| 187 | 166 | ||
| 188 | err = os_write_file(aio->fd, aio->data, aio->len); | 167 | err = os_write_file(req->io_fd, req->buf, req->len); |
| 189 | break; | 168 | break; |
| 190 | case AIO_MMAP: | 169 | case AIO_MMAP: |
| 191 | err = os_seek_file(aio->fd, aio->offset); | 170 | err = os_seek_file(req->io_fd, req->offset); |
| 192 | if(err) | 171 | if(err) |
| 193 | goto out; | 172 | goto out; |
| 194 | 173 | ||
| 195 | err = os_read_file(aio->fd, &c, sizeof(c)); | 174 | err = os_read_file(req->io_fd, &c, sizeof(c)); |
| 196 | break; | 175 | break; |
| 197 | default: | 176 | default: |
| 198 | printk("do_not_aio - bad request type : %d\n", aio->type); | 177 | printk("do_not_aio - bad request type : %d\n", req->type); |
| 199 | err = -EINVAL; | 178 | err = -EINVAL; |
| 200 | break; | 179 | break; |
| 201 | } | 180 | } |
| @@ -206,14 +185,14 @@ static int do_not_aio(struct aio_context *aio) | |||
| 206 | 185 | ||
| 207 | static int not_aio_thread(void *arg) | 186 | static int not_aio_thread(void *arg) |
| 208 | { | 187 | { |
| 209 | struct aio_context *aio; | 188 | struct aio_thread_req req; |
| 210 | struct aio_thread_reply reply; | 189 | struct aio_thread_reply reply; |
| 211 | int err; | 190 | int err; |
| 212 | 191 | ||
| 213 | signal(SIGWINCH, SIG_IGN); | 192 | signal(SIGWINCH, SIG_IGN); |
| 214 | while(1){ | 193 | while(1){ |
| 215 | err = os_read_file(aio_req_fd_r, &aio, sizeof(aio)); | 194 | err = os_read_file(aio_req_fd_r, &req, sizeof(req)); |
| 216 | if(err != sizeof(aio)){ | 195 | if(err != sizeof(req)){ |
| 217 | if(err < 0) | 196 | if(err < 0) |
| 218 | printk("not_aio_thread - read failed, " | 197 | printk("not_aio_thread - read failed, " |
| 219 | "fd = %d, err = %d\n", aio_req_fd_r, | 198 | "fd = %d, err = %d\n", aio_req_fd_r, |
| @@ -224,34 +203,17 @@ static int not_aio_thread(void *arg) | |||
| 224 | } | 203 | } |
| 225 | continue; | 204 | continue; |
| 226 | } | 205 | } |
| 227 | again: | 206 | err = do_not_aio(&req); |
| 228 | err = do_not_aio(aio); | 207 | reply = ((struct aio_thread_reply) { .data = req.aio, |
| 229 | 208 | .err = err }); | |
| 230 | if(update_aio(aio, err)) | 209 | err = os_write_file(req.aio->reply_fd, &reply, sizeof(reply)); |
| 231 | goto again; | ||
| 232 | |||
| 233 | reply = ((struct aio_thread_reply) { .data = aio, | ||
| 234 | .err = aio->len }); | ||
| 235 | err = os_write_file(aio->reply_fd, &reply, sizeof(reply)); | ||
| 236 | if(err != sizeof(reply)) | 210 | if(err != sizeof(reply)) |
| 237 | printk("not_aio_thread - write failed, fd = %d, " | 211 | printk("not_aio_thread - write failed, fd = %d, " |
| 238 | "err = %d\n", aio_req_fd_r, -err); | 212 | "err = %d\n", aio_req_fd_r, -err); |
| 239 | } | 213 | } |
| 240 | } | 214 | } |
| 241 | 215 | ||
| 242 | static int submit_aio_24(struct aio_context *aio) | ||
| 243 | { | ||
| 244 | int err; | ||
| 245 | |||
| 246 | err = os_write_file(aio_req_fd_w, &aio, sizeof(aio)); | ||
| 247 | if(err == sizeof(aio)) | ||
| 248 | err = 0; | ||
| 249 | |||
| 250 | return err; | ||
| 251 | } | ||
| 252 | |||
| 253 | static int aio_pid = -1; | 216 | static int aio_pid = -1; |
| 254 | static int (*submit_proc)(struct aio_context *aio); | ||
| 255 | 217 | ||
| 256 | static int init_aio_24(void) | 218 | static int init_aio_24(void) |
| 257 | { | 219 | { |
| @@ -283,33 +245,11 @@ static int init_aio_24(void) | |||
| 283 | #endif | 245 | #endif |
| 284 | printk("2.6 host AIO support not used - falling back to I/O " | 246 | printk("2.6 host AIO support not used - falling back to I/O " |
| 285 | "thread\n"); | 247 | "thread\n"); |
| 286 | |||
| 287 | submit_proc = submit_aio_24; | ||
| 288 | |||
| 289 | return 0; | 248 | return 0; |
| 290 | } | 249 | } |
| 291 | 250 | ||
| 292 | #ifdef HAVE_AIO_ABI | 251 | #ifdef HAVE_AIO_ABI |
| 293 | #define DEFAULT_24_AIO 0 | 252 | #define DEFAULT_24_AIO 0 |
| 294 | static int submit_aio_26(struct aio_context *aio) | ||
| 295 | { | ||
| 296 | struct aio_thread_reply reply; | ||
| 297 | int err; | ||
| 298 | |||
| 299 | err = do_aio(ctx, aio); | ||
| 300 | if(err){ | ||
| 301 | reply = ((struct aio_thread_reply) { .data = aio, | ||
| 302 | .err = err }); | ||
| 303 | err = os_write_file(aio->reply_fd, &reply, sizeof(reply)); | ||
| 304 | if(err != sizeof(reply)) | ||
| 305 | printk("submit_aio_26 - write failed, " | ||
| 306 | "fd = %d, err = %d\n", aio->reply_fd, -err); | ||
| 307 | else err = 0; | ||
| 308 | } | ||
| 309 | |||
| 310 | return err; | ||
| 311 | } | ||
| 312 | |||
| 313 | static int init_aio_26(void) | 253 | static int init_aio_26(void) |
| 314 | { | 254 | { |
| 315 | unsigned long stack; | 255 | unsigned long stack; |
| @@ -330,22 +270,39 @@ static int init_aio_26(void) | |||
| 330 | aio_pid = err; | 270 | aio_pid = err; |
| 331 | 271 | ||
| 332 | printk("Using 2.6 host AIO\n"); | 272 | printk("Using 2.6 host AIO\n"); |
| 273 | return 0; | ||
| 274 | } | ||
| 275 | |||
| 276 | static int submit_aio_26(enum aio_type type, int io_fd, char *buf, int len, | ||
| 277 | unsigned long long offset, struct aio_context *aio) | ||
| 278 | { | ||
| 279 | struct aio_thread_reply reply; | ||
| 280 | int err; | ||
| 333 | 281 | ||
| 334 | submit_proc = submit_aio_26; | 282 | err = do_aio(ctx, type, io_fd, buf, len, offset, aio); |
| 283 | if(err){ | ||
| 284 | reply = ((struct aio_thread_reply) { .data = aio, | ||
| 285 | .err = err }); | ||
| 286 | err = os_write_file(aio->reply_fd, &reply, sizeof(reply)); | ||
| 287 | if(err != sizeof(reply)) | ||
| 288 | printk("submit_aio_26 - write failed, " | ||
| 289 | "fd = %d, err = %d\n", aio->reply_fd, -err); | ||
| 290 | else err = 0; | ||
| 291 | } | ||
| 335 | 292 | ||
| 336 | return 0; | 293 | return err; |
| 337 | } | 294 | } |
| 338 | 295 | ||
| 339 | #else | 296 | #else |
| 340 | #define DEFAULT_24_AIO 1 | 297 | #define DEFAULT_24_AIO 1 |
| 341 | static int submit_aio_26(struct aio_context *aio) | 298 | static int init_aio_26(void) |
| 342 | { | 299 | { |
| 343 | return -ENOSYS; | 300 | return -ENOSYS; |
| 344 | } | 301 | } |
| 345 | 302 | ||
| 346 | static int init_aio_26(void) | 303 | static int submit_aio_26(enum aio_type type, int io_fd, char *buf, int len, |
| 304 | unsigned long long offset, struct aio_context *aio) | ||
| 347 | { | 305 | { |
| 348 | submit_proc = submit_aio_26; | ||
| 349 | return -ENOSYS; | 306 | return -ENOSYS; |
| 350 | } | 307 | } |
| 351 | #endif | 308 | #endif |
| @@ -412,7 +369,33 @@ static void exit_aio(void) | |||
| 412 | 369 | ||
| 413 | __uml_exitcall(exit_aio); | 370 | __uml_exitcall(exit_aio); |
| 414 | 371 | ||
| 415 | int submit_aio(struct aio_context *aio) | 372 | static int submit_aio_24(enum aio_type type, int io_fd, char *buf, int len, |
| 373 | unsigned long long offset, struct aio_context *aio) | ||
| 416 | { | 374 | { |
| 417 | return (*submit_proc)(aio); | 375 | struct aio_thread_req req = { .type = type, |
| 376 | .io_fd = io_fd, | ||
| 377 | .offset = offset, | ||
| 378 | .buf = buf, | ||
| 379 | .len = len, | ||
| 380 | .aio = aio, | ||
| 381 | }; | ||
| 382 | int err; | ||
| 383 | |||
| 384 | err = os_write_file(aio_req_fd_w, &req, sizeof(req)); | ||
| 385 | if(err == sizeof(req)) | ||
| 386 | err = 0; | ||
| 387 | |||
| 388 | return err; | ||
| 389 | } | ||
| 390 | |||
| 391 | int submit_aio(enum aio_type type, int io_fd, char *buf, int len, | ||
| 392 | unsigned long long offset, int reply_fd, | ||
| 393 | struct aio_context *aio) | ||
| 394 | { | ||
| 395 | aio->reply_fd = reply_fd; | ||
| 396 | if(aio_24) | ||
| 397 | return submit_aio_24(type, io_fd, buf, len, offset, aio); | ||
| 398 | else { | ||
| 399 | return submit_aio_26(type, io_fd, buf, len, offset, aio); | ||
| 400 | } | ||
| 418 | } | 401 | } |
diff --git a/arch/um/os-Linux/start_up.c b/arch/um/os-Linux/start_up.c index 6af83171ca4e..b99ab414542f 100644 --- a/arch/um/os-Linux/start_up.c +++ b/arch/um/os-Linux/start_up.c | |||
| @@ -143,11 +143,22 @@ static int __init skas0_cmd_param(char *str, int* add) | |||
| 143 | return 0; | 143 | return 0; |
| 144 | } | 144 | } |
| 145 | 145 | ||
| 146 | /* The two __uml_setup would conflict, without this stupid alias. */ | ||
| 147 | |||
| 148 | static int __init mode_skas0_cmd_param(char *str, int* add) | ||
| 149 | __attribute__((alias("skas0_cmd_param"))); | ||
| 150 | |||
| 146 | __uml_setup("skas0", skas0_cmd_param, | 151 | __uml_setup("skas0", skas0_cmd_param, |
| 147 | "skas0\n" | 152 | "skas0\n" |
| 148 | " Disables SKAS3 usage, so that SKAS0 is used, unless \n" | 153 | " Disables SKAS3 usage, so that SKAS0 is used, unless \n" |
| 149 | " you specify mode=tt.\n\n"); | 154 | " you specify mode=tt.\n\n"); |
| 150 | 155 | ||
| 156 | __uml_setup("mode=skas0", mode_skas0_cmd_param, | ||
| 157 | "mode=skas0\n" | ||
| 158 | " Disables SKAS3 usage, so that SKAS0 is used, unless you \n" | ||
| 159 | " specify mode=tt. Note that this was recently added - on \n" | ||
| 160 | " older kernels you must use simply \"skas0\".\n\n"); | ||
| 161 | |||
| 151 | static int force_sysemu_disabled = 0; | 162 | static int force_sysemu_disabled = 0; |
| 152 | 163 | ||
| 153 | static int __init nosysemu_cmd_param(char *str, int* add) | 164 | static int __init nosysemu_cmd_param(char *str, int* add) |
diff --git a/arch/um/scripts/Makefile.rules b/arch/um/scripts/Makefile.rules index 59a1291f477e..651d9d88b656 100644 --- a/arch/um/scripts/Makefile.rules +++ b/arch/um/scripts/Makefile.rules | |||
| @@ -7,8 +7,8 @@ USER_SINGLE_OBJS := \ | |||
| 7 | USER_OBJS += $(filter %_user.o,$(obj-y) $(obj-m) $(USER_SINGLE_OBJS)) | 7 | USER_OBJS += $(filter %_user.o,$(obj-y) $(obj-m) $(USER_SINGLE_OBJS)) |
| 8 | USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file)) | 8 | USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file)) |
| 9 | 9 | ||
| 10 | $(USER_OBJS) : c_flags = -Wp,-MD,$(depfile) $(USER_CFLAGS) \ | 10 | $(USER_OBJS) $(USER_OBJS:.o=.i) $(USER_OBJS:.o=.s) $(USER_OBJS:.o=.lst): \ |
| 11 | $(CFLAGS_$(notdir $@)) | 11 | c_flags = -Wp,-MD,$(depfile) $(USER_CFLAGS) $(CFLAGS_$(notdir $@)) |
| 12 | $(USER_OBJS): cmd_checksrc = | 12 | $(USER_OBJS): cmd_checksrc = |
| 13 | $(USER_OBJS): quiet_cmd_checksrc = | 13 | $(USER_OBJS): quiet_cmd_checksrc = |
| 14 | $(USER_OBJS): cmd_force_checksrc = | 14 | $(USER_OBJS): cmd_force_checksrc = |
diff --git a/arch/um/sys-x86_64/stub_segv.c b/arch/um/sys-x86_64/stub_segv.c index 65a131b362b6..d1e53bdf2e85 100644 --- a/arch/um/sys-x86_64/stub_segv.c +++ b/arch/um/sys-x86_64/stub_segv.c | |||
| @@ -10,6 +10,22 @@ | |||
| 10 | #include "uml-config.h" | 10 | #include "uml-config.h" |
| 11 | #include "sysdep/sigcontext.h" | 11 | #include "sysdep/sigcontext.h" |
| 12 | #include "sysdep/faultinfo.h" | 12 | #include "sysdep/faultinfo.h" |
| 13 | #include <stddef.h> | ||
| 14 | |||
| 15 | /* Copied from sys-x86_64/signal.c - Can't find an equivalent definition | ||
| 16 | * in the libc headers anywhere. | ||
| 17 | */ | ||
| 18 | struct rt_sigframe | ||
| 19 | { | ||
| 20 | char *pretcode; | ||
| 21 | struct ucontext uc; | ||
| 22 | struct siginfo info; | ||
| 23 | }; | ||
| 24 | |||
| 25 | /* Copied here from <linux/kernel.h> - we're userspace. */ | ||
| 26 | #define container_of(ptr, type, member) ({ \ | ||
| 27 | const typeof( ((type *)0)->member ) *__mptr = (ptr); \ | ||
| 28 | (type *)( (char *)__mptr - offsetof(type,member) );}) | ||
| 13 | 29 | ||
| 14 | void __attribute__ ((__section__ (".__syscall_stub"))) | 30 | void __attribute__ ((__section__ (".__syscall_stub"))) |
| 15 | stub_segv_handler(int sig) | 31 | stub_segv_handler(int sig) |
| @@ -17,16 +33,19 @@ stub_segv_handler(int sig) | |||
| 17 | struct ucontext *uc; | 33 | struct ucontext *uc; |
| 18 | 34 | ||
| 19 | __asm__("movq %%rdx, %0" : "=g" (uc) :); | 35 | __asm__("movq %%rdx, %0" : "=g" (uc) :); |
| 20 | GET_FAULTINFO_FROM_SC(*((struct faultinfo *) UML_CONFIG_STUB_DATA), | 36 | GET_FAULTINFO_FROM_SC(*((struct faultinfo *) UML_CONFIG_STUB_DATA), |
| 21 | &uc->uc_mcontext); | 37 | &uc->uc_mcontext); |
| 22 | 38 | ||
| 23 | __asm__("movq %0, %%rax ; syscall": : "g" (__NR_getpid)); | 39 | __asm__("movq %0, %%rax ; syscall": : "g" (__NR_getpid)); |
| 24 | __asm__("movq %%rax, %%rdi ; movq %0, %%rax ; movq %1, %%rsi ;" | 40 | __asm__("movq %%rax, %%rdi ; movq %0, %%rax ; movq %1, %%rsi ;" |
| 25 | "syscall": : "g" (__NR_kill), "g" (SIGUSR1)); | 41 | "syscall": : "g" (__NR_kill), "g" (SIGUSR1) : |
| 26 | /* Two popqs to restore the stack to the state just before entering | 42 | "%rdi", "%rax", "%rsi"); |
| 27 | * the handler, one pops the return address, the other pops the frame | 43 | /* sys_sigreturn expects that the stack pointer will be 8 bytes into |
| 28 | * pointer. | 44 | * the signal frame. So, we use the ucontext pointer, which we know |
| 45 | * already, to get the signal frame pointer, and add 8 to that. | ||
| 29 | */ | 46 | */ |
| 30 | __asm__("popq %%rax ; popq %%rax ; movq %0, %%rax ; syscall" : : "g" | 47 | __asm__("movq %0, %%rsp": : |
| 31 | (__NR_rt_sigreturn)); | 48 | "g" ((unsigned long) container_of(uc, struct rt_sigframe, |
| 49 | uc) + 8)); | ||
| 50 | __asm__("movq %0, %%rax ; syscall" : : "g" (__NR_rt_sigreturn)); | ||
| 32 | } | 51 | } |
diff --git a/arch/x86_64/ia32/ia32_signal.c b/arch/x86_64/ia32/ia32_signal.c index 66e2821533db..0903cc1faef2 100644 --- a/arch/x86_64/ia32/ia32_signal.c +++ b/arch/x86_64/ia32/ia32_signal.c | |||
| @@ -425,7 +425,11 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size) | |||
| 425 | rsp = (unsigned long) ka->sa.sa_restorer; | 425 | rsp = (unsigned long) ka->sa.sa_restorer; |
| 426 | } | 426 | } |
| 427 | 427 | ||
| 428 | return (void __user *)((rsp - frame_size) & -8UL); | 428 | rsp -= frame_size; |
| 429 | /* Align the stack pointer according to the i386 ABI, | ||
| 430 | * i.e. so that on function entry ((sp + 4) & 15) == 0. */ | ||
| 431 | rsp = ((rsp + 4) & -16ul) - 4; | ||
| 432 | return (void __user *) rsp; | ||
| 429 | } | 433 | } |
| 430 | 434 | ||
| 431 | int ia32_setup_frame(int sig, struct k_sigaction *ka, | 435 | int ia32_setup_frame(int sig, struct k_sigaction *ka, |
diff --git a/arch/x86_64/kernel/setup64.c b/arch/x86_64/kernel/setup64.c index bd33be24a386..79190891fbc5 100644 --- a/arch/x86_64/kernel/setup64.c +++ b/arch/x86_64/kernel/setup64.c | |||
| @@ -87,6 +87,10 @@ void __init setup_per_cpu_areas(void) | |||
| 87 | int i; | 87 | int i; |
| 88 | unsigned long size; | 88 | unsigned long size; |
| 89 | 89 | ||
| 90 | #ifdef CONFIG_HOTPLUG_CPU | ||
| 91 | prefill_possible_map(); | ||
| 92 | #endif | ||
| 93 | |||
| 90 | /* Copy section for each CPU (we discard the original) */ | 94 | /* Copy section for each CPU (we discard the original) */ |
| 91 | size = ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES); | 95 | size = ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES); |
| 92 | #ifdef CONFIG_MODULES | 96 | #ifdef CONFIG_MODULES |
diff --git a/arch/x86_64/kernel/smpboot.c b/arch/x86_64/kernel/smpboot.c index e12d7baeb33e..658a81b33f3b 100644 --- a/arch/x86_64/kernel/smpboot.c +++ b/arch/x86_64/kernel/smpboot.c | |||
| @@ -892,7 +892,7 @@ static __init void disable_smp(void) | |||
| 892 | * those NR_CPUS, hence cpu_possible_map represents entire NR_CPUS range. | 892 | * those NR_CPUS, hence cpu_possible_map represents entire NR_CPUS range. |
| 893 | * - Ashok Raj | 893 | * - Ashok Raj |
| 894 | */ | 894 | */ |
| 895 | static void prefill_possible_map(void) | 895 | __init void prefill_possible_map(void) |
| 896 | { | 896 | { |
| 897 | int i; | 897 | int i; |
| 898 | for (i = 0; i < NR_CPUS; i++) | 898 | for (i = 0; i < NR_CPUS; i++) |
| @@ -967,10 +967,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
| 967 | current_cpu_data = boot_cpu_data; | 967 | current_cpu_data = boot_cpu_data; |
| 968 | current_thread_info()->cpu = 0; /* needed? */ | 968 | current_thread_info()->cpu = 0; /* needed? */ |
| 969 | 969 | ||
| 970 | #ifdef CONFIG_HOTPLUG_CPU | ||
| 971 | prefill_possible_map(); | ||
| 972 | #endif | ||
| 973 | |||
| 974 | if (smp_sanity_check(max_cpus) < 0) { | 970 | if (smp_sanity_check(max_cpus) < 0) { |
| 975 | printk(KERN_INFO "SMP disabled\n"); | 971 | printk(KERN_INFO "SMP disabled\n"); |
| 976 | disable_smp(); | 972 | disable_smp(); |
diff --git a/arch/x86_64/kernel/suspend.c b/arch/x86_64/kernel/suspend.c index ebb9abf3ce6d..f066c6ab3618 100644 --- a/arch/x86_64/kernel/suspend.c +++ b/arch/x86_64/kernel/suspend.c | |||
| @@ -11,6 +11,8 @@ | |||
| 11 | #include <linux/smp.h> | 11 | #include <linux/smp.h> |
| 12 | #include <linux/suspend.h> | 12 | #include <linux/suspend.h> |
| 13 | #include <asm/proto.h> | 13 | #include <asm/proto.h> |
| 14 | #include <asm/page.h> | ||
| 15 | #include <asm/pgtable.h> | ||
| 14 | 16 | ||
| 15 | struct saved_context saved_context; | 17 | struct saved_context saved_context; |
| 16 | 18 | ||
| @@ -140,4 +142,129 @@ void fix_processor_context(void) | |||
| 140 | 142 | ||
| 141 | } | 143 | } |
| 142 | 144 | ||
| 145 | #ifdef CONFIG_SOFTWARE_SUSPEND | ||
| 146 | /* Defined in arch/x86_64/kernel/suspend_asm.S */ | ||
| 147 | extern int restore_image(void); | ||
| 143 | 148 | ||
| 149 | pgd_t *temp_level4_pgt; | ||
| 150 | |||
| 151 | static void **pages; | ||
| 152 | |||
| 153 | static inline void *__add_page(void) | ||
| 154 | { | ||
| 155 | void **c; | ||
| 156 | |||
| 157 | c = (void **)get_usable_page(GFP_ATOMIC); | ||
| 158 | if (c) { | ||
| 159 | *c = pages; | ||
| 160 | pages = c; | ||
| 161 | } | ||
| 162 | return c; | ||
| 163 | } | ||
| 164 | |||
| 165 | static inline void *__next_page(void) | ||
| 166 | { | ||
| 167 | void **c; | ||
| 168 | |||
| 169 | c = pages; | ||
| 170 | if (c) { | ||
| 171 | pages = *c; | ||
| 172 | *c = NULL; | ||
| 173 | } | ||
| 174 | return c; | ||
| 175 | } | ||
| 176 | |||
| 177 | /* | ||
| 178 | * Try to allocate as many usable pages as needed and daisy chain them. | ||
| 179 | * If one allocation fails, free the pages allocated so far | ||
| 180 | */ | ||
| 181 | static int alloc_usable_pages(unsigned long n) | ||
| 182 | { | ||
| 183 | void *p; | ||
| 184 | |||
| 185 | pages = NULL; | ||
| 186 | do | ||
| 187 | if (!__add_page()) | ||
| 188 | break; | ||
| 189 | while (--n); | ||
| 190 | if (n) { | ||
| 191 | p = __next_page(); | ||
| 192 | while (p) { | ||
| 193 | free_page((unsigned long)p); | ||
| 194 | p = __next_page(); | ||
| 195 | } | ||
| 196 | return -ENOMEM; | ||
| 197 | } | ||
| 198 | return 0; | ||
| 199 | } | ||
| 200 | |||
| 201 | static void res_phys_pud_init(pud_t *pud, unsigned long address, unsigned long end) | ||
| 202 | { | ||
| 203 | long i, j; | ||
| 204 | |||
| 205 | i = pud_index(address); | ||
| 206 | pud = pud + i; | ||
| 207 | for (; i < PTRS_PER_PUD; pud++, i++) { | ||
| 208 | unsigned long paddr; | ||
| 209 | pmd_t *pmd; | ||
| 210 | |||
| 211 | paddr = address + i*PUD_SIZE; | ||
| 212 | if (paddr >= end) | ||
| 213 | break; | ||
| 214 | |||
| 215 | pmd = (pmd_t *)__next_page(); | ||
| 216 | set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE)); | ||
| 217 | for (j = 0; j < PTRS_PER_PMD; pmd++, j++, paddr += PMD_SIZE) { | ||
| 218 | unsigned long pe; | ||
| 219 | |||
| 220 | if (paddr >= end) | ||
| 221 | break; | ||
| 222 | pe = _PAGE_NX | _PAGE_PSE | _KERNPG_TABLE | paddr; | ||
| 223 | pe &= __supported_pte_mask; | ||
| 224 | set_pmd(pmd, __pmd(pe)); | ||
| 225 | } | ||
| 226 | } | ||
| 227 | } | ||
| 228 | |||
| 229 | static void set_up_temporary_mappings(void) | ||
| 230 | { | ||
| 231 | unsigned long start, end, next; | ||
| 232 | |||
| 233 | temp_level4_pgt = (pgd_t *)__next_page(); | ||
| 234 | |||
| 235 | /* It is safe to reuse the original kernel mapping */ | ||
| 236 | set_pgd(temp_level4_pgt + pgd_index(__START_KERNEL_map), | ||
| 237 | init_level4_pgt[pgd_index(__START_KERNEL_map)]); | ||
| 238 | |||
| 239 | /* Set up the direct mapping from scratch */ | ||
| 240 | start = (unsigned long)pfn_to_kaddr(0); | ||
| 241 | end = (unsigned long)pfn_to_kaddr(end_pfn); | ||
| 242 | |||
| 243 | for (; start < end; start = next) { | ||
| 244 | pud_t *pud = (pud_t *)__next_page(); | ||
| 245 | next = start + PGDIR_SIZE; | ||
| 246 | if (next > end) | ||
| 247 | next = end; | ||
| 248 | res_phys_pud_init(pud, __pa(start), __pa(next)); | ||
| 249 | set_pgd(temp_level4_pgt + pgd_index(start), | ||
| 250 | mk_kernel_pgd(__pa(pud))); | ||
| 251 | } | ||
| 252 | } | ||
| 253 | |||
| 254 | int swsusp_arch_resume(void) | ||
| 255 | { | ||
| 256 | unsigned long n; | ||
| 257 | |||
| 258 | n = ((end_pfn << PAGE_SHIFT) + PUD_SIZE - 1) >> PUD_SHIFT; | ||
| 259 | n += (n + PTRS_PER_PUD - 1) / PTRS_PER_PUD + 1; | ||
| 260 | pr_debug("swsusp_arch_resume(): pages needed = %lu\n", n); | ||
| 261 | if (alloc_usable_pages(n)) { | ||
| 262 | free_eaten_memory(); | ||
| 263 | return -ENOMEM; | ||
| 264 | } | ||
| 265 | /* We have got enough memory and from now on we cannot recover */ | ||
| 266 | set_up_temporary_mappings(); | ||
| 267 | restore_image(); | ||
| 268 | return 0; | ||
| 269 | } | ||
| 270 | #endif /* CONFIG_SOFTWARE_SUSPEND */ | ||
diff --git a/arch/x86_64/kernel/suspend_asm.S b/arch/x86_64/kernel/suspend_asm.S index 4d659e97df10..320b6fb00cca 100644 --- a/arch/x86_64/kernel/suspend_asm.S +++ b/arch/x86_64/kernel/suspend_asm.S | |||
| @@ -39,12 +39,13 @@ ENTRY(swsusp_arch_suspend) | |||
| 39 | call swsusp_save | 39 | call swsusp_save |
| 40 | ret | 40 | ret |
| 41 | 41 | ||
| 42 | ENTRY(swsusp_arch_resume) | 42 | ENTRY(restore_image) |
| 43 | /* set up cr3 */ | 43 | /* switch to temporary page tables */ |
| 44 | leaq init_level4_pgt(%rip),%rax | 44 | movq $__PAGE_OFFSET, %rdx |
| 45 | subq $__START_KERNEL_map,%rax | 45 | movq temp_level4_pgt(%rip), %rax |
| 46 | movq %rax,%cr3 | 46 | subq %rdx, %rax |
| 47 | 47 | movq %rax, %cr3 | |
| 48 | /* Flush TLB */ | ||
| 48 | movq mmu_cr4_features(%rip), %rax | 49 | movq mmu_cr4_features(%rip), %rax |
| 49 | movq %rax, %rdx | 50 | movq %rax, %rdx |
| 50 | andq $~(1<<7), %rdx # PGE | 51 | andq $~(1<<7), %rdx # PGE |
| @@ -69,6 +70,10 @@ loop: | |||
| 69 | movq pbe_next(%rdx), %rdx | 70 | movq pbe_next(%rdx), %rdx |
| 70 | jmp loop | 71 | jmp loop |
| 71 | done: | 72 | done: |
| 73 | /* go back to the original page tables */ | ||
| 74 | leaq init_level4_pgt(%rip), %rax | ||
| 75 | subq $__START_KERNEL_map, %rax | ||
| 76 | movq %rax, %cr3 | ||
| 72 | /* Flush TLB, including "global" things (vmalloc) */ | 77 | /* Flush TLB, including "global" things (vmalloc) */ |
| 73 | movq mmu_cr4_features(%rip), %rax | 78 | movq mmu_cr4_features(%rip), %rax |
| 74 | movq %rax, %rdx | 79 | movq %rax, %rdx |
diff --git a/arch/x86_64/mm/pageattr.c b/arch/x86_64/mm/pageattr.c index 94862e1ec032..b90e8fe9eeb0 100644 --- a/arch/x86_64/mm/pageattr.c +++ b/arch/x86_64/mm/pageattr.c | |||
| @@ -220,8 +220,6 @@ void global_flush_tlb(void) | |||
| 220 | down_read(&init_mm.mmap_sem); | 220 | down_read(&init_mm.mmap_sem); |
| 221 | df = xchg(&df_list, NULL); | 221 | df = xchg(&df_list, NULL); |
| 222 | up_read(&init_mm.mmap_sem); | 222 | up_read(&init_mm.mmap_sem); |
| 223 | if (!df) | ||
| 224 | return; | ||
| 225 | flush_map((df && !df->next) ? df->address : 0); | 223 | flush_map((df && !df->next) ? df->address : 0); |
| 226 | for (; df; df = next_df) { | 224 | for (; df; df = next_df) { |
| 227 | next_df = df->next; | 225 | next_df = df->next; |
