···227227 This option enables support for MIPS Technologies MIPSsim software228228 emulator.229229230230-config DDB5477231231- bool "NEC DDB Vrc-5477"232232- select DDB5XXX_COMMON233233- select DMA_NONCOHERENT234234- select HW_HAS_PCI235235- select I8259236236- select IRQ_CPU237237- select SYS_HAS_CPU_R5432238238- select SYS_SUPPORTS_32BIT_KERNEL239239- select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL240240- select SYS_SUPPORTS_KGDB241241- select SYS_SUPPORTS_KGDB242242- select SYS_SUPPORTS_LITTLE_ENDIAN243243- help244244- This enables support for the R5432-based NEC DDB Vrc-5477,245245- or Rockhopper/SolutionGear boards with R5432/R5500 CPUs.246246-247247- Features : kernel debugging, serial terminal, NFS root fs, on-board248248- ether port USB, AC97, PCI, etc.249249-250230config MARKEINS251231 bool "NEC EMMA2RH Mark-eins"252232 select DMA_NONCOHERENT···597617endchoice598618599619source "arch/mips/au1000/Kconfig"600600-source "arch/mips/ddb5xxx/Kconfig"601620source "arch/mips/jazz/Kconfig"602621source "arch/mips/pmc-sierra/Kconfig"603622source "arch/mips/sgi-ip27/Kconfig"···767788768789config IRQ_MSP_CIC769790 bool770770-771771-config DDB5XXX_COMMON772772- bool773773- select SYS_SUPPORTS_KGDB774791775792config MIPS_BOARDS_GEN776793 bool
-11
arch/mips/Makefile
···367367load-$(CONFIG_BASLER_EXCITE) += 0x80100000368368369369#370370-# NEC DDB371371-#372372-core-$(CONFIG_DDB5XXX_COMMON) += arch/mips/ddb5xxx/common/373373-374374-#375375-# NEC DDB Vrc-5477376376-#377377-core-$(CONFIG_DDB5477) += arch/mips/ddb5xxx/ddb5477/378378-load-$(CONFIG_DDB5477) += 0xffffffff80100000379379-380380-#381370# Common VR41xx382371#383372core-$(CONFIG_MACH_VR41XX) += arch/mips/vr41xx/common/
-1
arch/mips/configs/atlas_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/bigsur_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/capcella_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938CONFIG_MACH_VR41XX=y4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/cobalt_defconfig
···2020# CONFIG_MIPS_SIM is not set2121# CONFIG_PNX8550_JBS is not set2222# CONFIG_PNX8550_STB810 is not set2323-# CONFIG_DDB5477 is not set2423# CONFIG_MACH_VR41XX is not set2524# CONFIG_PMC_YOSEMITE is not set2625# CONFIG_QEMU is not set
-1
arch/mips/configs/db1000_defconfig
···3636# CONFIG_MIPS_XXS1500 is not set3737# CONFIG_PNX8550_JBS is not set3838# CONFIG_PNX8550_STB810 is not set3939-# CONFIG_DDB5477 is not set4039# CONFIG_MACH_VR41XX is not set4140# CONFIG_PMC_YOSEMITE is not set4241# CONFIG_QEMU is not set
-1
arch/mips/configs/db1100_defconfig
···3636# CONFIG_MIPS_XXS1500 is not set3737# CONFIG_PNX8550_JBS is not set3838# CONFIG_PNX8550_STB810 is not set3939-# CONFIG_DDB5477 is not set4039# CONFIG_MACH_VR41XX is not set4140# CONFIG_PMC_YOSEMITE is not set4241# CONFIG_QEMU is not set
-1
arch/mips/configs/db1200_defconfig
···3636# CONFIG_MIPS_XXS1500 is not set3737# CONFIG_PNX8550_JBS is not set3838# CONFIG_PNX8550_STB810 is not set3939-# CONFIG_DDB5477 is not set4039# CONFIG_MACH_VR41XX is not set4140# CONFIG_PMC_YOSEMITE is not set4241# CONFIG_QEMU is not set
-1
arch/mips/configs/db1500_defconfig
···3636# CONFIG_MIPS_XXS1500 is not set3737# CONFIG_PNX8550_JBS is not set3838# CONFIG_PNX8550_STB810 is not set3939-# CONFIG_DDB5477 is not set4039# CONFIG_MACH_VR41XX is not set4140# CONFIG_PMC_YOSEMITE is not set4241# CONFIG_QEMU is not set
-1
arch/mips/configs/db1550_defconfig
···3636# CONFIG_MIPS_XXS1500 is not set3737# CONFIG_PNX8550_JBS is not set3838# CONFIG_PNX8550_STB810 is not set3939-# CONFIG_DDB5477 is not set4039# CONFIG_MACH_VR41XX is not set4140# CONFIG_PMC_YOSEMITE is not set4241# CONFIG_QEMU is not set
-988
arch/mips/configs/ddb5477_defconfig
···11-#22-# Automatically generated make config: don't edit33-# Linux kernel version: 2.6.2044-# Tue Feb 20 21:47:28 200755-#66-CONFIG_MIPS=y77-88-#99-# Machine selection1010-#1111-CONFIG_ZONE_DMA=y1212-# CONFIG_MIPS_MTX1 is not set1313-# CONFIG_MIPS_BOSPORUS is not set1414-# CONFIG_MIPS_PB1000 is not set1515-# CONFIG_MIPS_PB1100 is not set1616-# CONFIG_MIPS_PB1500 is not set1717-# CONFIG_MIPS_PB1550 is not set1818-# CONFIG_MIPS_PB1200 is not set1919-# CONFIG_MIPS_DB1000 is not set2020-# CONFIG_MIPS_DB1100 is not set2121-# CONFIG_MIPS_DB1500 is not set2222-# CONFIG_MIPS_DB1550 is not set2323-# CONFIG_MIPS_DB1200 is not set2424-# CONFIG_MIPS_MIRAGE is not set2525-# CONFIG_BASLER_EXCITE is not set2626-# CONFIG_MIPS_COBALT is not set2727-# CONFIG_MACH_DECSTATION is not set2828-# CONFIG_MACH_JAZZ is not set2929-# CONFIG_MIPS_ATLAS is not set3030-# CONFIG_MIPS_MALTA is not set3131-# CONFIG_MIPS_SEAD is not set3232-# CONFIG_WR_PPMC is not set3333-# CONFIG_MIPS_SIM is not set3434-# CONFIG_MOMENCO_JAGUAR_ATX is not set3535-# CONFIG_MIPS_XXS1500 is not set3636-# CONFIG_PNX8550_JBS is not set3737-# CONFIG_PNX8550_STB810 is not set3838-CONFIG_DDB5477=y3939-# CONFIG_MACH_VR41XX is not set4040-# CONFIG_PMC_YOSEMITE is not set4141-# CONFIG_QEMU is not set4242-# CONFIG_MARKEINS is not set4343-# CONFIG_SGI_IP22 is not set4444-# CONFIG_SGI_IP27 is not set4545-# CONFIG_SGI_IP32 is not set4646-# CONFIG_SIBYTE_BIGSUR is not set4747-# CONFIG_SIBYTE_SWARM is not set4848-# CONFIG_SIBYTE_SENTOSA is not set4949-# CONFIG_SIBYTE_RHONE is not set5050-# CONFIG_SIBYTE_CARMEL is not set5151-# CONFIG_SIBYTE_PTSWARM is not set5252-# CONFIG_SIBYTE_LITTLESUR is not set5353-# CONFIG_SIBYTE_CRHINE is not set5454-# CONFIG_SIBYTE_CRHONE is not set5555-# CONFIG_SNI_RM is not set5656-# CONFIG_TOSHIBA_JMR3927 is not set5757-# CONFIG_TOSHIBA_RBTX4927 is not set5858-# CONFIG_TOSHIBA_RBTX4938 is not set5959-CONFIG_DDB5477_BUS_FREQUENCY=06060-CONFIG_RWSEM_GENERIC_SPINLOCK=y6161-# CONFIG_ARCH_HAS_ILOG2_U32 is not set6262-# CONFIG_ARCH_HAS_ILOG2_U64 is not set6363-CONFIG_GENERIC_FIND_NEXT_BIT=y6464-CONFIG_GENERIC_HWEIGHT=y6565-CONFIG_GENERIC_CALIBRATE_DELAY=y6666-CONFIG_GENERIC_TIME=y6767-CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y6868-# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set6969-CONFIG_DMA_NONCOHERENT=y7070-CONFIG_DMA_NEED_PCI_MAP_STATE=y7171-CONFIG_I8259=y7272-# CONFIG_CPU_BIG_ENDIAN is not set7373-CONFIG_CPU_LITTLE_ENDIAN=y7474-CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y7575-CONFIG_IRQ_CPU=y7676-CONFIG_DDB5XXX_COMMON=y7777-CONFIG_MIPS_L1_CACHE_SHIFT=57878-7979-#8080-# CPU selection8181-#8282-# CONFIG_CPU_MIPS32_R1 is not set8383-# CONFIG_CPU_MIPS32_R2 is not set8484-# CONFIG_CPU_MIPS64_R1 is not set8585-# CONFIG_CPU_MIPS64_R2 is not set8686-# CONFIG_CPU_R3000 is not set8787-# CONFIG_CPU_TX39XX is not set8888-# CONFIG_CPU_VR41XX is not set8989-# CONFIG_CPU_R4300 is not set9090-# CONFIG_CPU_R4X00 is not set9191-# CONFIG_CPU_TX49XX is not set9292-# CONFIG_CPU_R5000 is not set9393-CONFIG_CPU_R5432=y9494-# CONFIG_CPU_R6000 is not set9595-# CONFIG_CPU_NEVADA is not set9696-# CONFIG_CPU_R8000 is not set9797-# CONFIG_CPU_R10000 is not set9898-# CONFIG_CPU_RM7000 is not set9999-# CONFIG_CPU_RM9000 is not set100100-# CONFIG_CPU_SB1 is not set101101-CONFIG_SYS_HAS_CPU_R5432=y102102-CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y103103-CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y104104-CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y105105-CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y106106-107107-#108108-# Kernel type109109-#110110-CONFIG_32BIT=y111111-# CONFIG_64BIT is not set112112-CONFIG_PAGE_SIZE_4KB=y113113-# CONFIG_PAGE_SIZE_8KB is not set114114-# CONFIG_PAGE_SIZE_16KB is not set115115-# CONFIG_PAGE_SIZE_64KB is not set116116-CONFIG_MIPS_MT_DISABLED=y117117-# CONFIG_MIPS_MT_SMP is not set118118-# CONFIG_MIPS_MT_SMTC is not set119119-# CONFIG_MIPS_VPE_LOADER is not set120120-CONFIG_CPU_HAS_LLSC=y121121-CONFIG_CPU_HAS_SYNC=y122122-CONFIG_GENERIC_HARDIRQS=y123123-CONFIG_GENERIC_IRQ_PROBE=y124124-CONFIG_ARCH_FLATMEM_ENABLE=y125125-CONFIG_SELECT_MEMORY_MODEL=y126126-CONFIG_FLATMEM_MANUAL=y127127-# CONFIG_DISCONTIGMEM_MANUAL is not set128128-# CONFIG_SPARSEMEM_MANUAL is not set129129-CONFIG_FLATMEM=y130130-CONFIG_FLAT_NODE_MEM_MAP=y131131-# CONFIG_SPARSEMEM_STATIC is not set132132-CONFIG_SPLIT_PTLOCK_CPUS=4133133-# CONFIG_RESOURCES_64BIT is not set134134-CONFIG_ZONE_DMA_FLAG=1135135-# CONFIG_HZ_48 is not set136136-# CONFIG_HZ_100 is not set137137-# CONFIG_HZ_128 is not set138138-# CONFIG_HZ_250 is not set139139-# CONFIG_HZ_256 is not set140140-CONFIG_HZ_1000=y141141-# CONFIG_HZ_1024 is not set142142-CONFIG_SYS_SUPPORTS_ARBIT_HZ=y143143-CONFIG_HZ=1000144144-CONFIG_PREEMPT_NONE=y145145-# CONFIG_PREEMPT_VOLUNTARY is not set146146-# CONFIG_PREEMPT is not set147147-# CONFIG_KEXEC is not set148148-CONFIG_LOCKDEP_SUPPORT=y149149-CONFIG_STACKTRACE_SUPPORT=y150150-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"151151-152152-#153153-# Code maturity level options154154-#155155-CONFIG_EXPERIMENTAL=y156156-CONFIG_BROKEN_ON_SMP=y157157-CONFIG_INIT_ENV_ARG_LIMIT=32158158-159159-#160160-# General setup161161-#162162-CONFIG_LOCALVERSION=""163163-CONFIG_LOCALVERSION_AUTO=y164164-CONFIG_SWAP=y165165-CONFIG_SYSVIPC=y166166-# CONFIG_IPC_NS is not set167167-CONFIG_SYSVIPC_SYSCTL=y168168-# CONFIG_POSIX_MQUEUE is not set169169-# CONFIG_BSD_PROCESS_ACCT is not set170170-# CONFIG_TASKSTATS is not set171171-# CONFIG_UTS_NS is not set172172-# CONFIG_AUDIT is not set173173-# CONFIG_IKCONFIG is not set174174-CONFIG_SYSFS_DEPRECATED=y175175-CONFIG_RELAY=y176176-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set177177-CONFIG_SYSCTL=y178178-CONFIG_EMBEDDED=y179179-CONFIG_SYSCTL_SYSCALL=y180180-CONFIG_KALLSYMS=y181181-# CONFIG_KALLSYMS_EXTRA_PASS is not set182182-CONFIG_HOTPLUG=y183183-CONFIG_PRINTK=y184184-CONFIG_BUG=y185185-CONFIG_ELF_CORE=y186186-CONFIG_BASE_FULL=y187187-CONFIG_FUTEX=y188188-CONFIG_EPOLL=y189189-CONFIG_SHMEM=y190190-CONFIG_SLAB=y191191-CONFIG_VM_EVENT_COUNTERS=y192192-CONFIG_RT_MUTEXES=y193193-# CONFIG_TINY_SHMEM is not set194194-CONFIG_BASE_SMALL=0195195-# CONFIG_SLOB is not set196196-197197-#198198-# Loadable module support199199-#200200-# CONFIG_MODULES is not set201201-202202-#203203-# Block layer204204-#205205-CONFIG_BLOCK=y206206-# CONFIG_LBD is not set207207-# CONFIG_BLK_DEV_IO_TRACE is not set208208-# CONFIG_LSF is not set209209-210210-#211211-# IO Schedulers212212-#213213-CONFIG_IOSCHED_NOOP=y214214-CONFIG_IOSCHED_AS=y215215-CONFIG_IOSCHED_DEADLINE=y216216-CONFIG_IOSCHED_CFQ=y217217-CONFIG_DEFAULT_AS=y218218-# CONFIG_DEFAULT_DEADLINE is not set219219-# CONFIG_DEFAULT_CFQ is not set220220-# CONFIG_DEFAULT_NOOP is not set221221-CONFIG_DEFAULT_IOSCHED="anticipatory"222222-223223-#224224-# Bus options (PCI, PCMCIA, EISA, ISA, TC)225225-#226226-CONFIG_HW_HAS_PCI=y227227-CONFIG_PCI=y228228-CONFIG_MMU=y229229-230230-#231231-# PCCARD (PCMCIA/CardBus) support232232-#233233-# CONFIG_PCCARD is not set234234-235235-#236236-# PCI Hotplug Support237237-#238238-# CONFIG_HOTPLUG_PCI is not set239239-240240-#241241-# Executable file formats242242-#243243-CONFIG_BINFMT_ELF=y244244-# CONFIG_BINFMT_MISC is not set245245-CONFIG_TRAD_SIGNALS=y246246-247247-#248248-# Power management options249249-#250250-CONFIG_PM=y251251-# CONFIG_PM_LEGACY is not set252252-# CONFIG_PM_DEBUG is not set253253-# CONFIG_PM_SYSFS_DEPRECATED is not set254254-255255-#256256-# Networking257257-#258258-CONFIG_NET=y259259-260260-#261261-# Networking options262262-#263263-# CONFIG_NETDEBUG is not set264264-CONFIG_PACKET=y265265-# CONFIG_PACKET_MMAP is not set266266-CONFIG_UNIX=y267267-CONFIG_XFRM=y268268-CONFIG_XFRM_USER=y269269-# CONFIG_XFRM_SUB_POLICY is not set270270-CONFIG_XFRM_MIGRATE=y271271-CONFIG_NET_KEY=y272272-CONFIG_NET_KEY_MIGRATE=y273273-CONFIG_INET=y274274-# CONFIG_IP_MULTICAST is not set275275-# CONFIG_IP_ADVANCED_ROUTER is not set276276-CONFIG_IP_FIB_HASH=y277277-CONFIG_IP_PNP=y278278-# CONFIG_IP_PNP_DHCP is not set279279-CONFIG_IP_PNP_BOOTP=y280280-# CONFIG_IP_PNP_RARP is not set281281-# CONFIG_NET_IPIP is not set282282-# CONFIG_NET_IPGRE is not set283283-# CONFIG_ARPD is not set284284-# CONFIG_SYN_COOKIES is not set285285-# CONFIG_INET_AH is not set286286-# CONFIG_INET_ESP is not set287287-# CONFIG_INET_IPCOMP is not set288288-# CONFIG_INET_XFRM_TUNNEL is not set289289-# CONFIG_INET_TUNNEL is not set290290-CONFIG_INET_XFRM_MODE_TRANSPORT=y291291-CONFIG_INET_XFRM_MODE_TUNNEL=y292292-CONFIG_INET_XFRM_MODE_BEET=y293293-CONFIG_INET_DIAG=y294294-CONFIG_INET_TCP_DIAG=y295295-# CONFIG_TCP_CONG_ADVANCED is not set296296-CONFIG_TCP_CONG_CUBIC=y297297-CONFIG_DEFAULT_TCP_CONG="cubic"298298-CONFIG_TCP_MD5SIG=y299299-# CONFIG_IPV6 is not set300300-# CONFIG_INET6_XFRM_TUNNEL is not set301301-# CONFIG_INET6_TUNNEL is not set302302-CONFIG_NETWORK_SECMARK=y303303-# CONFIG_NETFILTER is not set304304-305305-#306306-# DCCP Configuration (EXPERIMENTAL)307307-#308308-# CONFIG_IP_DCCP is not set309309-310310-#311311-# SCTP Configuration (EXPERIMENTAL)312312-#313313-# CONFIG_IP_SCTP is not set314314-315315-#316316-# TIPC Configuration (EXPERIMENTAL)317317-#318318-# CONFIG_TIPC is not set319319-# CONFIG_ATM is not set320320-# CONFIG_BRIDGE is not set321321-# CONFIG_VLAN_8021Q is not set322322-# CONFIG_DECNET is not set323323-# CONFIG_LLC2 is not set324324-# CONFIG_IPX is not set325325-# CONFIG_ATALK is not set326326-# CONFIG_X25 is not set327327-# CONFIG_LAPB is not set328328-# CONFIG_ECONET is not set329329-# CONFIG_WAN_ROUTER is not set330330-331331-#332332-# QoS and/or fair queueing333333-#334334-# CONFIG_NET_SCHED is not set335335-336336-#337337-# Network testing338338-#339339-# CONFIG_NET_PKTGEN is not set340340-# CONFIG_HAMRADIO is not set341341-# CONFIG_IRDA is not set342342-# CONFIG_BT is not set343343-CONFIG_IEEE80211=y344344-# CONFIG_IEEE80211_DEBUG is not set345345-CONFIG_IEEE80211_CRYPT_WEP=y346346-CONFIG_IEEE80211_CRYPT_CCMP=y347347-CONFIG_IEEE80211_SOFTMAC=y348348-# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set349349-CONFIG_WIRELESS_EXT=y350350-351351-#352352-# Device Drivers353353-#354354-355355-#356356-# Generic Driver Options357357-#358358-CONFIG_STANDALONE=y359359-CONFIG_PREVENT_FIRMWARE_BUILD=y360360-CONFIG_FW_LOADER=y361361-# CONFIG_SYS_HYPERVISOR is not set362362-363363-#364364-# Connector - unified userspace <-> kernelspace linker365365-#366366-CONFIG_CONNECTOR=y367367-CONFIG_PROC_EVENTS=y368368-369369-#370370-# Memory Technology Devices (MTD)371371-#372372-# CONFIG_MTD is not set373373-374374-#375375-# Parallel port support376376-#377377-# CONFIG_PARPORT is not set378378-379379-#380380-# Plug and Play support381381-#382382-# CONFIG_PNPACPI is not set383383-384384-#385385-# Block devices386386-#387387-# CONFIG_BLK_CPQ_DA is not set388388-# CONFIG_BLK_CPQ_CISS_DA is not set389389-# CONFIG_BLK_DEV_DAC960 is not set390390-# CONFIG_BLK_DEV_UMEM is not set391391-# CONFIG_BLK_DEV_COW_COMMON is not set392392-# CONFIG_BLK_DEV_LOOP is not set393393-# CONFIG_BLK_DEV_NBD is not set394394-# CONFIG_BLK_DEV_SX8 is not set395395-# CONFIG_BLK_DEV_RAM is not set396396-# CONFIG_BLK_DEV_INITRD is not set397397-CONFIG_CDROM_PKTCDVD=y398398-CONFIG_CDROM_PKTCDVD_BUFFERS=8399399-# CONFIG_CDROM_PKTCDVD_WCACHE is not set400400-CONFIG_ATA_OVER_ETH=y401401-402402-#403403-# Misc devices404404-#405405-CONFIG_SGI_IOC4=y406406-# CONFIG_TIFM_CORE is not set407407-408408-#409409-# ATA/ATAPI/MFM/RLL support410410-#411411-# CONFIG_IDE is not set412412-413413-#414414-# SCSI device support415415-#416416-CONFIG_RAID_ATTRS=y417417-# CONFIG_SCSI is not set418418-# CONFIG_SCSI_NETLINK is not set419419-420420-#421421-# Serial ATA (prod) and Parallel ATA (experimental) drivers422422-#423423-# CONFIG_ATA is not set424424-425425-#426426-# Multi-device support (RAID and LVM)427427-#428428-# CONFIG_MD is not set429429-430430-#431431-# Fusion MPT device support432432-#433433-# CONFIG_FUSION is not set434434-435435-#436436-# IEEE 1394 (FireWire) support437437-#438438-# CONFIG_IEEE1394 is not set439439-440440-#441441-# I2O device support442442-#443443-# CONFIG_I2O is not set444444-445445-#446446-# Network device support447447-#448448-CONFIG_NETDEVICES=y449449-# CONFIG_DUMMY is not set450450-# CONFIG_BONDING is not set451451-# CONFIG_EQUALIZER is not set452452-# CONFIG_TUN is not set453453-454454-#455455-# ARCnet devices456456-#457457-# CONFIG_ARCNET is not set458458-459459-#460460-# PHY device support461461-#462462-CONFIG_PHYLIB=y463463-464464-#465465-# MII PHY device drivers466466-#467467-CONFIG_MARVELL_PHY=y468468-CONFIG_DAVICOM_PHY=y469469-CONFIG_QSEMI_PHY=y470470-CONFIG_LXT_PHY=y471471-CONFIG_CICADA_PHY=y472472-CONFIG_VITESSE_PHY=y473473-CONFIG_SMSC_PHY=y474474-# CONFIG_BROADCOM_PHY is not set475475-# CONFIG_FIXED_PHY is not set476476-477477-#478478-# Ethernet (10 or 100Mbit)479479-#480480-CONFIG_NET_ETHERNET=y481481-CONFIG_MII=y482482-# CONFIG_HAPPYMEAL is not set483483-# CONFIG_SUNGEM is not set484484-# CONFIG_CASSINI is not set485485-# CONFIG_NET_VENDOR_3COM is not set486486-# CONFIG_DM9000 is not set487487-488488-#489489-# Tulip family network device support490490-#491491-# CONFIG_NET_TULIP is not set492492-# CONFIG_HP100 is not set493493-CONFIG_NET_PCI=y494494-CONFIG_PCNET32=y495495-# CONFIG_PCNET32_NAPI is not set496496-# CONFIG_AMD8111_ETH is not set497497-# CONFIG_ADAPTEC_STARFIRE is not set498498-# CONFIG_B44 is not set499499-# CONFIG_FORCEDETH is not set500500-# CONFIG_DGRS is not set501501-# CONFIG_EEPRO100 is not set502502-# CONFIG_E100 is not set503503-# CONFIG_FEALNX is not set504504-# CONFIG_NATSEMI is not set505505-# CONFIG_NE2K_PCI is not set506506-# CONFIG_8139CP is not set507507-# CONFIG_8139TOO is not set508508-# CONFIG_SIS900 is not set509509-# CONFIG_EPIC100 is not set510510-# CONFIG_SUNDANCE is not set511511-# CONFIG_TLAN is not set512512-# CONFIG_VIA_RHINE is not set513513-# CONFIG_SC92031 is not set514514-515515-#516516-# Ethernet (1000 Mbit)517517-#518518-# CONFIG_ACENIC is not set519519-# CONFIG_DL2K is not set520520-# CONFIG_E1000 is not set521521-# CONFIG_NS83820 is not set522522-# CONFIG_HAMACHI is not set523523-# CONFIG_YELLOWFIN is not set524524-# CONFIG_R8169 is not set525525-# CONFIG_SIS190 is not set526526-# CONFIG_SKGE is not set527527-# CONFIG_SKY2 is not set528528-# CONFIG_SK98LIN is not set529529-# CONFIG_VIA_VELOCITY is not set530530-# CONFIG_TIGON3 is not set531531-# CONFIG_BNX2 is not set532532-CONFIG_QLA3XXX=y533533-# CONFIG_ATL1 is not set534534-535535-#536536-# Ethernet (10000 Mbit)537537-#538538-# CONFIG_CHELSIO_T1 is not set539539-CONFIG_CHELSIO_T3=y540540-# CONFIG_IXGB is not set541541-# CONFIG_S2IO is not set542542-# CONFIG_MYRI10GE is not set543543-CONFIG_NETXEN_NIC=y544544-545545-#546546-# Token Ring devices547547-#548548-# CONFIG_TR is not set549549-550550-#551551-# Wireless LAN (non-hamradio)552552-#553553-# CONFIG_NET_RADIO is not set554554-555555-#556556-# Wan interfaces557557-#558558-# CONFIG_WAN is not set559559-# CONFIG_FDDI is not set560560-# CONFIG_HIPPI is not set561561-# CONFIG_PPP is not set562562-# CONFIG_SLIP is not set563563-# CONFIG_SHAPER is not set564564-# CONFIG_NETCONSOLE is not set565565-# CONFIG_NETPOLL is not set566566-# CONFIG_NET_POLL_CONTROLLER is not set567567-568568-#569569-# ISDN subsystem570570-#571571-# CONFIG_ISDN is not set572572-573573-#574574-# Telephony Support575575-#576576-# CONFIG_PHONE is not set577577-578578-#579579-# Input device support580580-#581581-CONFIG_INPUT=y582582-# CONFIG_INPUT_FF_MEMLESS is not set583583-584584-#585585-# Userland interfaces586586-#587587-CONFIG_INPUT_MOUSEDEV=y588588-CONFIG_INPUT_MOUSEDEV_PSAUX=y589589-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024590590-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768591591-# CONFIG_INPUT_JOYDEV is not set592592-# CONFIG_INPUT_TSDEV is not set593593-# CONFIG_INPUT_EVDEV is not set594594-# CONFIG_INPUT_EVBUG is not set595595-596596-#597597-# Input Device Drivers598598-#599599-# CONFIG_INPUT_KEYBOARD is not set600600-# CONFIG_INPUT_MOUSE is not set601601-# CONFIG_INPUT_JOYSTICK is not set602602-# CONFIG_INPUT_TOUCHSCREEN is not set603603-# CONFIG_INPUT_MISC is not set604604-605605-#606606-# Hardware I/O ports607607-#608608-CONFIG_SERIO=y609609-# CONFIG_SERIO_I8042 is not set610610-CONFIG_SERIO_SERPORT=y611611-# CONFIG_SERIO_PCIPS2 is not set612612-# CONFIG_SERIO_LIBPS2 is not set613613-CONFIG_SERIO_RAW=y614614-# CONFIG_GAMEPORT is not set615615-616616-#617617-# Character devices618618-#619619-CONFIG_VT=y620620-CONFIG_VT_CONSOLE=y621621-CONFIG_HW_CONSOLE=y622622-CONFIG_VT_HW_CONSOLE_BINDING=y623623-# CONFIG_SERIAL_NONSTANDARD is not set624624-625625-#626626-# Serial drivers627627-#628628-CONFIG_SERIAL_8250=y629629-CONFIG_SERIAL_8250_CONSOLE=y630630-CONFIG_SERIAL_8250_PCI=y631631-CONFIG_SERIAL_8250_NR_UARTS=4632632-CONFIG_SERIAL_8250_RUNTIME_UARTS=4633633-# CONFIG_SERIAL_8250_EXTENDED is not set634634-635635-#636636-# Non-8250 serial port support637637-#638638-CONFIG_SERIAL_CORE=y639639-CONFIG_SERIAL_CORE_CONSOLE=y640640-# CONFIG_SERIAL_JSM is not set641641-CONFIG_UNIX98_PTYS=y642642-CONFIG_LEGACY_PTYS=y643643-CONFIG_LEGACY_PTY_COUNT=256644644-645645-#646646-# IPMI647647-#648648-# CONFIG_IPMI_HANDLER is not set649649-650650-#651651-# Watchdog Cards652652-#653653-# CONFIG_WATCHDOG is not set654654-# CONFIG_HW_RANDOM is not set655655-# CONFIG_RTC is not set656656-# CONFIG_GEN_RTC is not set657657-# CONFIG_DTLK is not set658658-# CONFIG_R3964 is not set659659-# CONFIG_APPLICOM is not set660660-# CONFIG_DRM is not set661661-# CONFIG_RAW_DRIVER is not set662662-663663-#664664-# TPM devices665665-#666666-# CONFIG_TCG_TPM is not set667667-668668-#669669-# I2C support670670-#671671-# CONFIG_I2C is not set672672-673673-#674674-# SPI support675675-#676676-# CONFIG_SPI is not set677677-# CONFIG_SPI_MASTER is not set678678-679679-#680680-# Dallas's 1-wire bus681681-#682682-# CONFIG_W1 is not set683683-684684-#685685-# Hardware Monitoring support686686-#687687-# CONFIG_HWMON is not set688688-# CONFIG_HWMON_VID is not set689689-690690-#691691-# Multimedia devices692692-#693693-# CONFIG_VIDEO_DEV is not set694694-695695-#696696-# Digital Video Broadcasting Devices697697-#698698-# CONFIG_DVB is not set699699-700700-#701701-# Graphics support702702-#703703-# CONFIG_FIRMWARE_EDID is not set704704-# CONFIG_FB is not set705705-706706-#707707-# Console display driver support708708-#709709-# CONFIG_VGA_CONSOLE is not set710710-CONFIG_DUMMY_CONSOLE=y711711-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set712712-713713-#714714-# Sound715715-#716716-# CONFIG_SOUND is not set717717-718718-#719719-# HID Devices720720-#721721-# CONFIG_HID is not set722722-723723-#724724-# USB support725725-#726726-CONFIG_USB_ARCH_HAS_HCD=y727727-CONFIG_USB_ARCH_HAS_OHCI=y728728-CONFIG_USB_ARCH_HAS_EHCI=y729729-# CONFIG_USB is not set730730-731731-#732732-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'733733-#734734-735735-#736736-# USB Gadget Support737737-#738738-# CONFIG_USB_GADGET is not set739739-740740-#741741-# MMC/SD Card support742742-#743743-# CONFIG_MMC is not set744744-745745-#746746-# LED devices747747-#748748-# CONFIG_NEW_LEDS is not set749749-750750-#751751-# LED drivers752752-#753753-754754-#755755-# LED Triggers756756-#757757-758758-#759759-# InfiniBand support760760-#761761-# CONFIG_INFINIBAND is not set762762-763763-#764764-# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)765765-#766766-767767-#768768-# Real Time Clock769769-#770770-# CONFIG_RTC_CLASS is not set771771-772772-#773773-# DMA Engine support774774-#775775-# CONFIG_DMA_ENGINE is not set776776-777777-#778778-# DMA Clients779779-#780780-781781-#782782-# DMA Devices783783-#784784-785785-#786786-# Auxiliary Display support787787-#788788-789789-#790790-# Virtualization791791-#792792-793793-#794794-# File systems795795-#796796-CONFIG_EXT2_FS=y797797-# CONFIG_EXT2_FS_XATTR is not set798798-# CONFIG_EXT2_FS_XIP is not set799799-# CONFIG_EXT3_FS is not set800800-# CONFIG_EXT4DEV_FS is not set801801-# CONFIG_REISERFS_FS is not set802802-# CONFIG_JFS_FS is not set803803-# CONFIG_FS_POSIX_ACL is not set804804-# CONFIG_XFS_FS is not set805805-# CONFIG_GFS2_FS is not set806806-# CONFIG_OCFS2_FS is not set807807-# CONFIG_MINIX_FS is not set808808-# CONFIG_ROMFS_FS is not set809809-CONFIG_INOTIFY=y810810-CONFIG_INOTIFY_USER=y811811-# CONFIG_QUOTA is not set812812-CONFIG_DNOTIFY=y813813-CONFIG_AUTOFS_FS=y814814-CONFIG_AUTOFS4_FS=y815815-CONFIG_FUSE_FS=y816816-817817-#818818-# CD-ROM/DVD Filesystems819819-#820820-# CONFIG_ISO9660_FS is not set821821-# CONFIG_UDF_FS is not set822822-823823-#824824-# DOS/FAT/NT Filesystems825825-#826826-# CONFIG_MSDOS_FS is not set827827-# CONFIG_VFAT_FS is not set828828-# CONFIG_NTFS_FS is not set829829-830830-#831831-# Pseudo filesystems832832-#833833-CONFIG_PROC_FS=y834834-CONFIG_PROC_KCORE=y835835-CONFIG_PROC_SYSCTL=y836836-CONFIG_SYSFS=y837837-# CONFIG_TMPFS is not set838838-# CONFIG_HUGETLB_PAGE is not set839839-CONFIG_RAMFS=y840840-CONFIG_CONFIGFS_FS=y841841-842842-#843843-# Miscellaneous filesystems844844-#845845-# CONFIG_ADFS_FS is not set846846-# CONFIG_AFFS_FS is not set847847-# CONFIG_ECRYPT_FS is not set848848-# CONFIG_HFS_FS is not set849849-# CONFIG_HFSPLUS_FS is not set850850-# CONFIG_BEFS_FS is not set851851-# CONFIG_BFS_FS is not set852852-# CONFIG_EFS_FS is not set853853-# CONFIG_CRAMFS is not set854854-# CONFIG_VXFS_FS is not set855855-# CONFIG_HPFS_FS is not set856856-# CONFIG_QNX4FS_FS is not set857857-# CONFIG_SYSV_FS is not set858858-# CONFIG_UFS_FS is not set859859-860860-#861861-# Network File Systems862862-#863863-CONFIG_NFS_FS=y864864-# CONFIG_NFS_V3 is not set865865-# CONFIG_NFS_V4 is not set866866-# CONFIG_NFS_DIRECTIO is not set867867-CONFIG_NFSD=y868868-# CONFIG_NFSD_V3 is not set869869-# CONFIG_NFSD_TCP is not set870870-CONFIG_ROOT_NFS=y871871-CONFIG_LOCKD=y872872-CONFIG_EXPORTFS=y873873-CONFIG_NFS_COMMON=y874874-CONFIG_SUNRPC=y875875-# CONFIG_RPCSEC_GSS_KRB5 is not set876876-# CONFIG_RPCSEC_GSS_SPKM3 is not set877877-# CONFIG_SMB_FS is not set878878-# CONFIG_CIFS is not set879879-# CONFIG_NCP_FS is not set880880-# CONFIG_CODA_FS is not set881881-# CONFIG_AFS_FS is not set882882-# CONFIG_9P_FS is not set883883-884884-#885885-# Partition Types886886-#887887-# CONFIG_PARTITION_ADVANCED is not set888888-CONFIG_MSDOS_PARTITION=y889889-890890-#891891-# Native Language Support892892-#893893-# CONFIG_NLS is not set894894-895895-#896896-# Distributed Lock Manager897897-#898898-CONFIG_DLM=y899899-CONFIG_DLM_TCP=y900900-# CONFIG_DLM_SCTP is not set901901-# CONFIG_DLM_DEBUG is not set902902-903903-#904904-# Profiling support905905-#906906-# CONFIG_PROFILING is not set907907-908908-#909909-# Kernel hacking910910-#911911-CONFIG_TRACE_IRQFLAGS_SUPPORT=y912912-# CONFIG_PRINTK_TIME is not set913913-CONFIG_ENABLE_MUST_CHECK=y914914-# CONFIG_MAGIC_SYSRQ is not set915915-# CONFIG_UNUSED_SYMBOLS is not set916916-# CONFIG_DEBUG_FS is not set917917-# CONFIG_HEADERS_CHECK is not set918918-# CONFIG_DEBUG_KERNEL is not set919919-CONFIG_LOG_BUF_SHIFT=14920920-CONFIG_CROSSCOMPILE=y921921-CONFIG_CMDLINE="ip=any"922922-CONFIG_SYS_SUPPORTS_KGDB=y923923-924924-#925925-# Security options926926-#927927-CONFIG_KEYS=y928928-CONFIG_KEYS_DEBUG_PROC_KEYS=y929929-# CONFIG_SECURITY is not set930930-931931-#932932-# Cryptographic options933933-#934934-CONFIG_CRYPTO=y935935-CONFIG_CRYPTO_ALGAPI=y936936-CONFIG_CRYPTO_BLKCIPHER=y937937-CONFIG_CRYPTO_HASH=y938938-CONFIG_CRYPTO_MANAGER=y939939-CONFIG_CRYPTO_HMAC=y940940-CONFIG_CRYPTO_XCBC=y941941-CONFIG_CRYPTO_NULL=y942942-CONFIG_CRYPTO_MD4=y943943-CONFIG_CRYPTO_MD5=y944944-CONFIG_CRYPTO_SHA1=y945945-CONFIG_CRYPTO_SHA256=y946946-CONFIG_CRYPTO_SHA512=y947947-CONFIG_CRYPTO_WP512=y948948-CONFIG_CRYPTO_TGR192=y949949-CONFIG_CRYPTO_GF128MUL=y950950-CONFIG_CRYPTO_ECB=y951951-CONFIG_CRYPTO_CBC=y952952-CONFIG_CRYPTO_PCBC=y953953-CONFIG_CRYPTO_LRW=y954954-CONFIG_CRYPTO_DES=y955955-CONFIG_CRYPTO_FCRYPT=y956956-CONFIG_CRYPTO_BLOWFISH=y957957-CONFIG_CRYPTO_TWOFISH=y958958-CONFIG_CRYPTO_TWOFISH_COMMON=y959959-CONFIG_CRYPTO_SERPENT=y960960-CONFIG_CRYPTO_AES=y961961-CONFIG_CRYPTO_CAST5=y962962-CONFIG_CRYPTO_CAST6=y963963-CONFIG_CRYPTO_TEA=y964964-CONFIG_CRYPTO_ARC4=y965965-CONFIG_CRYPTO_KHAZAD=y966966-CONFIG_CRYPTO_ANUBIS=y967967-CONFIG_CRYPTO_DEFLATE=y968968-CONFIG_CRYPTO_MICHAEL_MIC=y969969-CONFIG_CRYPTO_CRC32C=y970970-CONFIG_CRYPTO_CAMELLIA=y971971-972972-#973973-# Hardware crypto devices974974-#975975-976976-#977977-# Library routines978978-#979979-CONFIG_BITREVERSE=y980980-# CONFIG_CRC_CCITT is not set981981-CONFIG_CRC16=y982982-CONFIG_CRC32=y983983-CONFIG_LIBCRC32C=y984984-CONFIG_ZLIB_INFLATE=y985985-CONFIG_ZLIB_DEFLATE=y986986-CONFIG_PLIST=y987987-CONFIG_HAS_IOMEM=y988988-CONFIG_HAS_IOPORT=y
-1
arch/mips/configs/decstation_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/e55_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938CONFIG_MACH_VR41XX=y4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/emma2rh_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/excite_defconfig
···3636# CONFIG_MIPS_XXS1500 is not set3737# CONFIG_PNX8550_JBS is not set3838# CONFIG_PNX8550_STB810 is not set3939-# CONFIG_DDB5477 is not set4039# CONFIG_MACH_VR41XX is not set4140# CONFIG_PMC_YOSEMITE is not set4241# CONFIG_QEMU is not set
-1
arch/mips/configs/fulong_defconfig
···2121# CONFIG_MIPS_SIM is not set2222# CONFIG_PNX8550_JBS is not set2323# CONFIG_PNX8550_STB810 is not set2424-# CONFIG_DDB5477 is not set2524# CONFIG_MACH_VR41XX is not set2625# CONFIG_PMC_YOSEMITE is not set2726# CONFIG_QEMU is not set
-1
arch/mips/configs/ip22_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/ip27_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/ip32_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/jazz_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/jmr3927_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/malta_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/mipssim_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/mpc30x_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938CONFIG_MACH_VR41XX=y4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/msp71xx_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039CONFIG_PMC_MSP=y4140# CONFIG_PMC_YOSEMITE is not set
-1
arch/mips/configs/pb1100_defconfig
···3636# CONFIG_MIPS_XXS1500 is not set3737# CONFIG_PNX8550_JBS is not set3838# CONFIG_PNX8550_STB810 is not set3939-# CONFIG_DDB5477 is not set4039# CONFIG_MACH_VR41XX is not set4140# CONFIG_PMC_YOSEMITE is not set4241# CONFIG_QEMU is not set
-1
arch/mips/configs/pb1500_defconfig
···3636# CONFIG_MIPS_XXS1500 is not set3737# CONFIG_PNX8550_JBS is not set3838# CONFIG_PNX8550_STB810 is not set3939-# CONFIG_DDB5477 is not set4039# CONFIG_MACH_VR41XX is not set4140# CONFIG_PMC_YOSEMITE is not set4241# CONFIG_QEMU is not set
-1
arch/mips/configs/pb1550_defconfig
···3636# CONFIG_MIPS_XXS1500 is not set3737# CONFIG_PNX8550_JBS is not set3838# CONFIG_PNX8550_STB810 is not set3939-# CONFIG_DDB5477 is not set4039# CONFIG_MACH_VR41XX is not set4140# CONFIG_PMC_YOSEMITE is not set4241# CONFIG_QEMU is not set
-1
arch/mips/configs/pnx8550-jbs_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636CONFIG_PNX8550_JBS=y3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/pnx8550-stb810_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737CONFIG_PNX8550_STB810=y3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/qemu_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039# CONFIG_PMC_YOSEMITE is not set4140CONFIG_QEMU=y
-1
arch/mips/configs/rbhma4200_defconfig
···3333# CONFIG_MIPS_XXS1500 is not set3434# CONFIG_PNX8550_JBS is not set3535# CONFIG_PNX8550_STB810 is not set3636-# CONFIG_DDB5477 is not set3736# CONFIG_MACH_VR41XX is not set3837# CONFIG_PMC_YOSEMITE is not set3938# CONFIG_QEMU is not set
-1
arch/mips/configs/rbhma4500_defconfig
···2222# CONFIG_MIPS_SIM is not set2323# CONFIG_PNX8550_JBS is not set2424# CONFIG_PNX8550_STB810 is not set2525-# CONFIG_DDB5477 is not set2625# CONFIG_MACH_VR41XX is not set2726# CONFIG_PMC_MSP is not set2827# CONFIG_PMC_YOSEMITE is not set
-1
arch/mips/configs/rm200_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/sb1250-swarm_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/sead_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/tb0219_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938CONFIG_MACH_VR41XX=y4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/tb0226_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938CONFIG_MACH_VR41XX=y4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/tb0287_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938CONFIG_MACH_VR41XX=y4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/workpad_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938CONFIG_MACH_VR41XX=y4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/wrppmc_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/configs/yosemite_defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039CONFIG_PMC_YOSEMITE=y4140# CONFIG_QEMU is not set
-4
arch/mips/ddb5xxx/Kconfig
···11-config DDB5477_BUS_FREQUENCY22- int "bus frequency (in kHZ, 0 for auto-detect)"33- depends on DDB547744- default 0
-7
arch/mips/ddb5xxx/common/Makefile
···11-#22-# Makefile for the common code of NEC DDB-Vrc5xxx board33-#44-55-obj-y += nile4.o prom.o rtc_ds1386.o66-77-EXTRA_CFLAGS += -Werror
-130
arch/mips/ddb5xxx/common/nile4.c
···11-/*22- *33- * Copyright 2001 MontaVista Software Inc.44- * Author: jsun@mvista.com or jsun@junsun.net55- *66- * arch/mips/ddb5xxx/common/nile4.c77- * misc low-level routines for vrc-5xxx controllers.88- *99- * derived from original code by Geert Uytterhoeven <geert@sonycom.com>1010- *1111- * This program is free software; you can redistribute it and/or modify it1212- * under the terms of the GNU General Public License as published by the1313- * Free Software Foundation; either version 2 of the License, or (at your1414- * option) any later version.1515- */1616-#include <linux/types.h>1717-#include <linux/kernel.h>1818-1919-#include <asm/ddb5xxx/ddb5xxx.h>2020-2121-u322222-ddb_calc_pdar(u32 phys, u32 size, int width,2323- int on_memory_bus, int pci_visible)2424-{2525- u32 maskbits;2626- u32 widthbits;2727-2828- switch (size) {2929-#if 0 /* We don't support 4 GB yet */3030- case 0x100000000: /* 4 GB */3131- maskbits = 4;3232- break;3333-#endif3434- case 0x80000000: /* 2 GB */3535- maskbits = 5;3636- break;3737- case 0x40000000: /* 1 GB */3838- maskbits = 6;3939- break;4040- case 0x20000000: /* 512 MB */4141- maskbits = 7;4242- break;4343- case 0x10000000: /* 256 MB */4444- maskbits = 8;4545- break;4646- case 0x08000000: /* 128 MB */4747- maskbits = 9;4848- break;4949- case 0x04000000: /* 64 MB */5050- maskbits = 10;5151- break;5252- case 0x02000000: /* 32 MB */5353- maskbits = 11;5454- break;5555- case 0x01000000: /* 16 MB */5656- maskbits = 12;5757- break;5858- case 0x00800000: /* 8 MB */5959- maskbits = 13;6060- break;6161- case 0x00400000: /* 4 MB */6262- maskbits = 14;6363- break;6464- case 0x00200000: /* 2 MB */6565- maskbits = 15;6666- break;6767- case 0: /* OFF */6868- maskbits = 0;6969- break;7070- default:7171- panic("nile4_set_pdar: unsupported size %p", (void *) size);7272- }7373- switch (width) {7474- case 8:7575- widthbits = 0;7676- break;7777- case 16:7878- widthbits = 1;7979- break;8080- case 32:8181- widthbits = 2;8282- break;8383- case 64:8484- widthbits = 3;8585- break;8686- default:8787- panic("nile4_set_pdar: unsupported width %d", width);8888- }8989-9090- return maskbits | (on_memory_bus ? 0x10 : 0) |9191- (pci_visible ? 0x20 : 0) | (widthbits << 6) |9292- (phys & 0xffe00000);9393-}9494-9595-void9696-ddb_set_pdar(u32 pdar, u32 phys, u32 size, int width,9797- int on_memory_bus, int pci_visible)9898-{9999- u32 temp= ddb_calc_pdar(phys, size, width, on_memory_bus, pci_visible);100100- ddb_out32(pdar, temp);101101- ddb_out32(pdar + 4, 0);102102-103103- /*104104- * When programming a PDAR, the register should be read immediately105105- * after writing it. This ensures that address decoders are properly106106- * configured.107107- * [jsun] is this really necessary?108108- */109109- ddb_in32(pdar);110110- ddb_in32(pdar + 4);111111-}112112-113113-/*114114- * routines that mess with PCIINITx registers115115- */116116-117117-void ddb_set_pmr(u32 pmr, u32 type, u32 addr, u32 options)118118-{119119- switch (type) {120120- case DDB_PCICMD_IACK: /* PCI Interrupt Acknowledge */121121- case DDB_PCICMD_IO: /* PCI I/O Space */122122- case DDB_PCICMD_MEM: /* PCI Memory Space */123123- case DDB_PCICMD_CFG: /* PCI Configuration Space */124124- break;125125- default:126126- panic("nile4_set_pmr: invalid type %d", type);127127- }128128- ddb_out32(pmr, (type << 1) | (addr & 0xffe00000) | options );129129- ddb_out32(pmr + 4, 0);130130-}
-132
arch/mips/ddb5xxx/common/prom.c
···11-/*22- * Copyright 2001 MontaVista Software Inc.33- * Author: jsun@mvista.com or jsun@junsun.net44- *55- * This program is free software; you can redistribute it and/or modify it66- * under the terms of the GNU General Public License as published by the77- * Free Software Foundation; either version 2 of the License, or (at your88- * option) any later version.99- */1010-#include <linux/init.h>1111-#include <linux/mm.h>1212-#include <linux/sched.h>1313-#include <linux/bootmem.h>1414-1515-#include <asm/addrspace.h>1616-#include <asm/bootinfo.h>1717-#include <asm/ddb5xxx/ddb5xxx.h>1818-#include <asm/debug.h>1919-2020-const char *get_system_type(void)2121-{2222- switch (mips_machtype) {2323- case MACH_NEC_DDB5477: return "NEC DDB Vrc-5477";2424- case MACH_NEC_ROCKHOPPER: return "NEC Rockhopper";2525- case MACH_NEC_ROCKHOPPERII: return "NEC RockhopperII";2626- default: return "Unknown NEC board";2727- }2828-}2929-3030-#if defined(CONFIG_DDB5477)3131-void ddb5477_runtime_detection(void);3232-#endif3333-3434-/* [jsun@junsun.net] PMON passes arguments in C main() style */3535-void __init prom_init(void)3636-{3737- int argc = fw_arg0;3838- char **arg = (char**) fw_arg1;3939- int i;4040-4141- /* if user passes kernel args, ignore the default one */4242- if (argc > 1)4343- arcs_cmdline[0] = '\0';4444-4545- /* arg[0] is "g", the rest is boot parameters */4646- for (i = 1; i < argc; i++) {4747- if (strlen(arcs_cmdline) + strlen(arg[i] + 1)4848- >= sizeof(arcs_cmdline))4949- break;5050- strcat(arcs_cmdline, arg[i]);5151- strcat(arcs_cmdline, " ");5252- }5353-5454- mips_machgroup = MACH_GROUP_NEC_DDB;5555-5656-#if defined(CONFIG_DDB5477)5757- ddb5477_runtime_detection();5858- add_memory_region(0, board_ram_size, BOOT_MEM_RAM);5959-#endif6060-}6161-6262-void __init prom_free_prom_memory(void)6363-{6464-}6565-6666-#if defined(CONFIG_DDB5477)6767-6868-#define DEFAULT_LCS1_BASE 0x190000006969-#define TESTVAL1 'K'7070-#define TESTVAL2 'S'7171-7272-int board_ram_size;7373-void ddb5477_runtime_detection(void)7474-{7575- volatile char *test_offset;7676- char saved_test_byte;7777-7878- /* Determine if this is a DDB5477 board, or a BSB-VR03007979- base board. We can tell by checking for the location of8080- the NVRAM. It lives at the beginning of LCS1 on the DDB5477,8181- and the beginning of LCS1 on the BSB-VR0300 is flash memory.8282- The first 2K of the NVRAM are reserved, so don't we'll poke8383- around just after that.8484- */8585-8686- /* We can only use the PCI bus to distinquish between8787- the Rockhopper and RockhopperII backplanes and this must8888- wait until ddb5477_board_init() in setup.c after the 54778989- is initialized. So, until then handle9090- both Rockhopper and RockhopperII backplanes as Rockhopper 19191- */9292-9393- test_offset = (char *)KSEG1ADDR(DEFAULT_LCS1_BASE + 0x800);9494- saved_test_byte = *test_offset;9595-9696- *test_offset = TESTVAL1;9797- if (*test_offset != TESTVAL1) {9898- /* We couldn't set our test value, so it must not be NVRAM,9999- so it's a BSB_VR0300 */100100- mips_machtype = MACH_NEC_ROCKHOPPER;101101- } else {102102- /* We may have gotten lucky, and the TESTVAL1 was already103103- stored at the test location, so we must check a second104104- test value */105105- *test_offset = TESTVAL2;106106- if (*test_offset != TESTVAL2) {107107- /* OK, we couldn't set this value either, so it must108108- definately be a BSB_VR0300 */109109- mips_machtype = MACH_NEC_ROCKHOPPER;110110- } else {111111- /* We could change the value twice, so it must be112112- NVRAM, so it's a DDB_VRC5477 */113113- mips_machtype = MACH_NEC_DDB5477;114114- }115115- }116116- /* Restore the original byte */117117- *test_offset = saved_test_byte;118118-119119- /* before we know a better way, we will trust PMON for getting120120- * RAM size121121- */122122- board_ram_size = 1 << (36 - (ddb_in32(DDB_SDRAM0) & 0xf));123123-124124- db_run(printk("DDB run-time detection : %s, %d MB RAM\n",125125- mips_machtype == MACH_NEC_DDB5477 ?126126- "DDB5477" : "Rockhopper",127127- board_ram_size >> 20));128128-129129- /* we can't handle ram size > 128 MB */130130- db_assert(board_ram_size <= (128 << 20));131131-}132132-#endif
-170
arch/mips/ddb5xxx/common/rtc_ds1386.c
···11-/*22- * Copyright 2001 MontaVista Software Inc.33- * Author: jsun@mvista.com or jsun@junsun.net44- *55- * arch/mips/ddb5xxx/common/rtc_ds1386.c66- * low-level RTC hookups for s for Dallas 1396 chip.77- *88- * This program is free software; you can redistribute it and/or modify it99- * under the terms of the GNU General Public License as published by the1010- * Free Software Foundation; either version 2 of the License, or (at your1111- * option) any later version.1212- */1313-1414-1515-/*1616- * This file exports a function, rtc_ds1386_init(), which expects an1717- * uncached base address as the argument. It will set the two function1818- * pointers expected by the MIPS generic timer code.1919- */2020-2121-#include <linux/types.h>2222-#include <linux/time.h>2323-#include <linux/bcd.h>2424-2525-#include <asm/time.h>2626-#include <asm/addrspace.h>2727-2828-#include <asm/mc146818rtc.h>2929-#include <asm/debug.h>3030-3131-#define EPOCH 20003232-3333-#define READ_RTC(x) *(volatile unsigned char*)(rtc_base+x)3434-#define WRITE_RTC(x, y) *(volatile unsigned char*)(rtc_base+x) = y3535-3636-static unsigned long rtc_base;3737-3838-static unsigned long3939-rtc_ds1386_get_time(void)4040-{4141- u8 byte;4242- u8 temp;4343- unsigned int year, month, day, hour, minute, second;4444- unsigned long flags;4545-4646- spin_lock_irqsave(&rtc_lock, flags);4747- /* let us freeze external registers */4848- byte = READ_RTC(0xB);4949- byte &= 0x3f;5050- WRITE_RTC(0xB, byte);5151-5252- /* read time data */5353- year = BCD2BIN(READ_RTC(0xA)) + EPOCH;5454- month = BCD2BIN(READ_RTC(0x9) & 0x1f);5555- day = BCD2BIN(READ_RTC(0x8));5656- minute = BCD2BIN(READ_RTC(0x2));5757- second = BCD2BIN(READ_RTC(0x1));5858-5959- /* hour is special - deal with it later */6060- temp = READ_RTC(0x4);6161-6262- /* enable time transfer */6363- byte |= 0x80;6464- WRITE_RTC(0xB, byte);6565- spin_unlock_irqrestore(&rtc_lock, flags);6666-6767- /* calc hour */6868- if (temp & 0x40) {6969- /* 12 hour format */7070- hour = BCD2BIN(temp & 0x1f);7171- if (temp & 0x20) hour += 12; /* PM */7272- } else {7373- /* 24 hour format */7474- hour = BCD2BIN(temp & 0x3f);7575- }7676-7777- return mktime(year, month, day, hour, minute, second);7878-}7979-8080-static int8181-rtc_ds1386_set_time(unsigned long t)8282-{8383- struct rtc_time tm;8484- u8 byte;8585- u8 temp;8686- u8 year, month, day, hour, minute, second;8787- unsigned long flags;8888-8989- spin_lock_irqsave(&rtc_lock, flags);9090- /* let us freeze external registers */9191- byte = READ_RTC(0xB);9292- byte &= 0x3f;9393- WRITE_RTC(0xB, byte);9494-9595- /* convert */9696- to_tm(t, &tm);9797-9898-9999- /* check each field one by one */100100- year = BIN2BCD(tm.tm_year - EPOCH);101101- if (year != READ_RTC(0xA)) {102102- WRITE_RTC(0xA, year);103103- }104104-105105- temp = READ_RTC(0x9);106106- month = BIN2BCD(tm.tm_mon+1); /* tm_mon starts from 0 to 11 */107107- if (month != (temp & 0x1f)) {108108- WRITE_RTC( 0x9,109109- (month & 0x1f) | (temp & ~0x1f) );110110- }111111-112112- day = BIN2BCD(tm.tm_mday);113113- if (day != READ_RTC(0x8)) {114114- WRITE_RTC(0x8, day);115115- }116116-117117- temp = READ_RTC(0x4);118118- if (temp & 0x40) {119119- /* 12 hour format */120120- hour = 0x40;121121- if (tm.tm_hour > 12) {122122- hour |= 0x20 | (BIN2BCD(hour-12) & 0x1f);123123- } else {124124- hour |= BIN2BCD(tm.tm_hour);125125- }126126- } else {127127- /* 24 hour format */128128- hour = BIN2BCD(tm.tm_hour) & 0x3f;129129- }130130- if (hour != temp) WRITE_RTC(0x4, hour);131131-132132- minute = BIN2BCD(tm.tm_min);133133- if (minute != READ_RTC(0x2)) {134134- WRITE_RTC(0x2, minute);135135- }136136-137137- second = BIN2BCD(tm.tm_sec);138138- if (second != READ_RTC(0x1)) {139139- WRITE_RTC(0x1, second);140140- }141141- spin_unlock_irqrestore(&rtc_lock, flags);142142-143143- return 0;144144-}145145-146146-void147147-rtc_ds1386_init(unsigned long base)148148-{149149- unsigned char byte;150150-151151- /* remember the base */152152- rtc_base = base;153153- db_assert((rtc_base & 0xe0000000) == KSEG1);154154-155155- /* turn on RTC if it is not on */156156- byte = READ_RTC(0x9);157157- if (byte & 0x80) {158158- byte &= 0x7f;159159- WRITE_RTC(0x9, byte);160160- }161161-162162- /* enable time transfer */163163- byte = READ_RTC(0xB);164164- byte |= 0x80;165165- WRITE_RTC(0xB, byte);166166-167167- /* set the function pointers */168168- rtc_mips_get_time = rtc_ds1386_get_time;169169- rtc_mips_set_time = rtc_ds1386_set_time;170170-}
-11
arch/mips/ddb5xxx/ddb5477/Makefile
···11-#22-# Makefile for NEC DDB-Vrc5477 board33-#44-55-obj-y += ddb5477-platform.o irq.o irq_5477.o setup.o \66- lcd44780.o77-88-obj-$(CONFIG_RUNTIME_DEBUG) += debug.o99-obj-$(CONFIG_KGDB) += kgdb_io.o1010-1111-EXTRA_CFLAGS += -Werror
-49
arch/mips/ddb5xxx/ddb5477/ddb5477-platform.c
···11-/*22- * This file is subject to the terms and conditions of the GNU General Public33- * License. See the file "COPYING" in the main directory of this archive44- * for more details.55- *66- * Copyright (C) 2007 Ralf Baechle (ralf@linux-mips.org)77- */88-#include <linux/init.h>99-#include <linux/module.h>1010-#include <linux/serial_8250.h>1111-1212-#include <asm/ddb5xxx/ddb5477.h>1313-1414-#define DDB_UART_FLAGS (UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_IOREMAP)1515-1616-#define DDB5477_PORT(base, int) \1717-{ \1818- .mapbase = base, \1919- .irq = int, \2020- .uartclk = 1843200, \2121- .iotype = UPIO_MEM, \2222- .flags = DDB_UART_FLAGS, \2323- .regshift = 3, \2424-}2525-2626-static struct plat_serial8250_port uart8250_data[] = {2727- DDB5477_PORT(0xbfa04200, VRC5477_IRQ_UART0),2828- DDB5477_PORT(0xbfa04240, VRC5477_IRQ_UART1),2929- { },3030-};3131-3232-static struct platform_device uart8250_device = {3333- .name = "serial8250",3434- .id = PLAT8250_DEV_PLATFORM,3535- .dev = {3636- .platform_data = uart8250_data,3737- },3838-};3939-4040-static int __init uart8250_init(void)4141-{4242- return platform_device_register(&uart8250_device);4343-}4444-4545-module_init(uart8250_init);4646-4747-MODULE_AUTHOR("Ralf Baechle <ralf@linux-mips.org>");4848-MODULE_LICENSE("GPL");4949-MODULE_DESCRIPTION("8250 UART probe driver for the NEC DDB5477");
···11-/*22- * Copyright 2001 MontaVista Software Inc.33- * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net44- *55- * arch/mips/ddb5xxx/ddb5477/irq.c66- * The irq setup and misc routines for DDB5476.77- *88- * This program is free software; you can redistribute it and/or modify it99- * under the terms of the GNU General Public License as published by the1010- * Free Software Foundation; either version 2 of the License, or (at your1111- * option) any later version.1212- */1313-#include <linux/init.h>1414-#include <linux/interrupt.h>1515-#include <linux/irq.h>1616-#include <linux/types.h>1717-#include <linux/ptrace.h>1818-1919-#include <asm/i8259.h>2020-#include <asm/irq_cpu.h>2121-#include <asm/system.h>2222-#include <asm/mipsregs.h>2323-#include <asm/debug.h>2424-#include <asm/addrspace.h>2525-#include <asm/bootinfo.h>2626-2727-#include <asm/ddb5xxx/ddb5xxx.h>2828-2929-3030-/*3131- * IRQ mapping3232- *3333- * 0-7: 8 CPU interrupts3434- * 0 - software interrupt 03535- * 1 - software interrupt 13636- * 2 - most Vrc5477 interrupts are routed to this pin3737- * 3 - (optional) some other interrupts routed to this pin for debugg3838- * 4 - not used3939- * 5 - not used4040- * 6 - not used4141- * 7 - cpu timer (used by default)4242- *4343- * 8-39: 32 Vrc5477 interrupt sources4444- * (refer to the Vrc5477 manual)4545- */4646-4747-#define PCI0 DDB_INTPPES04848-#define PCI1 DDB_INTPPES14949-5050-#define ACTIVE_LOW 15151-#define ACTIVE_HIGH 05252-5353-#define LEVEL_SENSE 25454-#define EDGE_TRIGGER 05555-5656-#define INTA 05757-#define INTB 15858-#define INTC 25959-#define INTD 36060-#define INTE 46161-6262-static inline void6363-set_pci_int_attr(u32 pci, u32 intn, u32 active, u32 trigger)6464-{6565- u32 reg_value;6666- u32 reg_bitmask;6767-6868- reg_value = ddb_in32(pci);6969- reg_bitmask = 0x3 << (intn * 2);7070-7171- reg_value &= ~reg_bitmask;7272- reg_value |= (active | trigger) << (intn * 2);7373- ddb_out32(pci, reg_value);7474-}7575-7676-extern void vrc5477_irq_init(u32 base);7777-static struct irqaction irq_cascade = { no_action, 0, CPU_MASK_NONE, "cascade", NULL, NULL };7878-7979-void __init arch_init_irq(void)8080-{8181- /* by default, we disable all interrupts and route all vrc54778282- * interrupts to pin 0 (irq 2) */8383- ddb_out32(DDB_INTCTRL0, 0);8484- ddb_out32(DDB_INTCTRL1, 0);8585- ddb_out32(DDB_INTCTRL2, 0);8686- ddb_out32(DDB_INTCTRL3, 0);8787-8888- clear_c0_status(0xff00);8989- set_c0_status(0x0400);9090-9191- /* setup PCI interrupt attributes */9292- set_pci_int_attr(PCI0, INTA, ACTIVE_LOW, LEVEL_SENSE);9393- set_pci_int_attr(PCI0, INTB, ACTIVE_LOW, LEVEL_SENSE);9494- if (mips_machtype == MACH_NEC_ROCKHOPPERII)9595- set_pci_int_attr(PCI0, INTC, ACTIVE_HIGH, LEVEL_SENSE);9696- else9797- set_pci_int_attr(PCI0, INTC, ACTIVE_LOW, LEVEL_SENSE);9898- set_pci_int_attr(PCI0, INTD, ACTIVE_LOW, LEVEL_SENSE);9999- set_pci_int_attr(PCI0, INTE, ACTIVE_LOW, LEVEL_SENSE);100100-101101- set_pci_int_attr(PCI1, INTA, ACTIVE_LOW, LEVEL_SENSE);102102- set_pci_int_attr(PCI1, INTB, ACTIVE_LOW, LEVEL_SENSE);103103- set_pci_int_attr(PCI1, INTC, ACTIVE_LOW, LEVEL_SENSE);104104- set_pci_int_attr(PCI1, INTD, ACTIVE_LOW, LEVEL_SENSE);105105- set_pci_int_attr(PCI1, INTE, ACTIVE_LOW, LEVEL_SENSE);106106-107107- /*108108- * for debugging purpose, we enable several error interrupts109109- * and route them to pin 1. (IP3)110110- */111111- /* cpu parity check - 0 */112112- ll_vrc5477_irq_route(0, 1); ll_vrc5477_irq_enable(0);113113- /* cpu no-target decode - 1 */114114- ll_vrc5477_irq_route(1, 1); ll_vrc5477_irq_enable(1);115115- /* local bus read time-out - 7 */116116- ll_vrc5477_irq_route(7, 1); ll_vrc5477_irq_enable(7);117117- /* PCI SERR# - 14 */118118- ll_vrc5477_irq_route(14, 1); ll_vrc5477_irq_enable(14);119119- /* PCI internal error - 15 */120120- ll_vrc5477_irq_route(15, 1); ll_vrc5477_irq_enable(15);121121- /* IOPCI SERR# - 30 */122122- ll_vrc5477_irq_route(30, 1); ll_vrc5477_irq_enable(30);123123- /* IOPCI internal error - 31 */124124- ll_vrc5477_irq_route(31, 1); ll_vrc5477_irq_enable(31);125125-126126- /* init all controllers */127127- init_i8259_irqs();128128- mips_cpu_irq_init();129129- vrc5477_irq_init(VRC5477_IRQ_BASE);130130-131131-132132- /* setup cascade interrupts */133133- setup_irq(VRC5477_IRQ_BASE + VRC5477_I8259_CASCADE, &irq_cascade);134134- setup_irq(CPU_IRQ_BASE + CPU_VRC5477_CASCADE, &irq_cascade);135135-}136136-137137-u8 i8259_interrupt_ack(void)138138-{139139- u8 irq;140140- u32 reg;141141-142142- /* Set window 0 for interrupt acknowledge */143143- reg = ddb_in32(DDB_PCIINIT10);144144-145145- ddb_set_pmr(DDB_PCIINIT10, DDB_PCICMD_IACK, 0, DDB_PCI_ACCESS_32);146146- irq = *(volatile u8 *) KSEG1ADDR(DDB_PCI_IACK_BASE);147147- ddb_out32(DDB_PCIINIT10, reg);148148-149149- return irq;150150-}151151-/*152152- * the first level int-handler will jump here if it is a vrc5477 irq153153- */154154-#define NUM_5477_IRQS 32155155-static void vrc5477_irq_dispatch(void)156156-{157157- u32 intStatus;158158- u32 bitmask;159159- u32 i;160160-161161- db_assert(ddb_in32(DDB_INT2STAT) == 0);162162- db_assert(ddb_in32(DDB_INT3STAT) == 0);163163- db_assert(ddb_in32(DDB_INT4STAT) == 0);164164- db_assert(ddb_in32(DDB_NMISTAT) == 0);165165-166166- if (ddb_in32(DDB_INT1STAT) != 0) {167167-#if defined(CONFIG_RUNTIME_DEBUG)168168- vrc5477_show_int_regs();169169-#endif170170- panic("error interrupt has happened.");171171- }172172-173173- intStatus = ddb_in32(DDB_INT0STAT);174174-175175- if (mips_machtype == MACH_NEC_ROCKHOPPERII) {176176- /* check for i8259 interrupts */177177- if (intStatus & (1 << VRC5477_I8259_CASCADE)) {178178- int i8259_irq = i8259_interrupt_ack();179179- do_IRQ(i8259_irq);180180- return;181181- }182182- }183183-184184- for (i=0, bitmask=1; i<= NUM_5477_IRQS; bitmask <<=1, i++) {185185- /* do we need to "and" with the int mask? */186186- if (intStatus & bitmask) {187187- do_IRQ(VRC5477_IRQ_BASE + i);188188- return;189189- }190190- }191191-}192192-193193-#define VR5477INTS (STATUSF_IP2|STATUSF_IP3|STATUSF_IP4|STATUSF_IP5|STATUSF_IP6)194194-195195-asmlinkage void plat_irq_dispatch(void)196196-{197197- unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM;198198-199199- if (pending & STATUSF_IP7)200200- do_IRQ(CPU_IRQ_BASE + 7);201201- else if (pending & VR5477INTS)202202- vrc5477_irq_dispatch();203203- else if (pending & STATUSF_IP0)204204- do_IRQ(CPU_IRQ_BASE);205205- else if (pending & STATUSF_IP1)206206- do_IRQ(CPU_IRQ_BASE + 1);207207- else208208- spurious_interrupt();209209-}
-154
arch/mips/ddb5xxx/ddb5477/irq_5477.c
···11-/*22- * Copyright 2001 MontaVista Software Inc.33- * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net44- *55- * arch/mips/ddb5xxx/ddb5477/irq_5477.c66- * This file defines the irq handler for Vrc5477.77- *88- * This program is free software; you can redistribute it and/or modify it99- * under the terms of the GNU General Public License as published by the1010- * Free Software Foundation; either version 2 of the License, or (at your1111- * option) any later version.1212- *1313- */1414-1515-/*1616- * Vrc5477 defines 32 IRQs.1717- *1818- * This file exports one function:1919- * vrc5477_irq_init(u32 irq_base);2020- */2121-2222-#include <linux/interrupt.h>2323-#include <linux/types.h>2424-#include <linux/ptrace.h>2525-2626-#include <asm/debug.h>2727-2828-#include <asm/ddb5xxx/ddb5xxx.h>2929-3030-/* number of total irqs supported by Vrc5477 */3131-#define NUM_5477_IRQ 323232-3333-static int vrc5477_irq_base = -1;3434-3535-3636-static void3737-vrc5477_irq_enable(unsigned int irq)3838-{3939- db_assert(vrc5477_irq_base != -1);4040- db_assert(irq >= vrc5477_irq_base);4141- db_assert(irq < vrc5477_irq_base+ NUM_5477_IRQ);4242-4343- ll_vrc5477_irq_enable(irq - vrc5477_irq_base);4444-}4545-4646-static void4747-vrc5477_irq_disable(unsigned int irq)4848-{4949- db_assert(vrc5477_irq_base != -1);5050- db_assert(irq >= vrc5477_irq_base);5151- db_assert(irq < vrc5477_irq_base + NUM_5477_IRQ);5252-5353- ll_vrc5477_irq_disable(irq - vrc5477_irq_base);5454-}5555-5656-static void5757-vrc5477_irq_ack(unsigned int irq)5858-{5959- db_assert(vrc5477_irq_base != -1);6060- db_assert(irq >= vrc5477_irq_base);6161- db_assert(irq < vrc5477_irq_base+ NUM_5477_IRQ);6262-6363- /* clear the interrupt bit */6464- /* some irqs require the driver to clear the sources */6565- ddb_out32(DDB_INTCLR32, 1 << (irq - vrc5477_irq_base));6666-6767- /* disable interrupt - some handler will re-enable the irq6868- * and if the interrupt is leveled, we will have infinite loop6969- */7070- ll_vrc5477_irq_disable(irq - vrc5477_irq_base);7171-}7272-7373-static void7474-vrc5477_irq_end(unsigned int irq)7575-{7676- db_assert(vrc5477_irq_base != -1);7777- db_assert(irq >= vrc5477_irq_base);7878- db_assert(irq < vrc5477_irq_base + NUM_5477_IRQ);7979-8080- if(!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS)))8181- ll_vrc5477_irq_enable( irq - vrc5477_irq_base);8282-}8383-8484-struct irq_chip vrc5477_irq_controller = {8585- .name = "vrc5477_irq",8686- .ack = vrc5477_irq_ack,8787- .mask = vrc5477_irq_disable,8888- .mask_ack = vrc5477_irq_ack,8989- .unmask = vrc5477_irq_enable,9090- .end = vrc5477_irq_end9191-};9292-9393-void __init vrc5477_irq_init(u32 irq_base)9494-{9595- u32 i;9696-9797- for (i= irq_base; i< irq_base+ NUM_5477_IRQ; i++)9898- set_irq_chip(i, &vrc5477_irq_controller);9999-100100- vrc5477_irq_base = irq_base;101101-}102102-103103-void ll_vrc5477_irq_route(int vrc5477_irq, int ip)104104-{105105- u32 reg_value;106106- u32 reg_bitmask;107107- u32 reg_index;108108-109109- db_assert(vrc5477_irq >= 0);110110- db_assert(vrc5477_irq < NUM_5477_IRQ);111111- db_assert(ip >= 0);112112- db_assert((ip < 5) || (ip == 6));113113-114114- reg_index = DDB_INTCTRL0 + vrc5477_irq/8*4;115115- reg_value = ddb_in32(reg_index);116116- reg_bitmask = 7 << (vrc5477_irq % 8 * 4);117117- reg_value &= ~reg_bitmask;118118- reg_value |= ip << (vrc5477_irq % 8 * 4);119119- ddb_out32(reg_index, reg_value);120120-}121121-122122-void ll_vrc5477_irq_enable(int vrc5477_irq)123123-{124124- u32 reg_value;125125- u32 reg_bitmask;126126- u32 reg_index;127127-128128- db_assert(vrc5477_irq >= 0);129129- db_assert(vrc5477_irq < NUM_5477_IRQ);130130-131131- reg_index = DDB_INTCTRL0 + vrc5477_irq/8*4;132132- reg_value = ddb_in32(reg_index);133133- reg_bitmask = 8 << (vrc5477_irq % 8 * 4);134134- db_assert((reg_value & reg_bitmask) == 0);135135- ddb_out32(reg_index, reg_value | reg_bitmask);136136-}137137-138138-void ll_vrc5477_irq_disable(int vrc5477_irq)139139-{140140- u32 reg_value;141141- u32 reg_bitmask;142142- u32 reg_index;143143-144144- db_assert(vrc5477_irq >= 0);145145- db_assert(vrc5477_irq < NUM_5477_IRQ);146146-147147- reg_index = DDB_INTCTRL0 + vrc5477_irq/8*4;148148- reg_value = ddb_in32(reg_index);149149- reg_bitmask = 8 << (vrc5477_irq % 8 * 4);150150-151151- /* we assert that the interrupt is enabled (perhaps over-zealous) */152152- db_assert( (reg_value & reg_bitmask) != 0);153153- ddb_out32(reg_index, reg_value & ~reg_bitmask);154154-}
-136
arch/mips/ddb5xxx/ddb5477/kgdb_io.c
···11-/*22- * kgdb io functions for DDB5477. We use the second serial port (upper one).33- *44- * Copyright (C) 2001 MontaVista Software Inc.55- * Author: jsun@mvista.com or jsun@junsun.net66- *77- * This program is free software; you can redistribute it and/or modify it88- * under the terms of the GNU General Public License as published by the99- * Free Software Foundation; either version 2 of the License, or (at your1010- * option) any later version.1111- *1212- */1313-1414-/* ======================= CONFIG ======================== */1515-1616-/* [jsun] we use the second serial port for kdb */1717-#define BASE 0xbfa042401818-#define MAX_BAUD 1152001919-2020-/* distance in bytes between two serial registers */2121-#define REG_OFFSET 82222-2323-/*2424- * 0 - kgdb does serial init2525- * 1 - kgdb skip serial init2626- */2727-static int remoteDebugInitialized = 0;2828-2929-/*3030- * the default baud rate *if* kgdb does serial init3131- */3232-#define BAUD_DEFAULT UART16550_BAUD_384003333-3434-/* ======================= END OF CONFIG ======================== */3535-3636-typedef unsigned char uint8;3737-typedef unsigned int uint32;3838-3939-#define UART16550_BAUD_2400 24004040-#define UART16550_BAUD_4800 48004141-#define UART16550_BAUD_9600 96004242-#define UART16550_BAUD_19200 192004343-#define UART16550_BAUD_38400 384004444-#define UART16550_BAUD_57600 576004545-#define UART16550_BAUD_115200 1152004646-4747-#define UART16550_PARITY_NONE 04848-#define UART16550_PARITY_ODD 0x084949-#define UART16550_PARITY_EVEN 0x185050-#define UART16550_PARITY_MARK 0x285151-#define UART16550_PARITY_SPACE 0x385252-5353-#define UART16550_DATA_5BIT 0x05454-#define UART16550_DATA_6BIT 0x15555-#define UART16550_DATA_7BIT 0x25656-#define UART16550_DATA_8BIT 0x35757-5858-#define UART16550_STOP_1BIT 0x05959-#define UART16550_STOP_2BIT 0x46060-6161-/* register offset */6262-#define OFS_RCV_BUFFER 06363-#define OFS_TRANS_HOLD 06464-#define OFS_SEND_BUFFER 06565-#define OFS_INTR_ENABLE (1*REG_OFFSET)6666-#define OFS_INTR_ID (2*REG_OFFSET)6767-#define OFS_DATA_FORMAT (3*REG_OFFSET)6868-#define OFS_LINE_CONTROL (3*REG_OFFSET)6969-#define OFS_MODEM_CONTROL (4*REG_OFFSET)7070-#define OFS_RS232_OUTPUT (4*REG_OFFSET)7171-#define OFS_LINE_STATUS (5*REG_OFFSET)7272-#define OFS_MODEM_STATUS (6*REG_OFFSET)7373-#define OFS_RS232_INPUT (6*REG_OFFSET)7474-#define OFS_SCRATCH_PAD (7*REG_OFFSET)7575-7676-#define OFS_DIVISOR_LSB (0*REG_OFFSET)7777-#define OFS_DIVISOR_MSB (1*REG_OFFSET)7878-7979-8080-/* memory-mapped read/write of the port */8181-#define UART16550_READ(y) (*((volatile uint8*)(BASE + y)))8282-#define UART16550_WRITE(y, z) ((*((volatile uint8*)(BASE + y))) = z)8383-8484-void debugInit(uint32 baud, uint8 data, uint8 parity, uint8 stop)8585-{8686- /* disable interrupts */8787- UART16550_WRITE(OFS_INTR_ENABLE, 0);8888-8989- /* set up baud rate */9090- {9191- uint32 divisor;9292-9393- /* set DIAB bit */9494- UART16550_WRITE(OFS_LINE_CONTROL, 0x80);9595-9696- /* set divisor */9797- divisor = MAX_BAUD / baud;9898- UART16550_WRITE(OFS_DIVISOR_LSB, divisor & 0xff);9999- UART16550_WRITE(OFS_DIVISOR_MSB, (divisor & 0xff00) >> 8);100100-101101- /* clear DIAB bit */102102- UART16550_WRITE(OFS_LINE_CONTROL, 0x0);103103- }104104-105105- /* set data format */106106- UART16550_WRITE(OFS_DATA_FORMAT, data | parity | stop);107107-}108108-109109-110110-uint8 getDebugChar(void)111111-{112112- if (!remoteDebugInitialized) {113113- remoteDebugInitialized = 1;114114- debugInit(BAUD_DEFAULT,115115- UART16550_DATA_8BIT,116116- UART16550_PARITY_NONE, UART16550_STOP_1BIT);117117- }118118-119119- while ((UART16550_READ(OFS_LINE_STATUS) & 0x1) == 0);120120- return UART16550_READ(OFS_RCV_BUFFER);121121-}122122-123123-124124-int putDebugChar(uint8 byte)125125-{126126- if (!remoteDebugInitialized) {127127- remoteDebugInitialized = 1;128128- debugInit(BAUD_DEFAULT,129129- UART16550_DATA_8BIT,130130- UART16550_PARITY_NONE, UART16550_STOP_1BIT);131131- }132132-133133- while ((UART16550_READ(OFS_LINE_STATUS) & 0x20) == 0);134134- UART16550_WRITE(OFS_SEND_BUFFER, byte);135135- return 1;136136-}
-96
arch/mips/ddb5xxx/ddb5477/lcd44780.c
···11-/*22- * lcd44780.c33- * Simple "driver" for a memory-mapped 44780-style LCD display.44- *55- * Copyright 2001 Bradley D. LaRonde <brad@ltc.com>66- *77- * This program is free software; you can redistribute it and/or modify it88- * under the terms of the GNU General Public License as published by the99- * Free Software Foundation; either version 2 of the License, or (at your1010- * option) any later version.1111- *1212- */1313-1414-#define LCD44780_COMMAND ((volatile unsigned char *)0xbe020000)1515-#define LCD44780_DATA ((volatile unsigned char *)0xbe020001)1616-1717-#define LCD44780_4BIT_1LINE 0x201818-#define LCD44780_4BIT_2LINE 0x281919-#define LCD44780_8BIT_1LINE 0x302020-#define LCD44780_8BIT_2LINE 0x382121-#define LCD44780_MODE_DEC 0x042222-#define LCD44780_MODE_DEC_SHIFT 0x052323-#define LCD44780_MODE_INC 0x062424-#define LCD44780_MODE_INC_SHIFT 0x072525-#define LCD44780_SCROLL_LEFT 0x182626-#define LCD44780_SCROLL_RIGHT 0x1e2727-#define LCD44780_CURSOR_UNDERLINE 0x0e2828-#define LCD44780_CURSOR_BLOCK 0x0f2929-#define LCD44780_CURSOR_OFF 0x0c3030-#define LCD44780_CLEAR 0x013131-#define LCD44780_BLANK 0x083232-#define LCD44780_RESTORE 0x0c // Same as CURSOR_OFF3333-#define LCD44780_HOME 0x023434-#define LCD44780_LEFT 0x103535-#define LCD44780_RIGHT 0x143636-3737-void lcd44780_wait(void)3838-{3939- int i, j;4040- for(i=0; i < 400; i++)4141- for(j=0; j < 10000; j++);4242-}4343-4444-void lcd44780_command(unsigned char c)4545-{4646- *LCD44780_COMMAND = c;4747- lcd44780_wait();4848-}4949-5050-void lcd44780_data(unsigned char c)5151-{5252- *LCD44780_DATA = c;5353- lcd44780_wait();5454-}5555-5656-void lcd44780_puts(const char* s)5757-{5858- int j;5959- int pos = 0;6060-6161- lcd44780_command(LCD44780_CLEAR);6262- while(*s) {6363- lcd44780_data(*s);6464- s++;6565- pos++;6666- if (pos == 8) {6767- /* We must write 32 of spaces to get cursor to 2nd line */6868- for (j=0; j<32; j++) {6969- lcd44780_data(' ');7070- }7171- }7272- if (pos == 16) {7373- /* We have filled all 16 character positions, so stop7474- outputing data */7575- break;7676- }7777- }7878-#ifdef LCD44780_PUTS_PAUSE7979- {8080- int i;8181-8282- for(i = 1; i < 2000; i++)8383- lcd44780_wait();8484- }8585-#endif8686-}8787-8888-void lcd44780_init(void)8989-{9090- // The display on the RockHopper is physically a single9191- // 16 char line (two 8 char lines concatenated). bdl9292- lcd44780_command(LCD44780_8BIT_2LINE);9393- lcd44780_command(LCD44780_MODE_INC);9494- lcd44780_command(LCD44780_CURSOR_BLOCK);9595- lcd44780_command(LCD44780_CLEAR);9696-}
-15
arch/mips/ddb5xxx/ddb5477/lcd44780.h
···11-/*22- * lcd44780.h33- * Simple "driver" for a memory-mapped 44780-style LCD display.44- *55- * Copyright 2001 Bradley D. LaRonde <brad@ltc.com>66- *77- * This program is free software; you can redistribute it and/or modify it88- * under the terms of the GNU General Public License as published by the99- * Free Software Foundation; either version 2 of the License, or (at your1010- * option) any later version.1111- *1212- */1313-1414-void lcd44780_puts(const char* s);1515-void lcd44780_init(void);
-399
arch/mips/ddb5xxx/ddb5477/setup.c
···11-/*22- *33- * Copyright 2001 MontaVista Software Inc.44- * Author: jsun@mvista.com or jsun@junsun.net55- *66- * Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org)77- *88- * arch/mips/ddb5xxx/ddb5477/setup.c99- * Setup file for DDB5477.1010- *1111- * This program is free software; you can redistribute it and/or modify it1212- * under the terms of the GNU General Public License as published by the1313- * Free Software Foundation; either version 2 of the License, or (at your1414- * option) any later version.1515- */1616-#include <linux/init.h>1717-#include <linux/kernel.h>1818-#include <linux/types.h>1919-#include <linux/sched.h>2020-#include <linux/pci.h>2121-#include <linux/ide.h>2222-#include <linux/irq.h>2323-#include <linux/fs.h>2424-#include <linux/ioport.h>2525-#include <linux/param.h> /* for HZ */2626-#include <linux/major.h>2727-#include <linux/kdev_t.h>2828-#include <linux/root_dev.h>2929-#include <linux/pm.h>3030-3131-#include <asm/cpu.h>3232-#include <asm/bootinfo.h>3333-#include <asm/addrspace.h>3434-#include <asm/time.h>3535-#include <asm/bcache.h>3636-#include <asm/irq.h>3737-#include <asm/reboot.h>3838-#include <asm/gdb-stub.h>3939-#include <asm/traps.h>4040-#include <asm/debug.h>4141-4242-#include <asm/ddb5xxx/ddb5xxx.h>4343-4444-#include "lcd44780.h"4545-4646-4747-#define USE_CPU_COUNTER_TIMER /* whether we use cpu counter */4848-4949-#define SP_TIMER_BASE DDB_SPT1CTRL_L5050-#define SP_TIMER_IRQ VRC5477_IRQ_SPT15151-5252-static int bus_frequency = CONFIG_DDB5477_BUS_FREQUENCY*1000;5353-5454-static void ddb_machine_restart(char *command)5555-{5656- static void (*back_to_prom) (void) = (void (*)(void)) 0xbfc00000;5757-5858- u32 t;5959-6060- /* PCI cold reset */6161- ddb_pci_reset_bus();6262-6363- /* CPU cold reset */6464- t = ddb_in32(DDB_CPUSTAT);6565- db_assert((t&1));6666- ddb_out32(DDB_CPUSTAT, t);6767-6868- /* Call the PROM */6969- back_to_prom();7070-}7171-7272-static void ddb_machine_halt(void)7373-{7474- printk("DDB Vrc-5477 halted.\n");7575- while (1);7676-}7777-7878-static void ddb_machine_power_off(void)7979-{8080- printk("DDB Vrc-5477 halted. Please turn off the power.\n");8181- while (1);8282-}8383-8484-extern void rtc_ds1386_init(unsigned long base);8585-8686-static unsigned int __init detect_bus_frequency(unsigned long rtc_base)8787-{8888- unsigned int freq;8989- unsigned char c;9090- unsigned int t1, t2;9191- unsigned i;9292-9393- ddb_out32(SP_TIMER_BASE, 0xffffffff);9494- ddb_out32(SP_TIMER_BASE+4, 0x1);9595- ddb_out32(SP_TIMER_BASE+8, 0xffffffff);9696-9797- /* check if rtc is running */9898- c= *(volatile unsigned char*)rtc_base;9999- for(i=0; (c == *(volatile unsigned char*)rtc_base) && (i<100000000); i++);100100- if (c == *(volatile unsigned char*)rtc_base) {101101- printk("Failed to detect bus frequency. Use default 83.3MHz.\n");102102- return 83333000;103103- }104104-105105- c= *(volatile unsigned char*)rtc_base;106106- while (c == *(volatile unsigned char*)rtc_base);107107- /* we are now at the turn of 1/100th second, if no error. */108108- t1 = ddb_in32(SP_TIMER_BASE+8);109109-110110- for (i=0; i< 10; i++) {111111- c= *(volatile unsigned char*)rtc_base;112112- while (c == *(volatile unsigned char*)rtc_base);113113- /* we are now at the turn of another 1/100th second */114114- t2 = ddb_in32(SP_TIMER_BASE+8);115115- }116116-117117- ddb_out32(SP_TIMER_BASE+4, 0x0); /* disable it again */118118-119119- freq = (t1 - t2)*10;120120- printk("DDB bus frequency detection : %u \n", freq);121121- return freq;122122-}123123-124124-static void __init ddb_time_init(void)125125-{126126- unsigned long rtc_base;127127- unsigned int i;128128-129129- /* we have ds1396 RTC chip */130130- if (mips_machtype == MACH_NEC_ROCKHOPPER131131- || mips_machtype == MACH_NEC_ROCKHOPPERII) {132132- rtc_base = KSEG1ADDR(DDB_LCS2_BASE);133133- } else {134134- rtc_base = KSEG1ADDR(DDB_LCS1_BASE);135135- }136136- rtc_ds1386_init(rtc_base);137137-138138- /* do we need to do run-time detection of bus speed? */139139- if (bus_frequency == 0) {140140- bus_frequency = detect_bus_frequency(rtc_base);141141- }142142-143143- /* mips_hpt_frequency is 1/2 of the cpu core freq */144144- i = (read_c0_config() >> 28 ) & 7;145145- if ((current_cpu_data.cputype == CPU_R5432) && (i == 3))146146- i = 4;147147- mips_hpt_frequency = bus_frequency*(i+4)/4;148148-}149149-150150-void __init plat_timer_setup(struct irqaction *irq)151151-{152152-#if defined(USE_CPU_COUNTER_TIMER)153153-154154- /* we are using the cpu counter for timer interrupts */155155- setup_irq(CPU_IRQ_BASE + 7, irq);156156-157157-#else158158-159159- /* if we use Special purpose timer 1 */160160- ddb_out32(SP_TIMER_BASE, bus_frequency/HZ);161161- ddb_out32(SP_TIMER_BASE+4, 0x1);162162- setup_irq(SP_TIMER_IRQ, irq);163163-164164-#endif165165-}166166-167167-static void ddb5477_board_init(void);168168-169169-extern struct pci_controller ddb5477_ext_controller;170170-extern struct pci_controller ddb5477_io_controller;171171-172172-void __init plat_mem_setup(void)173173-{174174- /* initialize board - we don't trust the loader */175175- ddb5477_board_init();176176-177177- set_io_port_base(KSEG1ADDR(DDB_PCI_IO_BASE));178178-179179- board_time_init = ddb_time_init;180180-181181- _machine_restart = ddb_machine_restart;182182- _machine_halt = ddb_machine_halt;183183- pm_power_off = ddb_machine_power_off;184184-185185- /* setup resource limits */186186- ioport_resource.end = DDB_PCI0_IO_SIZE + DDB_PCI1_IO_SIZE - 1;187187- iomem_resource.end = 0xffffffff;188188-189189- /* Reboot on panic */190190- panic_timeout = 180;191191-192192- register_pci_controller (&ddb5477_ext_controller);193193- register_pci_controller (&ddb5477_io_controller);194194-}195195-196196-static void __init ddb5477_board_init(void)197197-{198198- /* ----------- setup PDARs ------------ */199199-200200- /* SDRAM should have been set */201201- db_assert(ddb_in32(DDB_SDRAM0) ==202202- ddb_calc_pdar(DDB_SDRAM_BASE, board_ram_size, 32, 0, 1));203203-204204- /* SDRAM1 should be turned off. What is this for anyway ? */205205- db_assert( (ddb_in32(DDB_SDRAM1) & 0xf) == 0);206206-207207- /* Setup local bus. */208208-209209- /* Flash U12 PDAR and timing. */210210- ddb_set_pdar(DDB_LCS0, DDB_LCS0_BASE, DDB_LCS0_SIZE, 16, 0, 0);211211- ddb_out32(DDB_LCST0, 0x00090842);212212-213213- /* We need to setup LCS1 and LCS2 differently based on the214214- board_version */215215- if (mips_machtype == MACH_NEC_ROCKHOPPER) {216216- /* Flash U13 PDAR and timing. */217217- ddb_set_pdar(DDB_LCS1, DDB_LCS1_BASE, DDB_LCS1_SIZE, 16, 0, 0);218218- ddb_out32(DDB_LCST1, 0x00090842);219219-220220- /* EPLD (NVRAM, switch, LCD, and mezzanie). */221221- ddb_set_pdar(DDB_LCS2, DDB_LCS2_BASE, DDB_LCS2_SIZE, 8, 0, 0);222222- } else {223223- /* misc */224224- ddb_set_pdar(DDB_LCS1, DDB_LCS1_BASE, DDB_LCS1_SIZE, 8, 0, 0);225225- /* mezzanie (?) */226226- ddb_set_pdar(DDB_LCS2, DDB_LCS2_BASE, DDB_LCS2_SIZE, 16, 0, 0);227227- }228228-229229- /* verify VRC5477 base addr */230230- db_assert(ddb_in32(DDB_VRC5477) ==231231- ddb_calc_pdar(DDB_VRC5477_BASE, DDB_VRC5477_SIZE, 32, 0, 1));232232-233233- /* verify BOOT ROM addr */234234- db_assert(ddb_in32(DDB_BOOTCS) ==235235- ddb_calc_pdar(DDB_BOOTCS_BASE, DDB_BOOTCS_SIZE, 8, 0, 0));236236-237237- /* setup PCI windows - window0 for MEM/config, window1 for IO */238238- ddb_set_pdar(DDB_PCIW0, DDB_PCI0_MEM_BASE, DDB_PCI0_MEM_SIZE, 32, 0, 1);239239- ddb_set_pdar(DDB_PCIW1, DDB_PCI0_IO_BASE, DDB_PCI0_IO_SIZE, 32, 0, 1);240240- ddb_set_pdar(DDB_IOPCIW0, DDB_PCI1_MEM_BASE, DDB_PCI1_MEM_SIZE, 32, 0, 1);241241- ddb_set_pdar(DDB_IOPCIW1, DDB_PCI1_IO_BASE, DDB_PCI1_IO_SIZE, 32, 0, 1);242242-243243- /* ------------ reset PCI bus and BARs ----------------- */244244- ddb_pci_reset_bus();245245-246246- ddb_out32(DDB_BARM010, 0x00000008);247247- ddb_out32(DDB_BARM011, 0x00000008);248248-249249- ddb_out32(DDB_BARC0, 0xffffffff);250250- ddb_out32(DDB_BARM230, 0xffffffff);251251- ddb_out32(DDB_BAR00, 0xffffffff);252252- ddb_out32(DDB_BAR10, 0xffffffff);253253- ddb_out32(DDB_BAR20, 0xffffffff);254254- ddb_out32(DDB_BAR30, 0xffffffff);255255- ddb_out32(DDB_BAR40, 0xffffffff);256256- ddb_out32(DDB_BAR50, 0xffffffff);257257- ddb_out32(DDB_BARB0, 0xffffffff);258258-259259- ddb_out32(DDB_BARC1, 0xffffffff);260260- ddb_out32(DDB_BARM231, 0xffffffff);261261- ddb_out32(DDB_BAR01, 0xffffffff);262262- ddb_out32(DDB_BAR11, 0xffffffff);263263- ddb_out32(DDB_BAR21, 0xffffffff);264264- ddb_out32(DDB_BAR31, 0xffffffff);265265- ddb_out32(DDB_BAR41, 0xffffffff);266266- ddb_out32(DDB_BAR51, 0xffffffff);267267- ddb_out32(DDB_BARB1, 0xffffffff);268268-269269- /*270270- * We use pci master register 0 for memory space / config space271271- * And we use register 1 for IO space.272272- * Note that for memory space, we bump up the pci base address273273- * so that we have 1:1 mapping between PCI memory and cpu physical.274274- * For PCI IO space, it starts from 0 in PCI IO space but with275275- * DDB_xx_IO_BASE in CPU physical address space.276276- */277277- ddb_set_pmr(DDB_PCIINIT00, DDB_PCICMD_MEM, DDB_PCI0_MEM_BASE,278278- DDB_PCI_ACCESS_32);279279- ddb_set_pmr(DDB_PCIINIT10, DDB_PCICMD_IO, 0, DDB_PCI_ACCESS_32);280280-281281- ddb_set_pmr(DDB_PCIINIT01, DDB_PCICMD_MEM, DDB_PCI1_MEM_BASE,282282- DDB_PCI_ACCESS_32);283283- ddb_set_pmr(DDB_PCIINIT11, DDB_PCICMD_IO, DDB_PCI0_IO_SIZE,284284- DDB_PCI_ACCESS_32);285285-286286-287287- /* PCI cross window should be set properly */288288- ddb_set_pdar(DDB_BARP00, DDB_PCI1_MEM_BASE, DDB_PCI1_MEM_SIZE, 32, 0, 1);289289- ddb_set_pdar(DDB_BARP10, DDB_PCI1_IO_BASE, DDB_PCI1_IO_SIZE, 32, 0, 1);290290- ddb_set_pdar(DDB_BARP01, DDB_PCI0_MEM_BASE, DDB_PCI0_MEM_SIZE, 32, 0, 1);291291- ddb_set_pdar(DDB_BARP11, DDB_PCI0_IO_BASE, DDB_PCI0_IO_SIZE, 32, 0, 1);292292-293293- if (mips_machtype == MACH_NEC_ROCKHOPPER294294- || mips_machtype == MACH_NEC_ROCKHOPPERII) {295295- /* Disable bus diagnostics. */296296- ddb_out32(DDB_PCICTL0_L, 0);297297- ddb_out32(DDB_PCICTL0_H, 0);298298- ddb_out32(DDB_PCICTL1_L, 0);299299- ddb_out32(DDB_PCICTL1_H, 0);300300- }301301-302302- if (mips_machtype == MACH_NEC_ROCKHOPPER) {303303- u16 vid;304304- struct pci_bus bus;305305- struct pci_dev dev_m1533;306306- extern struct pci_ops ddb5477_ext_pci_ops;307307-308308- bus.parent = NULL; /* we scan the top level only */309309- bus.ops = &ddb5477_ext_pci_ops;310310- dev_m1533.bus = &bus;311311- dev_m1533.sysdata = NULL;312312- dev_m1533.devfn = 7*8; // slot 7: M1533 SouthBridge.313313- pci_read_config_word(&dev_m1533, 0, &vid);314314- if (vid == PCI_VENDOR_ID_AL) {315315- printk("Changing mips_machtype to MACH_NEC_ROCKHOPPERII\n");316316- mips_machtype = MACH_NEC_ROCKHOPPERII;317317- }318318- }319319-320320- /* enable USB input buffers */321321- ddb_out32(DDB_PIBMISC, 0x00000007);322322-323323- /* For dual-function pins, make them all non-GPIO */324324- ddb_out32(DDB_GIUFUNSEL, 0x0);325325- // ddb_out32(DDB_GIUFUNSEL, 0xfe0fcfff); /* NEC recommanded value */326326-327327- if (mips_machtype == MACH_NEC_ROCKHOPPERII) {328328-329329- /* enable IDE controller on Ali chip (south bridge) */330330- u8 temp8;331331- struct pci_bus bus;332332- struct pci_dev dev_m1533;333333- struct pci_dev dev_m5229;334334- extern struct pci_ops ddb5477_ext_pci_ops;335335-336336- /* Setup M1535 registers */337337- bus.parent = NULL; /* we scan the top level only */338338- bus.ops = &ddb5477_ext_pci_ops;339339- dev_m1533.bus = &bus;340340- dev_m1533.sysdata = NULL;341341- dev_m1533.devfn = 7*8; // slot 7: M1533 SouthBridge.342342-343343- /* setup IDE controller344344- * enable IDE controller (bit 6 - 1)345345- * IDE IDSEL to be addr:A15 (bit 4:5 - 11)346346- * disable IDE ATA Secondary Bus Signal Pad Control (bit 3 - 0)347347- * enable IDE ATA Primary Bus Signal Pad Control (bit 2 - 1)348348- */349349- pci_write_config_byte(&dev_m1533, 0x58, 0x74);350350-351351- /*352352- * positive decode (bit6 -0)353353- * enable IDE controler interrupt (bit 4 -1)354354- * setup SIRQ to point to IRQ 14 (bit 3:0 - 1101)355355- */356356- pci_write_config_byte(&dev_m1533, 0x44, 0x1d);357357-358358- /* Setup M5229 registers */359359- dev_m5229.bus = &bus;360360- dev_m5229.sysdata = NULL;361361- dev_m5229.devfn = 4*8; // slot 4 (AD15): M5229 IDE362362-363363- /*364364- * enable IDE in the M5229 config register 0x50 (bit 0 - 1)365365- * M5229 IDSEL is addr:15; see above setting366366- */367367- pci_read_config_byte(&dev_m5229, 0x50, &temp8);368368- pci_write_config_byte(&dev_m5229, 0x50, temp8 | 0x1);369369-370370- /*371371- * enable bus master (bit 2) and IO decoding (bit 0)372372- */373373- pci_read_config_byte(&dev_m5229, 0x04, &temp8);374374- pci_write_config_byte(&dev_m5229, 0x04, temp8 | 0x5);375375-376376- /*377377- * enable native, copied from arch/ppc/k2boot/head.S378378- * TODO - need volatile, need to be portable379379- */380380- pci_write_config_byte(&dev_m5229, 0x09, 0xef);381381-382382- /* Set Primary Channel Command Block Timing */383383- pci_write_config_byte(&dev_m5229, 0x59, 0x31);384384-385385- /*386386- * Enable primary channel 40-pin cable387387- * M5229 register 0x4a (bit 0)388388- */389389- pci_read_config_byte(&dev_m5229, 0x4a, &temp8);390390- pci_write_config_byte(&dev_m5229, 0x4a, temp8 | 0x1);391391- }392392-393393- if (mips_machtype == MACH_NEC_ROCKHOPPER394394- || mips_machtype == MACH_NEC_ROCKHOPPERII) {395395- printk("lcd44780: initializing\n");396396- lcd44780_init();397397- lcd44780_puts("MontaVista Linux");398398- }399399-}
-1
arch/mips/defconfig
···3535# CONFIG_MIPS_XXS1500 is not set3636# CONFIG_PNX8550_JBS is not set3737# CONFIG_PNX8550_STB810 is not set3838-# CONFIG_DDB5477 is not set3938# CONFIG_MACH_VR41XX is not set4039# CONFIG_PMC_YOSEMITE is not set4140# CONFIG_QEMU is not set
-1
arch/mips/pci/Makefile
···1919# These are still pretty much in the old state, watch, go blind.2020#2121obj-$(CONFIG_BASLER_EXCITE) += ops-titan.o pci-excite.o fixup-excite.o2222-obj-$(CONFIG_DDB5477) += fixup-ddb5477.o pci-ddb5477.o ops-ddb5477.o2322obj-$(CONFIG_MIPS_ATLAS) += fixup-atlas.o2423obj-$(CONFIG_MIPS_COBALT) += fixup-cobalt.o2524obj-$(CONFIG_SOC_AU1500) += fixup-au1000.o ops-au1000.o
-78
arch/mips/pci/fixup-ddb5477.c
···11-/*22- *33- * BRIEF MODULE DESCRIPTION44- * Board specific pci fixups.55- *66- * Copyright 2001, 2002, 2003 MontaVista Software Inc.77- * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net88- *99- * This program is free software; you can redistribute it and/or modify it1010- * under the terms of the GNU General Public License as published by the1111- * Free Software Foundation; either version 2 of the License, or (at your1212- * option) any later version.1313- *1414- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED1515- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF1616- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN1717- * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,1818- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT1919- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF2020- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON2121- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT2222- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF2323- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.2424- *2525- * You should have received a copy of the GNU General Public License along2626- * with this program; if not, write to the Free Software Foundation, Inc.,2727- * 675 Mass Ave, Cambridge, MA 02139, USA.2828- */2929-3030-#include <linux/types.h>3131-#include <linux/pci.h>3232-#include <linux/kernel.h>3333-#include <linux/init.h>3434-3535-static void ddb5477_fixup(struct pci_dev *dev)3636-{3737- u8 old;3838-3939- printk(KERN_NOTICE "Enabling ALI M1533/35 PS2 keyboard/mouse.\n");4040- pci_read_config_byte(dev, 0x41, &old);4141- pci_write_config_byte(dev, 0x41, old | 0xd0);4242-}4343-4444-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533,4545- ddb5477_fixup);4646-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1535,4747- ddb5477_fixup);4848-4949-/*5050- * Fixup baseboard AMD chip so that tx does not underflow.5151- * bcr_18 |= 0x08005252- * This sets NOUFLO bit which makes tx not start until whole pkt5353- * is fetched to the chip.5454- */5555-#define PCNET32_WIO_RDP 0x105656-#define PCNET32_WIO_RAP 0x125757-#define PCNET32_WIO_RESET 0x145858-#define PCNET32_WIO_BDP 0x165959-6060-static void ddb5477_amd_lance_fixup(struct pci_dev *dev)6161-{6262- unsigned long ioaddr;6363- u16 temp;6464-6565- ioaddr = pci_resource_start(dev, 0);6666-6767- inw(ioaddr + PCNET32_WIO_RESET); /* reset chip */6868-6969- /* bcr_18 |= 0x0800 */7070- outw(18, ioaddr + PCNET32_WIO_RAP);7171- temp = inw(ioaddr + PCNET32_WIO_BDP);7272- temp |= 0x0800;7373- outw(18, ioaddr + PCNET32_WIO_RAP);7474- outw(temp, ioaddr + PCNET32_WIO_BDP);7575-}7676-7777-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_LANCE,7878- ddb5477_amd_lance_fixup);
-278
arch/mips/pci/ops-ddb5477.c
···11-/***********************************************************************22- * Copyright 2001 MontaVista Software Inc.33- * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net44- *55- * arch/mips/ddb5xxx/ddb5477/pci_ops.c66- * Define the pci_ops for DB5477.77- *88- * Much of the code is derived from the original DDB5074 port by99- * Geert Uytterhoeven <geert@sonycom.com>1010- *1111- * This program is free software; you can redistribute it and/or modify it1212- * under the terms of the GNU General Public License as published by the1313- * Free Software Foundation; either version 2 of the License, or (at your1414- * option) any later version.1515- ***********************************************************************1616- */1717-1818-/*1919- * DDB5477 has two PCI channels, external PCI and IOPIC (internal)2020- * Therefore we provide two sets of pci_ops.2121- */2222-#include <linux/pci.h>2323-#include <linux/kernel.h>2424-#include <linux/types.h>2525-2626-#include <asm/addrspace.h>2727-#include <asm/debug.h>2828-2929-#include <asm/ddb5xxx/ddb5xxx.h>3030-3131-/*3232- * config_swap structure records what set of pdar/pmr are used3333- * to access pci config space. It also provides a place hold the3434- * original values for future restoring.3535- */3636-struct pci_config_swap {3737- u32 pdar;3838- u32 pmr;3939- u32 config_base;4040- u32 config_size;4141- u32 pdar_backup;4242- u32 pmr_backup;4343-};4444-4545-/*4646- * On DDB5477, we have two sets of swap registers, for ext PCI and IOPCI.4747- */4848-struct pci_config_swap ext_pci_swap = {4949- DDB_PCIW0,5050- DDB_PCIINIT00,5151- DDB_PCI0_CONFIG_BASE,5252- DDB_PCI0_CONFIG_SIZE5353-};5454-struct pci_config_swap io_pci_swap = {5555- DDB_IOPCIW0,5656- DDB_PCIINIT01,5757- DDB_PCI1_CONFIG_BASE,5858- DDB_PCI1_CONFIG_SIZE5959-};6060-6161-6262-/*6363- * access config space6464- */6565-static inline u32 ddb_access_config_base(struct pci_config_swap *swap, u32 bus, /* 0 means top level bus */6666- u32 slot_num)6767-{6868- u32 pci_addr = 0;6969- u32 pciinit_offset = 0;7070- u32 virt_addr;7171- u32 option;7272-7373- /* minimum pdar (window) size is 2MB */7474- db_assert(swap->config_size >= (2 << 20));7575-7676- db_assert(slot_num < (1 << 5));7777- db_assert(bus < (1 << 8));7878-7979- /* backup registers */8080- swap->pdar_backup = ddb_in32(swap->pdar);8181- swap->pmr_backup = ddb_in32(swap->pmr);8282-8383- /* set the pdar (pci window) register */8484- ddb_set_pdar(swap->pdar, swap->config_base, swap->config_size, 32, /* 32 bit wide */8585- 0, /* not on local memory bus */8686- 0); /* not visible from PCI bus (N/A) */8787-8888- /*8989- * calcuate the absolute pci config addr;9090- * according to the spec, we start scanning from adr:11 (0x800)9191- */9292- if (bus == 0) {9393- /* type 0 config */9494- pci_addr = 0x800 << slot_num;9595- } else {9696- /* type 1 config */9797- pci_addr = (bus << 16) | (slot_num << 11);9898- }9999-100100- /*101101- * if pci_addr is less than pci config window size, we set102102- * pciinit_offset to 0 and adjust the virt_address.103103- * Otherwise we will try to adjust pciinit_offset.104104- */105105- if (pci_addr < swap->config_size) {106106- virt_addr = KSEG1ADDR(swap->config_base + pci_addr);107107- pciinit_offset = 0;108108- } else {109109- db_assert((pci_addr & (swap->config_size - 1)) == 0);110110- virt_addr = KSEG1ADDR(swap->config_base);111111- pciinit_offset = pci_addr;112112- }113113-114114- /* set the pmr register */115115- option = DDB_PCI_ACCESS_32;116116- if (bus != 0)117117- option |= DDB_PCI_CFGTYPE1;118118- ddb_set_pmr(swap->pmr, DDB_PCICMD_CFG, pciinit_offset, option);119119-120120- return virt_addr;121121-}122122-123123-static inline void ddb_close_config_base(struct pci_config_swap *swap)124124-{125125- ddb_out32(swap->pdar, swap->pdar_backup);126126- ddb_out32(swap->pmr, swap->pmr_backup);127127-}128128-129129-static int read_config_dword(struct pci_config_swap *swap,130130- struct pci_bus *bus, u32 devfn, u32 where,131131- u32 * val)132132-{133133- u32 bus_num, slot_num, func_num;134134- u32 base;135135-136136- db_assert((where & 3) == 0);137137- db_assert(where < (1 << 8));138138-139139- /* check if the bus is top-level */140140- if (bus->parent != NULL) {141141- bus_num = bus->number;142142- db_assert(bus_num != 0);143143- } else {144144- bus_num = 0;145145- }146146-147147- slot_num = PCI_SLOT(devfn);148148- func_num = PCI_FUNC(devfn);149149- base = ddb_access_config_base(swap, bus_num, slot_num);150150- *val = *(volatile u32 *) (base + (func_num << 8) + where);151151- ddb_close_config_base(swap);152152- return PCIBIOS_SUCCESSFUL;153153-}154154-155155-static int read_config_word(struct pci_config_swap *swap,156156- struct pci_bus *bus, u32 devfn, u32 where,157157- u16 * val)158158-{159159- int status;160160- u32 result;161161-162162- db_assert((where & 1) == 0);163163-164164- status = read_config_dword(swap, bus, devfn, where & ~3, &result);165165- if (where & 2)166166- result >>= 16;167167- *val = result & 0xffff;168168- return status;169169-}170170-171171-static int read_config_byte(struct pci_config_swap *swap,172172- struct pci_bus *bus, u32 devfn, u32 where,173173- u8 * val)174174-{175175- int status;176176- u32 result;177177-178178- status = read_config_dword(swap, bus, devfn, where & ~3, &result);179179- if (where & 1)180180- result >>= 8;181181- if (where & 2)182182- result >>= 16;183183- *val = result & 0xff;184184-185185- return status;186186-}187187-188188-static int write_config_dword(struct pci_config_swap *swap,189189- struct pci_bus *bus, u32 devfn, u32 where,190190- u32 val)191191-{192192- u32 bus_num, slot_num, func_num;193193- u32 base;194194-195195- db_assert((where & 3) == 0);196196- db_assert(where < (1 << 8));197197-198198- /* check if the bus is top-level */199199- if (bus->parent != NULL) {200200- bus_num = bus->number;201201- db_assert(bus_num != 0);202202- } else {203203- bus_num = 0;204204- }205205-206206- slot_num = PCI_SLOT(devfn);207207- func_num = PCI_FUNC(devfn);208208- base = ddb_access_config_base(swap, bus_num, slot_num);209209- *(volatile u32 *) (base + (func_num << 8) + where) = val;210210- ddb_close_config_base(swap);211211- return PCIBIOS_SUCCESSFUL;212212-}213213-214214-static int write_config_word(struct pci_config_swap *swap,215215- struct pci_bus *bus, u32 devfn, u32 where, u16 val)216216-{217217- int status, shift = 0;218218- u32 result;219219-220220- db_assert((where & 1) == 0);221221-222222- status = read_config_dword(swap, bus, devfn, where & ~3, &result);223223- if (status != PCIBIOS_SUCCESSFUL)224224- return status;225225-226226- if (where & 2)227227- shift += 16;228228- result &= ~(0xffff << shift);229229- result |= val << shift;230230- return write_config_dword(swap, bus, devfn, where & ~3, result);231231-}232232-233233-static int write_config_byte(struct pci_config_swap *swap,234234- struct pci_bus *bus, u32 devfn, u32 where, u8 val)235235-{236236- int status, shift = 0;237237- u32 result;238238-239239- status = read_config_dword(swap, bus, devfn, where & ~3, &result);240240- if (status != PCIBIOS_SUCCESSFUL)241241- return status;242242-243243- if (where & 2)244244- shift += 16;245245- if (where & 1)246246- shift += 8;247247- result &= ~(0xff << shift);248248- result |= val << shift;249249- return write_config_dword(swap, bus, devfn, where & ~3, result);250250-}251251-252252-#define MAKE_PCI_OPS(prefix, rw, pciswap, star) \253253-static int prefix##_##rw##_config(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 star val) \254254-{ \255255- if (size == 1) \256256- return rw##_config_byte(pciswap, bus, devfn, where, (u8 star)val); \257257- else if (size == 2) \258258- return rw##_config_word(pciswap, bus, devfn, where, (u16 star)val); \259259- /* Size must be 4 */ \260260- return rw##_config_dword(pciswap, bus, devfn, where, val); \261261-}262262-263263-MAKE_PCI_OPS(extpci, read, &ext_pci_swap, *)264264-MAKE_PCI_OPS(extpci, write, &ext_pci_swap,)265265-266266-MAKE_PCI_OPS(iopci, read, &io_pci_swap, *)267267-MAKE_PCI_OPS(iopci, write, &io_pci_swap,)268268-269269-struct pci_ops ddb5477_ext_pci_ops = {270270- .read = extpci_read_config,271271- .write = extpci_write_config272272-};273273-274274-275275-struct pci_ops ddb5477_io_pci_ops = {276276- .read = iopci_read_config,277277- .write = iopci_write_config278278-};
-207
arch/mips/pci/pci-ddb5477.c
···11-/*22- * PCI code for DDB5477.33- *44- * Copyright (C) 2001 MontaVista Software Inc.55- * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net66- *77- * Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org)88- *99- * This program is free software; you can redistribute it and/or modify it1010- * under the terms of the GNU General Public License as published by the1111- * Free Software Foundation; either version 2 of the License, or (at your1212- * option) any later version.1313- */1414-#include <linux/kernel.h>1515-#include <linux/init.h>1616-#include <linux/types.h>1717-#include <linux/pci.h>1818-1919-#include <asm/bootinfo.h>2020-#include <asm/debug.h>2121-2222-#include <asm/ddb5xxx/ddb5xxx.h>2323-2424-static struct resource extpci_io_resource = {2525- .start = DDB_PCI0_IO_BASE - DDB_PCI_IO_BASE + 0x4000,2626- .end = DDB_PCI0_IO_BASE - DDB_PCI_IO_BASE + DDB_PCI0_IO_SIZE - 1,2727- .name = "ext pci IO space",2828- .flags = IORESOURCE_IO2929-};3030-3131-static struct resource extpci_mem_resource = {3232- .start = DDB_PCI0_MEM_BASE + 0x100000,3333- .end = DDB_PCI0_MEM_BASE + DDB_PCI0_MEM_SIZE - 1,3434- .name = "ext pci memory space",3535- .flags = IORESOURCE_MEM3636-};3737-3838-static struct resource iopci_io_resource = {3939- .start = DDB_PCI1_IO_BASE - DDB_PCI_IO_BASE,4040- .end = DDB_PCI1_IO_BASE - DDB_PCI_IO_BASE + DDB_PCI1_IO_SIZE - 1,4141- .name = "io pci IO space",4242- .flags = IORESOURCE_IO4343-};4444-4545-static struct resource iopci_mem_resource = {4646- .start = DDB_PCI1_MEM_BASE,4747- .end = DDB_PCI1_MEM_BASE + DDB_PCI1_MEM_SIZE - 1,4848- .name = "ext pci memory space",4949- .flags = IORESOURCE_MEM5050-};5151-5252-extern struct pci_ops ddb5477_ext_pci_ops;5353-extern struct pci_ops ddb5477_io_pci_ops;5454-5555-struct pci_controller ddb5477_ext_controller = {5656- .pci_ops = &ddb5477_ext_pci_ops,5757- .io_resource = &extpci_io_resource,5858- .mem_resource = &extpci_mem_resource5959-};6060-6161-struct pci_controller ddb5477_io_controller = {6262- .pci_ops = &ddb5477_io_pci_ops,6363- .io_resource = &iopci_io_resource,6464- .mem_resource = &iopci_mem_resource6565-};6666-6767-6868-6969-/*7070- * we fix up irqs based on the slot number.7171- * The first entry is at AD:11.7272- * Fortunately this works because, although we have two pci buses,7373- * they all have different slot numbers (except for rockhopper slot 207474- * which is handled below).7575- *7676- */7777-7878-/*7979- * irq mapping : device -> pci int # -> vrc4377 irq# ,8080- * ddb5477 board manual page 4 and vrc5477 manual page 468181- */8282-8383-/*8484- * based on ddb5477 manual page 118585- */8686-#define MAX_SLOT_NUM 218787-static unsigned char irq_map[MAX_SLOT_NUM] = {8888- /* SLOT: 0, AD:11 */ 0xff,8989- /* SLOT: 1, AD:12 */ 0xff,9090- /* SLOT: 2, AD:13 */ 0xff,9191- /* SLOT: 3, AD:14 */ 0xff,9292- /* SLOT: 4, AD:15 */ VRC5477_IRQ_INTA, /* onboard tulip */9393- /* SLOT: 5, AD:16 */ VRC5477_IRQ_INTB, /* slot 1 */9494- /* SLOT: 6, AD:17 */ VRC5477_IRQ_INTC, /* slot 2 */9595- /* SLOT: 7, AD:18 */ VRC5477_IRQ_INTD, /* slot 3 */9696- /* SLOT: 8, AD:19 */ VRC5477_IRQ_INTE, /* slot 4 */9797- /* SLOT: 9, AD:20 */ 0xff,9898- /* SLOT: 10, AD:21 */ 0xff,9999- /* SLOT: 11, AD:22 */ 0xff,100100- /* SLOT: 12, AD:23 */ 0xff,101101- /* SLOT: 13, AD:24 */ 0xff,102102- /* SLOT: 14, AD:25 */ 0xff,103103- /* SLOT: 15, AD:26 */ 0xff,104104- /* SLOT: 16, AD:27 */ 0xff,105105- /* SLOT: 17, AD:28 */ 0xff,106106- /* SLOT: 18, AD:29 */ VRC5477_IRQ_IOPCI_INTC, /* vrc5477 ac97 */107107- /* SLOT: 19, AD:30 */ VRC5477_IRQ_IOPCI_INTB, /* vrc5477 usb peri */108108- /* SLOT: 20, AD:31 */ VRC5477_IRQ_IOPCI_INTA, /* vrc5477 usb host */109109-};110110-static unsigned char rockhopperII_irq_map[MAX_SLOT_NUM] = {111111- /* SLOT: 0, AD:11 */ 0xff,112112- /* SLOT: 1, AD:12 */ VRC5477_IRQ_INTB, /* onboard AMD PCNET */113113- /* SLOT: 2, AD:13 */ 0xff,114114- /* SLOT: 3, AD:14 */ 0xff,115115- /* SLOT: 4, AD:15 */ 14, /* M5229 ide ISA irq */116116- /* SLOT: 5, AD:16 */ VRC5477_IRQ_INTD, /* slot 3 */117117- /* SLOT: 6, AD:17 */ VRC5477_IRQ_INTA, /* slot 4 */118118- /* SLOT: 7, AD:18 */ VRC5477_IRQ_INTD, /* slot 5 */119119- /* SLOT: 8, AD:19 */ 0, /* M5457 modem nop */120120- /* SLOT: 9, AD:20 */ VRC5477_IRQ_INTA, /* slot 2 */121121- /* SLOT: 10, AD:21 */ 0xff,122122- /* SLOT: 11, AD:22 */ 0xff,123123- /* SLOT: 12, AD:23 */ 0xff,124124- /* SLOT: 13, AD:24 */ 0xff,125125- /* SLOT: 14, AD:25 */ 0xff,126126- /* SLOT: 15, AD:26 */ 0xff,127127- /* SLOT: 16, AD:27 */ 0xff,128128- /* SLOT: 17, AD:28 */ 0, /* M7101 PMU nop */129129- /* SLOT: 18, AD:29 */ VRC5477_IRQ_IOPCI_INTC, /* vrc5477 ac97 */130130- /* SLOT: 19, AD:30 */ VRC5477_IRQ_IOPCI_INTB, /* vrc5477 usb peri */131131- /* SLOT: 20, AD:31 */ VRC5477_IRQ_IOPCI_INTA, /* vrc5477 usb host */132132-};133133-134134-int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)135135-{136136- int slot_num;137137- unsigned char *slot_irq_map;138138- unsigned char irq;139139-140140- /*141141- * We ignore the swizzled slot and pin values. The original142142- * pci_fixup_irq() codes largely base irq number on the dev slot143143- * numbers because except for one case they are unique even144144- * though there are multiple pci buses.145145- */146146-147147- if (mips_machtype == MACH_NEC_ROCKHOPPERII)148148- slot_irq_map = rockhopperII_irq_map;149149- else150150- slot_irq_map = irq_map;151151-152152- slot_num = PCI_SLOT(dev->devfn);153153- irq = slot_irq_map[slot_num];154154-155155- db_assert(slot_num < MAX_SLOT_NUM);156156-157157- db_assert(irq != 0xff);158158-159159- pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);160160-161161- if (mips_machtype == MACH_NEC_ROCKHOPPERII) {162162- /* hack to distinquish overlapping slot 20s, one163163- * on bus 0 (ALI USB on the M1535 on the backplane),164164- * and one on bus 2 (NEC USB controller on the CPU board)165165- * Make the M1535 USB - ISA IRQ number 9.166166- */167167- if (slot_num == 20 && dev->bus->number == 0) {168168- pci_write_config_byte(dev,169169- PCI_INTERRUPT_LINE,170170- 9);171171- irq = 9;172172- }173173-174174- }175175-176176- return irq;177177-}178178-179179-/* Do platform specific device initialization at pci_enable_device() time */180180-int pcibios_plat_dev_init(struct pci_dev *dev)181181-{182182- return 0;183183-}184184-185185-void ddb_pci_reset_bus(void)186186-{187187- u32 temp;188188-189189- /*190190- * I am not sure about the "official" procedure, the following191191- * steps work as far as I know:192192- * We first set PCI cold reset bit (bit 31) in PCICTRL-H.193193- * Then we clear the PCI warm reset bit (bit 30) to 0 in PCICTRL-H.194194- * The same is true for both PCI channels.195195- */196196- temp = ddb_in32(DDB_PCICTL0_H);197197- temp |= 0x80000000;198198- ddb_out32(DDB_PCICTL0_H, temp);199199- temp &= ~0xc0000000;200200- ddb_out32(DDB_PCICTL0_H, temp);201201-202202- temp = ddb_in32(DDB_PCICTL1_H);203203- temp |= 0x80000000;204204- ddb_out32(DDB_PCICTL1_H, temp);205205- temp &= ~0xc0000000;206206- ddb_out32(DDB_PCICTL1_H, temp);207207-}
-10
include/asm-mips/bootinfo.h
···8686#define MACH_COBALT_27 0 /* Proto "27" hardware */87878888/*8989- * Valid machtype for group NEC DDB9090- */9191-#define MACH_GROUP_NEC_DDB 8 /* NEC DDB */9292-#define MACH_NEC_DDB5074 0 /* NEC DDB Vrc-5074 */9393-#define MACH_NEC_DDB5476 1 /* NEC DDB Vrc-5476 */9494-#define MACH_NEC_DDB5477 2 /* NEC DDB Vrc-5477 */9595-#define MACH_NEC_ROCKHOPPER 3 /* Rockhopper base board */9696-#define MACH_NEC_ROCKHOPPERII 4 /* Rockhopper II base board */9797-9898-/*9989 * Valid machtype for group BAGET10090 */10191#define MACH_GROUP_BAGET 9 /* Baget */
-342
include/asm-mips/ddb5xxx/ddb5477.h
···11-/***********************************************************************22- *33- * Copyright 2001 MontaVista Software Inc.44- * Author: jsun@mvista.com or jsun@junsun.net55- *66- * include/asm-mips/ddb5xxx/ddb5477.h77- * DDB 5477 specific definitions and macros.88- *99- * This program is free software; you can redistribute it and/or modify it1010- * under the terms of the GNU General Public License as published by the1111- * Free Software Foundation; either version 2 of the License, or (at your1212- * option) any later version.1313- *1414- ***********************************************************************1515- */1616-1717-#ifndef __ASM_DDB5XXX_DDB5477_H1818-#define __ASM_DDB5XXX_DDB5477_H1919-2020-#include <irq.h>2121-2222-/*2323- * This contains macros that are specific to DDB5477 or renamed from2424- * DDB5476.2525- */2626-2727-/*2828- * renamed PADRs2929- */3030-#define DDB_LCS0 DDB_DCS23131-#define DDB_LCS1 DDB_DCS33232-#define DDB_LCS2 DDB_DCS43333-#define DDB_VRC5477 DDB_INTCS3434-3535-/*3636- * New CPU interface registers3737- */3838-#define DDB_INTCTRL0 0x0400 /* Interrupt Control 0 */3939-#define DDB_INTCTRL1 0x0404 /* Interrupt Control 1 */4040-#define DDB_INTCTRL2 0x0408 /* Interrupt Control 2 */4141-#define DDB_INTCTRL3 0x040c /* Interrupt Control 3 */4242-4343-#define DDB_INT0STAT 0x0420 /* INT0 Status [R] */4444-#define DDB_INT1STAT 0x0428 /* INT1 Status [R] */4545-#define DDB_INT2STAT 0x0430 /* INT2 Status [R] */4646-#define DDB_INT3STAT 0x0438 /* INT3 Status [R] */4747-#define DDB_INT4STAT 0x0440 /* INT4 Status [R] */4848-#define DDB_NMISTAT 0x0450 /* NMI Status [R] */4949-5050-#define DDB_INTCLR32 0x0468 /* Interrupt Clear */5151-5252-#define DDB_INTPPES0 0x0470 /* PCI0 Interrupt Control */5353-#define DDB_INTPPES1 0x0478 /* PCI1 Interrupt Control */5454-5555-#undef DDB_CPUSTAT /* duplicate in Vrc-5477 */5656-#define DDB_CPUSTAT 0x0480 /* CPU Status [R] */5757-#define DDB_BUSCTRL 0x0488 /* Internal Bus Control */5858-5959-6060-/*6161- * Timer registers6262- */6363-#define DDB_REFCTRL_L DDB_T0CTRL6464-#define DDB_REFCTRL_H (DDB_T0CTRL+4)6565-#define DDB_REFCNTR DDB_T0CNTR6666-#define DDB_SPT0CTRL_L DDB_T1CTRL6767-#define DDB_SPT0CTRL_H (DDB_T1CTRL+4)6868-#define DDB_SPT1CTRL_L DDB_T2CTRL6969-#define DDB_SPT1CTRL_H (DDB_T2CTRL+4)7070-#define DDB_SPT1CNTR DDB_T1CTRL7171-#define DDB_WDTCTRL_L DDB_T3CTRL7272-#define DDB_WDTCTRL_H (DDB_T3CTRL+4)7373-#define DDB_WDTCNTR DDB_T3CNTR7474-7575-/*7676- * DMA registers are moved. We don't care about it for now. TODO.7777- */7878-7979-/*8080- * BARs for ext PCI (PCI0)8181- */8282-#undef DDB_BARC8383-#undef DDB_BARB8484-8585-#define DDB_BARC0 0x0210 /* PCI0 Control */8686-#define DDB_BARM010 0x0218 /* PCI0 SDRAM bank01 */8787-#define DDB_BARM230 0x0220 /* PCI0 SDRAM bank23 */8888-#define DDB_BAR00 0x0240 /* PCI0 LDCS0 */8989-#define DDB_BAR10 0x0248 /* PCI0 LDCS1 */9090-#define DDB_BAR20 0x0250 /* PCI0 LDCS2 */9191-#define DDB_BAR30 0x0258 /* PCI0 LDCS3 */9292-#define DDB_BAR40 0x0260 /* PCI0 LDCS4 */9393-#define DDB_BAR50 0x0268 /* PCI0 LDCS5 */9494-#define DDB_BARB0 0x0280 /* PCI0 BOOT */9595-#define DDB_BARP00 0x0290 /* PCI0 for IOPCI Window0 */9696-#define DDB_BARP10 0x0298 /* PCI0 for IOPCI Window1 */9797-9898-/*9999- * BARs for IOPIC (PCI1)100100- */101101-#define DDB_BARC1 0x0610 /* PCI1 Control */102102-#define DDB_BARM011 0x0618 /* PCI1 SDRAM bank01 */103103-#define DDB_BARM231 0x0620 /* PCI1 SDRAM bank23 */104104-#define DDB_BAR01 0x0640 /* PCI1 LDCS0 */105105-#define DDB_BAR11 0x0648 /* PCI1 LDCS1 */106106-#define DDB_BAR21 0x0650 /* PCI1 LDCS2 */107107-#define DDB_BAR31 0x0658 /* PCI1 LDCS3 */108108-#define DDB_BAR41 0x0660 /* PCI1 LDCS4 */109109-#define DDB_BAR51 0x0668 /* PCI1 LDCS5 */110110-#define DDB_BARB1 0x0680 /* PCI1 BOOT */111111-#define DDB_BARP01 0x0690 /* PCI1 for ext PCI Window0 */112112-#define DDB_BARP11 0x0698 /* PCI1 for ext PCI Window1 */113113-114114-/*115115- * Other registers for ext PCI (PCI0)116116- */117117-#define DDB_PCIINIT00 0x02f0 /* PCI0 Initiator 0 */118118-#define DDB_PCIINIT10 0x02f8 /* PCI0 Initiator 1 */119119-120120-#define DDB_PCISWP0 0x02b0 /* PCI0 Swap */121121-#define DDB_PCIERR0 0x02b8 /* PCI0 Error */122122-123123-#define DDB_PCICTL0_L 0x02e0 /* PCI0 Control-L */124124-#define DDB_PCICTL0_H 0x02e4 /* PCI0 Control-H */125125-#define DDB_PCIARB0_L 0x02e8 /* PCI0 Arbitration-L */126126-#define DDB_PCIARB0_H 0x02ec /* PCI0 Arbitration-H */127127-128128-/*129129- * Other registers for IOPCI (PCI1)130130- */131131-#define DDB_IOPCIW0 0x00d0 /* PCI Address Window 0 [R/W] */132132-#define DDB_IOPCIW1 0x00d8 /* PCI Address Window 1 [R/W] */133133-134134-#define DDB_PCIINIT01 0x06f0 /* PCI1 Initiator 0 */135135-#define DDB_PCIINIT11 0x06f8 /* PCI1 Initiator 1 */136136-137137-#define DDB_PCISWP1 0x06b0 /* PCI1 Swap */138138-#define DDB_PCIERR1 0x06b8 /* PCI1 Error */139139-140140-#define DDB_PCICTL1_L 0x06e0 /* PCI1 Control-L */141141-#define DDB_PCICTL1_H 0x06e4 /* PCI1 Control-H */142142-#define DDB_PCIARB1_L 0x06e8 /* PCI1 Arbitration-L */143143-#define DDB_PCIARB1_H 0x06ec /* PCI1 Arbitration-H */144144-145145-/*146146- * Local Bus147147- */148148-#define DDB_LCST0 0x0110 /* LB Chip Select Timing 0 */149149-#define DDB_LCST1 0x0118 /* LB Chip Select Timing 1 */150150-#undef DDB_LCST2151151-#define DDB_LCST2 0x0120 /* LB Chip Select Timing 2 */152152-#undef DDB_LCST3153153-#undef DDB_LCST4154154-#undef DDB_LCST5155155-#undef DDB_LCST6156156-#undef DDB_LCST7157157-#undef DDB_LCST8158158-#define DDB_ERRADR 0x0150 /* Error Address Register */159159-#define DDB_ERRCS 0x0160160160-#define DDB_BTM 0x0170 /* Boot Time Mode value */161161-162162-/*163163- * MISC registers164164- */165165-#define DDB_GIUFUNSEL 0x4040 /* select dual-func pins */166166-#define DDB_PIBMISC 0x0750 /* USB buffer enable / power saving */167167-168168-/*169169- * Memory map (physical address)170170- *171171- * Note most of the following address must be properly aligned by the172172- * corresponding size. For example, if PCI_IO_SIZE is 16MB, then173173- * PCI_IO_BASE must be aligned along 16MB boundary.174174- */175175-176176-/* the actual ram size is detected at run-time */177177-#define DDB_SDRAM_BASE 0x00000000178178-#define DDB_MAX_SDRAM_SIZE 0x08000000 /* less than 128MB */179179-180180-#define DDB_PCI0_MEM_BASE 0x08000000181181-#define DDB_PCI0_MEM_SIZE 0x08000000 /* 128 MB */182182-183183-#define DDB_PCI1_MEM_BASE 0x10000000184184-#define DDB_PCI1_MEM_SIZE 0x08000000 /* 128 MB */185185-186186-#define DDB_PCI0_CONFIG_BASE 0x18000000187187-#define DDB_PCI0_CONFIG_SIZE 0x01000000 /* 16 MB */188188-189189-#define DDB_PCI1_CONFIG_BASE 0x19000000190190-#define DDB_PCI1_CONFIG_SIZE 0x01000000 /* 16 MB */191191-192192-#define DDB_PCI_IO_BASE 0x1a000000 /* we concatenate two IOs */193193-#define DDB_PCI0_IO_BASE 0x1a000000194194-#define DDB_PCI0_IO_SIZE 0x01000000 /* 16 MB */195195-#define DDB_PCI1_IO_BASE 0x1b000000196196-#define DDB_PCI1_IO_SIZE 0x01000000 /* 16 MB */197197-198198-#define DDB_LCS0_BASE 0x1c000000 /* flash memory */199199-#define DDB_LCS0_SIZE 0x01000000 /* 16 MB */200200-201201-#define DDB_LCS1_BASE 0x1d000000 /* misc */202202-#define DDB_LCS1_SIZE 0x01000000 /* 16 MB */203203-204204-#define DDB_LCS2_BASE 0x1e000000 /* Mezzanine */205205-#define DDB_LCS2_SIZE 0x01000000 /* 16 MB */206206-207207-#define DDB_VRC5477_BASE 0x1fa00000 /* VRC5477 control regs */208208-#define DDB_VRC5477_SIZE 0x00200000 /* 2MB */209209-210210-#define DDB_BOOTCS_BASE 0x1fc00000 /* Boot ROM / EPROM /Flash */211211-#define DDB_BOOTCS_SIZE 0x00200000 /* 2 MB - doc says 4MB */212212-213213-#define DDB_LED DDB_LCS1_BASE + 0x10000214214-215215-216216-/*217217- * DDB5477 specific functions218218- */219219-#ifndef __ASSEMBLY__220220-extern void ddb5477_irq_setup(void);221221-222222-/* route irq to cpu int pin */223223-extern void ll_vrc5477_irq_route(int vrc5477_irq, int ip);224224-225225-/* low-level routine for enabling vrc5477 irq, bypassing high-level */226226-extern void ll_vrc5477_irq_enable(int vrc5477_irq);227227-extern void ll_vrc5477_irq_disable(int vrc5477_irq);228228-#endif /* !__ASSEMBLY__ */229229-230230-/* PCI intr ack share PCIW0 with PCI IO */231231-#define DDB_PCI_IACK_BASE DDB_PCI_IO_BASE232232-233233-/*234234- * Interrupt mapping235235- *236236- * We have three interrupt controllers:237237- *238238- * . CPU itself - 8 sources239239- * . i8259 - 16 sources240240- * . vrc5477 - 32 sources241241- *242242- * They connected as follows:243243- * all vrc5477 interrupts are routed to cpu IP2 (by software setting)244244- * all i8359 are routed to INTC in vrc5477 (by hardware connection)245245- *246246- * All VRC5477 PCI interrupts are level-triggered (no ack needed).247247- * All PCI irq but INTC are active low.248248- */249249-250250-/*251251- * irq number block assignment252252- */253253-254254-#define NUM_CPU_IRQ 8255255-#define NUM_VRC5477_IRQ 32256256-257257-#define CPU_IRQ_BASE MIPS_CPU_IRQ_BASE258258-#define VRC5477_IRQ_BASE (CPU_IRQ_BASE + NUM_CPU_IRQ)259259-260260-/*261261- * vrc5477 irq defs262262- */263263-264264-#define VRC5477_IRQ_CPCE (0 + VRC5477_IRQ_BASE) /* cpu parity error */265265-#define VRC5477_IRQ_CNTD (1 + VRC5477_IRQ_BASE) /* cpu no target */266266-#define VRC5477_IRQ_I2C (2 + VRC5477_IRQ_BASE) /* I2C */267267-#define VRC5477_IRQ_DMA (3 + VRC5477_IRQ_BASE) /* DMA */268268-#define VRC5477_IRQ_UART0 (4 + VRC5477_IRQ_BASE)269269-#define VRC5477_IRQ_WDOG (5 + VRC5477_IRQ_BASE) /* watchdog timer */270270-#define VRC5477_IRQ_SPT1 (6 + VRC5477_IRQ_BASE) /* special purpose timer 1 */271271-#define VRC5477_IRQ_LBRT (7 + VRC5477_IRQ_BASE) /* local bus read timeout */272272-#define VRC5477_IRQ_INTA (8 + VRC5477_IRQ_BASE) /* PCI INT #A */273273-#define VRC5477_IRQ_INTB (9 + VRC5477_IRQ_BASE) /* PCI INT #B */274274-#define VRC5477_IRQ_INTC (10 + VRC5477_IRQ_BASE) /* PCI INT #C */275275-#define VRC5477_IRQ_INTD (11 + VRC5477_IRQ_BASE) /* PCI INT #D */276276-#define VRC5477_IRQ_INTE (12 + VRC5477_IRQ_BASE) /* PCI INT #E */277277-#define VRC5477_IRQ_RESERVED_13 (13 + VRC5477_IRQ_BASE) /* reserved */278278-#define VRC5477_IRQ_PCIS (14 + VRC5477_IRQ_BASE) /* PCI SERR # */279279-#define VRC5477_IRQ_PCI (15 + VRC5477_IRQ_BASE) /* PCI internal error */280280-#define VRC5477_IRQ_IOPCI_INTA (16 + VRC5477_IRQ_BASE) /* USB-H */281281-#define VRC5477_IRQ_IOPCI_INTB (17 + VRC5477_IRQ_BASE) /* USB-P */282282-#define VRC5477_IRQ_IOPCI_INTC (18 + VRC5477_IRQ_BASE) /* AC97 */283283-#define VRC5477_IRQ_IOPCI_INTD (19 + VRC5477_IRQ_BASE) /* Reserved */284284-#define VRC5477_IRQ_UART1 (20 + VRC5477_IRQ_BASE)285285-#define VRC5477_IRQ_SPT0 (21 + VRC5477_IRQ_BASE) /* special purpose timer 0 */286286-#define VRC5477_IRQ_GPT0 (22 + VRC5477_IRQ_BASE) /* general purpose timer 0 */287287-#define VRC5477_IRQ_GPT1 (23 + VRC5477_IRQ_BASE) /* general purpose timer 1 */288288-#define VRC5477_IRQ_GPT2 (24 + VRC5477_IRQ_BASE) /* general purpose timer 2 */289289-#define VRC5477_IRQ_GPT3 (25 + VRC5477_IRQ_BASE) /* general purpose timer 3 */290290-#define VRC5477_IRQ_GPIO (26 + VRC5477_IRQ_BASE)291291-#define VRC5477_IRQ_SIO0 (27 + VRC5477_IRQ_BASE)292292-#define VRC5477_IRQ_SIO1 (28 + VRC5477_IRQ_BASE)293293-#define VRC5477_IRQ_RESERVED_29 (29 + VRC5477_IRQ_BASE) /* reserved */294294-#define VRC5477_IRQ_IOPCISERR (30 + VRC5477_IRQ_BASE) /* IO PCI SERR # */295295-#define VRC5477_IRQ_IOPCI (31 + VRC5477_IRQ_BASE)296296-297297-/*298298- * i2859 irq assignment299299- */300300-#define I8259_IRQ_RESERVED_0 (0 + I8259A_IRQ_BASE)301301-#define I8259_IRQ_KEYBOARD (1 + I8259A_IRQ_BASE) /* M1543 default */302302-#define I8259_IRQ_CASCADE (2 + I8259A_IRQ_BASE)303303-#define I8259_IRQ_UART_B (3 + I8259A_IRQ_BASE) /* M1543 default, may conflict with RTC according to schematic diagram */304304-#define I8259_IRQ_UART_A (4 + I8259A_IRQ_BASE) /* M1543 default */305305-#define I8259_IRQ_PARALLEL (5 + I8259A_IRQ_BASE) /* M1543 default */306306-#define I8259_IRQ_RESERVED_6 (6 + I8259A_IRQ_BASE)307307-#define I8259_IRQ_RESERVED_7 (7 + I8259A_IRQ_BASE)308308-#define I8259_IRQ_RTC (8 + I8259A_IRQ_BASE) /* who set this? */309309-#define I8259_IRQ_USB (9 + I8259A_IRQ_BASE) /* ddb_setup */310310-#define I8259_IRQ_PMU (10 + I8259A_IRQ_BASE) /* ddb_setup */311311-#define I8259_IRQ_RESERVED_11 (11 + I8259A_IRQ_BASE)312312-#define I8259_IRQ_RESERVED_12 (12 + I8259A_IRQ_BASE) /* m1543_irq_setup */313313-#define I8259_IRQ_RESERVED_13 (13 + I8259A_IRQ_BASE)314314-#define I8259_IRQ_HDC1 (14 + I8259A_IRQ_BASE) /* default and ddb_setup */315315-#define I8259_IRQ_HDC2 (15 + I8259A_IRQ_BASE) /* default */316316-317317-318318-/*319319- * misc320320- */321321-#define VRC5477_I8259_CASCADE (VRC5477_IRQ_INTC - VRC5477_IRQ_BASE)322322-#define CPU_VRC5477_CASCADE 2323323-324324-/*325325- * debug routines326326- */327327-#ifndef __ASSEMBLY__328328-#if defined(CONFIG_RUNTIME_DEBUG)329329-extern void vrc5477_show_pdar_regs(void);330330-extern void vrc5477_show_pci_regs(void);331331-extern void vrc5477_show_bar_regs(void);332332-extern void vrc5477_show_int_regs(void);333333-extern void vrc5477_show_all_regs(void);334334-#endif335335-336336-/*337337- * RAM size338338- */339339-extern int board_ram_size;340340-#endif /* !__ASSEMBLY__ */341341-342342-#endif /* __ASM_DDB5XXX_DDB5477_H */
-263
include/asm-mips/ddb5xxx/ddb5xxx.h
···11-/*22- * Copyright 2001 MontaVista Software Inc.33- * Author: jsun@mvista.com or jsun@junsun.net44- *55- * Copyright (C) 2000 Geert Uytterhoeven <geert@sonycom.com>66- * Sony Software Development Center Europe (SDCE), Brussels77- *88- * include/asm-mips/ddb5xxx/ddb5xxx.h99- * Common header for all NEC DDB 5xxx boards, including 5074, 5476, 5477.1010- *1111- * This program is free software; you can redistribute it and/or modify it1212- * under the terms of the GNU General Public License as published by the1313- * Free Software Foundation; either version 2 of the License, or (at your1414- * option) any later version.1515- *1616- */1717-1818-#ifndef __ASM_DDB5XXX_DDB5XXX_H1919-#define __ASM_DDB5XXX_DDB5XXX_H2020-2121-#include <linux/types.h>2222-2323-/*2424- * This file is based on the following documentation:2525- *2626- * NEC Vrc 5074 System Controller Data Sheet, June 19982727- *2828- * [jsun] It is modified so that this file only contains the macros2929- * that are true for all DDB 5xxx boards. The modification is based on3030- *3131- * uPD31577(VRC5477) VR5432-SDRAM/PCI Bridge (Luke)3232- * Preliminary Specification Decoment, Rev 1.1, 27 Dec, 20003333- *3434- */3535-3636-3737-#define DDB_BASE 0xbfa000003838-#define DDB_SIZE 0x00200000 /* 2 MB */3939-4040-4141-/*4242- * Physical Device Address Registers (PDARs)4343- */4444-4545-#define DDB_SDRAM0 0x0000 /* SDRAM Bank 0 [R/W] */4646-#define DDB_SDRAM1 0x0008 /* SDRAM Bank 1 [R/W] */4747-#define DDB_DCS2 0x0010 /* Device Chip-Select 2 [R/W] */4848-#define DDB_DCS3 0x0018 /* Device Chip-Select 3 [R/W] */4949-#define DDB_DCS4 0x0020 /* Device Chip-Select 4 [R/W] */5050-#define DDB_DCS5 0x0028 /* Device Chip-Select 5 [R/W] */5151-#define DDB_DCS6 0x0030 /* Device Chip-Select 6 [R/W] */5252-#define DDB_DCS7 0x0038 /* Device Chip-Select 7 [R/W] */5353-#define DDB_DCS8 0x0040 /* Device Chip-Select 8 [R/W] */5454-#define DDB_PCIW0 0x0060 /* PCI Address Window 0 [R/W] */5555-#define DDB_PCIW1 0x0068 /* PCI Address Window 1 [R/W] */5656-#define DDB_INTCS 0x0070 /* Controller Internal Registers and Devices */5757- /* [R/W] */5858-#define DDB_BOOTCS 0x0078 /* Boot ROM Chip-Select [R/W] */5959-/* Vrc5477 has two more, IOPCIW0, IOPCIW1 */6060-6161-/*6262- * CPU Interface Registers6363- */6464-#define DDB_CPUSTAT 0x0080 /* CPU Status [R/W] */6565-#define DDB_INTCTRL 0x0088 /* Interrupt Control [R/W] */6666-#define DDB_INTSTAT0 0x0090 /* Interrupt Status 0 [R] */6767-#define DDB_INTSTAT1 0x0098 /* Interrupt Status 1 and CPU Interrupt */6868- /* Enable [R/W] */6969-#define DDB_INTCLR 0x00A0 /* Interrupt Clear [R/W] */7070-#define DDB_INTPPES 0x00A8 /* PCI Interrupt Control [R/W] */7171-7272-7373-/*7474- * Memory-Interface Registers7575- */7676-#define DDB_MEMCTRL 0x00C0 /* Memory Control */7777-#define DDB_ACSTIME 0x00C8 /* Memory Access Timing [R/W] */7878-#define DDB_CHKERR 0x00D0 /* Memory Check Error Status [R] */7979-8080-8181-/*8282- * PCI-Bus Registers8383- */8484-#define DDB_PCICTRL 0x00E0 /* PCI Control [R/W] */8585-#define DDB_PCIARB 0x00E8 /* PCI Arbiter [R/W] */8686-#define DDB_PCIINIT0 0x00F0 /* PCI Master (Initiator) 0 [R/W] */8787-#define DDB_PCIINIT1 0x00F8 /* PCI Master (Initiator) 1 [R/W] */8888-#define DDB_PCIERR 0x00B8 /* PCI Error [R/W] */8989-9090-9191-/*9292- * Local-Bus Registers9393- */9494-#define DDB_LCNFG 0x0100 /* Local Bus Configuration [R/W] */9595-#define DDB_LCST2 0x0110 /* Local Bus Chip-Select Timing 2 [R/W] */9696-#define DDB_LCST3 0x0118 /* Local Bus Chip-Select Timing 3 [R/W] */9797-#define DDB_LCST4 0x0120 /* Local Bus Chip-Select Timing 4 [R/W] */9898-#define DDB_LCST5 0x0128 /* Local Bus Chip-Select Timing 5 [R/W] */9999-#define DDB_LCST6 0x0130 /* Local Bus Chip-Select Timing 6 [R/W] */100100-#define DDB_LCST7 0x0138 /* Local Bus Chip-Select Timing 7 [R/W] */101101-#define DDB_LCST8 0x0140 /* Local Bus Chip-Select Timing 8 [R/W] */102102-#define DDB_DCSFN 0x0150 /* Device Chip-Select Muxing and Output */103103- /* Enables [R/W] */104104-#define DDB_DCSIO 0x0158 /* Device Chip-Selects As I/O Bits [R/W] */105105-#define DDB_BCST 0x0178 /* Local Boot Chip-Select Timing [R/W] */106106-107107-108108-/*109109- * DMA Registers110110- */111111-#define DDB_DMACTRL0 0x0180 /* DMA Control 0 [R/W] */112112-#define DDB_DMASRCA0 0x0188 /* DMA Source Address 0 [R/W] */113113-#define DDB_DMADESA0 0x0190 /* DMA Destination Address 0 [R/W] */114114-#define DDB_DMACTRL1 0x0198 /* DMA Control 1 [R/W] */115115-#define DDB_DMASRCA1 0x01A0 /* DMA Source Address 1 [R/W] */116116-#define DDB_DMADESA1 0x01A8 /* DMA Destination Address 1 [R/W] */117117-118118-119119-/*120120- * Timer Registers121121- */122122-#define DDB_T0CTRL 0x01C0 /* SDRAM Refresh Control [R/W] */123123-#define DDB_T0CNTR 0x01C8 /* SDRAM Refresh Counter [R/W] */124124-#define DDB_T1CTRL 0x01D0 /* CPU-Bus Read Time-Out Control [R/W] */125125-#define DDB_T1CNTR 0x01D8 /* CPU-Bus Read Time-Out Counter [R/W] */126126-#define DDB_T2CTRL 0x01E0 /* General-Purpose Timer Control [R/W] */127127-#define DDB_T2CNTR 0x01E8 /* General-Purpose Timer Counter [R/W] */128128-#define DDB_T3CTRL 0x01F0 /* Watchdog Timer Control [R/W] */129129-#define DDB_T3CNTR 0x01F8 /* Watchdog Timer Counter [R/W] */130130-131131-132132-/*133133- * PCI Configuration Space Registers134134- */135135-#define DDB_PCI_BASE 0x0200136136-137137-#define DDB_VID 0x0200 /* PCI Vendor ID [R] */138138-#define DDB_DID 0x0202 /* PCI Device ID [R] */139139-#define DDB_PCICMD 0x0204 /* PCI Command [R/W] */140140-#define DDB_PCISTS 0x0206 /* PCI Status [R/W] */141141-#define DDB_REVID 0x0208 /* PCI Revision ID [R] */142142-#define DDB_CLASS 0x0209 /* PCI Class Code [R] */143143-#define DDB_CLSIZ 0x020C /* PCI Cache Line Size [R/W] */144144-#define DDB_MLTIM 0x020D /* PCI Latency Timer [R/W] */145145-#define DDB_HTYPE 0x020E /* PCI Header Type [R] */146146-#define DDB_BIST 0x020F /* BIST [R] (unimplemented) */147147-#define DDB_BARC 0x0210 /* PCI Base Address Register Control [R/W] */148148-#define DDB_BAR0 0x0218 /* PCI Base Address Register 0 [R/W] */149149-#define DDB_BAR1 0x0220 /* PCI Base Address Register 1 [R/W] */150150-#define DDB_CIS 0x0228 /* PCI Cardbus CIS Pointer [R] */151151- /* (unimplemented) */152152-#define DDB_SSVID 0x022C /* PCI Sub-System Vendor ID [R/W] */153153-#define DDB_SSID 0x022E /* PCI Sub-System ID [R/W] */154154-#define DDB_ROM 0x0230 /* Expansion ROM Base Address [R] */155155- /* (unimplemented) */156156-#define DDB_INTLIN 0x023C /* PCI Interrupt Line [R/W] */157157-#define DDB_INTPIN 0x023D /* PCI Interrupt Pin [R] */158158-#define DDB_MINGNT 0x023E /* PCI Min_Gnt [R] (unimplemented) */159159-#define DDB_MAXLAT 0x023F /* PCI Max_Lat [R] (unimplemented) */160160-#define DDB_BAR2 0x0240 /* PCI Base Address Register 2 [R/W] */161161-#define DDB_BAR3 0x0248 /* PCI Base Address Register 3 [R/W] */162162-#define DDB_BAR4 0x0250 /* PCI Base Address Register 4 [R/W] */163163-#define DDB_BAR5 0x0258 /* PCI Base Address Register 5 [R/W] */164164-#define DDB_BAR6 0x0260 /* PCI Base Address Register 6 [R/W] */165165-#define DDB_BAR7 0x0268 /* PCI Base Address Register 7 [R/W] */166166-#define DDB_BAR8 0x0270 /* PCI Base Address Register 8 [R/W] */167167-#define DDB_BARB 0x0278 /* PCI Base Address Register BOOT [R/W] */168168-169169-170170-/*171171- * Nile 4 Register Access172172- */173173-174174-static inline void ddb_sync(void)175175-{176176- volatile u32 *p = (volatile u32 *)0xbfc00000;177177- (void)(*p);178178-}179179-180180-static inline void ddb_out32(u32 offset, u32 val)181181-{182182- *(volatile u32 *)(DDB_BASE+offset) = val;183183- ddb_sync();184184-}185185-186186-static inline u32 ddb_in32(u32 offset)187187-{188188- u32 val = *(volatile u32 *)(DDB_BASE+offset);189189- ddb_sync();190190- return val;191191-}192192-193193-static inline void ddb_out16(u32 offset, u16 val)194194-{195195- *(volatile u16 *)(DDB_BASE+offset) = val;196196- ddb_sync();197197-}198198-199199-static inline u16 ddb_in16(u32 offset)200200-{201201- u16 val = *(volatile u16 *)(DDB_BASE+offset);202202- ddb_sync();203203- return val;204204-}205205-206206-static inline void ddb_out8(u32 offset, u8 val)207207-{208208- *(volatile u8 *)(DDB_BASE+offset) = val;209209- ddb_sync();210210-}211211-212212-static inline u8 ddb_in8(u32 offset)213213-{214214- u8 val = *(volatile u8 *)(DDB_BASE+offset);215215- ddb_sync();216216- return val;217217-}218218-219219-220220-/*221221- * Physical Device Address Registers222222- */223223-224224-extern u32225225-ddb_calc_pdar(u32 phys, u32 size, int width, int on_memory_bus, int pci_visible);226226-extern void227227-ddb_set_pdar(u32 pdar, u32 phys, u32 size, int width,228228- int on_memory_bus, int pci_visible);229229-230230-/*231231- * PCI Master Registers232232- */233233-234234-#define DDB_PCICMD_IACK 0 /* PCI Interrupt Acknowledge */235235-#define DDB_PCICMD_IO 1 /* PCI I/O Space */236236-#define DDB_PCICMD_MEM 3 /* PCI Memory Space */237237-#define DDB_PCICMD_CFG 5 /* PCI Configuration Space */238238-239239-/*240240- * additional options for pci init reg (no shifting needed)241241- */242242-#define DDB_PCI_CFGTYPE1 0x200 /* for pci init0/1 regs */243243-#define DDB_PCI_ACCESS_32 0x10 /* for pci init0/1 regs */244244-245245-246246-extern void ddb_set_pmr(u32 pmr, u32 type, u32 addr, u32 options);247247-248248-/*249249- * we need to reset pci bus when we start up and shutdown250250- */251251-extern void ddb_pci_reset_bus(void);252252-253253-254254-/*255255- * include the board dependent part256256- */257257-#if defined(CONFIG_DDB5477)258258-#include <asm/ddb5xxx/ddb5477.h>259259-#else260260-#error "Unknown DDB board!"261261-#endif262262-263263-#endif /* __ASM_DDB5XXX_DDB5XXX_H */