···324324325325 <http://www.digi.com/products/microprocessors/index.jsp>326326327327+config ARCH_MXC328328+ bool "Freescale MXC/iMX-based"329329+ select ARCH_MTD_XIP330330+ help331331+ Support for Freescale MXC/iMX-based family of processors332332+327333config ARCH_PNX4008328334 bool "Philips Nexperia PNX4008 Mobile"329335 help···438432source "arch/arm/mach-omap2/Kconfig"439433440434source "arch/arm/plat-s3c24xx/Kconfig"435435+source "arch/arm/plat-s3c/Kconfig"441436442437if ARCH_S3C2410443438source "arch/arm/mach-s3c2400/Kconfig"···462455source "arch/arm/mach-realview/Kconfig"463456464457source "arch/arm/mach-at91/Kconfig"458458+459459+source "arch/arm/plat-mxc/Kconfig"465460466461source "arch/arm/mach-netx/Kconfig"467462
+9-9
arch/arm/Kconfig.debug
···8282 output to the second serial port on these devices. Saying N will8383 cause the debug messages to appear on the first serial port.84848585-config DEBUG_S3C2410_PORT8686- depends on DEBUG_LL && ARCH_S3C24108787- bool "Kernel low-level debugging messages via S3C2410 UART"8585+config DEBUG_S3C_PORT8686+ depends on DEBUG_LL && PLAT_S3C8787+ bool "Kernel low-level debugging messages via S3C UART"8888 help8989 Say Y here if you want debug print routines to go to one of the9090- S3C2410 internal UARTs. The chosen UART must have been configured9090+ S3C internal UARTs. The chosen UART must have been configured9191 before it is used.92929393-config DEBUG_S3C2410_UART9494- depends on ARCH_S3C24109595- int "S3C2410 UART to use for low-level debug"9393+config DEBUG_S3C_UART9494+ depends on PLAT_S3C9595+ int "S3C UART to use for low-level debug"9696 default "0"9797 help9898- Choice for UART for kernel low-level using S3C2410 UARTS,9898+ Choice for UART for kernel low-level using S3C UARTS,9999 should be between zero and two. The port must have been100100 initialised by the boot-loader before use.101101102102 The uncompressor code port configuration is now handled103103- by CONFIG_S3C2410_LOWLEVEL_UART_PORT.103103+ by CONFIG_S3C_LOWLEVEL_UART_PORT.104104105105endmenu
+3
arch/arm/Makefile
···137137 textofs-$(CONFIG_ARCH_NS9XXX) := 0x00108000138138 machine-$(CONFIG_ARCH_DAVINCI) := davinci139139 machine-$(CONFIG_ARCH_KS8695) := ks8695140140+ incdir-$(CONFIG_ARCH_MXC) := mxc141141+ machine-$(CONFIG_ARCH_MX3) := mx3140142141143ifeq ($(CONFIG_ARCH_EBSA110),y)142144# This is what happens if you forget the IOCS16 line.···185183core-$(CONFIG_PLAT_IOP) += arch/arm/plat-iop/186184core-$(CONFIG_ARCH_OMAP) += arch/arm/plat-omap/187185core-$(CONFIG_PLAT_S3C24XX) += arch/arm/plat-s3c24xx/186186+core-$(CONFIG_ARCH_MXC) += arch/arm/plat-mxc/188187189188drivers-$(CONFIG_OPROFILE) += arch/arm/oprofile/190189drivers-$(CONFIG_ARCH_CLPS7500) += drivers/acorn/char/
···11+#22+# Automatically generated make config: don't edit33+# Linux kernel version: 2.6.2244+# Mon Jul 9 15:18:20 200755+#66+CONFIG_ARM=y77+CONFIG_SYS_SUPPORTS_APM_EMULATION=y88+CONFIG_GENERIC_GPIO=y99+CONFIG_GENERIC_TIME=y1010+# CONFIG_GENERIC_CLOCKEVENTS is not set1111+CONFIG_MMU=y1212+# CONFIG_NO_IOPORT is not set1313+CONFIG_GENERIC_HARDIRQS=y1414+CONFIG_STACKTRACE_SUPPORT=y1515+CONFIG_LOCKDEP_SUPPORT=y1616+CONFIG_TRACE_IRQFLAGS_SUPPORT=y1717+CONFIG_HARDIRQS_SW_RESEND=y1818+CONFIG_GENERIC_IRQ_PROBE=y1919+CONFIG_RWSEM_GENERIC_SPINLOCK=y2020+# CONFIG_ARCH_HAS_ILOG2_U32 is not set2121+# CONFIG_ARCH_HAS_ILOG2_U64 is not set2222+CONFIG_GENERIC_HWEIGHT=y2323+CONFIG_GENERIC_CALIBRATE_DELAY=y2424+CONFIG_ZONE_DMA=y2525+CONFIG_ARCH_MTD_XIP=y2626+CONFIG_VECTORS_BASE=0xffff00002727+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"2828+2929+#3030+# Code maturity level options3131+#3232+CONFIG_EXPERIMENTAL=y3333+CONFIG_BROKEN_ON_SMP=y3434+CONFIG_INIT_ENV_ARG_LIMIT=323535+3636+#3737+# General setup3838+#3939+CONFIG_LOCALVERSION="-em-x270"4040+# CONFIG_LOCALVERSION_AUTO is not set4141+CONFIG_SWAP=y4242+CONFIG_SYSVIPC=y4343+# CONFIG_IPC_NS is not set4444+CONFIG_SYSVIPC_SYSCTL=y4545+# CONFIG_POSIX_MQUEUE is not set4646+# CONFIG_BSD_PROCESS_ACCT is not set4747+# CONFIG_TASKSTATS is not set4848+# CONFIG_UTS_NS is not set4949+# CONFIG_AUDIT is not set5050+CONFIG_IKCONFIG=y5151+CONFIG_IKCONFIG_PROC=y5252+CONFIG_LOG_BUF_SHIFT=175353+CONFIG_SYSFS_DEPRECATED=y5454+# CONFIG_RELAY is not set5555+CONFIG_BLK_DEV_INITRD=y5656+CONFIG_INITRAMFS_SOURCE=""5757+CONFIG_CC_OPTIMIZE_FOR_SIZE=y5858+CONFIG_SYSCTL=y5959+CONFIG_EMBEDDED=y6060+CONFIG_UID16=y6161+CONFIG_SYSCTL_SYSCALL=y6262+CONFIG_KALLSYMS=y6363+# CONFIG_KALLSYMS_ALL is not set6464+# CONFIG_KALLSYMS_EXTRA_PASS is not set6565+CONFIG_HOTPLUG=y6666+CONFIG_PRINTK=y6767+CONFIG_BUG=y6868+CONFIG_ELF_CORE=y6969+CONFIG_BASE_FULL=y7070+CONFIG_FUTEX=y7171+CONFIG_ANON_INODES=y7272+CONFIG_EPOLL=y7373+CONFIG_SIGNALFD=y7474+CONFIG_TIMERFD=y7575+CONFIG_EVENTFD=y7676+CONFIG_SHMEM=y7777+CONFIG_VM_EVENT_COUNTERS=y7878+CONFIG_SLAB=y7979+# CONFIG_SLUB is not set8080+# CONFIG_SLOB is not set8181+CONFIG_RT_MUTEXES=y8282+# CONFIG_TINY_SHMEM is not set8383+CONFIG_BASE_SMALL=08484+8585+#8686+# Loadable module support8787+#8888+CONFIG_MODULES=y8989+CONFIG_MODULE_UNLOAD=y9090+CONFIG_MODULE_FORCE_UNLOAD=y9191+# CONFIG_MODVERSIONS is not set9292+# CONFIG_MODULE_SRCVERSION_ALL is not set9393+CONFIG_KMOD=y9494+9595+#9696+# Block layer9797+#9898+CONFIG_BLOCK=y9999+# CONFIG_LBD is not set100100+# CONFIG_BLK_DEV_IO_TRACE is not set101101+# CONFIG_LSF is not set102102+103103+#104104+# IO Schedulers105105+#106106+CONFIG_IOSCHED_NOOP=y107107+CONFIG_IOSCHED_AS=y108108+CONFIG_IOSCHED_DEADLINE=y109109+CONFIG_IOSCHED_CFQ=y110110+CONFIG_DEFAULT_AS=y111111+# CONFIG_DEFAULT_DEADLINE is not set112112+# CONFIG_DEFAULT_CFQ is not set113113+# CONFIG_DEFAULT_NOOP is not set114114+CONFIG_DEFAULT_IOSCHED="anticipatory"115115+116116+#117117+# System Type118118+#119119+# CONFIG_ARCH_AAEC2000 is not set120120+# CONFIG_ARCH_INTEGRATOR is not set121121+# CONFIG_ARCH_REALVIEW is not set122122+# CONFIG_ARCH_VERSATILE is not set123123+# CONFIG_ARCH_AT91 is not set124124+# CONFIG_ARCH_CLPS7500 is not set125125+# CONFIG_ARCH_CLPS711X is not set126126+# CONFIG_ARCH_CO285 is not set127127+# CONFIG_ARCH_EBSA110 is not set128128+# CONFIG_ARCH_EP93XX is not set129129+# CONFIG_ARCH_FOOTBRIDGE is not set130130+# CONFIG_ARCH_NETX is not set131131+# CONFIG_ARCH_H720X is not set132132+# CONFIG_ARCH_IMX is not set133133+# CONFIG_ARCH_IOP13XX is not set134134+# CONFIG_ARCH_IOP32X is not set135135+# CONFIG_ARCH_IOP33X is not set136136+# CONFIG_ARCH_IXP23XX is not set137137+# CONFIG_ARCH_IXP2000 is not set138138+# CONFIG_ARCH_IXP4XX is not set139139+# CONFIG_ARCH_L7200 is not set140140+# CONFIG_ARCH_KS8695 is not set141141+# CONFIG_ARCH_NS9XXX is not set142142+# CONFIG_ARCH_PNX4008 is not set143143+CONFIG_ARCH_PXA=y144144+# CONFIG_ARCH_RPC is not set145145+# CONFIG_ARCH_SA1100 is not set146146+# CONFIG_ARCH_S3C2410 is not set147147+# CONFIG_ARCH_SHARK is not set148148+# CONFIG_ARCH_LH7A40X is not set149149+# CONFIG_ARCH_DAVINCI is not set150150+# CONFIG_ARCH_OMAP is not set151151+152152+#153153+# Intel PXA2xx Implementations154154+#155155+# CONFIG_ARCH_LUBBOCK is not set156156+# CONFIG_MACH_LOGICPD_PXA270 is not set157157+# CONFIG_MACH_MAINSTONE is not set158158+# CONFIG_ARCH_PXA_IDP is not set159159+# CONFIG_PXA_SHARPSL is not set160160+# CONFIG_MACH_TRIZEPS4 is not set161161+CONFIG_MACH_EM_X270=y162162+CONFIG_PXA27x=y163163+164164+#165165+# Processor Type166166+#167167+CONFIG_CPU_32=y168168+CONFIG_CPU_XSCALE=y169169+CONFIG_CPU_32v5=y170170+CONFIG_CPU_ABRT_EV5T=y171171+CONFIG_CPU_CACHE_VIVT=y172172+CONFIG_CPU_TLB_V4WBI=y173173+CONFIG_CPU_CP15=y174174+CONFIG_CPU_CP15_MMU=y175175+176176+#177177+# Processor Features178178+#179179+CONFIG_ARM_THUMB=y180180+# CONFIG_CPU_DCACHE_DISABLE is not set181181+# CONFIG_OUTER_CACHE is not set182182+CONFIG_IWMMXT=y183183+CONFIG_XSCALE_PMU=y184184+185185+#186186+# Bus support187187+#188188+# CONFIG_ARCH_SUPPORTS_MSI is not set189189+190190+#191191+# PCCARD (PCMCIA/CardBus) support192192+#193193+# CONFIG_PCCARD is not set194194+195195+#196196+# Kernel Features197197+#198198+# CONFIG_TICK_ONESHOT is not set199199+# CONFIG_PREEMPT is not set200200+# CONFIG_NO_IDLE_HZ is not set201201+CONFIG_HZ=100202202+CONFIG_AEABI=y203203+CONFIG_OABI_COMPAT=y204204+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set205205+CONFIG_SELECT_MEMORY_MODEL=y206206+CONFIG_FLATMEM_MANUAL=y207207+# CONFIG_DISCONTIGMEM_MANUAL is not set208208+# CONFIG_SPARSEMEM_MANUAL is not set209209+CONFIG_FLATMEM=y210210+CONFIG_FLAT_NODE_MEM_MAP=y211211+# CONFIG_SPARSEMEM_STATIC is not set212212+CONFIG_SPLIT_PTLOCK_CPUS=4096213213+# CONFIG_RESOURCES_64BIT is not set214214+CONFIG_ZONE_DMA_FLAG=1215215+CONFIG_ALIGNMENT_TRAP=y216216+217217+#218218+# Boot options219219+#220220+CONFIG_ZBOOT_ROM_TEXT=0x0221221+CONFIG_ZBOOT_ROM_BSS=0x0222222+CONFIG_CMDLINE=""223223+# CONFIG_XIP_KERNEL is not set224224+# CONFIG_KEXEC is not set225225+226226+#227227+# Floating point emulation228228+#229229+230230+#231231+# At least one emulation must be selected232232+#233233+CONFIG_FPE_NWFPE=y234234+# CONFIG_FPE_NWFPE_XP is not set235235+# CONFIG_FPE_FASTFPE is not set236236+237237+#238238+# Userspace binary formats239239+#240240+CONFIG_BINFMT_ELF=y241241+# CONFIG_BINFMT_AOUT is not set242242+# CONFIG_BINFMT_MISC is not set243243+244244+#245245+# Power management options246246+#247247+CONFIG_PM=y248248+CONFIG_PM_LEGACY=y249249+# CONFIG_PM_DEBUG is not set250250+# CONFIG_PM_SYSFS_DEPRECATED is not set251251+CONFIG_APM_EMULATION=m252252+253253+#254254+# Networking255255+#256256+CONFIG_NET=y257257+258258+#259259+# Networking options260260+#261261+CONFIG_PACKET=y262262+# CONFIG_PACKET_MMAP is not set263263+CONFIG_UNIX=y264264+CONFIG_XFRM=y265265+# CONFIG_XFRM_USER is not set266266+# CONFIG_XFRM_SUB_POLICY is not set267267+# CONFIG_XFRM_MIGRATE is not set268268+# CONFIG_NET_KEY is not set269269+CONFIG_INET=y270270+# CONFIG_IP_MULTICAST is not set271271+# CONFIG_IP_ADVANCED_ROUTER is not set272272+CONFIG_IP_FIB_HASH=y273273+CONFIG_IP_PNP=y274274+CONFIG_IP_PNP_DHCP=y275275+CONFIG_IP_PNP_BOOTP=y276276+# CONFIG_IP_PNP_RARP is not set277277+# CONFIG_NET_IPIP is not set278278+# CONFIG_NET_IPGRE is not set279279+# CONFIG_ARPD is not set280280+# CONFIG_SYN_COOKIES is not set281281+# CONFIG_INET_AH is not set282282+# CONFIG_INET_ESP is not set283283+# CONFIG_INET_IPCOMP is not set284284+# CONFIG_INET_XFRM_TUNNEL is not set285285+# CONFIG_INET_TUNNEL is not set286286+CONFIG_INET_XFRM_MODE_TRANSPORT=y287287+CONFIG_INET_XFRM_MODE_TUNNEL=y288288+CONFIG_INET_XFRM_MODE_BEET=y289289+CONFIG_INET_DIAG=y290290+CONFIG_INET_TCP_DIAG=y291291+# CONFIG_TCP_CONG_ADVANCED is not set292292+CONFIG_TCP_CONG_CUBIC=y293293+CONFIG_DEFAULT_TCP_CONG="cubic"294294+# CONFIG_TCP_MD5SIG is not set295295+# CONFIG_IPV6 is not set296296+# CONFIG_INET6_XFRM_TUNNEL is not set297297+# CONFIG_INET6_TUNNEL is not set298298+# CONFIG_NETWORK_SECMARK is not set299299+# CONFIG_NETFILTER is not set300300+# CONFIG_IP_DCCP is not set301301+# CONFIG_IP_SCTP is not set302302+# CONFIG_TIPC is not set303303+# CONFIG_ATM is not set304304+# CONFIG_BRIDGE is not set305305+# CONFIG_VLAN_8021Q is not set306306+# CONFIG_DECNET is not set307307+# CONFIG_LLC2 is not set308308+# CONFIG_IPX is not set309309+# CONFIG_ATALK is not set310310+# CONFIG_X25 is not set311311+# CONFIG_LAPB is not set312312+# CONFIG_ECONET is not set313313+# CONFIG_WAN_ROUTER is not set314314+315315+#316316+# QoS and/or fair queueing317317+#318318+# CONFIG_NET_SCHED is not set319319+320320+#321321+# Network testing322322+#323323+# CONFIG_NET_PKTGEN is not set324324+# CONFIG_HAMRADIO is not set325325+# CONFIG_IRDA is not set326326+CONFIG_BT=m327327+CONFIG_BT_L2CAP=m328328+CONFIG_BT_SCO=m329329+CONFIG_BT_RFCOMM=m330330+# CONFIG_BT_RFCOMM_TTY is not set331331+CONFIG_BT_BNEP=m332332+# CONFIG_BT_BNEP_MC_FILTER is not set333333+# CONFIG_BT_BNEP_PROTO_FILTER is not set334334+CONFIG_BT_HIDP=m335335+336336+#337337+# Bluetooth device drivers338338+#339339+CONFIG_BT_HCIUSB=m340340+# CONFIG_BT_HCIUSB_SCO is not set341341+CONFIG_BT_HCIUART=m342342+# CONFIG_BT_HCIUART_H4 is not set343343+# CONFIG_BT_HCIUART_BCSP is not set344344+CONFIG_BT_HCIBCM203X=m345345+CONFIG_BT_HCIBPA10X=m346346+CONFIG_BT_HCIBFUSB=m347347+# CONFIG_BT_HCIVHCI is not set348348+# CONFIG_AF_RXRPC is not set349349+350350+#351351+# Wireless352352+#353353+# CONFIG_CFG80211 is not set354354+# CONFIG_WIRELESS_EXT is not set355355+# CONFIG_MAC80211 is not set356356+CONFIG_IEEE80211=m357357+# CONFIG_IEEE80211_DEBUG is not set358358+CONFIG_IEEE80211_CRYPT_WEP=m359359+CONFIG_IEEE80211_CRYPT_CCMP=m360360+# CONFIG_IEEE80211_CRYPT_TKIP is not set361361+# CONFIG_IEEE80211_SOFTMAC is not set362362+# CONFIG_RFKILL is not set363363+364364+#365365+# Device Drivers366366+#367367+368368+#369369+# Generic Driver Options370370+#371371+CONFIG_STANDALONE=y372372+CONFIG_PREVENT_FIRMWARE_BUILD=y373373+CONFIG_FW_LOADER=y374374+# CONFIG_DEBUG_DRIVER is not set375375+# CONFIG_DEBUG_DEVRES is not set376376+# CONFIG_SYS_HYPERVISOR is not set377377+378378+#379379+# Connector - unified userspace <-> kernelspace linker380380+#381381+# CONFIG_CONNECTOR is not set382382+CONFIG_MTD=y383383+# CONFIG_MTD_DEBUG is not set384384+CONFIG_MTD_CONCAT=y385385+CONFIG_MTD_PARTITIONS=y386386+# CONFIG_MTD_REDBOOT_PARTS is not set387387+# CONFIG_MTD_CMDLINE_PARTS is not set388388+# CONFIG_MTD_AFS_PARTS is not set389389+390390+#391391+# User Modules And Translation Layers392392+#393393+CONFIG_MTD_CHAR=y394394+CONFIG_MTD_BLKDEVS=y395395+CONFIG_MTD_BLOCK=y396396+# CONFIG_FTL is not set397397+# CONFIG_NFTL is not set398398+# CONFIG_INFTL is not set399399+# CONFIG_RFD_FTL is not set400400+# CONFIG_SSFDC is not set401401+402402+#403403+# RAM/ROM/Flash chip drivers404404+#405405+# CONFIG_MTD_CFI is not set406406+# CONFIG_MTD_JEDECPROBE is not set407407+# CONFIG_MTD_CFI_NOSWAP is not set408408+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set409409+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set410410+CONFIG_MTD_MAP_BANK_WIDTH_1=y411411+CONFIG_MTD_MAP_BANK_WIDTH_2=y412412+CONFIG_MTD_MAP_BANK_WIDTH_4=y413413+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set414414+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set415415+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set416416+CONFIG_MTD_CFI_I1=y417417+CONFIG_MTD_CFI_I2=y418418+# CONFIG_MTD_CFI_I4 is not set419419+# CONFIG_MTD_CFI_I8 is not set420420+# CONFIG_MTD_RAM is not set421421+# CONFIG_MTD_ROM is not set422422+# CONFIG_MTD_ABSENT is not set423423+424424+#425425+# Mapping drivers for chip access426426+#427427+# CONFIG_MTD_COMPLEX_MAPPINGS is not set428428+# CONFIG_MTD_SHARP_SL is not set429429+# CONFIG_MTD_PLATRAM is not set430430+431431+#432432+# Self-contained MTD device drivers433433+#434434+# CONFIG_MTD_SLRAM is not set435435+# CONFIG_MTD_PHRAM is not set436436+# CONFIG_MTD_MTDRAM is not set437437+# CONFIG_MTD_BLOCK2MTD is not set438438+439439+#440440+# Disk-On-Chip Device Drivers441441+#442442+# CONFIG_MTD_DOC2000 is not set443443+# CONFIG_MTD_DOC2001 is not set444444+# CONFIG_MTD_DOC2001PLUS is not set445445+CONFIG_MTD_NAND=y446446+# CONFIG_MTD_NAND_VERIFY_WRITE is not set447447+# CONFIG_MTD_NAND_ECC_SMC is not set448448+# CONFIG_MTD_NAND_MUSEUM_IDS is not set449449+# CONFIG_MTD_NAND_H1900 is not set450450+CONFIG_MTD_NAND_IDS=y451451+# CONFIG_MTD_NAND_DISKONCHIP is not set452452+# CONFIG_MTD_NAND_SHARPSL is not set453453+# CONFIG_MTD_NAND_NANDSIM is not set454454+CONFIG_MTD_NAND_PLATFORM=y455455+# CONFIG_MTD_ONENAND is not set456456+457457+#458458+# UBI - Unsorted block images459459+#460460+# CONFIG_MTD_UBI is not set461461+462462+#463463+# Parallel port support464464+#465465+# CONFIG_PARPORT is not set466466+467467+#468468+# Plug and Play support469469+#470470+# CONFIG_PNPACPI is not set471471+472472+#473473+# Block devices474474+#475475+# CONFIG_BLK_DEV_COW_COMMON is not set476476+CONFIG_BLK_DEV_LOOP=y477477+# CONFIG_BLK_DEV_CRYPTOLOOP is not set478478+# CONFIG_BLK_DEV_NBD is not set479479+# CONFIG_BLK_DEV_UB is not set480480+CONFIG_BLK_DEV_RAM=y481481+CONFIG_BLK_DEV_RAM_COUNT=16482482+CONFIG_BLK_DEV_RAM_SIZE=12000483483+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024484484+# CONFIG_CDROM_PKTCDVD is not set485485+# CONFIG_ATA_OVER_ETH is not set486486+# CONFIG_IDE is not set487487+488488+#489489+# SCSI device support490490+#491491+# CONFIG_RAID_ATTRS is not set492492+CONFIG_SCSI=y493493+# CONFIG_SCSI_TGT is not set494494+# CONFIG_SCSI_NETLINK is not set495495+# CONFIG_SCSI_PROC_FS is not set496496+497497+#498498+# SCSI support type (disk, tape, CD-ROM)499499+#500500+CONFIG_BLK_DEV_SD=y501501+# CONFIG_CHR_DEV_ST is not set502502+# CONFIG_CHR_DEV_OSST is not set503503+# CONFIG_BLK_DEV_SR is not set504504+# CONFIG_CHR_DEV_SG is not set505505+# CONFIG_CHR_DEV_SCH is not set506506+507507+#508508+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs509509+#510510+# CONFIG_SCSI_MULTI_LUN is not set511511+# CONFIG_SCSI_CONSTANTS is not set512512+# CONFIG_SCSI_LOGGING is not set513513+# CONFIG_SCSI_SCAN_ASYNC is not set514514+CONFIG_SCSI_WAIT_SCAN=m515515+516516+#517517+# SCSI Transports518518+#519519+# CONFIG_SCSI_SPI_ATTRS is not set520520+# CONFIG_SCSI_FC_ATTRS is not set521521+# CONFIG_SCSI_ISCSI_ATTRS is not set522522+# CONFIG_SCSI_SAS_ATTRS is not set523523+# CONFIG_SCSI_SAS_LIBSAS is not set524524+525525+#526526+# SCSI low-level drivers527527+#528528+# CONFIG_ISCSI_TCP is not set529529+# CONFIG_SCSI_DEBUG is not set530530+# CONFIG_ATA is not set531531+532532+#533533+# Multi-device support (RAID and LVM)534534+#535535+# CONFIG_MD is not set536536+537537+#538538+# Network device support539539+#540540+CONFIG_NETDEVICES=y541541+# CONFIG_DUMMY is not set542542+# CONFIG_BONDING is not set543543+# CONFIG_EQUALIZER is not set544544+# CONFIG_TUN is not set545545+# CONFIG_PHYLIB is not set546546+547547+#548548+# Ethernet (10 or 100Mbit)549549+#550550+CONFIG_NET_ETHERNET=y551551+CONFIG_MII=y552552+# CONFIG_SMC91X is not set553553+CONFIG_DM9000=y554554+# CONFIG_SMC911X is not set555555+# CONFIG_NETDEV_1000 is not set556556+# CONFIG_NETDEV_10000 is not set557557+558558+#559559+# Wireless LAN560560+#561561+# CONFIG_WLAN_PRE80211 is not set562562+# CONFIG_WLAN_80211 is not set563563+564564+#565565+# USB Network Adapters566566+#567567+# CONFIG_USB_CATC is not set568568+# CONFIG_USB_KAWETH is not set569569+# CONFIG_USB_PEGASUS is not set570570+# CONFIG_USB_RTL8150 is not set571571+# CONFIG_USB_USBNET_MII is not set572572+# CONFIG_USB_USBNET is not set573573+# CONFIG_WAN is not set574574+# CONFIG_PPP is not set575575+# CONFIG_SLIP is not set576576+# CONFIG_SHAPER is not set577577+# CONFIG_NETCONSOLE is not set578578+# CONFIG_NETPOLL is not set579579+# CONFIG_NET_POLL_CONTROLLER is not set580580+581581+#582582+# ISDN subsystem583583+#584584+# CONFIG_ISDN is not set585585+586586+#587587+# Input device support588588+#589589+CONFIG_INPUT=y590590+# CONFIG_INPUT_FF_MEMLESS is not set591591+# CONFIG_INPUT_POLLDEV is not set592592+593593+#594594+# Userland interfaces595595+#596596+CONFIG_INPUT_MOUSEDEV=y597597+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set598598+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024599599+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768600600+# CONFIG_INPUT_JOYDEV is not set601601+# CONFIG_INPUT_TSDEV is not set602602+CONFIG_INPUT_EVDEV=y603603+# CONFIG_INPUT_EVBUG is not set604604+605605+#606606+# Input Device Drivers607607+#608608+CONFIG_INPUT_KEYBOARD=y609609+# CONFIG_KEYBOARD_ATKBD is not set610610+# CONFIG_KEYBOARD_SUNKBD is not set611611+# CONFIG_KEYBOARD_LKKBD is not set612612+# CONFIG_KEYBOARD_XTKBD is not set613613+# CONFIG_KEYBOARD_NEWTON is not set614614+# CONFIG_KEYBOARD_STOWAWAY is not set615615+CONFIG_KEYBOARD_PXA27x=m616616+# CONFIG_KEYBOARD_GPIO is not set617617+# CONFIG_INPUT_MOUSE is not set618618+# CONFIG_INPUT_JOYSTICK is not set619619+# CONFIG_INPUT_TABLET is not set620620+CONFIG_INPUT_TOUCHSCREEN=y621621+# CONFIG_TOUCHSCREEN_GUNZE is not set622622+# CONFIG_TOUCHSCREEN_ELO is not set623623+# CONFIG_TOUCHSCREEN_MTOUCH is not set624624+# CONFIG_TOUCHSCREEN_MK712 is not set625625+# CONFIG_TOUCHSCREEN_PENMOUNT is not set626626+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set627627+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set628628+# CONFIG_TOUCHSCREEN_UCB1400 is not set629629+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set630630+# CONFIG_INPUT_MISC is not set631631+632632+#633633+# Hardware I/O ports634634+#635635+CONFIG_SERIO=y636636+# CONFIG_SERIO_SERPORT is not set637637+CONFIG_SERIO_LIBPS2=y638638+# CONFIG_SERIO_RAW is not set639639+# CONFIG_GAMEPORT is not set640640+641641+#642642+# Character devices643643+#644644+CONFIG_VT=y645645+CONFIG_VT_CONSOLE=y646646+CONFIG_HW_CONSOLE=y647647+# CONFIG_VT_HW_CONSOLE_BINDING is not set648648+# CONFIG_SERIAL_NONSTANDARD is not set649649+650650+#651651+# Serial drivers652652+#653653+# CONFIG_SERIAL_8250 is not set654654+655655+#656656+# Non-8250 serial port support657657+#658658+CONFIG_SERIAL_PXA=y659659+CONFIG_SERIAL_PXA_CONSOLE=y660660+CONFIG_SERIAL_CORE=y661661+CONFIG_SERIAL_CORE_CONSOLE=y662662+CONFIG_UNIX98_PTYS=y663663+CONFIG_LEGACY_PTYS=y664664+CONFIG_LEGACY_PTY_COUNT=256665665+666666+#667667+# IPMI668668+#669669+# CONFIG_IPMI_HANDLER is not set670670+# CONFIG_WATCHDOG is not set671671+CONFIG_HW_RANDOM=m672672+# CONFIG_NVRAM is not set673673+# CONFIG_R3964 is not set674674+# CONFIG_RAW_DRIVER is not set675675+676676+#677677+# TPM devices678678+#679679+# CONFIG_TCG_TPM is not set680680+# CONFIG_I2C is not set681681+682682+#683683+# SPI support684684+#685685+# CONFIG_SPI is not set686686+# CONFIG_SPI_MASTER is not set687687+688688+#689689+# Dallas's 1-wire bus690690+#691691+# CONFIG_W1 is not set692692+# CONFIG_HWMON is not set693693+694694+#695695+# Misc devices696696+#697697+698698+#699699+# Multifunction device drivers700700+#701701+# CONFIG_MFD_SM501 is not set702702+703703+#704704+# LED devices705705+#706706+# CONFIG_NEW_LEDS is not set707707+708708+#709709+# LED drivers710710+#711711+712712+#713713+# LED Triggers714714+#715715+716716+#717717+# Multimedia devices718718+#719719+# CONFIG_VIDEO_DEV is not set720720+# CONFIG_DVB_CORE is not set721721+# CONFIG_DAB is not set722722+723723+#724724+# Graphics support725725+#726726+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set727727+728728+#729729+# Display device support730730+#731731+# CONFIG_DISPLAY_SUPPORT is not set732732+# CONFIG_VGASTATE is not set733733+CONFIG_FB=y734734+# CONFIG_FIRMWARE_EDID is not set735735+# CONFIG_FB_DDC is not set736736+CONFIG_FB_CFB_FILLRECT=y737737+CONFIG_FB_CFB_COPYAREA=y738738+CONFIG_FB_CFB_IMAGEBLIT=y739739+# CONFIG_FB_SYS_FILLRECT is not set740740+# CONFIG_FB_SYS_COPYAREA is not set741741+# CONFIG_FB_SYS_IMAGEBLIT is not set742742+# CONFIG_FB_SYS_FOPS is not set743743+CONFIG_FB_DEFERRED_IO=y744744+# CONFIG_FB_SVGALIB is not set745745+# CONFIG_FB_MACMODES is not set746746+# CONFIG_FB_BACKLIGHT is not set747747+# CONFIG_FB_MODE_HELPERS is not set748748+# CONFIG_FB_TILEBLITTING is not set749749+750750+#751751+# Frame buffer hardware drivers752752+#753753+# CONFIG_FB_S1D13XXX is not set754754+CONFIG_FB_PXA=y755755+# CONFIG_FB_PXA_PARAMETERS is not set756756+# CONFIG_FB_MBX is not set757757+# CONFIG_FB_VIRTUAL is not set758758+759759+#760760+# Console display driver support761761+#762762+# CONFIG_VGA_CONSOLE is not set763763+CONFIG_DUMMY_CONSOLE=y764764+CONFIG_FRAMEBUFFER_CONSOLE=y765765+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set766766+# CONFIG_FONTS is not set767767+CONFIG_FONT_8x8=y768768+CONFIG_FONT_8x16=y769769+CONFIG_LOGO=y770770+CONFIG_LOGO_LINUX_MONO=y771771+CONFIG_LOGO_LINUX_VGA16=y772772+CONFIG_LOGO_LINUX_CLUT224=y773773+774774+#775775+# Sound776776+#777777+CONFIG_SOUND=m778778+779779+#780780+# Advanced Linux Sound Architecture781781+#782782+CONFIG_SND=m783783+CONFIG_SND_TIMER=m784784+CONFIG_SND_PCM=m785785+# CONFIG_SND_SEQUENCER is not set786786+CONFIG_SND_OSSEMUL=y787787+CONFIG_SND_MIXER_OSS=m788788+CONFIG_SND_PCM_OSS=m789789+CONFIG_SND_PCM_OSS_PLUGINS=y790790+# CONFIG_SND_DYNAMIC_MINORS is not set791791+CONFIG_SND_SUPPORT_OLD_API=y792792+CONFIG_SND_VERBOSE_PROCFS=y793793+# CONFIG_SND_VERBOSE_PRINTK is not set794794+# CONFIG_SND_DEBUG is not set795795+796796+#797797+# Generic devices798798+#799799+CONFIG_SND_AC97_CODEC=m800800+# CONFIG_SND_DUMMY is not set801801+# CONFIG_SND_MTPAV is not set802802+# CONFIG_SND_SERIAL_U16550 is not set803803+# CONFIG_SND_MPU401 is not set804804+805805+#806806+# ALSA ARM devices807807+#808808+CONFIG_SND_PXA2XX_PCM=m809809+CONFIG_SND_PXA2XX_AC97=m810810+811811+#812812+# USB devices813813+#814814+# CONFIG_SND_USB_AUDIO is not set815815+# CONFIG_SND_USB_CAIAQ is not set816816+817817+#818818+# System on Chip audio support819819+#820820+# CONFIG_SND_SOC is not set821821+822822+#823823+# Open Sound System824824+#825825+# CONFIG_SOUND_PRIME is not set826826+CONFIG_AC97_BUS=m827827+828828+#829829+# HID Devices830830+#831831+CONFIG_HID=y832832+# CONFIG_HID_DEBUG is not set833833+834834+#835835+# USB Input Devices836836+#837837+CONFIG_USB_HID=y838838+# CONFIG_USB_HIDINPUT_POWERBOOK is not set839839+# CONFIG_HID_FF is not set840840+# CONFIG_USB_HIDDEV is not set841841+842842+#843843+# USB support844844+#845845+CONFIG_USB_ARCH_HAS_HCD=y846846+CONFIG_USB_ARCH_HAS_OHCI=y847847+# CONFIG_USB_ARCH_HAS_EHCI is not set848848+CONFIG_USB=y849849+# CONFIG_USB_DEBUG is not set850850+851851+#852852+# Miscellaneous USB options853853+#854854+CONFIG_USB_DEVICEFS=y855855+# CONFIG_USB_DEVICE_CLASS is not set856856+# CONFIG_USB_DYNAMIC_MINORS is not set857857+# CONFIG_USB_SUSPEND is not set858858+# CONFIG_USB_OTG is not set859859+860860+#861861+# USB Host Controller Drivers862862+#863863+# CONFIG_USB_ISP116X_HCD is not set864864+CONFIG_USB_OHCI_HCD=y865865+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set866866+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set867867+CONFIG_USB_OHCI_LITTLE_ENDIAN=y868868+# CONFIG_USB_SL811_HCD is not set869869+870870+#871871+# USB Device Class drivers872872+#873873+# CONFIG_USB_ACM is not set874874+# CONFIG_USB_PRINTER is not set875875+876876+#877877+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'878878+#879879+880880+#881881+# may also be needed; see USB_STORAGE Help for more information882882+#883883+CONFIG_USB_STORAGE=y884884+# CONFIG_USB_STORAGE_DEBUG is not set885885+# CONFIG_USB_STORAGE_DATAFAB is not set886886+# CONFIG_USB_STORAGE_FREECOM is not set887887+# CONFIG_USB_STORAGE_DPCM is not set888888+# CONFIG_USB_STORAGE_USBAT is not set889889+# CONFIG_USB_STORAGE_SDDR09 is not set890890+# CONFIG_USB_STORAGE_SDDR55 is not set891891+# CONFIG_USB_STORAGE_JUMPSHOT is not set892892+# CONFIG_USB_STORAGE_ALAUDA is not set893893+# CONFIG_USB_STORAGE_KARMA is not set894894+# CONFIG_USB_LIBUSUAL is not set895895+896896+#897897+# USB Imaging devices898898+#899899+# CONFIG_USB_MDC800 is not set900900+# CONFIG_USB_MICROTEK is not set901901+# CONFIG_USB_MON is not set902902+903903+#904904+# USB port drivers905905+#906906+907907+#908908+# USB Serial Converter support909909+#910910+# CONFIG_USB_SERIAL is not set911911+912912+#913913+# USB Miscellaneous drivers914914+#915915+# CONFIG_USB_EMI62 is not set916916+# CONFIG_USB_EMI26 is not set917917+# CONFIG_USB_ADUTUX is not set918918+# CONFIG_USB_AUERSWALD is not set919919+# CONFIG_USB_RIO500 is not set920920+# CONFIG_USB_LEGOTOWER is not set921921+# CONFIG_USB_LCD is not set922922+# CONFIG_USB_BERRY_CHARGE is not set923923+# CONFIG_USB_LED is not set924924+# CONFIG_USB_CYPRESS_CY7C63 is not set925925+# CONFIG_USB_CYTHERM is not set926926+# CONFIG_USB_PHIDGET is not set927927+# CONFIG_USB_IDMOUSE is not set928928+# CONFIG_USB_FTDI_ELAN is not set929929+# CONFIG_USB_APPLEDISPLAY is not set930930+# CONFIG_USB_LD is not set931931+# CONFIG_USB_TRANCEVIBRATOR is not set932932+# CONFIG_USB_IOWARRIOR is not set933933+# CONFIG_USB_TEST is not set934934+935935+#936936+# USB DSL modem support937937+#938938+939939+#940940+# USB Gadget Support941941+#942942+# CONFIG_USB_GADGET is not set943943+CONFIG_MMC=m944944+# CONFIG_MMC_DEBUG is not set945945+# CONFIG_MMC_UNSAFE_RESUME is not set946946+947947+#948948+# MMC/SD Card Drivers949949+#950950+CONFIG_MMC_BLOCK=m951951+952952+#953953+# MMC/SD Host Controller Drivers954954+#955955+CONFIG_MMC_PXA=m956956+957957+#958958+# Real Time Clock959959+#960960+CONFIG_RTC_LIB=y961961+CONFIG_RTC_CLASS=m962962+963963+#964964+# RTC interfaces965965+#966966+CONFIG_RTC_INTF_SYSFS=y967967+CONFIG_RTC_INTF_PROC=y968968+CONFIG_RTC_INTF_DEV=y969969+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set970970+# CONFIG_RTC_DRV_TEST is not set971971+972972+#973973+# I2C RTC drivers974974+#975975+976976+#977977+# SPI RTC drivers978978+#979979+980980+#981981+# Platform RTC drivers982982+#983983+# CONFIG_RTC_DRV_CMOS is not set984984+# CONFIG_RTC_DRV_DS1553 is not set985985+# CONFIG_RTC_DRV_DS1742 is not set986986+# CONFIG_RTC_DRV_M48T86 is not set987987+CONFIG_RTC_DRV_V3020=m988988+989989+#990990+# on-CPU RTC drivers991991+#992992+CONFIG_RTC_DRV_SA1100=m993993+994994+#995995+# File systems996996+#997997+CONFIG_EXT2_FS=y998998+# CONFIG_EXT2_FS_XATTR is not set999999+# CONFIG_EXT2_FS_XIP is not set10001000+CONFIG_EXT3_FS=y10011001+CONFIG_EXT3_FS_XATTR=y10021002+# CONFIG_EXT3_FS_POSIX_ACL is not set10031003+# CONFIG_EXT3_FS_SECURITY is not set10041004+# CONFIG_EXT4DEV_FS is not set10051005+CONFIG_JBD=y10061006+# CONFIG_JBD_DEBUG is not set10071007+CONFIG_FS_MBCACHE=y10081008+# CONFIG_REISERFS_FS is not set10091009+# CONFIG_JFS_FS is not set10101010+# CONFIG_FS_POSIX_ACL is not set10111011+# CONFIG_XFS_FS is not set10121012+# CONFIG_GFS2_FS is not set10131013+# CONFIG_OCFS2_FS is not set10141014+# CONFIG_MINIX_FS is not set10151015+# CONFIG_ROMFS_FS is not set10161016+CONFIG_INOTIFY=y10171017+CONFIG_INOTIFY_USER=y10181018+# CONFIG_QUOTA is not set10191019+CONFIG_DNOTIFY=y10201020+# CONFIG_AUTOFS_FS is not set10211021+# CONFIG_AUTOFS4_FS is not set10221022+# CONFIG_FUSE_FS is not set10231023+10241024+#10251025+# CD-ROM/DVD Filesystems10261026+#10271027+# CONFIG_ISO9660_FS is not set10281028+# CONFIG_UDF_FS is not set10291029+10301030+#10311031+# DOS/FAT/NT Filesystems10321032+#10331033+CONFIG_FAT_FS=y10341034+CONFIG_MSDOS_FS=y10351035+CONFIG_VFAT_FS=y10361036+CONFIG_FAT_DEFAULT_CODEPAGE=43710371037+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"10381038+# CONFIG_NTFS_FS is not set10391039+10401040+#10411041+# Pseudo filesystems10421042+#10431043+CONFIG_PROC_FS=y10441044+CONFIG_PROC_SYSCTL=y10451045+CONFIG_SYSFS=y10461046+CONFIG_TMPFS=y10471047+# CONFIG_TMPFS_POSIX_ACL is not set10481048+# CONFIG_HUGETLB_PAGE is not set10491049+CONFIG_RAMFS=y10501050+# CONFIG_CONFIGFS_FS is not set10511051+10521052+#10531053+# Miscellaneous filesystems10541054+#10551055+# CONFIG_ADFS_FS is not set10561056+# CONFIG_AFFS_FS is not set10571057+# CONFIG_HFS_FS is not set10581058+# CONFIG_HFSPLUS_FS is not set10591059+# CONFIG_BEFS_FS is not set10601060+# CONFIG_BFS_FS is not set10611061+# CONFIG_EFS_FS is not set10621062+CONFIG_JFFS2_FS=y10631063+CONFIG_JFFS2_FS_DEBUG=010641064+CONFIG_JFFS2_FS_WRITEBUFFER=y10651065+CONFIG_JFFS2_SUMMARY=y10661066+# CONFIG_JFFS2_FS_XATTR is not set10671067+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set10681068+CONFIG_JFFS2_ZLIB=y10691069+CONFIG_JFFS2_RTIME=y10701070+# CONFIG_JFFS2_RUBIN is not set10711071+# CONFIG_CRAMFS is not set10721072+# CONFIG_VXFS_FS is not set10731073+# CONFIG_HPFS_FS is not set10741074+# CONFIG_QNX4FS_FS is not set10751075+# CONFIG_SYSV_FS is not set10761076+# CONFIG_UFS_FS is not set10771077+10781078+#10791079+# Network File Systems10801080+#10811081+CONFIG_NFS_FS=y10821082+CONFIG_NFS_V3=y10831083+# CONFIG_NFS_V3_ACL is not set10841084+# CONFIG_NFS_V4 is not set10851085+# CONFIG_NFS_DIRECTIO is not set10861086+# CONFIG_NFSD is not set10871087+CONFIG_ROOT_NFS=y10881088+CONFIG_LOCKD=y10891089+CONFIG_LOCKD_V4=y10901090+CONFIG_NFS_COMMON=y10911091+CONFIG_SUNRPC=y10921092+# CONFIG_SUNRPC_BIND34 is not set10931093+# CONFIG_RPCSEC_GSS_KRB5 is not set10941094+# CONFIG_RPCSEC_GSS_SPKM3 is not set10951095+CONFIG_SMB_FS=y10961096+# CONFIG_SMB_NLS_DEFAULT is not set10971097+# CONFIG_CIFS is not set10981098+# CONFIG_NCP_FS is not set10991099+# CONFIG_CODA_FS is not set11001100+# CONFIG_AFS_FS is not set11011101+# CONFIG_9P_FS is not set11021102+11031103+#11041104+# Partition Types11051105+#11061106+# CONFIG_PARTITION_ADVANCED is not set11071107+CONFIG_MSDOS_PARTITION=y11081108+11091109+#11101110+# Native Language Support11111111+#11121112+CONFIG_NLS=y11131113+CONFIG_NLS_DEFAULT="iso8859-1"11141114+CONFIG_NLS_CODEPAGE_437=y11151115+# CONFIG_NLS_CODEPAGE_737 is not set11161116+# CONFIG_NLS_CODEPAGE_775 is not set11171117+# CONFIG_NLS_CODEPAGE_850 is not set11181118+# CONFIG_NLS_CODEPAGE_852 is not set11191119+# CONFIG_NLS_CODEPAGE_855 is not set11201120+# CONFIG_NLS_CODEPAGE_857 is not set11211121+# CONFIG_NLS_CODEPAGE_860 is not set11221122+# CONFIG_NLS_CODEPAGE_861 is not set11231123+# CONFIG_NLS_CODEPAGE_862 is not set11241124+# CONFIG_NLS_CODEPAGE_863 is not set11251125+# CONFIG_NLS_CODEPAGE_864 is not set11261126+# CONFIG_NLS_CODEPAGE_865 is not set11271127+# CONFIG_NLS_CODEPAGE_866 is not set11281128+# CONFIG_NLS_CODEPAGE_869 is not set11291129+# CONFIG_NLS_CODEPAGE_936 is not set11301130+# CONFIG_NLS_CODEPAGE_950 is not set11311131+# CONFIG_NLS_CODEPAGE_932 is not set11321132+# CONFIG_NLS_CODEPAGE_949 is not set11331133+# CONFIG_NLS_CODEPAGE_874 is not set11341134+# CONFIG_NLS_ISO8859_8 is not set11351135+# CONFIG_NLS_CODEPAGE_1250 is not set11361136+# CONFIG_NLS_CODEPAGE_1251 is not set11371137+# CONFIG_NLS_ASCII is not set11381138+CONFIG_NLS_ISO8859_1=y11391139+# CONFIG_NLS_ISO8859_2 is not set11401140+# CONFIG_NLS_ISO8859_3 is not set11411141+# CONFIG_NLS_ISO8859_4 is not set11421142+# CONFIG_NLS_ISO8859_5 is not set11431143+# CONFIG_NLS_ISO8859_6 is not set11441144+# CONFIG_NLS_ISO8859_7 is not set11451145+# CONFIG_NLS_ISO8859_9 is not set11461146+# CONFIG_NLS_ISO8859_13 is not set11471147+# CONFIG_NLS_ISO8859_14 is not set11481148+# CONFIG_NLS_ISO8859_15 is not set11491149+# CONFIG_NLS_KOI8_R is not set11501150+# CONFIG_NLS_KOI8_U is not set11511151+CONFIG_NLS_UTF8=y11521152+11531153+#11541154+# Distributed Lock Manager11551155+#11561156+# CONFIG_DLM is not set11571157+11581158+#11591159+# Profiling support11601160+#11611161+# CONFIG_PROFILING is not set11621162+11631163+#11641164+# Kernel hacking11651165+#11661166+# CONFIG_PRINTK_TIME is not set11671167+CONFIG_ENABLE_MUST_CHECK=y11681168+CONFIG_MAGIC_SYSRQ=y11691169+# CONFIG_UNUSED_SYMBOLS is not set11701170+# CONFIG_DEBUG_FS is not set11711171+# CONFIG_HEADERS_CHECK is not set11721172+CONFIG_DEBUG_KERNEL=y11731173+# CONFIG_DEBUG_SHIRQ is not set11741174+# CONFIG_DETECT_SOFTLOCKUP is not set11751175+# CONFIG_SCHEDSTATS is not set11761176+# CONFIG_TIMER_STATS is not set11771177+# CONFIG_DEBUG_SLAB is not set11781178+# CONFIG_DEBUG_RT_MUTEXES is not set11791179+# CONFIG_RT_MUTEX_TESTER is not set11801180+# CONFIG_DEBUG_SPINLOCK is not set11811181+# CONFIG_DEBUG_MUTEXES is not set11821182+# CONFIG_DEBUG_LOCK_ALLOC is not set11831183+# CONFIG_PROVE_LOCKING is not set11841184+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set11851185+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set11861186+# CONFIG_DEBUG_KOBJECT is not set11871187+# CONFIG_DEBUG_BUGVERBOSE is not set11881188+CONFIG_DEBUG_INFO=y11891189+# CONFIG_DEBUG_VM is not set11901190+# CONFIG_DEBUG_LIST is not set11911191+CONFIG_FRAME_POINTER=y11921192+CONFIG_FORCED_INLINING=y11931193+# CONFIG_RCU_TORTURE_TEST is not set11941194+# CONFIG_FAULT_INJECTION is not set11951195+CONFIG_DEBUG_USER=y11961196+CONFIG_DEBUG_ERRORS=y11971197+CONFIG_DEBUG_LL=y11981198+# CONFIG_DEBUG_ICEDCC is not set11991199+12001200+#12011201+# Security options12021202+#12031203+# CONFIG_KEYS is not set12041204+# CONFIG_SECURITY is not set12051205+12061206+#12071207+# Cryptographic options12081208+#12091209+CONFIG_CRYPTO=y12101210+CONFIG_CRYPTO_ALGAPI=m12111211+CONFIG_CRYPTO_BLKCIPHER=m12121212+CONFIG_CRYPTO_MANAGER=m12131213+# CONFIG_CRYPTO_HMAC is not set12141214+# CONFIG_CRYPTO_XCBC is not set12151215+# CONFIG_CRYPTO_NULL is not set12161216+# CONFIG_CRYPTO_MD4 is not set12171217+# CONFIG_CRYPTO_MD5 is not set12181218+# CONFIG_CRYPTO_SHA1 is not set12191219+# CONFIG_CRYPTO_SHA256 is not set12201220+# CONFIG_CRYPTO_SHA512 is not set12211221+# CONFIG_CRYPTO_WP512 is not set12221222+# CONFIG_CRYPTO_TGR192 is not set12231223+# CONFIG_CRYPTO_GF128MUL is not set12241224+CONFIG_CRYPTO_ECB=m12251225+CONFIG_CRYPTO_CBC=m12261226+CONFIG_CRYPTO_PCBC=m12271227+# CONFIG_CRYPTO_LRW is not set12281228+# CONFIG_CRYPTO_CRYPTD is not set12291229+# CONFIG_CRYPTO_DES is not set12301230+# CONFIG_CRYPTO_FCRYPT is not set12311231+# CONFIG_CRYPTO_BLOWFISH is not set12321232+# CONFIG_CRYPTO_TWOFISH is not set12331233+# CONFIG_CRYPTO_SERPENT is not set12341234+CONFIG_CRYPTO_AES=m12351235+# CONFIG_CRYPTO_CAST5 is not set12361236+# CONFIG_CRYPTO_CAST6 is not set12371237+# CONFIG_CRYPTO_TEA is not set12381238+CONFIG_CRYPTO_ARC4=m12391239+# CONFIG_CRYPTO_KHAZAD is not set12401240+# CONFIG_CRYPTO_ANUBIS is not set12411241+# CONFIG_CRYPTO_DEFLATE is not set12421242+# CONFIG_CRYPTO_MICHAEL_MIC is not set12431243+# CONFIG_CRYPTO_CRC32C is not set12441244+# CONFIG_CRYPTO_CAMELLIA is not set12451245+# CONFIG_CRYPTO_TEST is not set12461246+12471247+#12481248+# Hardware crypto devices12491249+#12501250+12511251+#12521252+# Library routines12531253+#12541254+CONFIG_BITREVERSE=y12551255+# CONFIG_CRC_CCITT is not set12561256+# CONFIG_CRC16 is not set12571257+# CONFIG_CRC_ITU_T is not set12581258+CONFIG_CRC32=y12591259+# CONFIG_LIBCRC32C is not set12601260+CONFIG_ZLIB_INFLATE=y12611261+CONFIG_ZLIB_DEFLATE=y12621262+CONFIG_PLIST=y12631263+CONFIG_HAS_IOMEM=y12641264+CONFIG_HAS_IOPORT=y12651265+CONFIG_HAS_DMA=y
+5-5
arch/arm/configs/s3c2410_defconfig
···138138CONFIG_PLAT_S3C24XX=y139139CONFIG_CPU_S3C244X=y140140CONFIG_PM_SIMTEC=y141141-# CONFIG_S3C2410_BOOT_WATCHDOG is not set142142-# CONFIG_S3C2410_BOOT_ERROR_RESET is not set141141+# CONFIG_S3C_BOOT_WATCHDOG is not set142142+# CONFIG_S3C_BOOT_ERROR_RESET is not set143143# CONFIG_S3C2410_PM_DEBUG is not set144144# CONFIG_S3C2410_PM_CHECK is not set145145-CONFIG_S3C2410_LOWLEVEL_UART_PORT=0145145+CONFIG_S3C_LOWLEVEL_UART_PORT=0146146CONFIG_S3C2410_DMA=y147147# CONFIG_S3C2410_DMA_DEBUG is not set148148CONFIG_MACH_SMDK=y···13921392# CONFIG_DEBUG_ERRORS is not set13931393CONFIG_DEBUG_LL=y13941394# CONFIG_DEBUG_ICEDCC is not set13951395-CONFIG_DEBUG_S3C2410_PORT=y13961396-CONFIG_DEBUG_S3C2410_UART=013951395+CONFIG_DEBUG_S3C_PORT=y13961396+CONFIG_DEBUG_S3C_UART=01397139713981398#13991399# Security options
+7
arch/arm/mach-iop32x/Kconfig
···4242 Say N if the IOP is an add in card, the host system owns the PCI4343 bus in this case.44444545+config MACH_EM72104646+ bool "Enable support for the Lanner EM7210"4747+ help4848+ Say Y here if you want to run your kernel on the Lanner EM72104949+ board. Say also Y here if you have a SS4000e Baxter Creek NAS5050+ appliance."5151+4552endmenu46534754endif
···11+menu "MX3 Options"22+ depends on ARCH_MX333+44+config MACH_MX31ADS55+ bool "Support MX31ADS platforms"66+ default y77+ help88+ Include support for MX31ADS platform. This includes specific99+ configurations for the board and its peripherals.1010+1111+endmenu1212+
+8
arch/arm/mach-mx3/Makefile
···11+#22+# Makefile for the linux kernel.33+#44+55+# Object file lists.66+77+obj-y := mm.o time.o88+obj-$(CONFIG_MACH_MX31ADS) += mx31ads.o
···11+/*22+ * Copyright (C) 1999,2000 Arm Limited33+ * Copyright (C) 2000 Deep Blue Solutions Ltd44+ * Copyright (C) 2002 Shane Nay (shane@minirl.com)55+ * Copyright 2005-2007 Freescale Semiconductor, Inc. All Rights Reserved.66+ * - add MX31 specific definitions77+ *88+ * This program is free software; you can redistribute it and/or modify99+ * it under the terms of the GNU General Public License as published by1010+ * the Free Software Foundation; either version 2 of the License, or1111+ * (at your option) any later version.1212+ *1313+ * This program is distributed in the hope that it will be useful,1414+ * but WITHOUT ANY WARRANTY; without even the implied warranty of1515+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the1616+ * GNU General Public License for more details.1717+ *1818+ * You should have received a copy of the GNU General Public License1919+ * along with this program; if not, write to the Free Software2020+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA2121+ */2222+2323+#include <linux/mm.h>2424+#include <linux/init.h>2525+#include <asm/hardware.h>2626+#include <asm/pgtable.h>2727+#include <asm/mach/map.h>2828+#include <asm/arch/common.h>2929+3030+/*!3131+ * @file mm.c3232+ *3333+ * @brief This file creates static virtual to physical mappings, common to all MX3 boards.3434+ *3535+ * @ingroup Memory3636+ */3737+3838+/*!3939+ * This table defines static virtual address mappings for I/O regions.4040+ * These are the mappings common across all MX3 boards.4141+ */4242+static struct map_desc mxc_io_desc[] __initdata = {4343+ {4444+ .virtual = X_MEMC_BASE_ADDR_VIRT,4545+ .pfn = __phys_to_pfn(X_MEMC_BASE_ADDR),4646+ .length = X_MEMC_SIZE,4747+ .type = MT_DEVICE4848+ }, {4949+ .virtual = AVIC_BASE_ADDR_VIRT,5050+ .pfn = __phys_to_pfn(AVIC_BASE_ADDR),5151+ .length = AVIC_SIZE,5252+ .type = MT_NONSHARED_DEVICE5353+ },5454+};5555+5656+/*!5757+ * This function initializes the memory map. It is called during the5858+ * system startup to create static physical to virtual memory mappings5959+ * for the IO modules.6060+ */6161+void __init mxc_map_io(void)6262+{6363+ iotable_init(mxc_io_desc, ARRAY_SIZE(mxc_io_desc));6464+}
+142
arch/arm/mach-mx3/mx31ads.c
···11+/*22+ * Copyright (C) 2000 Deep Blue Solutions Ltd33+ * Copyright (C) 2002 Shane Nay (shane@minirl.com)44+ * Copyright 2005-2007 Freescale Semiconductor, Inc. All Rights Reserved.55+ *66+ * This program is free software; you can redistribute it and/or modify77+ * it under the terms of the GNU General Public License as published by88+ * the Free Software Foundation; either version 2 of the License, or99+ * (at your option) any later version.1010+ *1111+ * This program is distributed in the hope that it will be useful,1212+ * but WITHOUT ANY WARRANTY; without even the implied warranty of1313+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the1414+ * GNU General Public License for more details.1515+ *1616+ * You should have received a copy of the GNU General Public License1717+ * along with this program; if not, write to the Free Software1818+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA1919+ */2020+2121+#include <linux/types.h>2222+#include <linux/init.h>2323+#include <linux/clk.h>2424+#include <linux/serial_8250.h>2525+2626+#include <asm/hardware.h>2727+#include <asm/mach-types.h>2828+#include <asm/mach/arch.h>2929+#include <asm/memory.h>3030+#include <asm/mach/map.h>3131+#include <asm/arch/common.h>3232+3333+/*!3434+ * @file mx31ads.c3535+ *3636+ * @brief This file contains the board-specific initialization routines.3737+ *3838+ * @ingroup System3939+ */4040+4141+#if defined(CONFIG_SERIAL_8250) || defined(CONFIG_SERIAL_8250_MODULE)4242+/*!4343+ * The serial port definition structure.4444+ */4545+static struct plat_serial8250_port serial_platform_data[] = {4646+ {4747+ .membase = (void *)(PBC_BASE_ADDRESS + PBC_SC16C652_UARTA),4848+ .mapbase = (unsigned long)(CS4_BASE_ADDR + PBC_SC16C652_UARTA),4949+ .irq = EXPIO_INT_XUART_INTA,5050+ .uartclk = 14745600,5151+ .regshift = 0,5252+ .iotype = UPIO_MEM,5353+ .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_AUTO_IRQ,5454+ }, {5555+ .membase = (void *)(PBC_BASE_ADDRESS + PBC_SC16C652_UARTB),5656+ .mapbase = (unsigned long)(CS4_BASE_ADDR + PBC_SC16C652_UARTB),5757+ .irq = EXPIO_INT_XUART_INTB,5858+ .uartclk = 14745600,5959+ .regshift = 0,6060+ .iotype = UPIO_MEM,6161+ .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_AUTO_IRQ,6262+ },6363+ {},6464+};6565+6666+static struct platform_device serial_device = {6767+ .name = "serial8250",6868+ .id = 0,6969+ .dev = {7070+ .platform_data = serial_platform_data,7171+ },7272+};7373+7474+static int __init mxc_init_extuart(void)7575+{7676+ return platform_device_register(&serial_device);7777+}7878+#else7979+static inline int mxc_init_extuart(void)8080+{8181+ return 0;8282+}8383+#endif8484+8585+/*!8686+ * This structure defines static mappings for the i.MX31ADS board.8787+ */8888+static struct map_desc mx31ads_io_desc[] __initdata = {8989+ {9090+ .virtual = AIPS1_BASE_ADDR_VIRT,9191+ .pfn = __phys_to_pfn(AIPS1_BASE_ADDR),9292+ .length = AIPS1_SIZE,9393+ .type = MT_NONSHARED_DEVICE9494+ }, {9595+ .virtual = SPBA0_BASE_ADDR_VIRT,9696+ .pfn = __phys_to_pfn(SPBA0_BASE_ADDR),9797+ .length = SPBA0_SIZE,9898+ .type = MT_NONSHARED_DEVICE9999+ }, {100100+ .virtual = AIPS2_BASE_ADDR_VIRT,101101+ .pfn = __phys_to_pfn(AIPS2_BASE_ADDR),102102+ .length = AIPS2_SIZE,103103+ .type = MT_NONSHARED_DEVICE104104+ }, {105105+ .virtual = CS4_BASE_ADDR_VIRT,106106+ .pfn = __phys_to_pfn(CS4_BASE_ADDR),107107+ .length = CS4_SIZE / 2,108108+ .type = MT_DEVICE109109+ },110110+};111111+112112+/*!113113+ * Set up static virtual mappings.114114+ */115115+void __init mx31ads_map_io(void)116116+{117117+ mxc_map_io();118118+ iotable_init(mx31ads_io_desc, ARRAY_SIZE(mx31ads_io_desc));119119+}120120+121121+/*!122122+ * Board specific initialization.123123+ */124124+static void __init mxc_board_init(void)125125+{126126+ mxc_init_extuart();127127+}128128+129129+/*130130+ * The following uses standard kernel macros defined in arch.h in order to131131+ * initialize __mach_desc_MX31ADS data structure.132132+ */133133+MACHINE_START(MX31ADS, "Freescale MX31ADS")134134+ /* Maintainer: Freescale Semiconductor, Inc. */135135+ .phys_io = AIPS1_BASE_ADDR,136136+ .io_pg_offst = ((AIPS1_BASE_ADDR_VIRT) >> 18) & 0xfffc,137137+ .boot_params = PHYS_OFFSET + 0x100,138138+ .map_io = mx31ads_map_io,139139+ .init_irq = mxc_init_irq,140140+ .init_machine = mxc_board_init,141141+ .timer = &mxc_timer,142142+MACHINE_END
+152
arch/arm/mach-mx3/time.c
···11+/*22+ * System Timer Interrupt reconfigured to run in free-run mode.33+ * Author: Vitaly Wool44+ * Copyright 2004 MontaVista Software Inc.55+ * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.66+ */77+88+/*99+ * This program is free software; you can redistribute it and/or modify1010+ * it under the terms of the GNU General Public License version 2 as1111+ * published by the Free Software Foundation.1212+ */1313+1414+/*!1515+ * @file time.c1616+ * @brief This file contains OS tick and wdog timer implementations.1717+ *1818+ * This file contains OS tick and wdog timer implementations.1919+ *2020+ * @ingroup Timers2121+ */2222+2323+#include <linux/module.h>2424+#include <linux/init.h>2525+#include <linux/interrupt.h>2626+#include <linux/irq.h>2727+#include <asm/hardware.h>2828+#include <asm/mach/time.h>2929+#include <asm/io.h>3030+#include <asm/arch/common.h>3131+3232+/*!3333+ * This is the timer interrupt service routine to do required tasks.3434+ * It also services the WDOG timer at the frequency of twice per WDOG3535+ * timeout value. For example, if the WDOG's timeout value is 4 (23636+ * seconds since the WDOG runs at 0.5Hz), it will be serviced once3737+ * every 2/2=1 second.3838+ *3939+ * @param irq GPT interrupt source number (not used)4040+ * @param dev_id this parameter is not used4141+ * @return always returns \b IRQ_HANDLED as defined in4242+ * include/linux/interrupt.h.4343+ */4444+static irqreturn_t mxc_timer_interrupt(int irq, void *dev_id)4545+{4646+ unsigned int next_match;4747+4848+ write_seqlock(&xtime_lock);4949+5050+ if (__raw_readl(MXC_GPT_GPTSR) & GPTSR_OF1) {5151+ do {5252+ timer_tick();5353+ next_match = __raw_readl(MXC_GPT_GPTOCR1) + LATCH;5454+ __raw_writel(GPTSR_OF1, MXC_GPT_GPTSR);5555+ __raw_writel(next_match, MXC_GPT_GPTOCR1);5656+ } while ((signed long)(next_match -5757+ __raw_readl(MXC_GPT_GPTCNT)) <= 0);5858+ }5959+6060+ write_sequnlock(&xtime_lock);6161+6262+ return IRQ_HANDLED;6363+}6464+6565+/*!6666+ * This function is used to obtain the number of microseconds since the last6767+ * timer interrupt. Note that interrupts is disabled by do_gettimeofday().6868+ *6969+ * @return the number of microseconds since the last timer interrupt.7070+ */7171+static unsigned long mxc_gettimeoffset(void)7272+{7373+ unsigned long ticks_to_match, elapsed, usec, tick_usec, i;7474+7575+ /* Get ticks before next timer match */7676+ ticks_to_match =7777+ __raw_readl(MXC_GPT_GPTOCR1) - __raw_readl(MXC_GPT_GPTCNT);7878+7979+ /* We need elapsed ticks since last match */8080+ elapsed = LATCH - ticks_to_match;8181+8282+ /* Now convert them to usec */8383+ /* Insure no overflow when calculating the usec below */8484+ for (i = 1, tick_usec = tick_nsec / 1000;; i *= 2) {8585+ tick_usec /= i;8686+ if ((0xFFFFFFFF / tick_usec) > elapsed)8787+ break;8888+ }8989+ usec = (unsigned long)(elapsed * tick_usec) / (LATCH / i);9090+9191+ return usec;9292+}9393+9494+/*!9595+ * The OS tick timer interrupt structure.9696+ */9797+static struct irqaction timer_irq = {9898+ .name = "MXC Timer Tick",9999+ .flags = IRQF_DISABLED | IRQF_TIMER,100100+ .handler = mxc_timer_interrupt101101+};102102+103103+/*!104104+ * This function is used to initialize the GPT to produce an interrupt105105+ * based on HZ. It is called by start_kernel() during system startup.106106+ */107107+void __init mxc_init_time(void)108108+{109109+ u32 reg, v;110110+ reg = __raw_readl(MXC_GPT_GPTCR);111111+ reg &= ~GPTCR_ENABLE;112112+ __raw_writel(reg, MXC_GPT_GPTCR);113113+ reg |= GPTCR_SWR;114114+ __raw_writel(reg, MXC_GPT_GPTCR);115115+116116+ while ((__raw_readl(MXC_GPT_GPTCR) & GPTCR_SWR) != 0)117117+ cpu_relax();118118+119119+ reg = GPTCR_FRR | GPTCR_CLKSRC_HIGHFREQ;120120+ __raw_writel(reg, MXC_GPT_GPTCR);121121+122122+ /* TODO: get timer rate from clk driver */123123+ v = 66500000;124124+125125+ __raw_writel((v / CLOCK_TICK_RATE) - 1, MXC_GPT_GPTPR);126126+127127+ if ((v % CLOCK_TICK_RATE) != 0) {128128+ pr_info("\nWARNING: Can't generate CLOCK_TICK_RATE at %d Hz\n",129129+ CLOCK_TICK_RATE);130130+ }131131+ pr_info("Actual CLOCK_TICK_RATE is %d Hz\n",132132+ v / ((__raw_readl(MXC_GPT_GPTPR) & 0xFFF) + 1));133133+134134+ reg = __raw_readl(MXC_GPT_GPTCNT);135135+ reg += LATCH;136136+ __raw_writel(reg, MXC_GPT_GPTOCR1);137137+138138+ setup_irq(MXC_INT_GPT, &timer_irq);139139+140140+ reg = __raw_readl(MXC_GPT_GPTCR);141141+ reg =142142+ GPTCR_FRR | GPTCR_CLKSRC_HIGHFREQ | GPTCR_STOPEN | GPTCR_DOZEN |143143+ GPTCR_WAITEN | GPTCR_ENMOD | GPTCR_ENABLE;144144+ __raw_writel(reg, MXC_GPT_GPTCR);145145+146146+ __raw_writel(GPTIR_OF1IE, MXC_GPT_GPTIR);147147+}148148+149149+struct sys_timer mxc_timer = {150150+ .init = mxc_init_time,151151+ .offset = mxc_gettimeoffset,152152+};
···17171818#include <asm/arch/pxa-regs.h>19192020-#ifdef CONFIG_PXA27x // workaround for Errata 502120#define MDREFR_KDIV 0x200a4000 // all banks2221#define CCCR_SLEEP 0x00000107 // L=7 2N=2 A=0 PPDIS=0 CPDIS=02323-#endif24222523 .text26242727-/*2828- * pxa_cpu_suspend()2929- *3030- * Forces CPU into sleep state.3131- *3232- * r0 = value for PWRMODE M field for desired sleep state3333- */3434-3535-ENTRY(pxa_cpu_suspend)3636-3737-#ifndef CONFIG_IWMMXT3838- mra r2, r3, acc03939-#endif4040- stmfd sp!, {r2 - r12, lr} @ save registers on stack4141-2525+pxa_cpu_save_cp:4226 @ get coprocessor registers4327 mrc p14, 0, r3, c6, c0, 0 @ clock configuration, for turbo mode4428 mrc p15, 0, r4, c15, c1, 0 @ CP access reg···3854 mov r10, sp3955 stmfd sp!, {r3 - r10}40564141- mov r5, r0 @ save sleep mode5757+ mov pc, lr5858+5959+pxa_cpu_save_sp:4260 @ preserve phys address of stack4361 mov r0, sp6262+ mov r2, lr4463 bl sleep_phys_sp4564 ldr r1, =sleep_save_sp4665 str r0, [r1]6666+ mov pc, r26767+6868+/*6969+ * pxa27x_cpu_suspend()7070+ *7171+ * Forces CPU into sleep state.7272+ *7373+ * r0 = value for PWRMODE M field for desired sleep state7474+ */7575+7676+ENTRY(pxa27x_cpu_suspend)7777+7878+#ifndef CONFIG_IWMMXT7979+ mra r2, r3, acc08080+#endif8181+ stmfd sp!, {r2 - r12, lr} @ save registers on stack8282+8383+ bl pxa_cpu_save_cp8484+8585+ mov r5, r0 @ save sleep mode8686+ bl pxa_cpu_save_sp47874888 @ clean data cache4989 bl xscale_flush_kern_cache_all···8880 @ enable SDRAM self-refresh mode8981 orr r5, r5, #MDREFR_SLFRSH90829191-#ifdef CONFIG_PXA27x9283 @ set SDCLKx divide-by-2 bits (this is part of a workaround for Errata 50)9384 ldr r6, =MDREFR_KDIV9485 orr r5, r5, r69595-#endif96869797-#ifdef CONFIG_PXA25x8787+ @ Intel PXA270 Specification Update notes problems sleeping8888+ @ with core operating above 91 MHz8989+ @ (see Errata 50, ...processor does not exit from sleep...)9090+9191+ ldr r6, =CCCR9292+ ldr r8, [r6] @ keep original value for resume9393+9494+ ldr r7, =CCCR_SLEEP @ prepare CCCR sleep value9595+ mov r0, #0x2 @ prepare value for CLKCFG9696+9797+ @ align execution to a cache line9898+ b pxa_cpu_do_suspend9999+100100+/*101101+ * pxa27x_cpu_suspend()102102+ *103103+ * Forces CPU into sleep state.104104+ *105105+ * r0 = value for PWRMODE M field for desired sleep state106106+ */107107+108108+ENTRY(pxa25x_cpu_suspend)109109+ stmfd sp!, {r2 - r12, lr} @ save registers on stack110110+111111+ bl pxa_cpu_save_cp112112+113113+ mov r5, r0 @ save sleep mode114114+ bl pxa_cpu_save_sp115115+116116+ @ clean data cache117117+ bl xscale_flush_kern_cache_all118118+119119+ @ prepare value for sleep mode120120+ mov r1, r5 @ sleep mode121121+122122+ @ prepare pointer to physical address 0 (virtual mapping in generic.c)123123+ mov r2, #UNCACHED_PHYS_0124124+125125+ @ prepare SDRAM refresh settings126126+ ldr r4, =MDREFR127127+ ldr r5, [r4]128128+129129+ @ enable SDRAM self-refresh mode130130+ orr r5, r5, #MDREFR_SLFRSH131131+98132 @ Intel PXA255 Specification Update notes problems99133 @ about suspending with PXBus operating above 133MHz100134 @ (see Errata 31, GPIO output signals, ... unpredictable in sleep···168118 mov r0, #0169119 mcr p14, 0, r0, c6, c0, 0170120 orr r0, r0, #2 @ initiate change bit171171-#endif172172-#ifdef CONFIG_PXA27x173173- @ Intel PXA270 Specification Update notes problems sleeping174174- @ with core operating above 91 MHz175175- @ (see Errata 50, ...processor does not exit from sleep...)176176-177177- ldr r6, =CCCR178178- ldr r8, [r6] @ keep original value for resume179179-180180- ldr r7, =CCCR_SLEEP @ prepare CCCR sleep value181181- mov r0, #0x2 @ prepare value for CLKCFG182182-#endif183183-184184- @ align execution to a cache line185185- b 1f121121+ b pxa_cpu_do_suspend186122187123 .ltorg188124 .align 5189189-1:125125+pxa_cpu_do_suspend:190126191127 @ All needed values are now in registers.192128 @ These last instructions should be in cache193129194194-#if defined(CONFIG_PXA25x) || defined(CONFIG_PXA27x)195130 @ initiate the frequency change...196131 str r7, [r6]197132 mcr p14, 0, r0, c6, c0, 0···190155 mov r0, #4219115610: subs r0, r0, #1192157 bne 10b193193-#endif194158195159 @ Do not reorder...196160 @ Intel PXA270 Specification Update notes problems performing
+127-129
arch/arm/mach-pxa/time.c
···11/*22 * arch/arm/mach-pxa/time.c33 *44- * Author: Nicolas Pitre55- * Created: Jun 15, 200166- * Copyright: MontaVista Software Inc.44+ * PXA clocksource, clockevents, and OST interrupt handlers.55+ * Copyright (c) 2007 by Bill Gatliff <bgat@billgatliff.com>.66+ *77+ * Derived from Nicolas Pitre's PXA timer handler Copyright (c) 200188+ * by MontaVista Software, Inc. (Nico, your code rocks!)79 *810 * This program is free software; you can redistribute it and/or modify911 * it under the terms of the GNU General Public License version 2 as···14121513#include <linux/kernel.h>1614#include <linux/init.h>1717-#include <linux/delay.h>1815#include <linux/interrupt.h>1919-#include <linux/time.h>2020-#include <linux/signal.h>2121-#include <linux/errno.h>2222-#include <linux/sched.h>2323-#include <linux/clocksource.h>1616+#include <linux/clockchips.h>24172525-#include <asm/system.h>2626-#include <asm/hardware.h>2727-#include <asm/io.h>2828-#include <asm/leds.h>2929-#include <asm/irq.h>3018#include <asm/mach/irq.h>3119#include <asm/mach/time.h>3220#include <asm/arch/pxa-regs.h>33213434-3535-static int pxa_set_rtc(void)3636-{3737- unsigned long current_time = xtime.tv_sec;3838-3939- if (RTSR & RTSR_ALE) {4040- /* make sure not to forward the clock over an alarm */4141- unsigned long alarm = RTAR;4242- if (current_time >= alarm && alarm >= RCNR)4343- return -ERESTARTSYS;4444- }4545- RCNR = current_time;4646- return 0;4747-}4848-4949-#ifdef CONFIG_NO_IDLE_HZ5050-static unsigned long initial_match;5151-static int match_posponed;5252-#endif5353-5422static irqreturn_t5555-pxa_timer_interrupt(int irq, void *dev_id)2323+pxa_ost0_interrupt(int irq, void *dev_id)5624{5725 int next_match;2626+ struct clock_event_device *c = dev_id;58275959- write_seqlock(&xtime_lock);6060-6161-#ifdef CONFIG_NO_IDLE_HZ6262- if (match_posponed) {6363- match_posponed = 0;6464- OSMR0 = initial_match;6565- }6666-#endif6767-6868- /* Loop until we get ahead of the free running timer.6969- * This ensures an exact clock tick count and time accuracy.7070- * Since IRQs are disabled at this point, coherence between7171- * lost_ticks(updated in do_timer()) and the match reg value is7272- * ensured, hence we can use do_gettimeofday() from interrupt7373- * handlers.7474- *7575- * HACK ALERT: it seems that the PXA timer regs aren't updated right7676- * away in all cases when a write occurs. We therefore compare with7777- * 8 instead of 0 in the while() condition below to avoid missing a7878- * match if OSCR has already reached the next OSMR value.7979- * Experience has shown that up to 6 ticks are needed to work around8080- * this problem, but let's use 8 to be conservative. Note that this8181- * affect things only when the timer IRQ has been delayed by nearly8282- * exactly one tick period which should be a pretty rare event.2828+ if (c->mode == CLOCK_EVT_MODE_ONESHOT) {2929+ /* Disarm the compare/match, signal the event. */3030+ OIER &= ~OIER_E0;3131+ c->event_handler(c);3232+ } else if (c->mode == CLOCK_EVT_MODE_PERIODIC) {3333+ /* Call the event handler as many times as necessary3434+ * to recover missed events, if any (if we update3535+ * OSMR0 and OSCR0 is still ahead of us, we've missed3636+ * the event). As we're dealing with that, re-arm the3737+ * compare/match for the next event.3838+ *3939+ * HACK ALERT:4040+ *4141+ * There's a latency between the instruction that4242+ * writes to OSMR0 and the actual commit to the4343+ * physical hardware, because the CPU doesn't (have4444+ * to) run at bus speed, there's a write buffer4545+ * between the CPU and the bus, etc. etc. So if the4646+ * target OSCR0 is "very close", to the OSMR0 load4747+ * value, the update to OSMR0 might not get to the4848+ * hardware in time and we'll miss that interrupt.4949+ *5050+ * To be safe, if the new OSMR0 is "very close" to the5151+ * target OSCR0 value, we call the event_handler as5252+ * though the event actually happened. According to5353+ * Nico's comment in the previous version of this5454+ * code, experience has shown that 6 OSCR ticks is5555+ * "very close" but he went with 8. We will use 16,5656+ * based on the results of testing on PXA270.5757+ *5858+ * To be doubly sure, we also tell clkevt via5959+ * clockevents_register_device() not to ask for6060+ * anything that might put us "very close".8361 */6262+#define MIN_OSCR_DELTA 168463 do {8585- timer_tick();8686- OSSR = OSSR_M0; /* Clear match on timer 0 */6464+ OSSR = OSSR_M0;8765 next_match = (OSMR0 += LATCH);8888- } while( (signed long)(next_match - OSCR) <= 8 );8989-9090- write_sequnlock(&xtime_lock);6666+ c->event_handler(c);6767+ } while (((signed long)(next_match - OSCR) <= MIN_OSCR_DELTA)6868+ && (c->mode == CLOCK_EVT_MODE_PERIODIC));6969+ }91709271 return IRQ_HANDLED;9372}94739595-static struct irqaction pxa_timer_irq = {9696- .name = "PXA Timer Tick",9797- .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,9898- .handler = pxa_timer_interrupt,7474+static int7575+pxa_osmr0_set_next_event(unsigned long delta, struct clock_event_device *dev)7676+{7777+ unsigned long irqflags;7878+7979+ raw_local_irq_save(irqflags);8080+ OSMR0 = OSCR + delta;8181+ OSSR = OSSR_M0;8282+ OIER |= OIER_E0;8383+ raw_local_irq_restore(irqflags);8484+ return 0;8585+}8686+8787+static void8888+pxa_osmr0_set_mode(enum clock_event_mode mode, struct clock_event_device *dev)8989+{9090+ unsigned long irqflags;9191+9292+ switch (mode) {9393+ case CLOCK_EVT_MODE_PERIODIC:9494+ raw_local_irq_save(irqflags);9595+ OSMR0 = OSCR + LATCH;9696+ OSSR = OSSR_M0;9797+ OIER |= OIER_E0;9898+ raw_local_irq_restore(irqflags);9999+ break;100100+101101+ case CLOCK_EVT_MODE_ONESHOT:102102+ raw_local_irq_save(irqflags);103103+ OIER &= ~OIER_E0;104104+ raw_local_irq_restore(irqflags);105105+ break;106106+107107+ case CLOCK_EVT_MODE_UNUSED:108108+ case CLOCK_EVT_MODE_SHUTDOWN:109109+ /* initializing, released, or preparing for suspend */110110+ raw_local_irq_save(irqflags);111111+ OIER &= ~OIER_E0;112112+ raw_local_irq_restore(irqflags);113113+ break;114114+ }115115+}116116+117117+static struct clock_event_device ckevt_pxa_osmr0 = {118118+ .name = "osmr0",119119+ .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,120120+ .shift = 32,121121+ .rating = 200,122122+ .cpumask = CPU_MASK_CPU0,123123+ .set_next_event = pxa_osmr0_set_next_event,124124+ .set_mode = pxa_osmr0_set_mode,99125};100126101101-static cycle_t pxa_get_cycles(void)127127+static cycle_t pxa_read_oscr(void)102128{103129 return OSCR;104130}105131106106-static struct clocksource clocksource_pxa = {107107- .name = "pxa_timer",132132+static struct clocksource cksrc_pxa_oscr0 = {133133+ .name = "oscr0",108134 .rating = 200,109109- .read = pxa_get_cycles,135135+ .read = pxa_read_oscr,110136 .mask = CLOCKSOURCE_MASK(32),111137 .shift = 20,112138 .flags = CLOCK_SOURCE_IS_CONTINUOUS,113139};114140141141+static struct irqaction pxa_ost0_irq = {142142+ .name = "ost0",143143+ .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,144144+ .handler = pxa_ost0_interrupt,145145+ .dev_id = &ckevt_pxa_osmr0,146146+};147147+115148static void __init pxa_timer_init(void)116149{117117- struct timespec tv;118118- unsigned long flags;150150+ OIER = 0;151151+ OSSR = OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3;119152120120- set_rtc = pxa_set_rtc;153153+ ckevt_pxa_osmr0.mult =154154+ div_sc(CLOCK_TICK_RATE, NSEC_PER_SEC, ckevt_pxa_osmr0.shift);155155+ ckevt_pxa_osmr0.max_delta_ns =156156+ clockevent_delta2ns(0x7fffffff, &ckevt_pxa_osmr0);157157+ ckevt_pxa_osmr0.min_delta_ns =158158+ clockevent_delta2ns(MIN_OSCR_DELTA, &ckevt_pxa_osmr0) + 1;121159122122- OIER = 0; /* disable any timer interrupts */123123- OSSR = 0xf; /* clear status on all timers */124124- setup_irq(IRQ_OST0, &pxa_timer_irq);125125- local_irq_save(flags);126126- OIER = OIER_E0; /* enable match on timer 0 to cause interrupts */127127- OSMR0 = OSCR + LATCH; /* set initial match */128128- local_irq_restore(flags);160160+ cksrc_pxa_oscr0.mult =161161+ clocksource_hz2mult(CLOCK_TICK_RATE, cksrc_pxa_oscr0.shift);129162130130- /*131131- * OSCR runs continuously on PXA and is not written to,132132- * so we can use it as clock source directly.133133- */134134- clocksource_pxa.mult =135135- clocksource_hz2mult(CLOCK_TICK_RATE, clocksource_pxa.shift);136136- clocksource_register(&clocksource_pxa);163163+ setup_irq(IRQ_OST0, &pxa_ost0_irq);164164+165165+ clocksource_register(&cksrc_pxa_oscr0);166166+ clockevents_register_device(&ckevt_pxa_osmr0);137167}138138-139139-#ifdef CONFIG_NO_IDLE_HZ140140-static int pxa_dyn_tick_enable_disable(void)141141-{142142- /* nothing to do */143143- return 0;144144-}145145-146146-static void pxa_dyn_tick_reprogram(unsigned long ticks)147147-{148148- if (ticks > 1) {149149- initial_match = OSMR0;150150- OSMR0 = initial_match + ticks * LATCH;151151- match_posponed = 1;152152- }153153-}154154-155155-static irqreturn_t156156-pxa_dyn_tick_handler(int irq, void *dev_id)157157-{158158- if (match_posponed) {159159- match_posponed = 0;160160- OSMR0 = initial_match;161161- if ( (signed long)(initial_match - OSCR) <= 8 )162162- return pxa_timer_interrupt(irq, dev_id);163163- }164164- return IRQ_NONE;165165-}166166-167167-static struct dyn_tick_timer pxa_dyn_tick = {168168- .enable = pxa_dyn_tick_enable_disable,169169- .disable = pxa_dyn_tick_enable_disable,170170- .reprogram = pxa_dyn_tick_reprogram,171171- .handler = pxa_dyn_tick_handler,172172-};173173-#endif174168175169#ifdef CONFIG_PM176170static unsigned long osmr[4], oier;···189191 OIER = oier;190192191193 /*192192- * OSMR0 is the system timer: make sure OSCR is sufficiently behind194194+ * OSCR0 is the system timer, which has to increase195195+ * monotonically until it rolls over in hardware. The value196196+ * (OSMR0 - LATCH) is OSCR0 at the most recent system tick,197197+ * which is a handy value to restore to OSCR0.193198 */194199 OSCR = OSMR0 - LATCH;195200}···205204 .init = pxa_timer_init,206205 .suspend = pxa_timer_suspend,207206 .resume = pxa_timer_resume,208208-#ifdef CONFIG_NO_IDLE_HZ209209- .dyn_tick = &pxa_dyn_tick,210210-#endif211207};
···99 depends on ARCH_S3C24101010 select S3C2410_CLOCK1111 select S3C2410_GPIO1212+ select CPU_LLSERIAL_S3C24101213 select S3C2410_PM if PM1314 help1415 Support for S3C2410 and S3C2410A family from the S3C24XX line
···77config CPU_S3C241288 bool99 depends on ARCH_S3C24101010+ select CPU_LLSERIAL_S3C24401011 select S3C2412_PM if PM1112 select S3C2412_DMA if S3C2410_DMA1213 help
···1212 select S3C2410_GPIO1313 select S3C2440_DMA if S3C2410_DMA1414 select CPU_S3C244X1515+ select CPU_LLSERIAL_S3C24401516 help1617 Support for S3C2440 Samsung Mobile CPU based systems.1718
···1111 select S3C2410_GPIO1212 select S3C2410_PM if PM1313 select CPU_S3C244X1414+ select CPU_LLSERIAL_S3C24401415 help1516 Support for S3C2442 Samsung Mobile CPU based systems.1617
+1
arch/arm/mach-s3c2443/Kconfig
···88 bool99 depends on ARCH_S3C24101010 select S3C2443_DMA if S3C2410_DMA1111+ select CPU_LLSERIAL_S3C24401112 help1213 Support for the S3C2443 SoC from the S3C24XX line1314
···101101 handheld computer. See <http://www.hp.com/jornada/products/720>102102 for details.103103104104+config SA1100_JORNADA720_SSP105105+ bool "HP Jornada 720 Extended SSP driver"106106+ select SA1100_SSP107107+ depends on SA1100_JORNADA720108108+ help109109+ Say Y here if you have a HP Jornada 7xx handheld computer and you110110+ want to access devices connected to the MCU. Those include the111111+ keyboard, touchscreen, backlight and battery. This driver also activates112112+ the generic SSP which it extends.113113+104114config SA1100_HACKKIT105115 bool "HackKit Core CPU Board"106116 help···155145 help156146 Say Y here to enable support for the generic PIO SSP driver.157147 This isn't for audio support, but for attached sensors and158158- other devices, eg for BadgePAD 4 sensor support, or Jornada159159- 720 touchscreen support.148148+ other devices, eg for BadgePAD 4 sensor support.160149161150config H3600_SLEEVE162151 tristate "Compaq iPAQ Handheld sleeve support"
···11+/**22+ * arch/arm/mac-sa1100/jornada720_ssp.c33+ *44+ * Copyright (C) 2006/2007 Kristoffer Ericson <Kristoffer.Ericson@gmail.com>55+ * Copyright (C) 2006 Filip Zyzniewski <filip.zyzniewski@tefnet.pl>66+ *77+ * This program is free software; you can redistribute it and/or modify88+ * it under the terms of the GNU General Public License version 2 as99+ * published by the Free Software Foundation.1010+ *1111+ * SSP driver for the HP Jornada 710/720/7281212+ */1313+1414+#include <linux/delay.h>1515+#include <linux/errno.h>1616+#include <linux/init.h>1717+#include <linux/kernel.h>1818+#include <linux/module.h>1919+#include <linux/platform_device.h>2020+#include <linux/sched.h>2121+#include <linux/slab.h>2222+2323+#include <asm/hardware.h>2424+#include <asm/hardware/ssp.h>2525+#include <asm/arch/jornada720.h>2626+2727+static DEFINE_SPINLOCK(jornada_ssp_lock);2828+static unsigned long jornada_ssp_flags;2929+3030+/**3131+ * jornada_ssp_reverse - reverses input byte3232+ *3333+ * we need to reverse all data we recieve from the mcu due to its physical location3434+ * returns : 01110111 -> 111011103535+ */3636+u8 inline jornada_ssp_reverse(u8 byte)3737+{3838+ return3939+ ((0x80 & byte) >> 7) |4040+ ((0x40 & byte) >> 5) |4141+ ((0x20 & byte) >> 3) |4242+ ((0x10 & byte) >> 1) |4343+ ((0x08 & byte) << 1) |4444+ ((0x04 & byte) << 3) |4545+ ((0x02 & byte) << 5) |4646+ ((0x01 & byte) << 7);4747+};4848+EXPORT_SYMBOL(jornada_ssp_reverse);4949+5050+/**5151+ * jornada_ssp_byte - waits for ready ssp bus and sends byte5252+ *5353+ * waits for fifo buffer to clear and then transmits, if it doesn't then we will5454+ * timeout after <timeout> rounds. Needs mcu running before its called.5555+ *5656+ * returns : %mcu output on success5757+ * : %-ETIMEOUT on timeout5858+ */5959+int jornada_ssp_byte(u8 byte)6060+{6161+ int timeout = 400000;6262+ u16 ret;6363+6464+ while ((GPLR & GPIO_GPIO10)) {6565+ if (!--timeout) {6666+ printk(KERN_WARNING "SSP: timeout while waiting for transmit\n");6767+ return -ETIMEDOUT;6868+ }6969+ cpu_relax();7070+ }7171+7272+ ret = jornada_ssp_reverse(byte) << 8;7373+7474+ ssp_write_word(ret);7575+ ssp_read_word(&ret);7676+7777+ return jornada_ssp_reverse(ret);7878+};7979+EXPORT_SYMBOL(jornada_ssp_byte);8080+8181+/**8282+ * jornada_ssp_inout - decide if input is command or trading byte8383+ *8484+ * returns : (jornada_ssp_byte(byte)) on success8585+ * : %-ETIMEOUT on timeout failure8686+ */8787+int jornada_ssp_inout(u8 byte)8888+{8989+ int ret, i;9090+9191+ /* true means command byte */9292+ if (byte != TXDUMMY) {9393+ ret = jornada_ssp_byte(byte);9494+ /* Proper return to commands is TxDummy */9595+ if (ret != TXDUMMY) {9696+ for (i = 0; i < 256; i++)/* flushing bus */9797+ if (jornada_ssp_byte(TXDUMMY) == -1)9898+ break;9999+ return -ETIMEDOUT;100100+ }101101+ } else /* Exchange TxDummy for data */102102+ ret = jornada_ssp_byte(TXDUMMY);103103+104104+ return ret;105105+};106106+EXPORT_SYMBOL(jornada_ssp_inout);107107+108108+/**109109+ * jornada_ssp_start - enable mcu110110+ *111111+ */112112+int jornada_ssp_start()113113+{114114+ spin_lock_irqsave(&jornada_ssp_lock, jornada_ssp_flags);115115+ GPCR = GPIO_GPIO25;116116+ udelay(50);117117+ return 0;118118+};119119+EXPORT_SYMBOL(jornada_ssp_start);120120+121121+/**122122+ * jornada_ssp_end - disable mcu and turn off lock123123+ *124124+ */125125+int jornada_ssp_end()126126+{127127+ GPSR = GPIO_GPIO25;128128+ spin_unlock_irqrestore(&jornada_ssp_lock, jornada_ssp_flags);129129+ return 0;130130+};131131+EXPORT_SYMBOL(jornada_ssp_end);132132+133133+static int __init jornada_ssp_probe(struct platform_device *dev)134134+{135135+ int ret;136136+137137+ GPSR = GPIO_GPIO25;138138+139139+ ret = ssp_init();140140+141141+ /* worked fine, lets not bother with anything else */142142+ if (!ret) {143143+ printk(KERN_INFO "SSP: device initialized with irq\n");144144+ return ret;145145+ }146146+147147+ printk(KERN_WARNING "SSP: initialization failed, trying non-irq solution \n");148148+149149+ /* init of Serial 4 port */150150+ Ser4MCCR0 = 0;151151+ Ser4SSCR0 = 0x0387;152152+ Ser4SSCR1 = 0x18;153153+154154+ /* clear out any left over data */155155+ ssp_flush();156156+157157+ /* enable MCU */158158+ jornada_ssp_start();159159+160160+ /* see if return value makes sense */161161+ ret = jornada_ssp_inout(GETBRIGHTNESS);162162+163163+ /* seems like it worked, just feed it with TxDummy to get rid of data */164164+ if (ret == TxDummy)165165+ jornada_ssp_inout(TXDUMMY);166166+167167+ jornada_ssp_end();168168+169169+ /* failed, lets just kill everything */170170+ if (ret == -ETIMEDOUT) {171171+ printk(KERN_WARNING "SSP: attempts failed, bailing\n");172172+ ssp_exit();173173+ return -ENODEV;174174+ }175175+176176+ /* all fine */177177+ printk(KERN_INFO "SSP: device initialized\n");178178+ return 0;179179+};180180+181181+static int jornada_ssp_remove(struct platform_device *dev)182182+{183183+ /* Note that this doesnt actually remove the driver, since theres nothing to remove184184+ * It just makes sure everything is turned off */185185+ GPSR = GPIO_GPIO25;186186+ ssp_exit();187187+ return 0;188188+};189189+190190+struct platform_driver jornadassp_driver = {191191+ .probe = jornada_ssp_probe,192192+ .remove = jornada_ssp_remove,193193+ .driver = {194194+ .name = "jornada_ssp",195195+ },196196+};197197+198198+static int __init jornada_ssp_init(void)199199+{200200+ return platform_driver_register(&jornadassp_driver);201201+}
+2
arch/arm/mach-sa1100/neponset.c
···292292 &smc91x_device,293293};294294295295+extern void sa1110_mb_disable(void);296296+295297static int __init neponset_init(void)296298{297299 platform_driver_register(&neponset_device_driver);
+7-11
arch/arm/mm/Kconfig
···345345# ARMv6346346config CPU_V6347347 bool "Support ARM V6 processor"348348- depends on ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_OMAP2348348+ depends on ARCH_INTEGRATOR || MACH_REALVIEW_EB || ARCH_OMAP2 || ARCH_MX3349349+ default y if ARCH_MX3349350 select CPU_32v6350351 select CPU_ABRT_EV6351352 select CPU_CACHE_V6352353 select CPU_CACHE_VIPT353354 select CPU_CP15_MMU354354- select CPU_HAS_ASID355355+ select CPU_HAS_ASID if MMU355356 select CPU_COPY_V6 if MMU356357 select CPU_TLB_V6 if MMU357358···360359config CPU_32v6K361360 bool "Support ARM V6K processor extensions" if !SMP362361 depends on CPU_V6363363- default y if SMP362362+ default y if SMP && !ARCH_MX3364363 help365364 Say Y here if your ARMv6 processor supports the 'K' extension.366365 This enables the kernel to use some instructions not present···378377 select CPU_CACHE_V7379378 select CPU_CACHE_VIPT380379 select CPU_CP15_MMU381381- select CPU_HAS_ASID380380+ select CPU_HAS_ASID if MMU382381 select CPU_COPY_V6 if MMU383382 select CPU_TLB_V7 if MMU384383···406405407406config CPU_32v6408407 bool408408+ select TLS_REG_EMUL if !CPU_32v6K && !MMU409409410410config CPU_32v7411411 bool···600598601599config CPU_DCACHE_WRITETHROUGH602600 bool "Force write through D-cache"603603- depends on (CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020 || CPU_V6) && !CPU_DCACHE_DISABLE601601+ depends on (CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020) && !CPU_DCACHE_DISABLE604602 default y if CPU_ARM925T605603 help606604 Say Y here to use the data cache in writethrough mode. Unless you···612610 help613611 Say Y here to use the predictable round-robin cache replacement614612 policy. Unless you specifically require this or are unsure, say N.615615-616616-config CPU_L2CACHE_DISABLE617617- bool "Disable level 2 cache"618618- depends on CPU_V7619619- help620620- Say Y here to disable the level 2 cache. If unsure, say N.621613622614config CPU_BPREDICT_DISABLE623615 bool "Disable branch prediction"
+6
arch/arm/mm/cache-l2x0.c
···1717 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA1818 */1919#include <linux/init.h>2020+#include <linux/spinlock.h>20212122#include <asm/cacheflush.h>2223#include <asm/io.h>···2625#define CACHE_LINE_SIZE 3227262827static void __iomem *l2x0_base;2828+static DEFINE_SPINLOCK(l2x0_lock);29293030static inline void sync_writel(unsigned long val, unsigned long reg,3131 unsigned long complete_mask)3232{3333+ unsigned long flags;3434+3535+ spin_lock_irqsave(&l2x0_lock, flags);3336 writel(val, l2x0_base + reg);3437 /* wait for the operation to complete */3538 while (readl(l2x0_base + reg) & complete_mask)3639 ;4040+ spin_unlock_irqrestore(&l2x0_lock, flags);3741}38423943static inline void cache_sync(void)
+10-4
arch/arm/mm/mmu.c
···114114 }115115 if (i == ARRAY_SIZE(cache_policies))116116 printk(KERN_ERR "ERROR: unknown or unsupported cache policy\n");117117+ if (cpu_architecture() >= CPU_ARCH_ARMv6) {118118+ printk(KERN_WARNING "Only cachepolicy=writeback supported on ARMv6 and later\n");119119+ cachepolicy = CPOLICY_WRITEBACK;120120+ }117121 flush_cache_all();118122 set_cr(cr_alignment);119123}···256252 int cpu_arch = cpu_architecture();257253 int i;258254255255+ if (cpu_arch < CPU_ARCH_ARMv6) {259256#if defined(CONFIG_CPU_DCACHE_DISABLE)260260- if (cachepolicy > CPOLICY_BUFFERED)261261- cachepolicy = CPOLICY_BUFFERED;257257+ if (cachepolicy > CPOLICY_BUFFERED)258258+ cachepolicy = CPOLICY_BUFFERED;262259#elif defined(CONFIG_CPU_DCACHE_WRITETHROUGH)263263- if (cachepolicy > CPOLICY_WRITETHROUGH)264264- cachepolicy = CPOLICY_WRITETHROUGH;260260+ if (cachepolicy > CPOLICY_WRITETHROUGH)261261+ cachepolicy = CPOLICY_WRITETHROUGH;265262#endif263263+ }266264 if (cpu_arch < CPU_ARCH_ARMv5) {267265 if (cachepolicy >= CPOLICY_WRITEALLOC)268266 cachepolicy = CPOLICY_WRITEBACK;
···11+if ARCH_MXC22+33+menu "Freescale MXC Implementations"44+55+choice66+ prompt "MXC/iMX System Type"77+ default 088+99+config ARCH_MX31010+ bool "MX3-based"1111+ help1212+ This enables support for systems based on the Freescale i.MX3 family1313+1414+endchoice1515+1616+source "arch/arm/mach-mx3/Kconfig"1717+1818+endmenu1919+2020+endif
+10
arch/arm/plat-mxc/Makefile
···11+#22+# Makefile for the linux kernel.33+#44+55+# Common support66+obj-y := irq.o77+88+obj-m :=99+obj-n :=1010+obj- :=
+83
arch/arm/plat-mxc/irq.c
···11+/*22+ * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.33+ */44+55+/*66+ * This program is free software; you can redistribute it and/or modify77+ * it under the terms of the GNU General Public License version 2 as88+ * published by the Free Software Foundation.99+ */1010+1111+#include <linux/module.h>1212+#include <linux/moduleparam.h>1313+#include <linux/init.h>1414+#include <linux/device.h>1515+#include <linux/errno.h>1616+#include <asm/hardware.h>1717+#include <asm/io.h>1818+#include <asm/irq.h>1919+#include <asm/mach/irq.h>2020+#include <asm/arch/common.h>2121+2222+/*!2323+ * Disable interrupt number "irq" in the AVIC2424+ *2525+ * @param irq interrupt source number2626+ */2727+static void mxc_mask_irq(unsigned int irq)2828+{2929+ __raw_writel(irq, AVIC_INTDISNUM);3030+}3131+3232+/*!3333+ * Enable interrupt number "irq" in the AVIC3434+ *3535+ * @param irq interrupt source number3636+ */3737+static void mxc_unmask_irq(unsigned int irq)3838+{3939+ __raw_writel(irq, AVIC_INTENNUM);4040+}4141+4242+static struct irq_chip mxc_avic_chip = {4343+ .mask_ack = mxc_mask_irq,4444+ .mask = mxc_mask_irq,4545+ .unmask = mxc_unmask_irq,4646+};4747+4848+/*!4949+ * This function initializes the AVIC hardware and disables all the5050+ * interrupts. It registers the interrupt enable and disable functions5151+ * to the kernel for each interrupt source.5252+ */5353+void __init mxc_init_irq(void)5454+{5555+ int i;5656+ u32 reg;5757+5858+ /* put the AVIC into the reset value with5959+ * all interrupts disabled6060+ */6161+ __raw_writel(0, AVIC_INTCNTL);6262+ __raw_writel(0x1f, AVIC_NIMASK);6363+6464+ /* disable all interrupts */6565+ __raw_writel(0, AVIC_INTENABLEH);6666+ __raw_writel(0, AVIC_INTENABLEL);6767+6868+ /* all IRQ no FIQ */6969+ __raw_writel(0, AVIC_INTTYPEH);7070+ __raw_writel(0, AVIC_INTTYPEL);7171+ for (i = 0; i < MXC_MAX_INT_LINES; i++) {7272+ set_irq_chip(i, &mxc_avic_chip);7373+ set_irq_handler(i, handle_level_irq);7474+ set_irq_flags(i, IRQF_VALID);7575+ }7676+7777+ /* Set WDOG2's interrupt the highest priority level (bit 28-31) */7878+ reg = __raw_readl(AVIC_NIPRIORITY6);7979+ reg |= (0xF << 28);8080+ __raw_writel(reg, AVIC_NIPRIORITY6);8181+8282+ printk(KERN_INFO "MXC IRQ initialized\n");8383+}
+104
arch/arm/plat-s3c/Kconfig
···11+# arch/arm/plat-s3c/Kconfig22+#33+# Copyright 2007 Simtec Electronics44+#55+# Licensed under GPLv266+77+config PLAT_S3C88+ bool99+ depends on ARCH_S3C24101010+ default y if ARCH_S3C24101111+ select NO_IOPORT1212+ help1313+ Base platform code for any Samsung S3C device1414+1515+# low-level serial option nodes1616+1717+config CPU_LLSERIAL_S3C2410_ONLY1818+ bool1919+ depends on ARCH_S3C24102020+ default y if CPU_LLSERIAL_S3C2410 && !CPU_LLSERIAL_S3C24402121+2222+config CPU_LLSERIAL_S3C2440_ONLY2323+ bool2424+ depends on ARCH_S3C24102525+ default y if CPU_LLSERIAL_S3C2440 && !CPU_LLSERIAL_S3C24102626+2727+config CPU_LLSERIAL_S3C24102828+ bool2929+ depends on ARCH_S3C24103030+ help3131+ Selected if there is an S3C2410 (or register compatible) serial3232+ low-level implementation needed3333+3434+config CPU_LLSERIAL_S3C24403535+ bool3636+ depends on ARCH_S3C24103737+ help3838+ Selected if there is an S3C2440 (or register compatible) serial3939+ low-level implementation needed4040+4141+# boot configurations4242+4343+comment "Boot options"4444+4545+config S3C_BOOT_WATCHDOG4646+ bool "S3C Initialisation watchdog"4747+ depends on PLAT_S3C && S3C2410_WATCHDOG4848+ help4949+ Say y to enable the watchdog during the kernel decompression5050+ stage. If the kernel fails to uncompress, then the watchdog5151+ will trigger a reset and the system should restart.5252+5353+config S3C_BOOT_ERROR_RESET5454+ bool "S3C Reboot on decompression error"5555+ depends on PLAT_S3C5656+ help5757+ Say y here to use the watchdog to reset the system if the5858+ kernel decompressor detects an error during decompression.5959+6060+comment "Power management"6161+6262+config S3C2410_PM_DEBUG6363+ bool "S3C2410 PM Suspend debug"6464+ depends on PLAT_S3C && PM6565+ help6666+ Say Y here if you want verbose debugging from the PM Suspend and6767+ Resume code. See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt>6868+ for more information.6969+7070+config S3C2410_PM_CHECK7171+ bool "S3C2410 PM Suspend Memory CRC"7272+ depends on PLAT_S3C && PM && CRC327373+ help7474+ Enable the PM code's memory area checksum over sleep. This option7575+ will generate CRCs of all blocks of memory, and store them before7676+ going to sleep. The blocks are then checked on resume for any7777+ errors.7878+7979+ Note, this can take several seconds depending on memory size8080+ and CPU speed.8181+8282+ See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt>8383+8484+config S3C2410_PM_CHECK_CHUNKSIZE8585+ int "S3C2410 PM Suspend CRC Chunksize (KiB)"8686+ depends on PLAT_S3C && PM && S3C2410_PM_CHECK8787+ default 648888+ help8989+ Set the chunksize in Kilobytes of the CRC for checking memory9090+ corruption over suspend and resume. A smaller value will mean that9191+ the CRC data block will take more memory, but wil identify any9292+ faults with better precision.9393+9494+ See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt>9595+9696+config S3C_LOWLEVEL_UART_PORT9797+ int "S3C UART to use for low-level messages"9898+ depends on PLAT_S3C9999+ default 0100100+ help101101+ Choice of which UART port to use for the low-level messages,102102+ such as the `Uncompressing...` at start time. The value of103103+ this configuration should be between zero and two. The port104104+ must have been initialised by the boot-loader before use.
+1-59
arch/arm/plat-s3c24xx/Kconfig
···1010 default y if ARCH_S3C24101111 select NO_IOPORT1212 help1313- Base platform code for any Samsung S3C device1313+ Base platform code for any Samsung S3C24XX device14141515if PLAT_S3C24XX1616···2525 help2626 Common power management code for systems that are2727 compatible with the Simtec style of power management2828-2929-config S3C2410_BOOT_WATCHDOG3030- bool "S3C2410 Initialisation watchdog"3131- depends on ARCH_S3C2410 && S3C2410_WATCHDOG3232- help3333- Say y to enable the watchdog during the kernel decompression3434- stage. If the kernel fails to uncompress, then the watchdog3535- will trigger a reset and the system should restart.3636-3737-config S3C2410_BOOT_ERROR_RESET3838- bool "S3C2410 Reboot on decompression error"3939- depends on ARCH_S3C24104040- help4141- Say y here to use the watchdog to reset the system if the4242- kernel decompressor detects an error during decompression.4343-4444-config S3C2410_PM_DEBUG4545- bool "S3C2410 PM Suspend debug"4646- depends on ARCH_S3C2410 && PM4747- help4848- Say Y here if you want verbose debugging from the PM Suspend and4949- Resume code. See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt>5050- for more information.5151-5252-config S3C2410_PM_CHECK5353- bool "S3C2410 PM Suspend Memory CRC"5454- depends on ARCH_S3C2410 && PM && CRC325555- help5656- Enable the PM code's memory area checksum over sleep. This option5757- will generate CRCs of all blocks of memory, and store them before5858- going to sleep. The blocks are then checked on resume for any5959- errors.6060-6161- Note, this can take several seconds depending on memory size6262- and CPU speed.6363-6464- See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt>6565-6666-config S3C2410_PM_CHECK_CHUNKSIZE6767- int "S3C2410 PM Suspend CRC Chunksize (KiB)"6868- depends on ARCH_S3C2410 && PM && S3C2410_PM_CHECK6969- default 647070- help7171- Set the chunksize in Kilobytes of the CRC for checking memory7272- corruption over suspend and resume. A smaller value will mean that7373- the CRC data block will take more memory, but wil identify any7474- faults with better precision.7575-7676- See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt>7777-7878-config S3C2410_LOWLEVEL_UART_PORT7979- int "S3C2410 UART to use for low-level messages"8080- default 08181- help8282- Choice of which UART port to use for the low-level messages,8383- such as the `Uncompressing...` at start time. The value of8484- this configuration should be between zero and two. The port8585- must have been initialised by the boot-loader before use.86288729config S3C2410_DMA8830 bool "S3C2410 DMA support"
···3232#include <asm/arch/regs-gpio.h>3333#include <asm/arch/regs-clock.h>3434#include <asm/arch/regs-mem.h>3535-#include <asm/arch/regs-serial.h>3535+#include <asm/plat-s3c/regs-serial.h>36363737/* CONFIG_DEBUG_RESUME is dangerous if your bootloader does not3838 * reset the UART configuration, only enable if you really need this!
···74747575 VFPFMRX r1, FPEXC @ Is the VFP enabled?7676 DBGSTR1 "fpexc %08x", r17777- tst r1, #FPEXC_ENABLE7777+ tst r1, #FPEXC_EN7878 bne look_for_VFP_exceptions @ VFP is already enabled79798080 DBGSTR1 "enable %x", r108181 ldr r3, last_VFP_context_address8282- orr r1, r1, #FPEXC_ENABLE @ user FPEXC has the enable bit set8282+ orr r1, r1, #FPEXC_EN @ user FPEXC has the enable bit set8383 ldr r4, [r3, r11, lsl #2] @ last_VFP_context pointer8484- bic r5, r1, #FPEXC_EXCEPTION @ make sure exceptions are disabled8484+ bic r5, r1, #FPEXC_EX @ make sure exceptions are disabled8585 cmp r4, r108686 beq check_for_exception @ we are returning to the same8787 @ process, so the registers are···124124 VFPFMXR FPSCR, r5 @ restore status125125126126check_for_exception:127127- tst r1, #FPEXC_EXCEPTION127127+ tst r1, #FPEXC_EX128128 bne process_exception @ might as well handle the pending129129 @ exception before retrying branch130130 @ out before setting an FPEXC that···136136137137138138look_for_VFP_exceptions:139139- tst r1, #FPEXC_EXCEPTION139139+ tst r1, #FPEXC_EX140140 bne process_exception141141 VFPFMRX r5, FPSCR142142- tst r5, #FPSCR_IXE @ IXE doesn't set FPEXC_EXCEPTION !142142+ tst r5, #FPSCR_IXE @ IXE doesn't set FPEXC_EX !143143 bne process_exception144144145145 @ Fall into hand on to next handler - appropriate coproc instr
+6-6
arch/arm/vfp/vfpmodule.c
···5353 * case the thread migrates to a different CPU. The5454 * restoring is done lazily.5555 */5656- if ((fpexc & FPEXC_ENABLE) && last_VFP_context[cpu]) {5656+ if ((fpexc & FPEXC_EN) && last_VFP_context[cpu]) {5757 vfp_save_state(last_VFP_context[cpu], fpexc);5858 last_VFP_context[cpu]->hard.cpu = cpu;5959 }···7070 * Always disable VFP so we can lazily save/restore the7171 * old state.7272 */7373- fmxr(FPEXC, fpexc & ~FPEXC_ENABLE);7373+ fmxr(FPEXC, fpexc & ~FPEXC_EN);7474 return NOTIFY_DONE;7575 }7676···8181 */8282 memset(vfp, 0, sizeof(union vfp_state));83838484- vfp->hard.fpexc = FPEXC_ENABLE;8484+ vfp->hard.fpexc = FPEXC_EN;8585 vfp->hard.fpscr = FPSCR_ROUND_NEAREST;86868787 /*8888 * Disable VFP to ensure we initialise it first.8989 */9090- fmxr(FPEXC, fmrx(FPEXC) & ~FPEXC_ENABLE);9090+ fmxr(FPEXC, fmrx(FPEXC) & ~FPEXC_EN);9191 }92929393 /* flush and release case: Per-thread VFP cleanup. */···229229 /*230230 * Enable access to the VFP so we can handle the bounce.231231 */232232- fmxr(FPEXC, fpexc & ~(FPEXC_EXCEPTION|FPEXC_INV|FPEXC_UFC|FPEXC_IOC));232232+ fmxr(FPEXC, fpexc & ~(FPEXC_EX|FPEXC_INV|FPEXC_UFC|FPEXC_IOC));233233234234 orig_fpscr = fpscr = fmrx(FPSCR);235235···248248 /*249249 * Modify fpscr to indicate the number of iterations remaining250250 */251251- if (fpexc & FPEXC_EXCEPTION) {251251+ if (fpexc & FPEXC_EX) {252252 u32 len;253253254254 len = fpexc + (1 << FPEXC_LENGTH_BIT);
+16
drivers/char/watchdog/Kconfig
···187187188188 Say N if you are unsure.189189190190+config IOP_WATCHDOG191191+ tristate "IOP Watchdog"192192+ depends on WATCHDOG && PLAT_IOP193193+ select WATCHDOG_NOWAYOUT if (ARCH_IOP32X || ARCH_IOP33X)194194+ help195195+ Say Y here if to include support for the watchdog timer196196+ in the Intel IOP3XX & IOP13XX I/O Processors. This driver can197197+ be built as a module by choosing M. The module will198198+ be called iop_wdt.199199+200200+ Note: The IOP13XX watchdog does an Internal Bus Reset which will201201+ affect both cores and the peripherals of the IOP. The ATU-X202202+ and/or ATUe configuration registers will remain intact, but if203203+ operating as an Root Complex and/or Central Resource, the PCI-X204204+ and/or PCIe busses will also be reset. THIS IS A VERY BIG HAMMER.205205+190206# AVR32 Architecture191207192208config AT32AP700X_WDT
···11+/*22+ * drivers/char/watchdog/iop_wdt.c33+ *44+ * WDT driver for Intel I/O Processors55+ * Copyright (C) 2005, Intel Corporation.66+ *77+ * Based on ixp4xx driver, Copyright 2004 (c) MontaVista, Software, Inc.88+ *99+ * This program is free software; you can redistribute it and/or modify it1010+ * under the terms and conditions of the GNU General Public License,1111+ * version 2, as published by the Free Software Foundation.1212+ *1313+ * This program is distributed in the hope it will be useful, but WITHOUT1414+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or1515+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for1616+ * more details.1717+ *1818+ * You should have received a copy of the GNU General Public License along with1919+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple2020+ * Place - Suite 330, Boston, MA 02111-1307 USA.2121+ *2222+ * Curt E Bruns <curt.e.bruns@intel.com>2323+ * Peter Milne <peter.milne@d-tacq.com>2424+ * Dan Williams <dan.j.williams@intel.com>2525+ */2626+2727+#include <linux/module.h>2828+#include <linux/kernel.h>2929+#include <linux/fs.h>3030+#include <linux/init.h>3131+#include <linux/device.h>3232+#include <linux/miscdevice.h>3333+#include <linux/watchdog.h>3434+#include <linux/uaccess.h>3535+#include <asm/hardware.h>3636+3737+static int nowayout = WATCHDOG_NOWAYOUT;3838+static unsigned long wdt_status;3939+static unsigned long boot_status;4040+4141+#define WDT_IN_USE 04242+#define WDT_OK_TO_CLOSE 14343+#define WDT_ENABLED 24444+4545+static unsigned long iop_watchdog_timeout(void)4646+{4747+ return (0xffffffffUL / get_iop_tick_rate());4848+}4949+5050+/**5151+ * wdt_supports_disable - determine if we are accessing a iop13xx watchdog5252+ * or iop3xx by whether it has a disable command5353+ */5454+static int wdt_supports_disable(void)5555+{5656+ int can_disable;5757+5858+ if (IOP_WDTCR_EN_ARM != IOP_WDTCR_DIS_ARM)5959+ can_disable = 1;6060+ else6161+ can_disable = 0;6262+6363+ return can_disable;6464+}6565+6666+static void wdt_enable(void)6767+{6868+ /* Arm and enable the Timer to starting counting down from 0xFFFF.FFFF6969+ * Takes approx. 10.7s to timeout7070+ */7171+ write_wdtcr(IOP_WDTCR_EN_ARM);7272+ write_wdtcr(IOP_WDTCR_EN);7373+}7474+7575+/* returns 0 if the timer was successfully disabled */7676+static int wdt_disable(void)7777+{7878+ /* Stop Counting */7979+ if (wdt_supports_disable()) {8080+ write_wdtcr(IOP_WDTCR_DIS_ARM);8181+ write_wdtcr(IOP_WDTCR_DIS);8282+ clear_bit(WDT_ENABLED, &wdt_status);8383+ printk(KERN_INFO "WATCHDOG: Disabled\n");8484+ return 0;8585+ } else8686+ return 1;8787+}8888+8989+static int iop_wdt_open(struct inode *inode, struct file *file)9090+{9191+ if (test_and_set_bit(WDT_IN_USE, &wdt_status))9292+ return -EBUSY;9393+9494+ clear_bit(WDT_OK_TO_CLOSE, &wdt_status);9595+9696+ wdt_enable();9797+9898+ set_bit(WDT_ENABLED, &wdt_status);9999+100100+ return nonseekable_open(inode, file);101101+}102102+103103+static ssize_t104104+iop_wdt_write(struct file *file, const char *data, size_t len,105105+ loff_t *ppos)106106+{107107+ if (len) {108108+ if (!nowayout) {109109+ size_t i;110110+111111+ clear_bit(WDT_OK_TO_CLOSE, &wdt_status);112112+113113+ for (i = 0; i != len; i++) {114114+ char c;115115+116116+ if (get_user(c, data + i))117117+ return -EFAULT;118118+ if (c == 'V')119119+ set_bit(WDT_OK_TO_CLOSE, &wdt_status);120120+ }121121+ }122122+ wdt_enable();123123+ }124124+125125+ return len;126126+}127127+128128+static struct watchdog_info ident = {129129+ .options = WDIOF_CARDRESET | WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING,130130+ .identity = "iop watchdog",131131+};132132+133133+static int134134+iop_wdt_ioctl(struct inode *inode, struct file *file, unsigned int cmd,135135+ unsigned long arg)136136+{137137+ int options;138138+ int ret = -ENOTTY;139139+140140+ switch (cmd) {141141+ case WDIOC_GETSUPPORT:142142+ if (copy_to_user143143+ ((struct watchdog_info *)arg, &ident, sizeof ident))144144+ ret = -EFAULT;145145+ else146146+ ret = 0;147147+ break;148148+149149+ case WDIOC_GETSTATUS:150150+ ret = put_user(0, (int *)arg);151151+ break;152152+153153+ case WDIOC_GETBOOTSTATUS:154154+ ret = put_user(boot_status, (int *)arg);155155+ break;156156+157157+ case WDIOC_GETTIMEOUT:158158+ ret = put_user(iop_watchdog_timeout(), (int *)arg);159159+ break;160160+161161+ case WDIOC_KEEPALIVE:162162+ wdt_enable();163163+ ret = 0;164164+ break;165165+166166+ case WDIOC_SETOPTIONS:167167+ if (get_user(options, (int *)arg))168168+ return -EFAULT;169169+170170+ if (options & WDIOS_DISABLECARD) {171171+ if (!nowayout) {172172+ if (wdt_disable() == 0) {173173+ set_bit(WDT_OK_TO_CLOSE, &wdt_status);174174+ ret = 0;175175+ } else176176+ ret = -ENXIO;177177+ } else178178+ ret = 0;179179+ }180180+181181+ if (options & WDIOS_ENABLECARD) {182182+ wdt_enable();183183+ ret = 0;184184+ }185185+ break;186186+ }187187+188188+ return ret;189189+}190190+191191+static int iop_wdt_release(struct inode *inode, struct file *file)192192+{193193+ int state = 1;194194+ if (test_bit(WDT_OK_TO_CLOSE, &wdt_status))195195+ if (test_bit(WDT_ENABLED, &wdt_status))196196+ state = wdt_disable();197197+198198+ /* if the timer is not disbaled reload and notify that we are still199199+ * going down200200+ */201201+ if (state != 0) {202202+ wdt_enable();203203+ printk(KERN_CRIT "WATCHDOG: Device closed unexpectedly - "204204+ "reset in %lu seconds\n", iop_watchdog_timeout());205205+ }206206+207207+ clear_bit(WDT_IN_USE, &wdt_status);208208+ clear_bit(WDT_OK_TO_CLOSE, &wdt_status);209209+210210+ return 0;211211+}212212+213213+static const struct file_operations iop_wdt_fops = {214214+ .owner = THIS_MODULE,215215+ .llseek = no_llseek,216216+ .write = iop_wdt_write,217217+ .ioctl = iop_wdt_ioctl,218218+ .open = iop_wdt_open,219219+ .release = iop_wdt_release,220220+};221221+222222+static struct miscdevice iop_wdt_miscdev = {223223+ .minor = WATCHDOG_MINOR,224224+ .name = "watchdog",225225+ .fops = &iop_wdt_fops,226226+};227227+228228+static int __init iop_wdt_init(void)229229+{230230+ int ret;231231+232232+ ret = misc_register(&iop_wdt_miscdev);233233+ if (ret == 0)234234+ printk("iop watchdog timer: timeout %lu sec\n",235235+ iop_watchdog_timeout());236236+237237+ /* check if the reset was caused by the watchdog timer */238238+ boot_status = (read_rcsr() & IOP_RCSR_WDT) ? WDIOF_CARDRESET : 0;239239+240240+ /* Configure Watchdog Timeout to cause an Internal Bus (IB) Reset241241+ * NOTE: An IB Reset will Reset both cores in the IOP342242242+ */243243+ write_wdtsr(IOP13XX_WDTCR_IB_RESET);244244+245245+ return ret;246246+}247247+248248+static void __exit iop_wdt_exit(void)249249+{250250+ misc_deregister(&iop_wdt_miscdev);251251+}252252+253253+module_init(iop_wdt_init);254254+module_exit(iop_wdt_exit);255255+256256+module_param(nowayout, int, 0);257257+MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started");258258+259259+MODULE_AUTHOR("Curt E Bruns <curt.e.bruns@intel.com>");260260+MODULE_DESCRIPTION("iop watchdog timer driver");261261+MODULE_LICENSE("GPL");262262+MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);
+1-2
drivers/net/arm/ether1.c
···3636#include <linux/types.h>3737#include <linux/fcntl.h>3838#include <linux/interrupt.h>3939-#include <linux/ptrace.h>4039#include <linux/ioport.h>4140#include <linux/in.h>4241#include <linux/slab.h>···74757576/* ------------------------------------------------------------------------- */76777777-static char version[] __initdata = "ether1 ethernet driver (c) 2000 Russell King v1.07\n";7878+static char version[] __devinitdata = "ether1 ethernet driver (c) 2000 Russell King v1.07\n";78797980#define BUS_16 168081#define BUS_8 8
···2626{2727 if (machine_is_iq80321())2828 uart_base = (volatile u8 *)IQ80321_UART;2929- else if (machine_is_iq31244())2929+ else if (machine_is_iq31244() || machine_is_em7210())3030 uart_base = (volatile u8 *)IQ31244_UART;3131 else3232 uart_base = (volatile u8 *)0xfe800000;
+142
include/asm-arm/arch-mxc/board-mx31ads.h
···11+/*22+ * Copyright 2005-2007 Freescale Semiconductor, Inc. All Rights Reserved.33+ */44+55+/*66+ * This program is free software; you can redistribute it and/or modify77+ * it under the terms of the GNU General Public License version 2 as88+ * published by the Free Software Foundation.99+ */1010+1111+#ifndef __ASM_ARCH_MXC_BOARD_MX31ADS_H__1212+#define __ASM_ARCH_MXC_BOARD_MX31ADS_H__1313+1414+/*!1515+ * @name PBC Controller parameters1616+ */1717+/*! @{ */1818+/*!1919+ * Base address of PBC controller2020+ */2121+#define PBC_BASE_ADDRESS IO_ADDRESS(CS4_BASE_ADDR)2222+/* Offsets for the PBC Controller register */2323+/*!2424+ * PBC Board status register offset2525+ */2626+#define PBC_BSTAT 0x0000022727+/*!2828+ * PBC Board control register 1 set address.2929+ */3030+#define PBC_BCTRL1_SET 0x0000043131+/*!3232+ * PBC Board control register 1 clear address.3333+ */3434+#define PBC_BCTRL1_CLEAR 0x0000063535+/*!3636+ * PBC Board control register 2 set address.3737+ */3838+#define PBC_BCTRL2_SET 0x0000083939+/*!4040+ * PBC Board control register 2 clear address.4141+ */4242+#define PBC_BCTRL2_CLEAR 0x00000A4343+/*!4444+ * PBC Board control register 3 set address.4545+ */4646+#define PBC_BCTRL3_SET 0x00000C4747+/*!4848+ * PBC Board control register 3 clear address.4949+ */5050+#define PBC_BCTRL3_CLEAR 0x00000E5151+/*!5252+ * PBC Board control register 4 set address.5353+ */5454+#define PBC_BCTRL4_SET 0x0000105555+/*!5656+ * PBC Board control register 4 clear address.5757+ */5858+#define PBC_BCTRL4_CLEAR 0x0000125959+/*!6060+ * PBC Board status register 1.6161+ */6262+#define PBC_BSTAT1 0x0000146363+/*!6464+ * PBC Board interrupt status register.6565+ */6666+#define PBC_INTSTATUS 0x0000166767+/*!6868+ * PBC Board interrupt current status register.6969+ */7070+#define PBC_INTCURR_STATUS 0x0000187171+/*!7272+ * PBC Interrupt mask register set address.7373+ */7474+#define PBC_INTMASK_SET 0x00001A7575+/*!7676+ * PBC Interrupt mask register clear address.7777+ */7878+#define PBC_INTMASK_CLEAR 0x00001C7979+8080+/*!8181+ * External UART A.8282+ */8383+#define PBC_SC16C652_UARTA 0x0100008484+/*!8585+ * External UART B.8686+ */8787+#define PBC_SC16C652_UARTB 0x0100108888+/*!8989+ * Ethernet Controller IO base address.9090+ */9191+#define PBC_CS8900A_IOBASE 0x0200009292+/*!9393+ * Ethernet Controller Memory base address.9494+ */9595+#define PBC_CS8900A_MEMBASE 0x0210009696+/*!9797+ * Ethernet Controller DMA base address.9898+ */9999+#define PBC_CS8900A_DMABASE 0x022000100100+/*!101101+ * External chip select 0.102102+ */103103+#define PBC_XCS0 0x040000104104+/*!105105+ * LCD Display enable.106106+ */107107+#define PBC_LCD_EN_B 0x060000108108+/*!109109+ * Code test debug enable.110110+ */111111+#define PBC_CODE_B 0x070000112112+/*!113113+ * PSRAM memory select.114114+ */115115+#define PBC_PSRAM_B 0x5000000116116+117117+#define PBC_INTSTATUS_REG (PBC_INTSTATUS + PBC_BASE_ADDRESS)118118+#define PBC_INTCURR_STATUS_REG (PBC_INTCURR_STATUS + PBC_BASE_ADDRESS)119119+#define PBC_INTMASK_SET_REG (PBC_INTMASK_SET + PBC_BASE_ADDRESS)120120+#define PBC_INTMASK_CLEAR_REG (PBC_INTMASK_CLEAR + PBC_BASE_ADDRESS)121121+#define EXPIO_PARENT_INT IOMUX_TO_IRQ(MX31_PIN_GPIO1_4)122122+123123+#define EXPIO_INT_LOW_BAT (MXC_EXP_IO_BASE + 0)124124+#define EXPIO_INT_PB_IRQ (MXC_EXP_IO_BASE + 1)125125+#define EXPIO_INT_OTG_FS_OVR (MXC_EXP_IO_BASE + 2)126126+#define EXPIO_INT_FSH_OVR (MXC_EXP_IO_BASE + 3)127127+#define EXPIO_INT_RES4 (MXC_EXP_IO_BASE + 4)128128+#define EXPIO_INT_RES5 (MXC_EXP_IO_BASE + 5)129129+#define EXPIO_INT_RES6 (MXC_EXP_IO_BASE + 6)130130+#define EXPIO_INT_RES7 (MXC_EXP_IO_BASE + 7)131131+#define EXPIO_INT_ENET_INT (MXC_EXP_IO_BASE + 8)132132+#define EXPIO_INT_OTG_FS_INT (MXC_EXP_IO_BASE + 9)133133+#define EXPIO_INT_XUART_INTA (MXC_EXP_IO_BASE + 10)134134+#define EXPIO_INT_XUART_INTB (MXC_EXP_IO_BASE + 11)135135+#define EXPIO_INT_SYNTH_IRQ (MXC_EXP_IO_BASE + 12)136136+#define EXPIO_INT_CE_INT1 (MXC_EXP_IO_BASE + 13)137137+#define EXPIO_INT_CE_INT2 (MXC_EXP_IO_BASE + 14)138138+#define EXPIO_INT_RES15 (MXC_EXP_IO_BASE + 15)139139+140140+#define MXC_MAX_EXP_IO_LINES 16141141+142142+#endif /* __ASM_ARCH_MXC_BOARD_MX31ADS_H__ */
+20
include/asm-arm/arch-mxc/common.h
···11+/*22+ * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.33+ */44+55+/*66+ * This program is free software; you can redistribute it and/or modify77+ * it under the terms of the GNU General Public License version 2 as88+ * published by the Free Software Foundation.99+ */1010+1111+#ifndef __ASM_ARCH_MXC_COMMON_H__1212+#define __ASM_ARCH_MXC_COMMON_H__1313+1414+struct sys_timer;1515+1616+extern void mxc_map_io(void);1717+extern void mxc_init_irq(void);1818+extern struct sys_timer mxc_timer;1919+2020+#endif
+21
include/asm-arm/arch-mxc/dma.h
···11+/*22+ * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.33+ */44+55+/*66+ * This program is free software; you can redistribute it and/or modify77+ * it under the terms of the GNU General Public License version 2 as88+ * published by the Free Software Foundation.99+ */1010+1111+#ifndef __ASM_ARCH_MXC_DMA_H__1212+#define __ASM_ARCH_MXC_DMA_H__1313+1414+/*!1515+ * @file dma.h1616+ * @brief This file contains Unified DMA API for all MXC platforms.1717+ * The API is platform independent.1818+ *1919+ * @ingroup SDMA2020+ */2121+#endif
+39
include/asm-arm/arch-mxc/entry-macro.S
···11+/*22+ * Copyright (C) 2007 Lennert Buytenhek <buytenh@wantstofly.org>33+ * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.44+ */55+66+/*77+ * This program is free software; you can redistribute it and/or modify88+ * it under the terms of the GNU General Public License version 2 as99+ * published by the Free Software Foundation.1010+ */1111+1212+ @ this macro disables fast irq (not implemented)1313+ .macro disable_fiq1414+ .endm1515+1616+ .macro get_irqnr_preamble, base, tmp1717+ .endm1818+1919+ .macro arch_ret_to_user, tmp1, tmp22020+ .endm2121+2222+ @ this macro checks which interrupt occured2323+ @ and returns its number in irqnr2424+ @ and returns if an interrupt occured in irqstat2525+ .macro get_irqnr_and_base, irqnr, irqstat, base, tmp2626+ ldr \base, =AVIC_IO_ADDRESS(AVIC_BASE_ADDR)2727+ @ Load offset & priority of the highest priority2828+ @ interrupt pending from AVIC_NIVECSR2929+ ldr \irqstat, [\base, #0x40]3030+ @ Shift to get the decoded IRQ number, using ASR so3131+ @ 'no interrupt pending' becomes 0xffffffff3232+ mov \irqnr, \irqstat, asr #163333+ @ set zero flag if IRQ + 1 == 03434+ adds \tmp, \irqnr, #13535+ .endm3636+3737+ @ irq priority table (not used)3838+ .macro irq_prio_table3939+ .endm
+52
include/asm-arm/arch-mxc/hardware.h
···11+/*22+ * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.33+ */44+55+/*66+ * This program is free software; you can redistribute it and/or modify77+ * it under the terms of the GNU General Public License version 2 as88+ * published by the Free Software Foundation.99+ */1010+1111+/*!1212+ * @file hardware.h1313+ * @brief This file contains the hardware definitions of the board.1414+ *1515+ * @ingroup System1616+ */1717+#ifndef __ASM_ARCH_MXC_HARDWARE_H__1818+#define __ASM_ARCH_MXC_HARDWARE_H__1919+2020+#include <asm/sizes.h>2121+2222+#include <asm/arch/mx31.h>2323+2424+#include <asm/arch/mxc.h>2525+2626+#define MXC_MAX_GPIO_LINES (GPIO_NUM_PIN * GPIO_PORT_NUM)2727+2828+/*2929+ * ---------------------------------------------------------------------------3030+ * Board specific defines3131+ * ---------------------------------------------------------------------------3232+ */3333+#define MXC_EXP_IO_BASE (MXC_GPIO_INT_BASE + MXC_MAX_GPIO_LINES)3434+3535+#include <asm/arch/board-mx31ads.h>3636+3737+#ifndef MXC_MAX_EXP_IO_LINES3838+#define MXC_MAX_EXP_IO_LINES 03939+#endif4040+4141+#define MXC_MAX_VIRTUAL_INTS 164242+#define MXC_VIRTUAL_INTS_BASE (MXC_EXP_IO_BASE + MXC_MAX_EXP_IO_LINES)4343+#define MXC_SDIO1_CARD_IRQ MXC_VIRTUAL_INTS_BASE4444+#define MXC_SDIO2_CARD_IRQ (MXC_VIRTUAL_INTS_BASE + 1)4545+#define MXC_SDIO3_CARD_IRQ (MXC_VIRTUAL_INTS_BASE + 2)4646+4747+#define MXC_MAX_INTS (MXC_MAX_INT_LINES + \4848+ MXC_MAX_GPIO_LINES + \4949+ MXC_MAX_EXP_IO_LINES + \5050+ MXC_MAX_VIRTUAL_INTS)5151+5252+#endif /* __ASM_ARCH_MXC_HARDWARE_H__ */
+33
include/asm-arm/arch-mxc/io.h
···11+/*22+ * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.33+ */44+55+/*66+ * This program is free software; you can redistribute it and/or modify77+ * it under the terms of the GNU General Public License version 2 as88+ * published by the Free Software Foundation.99+ */1010+1111+/*!1212+ * @file io.h1313+ * @brief This file contains some memory mapping macros.1414+ * @note There is no real ISA or PCI buses. But have to define these macros1515+ * for some drivers to compile.1616+ *1717+ * @ingroup System1818+ */1919+2020+#ifndef __ASM_ARCH_MXC_IO_H__2121+#define __ASM_ARCH_MXC_IO_H__2222+2323+/*! Allow IO space to be anywhere in the memory */2424+#define IO_SPACE_LIMIT 0xffffffff2525+2626+/*!2727+ * io address mapping macro2828+ */2929+#define __io(a) ((void __iomem *)(a))3030+3131+#define __mem_pci(a) (a)3232+3333+#endif
+38
include/asm-arm/arch-mxc/irqs.h
···11+/*22+ * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.33+ */44+55+/*66+ * This program is free software; you can redistribute it and/or modify77+ * it under the terms of the GNU General Public License version 2 as88+ * published by the Free Software Foundation.99+ */1010+1111+#ifndef __ASM_ARCH_MXC_IRQS_H__1212+#define __ASM_ARCH_MXC_IRQS_H__1313+1414+#include <asm/hardware.h>1515+1616+/*!1717+ * @file irqs.h1818+ * @brief This file defines the number of normal interrupts and fast interrupts1919+ *2020+ * @ingroup Interrupt2121+ */2222+2323+#define MXC_IRQ_TO_EXPIO(irq) ((irq) - MXC_EXP_IO_BASE)2424+2525+#define MXC_IRQ_TO_GPIO(irq) ((irq) - MXC_GPIO_INT_BASE)2626+#define MXC_GPIO_TO_IRQ(x) (MXC_GPIO_INT_BASE + x)2727+2828+/*!2929+ * Number of normal interrupts3030+ */3131+#define NR_IRQS MXC_MAX_INTS3232+3333+/*!3434+ * Number of fast interrupts3535+ */3636+#define NR_FIQS MXC_MAX_INTS3737+3838+#endif /* __ASM_ARCH_MXC_IRQS_H__ */
+36
include/asm-arm/arch-mxc/memory.h
···11+/*22+ * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.33+ */44+55+/*66+ * This program is free software; you can redistribute it and/or modify77+ * it under the terms of the GNU General Public License version 2 as88+ * published by the Free Software Foundation.99+ */1010+1111+#ifndef __ASM_ARCH_MXC_MEMORY_H__1212+#define __ASM_ARCH_MXC_MEMORY_H__1313+1414+#include <asm/hardware.h>1515+1616+/*!1717+ * @file memory.h1818+ * @brief This file contains macros needed by the Linux kernel and drivers.1919+ *2020+ * @ingroup Memory2121+ */2222+2323+/*!2424+ * Virtual view <-> DMA view memory address translations2525+ * This macro is used to translate the virtual address to an address2626+ * suitable to be passed to set_dma_addr()2727+ */2828+#define __virt_to_bus(a) __virt_to_phys(a)2929+3030+/*!3131+ * Used to convert an address for DMA operations to an address that the3232+ * kernel can use.3333+ */3434+#define __bus_to_virt(a) __phys_to_virt(a)3535+3636+#endif /* __ASM_ARCH_MXC_MEMORY_H__ */
···11+/*22+ * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.33+ */44+55+/*66+ * This program is free software; you can redistribute it and/or modify77+ * it under the terms of the GNU General Public License version 2 as88+ * published by the Free Software Foundation.99+ */1010+1111+#ifndef __ASM_ARCH_MXC_H__1212+#define __ASM_ARCH_MXC_H__1313+1414+#ifndef __ASM_ARCH_MXC_HARDWARE_H__1515+#error "Do not include directly."1616+#endif1717+1818+/*1919+ *****************************************2020+ * GPT Register definitions *2121+ *****************************************2222+ */2323+#define MXC_GPT_GPTCR IO_ADDRESS(GPT1_BASE_ADDR + 0x00)2424+#define MXC_GPT_GPTPR IO_ADDRESS(GPT1_BASE_ADDR + 0x04)2525+#define MXC_GPT_GPTSR IO_ADDRESS(GPT1_BASE_ADDR + 0x08)2626+#define MXC_GPT_GPTIR IO_ADDRESS(GPT1_BASE_ADDR + 0x0C)2727+#define MXC_GPT_GPTOCR1 IO_ADDRESS(GPT1_BASE_ADDR + 0x10)2828+#define MXC_GPT_GPTOCR2 IO_ADDRESS(GPT1_BASE_ADDR + 0x14)2929+#define MXC_GPT_GPTOCR3 IO_ADDRESS(GPT1_BASE_ADDR + 0x18)3030+#define MXC_GPT_GPTICR1 IO_ADDRESS(GPT1_BASE_ADDR + 0x1C)3131+#define MXC_GPT_GPTICR2 IO_ADDRESS(GPT1_BASE_ADDR + 0x20)3232+#define MXC_GPT_GPTCNT IO_ADDRESS(GPT1_BASE_ADDR + 0x24)3333+3434+/*!3535+ * GPT Control register bit definitions3636+ */3737+#define GPTCR_FO3 (1 << 31)3838+#define GPTCR_FO2 (1 << 30)3939+#define GPTCR_FO1 (1 << 29)4040+4141+#define GPTCR_OM3_SHIFT 264242+#define GPTCR_OM3_MASK (7 << GPTCR_OM3_SHIFT)4343+#define GPTCR_OM3_DISCONNECTED (0 << GPTCR_OM3_SHIFT)4444+#define GPTCR_OM3_TOGGLE (1 << GPTCR_OM3_SHIFT)4545+#define GPTCR_OM3_CLEAR (2 << GPTCR_OM3_SHIFT)4646+#define GPTCR_OM3_SET (3 << GPTCR_OM3_SHIFT)4747+#define GPTCR_OM3_GENERATE_LOW (7 << GPTCR_OM3_SHIFT)4848+4949+#define GPTCR_OM2_SHIFT 235050+#define GPTCR_OM2_MASK (7 << GPTCR_OM2_SHIFT)5151+#define GPTCR_OM2_DISCONNECTED (0 << GPTCR_OM2_SHIFT)5252+#define GPTCR_OM2_TOGGLE (1 << GPTCR_OM2_SHIFT)5353+#define GPTCR_OM2_CLEAR (2 << GPTCR_OM2_SHIFT)5454+#define GPTCR_OM2_SET (3 << GPTCR_OM2_SHIFT)5555+#define GPTCR_OM2_GENERATE_LOW (7 << GPTCR_OM2_SHIFT)5656+5757+#define GPTCR_OM1_SHIFT 205858+#define GPTCR_OM1_MASK (7 << GPTCR_OM1_SHIFT)5959+#define GPTCR_OM1_DISCONNECTED (0 << GPTCR_OM1_SHIFT)6060+#define GPTCR_OM1_TOGGLE (1 << GPTCR_OM1_SHIFT)6161+#define GPTCR_OM1_CLEAR (2 << GPTCR_OM1_SHIFT)6262+#define GPTCR_OM1_SET (3 << GPTCR_OM1_SHIFT)6363+#define GPTCR_OM1_GENERATE_LOW (7 << GPTCR_OM1_SHIFT)6464+6565+#define GPTCR_IM2_SHIFT 186666+#define GPTCR_IM2_MASK (3 << GPTCR_IM2_SHIFT)6767+#define GPTCR_IM2_CAPTURE_DISABLE (0 << GPTCR_IM2_SHIFT)6868+#define GPTCR_IM2_CAPTURE_RISING (1 << GPTCR_IM2_SHIFT)6969+#define GPTCR_IM2_CAPTURE_FALLING (2 << GPTCR_IM2_SHIFT)7070+#define GPTCR_IM2_CAPTURE_BOTH (3 << GPTCR_IM2_SHIFT)7171+7272+#define GPTCR_IM1_SHIFT 167373+#define GPTCR_IM1_MASK (3 << GPTCR_IM1_SHIFT)7474+#define GPTCR_IM1_CAPTURE_DISABLE (0 << GPTCR_IM1_SHIFT)7575+#define GPTCR_IM1_CAPTURE_RISING (1 << GPTCR_IM1_SHIFT)7676+#define GPTCR_IM1_CAPTURE_FALLING (2 << GPTCR_IM1_SHIFT)7777+#define GPTCR_IM1_CAPTURE_BOTH (3 << GPTCR_IM1_SHIFT)7878+7979+#define GPTCR_SWR (1 << 15)8080+#define GPTCR_FRR (1 << 9)8181+8282+#define GPTCR_CLKSRC_SHIFT 68383+#define GPTCR_CLKSRC_MASK (7 << GPTCR_CLKSRC_SHIFT)8484+#define GPTCR_CLKSRC_NOCLOCK (0 << GPTCR_CLKSRC_SHIFT)8585+#define GPTCR_CLKSRC_HIGHFREQ (2 << GPTCR_CLKSRC_SHIFT)8686+#define GPTCR_CLKSRC_CLKIN (3 << GPTCR_CLKSRC_SHIFT)8787+#define GPTCR_CLKSRC_CLK32K (7 << GPTCR_CLKSRC_SHIFT)8888+8989+#define GPTCR_STOPEN (1 << 5)9090+#define GPTCR_DOZEN (1 << 4)9191+#define GPTCR_WAITEN (1 << 3)9292+#define GPTCR_DBGEN (1 << 2)9393+9494+#define GPTCR_ENMOD (1 << 1)9595+#define GPTCR_ENABLE (1 << 0)9696+9797+#define GPTSR_OF1 (1 << 0)9898+#define GPTSR_OF2 (1 << 1)9999+#define GPTSR_OF3 (1 << 2)100100+#define GPTSR_IF1 (1 << 3)101101+#define GPTSR_IF2 (1 << 4)102102+#define GPTSR_ROV (1 << 5)103103+104104+#define GPTIR_OF1IE GPTSR_OF1105105+#define GPTIR_OF2IE GPTSR_OF2106106+#define GPTIR_OF3IE GPTSR_OF3107107+#define GPTIR_IF1IE GPTSR_IF1108108+#define GPTIR_IF2IE GPTSR_IF2109109+#define GPTIR_ROVIE GPTSR_ROV110110+111111+/*112112+ *****************************************113113+ * AVIC Registers *114114+ *****************************************115115+ */116116+#define AVIC_BASE IO_ADDRESS(AVIC_BASE_ADDR)117117+#define AVIC_INTCNTL (AVIC_BASE + 0x00) /* int control reg */118118+#define AVIC_NIMASK (AVIC_BASE + 0x04) /* int mask reg */119119+#define AVIC_INTENNUM (AVIC_BASE + 0x08) /* int enable number reg */120120+#define AVIC_INTDISNUM (AVIC_BASE + 0x0C) /* int disable number reg */121121+#define AVIC_INTENABLEH (AVIC_BASE + 0x10) /* int enable reg high */122122+#define AVIC_INTENABLEL (AVIC_BASE + 0x14) /* int enable reg low */123123+#define AVIC_INTTYPEH (AVIC_BASE + 0x18) /* int type reg high */124124+#define AVIC_INTTYPEL (AVIC_BASE + 0x1C) /* int type reg low */125125+#define AVIC_NIPRIORITY7 (AVIC_BASE + 0x20) /* norm int priority lvl7 */126126+#define AVIC_NIPRIORITY6 (AVIC_BASE + 0x24) /* norm int priority lvl6 */127127+#define AVIC_NIPRIORITY5 (AVIC_BASE + 0x28) /* norm int priority lvl5 */128128+#define AVIC_NIPRIORITY4 (AVIC_BASE + 0x2C) /* norm int priority lvl4 */129129+#define AVIC_NIPRIORITY3 (AVIC_BASE + 0x30) /* norm int priority lvl3 */130130+#define AVIC_NIPRIORITY2 (AVIC_BASE + 0x34) /* norm int priority lvl2 */131131+#define AVIC_NIPRIORITY1 (AVIC_BASE + 0x38) /* norm int priority lvl1 */132132+#define AVIC_NIPRIORITY0 (AVIC_BASE + 0x3C) /* norm int priority lvl0 */133133+#define AVIC_NIVECSR (AVIC_BASE + 0x40) /* norm int vector/status */134134+#define AVIC_FIVECSR (AVIC_BASE + 0x44) /* fast int vector/status */135135+#define AVIC_INTSRCH (AVIC_BASE + 0x48) /* int source reg high */136136+#define AVIC_INTSRCL (AVIC_BASE + 0x4C) /* int source reg low */137137+#define AVIC_INTFRCH (AVIC_BASE + 0x50) /* int force reg high */138138+#define AVIC_INTFRCL (AVIC_BASE + 0x54) /* int force reg low */139139+#define AVIC_NIPNDH (AVIC_BASE + 0x58) /* norm int pending high */140140+#define AVIC_NIPNDL (AVIC_BASE + 0x5C) /* norm int pending low */141141+#define AVIC_FIPNDH (AVIC_BASE + 0x60) /* fast int pending high */142142+#define AVIC_FIPNDL (AVIC_BASE + 0x64) /* fast int pending low */143143+144144+#define SYSTEM_PREV_REG IO_ADDRESS(IIM_BASE_ADDR + 0x20)145145+#define SYSTEM_SREV_REG IO_ADDRESS(IIM_BASE_ADDR + 0x24)146146+#define IIM_PROD_REV_SH 3147147+#define IIM_PROD_REV_LEN 5148148+149149+#endif /* __ASM_ARCH_MXC_H__ */
+50
include/asm-arm/arch-mxc/system.h
···11+/*22+ * Copyright (C) 1999 ARM Limited33+ * Copyright (C) 2000 Deep Blue Solutions Ltd44+ * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.55+ *66+ * This program is free software; you can redistribute it and/or modify77+ * it under the terms of the GNU General Public License as published by88+ * the Free Software Foundation; either version 2 of the License, or99+ * (at your option) any later version.1010+ *1111+ * This program is distributed in the hope that it will be useful,1212+ * but WITHOUT ANY WARRANTY; without even the implied warranty of1313+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the1414+ * GNU General Public License for more details.1515+ *1616+ * You should have received a copy of the GNU General Public License1717+ * along with this program; if not, write to the Free Software1818+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA1919+ */2020+2121+#ifndef __ASM_ARCH_MXC_SYSTEM_H__2222+#define __ASM_ARCH_MXC_SYSTEM_H__2323+2424+/*!2525+ * @file system.h2626+ * @brief This file contains idle and reset functions.2727+ *2828+ * @ingroup System2929+ */3030+3131+/*!3232+ * This function puts the CPU into idle mode. It is called by default_idle()3333+ * in process.c file.3434+ */3535+static inline void arch_idle(void)3636+{3737+ cpu_do_idle();3838+}3939+4040+/*4141+ * This function resets the system. It is called by machine_restart().4242+ *4343+ * @param mode indicates different kinds of resets4444+ */4545+static inline void arch_reset(char mode)4646+{4747+ cpu_reset(0);4848+}4949+5050+#endif /* __ASM_ARCH_MXC_SYSTEM_H__ */
+25
include/asm-arm/arch-mxc/timex.h
···11+/*22+ * Copyright (C) 1999 ARM Limited33+ * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.44+ *55+ * This program is free software; you can redistribute it and/or modify66+ * it under the terms of the GNU General Public License as published by77+ * the Free Software Foundation; either version 2 of the License, or88+ * (at your option) any later version.99+ *1010+ * This program is distributed in the hope that it will be useful,1111+ * but WITHOUT ANY WARRANTY; without even the implied warranty of1212+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the1313+ * GNU General Public License for more details.1414+ *1515+ * You should have received a copy of the GNU General Public License1616+ * along with this program; if not, write to the Free Software1717+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA1818+ */1919+2020+#ifndef __ASM_ARCH_MXC_TIMEX_H__2121+#define __ASM_ARCH_MXC_TIMEX_H__2222+2323+#include <asm/hardware.h> /* for CLOCK_TICK_RATE */2424+2525+#endif /* __ASM_ARCH_MXC_TIMEX_H__ */
+79
include/asm-arm/arch-mxc/uncompress.h
···11+/*22+ * include/asm-arm/arch-mxc/uncompress.h33+ *44+ *55+ *66+ * Copyright (C) 1999 ARM Limited77+ * Copyright (C) Shane Nay (shane@minirl.com)88+ *99+ * This program is free software; you can redistribute it and/or modify1010+ * it under the terms of the GNU General Public License as published by1111+ * the Free Software Foundation; either version 2 of the License, or1212+ * (at your option) any later version.1313+ *1414+ * This program is distributed in the hope that it will be useful,1515+ * but WITHOUT ANY WARRANTY; without even the implied warranty of1616+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the1717+ * GNU General Public License for more details.1818+ *1919+ * You should have received a copy of the GNU General Public License2020+ * along with this program; if not, write to the Free Software2121+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA2222+ */2323+#ifndef __ASM_ARCH_MXC_UNCOMPRESS_H__2424+#define __ASM_ARCH_MXC_UNCOMPRESS_H__2525+2626+#define __MXC_BOOT_UNCOMPRESS2727+2828+#include <asm/hardware.h>2929+#include <asm/processor.h>3030+3131+#define UART(x) (*(volatile unsigned long *)(serial_port + (x)))3232+3333+#define USR2 0x983434+#define USR2_TXFE (1<<14)3535+#define TXR 0x403636+#define UCR1 0x803737+#define UCR1_UARTEN 13838+3939+/*4040+ * The following code assumes the serial port has already been4141+ * initialized by the bootloader. We search for the first enabled4242+ * port in the most probable order. If you didn't setup a port in4343+ * your bootloader then nothing will appear (which might be desired).4444+ *4545+ * This does not append a newline4646+ */4747+4848+static void putc(int ch)4949+{5050+ static unsigned long serial_port = 0;5151+5252+ if (unlikely(serial_port == 0)) {5353+ do {5454+ serial_port = UART1_BASE_ADDR;5555+ if (UART(UCR1) & UCR1_UARTEN)5656+ break;5757+ serial_port = UART2_BASE_ADDR;5858+ if (UART(UCR1) & UCR1_UARTEN)5959+ break;6060+ return;6161+ } while (0);6262+ }6363+6464+ while (!(UART(USR2) & USR2_TXFE))6565+ cpu_relax();6666+6767+ UART(TXR) = ch;6868+}6969+7070+#define flush() do { } while (0)7171+7272+/*7373+ * nothing to do7474+ */7575+#define arch_decomp_setup()7676+7777+#define arch_decomp_wdog()7878+7979+#endif /* __ASM_ARCH_MXC_UNCOMPRESS_H__ */
+36
include/asm-arm/arch-mxc/vmalloc.h
···11+/*22+ * Copyright (C) 2000 Russell King.33+ * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.44+ *55+ * This program is free software; you can redistribute it and/or modify66+ * it under the terms of the GNU General Public License as published by77+ * the Free Software Foundation; either version 2 of the License, or88+ * (at your option) any later version.99+ *1010+ * This program is distributed in the hope that it will be useful,1111+ * but WITHOUT ANY WARRANTY; without even the implied warranty of1212+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the1313+ * GNU General Public License for more details.1414+ *1515+ * You should have received a copy of the GNU General Public License1616+ * along with this program; if not, write to the Free Software1717+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA1818+ */1919+2020+#ifndef __ASM_ARCH_MXC_VMALLOC_H__2121+#define __ASM_ARCH_MXC_VMALLOC_H__2222+2323+/*!2424+ * @file vmalloc.h2525+ *2626+ * @brief This file contains platform specific macros for vmalloc.2727+ *2828+ * @ingroup System2929+ */3030+3131+/*!3232+ * vmalloc ending address3333+ */3434+#define VMALLOC_END 0xF40000003535+3636+#endif /* __ASM_ARCH_MXC_VMALLOC_H__ */
+26-2
include/asm-arm/arch-ns9xxx/regs-bbu.h
···15151616/* BBus Utility */17171818-/* GPIO Configuration Register */1919-#define BBU_GC(x) __REG2(0x9060000c, (x))1818+/* GPIO Configuration Registers block 1 */1919+/* NOTE: the HRM starts counting at 1 for the GPIO registers, here the start is2020+ * at 0 for each block. That is, BBU_GCONFb1(0) is GPIO Configuration Register2121+ * #1, BBU_GCONFb2(0) is GPIO Configuration Register #8. */2222+#define BBU_GCONFb1(x) __REG2(0x90600010, (x))2323+#define BBU_GCONFb2(x) __REG2(0x90600100, (x))2424+2525+#define BBU_GCONFx_DIR(m) __REGBIT(3 + (((m) & 7) << 2))2626+#define BBU_GCONFx_DIR_INPUT(m) __REGVAL(BBU_GCONFx_DIR(m), 0)2727+#define BBU_GCONFx_DIR_OUTPUT(m) __REGVAL(BBU_GCONFx_DIR(m), 1)2828+#define BBU_GCONFx_INV(m) __REGBIT(2 + (((m) & 7) << 2))2929+#define BBU_GCONFx_INV_NO(m) __REGVAL(BBU_GCONFx_INV(m), 0)3030+#define BBU_GCONFx_INV_YES(m) __REGVAL(BBU_GCONFx_INV(m), 1)3131+#define BBU_GCONFx_FUNC(m) __REGBITS(1 + (((m) & 7) << 2), ((m) & 7) << 2)3232+#define BBU_GCONFx_FUNC_0(m) __REGVAL(BBU_GCONFx_FUNC(m), 0)3333+#define BBU_GCONFx_FUNC_1(m) __REGVAL(BBU_GCONFx_FUNC(m), 1)3434+#define BBU_GCONFx_FUNC_2(m) __REGVAL(BBU_GCONFx_FUNC(m), 2)3535+#define BBU_GCONFx_FUNC_3(m) __REGVAL(BBU_GCONFx_FUNC(m), 3)3636+3737+#define BBU_GCTRL1 __REG(0x90600030)3838+#define BBU_GCTRL2 __REG(0x90600034)3939+#define BBU_GCTRL3 __REG(0x90600120)4040+4141+#define BBU_GSTAT1 __REG(0x90600040)4242+#define BBU_GSTAT2 __REG(0x90600044)4343+#define BBU_GSTAT3 __REG(0x90600130)20442145#endif /* ifndef __ASM_ARCH_REGSBBU_H */
···64646565/* Timer x Control register: Timer enable */6666#define SYS_TCx_TEN __REGBIT(15)6767-#define SYS_TCx_TEN_DIS __REGVAL(SYS_TCx_TEN, 1)6767+#define SYS_TCx_TEN_DIS __REGVAL(SYS_TCx_TEN, 0)6868#define SYS_TCx_TEN_EN __REGVAL(SYS_TCx_TEN, 1)69697070/* Timer x Control register: CPU debug mode */
+15-1
include/asm-arm/arch-pxa/pm.h
···77 *88 */991010-extern int pxa_pm_prepare(suspend_state_t state);1010+struct pxa_cpu_pm_fns {1111+ int save_size;1212+ void (*save)(unsigned long *);1313+ void (*restore)(unsigned long *);1414+ int (*valid)(suspend_state_t state);1515+ void (*enter)(suspend_state_t state);1616+};1717+1818+extern struct pxa_cpu_pm_fns *pxa_cpu_pm_fns;1919+2020+/* sleep.S */2121+extern void pxa25x_cpu_suspend(unsigned int);2222+extern void pxa27x_cpu_suspend(unsigned int);2323+extern void pxa_cpu_resume(void);2424+1125extern int pxa_pm_enter(suspend_state_t state);
+66
include/asm-arm/arch-s3c2400/map.h
···11+/* linux/include/asm-arm/arch-s3c2400/map.h22+ *33+ * Copyright 2003,2007 Simtec Electronics44+ * http://armlinux.simtec.co.uk/55+ * Ben Dooks <ben@simtec.co.uk>66+ *77+ * Copyright 2003, Lucas Correia Villa Real88+ *99+ * S3C2400 - Memory map definitions1010+ *1111+ * This program is free software; you can redistribute it and/or modify1212+ * it under the terms of the GNU General Public License version 2 as1313+ * published by the Free Software Foundation.1414+*/1515+1616+#define S3C2400_PA_MEMCTRL (0x14000000)1717+#define S3C2400_PA_USBHOST (0x14200000)1818+#define S3C2400_PA_IRQ (0x14400000)1919+#define S3C2400_PA_DMA (0x14600000)2020+#define S3C2400_PA_CLKPWR (0x14800000)2121+#define S3C2400_PA_LCD (0x14A00000)2222+#define S3C2400_PA_UART (0x15000000)2323+#define S3C2400_PA_TIMER (0x15100000)2424+#define S3C2400_PA_USBDEV (0x15200140)2525+#define S3C2400_PA_WATCHDOG (0x15300000)2626+#define S3C2400_PA_IIC (0x15400000)2727+#define S3C2400_PA_IIS (0x15508000)2828+#define S3C2400_PA_GPIO (0x15600000)2929+#define S3C2400_PA_RTC (0x15700040)3030+#define S3C2400_PA_ADC (0x15800000)3131+#define S3C2400_PA_SPI (0x15900000)3232+3333+#define S3C2400_PA_MMC (0x15A00000)3434+#define S3C2400_SZ_MMC SZ_1M3535+3636+/* physical addresses of all the chip-select areas */3737+3838+#define S3C2400_CS0 (0x00000000)3939+#define S3C2400_CS1 (0x02000000)4040+#define S3C2400_CS2 (0x04000000)4141+#define S3C2400_CS3 (0x06000000)4242+#define S3C2400_CS4 (0x08000000)4343+#define S3C2400_CS5 (0x0A000000)4444+#define S3C2400_CS6 (0x0C000000)4545+#define S3C2400_CS7 (0x0E000000)4646+4747+#define S3C2400_SDRAM_PA (S3C2400_CS6)4848+4949+/* Use a single interface for common resources between S3C24XX cpus */5050+5151+#define S3C24XX_PA_IRQ S3C2400_PA_IRQ5252+#define S3C24XX_PA_MEMCTRL S3C2400_PA_MEMCTRL5353+#define S3C24XX_PA_USBHOST S3C2400_PA_USBHOST5454+#define S3C24XX_PA_DMA S3C2400_PA_DMA5555+#define S3C24XX_PA_CLKPWR S3C2400_PA_CLKPWR5656+#define S3C24XX_PA_LCD S3C2400_PA_LCD5757+#define S3C24XX_PA_UART S3C2400_PA_UART5858+#define S3C24XX_PA_TIMER S3C2400_PA_TIMER5959+#define S3C24XX_PA_USBDEV S3C2400_PA_USBDEV6060+#define S3C24XX_PA_WATCHDOG S3C2400_PA_WATCHDOG6161+#define S3C24XX_PA_IIC S3C2400_PA_IIC6262+#define S3C24XX_PA_IIS S3C2400_PA_IIS6363+#define S3C24XX_PA_GPIO S3C2400_PA_GPIO6464+#define S3C24XX_PA_RTC S3C2400_PA_RTC6565+#define S3C24XX_PA_ADC S3C2400_PA_ADC6666+#define S3C24XX_PA_SPI S3C2400_PA_SPI
+23
include/asm-arm/arch-s3c2400/memory.h
···11+/* linux/include/asm-arm/arch-s3c2400/memory.h22+ * from linux/include/asm-arm/arch-rpc/memory.h33+ *44+ * Copyright 2007 Simtec Electronics55+ * http://armlinux.simtec.co.uk/66+ * Ben Dooks <ben@simtec.co.uk>77+ *88+ * Copyright (C) 1996,1997,1998 Russell King.99+ *1010+ * This program is free software; you can redistribute it and/or modify1111+ * it under the terms of the GNU General Public License version 2 as1212+ * published by the Free Software Foundation.1313+*/1414+1515+#ifndef __ASM_ARCH_MEMORY_H1616+#define __ASM_ARCH_MEMORY_H1717+1818+#define PHYS_OFFSET UL(0x0C000000)1919+2020+#define __virt_to_bus(x) __virt_to_phys(x)2121+#define __bus_to_virt(x) __phys_to_virt(x)2222+2323+#endif
+43-41
include/asm-arm/arch-s3c2410/debug-macro.S
···1313*/14141515#include <asm/arch/map.h>1616-#include <asm/arch/regs-serial.h>1716#include <asm/arch/regs-gpio.h>1717+#include <asm/plat-s3c/regs-serial.h>18181919#define S3C2410_UART1_OFF (0x4000)2020#define SHIFT_2440TXF (14-9)21212222- .macro addruart, rx2222+ .macro addruart, rx2323 mrc p15, 0, \rx, c1, c02424 tst \rx, #12525 ldreq \rx, = S3C24XX_PA_UART2626 ldrne \rx, = S3C24XX_VA_UART2727-#if CONFIG_DEBUG_S3C2410_UART != 02828- add \rx, \rx, #(S3C2410_UART1_OFF * CONFIG_DEBUG_S3C2410_UART)2727+#if CONFIG_DEBUG_S3C_UART != 02828+ add \rx, \rx, #(S3C2410_UART1_OFF * CONFIG_DEBUG_S3C_UART)2929#endif3030- .endm3030+ .endm31313232- .macro senduart,rd,rx3333- strb \rd, [\rx, # S3C2410_UTXH ]3434- .endm3535-3636- .macro busyuart, rd, rx3737- ldr \rd, [ \rx, # S3C2410_UFCON ]3838- tst \rd, #S3C2410_UFCON_FIFOMODE @ fifo enabled?3939- beq 1001f @4040- @ FIFO enabled...4141-1003:3232+ .macro fifo_full_s3c24xx rd, rx4233 @ check for arm920 vs arm926. currently assume all arm9264334 @ devices have an 64 byte FIFO identical to the s3c24404435 mrc p15, 0, \rd, c0, c0···4857 ldr \rd, [ \rx, # S3C2410_UFSTAT ]4958 moveq \rd, \rd, lsr #SHIFT_2440TXF5059 tst \rd, #S3C2410_UFSTAT_TXFULL5151- bne 1003b5252- b 1002f6060+ .endm53615454-1001:5555- @ busy waiting for non fifo5656- ldr \rd, [ \rx, # S3C2410_UTRSTAT ]5757- tst \rd, #S3C2410_UTRSTAT_TXFE5858- beq 1001b6262+ .macro fifo_full_s3c2410 rd, rx6363+ ldr \rd, [ \rx, # S3C2410_UFSTAT ]6464+ tst \rd, #S3C2410_UFSTAT_TXFULL6565+ .endm59666060-1002: @ exit busyuart6161- .endm6767+/* fifo level reading */62686363- .macro waituart,rd,rx6464-6565- ldr \rd, [ \rx, # S3C2410_UFCON ]6666- tst \rd, #S3C2410_UFCON_FIFOMODE @ fifo enabled?6767- beq 1001f @6868- @ FIFO enabled...6969-1003:6969+ .macro fifo_level_s3c24xx rd, rx7070+ @ check for arm920 vs arm926. currently assume all arm9267171+ @ devices have an 64 byte FIFO identical to the s3c24407272+ mrc p15, 0, \rd, c0, c07373+ and \rd, \rd, #0xff07474+ teq \rd, #0x2607575+ beq 10000f7076 mrc p15, 0, \rd, c1, c07177 tst \rd, #17278 addeq \rd, \rx, #(S3C24XX_PA_GPIO - S3C24XX_PA_UART)···7385 and \rd, \rd, #0x00ff00007486 teq \rd, #0x00440000 @ is it 2440?75878888+10000:7689 ldr \rd, [ \rx, # S3C2410_UFSTAT ]7790 andne \rd, \rd, #S3C2410_UFSTAT_TXMASK7891 andeq \rd, \rd, #S3C2440_UFSTAT_TXMASK7979- teq \rd, #08080- bne 1003b8181- b 1002f9292+ .endm82938383-1001:8484- @ idle waiting for non fifo8585- ldr \rd, [ \rx, # S3C2410_UTRSTAT ]8686- tst \rd, #S3C2410_UTRSTAT_TXFE8787- beq 1001b9494+ .macro fifo_level_s3c2410 rd, rx9595+ ldr \rd, [ \rx, # S3C2410_UFSTAT ]9696+ and \rd, \rd, #S3C2410_UFSTAT_TXMASK9797+ .endm88988989-1002: @ exit busyuart9090- .endm9999+/* Select the correct implementation depending on the configuration. The100100+ * S3C2440 will get selected by default, as these are the most widely101101+ * used variants of these102102+*/103103+104104+#if defined(CONFIG_CPU_LLSERIAL_S3C2410_ONLY)105105+#define fifo_full fifo_full_s3c2410106106+#define fifo_level fifo_level_s3c2410107107+#warning 2410only108108+#elif !defined(CONFIG_CPU_LLSERIAL_S3C2440_ONLY)109109+#define fifo_full fifo_full_s3c24xx110110+#define fifo_level fifo_level_s3c24xx111111+#warning generic112112+#endif113113+114114+/* include the reset of the code which will do the work */115115+116116+#include <asm/plat-s3c/debug-macro.S>
···1313#ifndef __ASM_ARCH_MAP_H1414#define __ASM_ARCH_MAP_H15151616-/* we have a bit of a tight squeeze to fit all our registers from1717- * 0xF00000000 upwards, since we use all of the nGCS space in some1818- * capacity, and also need to fit the S3C2410 registers in as well...1919- *2020- * we try to ensure stuff like the IRQ registers are available for2121- * an single MOVS instruction (ie, only 8 bits of set data)2222- *2323- * Note, we are trying to remove some of these from the implementation2424- * as they are only useful to certain drivers...2525- */1616+#include <asm/plat-s3c/map.h>26172727-#ifndef __ASSEMBLY__2828-#define S3C2410_ADDR(x) ((void __iomem __force *)0xF0000000 + (x))2929-#else3030-#define S3C2410_ADDR(x) (0xF0000000 + (x))3131-#endif3232-3333-#define S3C2400_ADDR(x) S3C2410_ADDR(x)1818+#define S3C2410_ADDR(x) S3C_ADDR(x)34193520/* interrupt controller is the first thing we put in, to make3621 * the assembly code for the irq detection easier3722 */3838-#define S3C24XX_VA_IRQ S3C2410_ADDR(0x00000000)3939-#define S3C2400_PA_IRQ (0x14400000)2323+#define S3C24XX_VA_IRQ S3C_VA_IRQ4024#define S3C2410_PA_IRQ (0x4A000000)4125#define S3C24XX_SZ_IRQ SZ_1M42264327/* memory controller registers */4444-#define S3C24XX_VA_MEMCTRL S3C2410_ADDR(0x00100000)4545-#define S3C2400_PA_MEMCTRL (0x14000000)2828+#define S3C24XX_VA_MEMCTRL S3C_VA_MEM4629#define S3C2410_PA_MEMCTRL (0x48000000)4730#define S3C24XX_SZ_MEMCTRL SZ_1M48314932/* USB host controller */5050-#define S3C2400_PA_USBHOST (0x14200000)5133#define S3C2410_PA_USBHOST (0x49000000)5234#define S3C24XX_SZ_USBHOST SZ_1M53355436/* DMA controller */5555-#define S3C2400_PA_DMA (0x14600000)5637#define S3C2410_PA_DMA (0x4B000000)5738#define S3C24XX_SZ_DMA SZ_1M58395940/* Clock and Power management */6060-#define S3C24XX_VA_CLKPWR S3C2410_ADDR(0x00200000)6161-#define S3C2400_PA_CLKPWR (0x14800000)4141+#define S3C24XX_VA_CLKPWR S3C_VA_SYS6242#define S3C2410_PA_CLKPWR (0x4C000000)6343#define S3C24XX_SZ_CLKPWR SZ_1M64446545/* LCD controller */6666-#define S3C24XX_VA_LCD S3C2410_ADDR(0x00300000)6767-#define S3C2400_PA_LCD (0x14A00000)6846#define S3C2410_PA_LCD (0x4D000000)6947#define S3C24XX_SZ_LCD SZ_1M7048···5072#define S3C2410_PA_NAND (0x4E000000)5173#define S3C24XX_SZ_NAND SZ_1M52745353-/* MMC controller - available on the S3C2400 */5454-#define S3C2400_PA_MMC (0x15A00000)5555-#define S3C2400_SZ_MMC SZ_1M5656-5775/* UARTs */5858-#define S3C24XX_VA_UART S3C2410_ADDR(0x00400000)5959-#define S3C2400_PA_UART (0x15000000)7676+#define S3C24XX_VA_UART S3C_VA_UART6077#define S3C2410_PA_UART (0x50000000)6178#define S3C24XX_SZ_UART SZ_1M62796380/* Timers */6464-#define S3C24XX_VA_TIMER S3C2410_ADDR(0x00500000)6565-#define S3C2400_PA_TIMER (0x15100000)8181+#define S3C24XX_VA_TIMER S3C_VA_TIMER6682#define S3C2410_PA_TIMER (0x51000000)6783#define S3C24XX_SZ_TIMER SZ_1M68846985/* USB Device port */7070-#define S3C24XX_VA_USBDEV S3C2410_ADDR(0x00600000)7171-#define S3C2400_PA_USBDEV (0x15200140)7286#define S3C2410_PA_USBDEV (0x52000000)7387#define S3C24XX_SZ_USBDEV SZ_1M74887589/* Watchdog */7676-#define S3C24XX_VA_WATCHDOG S3C2410_ADDR(0x00700000)7777-#define S3C2400_PA_WATCHDOG (0x15300000)9090+#define S3C24XX_VA_WATCHDOG S3C_VA_WATCHDOG7891#define S3C2410_PA_WATCHDOG (0x53000000)7992#define S3C24XX_SZ_WATCHDOG SZ_1M80938194/* IIC hardware controller */8282-#define S3C2400_PA_IIC (0x15400000)8395#define S3C2410_PA_IIC (0x54000000)8496#define S3C24XX_SZ_IIC SZ_1M85978698/* IIS controller */8787-#define S3C2400_PA_IIS (0x15508000)8899#define S3C2410_PA_IIS (0x55000000)89100#define S3C24XX_SZ_IIS SZ_1M90101···83116 * it is the same distance apart from the UART in the84117 * phsyical address space, as the initial mapping for the IO85118 * is done as a 1:1 maping. This puts it (currently) at8686- * 0xF6800000, which is not in the way of any current mapping119119+ * 0xFA800000, which is not in the way of any current mapping87120 * by the base system.88121*/891229090-#define S3C2400_PA_GPIO (0x15600000)91123#define S3C2410_PA_GPIO (0x56000000)92124#define S3C24XX_VA_GPIO ((S3C2410_PA_GPIO - S3C24XX_PA_UART) + S3C24XX_VA_UART)93125#define S3C24XX_SZ_GPIO SZ_1M9412695127/* RTC */9696-#define S3C2400_PA_RTC (0x15700040)97128#define S3C2410_PA_RTC (0x57000000)98129#define S3C24XX_SZ_RTC SZ_1M99130100131/* ADC */101101-#define S3C2400_PA_ADC (0x15800000)102132#define S3C2410_PA_ADC (0x58000000)103133#define S3C24XX_SZ_ADC SZ_1M104134105135/* SPI */106106-#define S3C2400_PA_SPI (0x15900000)107136#define S3C2410_PA_SPI (0x59000000)108137#define S3C24XX_SZ_SPI SZ_1M109138···140177141178#define S3C2410_SDRAM_PA (S3C2410_CS6)142179143143-#define S3C2400_CS0 (0x00000000)144144-#define S3C2400_CS1 (0x02000000)145145-#define S3C2400_CS2 (0x04000000)146146-#define S3C2400_CS3 (0x06000000)147147-#define S3C2400_CS4 (0x08000000)148148-#define S3C2400_CS5 (0x0A000000)149149-#define S3C2400_CS6 (0x0C000000)150150-#define S3C2400_CS7 (0x0E000000)151151-152152-#define S3C2400_SDRAM_PA (S3C2400_CS6)153153-154180/* Use a single interface for common resources between S3C24XX cpus */155181156156-#ifdef CONFIG_CPU_S3C2400157157-#define S3C24XX_PA_IRQ S3C2400_PA_IRQ158158-#define S3C24XX_PA_MEMCTRL S3C2400_PA_MEMCTRL159159-#define S3C24XX_PA_USBHOST S3C2400_PA_USBHOST160160-#define S3C24XX_PA_DMA S3C2400_PA_DMA161161-#define S3C24XX_PA_CLKPWR S3C2400_PA_CLKPWR162162-#define S3C24XX_PA_LCD S3C2400_PA_LCD163163-#define S3C24XX_PA_UART S3C2400_PA_UART164164-#define S3C24XX_PA_TIMER S3C2400_PA_TIMER165165-#define S3C24XX_PA_USBDEV S3C2400_PA_USBDEV166166-#define S3C24XX_PA_WATCHDOG S3C2400_PA_WATCHDOG167167-#define S3C24XX_PA_IIC S3C2400_PA_IIC168168-#define S3C24XX_PA_IIS S3C2400_PA_IIS169169-#define S3C24XX_PA_GPIO S3C2400_PA_GPIO170170-#define S3C24XX_PA_RTC S3C2400_PA_RTC171171-#define S3C24XX_PA_ADC S3C2400_PA_ADC172172-#define S3C24XX_PA_SPI S3C2400_PA_SPI173173-#else174182#define S3C24XX_PA_IRQ S3C2410_PA_IRQ175183#define S3C24XX_PA_MEMCTRL S3C2410_PA_MEMCTRL176184#define S3C24XX_PA_USBHOST S3C2410_PA_USBHOST···158224#define S3C24XX_PA_RTC S3C2410_PA_RTC159225#define S3C24XX_PA_ADC S3C2410_PA_ADC160226#define S3C24XX_PA_SPI S3C2410_PA_SPI161161-#endif162227163228/* deal with the registers that move under the 2412/2413 */164229
-13
include/asm-arm/arch-s3c2410/memory.h
···1111#ifndef __ASM_ARCH_MEMORY_H1212#define __ASM_ARCH_MEMORY_H13131414-/*1515- * DRAM starts at 0x30000000 for S3C2410/S3C24401616- * and at 0x0C000000 for S3C24001717- */1818-#ifdef CONFIG_CPU_S3C24001919-#define PHYS_OFFSET UL(0x0C000000)2020-#else2114#define PHYS_OFFSET UL(0x30000000)2222-#endif2323-2424-/*2525- * These are exactly the same on the S3C2410 as the2626- * physical memory view.2727-*/28152916#define __virt_to_bus(x) __virt_to_phys(x)3017#define __bus_to_virt(x) __phys_to_virt(x)
···11/* linux/include/asm-arm/arch-s3c2410/uncompress.h22 *33- * Copyright (c) 2003 Simtec Electronics33+ * Copyright (c) 2003, 2007 Simtec Electronics44+ * http://armlinux.simtec.co.uk/45 * Ben Dooks <ben@simtec.co.uk>56 *67 * S3C2410 - uncompress code···1413#ifndef __ASM_ARCH_UNCOMPRESS_H1514#define __ASM_ARCH_UNCOMPRESS_H16151717-typedef unsigned int upf_t; /* cannot include linux/serial_core.h */1818-1919-/* defines for UART registers */2020-#include "asm/arch/regs-serial.h"2121-#include "asm/arch/regs-gpio.h"2222-#include "asm/arch/regs-watchdog.h"2323-1616+#include <asm/arch/regs-gpio.h>2417#include <asm/arch/map.h>25182619/* working in physical space... */2720#undef S3C2410_GPIOREG2828-#undef S3C2410_WDOGREG2929-3021#define S3C2410_GPIOREG(x) ((S3C24XX_PA_GPIO + (x)))3131-#define S3C2410_WDOGREG(x) ((S3C24XX_PA_WATCHDOG + (x)))32223333-/* how many bytes we allow into the FIFO at a time in FIFO mode */3434-#define FIFO_MAX (14)2323+#include <asm/plat-s3c/uncompress.h>35243636-#define uart_base S3C24XX_PA_UART + (0x4000*CONFIG_S3C2410_LOWLEVEL_UART_PORT)3737-3838-static __inline__ void3939-uart_wr(unsigned int reg, unsigned int val)2525+static inline int is_arm926(void)4026{4141- volatile unsigned int *ptr;2727+ unsigned int cpuid;42284343- ptr = (volatile unsigned int *)(reg + uart_base);4444- *ptr = val;2929+ asm volatile ("mrc p15, 0, %0, c1, c0, 0" : "=r" (cpuid));3030+3131+ return ((cpuid & 0xff0) == 0x260);4532}46334747-static __inline__ unsigned int4848-uart_rd(unsigned int reg)3434+static void arch_detect_cpu(void)4935{5050- volatile unsigned int *ptr;3636+ unsigned int cpuid;51375252- ptr = (volatile unsigned int *)(reg + uart_base);5353- return *ptr;5454-}5555-5656-5757-/* we can deal with the case the UARTs are being run5858- * in FIFO mode, so that we don't hold up our execution5959- * waiting for tx to happen...6060-*/6161-6262-static void putc(int ch)6363-{6464- int cpuid = S3C2410_GSTATUS1_2410;6565-6666-#ifndef CONFIG_CPU_S3C24006738 cpuid = *((volatile unsigned int *)S3C2410_GSTATUS1);6839 cpuid &= S3C2410_GSTATUS1_IDMASK;6969-#endif70407171- if (uart_rd(S3C2410_UFCON) & S3C2410_UFCON_FIFOMODE) {7272- int level;7373-7474- while (1) {7575- level = uart_rd(S3C2410_UFSTAT);7676-7777- if (cpuid == S3C2410_GSTATUS1_2440 ||7878- cpuid == S3C2410_GSTATUS1_2442) {7979- level &= S3C2440_UFSTAT_TXMASK;8080- level >>= S3C2440_UFSTAT_TXSHIFT;8181- } else {8282- level &= S3C2410_UFSTAT_TXMASK;8383- level >>= S3C2410_UFSTAT_TXSHIFT;8484- }8585-8686- if (level < FIFO_MAX)8787- break;8888- }8989-4141+ if (is_arm926() || cpuid == S3C2410_GSTATUS1_2440 ||4242+ cpuid == S3C2410_GSTATUS1_2442) {4343+ fifo_mask = S3C2440_UFSTAT_TXMASK;4444+ fifo_max = 63 << S3C2440_UFSTAT_TXSHIFT;9045 } else {9191- /* not using fifos */9292-9393- while ((uart_rd(S3C2410_UTRSTAT) & S3C2410_UTRSTAT_TXE) != S3C2410_UTRSTAT_TXE)9494- barrier();4646+ fifo_mask = S3C2410_UFSTAT_TXMASK;4747+ fifo_max = 15 << S3C2410_UFSTAT_TXSHIFT;9548 }9696-9797- /* write byte to transmission register */9898- uart_wr(S3C2410_UTXH, ch);9949}100100-101101-static inline void flush(void)102102-{103103-}104104-105105-#define __raw_writel(d,ad) do { *((volatile unsigned int *)(ad)) = (d); } while(0)106106-107107-/* CONFIG_S3C2410_BOOT_WATCHDOG108108- *109109- * Simple boot-time watchdog setup, to reboot the system if there is110110- * any problem with the boot process111111-*/112112-113113-#ifdef CONFIG_S3C2410_BOOT_WATCHDOG114114-115115-#define WDOG_COUNT (0xff00)116116-117117-static inline void arch_decomp_wdog(void)118118-{119119- __raw_writel(WDOG_COUNT, S3C2410_WTCNT);120120-}121121-122122-static void arch_decomp_wdog_start(void)123123-{124124- __raw_writel(WDOG_COUNT, S3C2410_WTDAT);125125- __raw_writel(WDOG_COUNT, S3C2410_WTCNT);126126- __raw_writel(S3C2410_WTCON_ENABLE | S3C2410_WTCON_DIV128 | S3C2410_WTCON_RSTEN | S3C2410_WTCON_PRESCALE(0x80), S3C2410_WTCON);127127-}128128-129129-#else130130-#define arch_decomp_wdog_start()131131-#define arch_decomp_wdog()132132-#endif133133-134134-#ifdef CONFIG_S3C2410_BOOT_ERROR_RESET135135-136136-static void arch_decomp_error(const char *x)137137-{138138- putstr("\n\n");139139- putstr(x);140140- putstr("\n\n -- System resetting\n");141141-142142- __raw_writel(0x4000, S3C2410_WTDAT);143143- __raw_writel(0x4000, S3C2410_WTCNT);144144- __raw_writel(S3C2410_WTCON_ENABLE | S3C2410_WTCON_DIV128 | S3C2410_WTCON_RSTEN | S3C2410_WTCON_PRESCALE(0x40), S3C2410_WTCON);145145-146146- while(1);147147-}148148-149149-#define arch_error arch_decomp_error150150-#endif151151-152152-static void error(char *err);153153-154154-static void155155-arch_decomp_setup(void)156156-{157157- /* we may need to setup the uart(s) here if we are not running158158- * on an BAST... the BAST will have left the uarts configured159159- * after calling linux.160160- */161161-162162- arch_decomp_wdog_start();163163-}164164-1655016651#endif /* __ASM_ARCH_UNCOMPRESS_H */
+27
include/asm-arm/arch-sa1100/jornada720.h
···11+/*22+ * include/asm-arm/arch-sa1100/jornada720.h33+ *44+ * This file contains SSP/MCU communication definitions for HP Jornada 710/720/72855+ *66+ * Copyright (C) 2007 Kristoffer Ericson <Kristoffer.Ericson@gmail.com>77+ * Copyright (C) 2000 John Ankcorn <jca@lcs.mit.edu>88+ *99+ * This program is free software; you can redistribute it and/or modify1010+ * it under the terms of the GNU General Public License version 2 as1111+ * published by the Free Software Foundation.1212+ *1313+ */1414+1515+ /* HP Jornada 7xx microprocessor commands */1616+#define GETBATTERYDATA 0xc01717+#define GETSCANKEYCODE 0x901818+#define GETTOUCHSAMPLES 0xa01919+#define GETCONTRAST 0xD02020+#define SETCONTRAST 0xD12121+#define GETBRIGHTNESS 0xD22222+#define SETBRIGHTNESS 0xD32323+#define CONTRASTOFF 0xD82424+#define BRIGHTNESSOFF 0xD92525+#define PWMOFF 0xDF2626+#define TXDUMMY 0x112727+#define ERRORCODE 0x00
+2-1
include/asm-arm/elf.h
···11#ifndef __ASMARM_ELF_H22#define __ASMARM_ELF_H3344+#include <asm/hwcap.h>55+46#ifndef __ASSEMBLY__57/*68 * ELF register definitions..79 */810#include <asm/ptrace.h>911#include <asm/user.h>1010-#include <asm/hwcap.h>11121213typedef unsigned long elf_greg_t;1314typedef unsigned long elf_freg_t[3];
+12-6
include/asm-arm/floppy.h
···3030#define fd_disable_irq() disable_irq(IRQ_FLOPPYDISK)3131#define fd_enable_irq() enable_irq(IRQ_FLOPPYDISK)32323333+static inline int fd_dma_setup(void *data, unsigned int length,3434+ unsigned int mode, unsigned long addr)3535+{3636+ set_dma_mode(DMA_FLOPPY, mode);3737+ __set_dma_addr(DMA_FLOPPY, data);3838+ set_dma_count(DMA_FLOPPY, length);3939+ virtual_dma_port = addr;4040+ enable_dma(DMA_FLOPPY);4141+ return 0;4242+}4343+#define fd_dma_setup fd_dma_setup4444+3345#define fd_request_dma() request_dma(DMA_FLOPPY,"floppy")3446#define fd_free_dma() free_dma(DMA_FLOPPY)3547#define fd_disable_dma() disable_dma(DMA_FLOPPY)3636-#define fd_enable_dma() enable_dma(DMA_FLOPPY)3737-#define fd_clear_dma_ff() clear_dma_ff(DMA_FLOPPY)3838-#define fd_set_dma_mode(mode) set_dma_mode(DMA_FLOPPY, (mode))3939-#define fd_set_dma_addr(addr) set_dma_addr(DMA_FLOPPY, virt_to_bus((addr)))4040-#define fd_set_dma_count(len) set_dma_count(DMA_FLOPPY, (len))4141-#define fd_cacheflush(addr,sz)42484349/* need to clean up dma.h */4450#define DMA_FLOPPYDISK DMA_FLOPPY
+33
include/asm-arm/hardware/iop3xx.h
···194194#define IOP_TMR_PRIVILEGED 0x08195195#define IOP_TMR_RATIO_1_1 0x00196196197197+/* Watchdog timer definitions */198198+#define IOP_WDTCR_EN_ARM 0x1e1e1e1e199199+#define IOP_WDTCR_EN 0xe1e1e1e1200200+/* iop3xx does not support stopping the watchdog, so we just re-arm */201201+#define IOP_WDTCR_DIS_ARM (IOP_WDTCR_EN_ARM)202202+#define IOP_WDTCR_DIS (IOP_WDTCR_EN)203203+197204/* Application accelerator unit */198205#define IOP3XX_AAU_PHYS_BASE (IOP3XX_PERIPHERAL_PHYS_BASE + 0x800)199206#define IOP3XX_AAU_UPPER_PA (IOP3XX_AAU_PHYS_BASE + 0xa7)···279272static inline void write_tisr(u32 val)280273{281274 asm volatile("mcr p6, 0, %0, c6, c1, 0" : : "r" (val));275275+}276276+277277+static inline u32 read_wdtcr(void)278278+{279279+ u32 val;280280+ asm volatile("mrc p6, 0, %0, c7, c1, 0":"=r" (val));281281+ return val;282282+}283283+static inline void write_wdtcr(u32 val)284284+{285285+ asm volatile("mcr p6, 0, %0, c7, c1, 0"::"r" (val));286286+}287287+288288+extern unsigned long get_iop_tick_rate(void);289289+290290+/* only iop13xx has these registers, we define these to present a291291+ * common register interface for the iop_wdt driver.292292+ */293293+#define IOP_RCSR_WDT (0)294294+static inline u32 read_rcsr(void)295295+{296296+ return 0;297297+}298298+static inline void write_wdtsr(u32 val)299299+{300300+ do { } while (0);282301}283302284303extern struct platform_device iop3xx_dma_0_channel;
···11+/* linux/include/asm-arm/plat-s3c/debug-macro.S22+ *33+ * Copyright 2005, 2007 Simtec Electronics44+ * http://armlinux.simtec.co.uk/55+ * Ben Dooks <ben@simtec.co.uk>66+ *77+ * This program is free software; you can redistribute it and/or modify88+ * it under the terms of the GNU General Public License version 2 as99+ * published by the Free Software Foundation.1010+*/1111+1212+#include <asm/plat-s3c/regs-serial.h>1313+1414+/* The S3C2440 implementations are used by default as they are the1515+ * most widely re-used */1616+1717+ .macro fifo_level_s3c2440 rd, rx1818+ ldr \rd, [ \rx, # S3C2410_UFSTAT ]1919+ and \rd, \rd, #S3C2440_UFSTAT_TXMASK2020+ .endm2121+2222+#ifndef fifo_level2323+#define fifo_level fifo_level_s3c24102424+#endif2525+2626+ .macro fifo_full_s3c2440 rd, rx2727+ ldr \rd, [ \rx, # S3C2410_UFSTAT ]2828+ tst \rd, #S3C2440_UFSTAT_TXFULL2929+ .endm3030+3131+#ifndef fifo_full3232+#define fifo_full fifo_full_s3c24403333+#endif3434+3535+ .macro senduart,rd,rx3636+ strb \rd, [\rx, # S3C2410_UTXH ]3737+ .endm3838+3939+ .macro busyuart, rd, rx4040+ ldr \rd, [ \rx, # S3C2410_UFCON ]4141+ tst \rd, #S3C2410_UFCON_FIFOMODE @ fifo enabled?4242+ beq 1001f @4343+ @ FIFO enabled...4444+1003:4545+ fifo_full \rd, \rx4646+ bne 1003b4747+ b 1002f4848+4949+1001:5050+ @ busy waiting for non fifo5151+ ldr \rd, [ \rx, # S3C2410_UTRSTAT ]5252+ tst \rd, #S3C2410_UTRSTAT_TXFE5353+ beq 1001b5454+5555+1002: @ exit busyuart5656+ .endm5757+5858+ .macro waituart,rd,rx5959+ ldr \rd, [ \rx, # S3C2410_UFCON ]6060+ tst \rd, #S3C2410_UFCON_FIFOMODE @ fifo enabled?6161+ beq 1001f @6262+ @ FIFO enabled...6363+1003:6464+ fifo_level \rd, \rx6565+ teq \rd, #06666+ bne 1003b6767+ b 1002f6868+1001:6969+ @ idle waiting for non fifo7070+ ldr \rd, [ \rx, # S3C2410_UTRSTAT ]7171+ tst \rd, #S3C2410_UTRSTAT_TXFE7272+ beq 1001b7373+7474+1002: @ exit busyuart7575+ .endm
+40
include/asm-arm/plat-s3c/map.h
···11+/* linux/include/asm-arm/plat-s3c/map.h22+ *33+ * Copyright 2003, 2007 Simtec Electronics44+ * http://armlinux.simtec.co.uk/55+ * Ben Dooks <ben@simtec.co.uk>66+ *77+ * S3C - Memory map definitions (virtual addresses)88+ *99+ * This program is free software; you can redistribute it and/or modify1010+ * it under the terms of the GNU General Public License version 2 as1111+ * published by the Free Software Foundation.1212+*/1313+1414+#ifndef __ASM_PLAT_MAP_H1515+#define __ASM_PLAT_MAP_H __FILE__1616+1717+/* Fit all our registers in at 0xF4000000 upwards, trying to use as1818+ * little of the VA space as possible so vmalloc and friends have a1919+ * better chance of getting memory.2020+ *2121+ * we try to ensure stuff like the IRQ registers are available for2222+ * an single MOVS instruction (ie, only 8 bits of set data)2323+ */2424+2525+#define S3C_ADDR_BASE (0xF4000000)2626+2727+#ifndef __ASSEMBLY__2828+#define S3C_ADDR(x) ((void __iomem __force *)S3C_ADDR_BASE + (x))2929+#else3030+#define S3C_ADDR(x) (S3C_ADDR_BASE + (x))3131+#endif3232+3333+#define S3C_VA_IRQ S3C_ADDR(0x000000000) /* irq controller(s) */3434+#define S3C_VA_SYS S3C_ADDR(0x001000000) /* system control */3535+#define S3C_VA_MEM S3C_ADDR(0x002000000) /* system control */3636+#define S3C_VA_TIMER S3C_ADDR(0x003000000) /* timer block */3737+#define S3C_VA_WATCHDOG S3C_ADDR(0x004000000) /* watchdog */3838+#define S3C_VA_UART S3C_ADDR(0x010000000) /* UART */3939+4040+#endif /* __ASM_PLAT_MAP_H */
+155
include/asm-arm/plat-s3c/uncompress.h
···11+/* linux/include/asm-arm/plat-s3c/uncompress.h22+ *33+ * Copyright 2003, 2007 Simtec Electronics44+ * http://armlinux.simtec.co.uk/55+ * Ben Dooks <ben@simtec.co.uk>66+ *77+ * S3C - uncompress code88+ *99+ * This program is free software; you can redistribute it and/or modify1010+ * it under the terms of the GNU General Public License version 2 as1111+ * published by the Free Software Foundation.1212+*/1313+1414+#ifndef __ASM_PLAT_UNCOMPRESS_H1515+#define __ASM_PLAT_UNCOMPRESS_H1616+1717+typedef unsigned int upf_t; /* cannot include linux/serial_core.h */1818+1919+/* uart setup */2020+2121+static unsigned int fifo_mask;2222+static unsigned int fifo_max;2323+2424+/* forward declerations */2525+2626+static void arch_detect_cpu(void);2727+2828+/* defines for UART registers */2929+3030+#include "asm/plat-s3c/regs-serial.h"3131+#include "asm/plat-s3c/regs-watchdog.h"3232+3333+/* working in physical space... */3434+#undef S3C2410_WDOGREG3535+#define S3C2410_WDOGREG(x) ((S3C24XX_PA_WATCHDOG + (x)))3636+3737+/* how many bytes we allow into the FIFO at a time in FIFO mode */3838+#define FIFO_MAX (14)3939+4040+#define uart_base S3C24XX_PA_UART + (0x4000*CONFIG_S3C_LOWLEVEL_UART_PORT)4141+4242+static __inline__ void4343+uart_wr(unsigned int reg, unsigned int val)4444+{4545+ volatile unsigned int *ptr;4646+4747+ ptr = (volatile unsigned int *)(reg + uart_base);4848+ *ptr = val;4949+}5050+5151+static __inline__ unsigned int5252+uart_rd(unsigned int reg)5353+{5454+ volatile unsigned int *ptr;5555+5656+ ptr = (volatile unsigned int *)(reg + uart_base);5757+ return *ptr;5858+}5959+6060+/* we can deal with the case the UARTs are being run6161+ * in FIFO mode, so that we don't hold up our execution6262+ * waiting for tx to happen...6363+*/6464+6565+static void putc(int ch)6666+{6767+ if (uart_rd(S3C2410_UFCON) & S3C2410_UFCON_FIFOMODE) {6868+ int level;6969+7070+ while (1) {7171+ level = uart_rd(S3C2410_UFSTAT);7272+ level &= fifo_mask;7373+7474+ if (level < fifo_max)7575+ break;7676+ }7777+7878+ } else {7979+ /* not using fifos */8080+8181+ while ((uart_rd(S3C2410_UTRSTAT) & S3C2410_UTRSTAT_TXE) != S3C2410_UTRSTAT_TXE)8282+ barrier();8383+ }8484+8585+ /* write byte to transmission register */8686+ uart_wr(S3C2410_UTXH, ch);8787+}8888+8989+static inline void flush(void)9090+{9191+}9292+9393+#define __raw_writel(d,ad) do { *((volatile unsigned int *)(ad)) = (d); } while(0)9494+9595+/* CONFIG_S3C_BOOT_WATCHDOG9696+ *9797+ * Simple boot-time watchdog setup, to reboot the system if there is9898+ * any problem with the boot process9999+*/100100+101101+#ifdef CONFIG_S3C_BOOT_WATCHDOG102102+103103+#define WDOG_COUNT (0xff00)104104+105105+static inline void arch_decomp_wdog(void)106106+{107107+ __raw_writel(WDOG_COUNT, S3C2410_WTCNT);108108+}109109+110110+static void arch_decomp_wdog_start(void)111111+{112112+ __raw_writel(WDOG_COUNT, S3C2410_WTDAT);113113+ __raw_writel(WDOG_COUNT, S3C2410_WTCNT);114114+ __raw_writel(S3C2410_WTCON_ENABLE | S3C2410_WTCON_DIV128 | S3C2410_WTCON_RSTEN | S3C2410_WTCON_PRESCALE(0x80), S3C2410_WTCON);115115+}116116+117117+#else118118+#define arch_decomp_wdog_start()119119+#define arch_decomp_wdog()120120+#endif121121+122122+#ifdef CONFIG_S3C_BOOT_ERROR_RESET123123+124124+static void arch_decomp_error(const char *x)125125+{126126+ putstr("\n\n");127127+ putstr(x);128128+ putstr("\n\n -- System resetting\n");129129+130130+ __raw_writel(0x4000, S3C2410_WTDAT);131131+ __raw_writel(0x4000, S3C2410_WTCNT);132132+ __raw_writel(S3C2410_WTCON_ENABLE | S3C2410_WTCON_DIV128 | S3C2410_WTCON_RSTEN | S3C2410_WTCON_PRESCALE(0x40), S3C2410_WTCON);133133+134134+ while(1);135135+}136136+137137+#define arch_error arch_decomp_error138138+#endif139139+140140+static void error(char *err);141141+142142+static void143143+arch_decomp_setup(void)144144+{145145+ /* we may need to setup the uart(s) here if we are not running146146+ * on an BAST... the BAST will have left the uarts configured147147+ * after calling linux.148148+ */149149+150150+ arch_detect_cpu();151151+ arch_decomp_wdog_start();152152+}153153+154154+155155+#endif /* __ASM_PLAT_UNCOMPRESS_H */