Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: add base support for Marvell Dove SoC

The Marvell Dove (88AP510) is a high-performance, highly integrated,
low power SoC with high-end ARM-compatible processor (known as PJ4),
graphics processing unit, high-definition video decoding acceleration
hardware, and a broad range of peripherals.

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: Saeed Bishara <saeed@marvell.com>
Signed-off-by: Nicolas Pitre <nico@marvell.com>

authored by

Saeed Bishara and committed by
Nicolas Pitre
edabd38e 8d27b2f7

+3773 -2
+13
arch/arm/Kconfig
··· 433 433 If you have any questions or comments about the Linux kernel port 434 434 to this board, send e-mail to <sjhill@cotw.com>. 435 435 436 + config ARCH_DOVE 437 + bool "Marvell Dove" 438 + select PCI 439 + select GENERIC_GPIO 440 + select ARCH_REQUIRE_GPIOLIB 441 + select GENERIC_TIME 442 + select GENERIC_CLOCKEVENTS 443 + select PLAT_ORION 444 + help 445 + Support for the Marvell Dove SoC 88AP510 446 + 436 447 config ARCH_KIRKWOOD 437 448 bool "Marvell Kirkwood" 438 449 select CPU_FEROCEON ··· 757 746 source "arch/arm/mach-orion5x/Kconfig" 758 747 759 748 source "arch/arm/mach-kirkwood/Kconfig" 749 + 750 + source "arch/arm/mach-dove/Kconfig" 760 751 761 752 source "arch/arm/plat-s3c24xx/Kconfig" 762 753 source "arch/arm/plat-s3c64xx/Kconfig"
+1
arch/arm/Makefile
··· 122 122 machine-$(CONFIG_ARCH_BCMRING) := bcmring 123 123 machine-$(CONFIG_ARCH_CLPS711X) := clps711x 124 124 machine-$(CONFIG_ARCH_DAVINCI) := davinci 125 + machine-$(CONFIG_ARCH_DOVE) := dove 125 126 machine-$(CONFIG_ARCH_EBSA110) := ebsa110 126 127 machine-$(CONFIG_ARCH_EP93XX) := ep93xx 127 128 machine-$(CONFIG_ARCH_GEMINI) := gemini
+6
arch/arm/boot/compressed/head.S
··· 743 743 W(b) __armv4_mmu_cache_off 744 744 W(b) __armv6_mmu_cache_flush 745 745 746 + .word 0x560f5810 @ Marvell PJ4 ARMv6 747 + .word 0xff0ffff0 748 + W(b) __armv4_mmu_cache_on 749 + W(b) __armv4_mmu_cache_off 750 + W(b) __armv6_mmu_cache_flush 751 + 746 752 .word 0x000f0000 @ new CPU Id 747 753 .word 0x000f0000 748 754 W(b) __armv7_mmu_cache_on
+1617
arch/arm/configs/dove_defconfig
··· 1 + # 2 + # Automatically generated make config: don't edit 3 + # Linux kernel version: 2.6.32-rc6 4 + # Tue Nov 24 13:48:39 2009 5 + # 6 + CONFIG_ARM=y 7 + CONFIG_SYS_SUPPORTS_APM_EMULATION=y 8 + CONFIG_GENERIC_GPIO=y 9 + CONFIG_GENERIC_TIME=y 10 + CONFIG_GENERIC_CLOCKEVENTS=y 11 + CONFIG_GENERIC_HARDIRQS=y 12 + CONFIG_STACKTRACE_SUPPORT=y 13 + CONFIG_HAVE_LATENCYTOP_SUPPORT=y 14 + CONFIG_LOCKDEP_SUPPORT=y 15 + CONFIG_TRACE_IRQFLAGS_SUPPORT=y 16 + CONFIG_HARDIRQS_SW_RESEND=y 17 + CONFIG_GENERIC_IRQ_PROBE=y 18 + CONFIG_RWSEM_GENERIC_SPINLOCK=y 19 + CONFIG_GENERIC_HWEIGHT=y 20 + CONFIG_GENERIC_CALIBRATE_DELAY=y 21 + CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 22 + CONFIG_VECTORS_BASE=0xffff0000 23 + CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 24 + CONFIG_CONSTRUCTORS=y 25 + 26 + # 27 + # General setup 28 + # 29 + CONFIG_EXPERIMENTAL=y 30 + CONFIG_BROKEN_ON_SMP=y 31 + CONFIG_INIT_ENV_ARG_LIMIT=32 32 + CONFIG_LOCALVERSION="" 33 + CONFIG_LOCALVERSION_AUTO=y 34 + CONFIG_SWAP=y 35 + CONFIG_SYSVIPC=y 36 + CONFIG_SYSVIPC_SYSCTL=y 37 + # CONFIG_POSIX_MQUEUE is not set 38 + # CONFIG_BSD_PROCESS_ACCT is not set 39 + # CONFIG_TASKSTATS is not set 40 + # CONFIG_AUDIT is not set 41 + 42 + # 43 + # RCU Subsystem 44 + # 45 + CONFIG_TREE_RCU=y 46 + # CONFIG_TREE_PREEMPT_RCU is not set 47 + # CONFIG_RCU_TRACE is not set 48 + CONFIG_RCU_FANOUT=32 49 + # CONFIG_RCU_FANOUT_EXACT is not set 50 + # CONFIG_TREE_RCU_TRACE is not set 51 + # CONFIG_IKCONFIG is not set 52 + CONFIG_LOG_BUF_SHIFT=14 53 + # CONFIG_GROUP_SCHED is not set 54 + # CONFIG_CGROUPS is not set 55 + # CONFIG_SYSFS_DEPRECATED_V2 is not set 56 + # CONFIG_RELAY is not set 57 + # CONFIG_NAMESPACES is not set 58 + # CONFIG_BLK_DEV_INITRD is not set 59 + CONFIG_CC_OPTIMIZE_FOR_SIZE=y 60 + CONFIG_SYSCTL=y 61 + CONFIG_ANON_INODES=y 62 + CONFIG_EMBEDDED=y 63 + CONFIG_UID16=y 64 + CONFIG_SYSCTL_SYSCALL=y 65 + CONFIG_KALLSYMS=y 66 + # CONFIG_KALLSYMS_ALL is not set 67 + # CONFIG_KALLSYMS_EXTRA_PASS is not set 68 + CONFIG_HOTPLUG=y 69 + CONFIG_PRINTK=y 70 + CONFIG_BUG=y 71 + CONFIG_ELF_CORE=y 72 + CONFIG_BASE_FULL=y 73 + CONFIG_FUTEX=y 74 + CONFIG_EPOLL=y 75 + CONFIG_SIGNALFD=y 76 + CONFIG_TIMERFD=y 77 + CONFIG_EVENTFD=y 78 + CONFIG_SHMEM=y 79 + CONFIG_AIO=y 80 + 81 + # 82 + # Kernel Performance Events And Counters 83 + # 84 + CONFIG_VM_EVENT_COUNTERS=y 85 + CONFIG_PCI_QUIRKS=y 86 + CONFIG_COMPAT_BRK=y 87 + CONFIG_SLAB=y 88 + # CONFIG_SLUB is not set 89 + # CONFIG_SLOB is not set 90 + # CONFIG_PROFILING is not set 91 + CONFIG_HAVE_OPROFILE=y 92 + # CONFIG_KPROBES is not set 93 + CONFIG_HAVE_KPROBES=y 94 + CONFIG_HAVE_KRETPROBES=y 95 + 96 + # 97 + # GCOV-based kernel profiling 98 + # 99 + # CONFIG_GCOV_KERNEL is not set 100 + # CONFIG_SLOW_WORK is not set 101 + CONFIG_HAVE_GENERIC_DMA_COHERENT=y 102 + CONFIG_SLABINFO=y 103 + CONFIG_RT_MUTEXES=y 104 + CONFIG_BASE_SMALL=0 105 + CONFIG_MODULES=y 106 + # CONFIG_MODULE_FORCE_LOAD is not set 107 + CONFIG_MODULE_UNLOAD=y 108 + # CONFIG_MODULE_FORCE_UNLOAD is not set 109 + # CONFIG_MODVERSIONS is not set 110 + # CONFIG_MODULE_SRCVERSION_ALL is not set 111 + CONFIG_BLOCK=y 112 + CONFIG_LBDAF=y 113 + # CONFIG_BLK_DEV_BSG is not set 114 + # CONFIG_BLK_DEV_INTEGRITY is not set 115 + 116 + # 117 + # IO Schedulers 118 + # 119 + CONFIG_IOSCHED_NOOP=y 120 + CONFIG_IOSCHED_AS=y 121 + CONFIG_IOSCHED_DEADLINE=y 122 + CONFIG_IOSCHED_CFQ=y 123 + # CONFIG_DEFAULT_AS is not set 124 + # CONFIG_DEFAULT_DEADLINE is not set 125 + CONFIG_DEFAULT_CFQ=y 126 + # CONFIG_DEFAULT_NOOP is not set 127 + CONFIG_DEFAULT_IOSCHED="cfq" 128 + # CONFIG_FREEZER is not set 129 + 130 + # 131 + # System Type 132 + # 133 + CONFIG_MMU=y 134 + # CONFIG_ARCH_AAEC2000 is not set 135 + # CONFIG_ARCH_INTEGRATOR is not set 136 + # CONFIG_ARCH_REALVIEW is not set 137 + # CONFIG_ARCH_VERSATILE is not set 138 + # CONFIG_ARCH_AT91 is not set 139 + # CONFIG_ARCH_CLPS711X is not set 140 + # CONFIG_ARCH_GEMINI is not set 141 + # CONFIG_ARCH_EBSA110 is not set 142 + # CONFIG_ARCH_EP93XX is not set 143 + # CONFIG_ARCH_FOOTBRIDGE is not set 144 + # CONFIG_ARCH_MXC is not set 145 + # CONFIG_ARCH_STMP3XXX is not set 146 + # CONFIG_ARCH_NETX is not set 147 + # CONFIG_ARCH_H720X is not set 148 + # CONFIG_ARCH_NOMADIK is not set 149 + # CONFIG_ARCH_IOP13XX is not set 150 + # CONFIG_ARCH_IOP32X is not set 151 + # CONFIG_ARCH_IOP33X is not set 152 + # CONFIG_ARCH_IXP23XX is not set 153 + # CONFIG_ARCH_IXP2000 is not set 154 + # CONFIG_ARCH_IXP4XX is not set 155 + # CONFIG_ARCH_L7200 is not set 156 + CONFIG_ARCH_DOVE=y 157 + # CONFIG_ARCH_KIRKWOOD is not set 158 + # CONFIG_ARCH_LOKI is not set 159 + # CONFIG_ARCH_MV78XX0 is not set 160 + # CONFIG_ARCH_ORION5X is not set 161 + # CONFIG_ARCH_MMP is not set 162 + # CONFIG_ARCH_KS8695 is not set 163 + # CONFIG_ARCH_NS9XXX is not set 164 + # CONFIG_ARCH_W90X900 is not set 165 + # CONFIG_ARCH_PNX4008 is not set 166 + # CONFIG_ARCH_PXA is not set 167 + # CONFIG_ARCH_MSM is not set 168 + # CONFIG_ARCH_RPC is not set 169 + # CONFIG_ARCH_SA1100 is not set 170 + # CONFIG_ARCH_S3C2410 is not set 171 + # CONFIG_ARCH_S3C64XX is not set 172 + # CONFIG_ARCH_S5PC1XX is not set 173 + # CONFIG_ARCH_SHARK is not set 174 + # CONFIG_ARCH_LH7A40X is not set 175 + # CONFIG_ARCH_U300 is not set 176 + # CONFIG_ARCH_DAVINCI is not set 177 + # CONFIG_ARCH_OMAP is not set 178 + # CONFIG_ARCH_BCMRING is not set 179 + 180 + # 181 + # Marvell Dove Implementations 182 + # 183 + CONFIG_MACH_DOVE_DB=y 184 + CONFIG_PLAT_ORION=y 185 + 186 + # 187 + # Processor Type 188 + # 189 + CONFIG_CPU_32=y 190 + CONFIG_CPU_V6=y 191 + CONFIG_CPU_32v6K=y 192 + CONFIG_CPU_32v6=y 193 + CONFIG_CPU_ABRT_EV6=y 194 + CONFIG_CPU_PABRT_V6=y 195 + CONFIG_CPU_CACHE_V6=y 196 + CONFIG_CPU_CACHE_VIPT=y 197 + CONFIG_CPU_COPY_V6=y 198 + CONFIG_CPU_TLB_V6=y 199 + CONFIG_CPU_HAS_ASID=y 200 + CONFIG_CPU_CP15=y 201 + CONFIG_CPU_CP15_MMU=y 202 + 203 + # 204 + # Processor Features 205 + # 206 + CONFIG_ARM_THUMB=y 207 + # CONFIG_CPU_ICACHE_DISABLE is not set 208 + # CONFIG_CPU_DCACHE_DISABLE is not set 209 + # CONFIG_CPU_BPREDICT_DISABLE is not set 210 + CONFIG_ARM_L1_CACHE_SHIFT=5 211 + # CONFIG_ARM_ERRATA_411920 is not set 212 + 213 + # 214 + # Bus support 215 + # 216 + CONFIG_PCI=y 217 + CONFIG_PCI_SYSCALL=y 218 + # CONFIG_ARCH_SUPPORTS_MSI is not set 219 + CONFIG_PCI_LEGACY=y 220 + # CONFIG_PCI_DEBUG is not set 221 + # CONFIG_PCI_STUB is not set 222 + # CONFIG_PCI_IOV is not set 223 + # CONFIG_PCCARD is not set 224 + 225 + # 226 + # Kernel Features 227 + # 228 + CONFIG_TICK_ONESHOT=y 229 + CONFIG_NO_HZ=y 230 + CONFIG_HIGH_RES_TIMERS=y 231 + CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 232 + CONFIG_VMSPLIT_3G=y 233 + # CONFIG_VMSPLIT_2G is not set 234 + # CONFIG_VMSPLIT_1G is not set 235 + CONFIG_PAGE_OFFSET=0xC0000000 236 + CONFIG_PREEMPT_NONE=y 237 + # CONFIG_PREEMPT_VOLUNTARY is not set 238 + # CONFIG_PREEMPT is not set 239 + CONFIG_HZ=100 240 + CONFIG_AEABI=y 241 + CONFIG_OABI_COMPAT=y 242 + # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set 243 + # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set 244 + # CONFIG_HIGHMEM is not set 245 + CONFIG_SELECT_MEMORY_MODEL=y 246 + CONFIG_FLATMEM_MANUAL=y 247 + # CONFIG_DISCONTIGMEM_MANUAL is not set 248 + # CONFIG_SPARSEMEM_MANUAL is not set 249 + CONFIG_FLATMEM=y 250 + CONFIG_FLAT_NODE_MEM_MAP=y 251 + CONFIG_PAGEFLAGS_EXTENDED=y 252 + CONFIG_SPLIT_PTLOCK_CPUS=4 253 + # CONFIG_PHYS_ADDR_T_64BIT is not set 254 + CONFIG_ZONE_DMA_FLAG=0 255 + CONFIG_VIRT_TO_BUS=y 256 + CONFIG_HAVE_MLOCK=y 257 + CONFIG_HAVE_MLOCKED_PAGE_BIT=y 258 + # CONFIG_KSM is not set 259 + CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 260 + CONFIG_ALIGNMENT_TRAP=y 261 + # CONFIG_UACCESS_WITH_MEMCPY is not set 262 + 263 + # 264 + # Boot options 265 + # 266 + CONFIG_ZBOOT_ROM_TEXT=0x0 267 + CONFIG_ZBOOT_ROM_BSS=0x0 268 + CONFIG_CMDLINE="" 269 + # CONFIG_XIP_KERNEL is not set 270 + # CONFIG_KEXEC is not set 271 + 272 + # 273 + # CPU Power Management 274 + # 275 + # CONFIG_CPU_IDLE is not set 276 + 277 + # 278 + # Floating point emulation 279 + # 280 + 281 + # 282 + # At least one emulation must be selected 283 + # 284 + # CONFIG_FPE_NWFPE is not set 285 + # CONFIG_FPE_FASTFPE is not set 286 + CONFIG_VFP=y 287 + 288 + # 289 + # Userspace binary formats 290 + # 291 + CONFIG_BINFMT_ELF=y 292 + # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 293 + CONFIG_HAVE_AOUT=y 294 + # CONFIG_BINFMT_AOUT is not set 295 + # CONFIG_BINFMT_MISC is not set 296 + 297 + # 298 + # Power management options 299 + # 300 + # CONFIG_PM is not set 301 + CONFIG_ARCH_SUSPEND_POSSIBLE=y 302 + CONFIG_NET=y 303 + 304 + # 305 + # Networking options 306 + # 307 + CONFIG_PACKET=y 308 + CONFIG_PACKET_MMAP=y 309 + CONFIG_UNIX=y 310 + CONFIG_XFRM=y 311 + # CONFIG_XFRM_USER is not set 312 + # CONFIG_XFRM_SUB_POLICY is not set 313 + # CONFIG_XFRM_MIGRATE is not set 314 + # CONFIG_XFRM_STATISTICS is not set 315 + # CONFIG_NET_KEY is not set 316 + CONFIG_INET=y 317 + CONFIG_IP_MULTICAST=y 318 + # CONFIG_IP_ADVANCED_ROUTER is not set 319 + CONFIG_IP_FIB_HASH=y 320 + CONFIG_IP_PNP=y 321 + CONFIG_IP_PNP_DHCP=y 322 + CONFIG_IP_PNP_BOOTP=y 323 + # CONFIG_IP_PNP_RARP is not set 324 + # CONFIG_NET_IPIP is not set 325 + # CONFIG_NET_IPGRE is not set 326 + # CONFIG_IP_MROUTE is not set 327 + # CONFIG_ARPD is not set 328 + # CONFIG_SYN_COOKIES is not set 329 + # CONFIG_INET_AH is not set 330 + # CONFIG_INET_ESP is not set 331 + # CONFIG_INET_IPCOMP is not set 332 + # CONFIG_INET_XFRM_TUNNEL is not set 333 + # CONFIG_INET_TUNNEL is not set 334 + CONFIG_INET_XFRM_MODE_TRANSPORT=y 335 + CONFIG_INET_XFRM_MODE_TUNNEL=y 336 + CONFIG_INET_XFRM_MODE_BEET=y 337 + CONFIG_INET_LRO=y 338 + CONFIG_INET_DIAG=y 339 + CONFIG_INET_TCP_DIAG=y 340 + # CONFIG_TCP_CONG_ADVANCED is not set 341 + CONFIG_TCP_CONG_CUBIC=y 342 + CONFIG_DEFAULT_TCP_CONG="cubic" 343 + # CONFIG_TCP_MD5SIG is not set 344 + # CONFIG_IPV6 is not set 345 + # CONFIG_NETWORK_SECMARK is not set 346 + # CONFIG_NETFILTER is not set 347 + # CONFIG_IP_DCCP is not set 348 + # CONFIG_IP_SCTP is not set 349 + # CONFIG_RDS is not set 350 + # CONFIG_TIPC is not set 351 + # CONFIG_ATM is not set 352 + # CONFIG_BRIDGE is not set 353 + # CONFIG_NET_DSA is not set 354 + # CONFIG_VLAN_8021Q is not set 355 + # CONFIG_DECNET is not set 356 + # CONFIG_LLC2 is not set 357 + # CONFIG_IPX is not set 358 + # CONFIG_ATALK is not set 359 + # CONFIG_X25 is not set 360 + # CONFIG_LAPB is not set 361 + # CONFIG_ECONET is not set 362 + # CONFIG_WAN_ROUTER is not set 363 + # CONFIG_PHONET is not set 364 + # CONFIG_IEEE802154 is not set 365 + # CONFIG_NET_SCHED is not set 366 + # CONFIG_DCB is not set 367 + 368 + # 369 + # Network testing 370 + # 371 + # CONFIG_NET_PKTGEN is not set 372 + # CONFIG_HAMRADIO is not set 373 + # CONFIG_CAN is not set 374 + # CONFIG_IRDA is not set 375 + # CONFIG_BT is not set 376 + # CONFIG_AF_RXRPC is not set 377 + # CONFIG_WIRELESS is not set 378 + # CONFIG_WIMAX is not set 379 + # CONFIG_RFKILL is not set 380 + # CONFIG_NET_9P is not set 381 + 382 + # 383 + # Device Drivers 384 + # 385 + 386 + # 387 + # Generic Driver Options 388 + # 389 + CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 390 + # CONFIG_DEVTMPFS is not set 391 + CONFIG_STANDALONE=y 392 + CONFIG_PREVENT_FIRMWARE_BUILD=y 393 + CONFIG_FW_LOADER=y 394 + CONFIG_FIRMWARE_IN_KERNEL=y 395 + CONFIG_EXTRA_FIRMWARE="" 396 + # CONFIG_DEBUG_DRIVER is not set 397 + # CONFIG_DEBUG_DEVRES is not set 398 + # CONFIG_SYS_HYPERVISOR is not set 399 + # CONFIG_CONNECTOR is not set 400 + CONFIG_MTD=y 401 + # CONFIG_MTD_DEBUG is not set 402 + # CONFIG_MTD_TESTS is not set 403 + # CONFIG_MTD_CONCAT is not set 404 + CONFIG_MTD_PARTITIONS=y 405 + # CONFIG_MTD_REDBOOT_PARTS is not set 406 + CONFIG_MTD_CMDLINE_PARTS=y 407 + # CONFIG_MTD_AFS_PARTS is not set 408 + # CONFIG_MTD_AR7_PARTS is not set 409 + 410 + # 411 + # User Modules And Translation Layers 412 + # 413 + CONFIG_MTD_CHAR=y 414 + CONFIG_MTD_BLKDEVS=y 415 + CONFIG_MTD_BLOCK=y 416 + # CONFIG_FTL is not set 417 + # CONFIG_NFTL is not set 418 + # CONFIG_INFTL is not set 419 + # CONFIG_RFD_FTL is not set 420 + # CONFIG_SSFDC is not set 421 + # CONFIG_MTD_OOPS is not set 422 + 423 + # 424 + # RAM/ROM/Flash chip drivers 425 + # 426 + CONFIG_MTD_CFI=y 427 + CONFIG_MTD_JEDECPROBE=y 428 + CONFIG_MTD_GEN_PROBE=y 429 + CONFIG_MTD_CFI_ADV_OPTIONS=y 430 + CONFIG_MTD_CFI_NOSWAP=y 431 + # CONFIG_MTD_CFI_BE_BYTE_SWAP is not set 432 + # CONFIG_MTD_CFI_LE_BYTE_SWAP is not set 433 + CONFIG_MTD_CFI_GEOMETRY=y 434 + CONFIG_MTD_MAP_BANK_WIDTH_1=y 435 + CONFIG_MTD_MAP_BANK_WIDTH_2=y 436 + # CONFIG_MTD_MAP_BANK_WIDTH_4 is not set 437 + # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set 438 + # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set 439 + # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set 440 + CONFIG_MTD_CFI_I1=y 441 + CONFIG_MTD_CFI_I2=y 442 + # CONFIG_MTD_CFI_I4 is not set 443 + # CONFIG_MTD_CFI_I8 is not set 444 + # CONFIG_MTD_OTP is not set 445 + CONFIG_MTD_CFI_INTELEXT=y 446 + # CONFIG_MTD_CFI_AMDSTD is not set 447 + CONFIG_MTD_CFI_STAA=y 448 + CONFIG_MTD_CFI_UTIL=y 449 + # CONFIG_MTD_RAM is not set 450 + # CONFIG_MTD_ROM is not set 451 + # CONFIG_MTD_ABSENT is not set 452 + 453 + # 454 + # Mapping drivers for chip access 455 + # 456 + # CONFIG_MTD_COMPLEX_MAPPINGS is not set 457 + CONFIG_MTD_PHYSMAP=y 458 + # CONFIG_MTD_PHYSMAP_COMPAT is not set 459 + # CONFIG_MTD_ARM_INTEGRATOR is not set 460 + # CONFIG_MTD_IMPA7 is not set 461 + # CONFIG_MTD_INTEL_VR_NOR is not set 462 + # CONFIG_MTD_PLATRAM is not set 463 + 464 + # 465 + # Self-contained MTD device drivers 466 + # 467 + # CONFIG_MTD_PMC551 is not set 468 + # CONFIG_MTD_DATAFLASH is not set 469 + CONFIG_MTD_M25P80=y 470 + CONFIG_M25PXX_USE_FAST_READ=y 471 + # CONFIG_MTD_SST25L is not set 472 + # CONFIG_MTD_SLRAM is not set 473 + # CONFIG_MTD_PHRAM is not set 474 + # CONFIG_MTD_MTDRAM is not set 475 + # CONFIG_MTD_BLOCK2MTD is not set 476 + 477 + # 478 + # Disk-On-Chip Device Drivers 479 + # 480 + # CONFIG_MTD_DOC2000 is not set 481 + # CONFIG_MTD_DOC2001 is not set 482 + # CONFIG_MTD_DOC2001PLUS is not set 483 + # CONFIG_MTD_NAND is not set 484 + # CONFIG_MTD_ONENAND is not set 485 + 486 + # 487 + # LPDDR flash memory drivers 488 + # 489 + # CONFIG_MTD_LPDDR is not set 490 + 491 + # 492 + # UBI - Unsorted block images 493 + # 494 + CONFIG_MTD_UBI=y 495 + CONFIG_MTD_UBI_WL_THRESHOLD=4096 496 + CONFIG_MTD_UBI_BEB_RESERVE=1 497 + # CONFIG_MTD_UBI_GLUEBI is not set 498 + 499 + # 500 + # UBI debugging options 501 + # 502 + # CONFIG_MTD_UBI_DEBUG is not set 503 + # CONFIG_PARPORT is not set 504 + CONFIG_BLK_DEV=y 505 + # CONFIG_BLK_CPQ_DA is not set 506 + # CONFIG_BLK_CPQ_CISS_DA is not set 507 + # CONFIG_BLK_DEV_DAC960 is not set 508 + # CONFIG_BLK_DEV_UMEM is not set 509 + # CONFIG_BLK_DEV_COW_COMMON is not set 510 + CONFIG_BLK_DEV_LOOP=y 511 + # CONFIG_BLK_DEV_CRYPTOLOOP is not set 512 + # CONFIG_BLK_DEV_NBD is not set 513 + # CONFIG_BLK_DEV_SX8 is not set 514 + # CONFIG_BLK_DEV_UB is not set 515 + CONFIG_BLK_DEV_RAM=y 516 + CONFIG_BLK_DEV_RAM_COUNT=1 517 + CONFIG_BLK_DEV_RAM_SIZE=4096 518 + # CONFIG_BLK_DEV_XIP is not set 519 + # CONFIG_CDROM_PKTCDVD is not set 520 + # CONFIG_ATA_OVER_ETH is not set 521 + # CONFIG_MG_DISK is not set 522 + # CONFIG_MISC_DEVICES is not set 523 + CONFIG_HAVE_IDE=y 524 + # CONFIG_IDE is not set 525 + 526 + # 527 + # SCSI device support 528 + # 529 + # CONFIG_RAID_ATTRS is not set 530 + CONFIG_SCSI=y 531 + CONFIG_SCSI_DMA=y 532 + # CONFIG_SCSI_TGT is not set 533 + # CONFIG_SCSI_NETLINK is not set 534 + # CONFIG_SCSI_PROC_FS is not set 535 + 536 + # 537 + # SCSI support type (disk, tape, CD-ROM) 538 + # 539 + CONFIG_BLK_DEV_SD=y 540 + # CONFIG_CHR_DEV_ST is not set 541 + # CONFIG_CHR_DEV_OSST is not set 542 + # CONFIG_BLK_DEV_SR is not set 543 + # CONFIG_CHR_DEV_SG is not set 544 + # CONFIG_CHR_DEV_SCH is not set 545 + # CONFIG_SCSI_MULTI_LUN is not set 546 + # CONFIG_SCSI_CONSTANTS is not set 547 + # CONFIG_SCSI_LOGGING is not set 548 + # CONFIG_SCSI_SCAN_ASYNC is not set 549 + CONFIG_SCSI_WAIT_SCAN=m 550 + 551 + # 552 + # SCSI Transports 553 + # 554 + # CONFIG_SCSI_SPI_ATTRS is not set 555 + # CONFIG_SCSI_FC_ATTRS is not set 556 + # CONFIG_SCSI_ISCSI_ATTRS is not set 557 + # CONFIG_SCSI_SAS_LIBSAS is not set 558 + # CONFIG_SCSI_SRP_ATTRS is not set 559 + # CONFIG_SCSI_LOWLEVEL is not set 560 + # CONFIG_SCSI_DH is not set 561 + # CONFIG_SCSI_OSD_INITIATOR is not set 562 + CONFIG_ATA=y 563 + # CONFIG_ATA_NONSTANDARD is not set 564 + CONFIG_ATA_VERBOSE_ERROR=y 565 + CONFIG_SATA_PMP=y 566 + # CONFIG_SATA_AHCI is not set 567 + # CONFIG_SATA_SIL24 is not set 568 + CONFIG_ATA_SFF=y 569 + # CONFIG_SATA_SVW is not set 570 + # CONFIG_ATA_PIIX is not set 571 + CONFIG_SATA_MV=y 572 + # CONFIG_SATA_NV is not set 573 + # CONFIG_PDC_ADMA is not set 574 + # CONFIG_SATA_QSTOR is not set 575 + # CONFIG_SATA_PROMISE is not set 576 + # CONFIG_SATA_SX4 is not set 577 + # CONFIG_SATA_SIL is not set 578 + # CONFIG_SATA_SIS is not set 579 + # CONFIG_SATA_ULI is not set 580 + # CONFIG_SATA_VIA is not set 581 + # CONFIG_SATA_VITESSE is not set 582 + # CONFIG_SATA_INIC162X is not set 583 + # CONFIG_PATA_ALI is not set 584 + # CONFIG_PATA_AMD is not set 585 + # CONFIG_PATA_ARTOP is not set 586 + # CONFIG_PATA_ATP867X is not set 587 + # CONFIG_PATA_ATIIXP is not set 588 + # CONFIG_PATA_CMD640_PCI is not set 589 + # CONFIG_PATA_CMD64X is not set 590 + # CONFIG_PATA_CS5520 is not set 591 + # CONFIG_PATA_CS5530 is not set 592 + # CONFIG_PATA_CYPRESS is not set 593 + # CONFIG_PATA_EFAR is not set 594 + # CONFIG_ATA_GENERIC is not set 595 + # CONFIG_PATA_HPT366 is not set 596 + # CONFIG_PATA_HPT37X is not set 597 + # CONFIG_PATA_HPT3X2N is not set 598 + # CONFIG_PATA_HPT3X3 is not set 599 + # CONFIG_PATA_IT821X is not set 600 + # CONFIG_PATA_IT8213 is not set 601 + # CONFIG_PATA_JMICRON is not set 602 + # CONFIG_PATA_TRIFLEX is not set 603 + # CONFIG_PATA_MARVELL is not set 604 + # CONFIG_PATA_MPIIX is not set 605 + # CONFIG_PATA_OLDPIIX is not set 606 + # CONFIG_PATA_NETCELL is not set 607 + # CONFIG_PATA_NINJA32 is not set 608 + # CONFIG_PATA_NS87410 is not set 609 + # CONFIG_PATA_NS87415 is not set 610 + # CONFIG_PATA_OPTI is not set 611 + # CONFIG_PATA_OPTIDMA is not set 612 + # CONFIG_PATA_PDC_OLD is not set 613 + # CONFIG_PATA_RADISYS is not set 614 + # CONFIG_PATA_RDC is not set 615 + # CONFIG_PATA_RZ1000 is not set 616 + # CONFIG_PATA_SC1200 is not set 617 + # CONFIG_PATA_SERVERWORKS is not set 618 + # CONFIG_PATA_PDC2027X is not set 619 + # CONFIG_PATA_SIL680 is not set 620 + # CONFIG_PATA_SIS is not set 621 + # CONFIG_PATA_VIA is not set 622 + # CONFIG_PATA_WINBOND is not set 623 + # CONFIG_PATA_PLATFORM is not set 624 + # CONFIG_PATA_SCH is not set 625 + # CONFIG_MD is not set 626 + # CONFIG_FUSION is not set 627 + 628 + # 629 + # IEEE 1394 (FireWire) support 630 + # 631 + 632 + # 633 + # You can enable one or both FireWire driver stacks. 634 + # 635 + 636 + # 637 + # See the help texts for more information. 638 + # 639 + # CONFIG_FIREWIRE is not set 640 + # CONFIG_IEEE1394 is not set 641 + # CONFIG_I2O is not set 642 + CONFIG_NETDEVICES=y 643 + # CONFIG_DUMMY is not set 644 + # CONFIG_BONDING is not set 645 + # CONFIG_MACVLAN is not set 646 + # CONFIG_EQUALIZER is not set 647 + # CONFIG_TUN is not set 648 + # CONFIG_VETH is not set 649 + # CONFIG_ARCNET is not set 650 + CONFIG_PHYLIB=y 651 + 652 + # 653 + # MII PHY device drivers 654 + # 655 + # CONFIG_MARVELL_PHY is not set 656 + # CONFIG_DAVICOM_PHY is not set 657 + # CONFIG_QSEMI_PHY is not set 658 + # CONFIG_LXT_PHY is not set 659 + # CONFIG_CICADA_PHY is not set 660 + # CONFIG_VITESSE_PHY is not set 661 + # CONFIG_SMSC_PHY is not set 662 + # CONFIG_BROADCOM_PHY is not set 663 + # CONFIG_ICPLUS_PHY is not set 664 + # CONFIG_REALTEK_PHY is not set 665 + # CONFIG_NATIONAL_PHY is not set 666 + # CONFIG_STE10XP is not set 667 + # CONFIG_LSI_ET1011C_PHY is not set 668 + # CONFIG_FIXED_PHY is not set 669 + # CONFIG_MDIO_BITBANG is not set 670 + # CONFIG_NET_ETHERNET is not set 671 + CONFIG_NETDEV_1000=y 672 + # CONFIG_ACENIC is not set 673 + # CONFIG_DL2K is not set 674 + # CONFIG_E1000 is not set 675 + # CONFIG_E1000E is not set 676 + # CONFIG_IP1000 is not set 677 + # CONFIG_IGB is not set 678 + # CONFIG_IGBVF is not set 679 + # CONFIG_NS83820 is not set 680 + # CONFIG_HAMACHI is not set 681 + # CONFIG_YELLOWFIN is not set 682 + # CONFIG_R8169 is not set 683 + # CONFIG_SIS190 is not set 684 + # CONFIG_SKGE is not set 685 + # CONFIG_SKY2 is not set 686 + # CONFIG_VIA_VELOCITY is not set 687 + # CONFIG_TIGON3 is not set 688 + # CONFIG_BNX2 is not set 689 + # CONFIG_CNIC is not set 690 + CONFIG_MV643XX_ETH=y 691 + # CONFIG_QLA3XXX is not set 692 + # CONFIG_ATL1 is not set 693 + # CONFIG_ATL1E is not set 694 + # CONFIG_ATL1C is not set 695 + # CONFIG_JME is not set 696 + # CONFIG_NETDEV_10000 is not set 697 + # CONFIG_TR is not set 698 + CONFIG_WLAN=y 699 + # CONFIG_WLAN_PRE80211 is not set 700 + # CONFIG_WLAN_80211 is not set 701 + 702 + # 703 + # Enable WiMAX (Networking options) to see the WiMAX drivers 704 + # 705 + 706 + # 707 + # USB Network Adapters 708 + # 709 + # CONFIG_USB_CATC is not set 710 + # CONFIG_USB_KAWETH is not set 711 + # CONFIG_USB_PEGASUS is not set 712 + # CONFIG_USB_RTL8150 is not set 713 + # CONFIG_USB_USBNET is not set 714 + # CONFIG_WAN is not set 715 + # CONFIG_FDDI is not set 716 + # CONFIG_HIPPI is not set 717 + # CONFIG_PPP is not set 718 + # CONFIG_SLIP is not set 719 + # CONFIG_NET_FC is not set 720 + # CONFIG_NETCONSOLE is not set 721 + # CONFIG_NETPOLL is not set 722 + # CONFIG_NET_POLL_CONTROLLER is not set 723 + # CONFIG_ISDN is not set 724 + # CONFIG_PHONE is not set 725 + 726 + # 727 + # Input device support 728 + # 729 + CONFIG_INPUT=y 730 + # CONFIG_INPUT_FF_MEMLESS is not set 731 + CONFIG_INPUT_POLLDEV=y 732 + 733 + # 734 + # Userland interfaces 735 + # 736 + # CONFIG_INPUT_MOUSEDEV is not set 737 + # CONFIG_INPUT_JOYDEV is not set 738 + CONFIG_INPUT_EVDEV=y 739 + # CONFIG_INPUT_EVBUG is not set 740 + 741 + # 742 + # Input Device Drivers 743 + # 744 + CONFIG_INPUT_KEYBOARD=y 745 + # CONFIG_KEYBOARD_ADP5588 is not set 746 + # CONFIG_KEYBOARD_ATKBD is not set 747 + # CONFIG_QT2160 is not set 748 + # CONFIG_KEYBOARD_LKKBD is not set 749 + # CONFIG_KEYBOARD_GPIO is not set 750 + # CONFIG_KEYBOARD_MATRIX is not set 751 + # CONFIG_KEYBOARD_MAX7359 is not set 752 + # CONFIG_KEYBOARD_NEWTON is not set 753 + # CONFIG_KEYBOARD_OPENCORES is not set 754 + # CONFIG_KEYBOARD_STOWAWAY is not set 755 + # CONFIG_KEYBOARD_SUNKBD is not set 756 + # CONFIG_KEYBOARD_XTKBD is not set 757 + CONFIG_INPUT_MOUSE=y 758 + # CONFIG_MOUSE_PS2 is not set 759 + # CONFIG_MOUSE_SERIAL is not set 760 + # CONFIG_MOUSE_APPLETOUCH is not set 761 + # CONFIG_MOUSE_BCM5974 is not set 762 + # CONFIG_MOUSE_VSXXXAA is not set 763 + # CONFIG_MOUSE_GPIO is not set 764 + # CONFIG_MOUSE_SYNAPTICS_I2C is not set 765 + # CONFIG_INPUT_JOYSTICK is not set 766 + # CONFIG_INPUT_TABLET is not set 767 + # CONFIG_INPUT_TOUCHSCREEN is not set 768 + # CONFIG_INPUT_MISC is not set 769 + 770 + # 771 + # Hardware I/O ports 772 + # 773 + # CONFIG_SERIO is not set 774 + # CONFIG_GAMEPORT is not set 775 + 776 + # 777 + # Character devices 778 + # 779 + CONFIG_VT=y 780 + CONFIG_CONSOLE_TRANSLATIONS=y 781 + CONFIG_VT_CONSOLE=y 782 + CONFIG_HW_CONSOLE=y 783 + # CONFIG_VT_HW_CONSOLE_BINDING is not set 784 + # CONFIG_DEVKMEM is not set 785 + # CONFIG_SERIAL_NONSTANDARD is not set 786 + # CONFIG_NOZOMI is not set 787 + 788 + # 789 + # Serial drivers 790 + # 791 + CONFIG_SERIAL_8250=y 792 + CONFIG_SERIAL_8250_CONSOLE=y 793 + # CONFIG_SERIAL_8250_PCI is not set 794 + CONFIG_SERIAL_8250_NR_UARTS=4 795 + CONFIG_SERIAL_8250_RUNTIME_UARTS=2 796 + # CONFIG_SERIAL_8250_EXTENDED is not set 797 + 798 + # 799 + # Non-8250 serial port support 800 + # 801 + # CONFIG_SERIAL_MAX3100 is not set 802 + CONFIG_SERIAL_CORE=y 803 + CONFIG_SERIAL_CORE_CONSOLE=y 804 + # CONFIG_SERIAL_JSM is not set 805 + CONFIG_UNIX98_PTYS=y 806 + # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 807 + CONFIG_LEGACY_PTYS=y 808 + CONFIG_LEGACY_PTY_COUNT=16 809 + # CONFIG_IPMI_HANDLER is not set 810 + # CONFIG_HW_RANDOM is not set 811 + # CONFIG_R3964 is not set 812 + # CONFIG_APPLICOM is not set 813 + # CONFIG_RAW_DRIVER is not set 814 + # CONFIG_TCG_TPM is not set 815 + CONFIG_DEVPORT=y 816 + CONFIG_I2C=y 817 + CONFIG_I2C_BOARDINFO=y 818 + CONFIG_I2C_COMPAT=y 819 + CONFIG_I2C_CHARDEV=y 820 + CONFIG_I2C_HELPER_AUTO=y 821 + 822 + # 823 + # I2C Hardware Bus support 824 + # 825 + 826 + # 827 + # PC SMBus host controller drivers 828 + # 829 + # CONFIG_I2C_ALI1535 is not set 830 + # CONFIG_I2C_ALI1563 is not set 831 + # CONFIG_I2C_ALI15X3 is not set 832 + # CONFIG_I2C_AMD756 is not set 833 + # CONFIG_I2C_AMD8111 is not set 834 + # CONFIG_I2C_I801 is not set 835 + # CONFIG_I2C_ISCH is not set 836 + # CONFIG_I2C_PIIX4 is not set 837 + # CONFIG_I2C_NFORCE2 is not set 838 + # CONFIG_I2C_SIS5595 is not set 839 + # CONFIG_I2C_SIS630 is not set 840 + # CONFIG_I2C_SIS96X is not set 841 + # CONFIG_I2C_VIA is not set 842 + # CONFIG_I2C_VIAPRO is not set 843 + 844 + # 845 + # I2C system bus drivers (mostly embedded / system-on-chip) 846 + # 847 + # CONFIG_I2C_GPIO is not set 848 + CONFIG_I2C_MV64XXX=y 849 + # CONFIG_I2C_OCORES is not set 850 + # CONFIG_I2C_SIMTEC is not set 851 + 852 + # 853 + # External I2C/SMBus adapter drivers 854 + # 855 + # CONFIG_I2C_PARPORT_LIGHT is not set 856 + # CONFIG_I2C_TAOS_EVM is not set 857 + # CONFIG_I2C_TINY_USB is not set 858 + 859 + # 860 + # Graphics adapter I2C/DDC channel drivers 861 + # 862 + # CONFIG_I2C_VOODOO3 is not set 863 + 864 + # 865 + # Other I2C/SMBus bus drivers 866 + # 867 + # CONFIG_I2C_PCA_PLATFORM is not set 868 + # CONFIG_I2C_STUB is not set 869 + 870 + # 871 + # Miscellaneous I2C Chip support 872 + # 873 + # CONFIG_DS1682 is not set 874 + # CONFIG_SENSORS_TSL2550 is not set 875 + # CONFIG_I2C_DEBUG_CORE is not set 876 + # CONFIG_I2C_DEBUG_ALGO is not set 877 + # CONFIG_I2C_DEBUG_BUS is not set 878 + # CONFIG_I2C_DEBUG_CHIP is not set 879 + CONFIG_SPI=y 880 + # CONFIG_SPI_DEBUG is not set 881 + CONFIG_SPI_MASTER=y 882 + 883 + # 884 + # SPI Master Controller Drivers 885 + # 886 + # CONFIG_SPI_BITBANG is not set 887 + # CONFIG_SPI_GPIO is not set 888 + CONFIG_SPI_ORION=y 889 + 890 + # 891 + # SPI Protocol Masters 892 + # 893 + # CONFIG_SPI_SPIDEV is not set 894 + # CONFIG_SPI_TLE62X0 is not set 895 + 896 + # 897 + # PPS support 898 + # 899 + # CONFIG_PPS is not set 900 + CONFIG_ARCH_REQUIRE_GPIOLIB=y 901 + CONFIG_GPIOLIB=y 902 + # CONFIG_DEBUG_GPIO is not set 903 + # CONFIG_GPIO_SYSFS is not set 904 + 905 + # 906 + # Memory mapped GPIO expanders: 907 + # 908 + 909 + # 910 + # I2C GPIO expanders: 911 + # 912 + # CONFIG_GPIO_MAX732X is not set 913 + # CONFIG_GPIO_PCA953X is not set 914 + # CONFIG_GPIO_PCF857X is not set 915 + 916 + # 917 + # PCI GPIO expanders: 918 + # 919 + # CONFIG_GPIO_BT8XX is not set 920 + # CONFIG_GPIO_LANGWELL is not set 921 + 922 + # 923 + # SPI GPIO expanders: 924 + # 925 + # CONFIG_GPIO_MAX7301 is not set 926 + # CONFIG_GPIO_MCP23S08 is not set 927 + # CONFIG_GPIO_MC33880 is not set 928 + 929 + # 930 + # AC97 GPIO expanders: 931 + # 932 + # CONFIG_W1 is not set 933 + # CONFIG_POWER_SUPPLY is not set 934 + # CONFIG_HWMON is not set 935 + # CONFIG_THERMAL is not set 936 + # CONFIG_WATCHDOG is not set 937 + CONFIG_SSB_POSSIBLE=y 938 + 939 + # 940 + # Sonics Silicon Backplane 941 + # 942 + # CONFIG_SSB is not set 943 + 944 + # 945 + # Multifunction device drivers 946 + # 947 + # CONFIG_MFD_CORE is not set 948 + # CONFIG_MFD_SM501 is not set 949 + # CONFIG_MFD_ASIC3 is not set 950 + # CONFIG_HTC_EGPIO is not set 951 + # CONFIG_HTC_PASIC3 is not set 952 + # CONFIG_TPS65010 is not set 953 + # CONFIG_TWL4030_CORE is not set 954 + # CONFIG_MFD_TMIO is not set 955 + # CONFIG_MFD_TC6393XB is not set 956 + # CONFIG_PMIC_DA903X is not set 957 + # CONFIG_MFD_WM8400 is not set 958 + # CONFIG_MFD_WM831X is not set 959 + # CONFIG_MFD_WM8350_I2C is not set 960 + # CONFIG_MFD_PCF50633 is not set 961 + # CONFIG_MFD_MC13783 is not set 962 + # CONFIG_AB3100_CORE is not set 963 + # CONFIG_EZX_PCAP is not set 964 + # CONFIG_REGULATOR is not set 965 + # CONFIG_MEDIA_SUPPORT is not set 966 + 967 + # 968 + # Graphics support 969 + # 970 + CONFIG_VGA_ARB=y 971 + # CONFIG_DRM is not set 972 + # CONFIG_VGASTATE is not set 973 + # CONFIG_VIDEO_OUTPUT_CONTROL is not set 974 + # CONFIG_FB is not set 975 + # CONFIG_BACKLIGHT_LCD_SUPPORT is not set 976 + 977 + # 978 + # Display device support 979 + # 980 + # CONFIG_DISPLAY_SUPPORT is not set 981 + 982 + # 983 + # Console display driver support 984 + # 985 + # CONFIG_VGA_CONSOLE is not set 986 + CONFIG_DUMMY_CONSOLE=y 987 + # CONFIG_SOUND is not set 988 + CONFIG_HID_SUPPORT=y 989 + CONFIG_HID=y 990 + # CONFIG_HIDRAW is not set 991 + 992 + # 993 + # USB Input Devices 994 + # 995 + CONFIG_USB_HID=y 996 + # CONFIG_HID_PID is not set 997 + # CONFIG_USB_HIDDEV is not set 998 + 999 + # 1000 + # Special HID drivers 1001 + # 1002 + # CONFIG_HID_A4TECH is not set 1003 + # CONFIG_HID_APPLE is not set 1004 + # CONFIG_HID_BELKIN is not set 1005 + # CONFIG_HID_CHERRY is not set 1006 + # CONFIG_HID_CHICONY is not set 1007 + # CONFIG_HID_CYPRESS is not set 1008 + # CONFIG_HID_DRAGONRISE is not set 1009 + # CONFIG_HID_EZKEY is not set 1010 + # CONFIG_HID_KYE is not set 1011 + # CONFIG_HID_GYRATION is not set 1012 + # CONFIG_HID_TWINHAN is not set 1013 + # CONFIG_HID_KENSINGTON is not set 1014 + # CONFIG_HID_LOGITECH is not set 1015 + # CONFIG_HID_MICROSOFT is not set 1016 + # CONFIG_HID_MONTEREY is not set 1017 + # CONFIG_HID_NTRIG is not set 1018 + # CONFIG_HID_PANTHERLORD is not set 1019 + # CONFIG_HID_PETALYNX is not set 1020 + # CONFIG_HID_SAMSUNG is not set 1021 + # CONFIG_HID_SONY is not set 1022 + # CONFIG_HID_SUNPLUS is not set 1023 + # CONFIG_HID_GREENASIA is not set 1024 + # CONFIG_HID_SMARTJOYPLUS is not set 1025 + # CONFIG_HID_TOPSEED is not set 1026 + # CONFIG_HID_THRUSTMASTER is not set 1027 + # CONFIG_HID_ZEROPLUS is not set 1028 + CONFIG_USB_SUPPORT=y 1029 + CONFIG_USB_ARCH_HAS_HCD=y 1030 + CONFIG_USB_ARCH_HAS_OHCI=y 1031 + CONFIG_USB_ARCH_HAS_EHCI=y 1032 + CONFIG_USB=y 1033 + # CONFIG_USB_DEBUG is not set 1034 + # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set 1035 + 1036 + # 1037 + # Miscellaneous USB options 1038 + # 1039 + CONFIG_USB_DEVICEFS=y 1040 + CONFIG_USB_DEVICE_CLASS=y 1041 + # CONFIG_USB_DYNAMIC_MINORS is not set 1042 + # CONFIG_USB_OTG is not set 1043 + # CONFIG_USB_OTG_WHITELIST is not set 1044 + # CONFIG_USB_OTG_BLACKLIST_HUB is not set 1045 + # CONFIG_USB_MON is not set 1046 + # CONFIG_USB_WUSB is not set 1047 + # CONFIG_USB_WUSB_CBAF is not set 1048 + 1049 + # 1050 + # USB Host Controller Drivers 1051 + # 1052 + # CONFIG_USB_C67X00_HCD is not set 1053 + # CONFIG_USB_XHCI_HCD is not set 1054 + CONFIG_USB_EHCI_HCD=y 1055 + CONFIG_USB_EHCI_ROOT_HUB_TT=y 1056 + CONFIG_USB_EHCI_TT_NEWSCHED=y 1057 + # CONFIG_USB_OXU210HP_HCD is not set 1058 + # CONFIG_USB_ISP116X_HCD is not set 1059 + # CONFIG_USB_ISP1760_HCD is not set 1060 + # CONFIG_USB_ISP1362_HCD is not set 1061 + # CONFIG_USB_OHCI_HCD is not set 1062 + # CONFIG_USB_UHCI_HCD is not set 1063 + # CONFIG_USB_SL811_HCD is not set 1064 + # CONFIG_USB_R8A66597_HCD is not set 1065 + # CONFIG_USB_WHCI_HCD is not set 1066 + # CONFIG_USB_HWA_HCD is not set 1067 + # CONFIG_USB_MUSB_HDRC is not set 1068 + 1069 + # 1070 + # USB Device Class drivers 1071 + # 1072 + # CONFIG_USB_ACM is not set 1073 + # CONFIG_USB_PRINTER is not set 1074 + # CONFIG_USB_WDM is not set 1075 + # CONFIG_USB_TMC is not set 1076 + 1077 + # 1078 + # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may 1079 + # 1080 + 1081 + # 1082 + # also be needed; see USB_STORAGE Help for more info 1083 + # 1084 + CONFIG_USB_STORAGE=y 1085 + # CONFIG_USB_STORAGE_DEBUG is not set 1086 + # CONFIG_USB_STORAGE_DATAFAB is not set 1087 + # CONFIG_USB_STORAGE_FREECOM is not set 1088 + # CONFIG_USB_STORAGE_ISD200 is not set 1089 + # CONFIG_USB_STORAGE_USBAT is not set 1090 + # CONFIG_USB_STORAGE_SDDR09 is not set 1091 + # CONFIG_USB_STORAGE_SDDR55 is not set 1092 + # CONFIG_USB_STORAGE_JUMPSHOT is not set 1093 + # CONFIG_USB_STORAGE_ALAUDA is not set 1094 + # CONFIG_USB_STORAGE_ONETOUCH is not set 1095 + # CONFIG_USB_STORAGE_KARMA is not set 1096 + # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1097 + # CONFIG_USB_LIBUSUAL is not set 1098 + 1099 + # 1100 + # USB Imaging devices 1101 + # 1102 + # CONFIG_USB_MDC800 is not set 1103 + # CONFIG_USB_MICROTEK is not set 1104 + 1105 + # 1106 + # USB port drivers 1107 + # 1108 + # CONFIG_USB_SERIAL is not set 1109 + 1110 + # 1111 + # USB Miscellaneous drivers 1112 + # 1113 + # CONFIG_USB_EMI62 is not set 1114 + # CONFIG_USB_EMI26 is not set 1115 + # CONFIG_USB_ADUTUX is not set 1116 + # CONFIG_USB_SEVSEG is not set 1117 + # CONFIG_USB_RIO500 is not set 1118 + # CONFIG_USB_LEGOTOWER is not set 1119 + # CONFIG_USB_LCD is not set 1120 + # CONFIG_USB_BERRY_CHARGE is not set 1121 + # CONFIG_USB_LED is not set 1122 + # CONFIG_USB_CYPRESS_CY7C63 is not set 1123 + # CONFIG_USB_CYTHERM is not set 1124 + # CONFIG_USB_IDMOUSE is not set 1125 + # CONFIG_USB_FTDI_ELAN is not set 1126 + # CONFIG_USB_APPLEDISPLAY is not set 1127 + # CONFIG_USB_SISUSBVGA is not set 1128 + # CONFIG_USB_LD is not set 1129 + # CONFIG_USB_TRANCEVIBRATOR is not set 1130 + # CONFIG_USB_IOWARRIOR is not set 1131 + # CONFIG_USB_TEST is not set 1132 + # CONFIG_USB_ISIGHTFW is not set 1133 + # CONFIG_USB_VST is not set 1134 + # CONFIG_USB_GADGET is not set 1135 + 1136 + # 1137 + # OTG and related infrastructure 1138 + # 1139 + # CONFIG_USB_GPIO_VBUS is not set 1140 + # CONFIG_NOP_USB_XCEIV is not set 1141 + # CONFIG_UWB is not set 1142 + # CONFIG_MMC is not set 1143 + # CONFIG_MEMSTICK is not set 1144 + # CONFIG_NEW_LEDS is not set 1145 + # CONFIG_ACCESSIBILITY is not set 1146 + # CONFIG_INFINIBAND is not set 1147 + CONFIG_RTC_LIB=y 1148 + CONFIG_RTC_CLASS=y 1149 + CONFIG_RTC_HCTOSYS=y 1150 + CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 1151 + # CONFIG_RTC_DEBUG is not set 1152 + 1153 + # 1154 + # RTC interfaces 1155 + # 1156 + CONFIG_RTC_INTF_SYSFS=y 1157 + CONFIG_RTC_INTF_PROC=y 1158 + CONFIG_RTC_INTF_DEV=y 1159 + # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set 1160 + # CONFIG_RTC_DRV_TEST is not set 1161 + 1162 + # 1163 + # I2C RTC drivers 1164 + # 1165 + # CONFIG_RTC_DRV_DS1307 is not set 1166 + # CONFIG_RTC_DRV_DS1374 is not set 1167 + # CONFIG_RTC_DRV_DS1672 is not set 1168 + # CONFIG_RTC_DRV_MAX6900 is not set 1169 + # CONFIG_RTC_DRV_RS5C372 is not set 1170 + # CONFIG_RTC_DRV_ISL1208 is not set 1171 + # CONFIG_RTC_DRV_X1205 is not set 1172 + # CONFIG_RTC_DRV_PCF8563 is not set 1173 + # CONFIG_RTC_DRV_PCF8583 is not set 1174 + # CONFIG_RTC_DRV_M41T80 is not set 1175 + # CONFIG_RTC_DRV_S35390A is not set 1176 + # CONFIG_RTC_DRV_FM3130 is not set 1177 + # CONFIG_RTC_DRV_RX8581 is not set 1178 + # CONFIG_RTC_DRV_RX8025 is not set 1179 + 1180 + # 1181 + # SPI RTC drivers 1182 + # 1183 + # CONFIG_RTC_DRV_M41T94 is not set 1184 + # CONFIG_RTC_DRV_DS1305 is not set 1185 + # CONFIG_RTC_DRV_DS1390 is not set 1186 + # CONFIG_RTC_DRV_MAX6902 is not set 1187 + # CONFIG_RTC_DRV_R9701 is not set 1188 + # CONFIG_RTC_DRV_RS5C348 is not set 1189 + # CONFIG_RTC_DRV_DS3234 is not set 1190 + # CONFIG_RTC_DRV_PCF2123 is not set 1191 + 1192 + # 1193 + # Platform RTC drivers 1194 + # 1195 + # CONFIG_RTC_DRV_CMOS is not set 1196 + # CONFIG_RTC_DRV_DS1286 is not set 1197 + # CONFIG_RTC_DRV_DS1511 is not set 1198 + # CONFIG_RTC_DRV_DS1553 is not set 1199 + # CONFIG_RTC_DRV_DS1742 is not set 1200 + # CONFIG_RTC_DRV_STK17TA8 is not set 1201 + # CONFIG_RTC_DRV_M48T86 is not set 1202 + # CONFIG_RTC_DRV_M48T35 is not set 1203 + # CONFIG_RTC_DRV_M48T59 is not set 1204 + # CONFIG_RTC_DRV_BQ4802 is not set 1205 + # CONFIG_RTC_DRV_V3020 is not set 1206 + 1207 + # 1208 + # on-CPU RTC drivers 1209 + # 1210 + CONFIG_DMADEVICES=y 1211 + 1212 + # 1213 + # DMA Devices 1214 + # 1215 + CONFIG_MV_XOR=y 1216 + CONFIG_DMA_ENGINE=y 1217 + 1218 + # 1219 + # DMA Clients 1220 + # 1221 + # CONFIG_NET_DMA is not set 1222 + # CONFIG_ASYNC_TX_DMA is not set 1223 + # CONFIG_DMATEST is not set 1224 + # CONFIG_AUXDISPLAY is not set 1225 + # CONFIG_UIO is not set 1226 + 1227 + # 1228 + # TI VLYNQ 1229 + # 1230 + # CONFIG_STAGING is not set 1231 + 1232 + # 1233 + # File systems 1234 + # 1235 + CONFIG_EXT2_FS=y 1236 + # CONFIG_EXT2_FS_XATTR is not set 1237 + # CONFIG_EXT2_FS_XIP is not set 1238 + CONFIG_EXT3_FS=y 1239 + # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 1240 + # CONFIG_EXT3_FS_XATTR is not set 1241 + # CONFIG_EXT4_FS is not set 1242 + CONFIG_JBD=y 1243 + # CONFIG_JBD_DEBUG is not set 1244 + # CONFIG_REISERFS_FS is not set 1245 + # CONFIG_JFS_FS is not set 1246 + # CONFIG_FS_POSIX_ACL is not set 1247 + # CONFIG_XFS_FS is not set 1248 + # CONFIG_GFS2_FS is not set 1249 + # CONFIG_OCFS2_FS is not set 1250 + # CONFIG_BTRFS_FS is not set 1251 + # CONFIG_NILFS2_FS is not set 1252 + CONFIG_FILE_LOCKING=y 1253 + CONFIG_FSNOTIFY=y 1254 + CONFIG_DNOTIFY=y 1255 + CONFIG_INOTIFY=y 1256 + CONFIG_INOTIFY_USER=y 1257 + # CONFIG_QUOTA is not set 1258 + # CONFIG_AUTOFS_FS is not set 1259 + # CONFIG_AUTOFS4_FS is not set 1260 + # CONFIG_FUSE_FS is not set 1261 + 1262 + # 1263 + # Caches 1264 + # 1265 + # CONFIG_FSCACHE is not set 1266 + 1267 + # 1268 + # CD-ROM/DVD Filesystems 1269 + # 1270 + CONFIG_ISO9660_FS=y 1271 + CONFIG_JOLIET=y 1272 + # CONFIG_ZISOFS is not set 1273 + CONFIG_UDF_FS=m 1274 + CONFIG_UDF_NLS=y 1275 + 1276 + # 1277 + # DOS/FAT/NT Filesystems 1278 + # 1279 + CONFIG_FAT_FS=y 1280 + CONFIG_MSDOS_FS=y 1281 + CONFIG_VFAT_FS=y 1282 + CONFIG_FAT_DEFAULT_CODEPAGE=437 1283 + CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" 1284 + # CONFIG_NTFS_FS is not set 1285 + 1286 + # 1287 + # Pseudo filesystems 1288 + # 1289 + CONFIG_PROC_FS=y 1290 + CONFIG_PROC_SYSCTL=y 1291 + CONFIG_PROC_PAGE_MONITOR=y 1292 + CONFIG_SYSFS=y 1293 + CONFIG_TMPFS=y 1294 + # CONFIG_TMPFS_POSIX_ACL is not set 1295 + # CONFIG_HUGETLB_PAGE is not set 1296 + # CONFIG_CONFIGFS_FS is not set 1297 + CONFIG_MISC_FILESYSTEMS=y 1298 + # CONFIG_ADFS_FS is not set 1299 + # CONFIG_AFFS_FS is not set 1300 + # CONFIG_HFS_FS is not set 1301 + # CONFIG_HFSPLUS_FS is not set 1302 + # CONFIG_BEFS_FS is not set 1303 + # CONFIG_BFS_FS is not set 1304 + # CONFIG_EFS_FS is not set 1305 + CONFIG_JFFS2_FS=y 1306 + CONFIG_JFFS2_FS_DEBUG=0 1307 + CONFIG_JFFS2_FS_WRITEBUFFER=y 1308 + # CONFIG_JFFS2_FS_WBUF_VERIFY is not set 1309 + # CONFIG_JFFS2_SUMMARY is not set 1310 + # CONFIG_JFFS2_FS_XATTR is not set 1311 + # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 1312 + CONFIG_JFFS2_ZLIB=y 1313 + # CONFIG_JFFS2_LZO is not set 1314 + CONFIG_JFFS2_RTIME=y 1315 + # CONFIG_JFFS2_RUBIN is not set 1316 + # CONFIG_UBIFS_FS is not set 1317 + # CONFIG_CRAMFS is not set 1318 + # CONFIG_SQUASHFS is not set 1319 + # CONFIG_VXFS_FS is not set 1320 + # CONFIG_MINIX_FS is not set 1321 + # CONFIG_OMFS_FS is not set 1322 + # CONFIG_HPFS_FS is not set 1323 + # CONFIG_QNX4FS_FS is not set 1324 + # CONFIG_ROMFS_FS is not set 1325 + # CONFIG_SYSV_FS is not set 1326 + # CONFIG_UFS_FS is not set 1327 + CONFIG_NETWORK_FILESYSTEMS=y 1328 + CONFIG_NFS_FS=y 1329 + CONFIG_NFS_V3=y 1330 + # CONFIG_NFS_V3_ACL is not set 1331 + # CONFIG_NFS_V4 is not set 1332 + CONFIG_ROOT_NFS=y 1333 + # CONFIG_NFSD is not set 1334 + CONFIG_LOCKD=y 1335 + CONFIG_LOCKD_V4=y 1336 + CONFIG_NFS_COMMON=y 1337 + CONFIG_SUNRPC=y 1338 + # CONFIG_RPCSEC_GSS_KRB5 is not set 1339 + # CONFIG_RPCSEC_GSS_SPKM3 is not set 1340 + # CONFIG_SMB_FS is not set 1341 + # CONFIG_CIFS is not set 1342 + # CONFIG_NCP_FS is not set 1343 + # CONFIG_CODA_FS is not set 1344 + # CONFIG_AFS_FS is not set 1345 + 1346 + # 1347 + # Partition Types 1348 + # 1349 + CONFIG_PARTITION_ADVANCED=y 1350 + # CONFIG_ACORN_PARTITION is not set 1351 + # CONFIG_OSF_PARTITION is not set 1352 + # CONFIG_AMIGA_PARTITION is not set 1353 + # CONFIG_ATARI_PARTITION is not set 1354 + # CONFIG_MAC_PARTITION is not set 1355 + CONFIG_MSDOS_PARTITION=y 1356 + # CONFIG_BSD_DISKLABEL is not set 1357 + # CONFIG_MINIX_SUBPARTITION is not set 1358 + # CONFIG_SOLARIS_X86_PARTITION is not set 1359 + # CONFIG_UNIXWARE_DISKLABEL is not set 1360 + # CONFIG_LDM_PARTITION is not set 1361 + # CONFIG_SGI_PARTITION is not set 1362 + # CONFIG_ULTRIX_PARTITION is not set 1363 + # CONFIG_SUN_PARTITION is not set 1364 + # CONFIG_KARMA_PARTITION is not set 1365 + # CONFIG_EFI_PARTITION is not set 1366 + # CONFIG_SYSV68_PARTITION is not set 1367 + CONFIG_NLS=y 1368 + CONFIG_NLS_DEFAULT="iso8859-1" 1369 + CONFIG_NLS_CODEPAGE_437=y 1370 + # CONFIG_NLS_CODEPAGE_737 is not set 1371 + # CONFIG_NLS_CODEPAGE_775 is not set 1372 + CONFIG_NLS_CODEPAGE_850=y 1373 + # CONFIG_NLS_CODEPAGE_852 is not set 1374 + # CONFIG_NLS_CODEPAGE_855 is not set 1375 + # CONFIG_NLS_CODEPAGE_857 is not set 1376 + # CONFIG_NLS_CODEPAGE_860 is not set 1377 + # CONFIG_NLS_CODEPAGE_861 is not set 1378 + # CONFIG_NLS_CODEPAGE_862 is not set 1379 + # CONFIG_NLS_CODEPAGE_863 is not set 1380 + # CONFIG_NLS_CODEPAGE_864 is not set 1381 + # CONFIG_NLS_CODEPAGE_865 is not set 1382 + # CONFIG_NLS_CODEPAGE_866 is not set 1383 + # CONFIG_NLS_CODEPAGE_869 is not set 1384 + # CONFIG_NLS_CODEPAGE_936 is not set 1385 + # CONFIG_NLS_CODEPAGE_950 is not set 1386 + # CONFIG_NLS_CODEPAGE_932 is not set 1387 + # CONFIG_NLS_CODEPAGE_949 is not set 1388 + # CONFIG_NLS_CODEPAGE_874 is not set 1389 + # CONFIG_NLS_ISO8859_8 is not set 1390 + # CONFIG_NLS_CODEPAGE_1250 is not set 1391 + # CONFIG_NLS_CODEPAGE_1251 is not set 1392 + # CONFIG_NLS_ASCII is not set 1393 + CONFIG_NLS_ISO8859_1=y 1394 + CONFIG_NLS_ISO8859_2=y 1395 + # CONFIG_NLS_ISO8859_3 is not set 1396 + # CONFIG_NLS_ISO8859_4 is not set 1397 + # CONFIG_NLS_ISO8859_5 is not set 1398 + # CONFIG_NLS_ISO8859_6 is not set 1399 + # CONFIG_NLS_ISO8859_7 is not set 1400 + # CONFIG_NLS_ISO8859_9 is not set 1401 + # CONFIG_NLS_ISO8859_13 is not set 1402 + # CONFIG_NLS_ISO8859_14 is not set 1403 + # CONFIG_NLS_ISO8859_15 is not set 1404 + # CONFIG_NLS_KOI8_R is not set 1405 + # CONFIG_NLS_KOI8_U is not set 1406 + CONFIG_NLS_UTF8=y 1407 + # CONFIG_DLM is not set 1408 + 1409 + # 1410 + # Kernel hacking 1411 + # 1412 + # CONFIG_PRINTK_TIME is not set 1413 + CONFIG_ENABLE_WARN_DEPRECATED=y 1414 + CONFIG_ENABLE_MUST_CHECK=y 1415 + CONFIG_FRAME_WARN=1024 1416 + CONFIG_MAGIC_SYSRQ=y 1417 + # CONFIG_STRIP_ASM_SYMS is not set 1418 + # CONFIG_UNUSED_SYMBOLS is not set 1419 + CONFIG_DEBUG_FS=y 1420 + # CONFIG_HEADERS_CHECK is not set 1421 + CONFIG_DEBUG_KERNEL=y 1422 + # CONFIG_DEBUG_SHIRQ is not set 1423 + CONFIG_DETECT_SOFTLOCKUP=y 1424 + # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1425 + CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1426 + CONFIG_DETECT_HUNG_TASK=y 1427 + # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set 1428 + CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 1429 + # CONFIG_SCHED_DEBUG is not set 1430 + # CONFIG_SCHEDSTATS is not set 1431 + CONFIG_TIMER_STATS=y 1432 + # CONFIG_DEBUG_OBJECTS is not set 1433 + # CONFIG_DEBUG_SLAB is not set 1434 + # CONFIG_DEBUG_KMEMLEAK is not set 1435 + # CONFIG_DEBUG_RT_MUTEXES is not set 1436 + # CONFIG_RT_MUTEX_TESTER is not set 1437 + # CONFIG_DEBUG_SPINLOCK is not set 1438 + # CONFIG_DEBUG_MUTEXES is not set 1439 + # CONFIG_DEBUG_LOCK_ALLOC is not set 1440 + # CONFIG_PROVE_LOCKING is not set 1441 + # CONFIG_LOCK_STAT is not set 1442 + # CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1443 + # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1444 + # CONFIG_DEBUG_KOBJECT is not set 1445 + # CONFIG_DEBUG_BUGVERBOSE is not set 1446 + CONFIG_DEBUG_INFO=y 1447 + # CONFIG_DEBUG_VM is not set 1448 + # CONFIG_DEBUG_WRITECOUNT is not set 1449 + # CONFIG_DEBUG_MEMORY_INIT is not set 1450 + # CONFIG_DEBUG_LIST is not set 1451 + # CONFIG_DEBUG_SG is not set 1452 + # CONFIG_DEBUG_NOTIFIERS is not set 1453 + # CONFIG_DEBUG_CREDENTIALS is not set 1454 + # CONFIG_BOOT_PRINTK_DELAY is not set 1455 + # CONFIG_RCU_TORTURE_TEST is not set 1456 + # CONFIG_RCU_CPU_STALL_DETECTOR is not set 1457 + # CONFIG_BACKTRACE_SELF_TEST is not set 1458 + # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1459 + # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1460 + # CONFIG_FAULT_INJECTION is not set 1461 + # CONFIG_LATENCYTOP is not set 1462 + CONFIG_SYSCTL_SYSCALL_CHECK=y 1463 + # CONFIG_PAGE_POISONING is not set 1464 + CONFIG_HAVE_FUNCTION_TRACER=y 1465 + CONFIG_TRACING_SUPPORT=y 1466 + CONFIG_FTRACE=y 1467 + # CONFIG_FUNCTION_TRACER is not set 1468 + # CONFIG_IRQSOFF_TRACER is not set 1469 + # CONFIG_SCHED_TRACER is not set 1470 + # CONFIG_ENABLE_DEFAULT_TRACERS is not set 1471 + # CONFIG_BOOT_TRACER is not set 1472 + CONFIG_BRANCH_PROFILE_NONE=y 1473 + # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set 1474 + # CONFIG_PROFILE_ALL_BRANCHES is not set 1475 + # CONFIG_STACK_TRACER is not set 1476 + # CONFIG_KMEMTRACE is not set 1477 + # CONFIG_WORKQUEUE_TRACER is not set 1478 + # CONFIG_BLK_DEV_IO_TRACE is not set 1479 + # CONFIG_DYNAMIC_DEBUG is not set 1480 + # CONFIG_SAMPLES is not set 1481 + CONFIG_HAVE_ARCH_KGDB=y 1482 + # CONFIG_KGDB is not set 1483 + CONFIG_ARM_UNWIND=y 1484 + CONFIG_DEBUG_USER=y 1485 + CONFIG_DEBUG_ERRORS=y 1486 + # CONFIG_DEBUG_STACK_USAGE is not set 1487 + # CONFIG_DEBUG_LL is not set 1488 + 1489 + # 1490 + # Security options 1491 + # 1492 + # CONFIG_KEYS is not set 1493 + # CONFIG_SECURITY is not set 1494 + # CONFIG_SECURITYFS is not set 1495 + # CONFIG_SECURITY_FILE_CAPABILITIES is not set 1496 + CONFIG_CRYPTO=y 1497 + 1498 + # 1499 + # Crypto core or helper 1500 + # 1501 + CONFIG_CRYPTO_ALGAPI=y 1502 + CONFIG_CRYPTO_ALGAPI2=y 1503 + CONFIG_CRYPTO_AEAD2=y 1504 + CONFIG_CRYPTO_BLKCIPHER=y 1505 + CONFIG_CRYPTO_BLKCIPHER2=y 1506 + CONFIG_CRYPTO_HASH=y 1507 + CONFIG_CRYPTO_HASH2=y 1508 + CONFIG_CRYPTO_RNG2=y 1509 + CONFIG_CRYPTO_PCOMP=y 1510 + CONFIG_CRYPTO_MANAGER=y 1511 + CONFIG_CRYPTO_MANAGER2=y 1512 + # CONFIG_CRYPTO_GF128MUL is not set 1513 + CONFIG_CRYPTO_NULL=y 1514 + CONFIG_CRYPTO_WORKQUEUE=y 1515 + # CONFIG_CRYPTO_CRYPTD is not set 1516 + # CONFIG_CRYPTO_AUTHENC is not set 1517 + # CONFIG_CRYPTO_TEST is not set 1518 + 1519 + # 1520 + # Authenticated Encryption with Associated Data 1521 + # 1522 + # CONFIG_CRYPTO_CCM is not set 1523 + # CONFIG_CRYPTO_GCM is not set 1524 + # CONFIG_CRYPTO_SEQIV is not set 1525 + 1526 + # 1527 + # Block modes 1528 + # 1529 + CONFIG_CRYPTO_CBC=y 1530 + # CONFIG_CRYPTO_CTR is not set 1531 + # CONFIG_CRYPTO_CTS is not set 1532 + CONFIG_CRYPTO_ECB=m 1533 + # CONFIG_CRYPTO_LRW is not set 1534 + CONFIG_CRYPTO_PCBC=m 1535 + # CONFIG_CRYPTO_XTS is not set 1536 + 1537 + # 1538 + # Hash modes 1539 + # 1540 + CONFIG_CRYPTO_HMAC=y 1541 + # CONFIG_CRYPTO_XCBC is not set 1542 + # CONFIG_CRYPTO_VMAC is not set 1543 + 1544 + # 1545 + # Digest 1546 + # 1547 + CONFIG_CRYPTO_CRC32C=y 1548 + # CONFIG_CRYPTO_GHASH is not set 1549 + CONFIG_CRYPTO_MD4=y 1550 + CONFIG_CRYPTO_MD5=y 1551 + # CONFIG_CRYPTO_MICHAEL_MIC is not set 1552 + # CONFIG_CRYPTO_RMD128 is not set 1553 + # CONFIG_CRYPTO_RMD160 is not set 1554 + # CONFIG_CRYPTO_RMD256 is not set 1555 + # CONFIG_CRYPTO_RMD320 is not set 1556 + CONFIG_CRYPTO_SHA1=y 1557 + CONFIG_CRYPTO_SHA256=y 1558 + CONFIG_CRYPTO_SHA512=y 1559 + # CONFIG_CRYPTO_TGR192 is not set 1560 + # CONFIG_CRYPTO_WP512 is not set 1561 + 1562 + # 1563 + # Ciphers 1564 + # 1565 + CONFIG_CRYPTO_AES=y 1566 + # CONFIG_CRYPTO_ANUBIS is not set 1567 + # CONFIG_CRYPTO_ARC4 is not set 1568 + CONFIG_CRYPTO_BLOWFISH=y 1569 + # CONFIG_CRYPTO_CAMELLIA is not set 1570 + # CONFIG_CRYPTO_CAST5 is not set 1571 + # CONFIG_CRYPTO_CAST6 is not set 1572 + CONFIG_CRYPTO_DES=y 1573 + # CONFIG_CRYPTO_FCRYPT is not set 1574 + # CONFIG_CRYPTO_KHAZAD is not set 1575 + # CONFIG_CRYPTO_SALSA20 is not set 1576 + # CONFIG_CRYPTO_SEED is not set 1577 + # CONFIG_CRYPTO_SERPENT is not set 1578 + CONFIG_CRYPTO_TEA=y 1579 + CONFIG_CRYPTO_TWOFISH=y 1580 + CONFIG_CRYPTO_TWOFISH_COMMON=y 1581 + 1582 + # 1583 + # Compression 1584 + # 1585 + CONFIG_CRYPTO_DEFLATE=y 1586 + # CONFIG_CRYPTO_ZLIB is not set 1587 + CONFIG_CRYPTO_LZO=y 1588 + 1589 + # 1590 + # Random Number Generation 1591 + # 1592 + # CONFIG_CRYPTO_ANSI_CPRNG is not set 1593 + CONFIG_CRYPTO_HW=y 1594 + # CONFIG_CRYPTO_DEV_MV_CESA is not set 1595 + # CONFIG_CRYPTO_DEV_HIFN_795X is not set 1596 + # CONFIG_BINARY_PRINTF is not set 1597 + 1598 + # 1599 + # Library routines 1600 + # 1601 + CONFIG_BITREVERSE=y 1602 + CONFIG_GENERIC_FIND_LAST_BIT=y 1603 + CONFIG_CRC_CCITT=y 1604 + CONFIG_CRC16=y 1605 + # CONFIG_CRC_T10DIF is not set 1606 + CONFIG_CRC_ITU_T=m 1607 + CONFIG_CRC32=y 1608 + # CONFIG_CRC7 is not set 1609 + CONFIG_LIBCRC32C=y 1610 + CONFIG_ZLIB_INFLATE=y 1611 + CONFIG_ZLIB_DEFLATE=y 1612 + CONFIG_LZO_COMPRESS=y 1613 + CONFIG_LZO_DECOMPRESS=y 1614 + CONFIG_HAS_IOMEM=y 1615 + CONFIG_HAS_IOPORT=y 1616 + CONFIG_HAS_DMA=y 1617 + CONFIG_NLATTR=y
+14
arch/arm/mach-dove/Kconfig
··· 1 + if ARCH_DOVE 2 + 3 + menu "Marvell Dove Implementations" 4 + 5 + config MACH_DOVE_DB 6 + bool "Marvell DB-MV88AP510 Development Board" 7 + select I2C_BOARDINFO 8 + help 9 + Say 'Y' here if you want your kernel to support the 10 + Marvell DB-MV88AP510 Development Board. 11 + 12 + endmenu 13 + 14 + endif
+3
arch/arm/mach-dove/Makefile
··· 1 + obj-y += common.o addr-map.o irq.o pcie.o 2 + 3 + obj-$(CONFIG_MACH_DOVE_DB) += dove-db-setup.o
+3
arch/arm/mach-dove/Makefile.boot
··· 1 + zreladdr-y := 0x00008000 2 + params_phys-y := 0x00000100 3 + initrd_phys-y := 0x00800000
+149
arch/arm/mach-dove/addr-map.c
··· 1 + /* 2 + * arch/arm/mach-dove/addr-map.c 3 + * 4 + * Address map functions for Marvell Dove 88AP510 SoC 5 + * 6 + * This file is licensed under the terms of the GNU General Public 7 + * License version 2. This program is licensed "as is" without any 8 + * warranty of any kind, whether express or implied. 9 + */ 10 + 11 + #include <linux/kernel.h> 12 + #include <linux/init.h> 13 + #include <linux/mbus.h> 14 + #include <linux/io.h> 15 + #include <asm/mach/arch.h> 16 + #include <asm/setup.h> 17 + #include "common.h" 18 + 19 + /* 20 + * Generic Address Decode Windows bit settings 21 + */ 22 + #define TARGET_DDR 0x0 23 + #define TARGET_BOOTROM 0x1 24 + #define TARGET_CESA 0x3 25 + #define TARGET_PCIE0 0x4 26 + #define TARGET_PCIE1 0x8 27 + #define TARGET_SCRATCHPAD 0xd 28 + 29 + #define ATTR_CESA 0x01 30 + #define ATTR_BOOTROM 0xfd 31 + #define ATTR_DEV_SPI0_ROM 0xfe 32 + #define ATTR_DEV_SPI1_ROM 0xfb 33 + #define ATTR_PCIE_IO 0xe0 34 + #define ATTR_PCIE_MEM 0xe8 35 + #define ATTR_SCRATCHPAD 0x0 36 + 37 + /* 38 + * CPU Address Decode Windows registers 39 + */ 40 + #define WIN_CTRL(n) (BRIDGE_VIRT_BASE + ((n) << 4) + 0x0) 41 + #define WIN_BASE(n) (BRIDGE_VIRT_BASE + ((n) << 4) + 0x4) 42 + #define WIN_REMAP_LO(n) (BRIDGE_VIRT_BASE + ((n) << 4) + 0x8) 43 + #define WIN_REMAP_HI(n) (BRIDGE_VIRT_BASE + ((n) << 4) + 0xc) 44 + 45 + struct mbus_dram_target_info dove_mbus_dram_info; 46 + 47 + static inline void __iomem *ddr_map_sc(int i) 48 + { 49 + return (void __iomem *)(DOVE_MC_VIRT_BASE + 0x100 + ((i) << 4)); 50 + } 51 + 52 + static int cpu_win_can_remap(int win) 53 + { 54 + if (win < 4) 55 + return 1; 56 + 57 + return 0; 58 + } 59 + 60 + static void __init setup_cpu_win(int win, u32 base, u32 size, 61 + u8 target, u8 attr, int remap) 62 + { 63 + u32 ctrl; 64 + 65 + base &= 0xffff0000; 66 + ctrl = ((size - 1) & 0xffff0000) | (attr << 8) | (target << 4) | 1; 67 + 68 + writel(base, WIN_BASE(win)); 69 + writel(ctrl, WIN_CTRL(win)); 70 + if (cpu_win_can_remap(win)) { 71 + if (remap < 0) 72 + remap = base; 73 + writel(remap & 0xffff0000, WIN_REMAP_LO(win)); 74 + writel(0, WIN_REMAP_HI(win)); 75 + } 76 + } 77 + 78 + void __init dove_setup_cpu_mbus(void) 79 + { 80 + int i; 81 + int cs; 82 + 83 + /* 84 + * First, disable and clear windows. 85 + */ 86 + for (i = 0; i < 8; i++) { 87 + writel(0, WIN_BASE(i)); 88 + writel(0, WIN_CTRL(i)); 89 + if (cpu_win_can_remap(i)) { 90 + writel(0, WIN_REMAP_LO(i)); 91 + writel(0, WIN_REMAP_HI(i)); 92 + } 93 + } 94 + 95 + /* 96 + * Setup windows for PCIe IO+MEM space. 97 + */ 98 + setup_cpu_win(0, DOVE_PCIE0_IO_PHYS_BASE, DOVE_PCIE0_IO_SIZE, 99 + TARGET_PCIE0, ATTR_PCIE_IO, DOVE_PCIE0_IO_BUS_BASE); 100 + setup_cpu_win(1, DOVE_PCIE1_IO_PHYS_BASE, DOVE_PCIE1_IO_SIZE, 101 + TARGET_PCIE1, ATTR_PCIE_IO, DOVE_PCIE1_IO_BUS_BASE); 102 + setup_cpu_win(2, DOVE_PCIE0_MEM_PHYS_BASE, DOVE_PCIE0_MEM_SIZE, 103 + TARGET_PCIE0, ATTR_PCIE_MEM, -1); 104 + setup_cpu_win(3, DOVE_PCIE1_MEM_PHYS_BASE, DOVE_PCIE1_MEM_SIZE, 105 + TARGET_PCIE1, ATTR_PCIE_MEM, -1); 106 + 107 + /* 108 + * Setup window for CESA engine. 109 + */ 110 + setup_cpu_win(4, DOVE_CESA_PHYS_BASE, DOVE_CESA_SIZE, 111 + TARGET_CESA, ATTR_CESA, -1); 112 + 113 + /* 114 + * Setup the Window to the BootROM for Standby and Sleep Resume 115 + */ 116 + setup_cpu_win(5, DOVE_BOOTROM_PHYS_BASE, DOVE_BOOTROM_SIZE, 117 + TARGET_BOOTROM, ATTR_BOOTROM, -1); 118 + 119 + /* 120 + * Setup the Window to the PMU Scratch Pad space 121 + */ 122 + setup_cpu_win(6, DOVE_SCRATCHPAD_PHYS_BASE, DOVE_SCRATCHPAD_SIZE, 123 + TARGET_SCRATCHPAD, ATTR_SCRATCHPAD, -1); 124 + 125 + /* 126 + * Setup MBUS dram target info. 127 + */ 128 + dove_mbus_dram_info.mbus_dram_target_id = TARGET_DDR; 129 + 130 + for (i = 0, cs = 0; i < 2; i++) { 131 + u32 map = readl(ddr_map_sc(i)); 132 + 133 + /* 134 + * Chip select enabled? 135 + */ 136 + if (map & 1) { 137 + struct mbus_dram_window *w; 138 + 139 + w = &dove_mbus_dram_info.cs[cs++]; 140 + w->cs_index = i; 141 + w->mbus_attr = 0; /* CS address decoding done inside */ 142 + /* the DDR controller, no need to */ 143 + /* provide attributes */ 144 + w->base = map & 0xff800000; 145 + w->size = 0x100000 << (((map & 0x000f0000) >> 16) - 4); 146 + } 147 + } 148 + dove_mbus_dram_info.num_cs = cs; 149 + }
+777
arch/arm/mach-dove/common.c
··· 1 + /* 2 + * arch/arm/mach-dove/common.c 3 + * 4 + * Core functions for Marvell Dove 88AP510 System On Chip 5 + * 6 + * This file is licensed under the terms of the GNU General Public 7 + * License version 2. This program is licensed "as is" without any 8 + * warranty of any kind, whether express or implied. 9 + */ 10 + 11 + #include <linux/kernel.h> 12 + #include <linux/delay.h> 13 + #include <linux/init.h> 14 + #include <linux/platform_device.h> 15 + #include <linux/pci.h> 16 + #include <linux/serial_8250.h> 17 + #include <linux/clk.h> 18 + #include <linux/mbus.h> 19 + #include <linux/mv643xx_eth.h> 20 + #include <linux/mv643xx_i2c.h> 21 + #include <linux/ata_platform.h> 22 + #include <linux/spi/orion_spi.h> 23 + #include <linux/gpio.h> 24 + #include <asm/page.h> 25 + #include <asm/setup.h> 26 + #include <asm/timex.h> 27 + #include <asm/mach/map.h> 28 + #include <asm/mach/time.h> 29 + #include <asm/mach/pci.h> 30 + #include <mach/dove.h> 31 + #include <mach/bridge-regs.h> 32 + #include <asm/mach/arch.h> 33 + #include <linux/irq.h> 34 + #include <plat/mv_xor.h> 35 + #include <plat/ehci-orion.h> 36 + #include <plat/time.h> 37 + #include "common.h" 38 + 39 + /***************************************************************************** 40 + * I/O Address Mapping 41 + ****************************************************************************/ 42 + static struct map_desc dove_io_desc[] __initdata = { 43 + { 44 + .virtual = DOVE_SB_REGS_VIRT_BASE, 45 + .pfn = __phys_to_pfn(DOVE_SB_REGS_PHYS_BASE), 46 + .length = DOVE_SB_REGS_SIZE, 47 + .type = MT_DEVICE, 48 + }, { 49 + .virtual = DOVE_NB_REGS_VIRT_BASE, 50 + .pfn = __phys_to_pfn(DOVE_NB_REGS_PHYS_BASE), 51 + .length = DOVE_NB_REGS_SIZE, 52 + .type = MT_DEVICE, 53 + }, { 54 + .virtual = DOVE_PCIE0_IO_VIRT_BASE, 55 + .pfn = __phys_to_pfn(DOVE_PCIE0_IO_PHYS_BASE), 56 + .length = DOVE_PCIE0_IO_SIZE, 57 + .type = MT_DEVICE, 58 + }, { 59 + .virtual = DOVE_PCIE1_IO_VIRT_BASE, 60 + .pfn = __phys_to_pfn(DOVE_PCIE1_IO_PHYS_BASE), 61 + .length = DOVE_PCIE1_IO_SIZE, 62 + .type = MT_DEVICE, 63 + }, 64 + }; 65 + 66 + void __init dove_map_io(void) 67 + { 68 + iotable_init(dove_io_desc, ARRAY_SIZE(dove_io_desc)); 69 + } 70 + 71 + /***************************************************************************** 72 + * EHCI 73 + ****************************************************************************/ 74 + static struct orion_ehci_data dove_ehci_data = { 75 + .dram = &dove_mbus_dram_info, 76 + .phy_version = EHCI_PHY_NA, 77 + }; 78 + 79 + static u64 ehci_dmamask = DMA_BIT_MASK(32); 80 + 81 + /***************************************************************************** 82 + * EHCI0 83 + ****************************************************************************/ 84 + static struct resource dove_ehci0_resources[] = { 85 + { 86 + .start = DOVE_USB0_PHYS_BASE, 87 + .end = DOVE_USB0_PHYS_BASE + SZ_4K - 1, 88 + .flags = IORESOURCE_MEM, 89 + }, { 90 + .start = IRQ_DOVE_USB0, 91 + .end = IRQ_DOVE_USB0, 92 + .flags = IORESOURCE_IRQ, 93 + }, 94 + }; 95 + 96 + static struct platform_device dove_ehci0 = { 97 + .name = "orion-ehci", 98 + .id = 0, 99 + .dev = { 100 + .dma_mask = &ehci_dmamask, 101 + .coherent_dma_mask = DMA_BIT_MASK(32), 102 + .platform_data = &dove_ehci_data, 103 + }, 104 + .resource = dove_ehci0_resources, 105 + .num_resources = ARRAY_SIZE(dove_ehci0_resources), 106 + }; 107 + 108 + void __init dove_ehci0_init(void) 109 + { 110 + platform_device_register(&dove_ehci0); 111 + } 112 + 113 + /***************************************************************************** 114 + * EHCI1 115 + ****************************************************************************/ 116 + static struct resource dove_ehci1_resources[] = { 117 + { 118 + .start = DOVE_USB1_PHYS_BASE, 119 + .end = DOVE_USB1_PHYS_BASE + SZ_4K - 1, 120 + .flags = IORESOURCE_MEM, 121 + }, { 122 + .start = IRQ_DOVE_USB1, 123 + .end = IRQ_DOVE_USB1, 124 + .flags = IORESOURCE_IRQ, 125 + }, 126 + }; 127 + 128 + static struct platform_device dove_ehci1 = { 129 + .name = "orion-ehci", 130 + .id = 1, 131 + .dev = { 132 + .dma_mask = &ehci_dmamask, 133 + .coherent_dma_mask = DMA_BIT_MASK(32), 134 + .platform_data = &dove_ehci_data, 135 + }, 136 + .resource = dove_ehci1_resources, 137 + .num_resources = ARRAY_SIZE(dove_ehci1_resources), 138 + }; 139 + 140 + void __init dove_ehci1_init(void) 141 + { 142 + platform_device_register(&dove_ehci1); 143 + } 144 + 145 + /***************************************************************************** 146 + * GE00 147 + ****************************************************************************/ 148 + struct mv643xx_eth_shared_platform_data dove_ge00_shared_data = { 149 + .t_clk = 0, 150 + .dram = &dove_mbus_dram_info, 151 + }; 152 + 153 + static struct resource dove_ge00_shared_resources[] = { 154 + { 155 + .name = "ge00 base", 156 + .start = DOVE_GE00_PHYS_BASE + 0x2000, 157 + .end = DOVE_GE00_PHYS_BASE + SZ_16K - 1, 158 + .flags = IORESOURCE_MEM, 159 + }, 160 + }; 161 + 162 + static struct platform_device dove_ge00_shared = { 163 + .name = MV643XX_ETH_SHARED_NAME, 164 + .id = 0, 165 + .dev = { 166 + .platform_data = &dove_ge00_shared_data, 167 + }, 168 + .num_resources = 1, 169 + .resource = dove_ge00_shared_resources, 170 + }; 171 + 172 + static struct resource dove_ge00_resources[] = { 173 + { 174 + .name = "ge00 irq", 175 + .start = IRQ_DOVE_GE00_SUM, 176 + .end = IRQ_DOVE_GE00_SUM, 177 + .flags = IORESOURCE_IRQ, 178 + }, 179 + }; 180 + 181 + static struct platform_device dove_ge00 = { 182 + .name = MV643XX_ETH_NAME, 183 + .id = 0, 184 + .num_resources = 1, 185 + .resource = dove_ge00_resources, 186 + .dev = { 187 + .coherent_dma_mask = 0xffffffff, 188 + }, 189 + }; 190 + 191 + void __init dove_ge00_init(struct mv643xx_eth_platform_data *eth_data) 192 + { 193 + eth_data->shared = &dove_ge00_shared; 194 + dove_ge00.dev.platform_data = eth_data; 195 + 196 + platform_device_register(&dove_ge00_shared); 197 + platform_device_register(&dove_ge00); 198 + } 199 + 200 + /***************************************************************************** 201 + * SoC RTC 202 + ****************************************************************************/ 203 + static struct resource dove_rtc_resource[] = { 204 + { 205 + .start = DOVE_RTC_PHYS_BASE, 206 + .end = DOVE_RTC_PHYS_BASE + 32 - 1, 207 + .flags = IORESOURCE_MEM, 208 + }, { 209 + .start = IRQ_DOVE_RTC, 210 + .flags = IORESOURCE_IRQ, 211 + } 212 + }; 213 + 214 + void __init dove_rtc_init(void) 215 + { 216 + platform_device_register_simple("rtc-mv", -1, dove_rtc_resource, 2); 217 + } 218 + 219 + /***************************************************************************** 220 + * SATA 221 + ****************************************************************************/ 222 + static struct resource dove_sata_resources[] = { 223 + { 224 + .name = "sata base", 225 + .start = DOVE_SATA_PHYS_BASE, 226 + .end = DOVE_SATA_PHYS_BASE + 0x5000 - 1, 227 + .flags = IORESOURCE_MEM, 228 + }, { 229 + .name = "sata irq", 230 + .start = IRQ_DOVE_SATA, 231 + .end = IRQ_DOVE_SATA, 232 + .flags = IORESOURCE_IRQ, 233 + }, 234 + }; 235 + 236 + static struct platform_device dove_sata = { 237 + .name = "sata_mv", 238 + .id = 0, 239 + .dev = { 240 + .coherent_dma_mask = DMA_BIT_MASK(32), 241 + }, 242 + .num_resources = ARRAY_SIZE(dove_sata_resources), 243 + .resource = dove_sata_resources, 244 + }; 245 + 246 + void __init dove_sata_init(struct mv_sata_platform_data *sata_data) 247 + { 248 + sata_data->dram = &dove_mbus_dram_info; 249 + dove_sata.dev.platform_data = sata_data; 250 + platform_device_register(&dove_sata); 251 + } 252 + 253 + /***************************************************************************** 254 + * UART0 255 + ****************************************************************************/ 256 + static struct plat_serial8250_port dove_uart0_data[] = { 257 + { 258 + .mapbase = DOVE_UART0_PHYS_BASE, 259 + .membase = (char *)DOVE_UART0_VIRT_BASE, 260 + .irq = IRQ_DOVE_UART_0, 261 + .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, 262 + .iotype = UPIO_MEM, 263 + .regshift = 2, 264 + .uartclk = 0, 265 + }, { 266 + }, 267 + }; 268 + 269 + static struct resource dove_uart0_resources[] = { 270 + { 271 + .start = DOVE_UART0_PHYS_BASE, 272 + .end = DOVE_UART0_PHYS_BASE + SZ_256 - 1, 273 + .flags = IORESOURCE_MEM, 274 + }, { 275 + .start = IRQ_DOVE_UART_0, 276 + .end = IRQ_DOVE_UART_0, 277 + .flags = IORESOURCE_IRQ, 278 + }, 279 + }; 280 + 281 + static struct platform_device dove_uart0 = { 282 + .name = "serial8250", 283 + .id = 0, 284 + .dev = { 285 + .platform_data = dove_uart0_data, 286 + }, 287 + .resource = dove_uart0_resources, 288 + .num_resources = ARRAY_SIZE(dove_uart0_resources), 289 + }; 290 + 291 + void __init dove_uart0_init(void) 292 + { 293 + platform_device_register(&dove_uart0); 294 + } 295 + 296 + /***************************************************************************** 297 + * UART1 298 + ****************************************************************************/ 299 + static struct plat_serial8250_port dove_uart1_data[] = { 300 + { 301 + .mapbase = DOVE_UART1_PHYS_BASE, 302 + .membase = (char *)DOVE_UART1_VIRT_BASE, 303 + .irq = IRQ_DOVE_UART_1, 304 + .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, 305 + .iotype = UPIO_MEM, 306 + .regshift = 2, 307 + .uartclk = 0, 308 + }, { 309 + }, 310 + }; 311 + 312 + static struct resource dove_uart1_resources[] = { 313 + { 314 + .start = DOVE_UART1_PHYS_BASE, 315 + .end = DOVE_UART1_PHYS_BASE + SZ_256 - 1, 316 + .flags = IORESOURCE_MEM, 317 + }, { 318 + .start = IRQ_DOVE_UART_1, 319 + .end = IRQ_DOVE_UART_1, 320 + .flags = IORESOURCE_IRQ, 321 + }, 322 + }; 323 + 324 + static struct platform_device dove_uart1 = { 325 + .name = "serial8250", 326 + .id = 1, 327 + .dev = { 328 + .platform_data = dove_uart1_data, 329 + }, 330 + .resource = dove_uart1_resources, 331 + .num_resources = ARRAY_SIZE(dove_uart1_resources), 332 + }; 333 + 334 + void __init dove_uart1_init(void) 335 + { 336 + platform_device_register(&dove_uart1); 337 + } 338 + 339 + /***************************************************************************** 340 + * UART2 341 + ****************************************************************************/ 342 + static struct plat_serial8250_port dove_uart2_data[] = { 343 + { 344 + .mapbase = DOVE_UART2_PHYS_BASE, 345 + .membase = (char *)DOVE_UART2_VIRT_BASE, 346 + .irq = IRQ_DOVE_UART_2, 347 + .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, 348 + .iotype = UPIO_MEM, 349 + .regshift = 2, 350 + .uartclk = 0, 351 + }, { 352 + }, 353 + }; 354 + 355 + static struct resource dove_uart2_resources[] = { 356 + { 357 + .start = DOVE_UART2_PHYS_BASE, 358 + .end = DOVE_UART2_PHYS_BASE + SZ_256 - 1, 359 + .flags = IORESOURCE_MEM, 360 + }, { 361 + .start = IRQ_DOVE_UART_2, 362 + .end = IRQ_DOVE_UART_2, 363 + .flags = IORESOURCE_IRQ, 364 + }, 365 + }; 366 + 367 + static struct platform_device dove_uart2 = { 368 + .name = "serial8250", 369 + .id = 2, 370 + .dev = { 371 + .platform_data = dove_uart2_data, 372 + }, 373 + .resource = dove_uart2_resources, 374 + .num_resources = ARRAY_SIZE(dove_uart2_resources), 375 + }; 376 + 377 + void __init dove_uart2_init(void) 378 + { 379 + platform_device_register(&dove_uart2); 380 + } 381 + 382 + /***************************************************************************** 383 + * UART3 384 + ****************************************************************************/ 385 + static struct plat_serial8250_port dove_uart3_data[] = { 386 + { 387 + .mapbase = DOVE_UART3_PHYS_BASE, 388 + .membase = (char *)DOVE_UART3_VIRT_BASE, 389 + .irq = IRQ_DOVE_UART_3, 390 + .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, 391 + .iotype = UPIO_MEM, 392 + .regshift = 2, 393 + .uartclk = 0, 394 + }, { 395 + }, 396 + }; 397 + 398 + static struct resource dove_uart3_resources[] = { 399 + { 400 + .start = DOVE_UART3_PHYS_BASE, 401 + .end = DOVE_UART3_PHYS_BASE + SZ_256 - 1, 402 + .flags = IORESOURCE_MEM, 403 + }, { 404 + .start = IRQ_DOVE_UART_3, 405 + .end = IRQ_DOVE_UART_3, 406 + .flags = IORESOURCE_IRQ, 407 + }, 408 + }; 409 + 410 + static struct platform_device dove_uart3 = { 411 + .name = "serial8250", 412 + .id = 3, 413 + .dev = { 414 + .platform_data = dove_uart3_data, 415 + }, 416 + .resource = dove_uart3_resources, 417 + .num_resources = ARRAY_SIZE(dove_uart3_resources), 418 + }; 419 + 420 + void __init dove_uart3_init(void) 421 + { 422 + platform_device_register(&dove_uart3); 423 + } 424 + 425 + /***************************************************************************** 426 + * SPI0 427 + ****************************************************************************/ 428 + static struct orion_spi_info dove_spi0_data = { 429 + .tclk = 0, 430 + }; 431 + 432 + static struct resource dove_spi0_resources[] = { 433 + { 434 + .start = DOVE_SPI0_PHYS_BASE, 435 + .end = DOVE_SPI0_PHYS_BASE + SZ_512 - 1, 436 + .flags = IORESOURCE_MEM, 437 + }, { 438 + .start = IRQ_DOVE_SPI0, 439 + .end = IRQ_DOVE_SPI0, 440 + .flags = IORESOURCE_IRQ, 441 + }, 442 + }; 443 + 444 + static struct platform_device dove_spi0 = { 445 + .name = "orion_spi", 446 + .id = 0, 447 + .resource = dove_spi0_resources, 448 + .dev = { 449 + .platform_data = &dove_spi0_data, 450 + }, 451 + .num_resources = ARRAY_SIZE(dove_spi0_resources), 452 + }; 453 + 454 + void __init dove_spi0_init(void) 455 + { 456 + platform_device_register(&dove_spi0); 457 + } 458 + 459 + /***************************************************************************** 460 + * SPI1 461 + ****************************************************************************/ 462 + static struct orion_spi_info dove_spi1_data = { 463 + .tclk = 0, 464 + }; 465 + 466 + static struct resource dove_spi1_resources[] = { 467 + { 468 + .start = DOVE_SPI1_PHYS_BASE, 469 + .end = DOVE_SPI1_PHYS_BASE + SZ_512 - 1, 470 + .flags = IORESOURCE_MEM, 471 + }, { 472 + .start = IRQ_DOVE_SPI1, 473 + .end = IRQ_DOVE_SPI1, 474 + .flags = IORESOURCE_IRQ, 475 + }, 476 + }; 477 + 478 + static struct platform_device dove_spi1 = { 479 + .name = "orion_spi", 480 + .id = 1, 481 + .resource = dove_spi1_resources, 482 + .dev = { 483 + .platform_data = &dove_spi1_data, 484 + }, 485 + .num_resources = ARRAY_SIZE(dove_spi1_resources), 486 + }; 487 + 488 + void __init dove_spi1_init(void) 489 + { 490 + platform_device_register(&dove_spi1); 491 + } 492 + 493 + /***************************************************************************** 494 + * I2C 495 + ****************************************************************************/ 496 + static struct mv64xxx_i2c_pdata dove_i2c_data = { 497 + .freq_m = 10, /* assumes 166 MHz TCLK gets 94.3kHz */ 498 + .freq_n = 3, 499 + .timeout = 1000, /* Default timeout of 1 second */ 500 + }; 501 + 502 + static struct resource dove_i2c_resources[] = { 503 + { 504 + .name = "i2c base", 505 + .start = DOVE_I2C_PHYS_BASE, 506 + .end = DOVE_I2C_PHYS_BASE + 0x20 - 1, 507 + .flags = IORESOURCE_MEM, 508 + }, { 509 + .name = "i2c irq", 510 + .start = IRQ_DOVE_I2C, 511 + .end = IRQ_DOVE_I2C, 512 + .flags = IORESOURCE_IRQ, 513 + }, 514 + }; 515 + 516 + static struct platform_device dove_i2c = { 517 + .name = MV64XXX_I2C_CTLR_NAME, 518 + .id = 0, 519 + .num_resources = ARRAY_SIZE(dove_i2c_resources), 520 + .resource = dove_i2c_resources, 521 + .dev = { 522 + .platform_data = &dove_i2c_data, 523 + }, 524 + }; 525 + 526 + void __init dove_i2c_init(void) 527 + { 528 + platform_device_register(&dove_i2c); 529 + } 530 + 531 + /***************************************************************************** 532 + * Time handling 533 + ****************************************************************************/ 534 + static int get_tclk(void) 535 + { 536 + /* use DOVE_RESET_SAMPLE_HI/LO to detect tclk */ 537 + return 166666667; 538 + } 539 + 540 + static void dove_timer_init(void) 541 + { 542 + orion_time_init(IRQ_DOVE_BRIDGE, get_tclk()); 543 + } 544 + 545 + struct sys_timer dove_timer = { 546 + .init = dove_timer_init, 547 + }; 548 + 549 + /***************************************************************************** 550 + * XOR 551 + ****************************************************************************/ 552 + static struct mv_xor_platform_shared_data dove_xor_shared_data = { 553 + .dram = &dove_mbus_dram_info, 554 + }; 555 + 556 + /***************************************************************************** 557 + * XOR 0 558 + ****************************************************************************/ 559 + static u64 dove_xor0_dmamask = DMA_BIT_MASK(32); 560 + 561 + static struct resource dove_xor0_shared_resources[] = { 562 + { 563 + .name = "xor 0 low", 564 + .start = DOVE_XOR0_PHYS_BASE, 565 + .end = DOVE_XOR0_PHYS_BASE + 0xff, 566 + .flags = IORESOURCE_MEM, 567 + }, { 568 + .name = "xor 0 high", 569 + .start = DOVE_XOR0_HIGH_PHYS_BASE, 570 + .end = DOVE_XOR0_HIGH_PHYS_BASE + 0xff, 571 + .flags = IORESOURCE_MEM, 572 + }, 573 + }; 574 + 575 + static struct platform_device dove_xor0_shared = { 576 + .name = MV_XOR_SHARED_NAME, 577 + .id = 0, 578 + .dev = { 579 + .platform_data = &dove_xor_shared_data, 580 + }, 581 + .num_resources = ARRAY_SIZE(dove_xor0_shared_resources), 582 + .resource = dove_xor0_shared_resources, 583 + }; 584 + 585 + static struct resource dove_xor00_resources[] = { 586 + [0] = { 587 + .start = IRQ_DOVE_XOR_00, 588 + .end = IRQ_DOVE_XOR_00, 589 + .flags = IORESOURCE_IRQ, 590 + }, 591 + }; 592 + 593 + static struct mv_xor_platform_data dove_xor00_data = { 594 + .shared = &dove_xor0_shared, 595 + .hw_id = 0, 596 + .pool_size = PAGE_SIZE, 597 + }; 598 + 599 + static struct platform_device dove_xor00_channel = { 600 + .name = MV_XOR_NAME, 601 + .id = 0, 602 + .num_resources = ARRAY_SIZE(dove_xor00_resources), 603 + .resource = dove_xor00_resources, 604 + .dev = { 605 + .dma_mask = &dove_xor0_dmamask, 606 + .coherent_dma_mask = DMA_BIT_MASK(64), 607 + .platform_data = (void *)&dove_xor00_data, 608 + }, 609 + }; 610 + 611 + static struct resource dove_xor01_resources[] = { 612 + [0] = { 613 + .start = IRQ_DOVE_XOR_01, 614 + .end = IRQ_DOVE_XOR_01, 615 + .flags = IORESOURCE_IRQ, 616 + }, 617 + }; 618 + 619 + static struct mv_xor_platform_data dove_xor01_data = { 620 + .shared = &dove_xor0_shared, 621 + .hw_id = 1, 622 + .pool_size = PAGE_SIZE, 623 + }; 624 + 625 + static struct platform_device dove_xor01_channel = { 626 + .name = MV_XOR_NAME, 627 + .id = 1, 628 + .num_resources = ARRAY_SIZE(dove_xor01_resources), 629 + .resource = dove_xor01_resources, 630 + .dev = { 631 + .dma_mask = &dove_xor0_dmamask, 632 + .coherent_dma_mask = DMA_BIT_MASK(64), 633 + .platform_data = (void *)&dove_xor01_data, 634 + }, 635 + }; 636 + 637 + void __init dove_xor0_init(void) 638 + { 639 + platform_device_register(&dove_xor0_shared); 640 + 641 + /* 642 + * two engines can't do memset simultaneously, this limitation 643 + * satisfied by removing memset support from one of the engines. 644 + */ 645 + dma_cap_set(DMA_MEMCPY, dove_xor00_data.cap_mask); 646 + dma_cap_set(DMA_XOR, dove_xor00_data.cap_mask); 647 + platform_device_register(&dove_xor00_channel); 648 + 649 + dma_cap_set(DMA_MEMCPY, dove_xor01_data.cap_mask); 650 + dma_cap_set(DMA_MEMSET, dove_xor01_data.cap_mask); 651 + dma_cap_set(DMA_XOR, dove_xor01_data.cap_mask); 652 + platform_device_register(&dove_xor01_channel); 653 + } 654 + 655 + /***************************************************************************** 656 + * XOR 1 657 + ****************************************************************************/ 658 + static u64 dove_xor1_dmamask = DMA_BIT_MASK(32); 659 + 660 + static struct resource dove_xor1_shared_resources[] = { 661 + { 662 + .name = "xor 0 low", 663 + .start = DOVE_XOR1_PHYS_BASE, 664 + .end = DOVE_XOR1_PHYS_BASE + 0xff, 665 + .flags = IORESOURCE_MEM, 666 + }, { 667 + .name = "xor 0 high", 668 + .start = DOVE_XOR1_HIGH_PHYS_BASE, 669 + .end = DOVE_XOR1_HIGH_PHYS_BASE + 0xff, 670 + .flags = IORESOURCE_MEM, 671 + }, 672 + }; 673 + 674 + static struct platform_device dove_xor1_shared = { 675 + .name = MV_XOR_SHARED_NAME, 676 + .id = 1, 677 + .dev = { 678 + .platform_data = &dove_xor_shared_data, 679 + }, 680 + .num_resources = ARRAY_SIZE(dove_xor1_shared_resources), 681 + .resource = dove_xor1_shared_resources, 682 + }; 683 + 684 + static struct resource dove_xor10_resources[] = { 685 + [0] = { 686 + .start = IRQ_DOVE_XOR_10, 687 + .end = IRQ_DOVE_XOR_10, 688 + .flags = IORESOURCE_IRQ, 689 + }, 690 + }; 691 + 692 + static struct mv_xor_platform_data dove_xor10_data = { 693 + .shared = &dove_xor1_shared, 694 + .hw_id = 0, 695 + .pool_size = PAGE_SIZE, 696 + }; 697 + 698 + static struct platform_device dove_xor10_channel = { 699 + .name = MV_XOR_NAME, 700 + .id = 2, 701 + .num_resources = ARRAY_SIZE(dove_xor10_resources), 702 + .resource = dove_xor10_resources, 703 + .dev = { 704 + .dma_mask = &dove_xor1_dmamask, 705 + .coherent_dma_mask = DMA_BIT_MASK(64), 706 + .platform_data = (void *)&dove_xor10_data, 707 + }, 708 + }; 709 + 710 + static struct resource dove_xor11_resources[] = { 711 + [0] = { 712 + .start = IRQ_DOVE_XOR_11, 713 + .end = IRQ_DOVE_XOR_11, 714 + .flags = IORESOURCE_IRQ, 715 + }, 716 + }; 717 + 718 + static struct mv_xor_platform_data dove_xor11_data = { 719 + .shared = &dove_xor1_shared, 720 + .hw_id = 1, 721 + .pool_size = PAGE_SIZE, 722 + }; 723 + 724 + static struct platform_device dove_xor11_channel = { 725 + .name = MV_XOR_NAME, 726 + .id = 3, 727 + .num_resources = ARRAY_SIZE(dove_xor11_resources), 728 + .resource = dove_xor11_resources, 729 + .dev = { 730 + .dma_mask = &dove_xor1_dmamask, 731 + .coherent_dma_mask = DMA_BIT_MASK(64), 732 + .platform_data = (void *)&dove_xor11_data, 733 + }, 734 + }; 735 + 736 + void __init dove_xor1_init(void) 737 + { 738 + platform_device_register(&dove_xor1_shared); 739 + 740 + /* 741 + * two engines can't do memset simultaneously, this limitation 742 + * satisfied by removing memset support from one of the engines. 743 + */ 744 + dma_cap_set(DMA_MEMCPY, dove_xor10_data.cap_mask); 745 + dma_cap_set(DMA_XOR, dove_xor10_data.cap_mask); 746 + platform_device_register(&dove_xor10_channel); 747 + 748 + dma_cap_set(DMA_MEMCPY, dove_xor11_data.cap_mask); 749 + dma_cap_set(DMA_MEMSET, dove_xor11_data.cap_mask); 750 + dma_cap_set(DMA_XOR, dove_xor11_data.cap_mask); 751 + platform_device_register(&dove_xor11_channel); 752 + } 753 + 754 + void __init dove_init(void) 755 + { 756 + int tclk; 757 + 758 + tclk = get_tclk(); 759 + 760 + printk(KERN_INFO "Dove 88AP510 SoC, "); 761 + printk(KERN_INFO "TCLK = %dMHz\n", (tclk + 499999) / 1000000); 762 + 763 + dove_setup_cpu_mbus(); 764 + 765 + dove_ge00_shared_data.t_clk = tclk; 766 + dove_uart0_data[0].uartclk = tclk; 767 + dove_uart1_data[0].uartclk = tclk; 768 + dove_uart2_data[0].uartclk = tclk; 769 + dove_uart3_data[0].uartclk = tclk; 770 + dove_spi0_data.tclk = tclk; 771 + dove_spi1_data.tclk = tclk; 772 + 773 + /* internal devices that every board has */ 774 + dove_rtc_init(); 775 + dove_xor0_init(); 776 + dove_xor1_init(); 777 + }
+40
arch/arm/mach-dove/common.h
··· 1 + /* 2 + * arch/arm/mach-dove/common.h 3 + * 4 + * Core functions for Marvell Dove 88AP510 System On Chip 5 + * 6 + * This file is licensed under the terms of the GNU General Public 7 + * License version 2. This program is licensed "as is" without any 8 + * warranty of any kind, whether express or implied. 9 + */ 10 + 11 + #ifndef __ARCH_DOVE_COMMON_H 12 + #define __ARCH_DOVE_COMMON_H 13 + 14 + struct mv643xx_eth_platform_data; 15 + struct mv_sata_platform_data; 16 + 17 + extern struct sys_timer dove_timer; 18 + extern struct mbus_dram_target_info dove_mbus_dram_info; 19 + 20 + /* 21 + * Basic Dove init functions used early by machine-setup. 22 + */ 23 + void dove_map_io(void); 24 + void dove_init(void); 25 + void dove_init_irq(void); 26 + void dove_setup_cpu_mbus(void); 27 + void dove_ge00_init(struct mv643xx_eth_platform_data *eth_data); 28 + void dove_sata_init(struct mv_sata_platform_data *sata_data); 29 + void dove_pcie_init(int init_port0, int init_port1); 30 + void dove_ehci0_init(void); 31 + void dove_ehci1_init(void); 32 + void dove_uart0_init(void); 33 + void dove_uart1_init(void); 34 + void dove_uart2_init(void); 35 + void dove_uart3_init(void); 36 + void dove_spi0_init(void); 37 + void dove_spi1_init(void); 38 + void dove_i2c_init(void); 39 + 40 + #endif
+102
arch/arm/mach-dove/dove-db-setup.c
··· 1 + /* 2 + * arch/arm/mach-dove/dove-db-setup.c 3 + * 4 + * Marvell DB-MV88AP510-BP Development Board Setup 5 + * 6 + * This file is licensed under the terms of the GNU General Public 7 + * License version 2. This program is licensed "as is" without any 8 + * warranty of any kind, whether express or implied. 9 + */ 10 + 11 + #include <linux/kernel.h> 12 + #include <linux/init.h> 13 + #include <linux/platform_device.h> 14 + #include <linux/irq.h> 15 + #include <linux/mtd/physmap.h> 16 + #include <linux/mtd/nand.h> 17 + #include <linux/timer.h> 18 + #include <linux/ata_platform.h> 19 + #include <linux/mv643xx_eth.h> 20 + #include <linux/i2c.h> 21 + #include <linux/pci.h> 22 + #include <linux/spi/spi.h> 23 + #include <linux/spi/orion_spi.h> 24 + #include <linux/spi/flash.h> 25 + #include <linux/gpio.h> 26 + #include <asm/mach-types.h> 27 + #include <asm/mach/arch.h> 28 + #include <mach/dove.h> 29 + #include "common.h" 30 + 31 + static struct mv643xx_eth_platform_data dove_db_ge00_data = { 32 + .phy_addr = MV643XX_ETH_PHY_ADDR_DEFAULT, 33 + }; 34 + 35 + static struct mv_sata_platform_data dove_db_sata_data = { 36 + .n_ports = 1, 37 + }; 38 + 39 + /***************************************************************************** 40 + * SPI Devices: 41 + * SPI0: 4M Flash ST-M25P32-VMF6P 42 + ****************************************************************************/ 43 + static const struct flash_platform_data dove_db_spi_flash_data = { 44 + .type = "m25p64", 45 + }; 46 + 47 + static struct spi_board_info __initdata dove_db_spi_flash_info[] = { 48 + { 49 + .modalias = "m25p80", 50 + .platform_data = &dove_db_spi_flash_data, 51 + .irq = -1, 52 + .max_speed_hz = 20000000, 53 + .bus_num = 0, 54 + .chip_select = 0, 55 + }, 56 + }; 57 + 58 + /***************************************************************************** 59 + * PCI 60 + ****************************************************************************/ 61 + static int __init dove_db_pci_init(void) 62 + { 63 + if (machine_is_dove_db()) 64 + dove_pcie_init(1, 1); 65 + 66 + return 0; 67 + } 68 + 69 + subsys_initcall(dove_db_pci_init); 70 + 71 + /***************************************************************************** 72 + * Board Init 73 + ****************************************************************************/ 74 + static void __init dove_db_init(void) 75 + { 76 + /* 77 + * Basic Dove setup. Needs to be called early. 78 + */ 79 + dove_init(); 80 + 81 + dove_ge00_init(&dove_db_ge00_data); 82 + dove_ehci0_init(); 83 + dove_ehci1_init(); 84 + dove_sata_init(&dove_db_sata_data); 85 + dove_spi0_init(); 86 + dove_spi1_init(); 87 + dove_uart0_init(); 88 + dove_uart1_init(); 89 + dove_i2c_init(); 90 + spi_register_board_info(dove_db_spi_flash_info, 91 + ARRAY_SIZE(dove_db_spi_flash_info)); 92 + } 93 + 94 + MACHINE_START(DOVE_DB, "Marvell DB-MV88AP510-BP Development Board") 95 + .phys_io = DOVE_SB_REGS_PHYS_BASE, 96 + .io_pg_offst = ((DOVE_SB_REGS_VIRT_BASE) >> 18) & 0xfffc, 97 + .boot_params = 0x00000100, 98 + .init_machine = dove_db_init, 99 + .map_io = dove_map_io, 100 + .init_irq = dove_init_irq, 101 + .timer = &dove_timer, 102 + MACHINE_END
+58
arch/arm/mach-dove/include/mach/bridge-regs.h
··· 1 + /* 2 + * arch/arm/mach-dove/include/mach/bridge-regs.h 3 + * 4 + * Mbus-L to Mbus Bridge Registers 5 + * 6 + * This file is licensed under the terms of the GNU General Public 7 + * License version 2. This program is licensed "as is" without any 8 + * warranty of any kind, whether express or implied. 9 + */ 10 + 11 + #ifndef __ASM_ARCH_BRIDGE_REGS_H 12 + #define __ASM_ARCH_BRIDGE_REGS_H 13 + 14 + #include <mach/dove.h> 15 + 16 + #define CPU_CONFIG (BRIDGE_VIRT_BASE | 0x0000) 17 + 18 + #define CPU_CONTROL (BRIDGE_VIRT_BASE | 0x0104) 19 + #define CPU_CTRL_PCIE0_LINK 0x00000001 20 + #define CPU_RESET 0x00000002 21 + #define CPU_CTRL_PCIE1_LINK 0x00000008 22 + 23 + #define RSTOUTn_MASK (BRIDGE_VIRT_BASE | 0x0108) 24 + #define SOFT_RESET_OUT_EN 0x00000004 25 + 26 + #define SYSTEM_SOFT_RESET (BRIDGE_VIRT_BASE | 0x010c) 27 + #define SOFT_RESET 0x00000001 28 + 29 + #define BRIDGE_CAUSE (BRIDGE_VIRT_BASE | 0x0110) 30 + #define BRIDGE_MASK (BRIDGE_VIRT_BASE | 0x0114) 31 + #define BRIDGE_INT_TIMER0 0x0002 32 + #define BRIDGE_INT_TIMER1 0x0004 33 + #define BRIDGE_INT_TIMER1_CLR (~0x0004) 34 + 35 + #define IRQ_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0200) 36 + #define IRQ_CAUSE_LOW_OFF 0x0000 37 + #define IRQ_MASK_LOW_OFF 0x0004 38 + #define FIQ_MASK_LOW_OFF 0x0008 39 + #define ENDPOINT_MASK_LOW_OFF 0x000c 40 + #define IRQ_CAUSE_HIGH_OFF 0x0010 41 + #define IRQ_MASK_HIGH_OFF 0x0014 42 + #define FIQ_MASK_HIGH_OFF 0x0018 43 + #define ENDPOINT_MASK_HIGH_OFF 0x001c 44 + #define PCIE_INTERRUPT_MASK_OFF 0x0020 45 + 46 + #define IRQ_MASK_LOW (IRQ_VIRT_BASE + IRQ_MASK_LOW_OFF) 47 + #define FIQ_MASK_LOW (IRQ_VIRT_BASE + FIQ_MASK_LOW_OFF) 48 + #define ENDPOINT_MASK_LOW (IRQ_VIRT_BASE + ENDPOINT_MASK_LOW_OFF) 49 + #define IRQ_MASK_HIGH (IRQ_VIRT_BASE + IRQ_MASK_HIGH_OFF) 50 + #define FIQ_MASK_HIGH (IRQ_VIRT_BASE + FIQ_MASK_HIGH_OFF) 51 + #define ENDPOINT_MASK_HIGH (IRQ_VIRT_BASE + ENDPOINT_MASK_HIGH_OFF) 52 + #define PCIE_INTERRUPT_MASK (IRQ_VIRT_BASE + PCIE_INTERRUPT_MASK_OFF) 53 + 54 + #define POWER_MANAGEMENT (BRIDGE_VIRT_BASE | 0x011c) 55 + 56 + #define TIMER_VIRT_BASE (BRIDGE_VIRT_BASE | 0x0300) 57 + 58 + #endif
+20
arch/arm/mach-dove/include/mach/debug-macro.S
··· 1 + /* 2 + * arch/arm/mach-dove/include/mach/debug-macro.S 3 + * 4 + * This program is free software; you can redistribute it and/or modify 5 + * it under the terms of the GNU General Public License version 2 as 6 + * published by the Free Software Foundation. 7 + */ 8 + 9 + #include <mach/bridge-regs.h> 10 + 11 + .macro addruart,rx 12 + mrc p15, 0, \rx, c1, c0 13 + tst \rx, #1 @ MMU enabled? 14 + ldreq \rx, =DOVE_SB_REGS_PHYS_BASE 15 + ldrne \rx, =DOVE_SB_REGS_VIRT_BASE 16 + orr \rx, \rx, #0x00012000 17 + .endm 18 + 19 + #define UART_SHIFT 2 20 + #include <asm/hardware/debug-8250.S>
+180
arch/arm/mach-dove/include/mach/dove.h
··· 1 + /* 2 + * arch/arm/mach-dove/include/mach/dove.h 3 + * 4 + * Generic definitions for Marvell Dove 88AP510 SoC 5 + * 6 + * This file is licensed under the terms of the GNU General Public 7 + * License version 2. This program is licensed "as is" without any 8 + * warranty of any kind, whether express or implied. 9 + */ 10 + 11 + #ifndef __ASM_ARCH_DOVE_H 12 + #define __ASM_ARCH_DOVE_H 13 + 14 + #include <mach/vmalloc.h> 15 + 16 + /* 17 + * Marvell Dove address maps. 18 + * 19 + * phys virt size 20 + * c8000000 fdb00000 1M Cryptographic SRAM 21 + * e0000000 @runtime 128M PCIe-0 Memory space 22 + * e8000000 @runtime 128M PCIe-1 Memory space 23 + * f1000000 fde00000 8M on-chip south-bridge registers 24 + * f1800000 fe600000 8M on-chip north-bridge registers 25 + * f2000000 fee00000 1M PCIe-0 I/O space 26 + * f2100000 fef00000 1M PCIe-1 I/O space 27 + */ 28 + 29 + #define DOVE_CESA_PHYS_BASE 0xc8000000 30 + #define DOVE_CESA_VIRT_BASE 0xfdb00000 31 + #define DOVE_CESA_SIZE SZ_1M 32 + 33 + #define DOVE_PCIE0_MEM_PHYS_BASE 0xe0000000 34 + #define DOVE_PCIE0_MEM_SIZE SZ_128M 35 + 36 + #define DOVE_PCIE1_MEM_PHYS_BASE 0xe8000000 37 + #define DOVE_PCIE1_MEM_SIZE SZ_128M 38 + 39 + #define DOVE_BOOTROM_PHYS_BASE 0xf8000000 40 + #define DOVE_BOOTROM_SIZE SZ_128M 41 + 42 + #define DOVE_SCRATCHPAD_PHYS_BASE 0xf0000000 43 + #define DOVE_SCRATCHPAD_VIRT_BASE 0xfdd00000 44 + #define DOVE_SCRATCHPAD_SIZE SZ_1M 45 + 46 + #define DOVE_SB_REGS_PHYS_BASE 0xf1000000 47 + #define DOVE_SB_REGS_VIRT_BASE 0xfde00000 48 + #define DOVE_SB_REGS_SIZE SZ_8M 49 + 50 + #define DOVE_NB_REGS_PHYS_BASE 0xf1800000 51 + #define DOVE_NB_REGS_VIRT_BASE 0xfe600000 52 + #define DOVE_NB_REGS_SIZE SZ_8M 53 + 54 + #define DOVE_PCIE0_IO_PHYS_BASE 0xf2000000 55 + #define DOVE_PCIE0_IO_VIRT_BASE 0xfee00000 56 + #define DOVE_PCIE0_IO_BUS_BASE 0x00000000 57 + #define DOVE_PCIE0_IO_SIZE SZ_1M 58 + 59 + #define DOVE_PCIE1_IO_PHYS_BASE 0xf2100000 60 + #define DOVE_PCIE1_IO_VIRT_BASE 0xfef00000 61 + #define DOVE_PCIE1_IO_BUS_BASE 0x00100000 62 + #define DOVE_PCIE1_IO_SIZE SZ_1M 63 + 64 + /* 65 + * Dove Core Registers Map 66 + */ 67 + 68 + /* SPI, I2C, UART */ 69 + #define DOVE_I2C_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x11000) 70 + #define DOVE_UART0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x12000) 71 + #define DOVE_UART0_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x12000) 72 + #define DOVE_UART1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x12100) 73 + #define DOVE_UART1_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x12100) 74 + #define DOVE_UART2_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x12200) 75 + #define DOVE_UART2_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x12200) 76 + #define DOVE_UART3_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x12300) 77 + #define DOVE_UART3_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x12300) 78 + #define DOVE_SPI0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x10600) 79 + #define DOVE_SPI1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x14600) 80 + 81 + /* North-South Bridge */ 82 + #define BRIDGE_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x20000) 83 + 84 + /* Cryptographic Engine */ 85 + #define DOVE_CRYPT_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x30000) 86 + 87 + /* PCIe 0 */ 88 + #define DOVE_PCIE0_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x40000) 89 + 90 + /* USB */ 91 + #define DOVE_USB0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x50000) 92 + #define DOVE_USB1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x51000) 93 + 94 + /* XOR 0 Engine */ 95 + #define DOVE_XOR0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x60800) 96 + #define DOVE_XOR0_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x60800) 97 + #define DOVE_XOR0_HIGH_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x60A00) 98 + #define DOVE_XOR0_HIGH_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x60A00) 99 + 100 + /* XOR 1 Engine */ 101 + #define DOVE_XOR1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x60900) 102 + #define DOVE_XOR1_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x60900) 103 + #define DOVE_XOR1_HIGH_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x60B00) 104 + #define DOVE_XOR1_HIGH_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x60B00) 105 + 106 + /* Gigabit Ethernet */ 107 + #define DOVE_GE00_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x70000) 108 + 109 + /* PCIe 1 */ 110 + #define DOVE_PCIE1_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0x80000) 111 + 112 + /* CAFE */ 113 + #define DOVE_SDIO0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x92000) 114 + #define DOVE_SDIO1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x90000) 115 + #define DOVE_CAM_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x94000) 116 + #define DOVE_CAFE_WIN_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0x98000) 117 + 118 + /* SATA */ 119 + #define DOVE_SATA_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xa0000) 120 + 121 + /* I2S/SPDIF */ 122 + #define DOVE_AUD0_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xb0000) 123 + #define DOVE_AUD1_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xb4000) 124 + 125 + /* NAND Flash Controller */ 126 + #define DOVE_NFC_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xc0000) 127 + 128 + /* MPP, GPIO, Reset Sampling */ 129 + #define DOVE_MPP_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xd0200) 130 + #define DOVE_PMU_MPP_GENERAL_CTRL (DOVE_MPP_VIRT_BASE + 0x10) 131 + #define DOVE_RESET_SAMPLE_LO (DOVE_MPP_VIRT_BASE | 0x014) 132 + #define DOVE_RESET_SAMPLE_HI (DOVE_MPP_VIRT_BASE | 0x018) 133 + #define DOVE_GPIO_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xd0400) 134 + #define DOVE_MPP_GENERAL_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xe803c) 135 + #define DOVE_AU1_SPDIFO_GPIO_EN (1 << 1) 136 + #define DOVE_NAND_GPIO_EN (1 << 0) 137 + #define DOVE_MPP_CTRL4_VIRT_BASE (DOVE_GPIO_VIRT_BASE + 0x40) 138 + 139 + 140 + /* Power Management */ 141 + #define DOVE_PMU_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xd0000) 142 + 143 + /* Real Time Clock */ 144 + #define DOVE_RTC_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xd8500) 145 + 146 + /* AC97 */ 147 + #define DOVE_AC97_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xe0000) 148 + #define DOVE_AC97_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xe0000) 149 + 150 + /* Peripheral DMA */ 151 + #define DOVE_PDMA_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xe4000) 152 + #define DOVE_PDMA_VIRT_BASE (DOVE_SB_REGS_VIRT_BASE | 0xe4000) 153 + 154 + #define DOVE_GLOBAL_CONFIG_1 (DOVE_SB_REGS_VIRT_BASE | 0xe802C) 155 + #define DOVE_TWSI_ENABLE_OPTION1 (1 << 7) 156 + #define DOVE_GLOBAL_CONFIG_2 (DOVE_SB_REGS_VIRT_BASE | 0xe8030) 157 + #define DOVE_TWSI_ENABLE_OPTION2 (1 << 20) 158 + #define DOVE_TWSI_ENABLE_OPTION3 (1 << 21) 159 + #define DOVE_TWSI_OPTION3_GPIO (1 << 22) 160 + #define DOVE_SSP_PHYS_BASE (DOVE_SB_REGS_PHYS_BASE | 0xec000) 161 + #define DOVE_SSP_CTRL_STATUS_1 (DOVE_SB_REGS_VIRT_BASE | 0xe8034) 162 + #define DOVE_SSP_ON_AU1 (1 << 0) 163 + #define DOVE_SSP_CLOCK_ENABLE (1 << 1) 164 + #define DOVE_SSP_BPB_CLOCK_SRC_SSP (1 << 11) 165 + /* Memory Controller */ 166 + #define DOVE_MC_VIRT_BASE (DOVE_NB_REGS_VIRT_BASE | 0x00000) 167 + 168 + /* LCD Controller */ 169 + #define DOVE_LCD_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE | 0x10000) 170 + #define DOVE_LCD1_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE | 0x20000) 171 + #define DOVE_LCD2_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE | 0x10000) 172 + #define DOVE_LCD_DCON_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE | 0x30000) 173 + 174 + /* Graphic Engine */ 175 + #define DOVE_GPU_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE | 0x40000) 176 + 177 + /* Video Engine */ 178 + #define DOVE_VPU_PHYS_BASE (DOVE_NB_REGS_PHYS_BASE | 0x400000) 179 + 180 + #endif
+39
arch/arm/mach-dove/include/mach/entry-macro.S
··· 1 + /* 2 + * arch/arm/mach-dove/include/mach/entry-macro.S 3 + * 4 + * Low-level IRQ helper macros for Marvell Dove platforms 5 + * 6 + * This file is licensed under the terms of the GNU General Public 7 + * License version 2. This program is licensed "as is" without any 8 + * warranty of any kind, whether express or implied. 9 + */ 10 + 11 + #include <mach/bridge-regs.h> 12 + 13 + .macro disable_fiq 14 + .endm 15 + 16 + .macro arch_ret_to_user, tmp1, tmp2 17 + .endm 18 + 19 + .macro get_irqnr_preamble, base, tmp 20 + ldr \base, =IRQ_VIRT_BASE 21 + .endm 22 + 23 + .macro get_irqnr_and_base, irqnr, irqstat, base, tmp 24 + @ check low interrupts 25 + ldr \irqstat, [\base, #IRQ_CAUSE_LOW_OFF] 26 + ldr \tmp, [\base, #IRQ_MASK_LOW_OFF] 27 + mov \irqnr, #31 28 + ands \irqstat, \irqstat, \tmp 29 + 30 + @ if no low interrupts set, check high interrupts 31 + ldreq \irqstat, [\base, #IRQ_CAUSE_HIGH_OFF] 32 + ldreq \tmp, [\base, #IRQ_MASK_HIGH_OFF] 33 + moveq \irqnr, #63 34 + andeqs \irqstat, \irqstat, \tmp 35 + 36 + @ find first active interrupt source 37 + clzne \irqstat, \irqstat 38 + subne \irqnr, \irqnr, \irqstat 39 + .endm
+49
arch/arm/mach-dove/include/mach/gpio.h
··· 1 + /* 2 + * arch/arm/mach-dove/include/mach/gpio.h 3 + * 4 + * This file is licensed under the terms of the GNU General Public 5 + * License version 2. This program is licensed "as is" without any 6 + * warranty of any kind, whether express or implied. 7 + */ 8 + 9 + #ifndef __ASM_ARCH_GPIO_H 10 + #define __ASM_ARCH_GPIO_H 11 + 12 + #include <asm/errno.h> 13 + #include <mach/irqs.h> 14 + #include <plat/gpio.h> 15 + #include <asm-generic/gpio.h> /* cansleep wrappers */ 16 + 17 + #define GPIO_MAX 64 18 + 19 + #define GPIO_BASE_LO (DOVE_GPIO_VIRT_BASE + 0x00) 20 + #define GPIO_BASE_HI (DOVE_GPIO_VIRT_BASE + 0x20) 21 + 22 + #define GPIO_BASE(pin) ((pin < 32) ? GPIO_BASE_LO : GPIO_BASE_HI) 23 + 24 + #define GPIO_OUT(pin) (GPIO_BASE(pin) + 0x00) 25 + #define GPIO_IO_CONF(pin) (GPIO_BASE(pin) + 0x04) 26 + #define GPIO_BLINK_EN(pin) (GPIO_BASE(pin) + 0x08) 27 + #define GPIO_IN_POL(pin) (GPIO_BASE(pin) + 0x0c) 28 + #define GPIO_DATA_IN(pin) (GPIO_BASE(pin) + 0x10) 29 + #define GPIO_EDGE_CAUSE(pin) (GPIO_BASE(pin) + 0x14) 30 + #define GPIO_EDGE_MASK(pin) (GPIO_BASE(pin) + 0x18) 31 + #define GPIO_LEVEL_MASK(pin) (GPIO_BASE(pin) + 0x1c) 32 + 33 + static inline int gpio_to_irq(int pin) 34 + { 35 + if (pin < NR_GPIO_IRQS) 36 + return pin + IRQ_DOVE_GPIO_START; 37 + 38 + return -EINVAL; 39 + } 40 + 41 + static inline int irq_to_gpio(int irq) 42 + { 43 + if (IRQ_DOVE_GPIO_START < irq && irq < NR_IRQS) 44 + return irq - IRQ_DOVE_GPIO_START; 45 + 46 + return -EINVAL; 47 + } 48 + 49 + #endif
+26
arch/arm/mach-dove/include/mach/hardware.h
··· 1 + /* 2 + * arch/arm/mach-dove/include/mach/hardware.h 3 + * 4 + * This file is licensed under the terms of the GNU General Public 5 + * License version 2. This program is licensed "as is" without any 6 + * warranty of any kind, whether express or implied. 7 + */ 8 + 9 + #ifndef __ASM_ARCH_HARDWARE_H 10 + #define __ASM_ARCH_HARDWARE_H 11 + 12 + #include "dove.h" 13 + 14 + #define pcibios_assign_all_busses() 1 15 + 16 + #define PCIBIOS_MIN_IO 0x1000 17 + #define PCIBIOS_MIN_MEM 0x01000000 18 + #define PCIMEM_BASE DOVE_PCIE0_MEM_PHYS_BASE 19 + 20 + 21 + /* Macros below are required for compatibility with PXA AC'97 driver. */ 22 + #define __REG(x) (*((volatile u32 *)((x) - DOVE_SB_REGS_PHYS_BASE + \ 23 + DOVE_SB_REGS_VIRT_BASE))) 24 + #define __PREG(x) (((u32)&(x)) - DOVE_SB_REGS_VIRT_BASE + \ 25 + DOVE_SB_REGS_PHYS_BASE) 26 + #endif
+20
arch/arm/mach-dove/include/mach/io.h
··· 1 + /* 2 + * arch/arm/mach-dove/include/mach/io.h 3 + * 4 + * This file is licensed under the terms of the GNU General Public 5 + * License version 2. This program is licensed "as is" without any 6 + * warranty of any kind, whether express or implied. 7 + */ 8 + 9 + #ifndef __ASM_ARCH_IO_H 10 + #define __ASM_ARCH_IO_H 11 + 12 + #include "dove.h" 13 + 14 + #define IO_SPACE_LIMIT 0xffffffff 15 + 16 + #define __io(a) ((void __iomem *)(((a) - DOVE_PCIE0_IO_PHYS_BASE) +\ 17 + DOVE_PCIE0_IO_VIRT_BASE)) 18 + #define __mem_pci(a) (a) 19 + 20 + #endif
+101
arch/arm/mach-dove/include/mach/irqs.h
··· 1 + /* 2 + * arch/arm/mach-dove/include/mach/irqs.h 3 + * 4 + * IRQ definitions for Marvell Dove 88AP510 SoC 5 + * 6 + * This file is licensed under the terms of the GNU General Public 7 + * License version 2. This program is licensed "as is" without any 8 + * warranty of any kind, whether express or implied. 9 + */ 10 + 11 + #ifndef __ASM_ARCH_IRQS_H 12 + #define __ASM_ARCH_IRQS_H 13 + 14 + /* 15 + * Dove Low Interrupt Controller 16 + */ 17 + #define IRQ_DOVE_BRIDGE 0 18 + #define IRQ_DOVE_H2C 1 19 + #define IRQ_DOVE_C2H 2 20 + #define IRQ_DOVE_NAND 3 21 + #define IRQ_DOVE_PDMA 4 22 + #define IRQ_DOVE_SPI1 5 23 + #define IRQ_DOVE_SPI0 6 24 + #define IRQ_DOVE_UART_0 7 25 + #define IRQ_DOVE_UART_1 8 26 + #define IRQ_DOVE_UART_2 9 27 + #define IRQ_DOVE_UART_3 10 28 + #define IRQ_DOVE_I2C 11 29 + #define IRQ_DOVE_GPIO_0_7 12 30 + #define IRQ_DOVE_GPIO_8_15 13 31 + #define IRQ_DOVE_GPIO_16_23 14 32 + #define IRQ_DOVE_PCIE0_ERR 15 33 + #define IRQ_DOVE_PCIE0 16 34 + #define IRQ_DOVE_PCIE1_ERR 17 35 + #define IRQ_DOVE_PCIE1 18 36 + #define IRQ_DOVE_I2S0 19 37 + #define IRQ_DOVE_I2S0_ERR 20 38 + #define IRQ_DOVE_I2S1 21 39 + #define IRQ_DOVE_I2S1_ERR 22 40 + #define IRQ_DOVE_USB_ERR 23 41 + #define IRQ_DOVE_USB0 24 42 + #define IRQ_DOVE_USB1 25 43 + #define IRQ_DOVE_GE00_RX 26 44 + #define IRQ_DOVE_GE00_TX 27 45 + #define IRQ_DOVE_GE00_MISC 28 46 + #define IRQ_DOVE_GE00_SUM 29 47 + #define IRQ_DOVE_GE00_ERR 30 48 + #define IRQ_DOVE_CRYPTO 31 49 + 50 + /* 51 + * Dove High Interrupt Controller 52 + */ 53 + #define IRQ_DOVE_AC97 32 54 + #define IRQ_DOVE_PMU 33 55 + #define IRQ_DOVE_CAM 34 56 + #define IRQ_DOVE_SDIO0 35 57 + #define IRQ_DOVE_SDIO1 36 58 + #define IRQ_DOVE_SDIO0_WAKEUP 37 59 + #define IRQ_DOVE_SDIO1_WAKEUP 38 60 + #define IRQ_DOVE_XOR_00 39 61 + #define IRQ_DOVE_XOR_01 40 62 + #define IRQ_DOVE_XOR0_ERR 41 63 + #define IRQ_DOVE_XOR_10 42 64 + #define IRQ_DOVE_XOR_11 43 65 + #define IRQ_DOVE_XOR1_ERR 44 66 + #define IRQ_DOVE_LCD_DCON 45 67 + #define IRQ_DOVE_LCD1 46 68 + #define IRQ_DOVE_LCD0 47 69 + #define IRQ_DOVE_GPU 48 70 + #define IRQ_DOVE_PERFORM_MNTR 49 71 + #define IRQ_DOVE_VPRO_DMA1 51 72 + #define IRQ_DOVE_SSP_TIMER 54 73 + #define IRQ_DOVE_SSP 55 74 + #define IRQ_DOVE_MC_L2_ERR 56 75 + #define IRQ_DOVE_CRYPTO_ERR 59 76 + #define IRQ_DOVE_GPIO_24_31 60 77 + #define IRQ_DOVE_HIGH_GPIO 61 78 + #define IRQ_DOVE_SATA 62 79 + 80 + /* 81 + * DOVE General Purpose Pins 82 + */ 83 + #define IRQ_DOVE_GPIO_START 64 84 + #define NR_GPIO_IRQS 64 85 + 86 + /* 87 + * PMU interrupts 88 + */ 89 + #define IRQ_DOVE_PMU_START (IRQ_DOVE_GPIO_START + NR_GPIO_IRQS) 90 + #define NR_PMU_IRQS 7 91 + #define IRQ_DOVE_RTC (IRQ_DOVE_PMU_START + 5) 92 + 93 + #define NR_IRQS (IRQ_DOVE_PMU_START + NR_PMU_IRQS) 94 + 95 + /* Required for compatability with PXA AC97 driver. */ 96 + #define IRQ_AC97 IRQ_DOVE_AC97 97 + /* Required for compatability with PXA DMA driver. */ 98 + #define IRQ_DMA IRQ_DOVE_PDMA 99 + /* Required for compatability with PXA NAND driver */ 100 + #define IRQ_NAND IRQ_DOVE_NAND 101 + #endif
+10
arch/arm/mach-dove/include/mach/memory.h
··· 1 + /* 2 + * arch/arm/mach-dove/include/mach/memory.h 3 + */ 4 + 5 + #ifndef __ASM_ARCH_MEMORY_H 6 + #define __ASM_ARCH_MEMORY_H 7 + 8 + #define PHYS_OFFSET UL(0x00000000) 9 + 10 + #endif
+54
arch/arm/mach-dove/include/mach/pm.h
··· 1 + /* 2 + * arch/arm/mach-dove/include/mach/pm.h 3 + * 4 + * This file is licensed under the terms of the GNU General Public 5 + * License version 2. This program is licensed "as is" without any 6 + * warranty of any kind, whether express or implied. 7 + */ 8 + 9 + #ifndef __ASM_ARCH_PM_H 10 + #define __ASM_ARCH_PM_H 11 + 12 + #include <asm/errno.h> 13 + #include <mach/irqs.h> 14 + 15 + #define CLOCK_GATING_CONTROL (DOVE_PMU_VIRT_BASE + 0x38) 16 + #define CLOCK_GATING_USB0_MASK (1 << 0) 17 + #define CLOCK_GATING_USB1_MASK (1 << 1) 18 + #define CLOCK_GATING_GBE_MASK (1 << 2) 19 + #define CLOCK_GATING_SATA_MASK (1 << 3) 20 + #define CLOCK_GATING_PCIE0_MASK (1 << 4) 21 + #define CLOCK_GATING_PCIE1_MASK (1 << 5) 22 + #define CLOCK_GATING_SDIO0_MASK (1 << 8) 23 + #define CLOCK_GATING_SDIO1_MASK (1 << 9) 24 + #define CLOCK_GATING_NAND_MASK (1 << 10) 25 + #define CLOCK_GATING_CAMERA_MASK (1 << 11) 26 + #define CLOCK_GATING_I2S0_MASK (1 << 12) 27 + #define CLOCK_GATING_I2S1_MASK (1 << 13) 28 + #define CLOCK_GATING_CRYPTO_MASK (1 << 15) 29 + #define CLOCK_GATING_AC97_MASK (1 << 21) 30 + #define CLOCK_GATING_PDMA_MASK (1 << 22) 31 + #define CLOCK_GATING_XOR0_MASK (1 << 23) 32 + #define CLOCK_GATING_XOR1_MASK (1 << 24) 33 + #define CLOCK_GATING_GIGA_PHY_MASK (1 << 30) 34 + 35 + #define PMU_INTERRUPT_CAUSE (DOVE_PMU_VIRT_BASE + 0x50) 36 + #define PMU_INTERRUPT_MASK (DOVE_PMU_VIRT_BASE + 0x54) 37 + 38 + static inline int pmu_to_irq(int pin) 39 + { 40 + if (pin < NR_PMU_IRQS) 41 + return pin + IRQ_DOVE_PMU_START; 42 + 43 + return -EINVAL; 44 + } 45 + 46 + static inline int irq_to_pmu(int irq) 47 + { 48 + if (IRQ_DOVE_PMU_START < irq && irq < NR_IRQS) 49 + return irq - IRQ_DOVE_PMU_START; 50 + 51 + return -EINVAL; 52 + } 53 + 54 + #endif
+36
arch/arm/mach-dove/include/mach/system.h
··· 1 + /* 2 + * arch/arm/mach-dove/include/mach/system.h 3 + * 4 + * This file is licensed under the terms of the GNU General Public 5 + * License version 2. This program is licensed "as is" without any 6 + * warranty of any kind, whether express or implied. 7 + */ 8 + 9 + #ifndef __ASM_ARCH_SYSTEM_H 10 + #define __ASM_ARCH_SYSTEM_H 11 + 12 + #include <mach/bridge-regs.h> 13 + 14 + static inline void arch_idle(void) 15 + { 16 + cpu_do_idle(); 17 + } 18 + 19 + static inline void arch_reset(char mode, const char *cmd) 20 + { 21 + /* 22 + * Enable soft reset to assert RSTOUTn. 23 + */ 24 + writel(SOFT_RESET_OUT_EN, RSTOUTn_MASK); 25 + 26 + /* 27 + * Assert soft reset. 28 + */ 29 + writel(SOFT_RESET, SYSTEM_SOFT_RESET); 30 + 31 + while (1) 32 + ; 33 + } 34 + 35 + 36 + #endif
+9
arch/arm/mach-dove/include/mach/timex.h
··· 1 + /* 2 + * arch/arm/mach-dove/include/mach/timex.h 3 + * 4 + * This file is licensed under the terms of the GNU General Public 5 + * License version 2. This program is licensed "as is" without any 6 + * warranty of any kind, whether express or implied. 7 + */ 8 + 9 + #define CLOCK_TICK_RATE (100 * HZ)
+37
arch/arm/mach-dove/include/mach/uncompress.h
··· 1 + /* 2 + * arch/arm/mach-dove/include/mach/uncompress.h 3 + * 4 + * This file is licensed under the terms of the GNU General Public 5 + * License version 2. This program is licensed "as is" without any 6 + * warranty of any kind, whether express or implied. 7 + */ 8 + 9 + #include <mach/dove.h> 10 + 11 + #define UART_THR ((volatile unsigned char *)(DOVE_UART0_PHYS_BASE + 0x0)) 12 + #define UART_LSR ((volatile unsigned char *)(DOVE_UART0_PHYS_BASE + 0x14)) 13 + 14 + #define LSR_THRE 0x20 15 + 16 + static void putc(const char c) 17 + { 18 + int i; 19 + 20 + for (i = 0; i < 0x1000; i++) { 21 + /* Transmit fifo not full? */ 22 + if (*UART_LSR & LSR_THRE) 23 + break; 24 + } 25 + 26 + *UART_THR = c; 27 + } 28 + 29 + static void flush(void) 30 + { 31 + } 32 + 33 + /* 34 + * nothing to do 35 + */ 36 + #define arch_decomp_setup() 37 + #define arch_decomp_wdog()
+5
arch/arm/mach-dove/include/mach/vmalloc.h
··· 1 + /* 2 + * arch/arm/mach-dove/include/mach/vmalloc.h 3 + */ 4 + 5 + #define VMALLOC_END 0xfd800000
+133
arch/arm/mach-dove/irq.c
··· 1 + /* 2 + * arch/arm/mach-dove/irq.c 3 + * 4 + * Dove IRQ handling. 5 + * 6 + * This file is licensed under the terms of the GNU General Public 7 + * License version 2. This program is licensed "as is" without any 8 + * warranty of any kind, whether express or implied. 9 + */ 10 + 11 + #include <linux/kernel.h> 12 + #include <linux/init.h> 13 + #include <linux/irq.h> 14 + #include <linux/gpio.h> 15 + #include <linux/io.h> 16 + #include <asm/mach/arch.h> 17 + #include <plat/irq.h> 18 + #include <asm/mach/irq.h> 19 + #include <mach/pm.h> 20 + #include <mach/bridge-regs.h> 21 + #include "common.h" 22 + 23 + static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc) 24 + { 25 + int irqoff; 26 + BUG_ON(irq < IRQ_DOVE_GPIO_0_7 || irq > IRQ_DOVE_HIGH_GPIO); 27 + 28 + irqoff = irq <= IRQ_DOVE_GPIO_16_23 ? irq - IRQ_DOVE_GPIO_0_7 : 29 + 3 + irq - IRQ_DOVE_GPIO_24_31; 30 + 31 + orion_gpio_irq_handler(irqoff << 3); 32 + if (irq == IRQ_DOVE_HIGH_GPIO) { 33 + orion_gpio_irq_handler(40); 34 + orion_gpio_irq_handler(48); 35 + orion_gpio_irq_handler(56); 36 + } 37 + } 38 + 39 + static void pmu_irq_mask(unsigned int irq) 40 + { 41 + int pin = irq_to_pmu(irq); 42 + u32 u; 43 + 44 + u = readl(PMU_INTERRUPT_MASK); 45 + u &= ~(1 << (pin & 31)); 46 + writel(u, PMU_INTERRUPT_MASK); 47 + } 48 + 49 + static void pmu_irq_unmask(unsigned int irq) 50 + { 51 + int pin = irq_to_pmu(irq); 52 + u32 u; 53 + 54 + u = readl(PMU_INTERRUPT_MASK); 55 + u |= 1 << (pin & 31); 56 + writel(u, PMU_INTERRUPT_MASK); 57 + } 58 + 59 + static void pmu_irq_ack(unsigned int irq) 60 + { 61 + int pin = irq_to_pmu(irq); 62 + u32 u; 63 + 64 + u = ~(1 << (pin & 31)); 65 + writel(u, PMU_INTERRUPT_CAUSE); 66 + } 67 + 68 + static struct irq_chip pmu_irq_chip = { 69 + .name = "pmu_irq", 70 + .mask = pmu_irq_mask, 71 + .unmask = pmu_irq_unmask, 72 + .ack = pmu_irq_ack, 73 + }; 74 + 75 + static void pmu_irq_handler(unsigned int irq, struct irq_desc *desc) 76 + { 77 + unsigned long cause = readl(PMU_INTERRUPT_CAUSE); 78 + 79 + cause &= readl(PMU_INTERRUPT_MASK); 80 + if (cause == 0) { 81 + do_bad_IRQ(irq, desc); 82 + return; 83 + } 84 + 85 + for (irq = 0; irq < NR_PMU_IRQS; irq++) { 86 + if (!(cause & (1 << irq))) 87 + continue; 88 + irq = pmu_to_irq(irq); 89 + desc = irq_desc + irq; 90 + desc_handle_irq(irq, desc); 91 + } 92 + } 93 + 94 + void __init dove_init_irq(void) 95 + { 96 + int i; 97 + 98 + orion_irq_init(0, (void __iomem *)(IRQ_VIRT_BASE + IRQ_MASK_LOW_OFF)); 99 + orion_irq_init(32, (void __iomem *)(IRQ_VIRT_BASE + IRQ_MASK_HIGH_OFF)); 100 + 101 + /* 102 + * Mask and clear GPIO IRQ interrupts. 103 + */ 104 + writel(0, GPIO_LEVEL_MASK(0)); 105 + writel(0, GPIO_EDGE_MASK(0)); 106 + writel(0, GPIO_EDGE_CAUSE(0)); 107 + 108 + /* 109 + * Mask and clear PMU interrupts 110 + */ 111 + writel(0, PMU_INTERRUPT_MASK); 112 + writel(0, PMU_INTERRUPT_CAUSE); 113 + 114 + for (i = IRQ_DOVE_GPIO_START; i < IRQ_DOVE_PMU_START; i++) { 115 + set_irq_chip(i, &orion_gpio_irq_chip); 116 + set_irq_handler(i, handle_level_irq); 117 + irq_desc[i].status |= IRQ_LEVEL; 118 + set_irq_flags(i, IRQF_VALID); 119 + } 120 + set_irq_chained_handler(IRQ_DOVE_GPIO_0_7, gpio_irq_handler); 121 + set_irq_chained_handler(IRQ_DOVE_GPIO_8_15, gpio_irq_handler); 122 + set_irq_chained_handler(IRQ_DOVE_GPIO_16_23, gpio_irq_handler); 123 + set_irq_chained_handler(IRQ_DOVE_GPIO_24_31, gpio_irq_handler); 124 + set_irq_chained_handler(IRQ_DOVE_HIGH_GPIO, gpio_irq_handler); 125 + 126 + for (i = IRQ_DOVE_PMU_START; i < NR_IRQS; i++) { 127 + set_irq_chip(i, &pmu_irq_chip); 128 + set_irq_handler(i, handle_level_irq); 129 + irq_desc[i].status |= IRQ_LEVEL; 130 + set_irq_flags(i, IRQF_VALID); 131 + } 132 + set_irq_chained_handler(IRQ_DOVE_PMU, pmu_irq_handler); 133 + }
+238
arch/arm/mach-dove/pcie.c
··· 1 + /* 2 + * arch/arm/mach-dove/pcie.c 3 + * 4 + * PCIe functions for Marvell Dove 88AP510 SoC 5 + * 6 + * This file is licensed under the terms of the GNU General Public 7 + * License version 2. This program is licensed "as is" without any 8 + * warranty of any kind, whether express or implied. 9 + */ 10 + 11 + #include <linux/kernel.h> 12 + #include <linux/pci.h> 13 + #include <linux/mbus.h> 14 + #include <asm/mach/pci.h> 15 + #include <asm/mach/arch.h> 16 + #include <asm/setup.h> 17 + #include <asm/delay.h> 18 + #include <plat/pcie.h> 19 + #include <mach/irqs.h> 20 + #include <mach/bridge-regs.h> 21 + #include "common.h" 22 + 23 + struct pcie_port { 24 + u8 index; 25 + u8 root_bus_nr; 26 + void __iomem *base; 27 + spinlock_t conf_lock; 28 + char io_space_name[16]; 29 + char mem_space_name[16]; 30 + struct resource res[2]; 31 + }; 32 + 33 + static struct pcie_port pcie_port[2]; 34 + static int num_pcie_ports; 35 + 36 + 37 + static int __init dove_pcie_setup(int nr, struct pci_sys_data *sys) 38 + { 39 + struct pcie_port *pp; 40 + 41 + if (nr >= num_pcie_ports) 42 + return 0; 43 + 44 + pp = &pcie_port[nr]; 45 + pp->root_bus_nr = sys->busnr; 46 + 47 + /* 48 + * Generic PCIe unit setup. 49 + */ 50 + orion_pcie_set_local_bus_nr(pp->base, sys->busnr); 51 + 52 + orion_pcie_setup(pp->base, &dove_mbus_dram_info); 53 + 54 + /* 55 + * IORESOURCE_IO 56 + */ 57 + snprintf(pp->io_space_name, sizeof(pp->io_space_name), 58 + "PCIe %d I/O", pp->index); 59 + pp->io_space_name[sizeof(pp->io_space_name) - 1] = 0; 60 + pp->res[0].name = pp->io_space_name; 61 + if (pp->index == 0) { 62 + pp->res[0].start = DOVE_PCIE0_IO_PHYS_BASE; 63 + pp->res[0].end = pp->res[0].start + DOVE_PCIE0_IO_SIZE - 1; 64 + } else { 65 + pp->res[0].start = DOVE_PCIE1_IO_PHYS_BASE; 66 + pp->res[0].end = pp->res[0].start + DOVE_PCIE1_IO_SIZE - 1; 67 + } 68 + pp->res[0].flags = IORESOURCE_IO; 69 + if (request_resource(&ioport_resource, &pp->res[0])) 70 + panic("Request PCIe IO resource failed\n"); 71 + sys->resource[0] = &pp->res[0]; 72 + 73 + /* 74 + * IORESOURCE_MEM 75 + */ 76 + snprintf(pp->mem_space_name, sizeof(pp->mem_space_name), 77 + "PCIe %d MEM", pp->index); 78 + pp->mem_space_name[sizeof(pp->mem_space_name) - 1] = 0; 79 + pp->res[1].name = pp->mem_space_name; 80 + if (pp->index == 0) { 81 + pp->res[1].start = DOVE_PCIE0_MEM_PHYS_BASE; 82 + pp->res[1].end = pp->res[1].start + DOVE_PCIE0_MEM_SIZE - 1; 83 + } else { 84 + pp->res[1].start = DOVE_PCIE1_MEM_PHYS_BASE; 85 + pp->res[1].end = pp->res[1].start + DOVE_PCIE1_MEM_SIZE - 1; 86 + } 87 + pp->res[1].flags = IORESOURCE_MEM; 88 + if (request_resource(&iomem_resource, &pp->res[1])) 89 + panic("Request PCIe Memory resource failed\n"); 90 + sys->resource[1] = &pp->res[1]; 91 + 92 + sys->resource[2] = NULL; 93 + 94 + return 1; 95 + } 96 + 97 + static struct pcie_port *bus_to_port(int bus) 98 + { 99 + int i; 100 + 101 + for (i = num_pcie_ports - 1; i >= 0; i--) { 102 + int rbus = pcie_port[i].root_bus_nr; 103 + if (rbus != -1 && rbus <= bus) 104 + break; 105 + } 106 + 107 + return i >= 0 ? pcie_port + i : NULL; 108 + } 109 + 110 + static int pcie_valid_config(struct pcie_port *pp, int bus, int dev) 111 + { 112 + /* 113 + * Don't go out when trying to access nonexisting devices 114 + * on the local bus. 115 + */ 116 + if (bus == pp->root_bus_nr && dev > 1) 117 + return 0; 118 + 119 + return 1; 120 + } 121 + 122 + static int pcie_rd_conf(struct pci_bus *bus, u32 devfn, int where, 123 + int size, u32 *val) 124 + { 125 + struct pcie_port *pp = bus_to_port(bus->number); 126 + unsigned long flags; 127 + int ret; 128 + 129 + if (pcie_valid_config(pp, bus->number, PCI_SLOT(devfn)) == 0) { 130 + *val = 0xffffffff; 131 + return PCIBIOS_DEVICE_NOT_FOUND; 132 + } 133 + 134 + spin_lock_irqsave(&pp->conf_lock, flags); 135 + ret = orion_pcie_rd_conf(pp->base, bus, devfn, where, size, val); 136 + spin_unlock_irqrestore(&pp->conf_lock, flags); 137 + 138 + return ret; 139 + } 140 + 141 + static int pcie_wr_conf(struct pci_bus *bus, u32 devfn, 142 + int where, int size, u32 val) 143 + { 144 + struct pcie_port *pp = bus_to_port(bus->number); 145 + unsigned long flags; 146 + int ret; 147 + 148 + if (pcie_valid_config(pp, bus->number, PCI_SLOT(devfn)) == 0) 149 + return PCIBIOS_DEVICE_NOT_FOUND; 150 + 151 + spin_lock_irqsave(&pp->conf_lock, flags); 152 + ret = orion_pcie_wr_conf(pp->base, bus, devfn, where, size, val); 153 + spin_unlock_irqrestore(&pp->conf_lock, flags); 154 + 155 + return ret; 156 + } 157 + 158 + static struct pci_ops pcie_ops = { 159 + .read = pcie_rd_conf, 160 + .write = pcie_wr_conf, 161 + }; 162 + 163 + static void __devinit rc_pci_fixup(struct pci_dev *dev) 164 + { 165 + /* 166 + * Prevent enumeration of root complex. 167 + */ 168 + if (dev->bus->parent == NULL && dev->devfn == 0) { 169 + int i; 170 + 171 + for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) { 172 + dev->resource[i].start = 0; 173 + dev->resource[i].end = 0; 174 + dev->resource[i].flags = 0; 175 + } 176 + } 177 + } 178 + DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL, PCI_ANY_ID, rc_pci_fixup); 179 + 180 + static struct pci_bus __init * 181 + dove_pcie_scan_bus(int nr, struct pci_sys_data *sys) 182 + { 183 + struct pci_bus *bus; 184 + 185 + if (nr < num_pcie_ports) { 186 + bus = pci_scan_bus(sys->busnr, &pcie_ops, sys); 187 + } else { 188 + bus = NULL; 189 + BUG(); 190 + } 191 + 192 + return bus; 193 + } 194 + 195 + static int __init dove_pcie_map_irq(struct pci_dev *dev, u8 slot, u8 pin) 196 + { 197 + struct pcie_port *pp = bus_to_port(dev->bus->number); 198 + 199 + return pp->index ? IRQ_DOVE_PCIE1 : IRQ_DOVE_PCIE0; 200 + } 201 + 202 + static struct hw_pci dove_pci __initdata = { 203 + .nr_controllers = 2, 204 + .swizzle = pci_std_swizzle, 205 + .setup = dove_pcie_setup, 206 + .scan = dove_pcie_scan_bus, 207 + .map_irq = dove_pcie_map_irq, 208 + }; 209 + 210 + static void __init add_pcie_port(int index, unsigned long base) 211 + { 212 + printk(KERN_INFO "Dove PCIe port %d: ", index); 213 + 214 + if (orion_pcie_link_up((void __iomem *)base)) { 215 + struct pcie_port *pp = &pcie_port[num_pcie_ports++]; 216 + 217 + printk(KERN_INFO "link up\n"); 218 + 219 + pp->index = index; 220 + pp->root_bus_nr = -1; 221 + pp->base = (void __iomem *)base; 222 + spin_lock_init(&pp->conf_lock); 223 + memset(pp->res, 0, sizeof(pp->res)); 224 + } else { 225 + printk(KERN_INFO "link down, ignoring\n"); 226 + } 227 + } 228 + 229 + void __init dove_pcie_init(int init_port0, int init_port1) 230 + { 231 + if (init_port0) 232 + add_pcie_port(0, DOVE_PCIE0_VIRT_BASE); 233 + 234 + if (init_port1) 235 + add_pcie_port(1, DOVE_PCIE1_VIRT_BASE); 236 + 237 + pci_common_init(&dove_pci); 238 + }
+1 -1
arch/arm/mm/Kconfig
··· 388 388 389 389 # ARMv6 390 390 config CPU_V6 391 - bool "Support ARM V6 processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB || MACH_REALVIEW_PBX 391 + bool "Support ARM V6 processor" if ARCH_INTEGRATOR || MACH_REALVIEW_EB || MACH_REALVIEW_PBX || ARCH_DOVE 392 392 select CPU_32v6 393 393 select CPU_ABRT_EV6 394 394 select CPU_PABRT_V6
+32 -1
arch/arm/mm/proc-v6.S
··· 130 130 131 131 132 132 133 - 133 + .type cpu_v6_name, #object 134 134 cpu_v6_name: 135 135 .asciz "ARMv6-compatible processor" 136 + .size cpu_v6_name, . - cpu_v6_name 137 + 138 + .type cpu_pj4_name, #object 139 + cpu_pj4_name: 140 + .asciz "Marvell PJ4 processor" 141 + .size cpu_pj4_name, . - cpu_pj4_name 142 + 136 143 .align 137 144 138 145 __INIT ··· 248 241 .long v6_user_fns 249 242 .long v6_cache_fns 250 243 .size __v6_proc_info, . - __v6_proc_info 244 + 245 + .type __pj4_v6_proc_info, #object 246 + __pj4_v6_proc_info: 247 + .long 0x560f5810 248 + .long 0xff0ffff0 249 + .long PMD_TYPE_SECT | \ 250 + PMD_SECT_BUFFERABLE | \ 251 + PMD_SECT_CACHEABLE | \ 252 + PMD_SECT_AP_WRITE | \ 253 + PMD_SECT_AP_READ 254 + .long PMD_TYPE_SECT | \ 255 + PMD_SECT_XN | \ 256 + PMD_SECT_AP_WRITE | \ 257 + PMD_SECT_AP_READ 258 + b __v6_setup 259 + .long cpu_arch_name 260 + .long cpu_elf_name 261 + .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP 262 + .long cpu_pj4_name 263 + .long v6_processor_functions 264 + .long v6wbi_tlb_fns 265 + .long v6_user_fns 266 + .long v6_cache_fns 267 + .size __pj4_v6_proc_info, . - __pj4_v6_proc_info