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

[MIPS] Wind River 4KC PPMC Eval Board Support Support for the GT-64120-based Wind River 4KC PPMC Evaluation board.

Signed-off-by: Rongkai.Zhan <Rongkai.zhan@windriver.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

authored by

Mark.Zhan and committed by
Ralf Baechle
a240a469 a643d2b5

+1420
+21
arch/mips/Kconfig
··· 327 327 This enables support for the MIPS Technologies SEAD evaluation 328 328 board. 329 329 330 + config WR_PPMC 331 + bool "Support for Wind River PPMC board" 332 + select IRQ_CPU 333 + select BOOT_ELF32 334 + select DMA_NONCOHERENT 335 + select HW_HAS_PCI 336 + select MIPS_GT64120 337 + select SWAP_IO_SPACE 338 + select SYS_HAS_CPU_MIPS32_R1 339 + select SYS_HAS_CPU_MIPS32_R2 340 + select SYS_HAS_CPU_MIPS64_R1 341 + select SYS_HAS_CPU_NEVADA 342 + select SYS_HAS_CPU_RM7000 343 + select SYS_SUPPORTS_32BIT_KERNEL 344 + select SYS_SUPPORTS_64BIT_KERNEL 345 + select SYS_SUPPORTS_BIG_ENDIAN 346 + select SYS_SUPPORTS_LITTLE_ENDIAN 347 + help 348 + This enables support for the Wind River MIPS32 4KC PPMC evaluation 349 + board, which is based on GT64120 bridge chip. 350 + 330 351 config MIPS_SIM 331 352 bool 'MIPS simulator (MIPSsim)' 332 353 select DMA_NONCOHERENT
+7
arch/mips/Makefile
··· 287 287 load-$(CONFIG_MIPS_EV96100) += 0xffffffff80100000 288 288 289 289 # 290 + # Wind River PPMC Board (4KC + GT64120) 291 + # 292 + core-$(CONFIG_WR_PPMC) += arch/mips/gt64120/wrppmc/ 293 + cflags-$(CONFIG_WR_PPMC) += -Iinclude/asm-mips/mach-wrppmc 294 + load-$(CONFIG_WR_PPMC) += 0xffffffff80100000 295 + 296 + # 290 297 # Globespan IVR eval board with QED 5231 CPU 291 298 # 292 299 core-$(CONFIG_ITE_BOARD_GEN) += arch/mips/ite-boards/generic/
+801
arch/mips/configs/wrppmc_defconfig
··· 1 + # 2 + # Automatically generated make config: don't edit 3 + # Linux kernel version: 2.6.16.11 4 + # Fri May 5 17:11:22 2006 5 + # 6 + CONFIG_MIPS=y 7 + 8 + # 9 + # Machine selection 10 + # 11 + # CONFIG_MIPS_MTX1 is not set 12 + # CONFIG_MIPS_BOSPORUS is not set 13 + # CONFIG_MIPS_PB1000 is not set 14 + # CONFIG_MIPS_PB1100 is not set 15 + # CONFIG_MIPS_PB1500 is not set 16 + # CONFIG_MIPS_PB1550 is not set 17 + # CONFIG_MIPS_PB1200 is not set 18 + # CONFIG_MIPS_DB1000 is not set 19 + # CONFIG_MIPS_DB1100 is not set 20 + # CONFIG_MIPS_DB1500 is not set 21 + # CONFIG_MIPS_DB1550 is not set 22 + # CONFIG_MIPS_DB1200 is not set 23 + # CONFIG_MIPS_MIRAGE is not set 24 + # CONFIG_MIPS_COBALT is not set 25 + # CONFIG_MACH_DECSTATION is not set 26 + # CONFIG_MIPS_EV64120 is not set 27 + # CONFIG_MIPS_EV96100 is not set 28 + # CONFIG_MIPS_IVR is not set 29 + # CONFIG_MIPS_ITE8172 is not set 30 + # CONFIG_MACH_JAZZ is not set 31 + # CONFIG_LASAT is not set 32 + # CONFIG_MIPS_ATLAS is not set 33 + # CONFIG_MIPS_MALTA is not set 34 + # CONFIG_MIPS_SEAD is not set 35 + CONFIG_WR_PPMC=y 36 + # CONFIG_MIPS_SIM is not set 37 + # CONFIG_MOMENCO_JAGUAR_ATX is not set 38 + # CONFIG_MOMENCO_OCELOT is not set 39 + # CONFIG_MOMENCO_OCELOT_3 is not set 40 + # CONFIG_MOMENCO_OCELOT_C is not set 41 + # CONFIG_MOMENCO_OCELOT_G is not set 42 + # CONFIG_MIPS_XXS1500 is not set 43 + # CONFIG_PNX8550_V2PCI is not set 44 + # CONFIG_PNX8550_JBS is not set 45 + # CONFIG_DDB5074 is not set 46 + # CONFIG_DDB5476 is not set 47 + # CONFIG_DDB5477 is not set 48 + # CONFIG_MACH_VR41XX is not set 49 + # CONFIG_PMC_YOSEMITE is not set 50 + # CONFIG_QEMU is not set 51 + # CONFIG_SGI_IP22 is not set 52 + # CONFIG_SGI_IP27 is not set 53 + # CONFIG_SGI_IP32 is not set 54 + # CONFIG_SIBYTE_BIGSUR is not set 55 + # CONFIG_SIBYTE_SWARM is not set 56 + # CONFIG_SIBYTE_SENTOSA is not set 57 + # CONFIG_SIBYTE_RHONE is not set 58 + # CONFIG_SIBYTE_CARMEL is not set 59 + # CONFIG_SIBYTE_PTSWARM is not set 60 + # CONFIG_SIBYTE_LITTLESUR is not set 61 + # CONFIG_SIBYTE_CRHINE is not set 62 + # CONFIG_SIBYTE_CRHONE is not set 63 + # CONFIG_SNI_RM200_PCI is not set 64 + # CONFIG_TOSHIBA_JMR3927 is not set 65 + # CONFIG_TOSHIBA_RBTX4927 is not set 66 + # CONFIG_TOSHIBA_RBTX4938 is not set 67 + CONFIG_RWSEM_GENERIC_SPINLOCK=y 68 + CONFIG_GENERIC_CALIBRATE_DELAY=y 69 + CONFIG_DMA_NONCOHERENT=y 70 + CONFIG_DMA_NEED_PCI_MAP_STATE=y 71 + CONFIG_CPU_BIG_ENDIAN=y 72 + # CONFIG_CPU_LITTLE_ENDIAN is not set 73 + CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y 74 + CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 75 + CONFIG_IRQ_CPU=y 76 + CONFIG_MIPS_GT64120=y 77 + CONFIG_SWAP_IO_SPACE=y 78 + CONFIG_BOOT_ELF32=y 79 + CONFIG_MIPS_L1_CACHE_SHIFT=5 80 + 81 + # 82 + # CPU selection 83 + # 84 + CONFIG_CPU_MIPS32_R1=y 85 + # CONFIG_CPU_MIPS32_R2 is not set 86 + # CONFIG_CPU_MIPS64_R1 is not set 87 + # CONFIG_CPU_MIPS64_R2 is not set 88 + # CONFIG_CPU_R3000 is not set 89 + # CONFIG_CPU_TX39XX is not set 90 + # CONFIG_CPU_VR41XX is not set 91 + # CONFIG_CPU_R4300 is not set 92 + # CONFIG_CPU_R4X00 is not set 93 + # CONFIG_CPU_TX49XX is not set 94 + # CONFIG_CPU_R5000 is not set 95 + # CONFIG_CPU_R5432 is not set 96 + # CONFIG_CPU_R6000 is not set 97 + # CONFIG_CPU_NEVADA is not set 98 + # CONFIG_CPU_R8000 is not set 99 + # CONFIG_CPU_R10000 is not set 100 + # CONFIG_CPU_RM7000 is not set 101 + # CONFIG_CPU_RM9000 is not set 102 + # CONFIG_CPU_SB1 is not set 103 + CONFIG_SYS_HAS_CPU_MIPS32_R1=y 104 + CONFIG_SYS_HAS_CPU_MIPS32_R2=y 105 + CONFIG_SYS_HAS_CPU_MIPS64_R1=y 106 + CONFIG_SYS_HAS_CPU_NEVADA=y 107 + CONFIG_SYS_HAS_CPU_RM7000=y 108 + CONFIG_CPU_MIPS32=y 109 + CONFIG_CPU_MIPSR1=y 110 + CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 111 + CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y 112 + CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 113 + 114 + # 115 + # Kernel type 116 + # 117 + CONFIG_32BIT=y 118 + # CONFIG_64BIT is not set 119 + CONFIG_PAGE_SIZE_4KB=y 120 + # CONFIG_PAGE_SIZE_8KB is not set 121 + # CONFIG_PAGE_SIZE_16KB is not set 122 + # CONFIG_PAGE_SIZE_64KB is not set 123 + CONFIG_CPU_HAS_PREFETCH=y 124 + # CONFIG_MIPS_MT is not set 125 + # CONFIG_64BIT_PHYS_ADDR is not set 126 + # CONFIG_CPU_ADVANCED is not set 127 + CONFIG_CPU_HAS_LLSC=y 128 + CONFIG_CPU_HAS_SYNC=y 129 + CONFIG_GENERIC_HARDIRQS=y 130 + CONFIG_GENERIC_IRQ_PROBE=y 131 + CONFIG_CPU_SUPPORTS_HIGHMEM=y 132 + CONFIG_ARCH_FLATMEM_ENABLE=y 133 + CONFIG_SELECT_MEMORY_MODEL=y 134 + CONFIG_FLATMEM_MANUAL=y 135 + # CONFIG_DISCONTIGMEM_MANUAL is not set 136 + # CONFIG_SPARSEMEM_MANUAL is not set 137 + CONFIG_FLATMEM=y 138 + CONFIG_FLAT_NODE_MEM_MAP=y 139 + # CONFIG_SPARSEMEM_STATIC is not set 140 + CONFIG_SPLIT_PTLOCK_CPUS=4 141 + CONFIG_PREEMPT_NONE=y 142 + # CONFIG_PREEMPT_VOLUNTARY is not set 143 + # CONFIG_PREEMPT is not set 144 + 145 + # 146 + # Code maturity level options 147 + # 148 + CONFIG_EXPERIMENTAL=y 149 + CONFIG_BROKEN_ON_SMP=y 150 + CONFIG_INIT_ENV_ARG_LIMIT=32 151 + 152 + # 153 + # General setup 154 + # 155 + CONFIG_LOCALVERSION="" 156 + CONFIG_LOCALVERSION_AUTO=y 157 + # CONFIG_SWAP is not set 158 + CONFIG_SYSVIPC=y 159 + # CONFIG_POSIX_MQUEUE is not set 160 + CONFIG_BSD_PROCESS_ACCT=y 161 + # CONFIG_BSD_PROCESS_ACCT_V3 is not set 162 + CONFIG_SYSCTL=y 163 + # CONFIG_AUDIT is not set 164 + # CONFIG_IKCONFIG is not set 165 + CONFIG_INITRAMFS_SOURCE="" 166 + # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 167 + CONFIG_EMBEDDED=y 168 + CONFIG_KALLSYMS=y 169 + CONFIG_KALLSYMS_EXTRA_PASS=y 170 + CONFIG_HOTPLUG=y 171 + CONFIG_PRINTK=y 172 + CONFIG_BUG=y 173 + CONFIG_ELF_CORE=y 174 + CONFIG_BASE_FULL=y 175 + CONFIG_FUTEX=y 176 + # CONFIG_EPOLL is not set 177 + CONFIG_SHMEM=y 178 + CONFIG_CC_ALIGN_FUNCTIONS=0 179 + CONFIG_CC_ALIGN_LABELS=0 180 + CONFIG_CC_ALIGN_LOOPS=0 181 + CONFIG_CC_ALIGN_JUMPS=0 182 + CONFIG_SLAB=y 183 + # CONFIG_TINY_SHMEM is not set 184 + CONFIG_BASE_SMALL=0 185 + # CONFIG_SLOB is not set 186 + 187 + # 188 + # Loadable module support 189 + # 190 + CONFIG_MODULES=y 191 + CONFIG_MODULE_UNLOAD=y 192 + # CONFIG_MODULE_FORCE_UNLOAD is not set 193 + CONFIG_OBSOLETE_MODPARM=y 194 + CONFIG_MODVERSIONS=y 195 + CONFIG_MODULE_SRCVERSION_ALL=y 196 + # CONFIG_KMOD is not set 197 + 198 + # 199 + # Block layer 200 + # 201 + # CONFIG_LBD is not set 202 + 203 + # 204 + # IO Schedulers 205 + # 206 + CONFIG_IOSCHED_NOOP=y 207 + CONFIG_IOSCHED_AS=y 208 + CONFIG_IOSCHED_DEADLINE=y 209 + CONFIG_IOSCHED_CFQ=y 210 + CONFIG_DEFAULT_AS=y 211 + # CONFIG_DEFAULT_DEADLINE is not set 212 + # CONFIG_DEFAULT_CFQ is not set 213 + # CONFIG_DEFAULT_NOOP is not set 214 + CONFIG_DEFAULT_IOSCHED="anticipatory" 215 + 216 + # 217 + # Bus options (PCI, PCMCIA, EISA, ISA, TC) 218 + # 219 + CONFIG_HW_HAS_PCI=y 220 + CONFIG_PCI=y 221 + CONFIG_PCI_LEGACY_PROC=y 222 + CONFIG_MMU=y 223 + 224 + # 225 + # PCCARD (PCMCIA/CardBus) support 226 + # 227 + # CONFIG_PCCARD is not set 228 + 229 + # 230 + # PCI Hotplug Support 231 + # 232 + CONFIG_HOTPLUG_PCI=y 233 + # CONFIG_HOTPLUG_PCI_FAKE is not set 234 + # CONFIG_HOTPLUG_PCI_CPCI is not set 235 + # CONFIG_HOTPLUG_PCI_SHPC is not set 236 + 237 + # 238 + # Executable file formats 239 + # 240 + CONFIG_BINFMT_ELF=y 241 + CONFIG_BINFMT_MISC=y 242 + CONFIG_TRAD_SIGNALS=y 243 + 244 + # 245 + # Networking 246 + # 247 + CONFIG_NET=y 248 + 249 + # 250 + # Networking options 251 + # 252 + # CONFIG_NETDEBUG is not set 253 + CONFIG_PACKET=y 254 + CONFIG_PACKET_MMAP=y 255 + CONFIG_UNIX=y 256 + # CONFIG_NET_KEY is not set 257 + CONFIG_INET=y 258 + CONFIG_IP_MULTICAST=y 259 + # CONFIG_IP_ADVANCED_ROUTER is not set 260 + CONFIG_IP_FIB_HASH=y 261 + CONFIG_IP_PNP=y 262 + CONFIG_IP_PNP_DHCP=y 263 + CONFIG_IP_PNP_BOOTP=y 264 + CONFIG_IP_PNP_RARP=y 265 + # CONFIG_NET_IPIP is not set 266 + # CONFIG_NET_IPGRE is not set 267 + CONFIG_IP_MROUTE=y 268 + # CONFIG_IP_PIMSM_V1 is not set 269 + # CONFIG_IP_PIMSM_V2 is not set 270 + CONFIG_ARPD=y 271 + # CONFIG_SYN_COOKIES is not set 272 + # CONFIG_INET_AH is not set 273 + # CONFIG_INET_ESP is not set 274 + # CONFIG_INET_IPCOMP is not set 275 + # CONFIG_INET_TUNNEL is not set 276 + CONFIG_INET_DIAG=y 277 + CONFIG_INET_TCP_DIAG=y 278 + # CONFIG_TCP_CONG_ADVANCED is not set 279 + CONFIG_TCP_CONG_BIC=y 280 + # CONFIG_IPV6 is not set 281 + # CONFIG_NETFILTER is not set 282 + 283 + # 284 + # DCCP Configuration (EXPERIMENTAL) 285 + # 286 + # CONFIG_IP_DCCP is not set 287 + 288 + # 289 + # SCTP Configuration (EXPERIMENTAL) 290 + # 291 + # CONFIG_IP_SCTP is not set 292 + 293 + # 294 + # TIPC Configuration (EXPERIMENTAL) 295 + # 296 + # CONFIG_TIPC is not set 297 + # CONFIG_ATM is not set 298 + # CONFIG_BRIDGE is not set 299 + # CONFIG_VLAN_8021Q is not set 300 + # CONFIG_DECNET is not set 301 + # CONFIG_LLC2 is not set 302 + # CONFIG_IPX is not set 303 + # CONFIG_ATALK is not set 304 + # CONFIG_X25 is not set 305 + # CONFIG_LAPB is not set 306 + # CONFIG_NET_DIVERT is not set 307 + # CONFIG_ECONET is not set 308 + # CONFIG_WAN_ROUTER is not set 309 + 310 + # 311 + # QoS and/or fair queueing 312 + # 313 + # CONFIG_NET_SCHED is not set 314 + 315 + # 316 + # Network testing 317 + # 318 + # CONFIG_NET_PKTGEN is not set 319 + # CONFIG_HAMRADIO is not set 320 + # CONFIG_IRDA is not set 321 + # CONFIG_BT is not set 322 + # CONFIG_IEEE80211 is not set 323 + 324 + # 325 + # Device Drivers 326 + # 327 + 328 + # 329 + # Generic Driver Options 330 + # 331 + CONFIG_STANDALONE=y 332 + CONFIG_PREVENT_FIRMWARE_BUILD=y 333 + # CONFIG_FW_LOADER is not set 334 + 335 + # 336 + # Connector - unified userspace <-> kernelspace linker 337 + # 338 + # CONFIG_CONNECTOR is not set 339 + 340 + # 341 + # Memory Technology Devices (MTD) 342 + # 343 + # CONFIG_MTD is not set 344 + 345 + # 346 + # Parallel port support 347 + # 348 + # CONFIG_PARPORT is not set 349 + 350 + # 351 + # Plug and Play support 352 + # 353 + 354 + # 355 + # Block devices 356 + # 357 + # CONFIG_BLK_CPQ_DA is not set 358 + # CONFIG_BLK_CPQ_CISS_DA is not set 359 + # CONFIG_BLK_DEV_DAC960 is not set 360 + # CONFIG_BLK_DEV_UMEM is not set 361 + # CONFIG_BLK_DEV_COW_COMMON is not set 362 + # CONFIG_BLK_DEV_LOOP is not set 363 + # CONFIG_BLK_DEV_NBD is not set 364 + # CONFIG_BLK_DEV_SX8 is not set 365 + CONFIG_BLK_DEV_RAM=y 366 + CONFIG_BLK_DEV_RAM_COUNT=16 367 + CONFIG_BLK_DEV_RAM_SIZE=4096 368 + CONFIG_BLK_DEV_INITRD=y 369 + # CONFIG_CDROM_PKTCDVD is not set 370 + # CONFIG_ATA_OVER_ETH is not set 371 + 372 + # 373 + # ATA/ATAPI/MFM/RLL support 374 + # 375 + # CONFIG_IDE is not set 376 + 377 + # 378 + # SCSI device support 379 + # 380 + # CONFIG_RAID_ATTRS is not set 381 + # CONFIG_SCSI is not set 382 + 383 + # 384 + # Multi-device support (RAID and LVM) 385 + # 386 + # CONFIG_MD is not set 387 + 388 + # 389 + # Fusion MPT device support 390 + # 391 + # CONFIG_FUSION is not set 392 + 393 + # 394 + # IEEE 1394 (FireWire) support 395 + # 396 + # CONFIG_IEEE1394 is not set 397 + 398 + # 399 + # I2O device support 400 + # 401 + # CONFIG_I2O is not set 402 + 403 + # 404 + # Network device support 405 + # 406 + CONFIG_NETDEVICES=y 407 + # CONFIG_DUMMY is not set 408 + # CONFIG_BONDING is not set 409 + # CONFIG_EQUALIZER is not set 410 + # CONFIG_TUN is not set 411 + 412 + # 413 + # ARCnet devices 414 + # 415 + # CONFIG_ARCNET is not set 416 + 417 + # 418 + # PHY device support 419 + # 420 + CONFIG_PHYLIB=y 421 + 422 + # 423 + # MII PHY device drivers 424 + # 425 + # CONFIG_MARVELL_PHY is not set 426 + # CONFIG_DAVICOM_PHY is not set 427 + # CONFIG_QSEMI_PHY is not set 428 + # CONFIG_LXT_PHY is not set 429 + # CONFIG_CICADA_PHY is not set 430 + 431 + # 432 + # Ethernet (10 or 100Mbit) 433 + # 434 + CONFIG_NET_ETHERNET=y 435 + CONFIG_MII=y 436 + # CONFIG_HAPPYMEAL is not set 437 + # CONFIG_SUNGEM is not set 438 + # CONFIG_CASSINI is not set 439 + # CONFIG_NET_VENDOR_3COM is not set 440 + # CONFIG_DM9000 is not set 441 + 442 + # 443 + # Tulip family network device support 444 + # 445 + # CONFIG_NET_TULIP is not set 446 + # CONFIG_HP100 is not set 447 + CONFIG_NET_PCI=y 448 + # CONFIG_PCNET32 is not set 449 + # CONFIG_AMD8111_ETH is not set 450 + # CONFIG_ADAPTEC_STARFIRE is not set 451 + # CONFIG_B44 is not set 452 + # CONFIG_FORCEDETH is not set 453 + # CONFIG_DGRS is not set 454 + # CONFIG_EEPRO100 is not set 455 + CONFIG_E100=y 456 + # CONFIG_FEALNX is not set 457 + # CONFIG_NATSEMI is not set 458 + # CONFIG_NE2K_PCI is not set 459 + # CONFIG_8139CP is not set 460 + # CONFIG_8139TOO is not set 461 + # CONFIG_SIS900 is not set 462 + # CONFIG_EPIC100 is not set 463 + # CONFIG_SUNDANCE is not set 464 + # CONFIG_TLAN is not set 465 + # CONFIG_VIA_RHINE is not set 466 + # CONFIG_LAN_SAA9730 is not set 467 + 468 + # 469 + # Ethernet (1000 Mbit) 470 + # 471 + # CONFIG_ACENIC is not set 472 + # CONFIG_DL2K is not set 473 + # CONFIG_E1000 is not set 474 + # CONFIG_NS83820 is not set 475 + # CONFIG_HAMACHI is not set 476 + # CONFIG_YELLOWFIN is not set 477 + # CONFIG_R8169 is not set 478 + # CONFIG_SIS190 is not set 479 + # CONFIG_SKGE is not set 480 + # CONFIG_SKY2 is not set 481 + # CONFIG_SK98LIN is not set 482 + # CONFIG_VIA_VELOCITY is not set 483 + # CONFIG_TIGON3 is not set 484 + # CONFIG_BNX2 is not set 485 + 486 + # 487 + # Ethernet (10000 Mbit) 488 + # 489 + # CONFIG_CHELSIO_T1 is not set 490 + # CONFIG_IXGB is not set 491 + # CONFIG_S2IO is not set 492 + 493 + # 494 + # Token Ring devices 495 + # 496 + # CONFIG_TR is not set 497 + 498 + # 499 + # Wireless LAN (non-hamradio) 500 + # 501 + # CONFIG_NET_RADIO is not set 502 + 503 + # 504 + # Wan interfaces 505 + # 506 + # CONFIG_WAN is not set 507 + # CONFIG_FDDI is not set 508 + # CONFIG_HIPPI is not set 509 + # CONFIG_PPP is not set 510 + # CONFIG_SLIP is not set 511 + # CONFIG_SHAPER is not set 512 + # CONFIG_NETCONSOLE is not set 513 + # CONFIG_NETPOLL is not set 514 + # CONFIG_NET_POLL_CONTROLLER is not set 515 + 516 + # 517 + # ISDN subsystem 518 + # 519 + # CONFIG_ISDN is not set 520 + 521 + # 522 + # Telephony Support 523 + # 524 + # CONFIG_PHONE is not set 525 + 526 + # 527 + # Input device support 528 + # 529 + # CONFIG_INPUT is not set 530 + 531 + # 532 + # Hardware I/O ports 533 + # 534 + # CONFIG_SERIO is not set 535 + # CONFIG_GAMEPORT is not set 536 + 537 + # 538 + # Character devices 539 + # 540 + # CONFIG_VT is not set 541 + # CONFIG_SERIAL_NONSTANDARD is not set 542 + 543 + # 544 + # Serial drivers 545 + # 546 + CONFIG_SERIAL_8250=y 547 + CONFIG_SERIAL_8250_CONSOLE=y 548 + CONFIG_SERIAL_8250_NR_UARTS=1 549 + CONFIG_SERIAL_8250_RUNTIME_UARTS=1 550 + # CONFIG_SERIAL_8250_EXTENDED is not set 551 + 552 + # 553 + # Non-8250 serial port support 554 + # 555 + CONFIG_SERIAL_CORE=y 556 + CONFIG_SERIAL_CORE_CONSOLE=y 557 + # CONFIG_SERIAL_JSM is not set 558 + CONFIG_UNIX98_PTYS=y 559 + CONFIG_LEGACY_PTYS=y 560 + CONFIG_LEGACY_PTY_COUNT=256 561 + 562 + # 563 + # IPMI 564 + # 565 + # CONFIG_IPMI_HANDLER is not set 566 + 567 + # 568 + # Watchdog Cards 569 + # 570 + # CONFIG_WATCHDOG is not set 571 + CONFIG_RTC=y 572 + # CONFIG_DTLK is not set 573 + # CONFIG_R3964 is not set 574 + # CONFIG_APPLICOM is not set 575 + 576 + # 577 + # Ftape, the floppy tape device driver 578 + # 579 + # CONFIG_DRM is not set 580 + # CONFIG_RAW_DRIVER is not set 581 + 582 + # 583 + # TPM devices 584 + # 585 + # CONFIG_TCG_TPM is not set 586 + # CONFIG_TELCLOCK is not set 587 + 588 + # 589 + # I2C support 590 + # 591 + # CONFIG_I2C is not set 592 + 593 + # 594 + # SPI support 595 + # 596 + # CONFIG_SPI is not set 597 + # CONFIG_SPI_MASTER is not set 598 + 599 + # 600 + # Dallas's 1-wire bus 601 + # 602 + # CONFIG_W1 is not set 603 + 604 + # 605 + # Hardware Monitoring support 606 + # 607 + CONFIG_HWMON=y 608 + # CONFIG_HWMON_VID is not set 609 + # CONFIG_SENSORS_F71805F is not set 610 + # CONFIG_HWMON_DEBUG_CHIP is not set 611 + 612 + # 613 + # Misc devices 614 + # 615 + 616 + # 617 + # Multimedia Capabilities Port drivers 618 + # 619 + 620 + # 621 + # Multimedia devices 622 + # 623 + # CONFIG_VIDEO_DEV is not set 624 + 625 + # 626 + # Digital Video Broadcasting Devices 627 + # 628 + # CONFIG_DVB is not set 629 + 630 + # 631 + # Graphics support 632 + # 633 + # CONFIG_FB is not set 634 + 635 + # 636 + # Sound 637 + # 638 + # CONFIG_SOUND is not set 639 + 640 + # 641 + # USB support 642 + # 643 + CONFIG_USB_ARCH_HAS_HCD=y 644 + CONFIG_USB_ARCH_HAS_OHCI=y 645 + # CONFIG_USB is not set 646 + 647 + # 648 + # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 649 + # 650 + 651 + # 652 + # USB Gadget Support 653 + # 654 + # CONFIG_USB_GADGET is not set 655 + 656 + # 657 + # MMC/SD Card support 658 + # 659 + # CONFIG_MMC is not set 660 + 661 + # 662 + # InfiniBand support 663 + # 664 + # CONFIG_INFINIBAND is not set 665 + 666 + # 667 + # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 668 + # 669 + 670 + # 671 + # File systems 672 + # 673 + # CONFIG_EXT2_FS is not set 674 + # CONFIG_EXT3_FS is not set 675 + # CONFIG_REISERFS_FS is not set 676 + # CONFIG_JFS_FS is not set 677 + # CONFIG_FS_POSIX_ACL is not set 678 + # CONFIG_XFS_FS is not set 679 + # CONFIG_OCFS2_FS is not set 680 + # CONFIG_MINIX_FS is not set 681 + # CONFIG_ROMFS_FS is not set 682 + CONFIG_INOTIFY=y 683 + # CONFIG_QUOTA is not set 684 + CONFIG_DNOTIFY=y 685 + # CONFIG_AUTOFS_FS is not set 686 + # CONFIG_AUTOFS4_FS is not set 687 + # CONFIG_FUSE_FS is not set 688 + 689 + # 690 + # CD-ROM/DVD Filesystems 691 + # 692 + # CONFIG_ISO9660_FS is not set 693 + # CONFIG_UDF_FS is not set 694 + 695 + # 696 + # DOS/FAT/NT Filesystems 697 + # 698 + # CONFIG_MSDOS_FS is not set 699 + # CONFIG_VFAT_FS is not set 700 + # CONFIG_NTFS_FS is not set 701 + 702 + # 703 + # Pseudo filesystems 704 + # 705 + CONFIG_PROC_FS=y 706 + CONFIG_PROC_KCORE=y 707 + CONFIG_SYSFS=y 708 + CONFIG_TMPFS=y 709 + # CONFIG_HUGETLB_PAGE is not set 710 + CONFIG_RAMFS=y 711 + # CONFIG_RELAYFS_FS is not set 712 + # CONFIG_CONFIGFS_FS is not set 713 + 714 + # 715 + # Miscellaneous filesystems 716 + # 717 + # CONFIG_ADFS_FS is not set 718 + # CONFIG_AFFS_FS is not set 719 + # CONFIG_HFS_FS is not set 720 + # CONFIG_HFSPLUS_FS is not set 721 + # CONFIG_BEFS_FS is not set 722 + # CONFIG_BFS_FS is not set 723 + # CONFIG_EFS_FS is not set 724 + # CONFIG_CRAMFS is not set 725 + # CONFIG_VXFS_FS is not set 726 + # CONFIG_HPFS_FS is not set 727 + # CONFIG_QNX4FS_FS is not set 728 + # CONFIG_SYSV_FS is not set 729 + # CONFIG_UFS_FS is not set 730 + 731 + # 732 + # Network File Systems 733 + # 734 + CONFIG_NFS_FS=y 735 + CONFIG_NFS_V3=y 736 + # CONFIG_NFS_V3_ACL is not set 737 + # CONFIG_NFS_V4 is not set 738 + # CONFIG_NFS_DIRECTIO is not set 739 + # CONFIG_NFSD is not set 740 + CONFIG_ROOT_NFS=y 741 + CONFIG_LOCKD=y 742 + CONFIG_LOCKD_V4=y 743 + CONFIG_NFS_COMMON=y 744 + CONFIG_SUNRPC=y 745 + # CONFIG_RPCSEC_GSS_KRB5 is not set 746 + # CONFIG_RPCSEC_GSS_SPKM3 is not set 747 + # CONFIG_SMB_FS is not set 748 + # CONFIG_CIFS is not set 749 + # CONFIG_NCP_FS is not set 750 + # CONFIG_CODA_FS is not set 751 + # CONFIG_AFS_FS is not set 752 + # CONFIG_9P_FS is not set 753 + 754 + # 755 + # Partition Types 756 + # 757 + # CONFIG_PARTITION_ADVANCED is not set 758 + CONFIG_MSDOS_PARTITION=y 759 + 760 + # 761 + # Native Language Support 762 + # 763 + # CONFIG_NLS is not set 764 + 765 + # 766 + # Profiling support 767 + # 768 + # CONFIG_PROFILING is not set 769 + 770 + # 771 + # Kernel hacking 772 + # 773 + # CONFIG_PRINTK_TIME is not set 774 + # CONFIG_MAGIC_SYSRQ is not set 775 + # CONFIG_DEBUG_KERNEL is not set 776 + CONFIG_LOG_BUF_SHIFT=14 777 + CONFIG_CROSSCOMPILE=y 778 + CONFIG_CMDLINE="console=ttyS0,115200n8" 779 + 780 + # 781 + # Security options 782 + # 783 + # CONFIG_KEYS is not set 784 + # CONFIG_SECURITY is not set 785 + 786 + # 787 + # Cryptographic options 788 + # 789 + # CONFIG_CRYPTO is not set 790 + 791 + # 792 + # Hardware crypto devices 793 + # 794 + 795 + # 796 + # Library routines 797 + # 798 + CONFIG_CRC_CCITT=y 799 + CONFIG_CRC16=y 800 + CONFIG_CRC32=y 801 + CONFIG_LIBCRC32C=y
+14
arch/mips/gt64120/wrppmc/Makefile
··· 1 + # 2 + # This file is subject to the terms and conditions of the GNU General Public 3 + # License. See the file "COPYING" in the main directory of this archive 4 + # for more details. 5 + # 6 + # Copyright 2006 Wind River System, Inc. 7 + # Author: Rongkai.Zhan <rongkai.zhan@windriver.com> 8 + # 9 + # Makefile for the Wind River MIPS 4KC PPMC Eval Board 10 + # 11 + 12 + obj-y += int-handler.o irq.o reset.o setup.o time.o pci.o 13 + 14 + EXTRA_AFLAGS := $(CFLAGS)
+59
arch/mips/gt64120/wrppmc/int-handler.S
··· 1 + /* 2 + * This file is subject to the terms and conditions of the GNU General Public 3 + * License. See the file "COPYING" in the main directory of this archive 4 + * for more details. 5 + * 6 + * Copyright (C) 1995, 1996, 1997, 2003 by Ralf Baechle 7 + * Copyright (C) Wind River System Inc. Rongkai.Zhan <rongkai.zhan@windriver.com> 8 + */ 9 + #include <asm/asm.h> 10 + #include <asm/mipsregs.h> 11 + #include <asm/addrspace.h> 12 + #include <asm/regdef.h> 13 + #include <asm/stackframe.h> 14 + #include <asm/mach-wrppmc/mach-gt64120.h> 15 + 16 + .align 5 17 + .set noat 18 + NESTED(handle_IRQ, PT_SIZE, sp) 19 + SAVE_ALL 20 + CLI # Important: mark KERNEL mode ! 21 + .set at 22 + 23 + mfc0 t0, CP0_CAUSE # get pending interrupts 24 + mfc0 t1, CP0_STATUS # get enabled interrupts 25 + and t0, t0, t1 # get allowed interrupts 26 + andi t0, t0, 0xFF00 27 + beqz t0, 1f 28 + move a1, sp # Prepare 'struct pt_regs *regs' pointer 29 + 30 + andi t1, t0, CAUSEF_IP7 # CPU Compare/Count internal timer 31 + bnez t1, handle_cputimer_irq 32 + andi t1, t0, CAUSEF_IP6 # UART 16550 port 33 + bnez t1, handle_uart_irq 34 + andi t1, t0, CAUSEF_IP3 # PCI INT_A 35 + bnez t1, handle_pci_intA_irq 36 + 37 + /* wrong alarm or masked ... */ 38 + 1: j spurious_interrupt 39 + nop 40 + END(handle_IRQ) 41 + 42 + .align 5 43 + handle_cputimer_irq: 44 + li a0, WRPPMC_MIPS_TIMER_IRQ 45 + jal do_IRQ 46 + j ret_from_irq 47 + 48 + .align 5 49 + handle_uart_irq: 50 + li a0, WRPPMC_UART16550_IRQ 51 + jal do_IRQ 52 + j ret_from_irq 53 + 54 + .align 5 55 + handle_pci_intA_irq: 56 + li a0, WRPPMC_PCI_INTA_IRQ 57 + jal do_IRQ 58 + j ret_from_irq 59 +
+63
arch/mips/gt64120/wrppmc/irq.c
··· 1 + /* 2 + * irq.c: GT64120 Interrupt Controller 3 + * 4 + * Copyright (C) 2006, Wind River System Inc. 5 + * Author: Rongkai.Zhan, <rongkai.zhan@windriver.com> 6 + * 7 + * This program is free software; you can redistribute it and/or modify it 8 + * under the terms of the GNU General Public License as published by the 9 + * Free Software Foundation; either version 2 of the License, or (at your 10 + * option) any later version. 11 + */ 12 + #include <linux/errno.h> 13 + #include <linux/init.h> 14 + #include <linux/kernel_stat.h> 15 + #include <linux/module.h> 16 + #include <linux/signal.h> 17 + #include <linux/sched.h> 18 + #include <linux/types.h> 19 + #include <linux/interrupt.h> 20 + #include <linux/ioport.h> 21 + #include <linux/timex.h> 22 + #include <linux/slab.h> 23 + #include <linux/random.h> 24 + #include <linux/bitops.h> 25 + #include <asm/bootinfo.h> 26 + #include <asm/io.h> 27 + #include <asm/bitops.h> 28 + #include <asm/mipsregs.h> 29 + #include <asm/system.h> 30 + #include <asm/irq_cpu.h> 31 + #include <asm/gt64120.h> 32 + 33 + extern asmlinkage void handle_IRQ(void); 34 + 35 + /** 36 + * Initialize GT64120 Interrupt Controller 37 + */ 38 + void gt64120_init_pic(void) 39 + { 40 + /* clear CPU Interrupt Cause Registers */ 41 + GT_WRITE(GT_INTRCAUSE_OFS, (0x1F << 21)); 42 + GT_WRITE(GT_HINTRCAUSE_OFS, 0x00); 43 + 44 + /* Disable all interrupts from GT64120 bridge chip */ 45 + GT_WRITE(GT_INTRMASK_OFS, 0x00); 46 + GT_WRITE(GT_HINTRMASK_OFS, 0x00); 47 + GT_WRITE(GT_PCI0_ICMASK_OFS, 0x00); 48 + GT_WRITE(GT_PCI0_HICMASK_OFS, 0x00); 49 + } 50 + 51 + void __init arch_init_irq(void) 52 + { 53 + /* enable all CPU interrupt bits. */ 54 + set_c0_status(ST0_IM); /* IE bit is still 0 */ 55 + 56 + /* Install MIPS Interrupt Trap Vector */ 57 + set_except_vector(0, handle_IRQ); 58 + 59 + /* IRQ 0 - 7 are for MIPS common irq_cpu controller */ 60 + mips_cpu_irq_init(0); 61 + 62 + gt64120_init_pic(); 63 + }
+53
arch/mips/gt64120/wrppmc/pci.c
··· 1 + /* 2 + * pci.c: GT64120 PCI support. 3 + * 4 + * Copyright (C) 2006, Wind River System Inc. Rongkai.Zhan <rongkai.zhan@windriver.com> 5 + * 6 + * This file is subject to the terms and conditions of the GNU General Public 7 + * License. See the file "COPYING" in the main directory of this archive 8 + * for more details. 9 + */ 10 + #include <linux/init.h> 11 + #include <linux/types.h> 12 + #include <linux/pci.h> 13 + #include <linux/kernel.h> 14 + #include <asm/gt64120.h> 15 + 16 + extern struct pci_ops gt64120_pci_ops; 17 + 18 + static struct resource pci0_io_resource = { 19 + .name = "pci_0 io", 20 + .start = GT_PCI_IO_BASE, 21 + .end = GT_PCI_IO_BASE + GT_PCI_IO_SIZE - 1, 22 + .flags = IORESOURCE_IO, 23 + }; 24 + 25 + static struct resource pci0_mem_resource = { 26 + .name = "pci_0 memory", 27 + .start = GT_PCI_MEM_BASE, 28 + .end = GT_PCI_MEM_BASE + GT_PCI_MEM_SIZE - 1, 29 + .flags = IORESOURCE_MEM, 30 + }; 31 + 32 + static struct pci_controller hose_0 = { 33 + .pci_ops = &gt64120_pci_ops, 34 + .io_resource = &pci0_io_resource, 35 + .mem_resource = &pci0_mem_resource, 36 + }; 37 + 38 + static int __init gt64120_pci_init(void) 39 + { 40 + u32 tmp; 41 + 42 + tmp = GT_READ(GT_PCI0_CMD_OFS); /* Huh??? -- Ralf */ 43 + tmp = GT_READ(GT_PCI0_BARE_OFS); 44 + 45 + /* reset the whole PCI I/O space range */ 46 + ioport_resource.start = GT_PCI_IO_BASE; 47 + ioport_resource.end = GT_PCI_IO_BASE + GT_PCI_IO_SIZE - 1; 48 + 49 + register_pci_controller(&hose_0); 50 + return 0; 51 + } 52 + 53 + arch_initcall(gt64120_pci_init);
+50
arch/mips/gt64120/wrppmc/reset.c
··· 1 + /* 2 + * This file is subject to the terms and conditions of the GNU General Public 3 + * License. See the file "COPYING" in the main directory of this archive 4 + * for more details. 5 + * 6 + * Copyright (C) 1997 Ralf Baechle 7 + */ 8 + #include <linux/sched.h> 9 + #include <linux/mm.h> 10 + #include <asm/io.h> 11 + #include <asm/pgtable.h> 12 + #include <asm/processor.h> 13 + #include <asm/reboot.h> 14 + #include <asm/system.h> 15 + #include <asm/cacheflush.h> 16 + 17 + void wrppmc_machine_restart(char *command) 18 + { 19 + /* 20 + * Ouch, we're still alive ... This time we take the silver bullet ... 21 + * ... and find that we leave the hardware in a state in which the 22 + * kernel in the flush locks up somewhen during of after the PCI 23 + * detection stuff. 24 + */ 25 + local_irq_disable(); 26 + set_c0_status(ST0_BEV | ST0_ERL); 27 + change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED); 28 + flush_cache_all(); 29 + write_c0_wired(0); 30 + __asm__ __volatile__("jr\t%0"::"r"(0xbfc00000)); 31 + } 32 + 33 + void wrppmc_machine_halt(void) 34 + { 35 + local_irq_disable(); 36 + 37 + printk(KERN_NOTICE "You can safely turn off the power\n"); 38 + while (1) { 39 + __asm__( 40 + ".set\tmips3\n\t" 41 + "wait\n\t" 42 + ".set\tmips0" 43 + ); 44 + } 45 + } 46 + 47 + void wrppmc_machine_power_off(void) 48 + { 49 + wrppmc_machine_halt(); 50 + }
+173
arch/mips/gt64120/wrppmc/setup.c
··· 1 + /* 2 + * setup.c: Setup pointers to hardware dependent routines. 3 + * 4 + * This file is subject to the terms and conditions of the GNU General Public 5 + * License. See the file "COPYING" in the main directory of this archive 6 + * for more details. 7 + * 8 + * Copyright (C) 1996, 1997, 2004 by Ralf Baechle (ralf@linux-mips.org) 9 + * Copyright (C) 2006, Wind River System Inc. Rongkai.zhan <rongkai.zhan@windriver.com> 10 + */ 11 + #include <linux/config.h> 12 + #include <linux/init.h> 13 + #include <linux/string.h> 14 + #include <linux/kernel.h> 15 + #include <linux/tty.h> 16 + #include <linux/serial.h> 17 + #include <linux/serial_core.h> 18 + #include <linux/pm.h> 19 + 20 + #include <asm/io.h> 21 + #include <asm/bootinfo.h> 22 + #include <asm/reboot.h> 23 + #include <asm/time.h> 24 + #include <asm/gt64120.h> 25 + 26 + unsigned long gt64120_base = KSEG1ADDR(0x14000000); 27 + 28 + #ifdef WRPPMC_EARLY_DEBUG 29 + 30 + static volatile unsigned char * wrppmc_led = \ 31 + (volatile unsigned char *)KSEG1ADDR(WRPPMC_LED_BASE); 32 + 33 + /* 34 + * PPMC LED control register: 35 + * -) bit[0] controls DS1 LED (1 - OFF, 0 - ON) 36 + * -) bit[1] controls DS2 LED (1 - OFF, 0 - ON) 37 + * -) bit[2] controls DS4 LED (1 - OFF, 0 - ON) 38 + */ 39 + void wrppmc_led_on(int mask) 40 + { 41 + unsigned char value = *wrppmc_led; 42 + 43 + value &= (0xF8 | mask); 44 + *wrppmc_led = value; 45 + } 46 + 47 + /* If mask = 0, turn off all LEDs */ 48 + void wrppmc_led_off(int mask) 49 + { 50 + unsigned char value = *wrppmc_led; 51 + 52 + value |= (0x7 & mask); 53 + *wrppmc_led = value; 54 + } 55 + 56 + /* 57 + * We assume that bootloader has initialized UART16550 correctly 58 + */ 59 + void __init wrppmc_early_putc(char ch) 60 + { 61 + static volatile unsigned char *wrppmc_uart = \ 62 + (volatile unsigned char *)KSEG1ADDR(WRPPMC_UART16550_BASE); 63 + unsigned char value; 64 + 65 + /* Wait until Transmit-Holding-Register is empty */ 66 + while (1) { 67 + value = *(wrppmc_uart + 5); 68 + if (value & 0x20) 69 + break; 70 + } 71 + 72 + *wrppmc_uart = ch; 73 + } 74 + 75 + void __init wrppmc_early_printk(const char *fmt, ...) 76 + { 77 + static char pbuf[256] = {'\0', }; 78 + char *ch = pbuf; 79 + va_list args; 80 + unsigned int i; 81 + 82 + memset(pbuf, 0, 256); 83 + va_start(args, fmt); 84 + i = vsprintf(pbuf, fmt, args); 85 + va_end(args); 86 + 87 + /* Print the string */ 88 + while (*ch != '\0') { 89 + wrppmc_early_putc(*ch); 90 + /* if print '\n', also print '\r' */ 91 + if (*ch++ == '\n') 92 + wrppmc_early_putc('\r'); 93 + } 94 + } 95 + #endif /* WRPPMC_EARLY_DEBUG */ 96 + 97 + unsigned long __init prom_free_prom_memory(void) 98 + { 99 + return 0; 100 + } 101 + 102 + #ifdef CONFIG_SERIAL_8250 103 + static void wrppmc_setup_serial(void) 104 + { 105 + struct uart_port up; 106 + 107 + memset(&up, 0x00, sizeof(struct uart_port)); 108 + 109 + /* 110 + * A note about mapbase/membase 111 + * -) mapbase is the physical address of the IO port. 112 + * -) membase is an 'ioremapped' cookie. 113 + */ 114 + up.line = 0; 115 + up.type = PORT_16550; 116 + up.iotype = UPIO_MEM; 117 + up.mapbase = WRPPMC_UART16550_BASE; 118 + up.membase = ioremap(up.mapbase, 8); 119 + up.irq = WRPPMC_UART16550_IRQ; 120 + up.uartclk = WRPPMC_UART16550_CLOCK; 121 + up.flags = UPF_SKIP_TEST/* | UPF_BOOT_AUTOCONF */; 122 + up.regshift = 0; 123 + 124 + early_serial_setup(&up); 125 + } 126 + #endif 127 + 128 + void __init plat_setup(void) 129 + { 130 + extern void wrppmc_time_init(void); 131 + extern void wrppmc_timer_setup(struct irqaction *); 132 + extern void wrppmc_machine_restart(char *command); 133 + extern void wrppmc_machine_halt(void); 134 + extern void wrppmc_machine_power_off(void); 135 + 136 + _machine_restart = wrppmc_machine_restart; 137 + _machine_halt = wrppmc_machine_halt; 138 + pm_power_off = wrppmc_machine_power_off; 139 + 140 + /* Use MIPS Count/Compare Timer */ 141 + board_time_init = wrppmc_time_init; 142 + board_timer_setup = wrppmc_timer_setup; 143 + 144 + /* This makes the operations of 'in/out[bwl]' to the 145 + * physical address ( < KSEG0) can work via KSEG1 146 + */ 147 + set_io_port_base(KSEG1); 148 + 149 + #ifdef CONFIG_SERIAL_8250 150 + wrppmc_setup_serial(); 151 + #endif 152 + } 153 + 154 + const char *get_system_type(void) 155 + { 156 + return "Wind River PPMC (GT64120)"; 157 + } 158 + 159 + /* 160 + * Initializes basic routines and structures pointers, memory size (as 161 + * given by the bios and saves the command line. 162 + */ 163 + void __init prom_init(void) 164 + { 165 + mips_machgroup = MACH_GROUP_GALILEO; 166 + mips_machtype = MACH_EV64120A; 167 + 168 + add_memory_region(WRPPMC_SDRAM_SCS0_BASE, WRPPMC_SDRAM_SCS0_SIZE, BOOT_MEM_RAM); 169 + add_memory_region(WRPPMC_BOOTROM_BASE, WRPPMC_BOOTROM_SIZE, BOOT_MEM_ROM_DATA); 170 + 171 + wrppmc_early_printk("prom_init: GT64120 SDRAM Bank 0: 0x%x - 0x%08lx\n", 172 + WRPPMC_SDRAM_SCS0_BASE, (WRPPMC_SDRAM_SCS0_BASE + WRPPMC_SDRAM_SCS0_SIZE)); 173 + }
+57
arch/mips/gt64120/wrppmc/time.c
··· 1 + /* 2 + * time.c: MIPS CPU Count/Compare timer hookup 3 + * 4 + * Author: Mark.Zhan, <rongkai.zhan@windriver.com> 5 + * 6 + * This file is subject to the terms and conditions of the GNU General Public 7 + * License. See the file "COPYING" in the main directory of this archive 8 + * for more details. 9 + * 10 + * Copyright (C) 1996, 1997, 2004 by Ralf Baechle (ralf@linux-mips.org) 11 + * Copyright (C) 2006, Wind River System Inc. 12 + */ 13 + #include <linux/config.h> 14 + #include <linux/init.h> 15 + #include <linux/string.h> 16 + #include <linux/kernel.h> 17 + #include <linux/param.h> /* for HZ */ 18 + #include <linux/irq.h> 19 + #include <linux/timex.h> 20 + #include <linux/interrupt.h> 21 + 22 + #include <asm/reboot.h> 23 + #include <asm/time.h> 24 + #include <asm/io.h> 25 + #include <asm/bootinfo.h> 26 + #include <asm/gt64120.h> 27 + 28 + #define WRPPMC_CPU_CLK_FREQ 40000000 /* 40MHZ */ 29 + 30 + void __init wrppmc_timer_setup(struct irqaction *irq) 31 + { 32 + /* Install ISR for timer interrupt */ 33 + setup_irq(WRPPMC_MIPS_TIMER_IRQ, irq); 34 + 35 + /* to generate the first timer interrupt */ 36 + write_c0_compare(mips_hpt_frequency/HZ); 37 + write_c0_count(0); 38 + } 39 + 40 + /* 41 + * Estimate CPU frequency. Sets mips_hpt_frequency as a side-effect 42 + * 43 + * NOTE: We disable all GT64120 timers, and use MIPS processor internal 44 + * timer as the source of kernel clock tick. 45 + */ 46 + void __init wrppmc_time_init(void) 47 + { 48 + /* Disable GT64120 timers */ 49 + GT_WRITE(GT_TC_CONTROL_OFS, 0x00); 50 + GT_WRITE(GT_TC0_OFS, 0x00); 51 + GT_WRITE(GT_TC1_OFS, 0x00); 52 + GT_WRITE(GT_TC2_OFS, 0x00); 53 + GT_WRITE(GT_TC3_OFS, 0x00); 54 + 55 + /* Use MIPS compare/count internal timer */ 56 + mips_hpt_frequency = WRPPMC_CPU_CLK_FREQ; 57 + }
+1
arch/mips/pci/Makefile
··· 57 57 obj-$(CONFIG_TOSHIBA_RBTX4938) += fixup-tx4938.o ops-tx4938.o 58 58 obj-$(CONFIG_VICTOR_MPC30X) += fixup-mpc30x.o 59 59 obj-$(CONFIG_ZAO_CAPCELLA) += fixup-capcella.o 60 + obj-$(CONFIG_WR_PPMC) += fixup-wrppmc.o
+37
arch/mips/pci/fixup-wrppmc.c
··· 1 + /* 2 + * fixup-wrppmc.c: PPMC board specific PCI fixup 3 + * 4 + * This file is subject to the terms and conditions of the GNU General Public 5 + * License. See the file "COPYING" in the main directory of this archive 6 + * for more details. 7 + * 8 + * Copyright (C) 2006, Wind River Inc. Rongkai.zhan (rongkai.zhan@windriver.com) 9 + */ 10 + #include <linux/init.h> 11 + #include <linux/pci.h> 12 + #include <asm/gt64120.h> 13 + 14 + /* PCI interrupt pins */ 15 + #define PCI_INTA 1 16 + #define PCI_INTB 2 17 + #define PCI_INTC 3 18 + #define PCI_INTD 4 19 + 20 + #define PCI_SLOT_MAXNR 32 /* Each PCI bus has 32 physical slots */ 21 + 22 + static char pci_irq_tab[PCI_SLOT_MAXNR][5] __initdata = { 23 + /* 0 INTA INTB INTC INTD */ 24 + [0] = {0, 0, 0, 0, 0}, /* Slot 0: GT64120 PCI bridge */ 25 + [6] = {0, WRPPMC_PCI_INTA_IRQ, 0, 0, 0}, 26 + }; 27 + 28 + int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin) 29 + { 30 + return pci_irq_tab[slot][pin]; 31 + } 32 + 33 + /* Do platform specific device initialization at pci_enable_device() time */ 34 + int pcibios_plat_dev_init(struct pci_dev *dev) 35 + { 36 + return 0; 37 + }
+84
include/asm-mips/mach-wrppmc/mach-gt64120.h
··· 1 + /* 2 + * This is a direct copy of the ev96100.h file, with a global 3 + * search and replace. The numbers are the same. 4 + * 5 + * The reason I'm duplicating this is so that the 64120/96100 6 + * defines won't be confusing in the source code. 7 + */ 8 + #ifndef __ASM_MIPS_GT64120_H 9 + #define __ASM_MIPS_GT64120_H 10 + 11 + /* 12 + * This is the CPU physical memory map of PPMC Board: 13 + * 14 + * 0x00000000-0x03FFFFFF - 64MB SDRAM (SCS[0]#) 15 + * 0x1C000000-0x1C000000 - LED (CS0) 16 + * 0x1C800000-0x1C800007 - UART 16550 port (CS1) 17 + * 0x1F000000-0x1F000000 - MailBox (CS3) 18 + * 0x1FC00000-0x20000000 - 4MB Flash (BOOT CS) 19 + */ 20 + 21 + #define WRPPMC_SDRAM_SCS0_BASE 0x00000000 22 + #define WRPPMC_SDRAM_SCS0_SIZE 0x04000000 23 + 24 + #define WRPPMC_UART16550_BASE 0x1C800000 25 + #define WRPPMC_UART16550_CLOCK 3686400 /* 3.68MHZ */ 26 + 27 + #define WRPPMC_LED_BASE 0x1C000000 28 + #define WRPPMC_MBOX_BASE 0x1F000000 29 + 30 + #define WRPPMC_BOOTROM_BASE 0x1FC00000 31 + #define WRPPMC_BOOTROM_SIZE 0x00400000 /* 4M Flash */ 32 + 33 + #define WRPPMC_MIPS_TIMER_IRQ 7 /* MIPS compare/count timer interrupt */ 34 + #define WRPPMC_UART16550_IRQ 6 35 + #define WRPPMC_PCI_INTA_IRQ 3 36 + 37 + /* 38 + * PCI Bus I/O and Memory resources allocation 39 + * 40 + * NOTE: We only have PCI_0 hose interface 41 + */ 42 + #define GT_PCI_MEM_BASE 0x13000000UL 43 + #define GT_PCI_MEM_SIZE 0x02000000UL 44 + #define GT_PCI_IO_BASE 0x11000000UL 45 + #define GT_PCI_IO_SIZE 0x02000000UL 46 + #define GT_ISA_IO_BASE PCI_IO_BASE 47 + 48 + /* 49 + * PCI interrupts will come in on either the INTA or INTD interrups lines, 50 + * which are mapped to the #2 and #5 interrupt pins of the MIPS. On our 51 + * boards, they all either come in on IntD or they all come in on IntA, they 52 + * aren't mixed. There can be numerous PCI interrupts, so we keep a list of the 53 + * "requested" interrupt numbers and go through the list whenever we get an 54 + * IntA/D. 55 + * 56 + * Interrupts < 8 are directly wired to the processor; PCI INTA is 8 and 57 + * INTD is 11. 58 + */ 59 + #define GT_TIMER 4 60 + #define GT_INTA 2 61 + #define GT_INTD 5 62 + 63 + #ifndef __ASSEMBLY__ 64 + 65 + /* 66 + * GT64120 internal register space base address 67 + */ 68 + extern unsigned long gt64120_base; 69 + 70 + #define GT64120_BASE (gt64120_base) 71 + 72 + /* define WRPPMC_EARLY_DEBUG to enable early output something to UART */ 73 + #undef WRPPMC_EARLY_DEBUG 74 + 75 + #ifdef WRPPMC_EARLY_DEBUG 76 + extern void wrppmc_led_on(int mask); 77 + extern void wrppmc_led_off(int mask); 78 + extern void wrppmc_early_printk(const char *fmt, ...); 79 + #else 80 + #define wrppmc_early_printk(fmt, ...) do {} while (0) 81 + #endif /* WRPPMC_EARLY_DEBUG */ 82 + 83 + #endif /* __ASSEMBLY__ */ 84 + #endif /* __ASM_MIPS_GT64120_H */