diff -urN --exclude=CVS --exclude='.*' linux-2.4.21-rmk1/arch/arm/def-configs/fujitsu_camelot linux-2.4.21-rmk1-s3c2800/arch/arm/def-configs/fujitsu_camelot --- linux-2.4.21-rmk1/arch/arm/def-configs/fujitsu_camelot Wed Dec 31 19:00:00 1969 +++ linux-2.4.21-rmk1-s3c2800/arch/arm/def-configs/fujitsu_camelot Sat Oct 18 07:01:44 2003 @@ -0,0 +1,901 @@ +# +# Automatically generated make config: don't edit +# +CONFIG_ARM=y +# CONFIG_EISA is not set +# CONFIG_SBUS is not set +# CONFIG_MCA is not set +CONFIG_UID16=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set +# CONFIG_GENERIC_BUST_SPINLOCK is not set +# CONFIG_GENERIC_ISA_DMA is not set + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +# CONFIG_OBSOLETE is not set + +# +# Loadable module support +# +CONFIG_MODULES=y +# CONFIG_MODVERSIONS is not set +CONFIG_KMOD=y + +# +# System Type +# +# CONFIG_ARCH_ANAKIN is not set +# CONFIG_ARCH_ARCA5K is not set +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_CAMELOT is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_OMAHA is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_MX1ADS is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_RISCSTATION is not set +CONFIG_ARCH_S3C2800=y +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_AT91RM9200 is not set + +# +# Archimedes/A5000 Implementations +# + +# +# Archimedes/A5000 Implementations (select only ONE) +# +# CONFIG_ARCH_ARC is not set +# CONFIG_ARCH_A5K is not set + +# +# Footbridge Implementations +# +# CONFIG_ARCH_CATS is not set +# CONFIG_ARCH_PERSONAL_SERVER is not set +# CONFIG_ARCH_EBSA285_ADDIN is not set +# CONFIG_ARCH_EBSA285_HOST is not set +# CONFIG_ARCH_NETWINDER is not set + +# +# SA11x0 Implementations +# +# CONFIG_SA1100_ACCELENT is not set +# CONFIG_SA1100_ASSABET is not set +# CONFIG_ASSABET_NEPONSET is not set +# CONFIG_SA1100_ADSAGC is not set +# CONFIG_SA1100_ADSBITSY is not set +# CONFIG_SA1100_ADSBITSYPLUS is not set +# CONFIG_SA1100_BRUTUS is not set +# CONFIG_SA1100_CEP is not set +# CONFIG_SA1100_CERF is not set +# CONFIG_SA1100_H3100 is not set +# CONFIG_SA1100_H3600 is not set +# CONFIG_SA1100_H3800 is not set +# CONFIG_SA1100_H3XXX is not set +# CONFIG_H3600_SLEEVE is not set +# CONFIG_SA1100_EXTENEX1 is not set +# CONFIG_SA1100_FLEXANET is not set +# CONFIG_SA1100_FREEBIRD is not set +# CONFIG_SA1100_FRODO is not set +# CONFIG_SA1100_GRAPHICSCLIENT is not set +# CONFIG_SA1100_GRAPHICSMASTER is not set +# CONFIG_SA1100_HACKKIT is not set +# CONFIG_SA1100_BADGE4 is not set +# CONFIG_SA1100_JORNADA720 is not set +# CONFIG_SA1100_HUW_WEBPANEL is not set +# CONFIG_SA1100_ITSY is not set +# CONFIG_SA1100_LART is not set +# CONFIG_SA1100_NANOENGINE is not set +# CONFIG_SA1100_OMNIMETER is not set +# CONFIG_SA1100_PANGOLIN is not set +# CONFIG_SA1100_PLEB is not set +# CONFIG_SA1100_PT_SYSTEM3 is not set +# CONFIG_SA1100_SHANNON is not set +# CONFIG_SA1100_SHERMAN is not set +# CONFIG_SA1100_SIMPAD is not set +# CONFIG_SA1100_SIMPUTER is not set +# CONFIG_SA1100_PFS168 is not set +# CONFIG_SA1100_VICTOR is not set +# CONFIG_SA1100_XP860 is not set +# CONFIG_SA1100_YOPY is not set +# CONFIG_SA1100_USB is not set +# CONFIG_SA1100_USB_NETLINK is not set +# CONFIG_SA1100_USB_CHAR is not set +# CONFIG_SA1100_SSP is not set + +# +# AT91RM9200 Implementations +# +# CONFIG_ARCH_AT91RM9200DK is not set + +# +# CLPS711X/EP721X Implementations +# +# CONFIG_ARCH_AUTCPU12 is not set +# CONFIG_ARCH_CDB89712 is not set +# CONFIG_ARCH_CLEP7312 is not set +# CONFIG_ARCH_EDB7211 is not set +# CONFIG_ARCH_FORTUNET is not set +# CONFIG_ARCH_GUIDEA07 is not set +# CONFIG_ARCH_P720T is not set +# CONFIG_ARCH_EP7211 is not set +# CONFIG_ARCH_EP7212 is not set + +# +# Samsung S3C2800 Implementations +# +CONFIG_MACH_FUJITSU_CAMELOT=y +# CONFIG_ARCH_ACORN is not set +# CONFIG_FOOTBRIDGE is not set +# CONFIG_FOOTBRIDGE_HOST is not set +# CONFIG_FOOTBRIDGE_ADDIN is not set + +# +# Processor Type +# +CONFIG_CPU_32=y +# CONFIG_CPU_26 is not set +# CONFIG_CPU_ARM610 is not set +# CONFIG_CPU_ARM710 is not set +# CONFIG_CPU_ARM720T is not set +CONFIG_CPU_ARM920T=y +# CONFIG_CPU_ARM922T is not set +# CONFIG_PLD is not set +# CONFIG_CPU_ARM926T is not set +# CONFIG_CPU_ARM1020 is not set +# CONFIG_CPU_ARM1026 is not set +# CONFIG_CPU_SA110 is not set +# CONFIG_CPU_SA1100 is not set +# CONFIG_CPU_32v3 is not set +CONFIG_CPU_32v4=y + +# +# Processor Features +# +# CONFIG_ARM_THUMB is not set +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_DISCONTIGMEM is not set + +# +# General setup +# +# CONFIG_PCI is not set +CONFIG_ISA=y +# CONFIG_ISA_DMA is not set +CONFIG_ZBOOT_ROM=y +CONFIG_ZBOOT_ROM_TEXT=00000000 +CONFIG_ZBOOT_ROM_BSS=08500000 +# CONFIG_HOTPLUG is not set +# CONFIG_PCMCIA is not set +CONFIG_NET=y +CONFIG_SYSVIPC=y +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_SYSCTL=y + +# +# At least one math emulation must be selected +# +CONFIG_FPE_NWFPE=m +# CONFIG_FPE_NWFPE_XP is not set +CONFIG_FPE_FASTFPE=m +CONFIG_KCORE_ELF=y +# CONFIG_KCORE_AOUT is not set +# CONFIG_BINFMT_AOUT is not set +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_MISC is not set +CONFIG_PM=y +# CONFIG_ARTHUR is not set +CONFIG_CMDLINE="noinitrd root=/dev/nfs ip=:::::cm0:any console=ttyS0,115200n8" +CONFIG_LEDS=y +CONFIG_LEDS_TIMER=y +CONFIG_LEDS_CPU=y +CONFIG_ALIGNMENT_TRAP=y + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Memory Technology Devices (MTD) +# +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_CONCAT is not set +# CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_CMDLINE_PARTS is not set +# CONFIG_MTD_AFS_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=y +CONFIG_MTD_JEDECPROBE=y +CONFIG_MTD_GEN_PROBE=y +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +# CONFIG_MTD_CFI_INTELEXT is not set +CONFIG_MTD_CFI_AMDSTD=y +# CONFIG_MTD_CFI_STAA is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +CONFIG_MTD_OBSOLETE_CHIPS=y +CONFIG_MTD_AMDSTD=y +# CONFIG_MTD_SHARP is not set +# CONFIG_MTD_JEDEC is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_NORA is not set +# CONFIG_MTD_ARM_INTEGRATOR is not set +# CONFIG_MTD_CDB89712 is not set +# CONFIG_MTD_SA1100 is not set +# CONFIG_MTD_DC21285 is not set +# CONFIG_MTD_IQ80310 is not set +# CONFIG_MTD_FORTUNET is not set +# CONFIG_MTD_EPXA is not set +# CONFIG_MTD_AUTCPU12 is not set +# CONFIG_MTD_EDB7312 is not set +# CONFIG_MTD_IMPA7 is not set +# CONFIG_MTD_CEIVA is not set +CONFIG_MTD_FUJITSU_CAMELOT=y +# CONFIG_MTD_PCI is not set +# CONFIG_MTD_PCMCIA is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_PMC551 is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLKMTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC1000 is not set +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOCPROBE is not set + +# +# NAND Flash Device Drivers +# +# CONFIG_MTD_NAND is not set + +# +# Plug and Play configuration +# +# CONFIG_PNP is not set +# CONFIG_ISAPNP is not set + +# +# Block devices +# +# CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_DEV_XD is not set +# CONFIG_PARIDE is not set +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_CISS_SCSI_TAPE is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +CONFIG_BLK_DEV_LOOP=y +# CONFIG_BLK_DEV_NBD is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_INITRD=y +# CONFIG_BLK_STATS is not set + +# +# Multi-device support (RAID and LVM) +# +# CONFIG_MD is not set +# CONFIG_BLK_DEV_MD is not set +# CONFIG_MD_LINEAR is not set +# CONFIG_MD_RAID0 is not set +# CONFIG_MD_RAID1 is not set +# CONFIG_MD_RAID5 is not set +# CONFIG_MD_MULTIPATH is not set +# CONFIG_BLK_DEV_LVM is not set + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +# CONFIG_NETLINK_DEV is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +# CONFIG_FILTER is not set +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_DHCP is not set +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE is not set +CONFIG_ARPD=y +# CONFIG_INET_ECN is not set +# CONFIG_SYN_COOKIES is not set + +# +# IP: Netfilter Configuration +# +CONFIG_IP_NF_CONNTRACK=y +CONFIG_IP_NF_FTP=y +# CONFIG_IP_NF_AMANDA is not set +# CONFIG_IP_NF_TFTP is not set +CONFIG_IP_NF_IRC=y +CONFIG_IP_NF_QUEUE=y +CONFIG_IP_NF_IPTABLES=y +# CONFIG_IP_NF_MATCH_LIMIT is not set +CONFIG_IP_NF_MATCH_MAC=y +CONFIG_IP_NF_MATCH_PKTTYPE=y +# CONFIG_IP_NF_MATCH_MARK is not set +# CONFIG_IP_NF_MATCH_MULTIPORT is not set +# CONFIG_IP_NF_MATCH_TOS is not set +# CONFIG_IP_NF_MATCH_ECN is not set +# CONFIG_IP_NF_MATCH_DSCP is not set +# CONFIG_IP_NF_MATCH_AH_ESP is not set +# CONFIG_IP_NF_MATCH_LENGTH is not set +# CONFIG_IP_NF_MATCH_TTL is not set +# CONFIG_IP_NF_MATCH_TCPMSS is not set +# CONFIG_IP_NF_MATCH_HELPER is not set +CONFIG_IP_NF_MATCH_STATE=y +CONFIG_IP_NF_MATCH_CONNTRACK=y +# CONFIG_IP_NF_MATCH_UNCLEAN is not set +CONFIG_IP_NF_MATCH_OWNER=y +CONFIG_IP_NF_FILTER=y +# CONFIG_IP_NF_TARGET_REJECT is not set +# CONFIG_IP_NF_TARGET_MIRROR is not set +CONFIG_IP_NF_NAT=y +CONFIG_IP_NF_NAT_NEEDED=y +CONFIG_IP_NF_TARGET_MASQUERADE=y +# CONFIG_IP_NF_TARGET_REDIRECT is not set +# CONFIG_IP_NF_NAT_LOCAL is not set +# CONFIG_IP_NF_NAT_SNMP_BASIC is not set +CONFIG_IP_NF_NAT_IRC=y +CONFIG_IP_NF_NAT_FTP=y +# CONFIG_IP_NF_MANGLE is not set +# CONFIG_IP_NF_TARGET_LOG is not set +# CONFIG_IP_NF_TARGET_ULOG is not set +# CONFIG_IP_NF_TARGET_TCPMSS is not set +# CONFIG_IP_NF_ARPTABLES is not set +# CONFIG_IPV6 is not set +# CONFIG_KHTTPD is not set +# CONFIG_ATM is not set +# CONFIG_VLAN_8021Q is not set + +# +# +# +# CONFIG_IPX is not set +# CONFIG_ATALK is not set + +# +# Appletalk devices +# +# CONFIG_DEV_APPLETALK is not set +# CONFIG_DECNET is not set +# CONFIG_BRIDGE is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_LLC is not set +# CONFIG_NET_DIVERT is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_NET_FASTROUTE is not set +# CONFIG_NET_HW_FLOWCONTROL is not set + +# +# QoS and/or fair queueing +# +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set + +# +# Network device support +# +CONFIG_NETDEVICES=y + +# +# ARCnet devices +# +# CONFIG_ARCNET is not set +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set +# CONFIG_ETHERTAP is not set + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +# CONFIG_ARM_AM79C961A is not set +# CONFIG_ARM_CIRRUS is not set +# CONFIG_SUNLANCE is not set +# CONFIG_SUNBMAC is not set +# CONFIG_SUNQE is not set +# CONFIG_SUNGEM is not set +# CONFIG_NET_VENDOR_3COM is not set +# CONFIG_LANCE is not set +# CONFIG_NET_VENDOR_SMC is not set +# CONFIG_NET_VENDOR_RACAL is not set +# CONFIG_AT1700 is not set +# CONFIG_DEPCA is not set +# CONFIG_HP100 is not set +# CONFIG_NET_ISA is not set +CONFIG_NET_PCI=y +# CONFIG_PCNET32 is not set +# CONFIG_AMD8111_ETH is not set +# CONFIG_ADAPTEC_STARFIRE is not set +# CONFIG_AC3200 is not set +# CONFIG_APRICOT is not set +# CONFIG_CS89x0 is not set +# CONFIG_TULIP is not set +# CONFIG_DM9102 is not set +# CONFIG_EEPRO100 is not set +# CONFIG_EEPRO100_PIO is not set +# CONFIG_E100 is not set +# CONFIG_LNE390 is not set +# CONFIG_FEALNX is not set +# CONFIG_NATSEMI is not set +# CONFIG_NE2K_PCI is not set +# CONFIG_NE3210 is not set +# CONFIG_ES3210 is not set +# CONFIG_8139CP is not set +# CONFIG_8139TOO is not set +# CONFIG_8139TOO_PIO is not set +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139TOO_8129 is not set +# CONFIG_8139_OLD_RX_RESET is not set +# CONFIG_SIS900 is not set +# CONFIG_EPIC100 is not set +# CONFIG_SUNDANCE is not set +# CONFIG_SUNDANCE_MMIO is not set +# CONFIG_TC35815 is not set +# CONFIG_VIA_RHINE is not set +# CONFIG_VIA_RHINE_MMIO is not set +# CONFIG_WINBOND_840 is not set +# CONFIG_NET_POCKET is not set + +# +# Ethernet (1000 Mbit) +# +# CONFIG_ACENIC is not set +# CONFIG_DL2K is not set +# CONFIG_E1000 is not set +# CONFIG_MYRI_SBUS is not set +# CONFIG_NS83820 is not set +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +# CONFIG_R8169 is not set +# CONFIG_SK98LIN is not set +# CONFIG_TIGON3 is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PLIP is not set +CONFIG_PPP=y +CONFIG_PPP_MULTILINK=y +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=y +CONFIG_PPP_SYNC_TTY=y +CONFIG_PPP_DEFLATE=y +CONFIG_PPP_BSDCOMP=y +CONFIG_PPPOE=y +# CONFIG_SLIP is not set + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Token Ring devices +# +# CONFIG_TR is not set +# CONFIG_NET_FC is not set +# CONFIG_RCPCI is not set +# CONFIG_SHAPER is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set + +# +# Amateur Radio support +# +# CONFIG_HAMRADIO is not set + +# +# IrDA (infrared) support +# +# CONFIG_IRDA is not set + +# +# ATA/ATAPI/MFM/RLL support +# +# CONFIG_IDE is not set +# CONFIG_BLK_DEV_IDE_MODES is not set +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI support +# +# CONFIG_SCSI is not set + +# +# I2O device support +# +# CONFIG_I2O is not set +# CONFIG_I2O_BLOCK is not set +# CONFIG_I2O_LAN is not set +# CONFIG_I2O_SCSI is not set +# CONFIG_I2O_PROC is not set + +# +# ISDN subsystem +# +# CONFIG_ISDN is not set + +# +# Input core support +# +# CONFIG_INPUT is not set +# CONFIG_INPUT_KEYBDEV is not set +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_MX1TS is not set + +# +# Character devices +# +# CONFIG_VT is not set +# CONFIG_SERIAL is not set +# CONFIG_SERIAL_EXTENDED is not set +CONFIG_SERIAL_NONSTANDARD=y +# CONFIG_COMPUTONE is not set +# CONFIG_ROCKETPORT is not set +# CONFIG_CYCLADES is not set +# CONFIG_DIGIEPCA is not set +# CONFIG_DIGI is not set +# CONFIG_ESPSERIAL is not set +# CONFIG_MOXA_INTELLIO is not set +# CONFIG_MOXA_SMARTIO is not set +# CONFIG_ISI is not set +# CONFIG_SYNCLINK is not set +# CONFIG_SYNCLINKMP is not set +CONFIG_N_HDLC=y +# CONFIG_RISCOM8 is not set +# CONFIG_SPECIALIX is not set +# CONFIG_SX is not set +# CONFIG_RIO is not set +# CONFIG_STALDRV is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_ANAKIN is not set +# CONFIG_SERIAL_ANAKIN_CONSOLE is not set +# CONFIG_SERIAL_AMBA is not set +# CONFIG_SERIAL_AMBA_CONSOLE is not set +# CONFIG_SERIAL_CLPS711X is not set +# CONFIG_SERIAL_CLPS711X_CONSOLE is not set +# CONFIG_SERIAL_21285 is not set +# CONFIG_SERIAL_21285_OLD is not set +# CONFIG_SERIAL_21285_CONSOLE is not set +# CONFIG_SERIAL_UART00 is not set +# CONFIG_SERIAL_UART00_CONSOLE is not set +# CONFIG_SERIAL_SA1100 is not set +# CONFIG_SERIAL_SA1100_CONSOLE is not set +# CONFIG_SERIAL_OMAHA is not set +# CONFIG_SERIAL_OMAHA_CONSOLE is not set +# CONFIG_SERIAL_AT91 is not set +# CONFIG_SERIAL_AT91_CONSOLE is not set +CONFIG_SERIAL_S3C2800=y +CONFIG_SERIAL_S3C2800_CONSOLE=y +CONFIG_S3C2800_DEFAULT_BAUDRATE=115200 +# CONFIG_SERIAL_8250 is not set +# CONFIG_SERIAL_8250_CONSOLE is not set +# CONFIG_SERIAL_8250_EXTENDED is not set +# CONFIG_SERIAL_8250_MANY_PORTS is not set +# CONFIG_SERIAL_8250_SHARE_IRQ is not set +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +# CONFIG_SERIAL_8250_MULTIPORT is not set +# CONFIG_SERIAL_8250_HUB6 is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +CONFIG_UNIX98_PTY_COUNT=256 + +# +# I2C support +# +# CONFIG_I2C is not set + +# +# L3 serial bus support +# +# CONFIG_L3 is not set +# CONFIG_L3_ALGOBIT is not set +# CONFIG_L3_BIT_SA1100_GPIO is not set + +# +# Other L3 adapters +# +# CONFIG_L3_SA1111 is not set +# CONFIG_BIT_SA1100_GPIO is not set + +# +# Mice +# +# CONFIG_BUSMOUSE is not set +# CONFIG_MOUSE is not set + +# +# Joysticks +# +# CONFIG_INPUT_GAMEPORT is not set + +# +# Input core support is needed for gameports +# + +# +# Input core support is needed for joysticks +# +# CONFIG_QIC02_TAPE is not set +# CONFIG_IPMI_HANDLER is not set +# CONFIG_IPMI_PANIC_EVENT is not set +# CONFIG_IPMI_DEVICE_INTERFACE is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_IPMI_WATCHDOG is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_SCx200_GPIO is not set +# CONFIG_AMD_PM768 is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_FTAPE is not set +# CONFIG_AGP is not set +# CONFIG_DRM is not set + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# File systems +# +# CONFIG_QUOTA is not set +# CONFIG_AUTOFS_FS is not set +CONFIG_AUTOFS4_FS=m +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +# CONFIG_ADFS_FS is not set +# CONFIG_ADFS_FS_RW is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BEFS_DEBUG is not set +# CONFIG_BFS_FS is not set +CONFIG_EXT3_FS=m +CONFIG_JBD=m +# CONFIG_JBD_DEBUG is not set +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +# CONFIG_UMSDOS_FS is not set +CONFIG_VFAT_FS=m +# CONFIG_EFS_FS is not set +CONFIG_JFFS_FS=m +CONFIG_JFFS_FS_VERBOSE=0 +# CONFIG_JFFS_PROC_FS is not set +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_CRAMFS=m +CONFIG_TMPFS=y +CONFIG_RAMFS=y +# CONFIG_ISO9660_FS is not set +# CONFIG_JOLIET is not set +# CONFIG_ZISOFS is not set +# CONFIG_JFS_FS is not set +# CONFIG_JFS_DEBUG is not set +# CONFIG_JFS_STATISTICS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_NTFS_FS is not set +# CONFIG_NTFS_RW is not set +# CONFIG_HPFS_FS is not set +CONFIG_PROC_FS=y +# CONFIG_DEVFS_FS is not set +# CONFIG_DEVFS_MOUNT is not set +# CONFIG_DEVFS_DEBUG is not set +CONFIG_DEVPTS_FS=y +# CONFIG_QNX4FS_FS is not set +# CONFIG_QNX4FS_RW is not set +# CONFIG_ROMFS_FS is not set +CONFIG_EXT2_FS=y +# CONFIG_SYSV_FS is not set +# CONFIG_UDF_FS is not set +# CONFIG_UDF_RW is not set +# CONFIG_UFS_FS is not set +# CONFIG_UFS_FS_WRITE is not set + +# +# Network File Systems +# +# CONFIG_CODA_FS is not set +# CONFIG_INTERMEZZO_FS is not set +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +CONFIG_ROOT_NFS=y +# CONFIG_NFSD is not set +# CONFIG_NFSD_V3 is not set +# CONFIG_NFSD_TCP is not set +CONFIG_SUNRPC=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_SMB_FS=m +# CONFIG_SMB_NLS_DEFAULT is not set +# CONFIG_NCP_FS is not set +# CONFIG_NCPFS_PACKET_SIGNING is not set +# CONFIG_NCPFS_IOCTL_LOCKING is not set +# CONFIG_NCPFS_STRONG is not set +# CONFIG_NCPFS_NFS_NS is not set +# CONFIG_NCPFS_OS2_NS is not set +# CONFIG_NCPFS_SMALLDOS is not set +# CONFIG_NCPFS_NLS is not set +# CONFIG_NCPFS_EXTRAS is not set +# CONFIG_ZISOFS_FS is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_EFI_PARTITION is not set +CONFIG_SMB_NLS=y +CONFIG_NLS=y + +# +# Native Language Support +# +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=m +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ISO8859_1 is not set +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_UTF8 is not set + +# +# Multimedia Capabilities Port drivers +# +# CONFIG_MCP is not set +# CONFIG_MCP_SA1100 is not set +# CONFIG_MCP_UCB1200 is not set +# CONFIG_MCP_UCB1200_AUDIO is not set +# CONFIG_MCP_UCB1200_TS is not set + +# +# USB support +# +# CONFIG_USB is not set + +# +# Bluetooth support +# +# CONFIG_BLUEZ is not set + +# +# Kernel hacking +# +CONFIG_FRAME_POINTER=y +# CONFIG_DEBUG_USER is not set +CONFIG_DEBUG_INFO=y +# CONFIG_NO_PGT_CACHE is not set +# CONFIG_DEBUG_KERNEL is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_WAITQ is not set +# CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_DEBUG_ERRORS is not set +# CONFIG_DEBUG_LL is not set +# CONFIG_DEBUG_DC21285_PORT is not set +# CONFIG_DEBUG_CLPS711X_UART2 is not set + +# +# Library routines +# +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y diff -urN --exclude=CVS --exclude='.*' linux-2.4.21-rmk1/arch/arm/mach-s3c2800/Makefile linux-2.4.21-rmk1-s3c2800/arch/arm/mach-s3c2800/Makefile --- linux-2.4.21-rmk1/arch/arm/mach-s3c2800/Makefile Wed Dec 31 19:00:00 1969 +++ linux-2.4.21-rmk1-s3c2800/arch/arm/mach-s3c2800/Makefile Sat Oct 18 06:59:40 2003 @@ -0,0 +1,29 @@ +# +# arch/arm/mach-s3c2800/Makefile +# +# 2003 (c) MontaVista Software, Inc. This file is licensed under +# the terms of the GNU General Public License version 2. This program +# is licensed "as is" without any warranty of any kind, whether express +# or implied. +# +# Note! Dependencies are done automagically by 'make dep', which also +# removes any old dependencies. DON'T put your own dependencies here +# unless it's something special (ie not a .c file). + +USE_STANDARD_AS_RULE := true + +O_TARGET := s3c2800.o + +# Object file lists. + +obj-y := arch.o irq.o leds.o dma.o +obj-m := +obj-n := +obj- := + +export-objs := leds.o dma.o + +obj-$(CONFIG_LEDS) += leds.o +obj-$(CONFIG_MACH_FUJITSU_CAMELOT) += camelot.o + +include $(TOPDIR)/Rules.make diff -urN --exclude=CVS --exclude='.*' linux-2.4.21-rmk1/arch/arm/mach-s3c2800/arch.c linux-2.4.21-rmk1-s3c2800/arch/arm/mach-s3c2800/arch.c --- linux-2.4.21-rmk1/arch/arm/mach-s3c2800/arch.c Wed Dec 31 19:00:00 1969 +++ linux-2.4.21-rmk1-s3c2800/arch/arm/mach-s3c2800/arch.c Sat Oct 18 06:59:45 2003 @@ -0,0 +1,90 @@ +/* + * arch/arm/mach-s3c2800/arch.c + * + * Samsung s3c2800 cpu + * + * Author: + * + * 2003 (c) MontaVista Software, Inc. This file is licensed under + * the terms of the GNU General Public License version 2. This program + * is licensed "as is" without any warranty of any kind, whether express + * or implied. + */ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +extern void __init s3c2800_init_irq(void); + +static void __init +fixup_s3c2800(struct machine_desc *desc, struct param_struct *params, + char **cmdline, struct meminfo *mi) +{ +#ifdef CONFIG_MACH_FUJITSU_CAMELOT +#define SDRAM_SIZE (8*1024*1024) + /* + * SDRAM Bank 0 has one memory bank at start address 0x08000000 + */ + mi->bank[0].start = PA_SDRAM_BASE; + mi->bank[0].size = SDRAM_SIZE; + mi->bank[0].node = 0; + mi->nr_banks = 1; +#endif + +#if 0 + ROOT_DEV = MKDEV(RAMDISK_MAJOR,0); + +#ifdef CONFIG_BLK_DEV_RAM_SIZE + setup_ramdisk( 1, 0, 0, CONFIG_BLK_DEV_RAM_SIZE); +#else + setup_ramdisk( 1, 0, 0, BLK_DEV_RAM_SIZE); +#endif + setup_initrd( __phys_to_virt(RAMDISK_DN_ADDR), ZIP_RAMDISK_SIZE); +#endif +} + +static void __init s3c2800_map_io(void) +{ +#ifdef CONFIG_MACH_FUJITSU_CAMELOT + extern void __init fujitsu_chamelot_map_io(void); + fujitsu_chamelot_map_io(); +#endif +} + +#if 0 +#define ustat0 (*(volatile unsigned *)(0xe0170010)) +#define utx0 (*(volatile unsigned char *)(0xe0170020)) + +void +debug_putc(char c) +{ + if (c == '\n') + debug_putc('\r'); + + /* wait until THR is empty */ + while (!(ustat0 & 0x2)) + ; + + utx0 = c; +} +#endif + +MACHINE_START(FUJITSU_CAMELOT, "Samsung S3C2800") + MAINTAINER("Montavista Software") + BOOT_MEM(PA_SDRAM_BASE,PA_IO_PORT_BASE,VA_IO_PORT_BASE) + BOOT_PARAMS(PA_SDRAM_BASE+0x100) + FIXUP(fixup_s3c2800) + MAPIO(s3c2800_map_io) + INITIRQ(s3c2800_init_irq) +MACHINE_END diff -urN --exclude=CVS --exclude='.*' linux-2.4.21-rmk1/arch/arm/mach-s3c2800/camelot.c linux-2.4.21-rmk1-s3c2800/arch/arm/mach-s3c2800/camelot.c --- linux-2.4.21-rmk1/arch/arm/mach-s3c2800/camelot.c Wed Dec 31 19:00:00 1969 +++ linux-2.4.21-rmk1-s3c2800/arch/arm/mach-s3c2800/camelot.c Thu Oct 16 10:33:11 2003 @@ -0,0 +1,54 @@ +/* + * arch/arm/mach-s3c2800/camelot.c + * + * mappings for Fujitsu Caemlot board + * + * Author: + * + * 2003 (c) MontaVista Software, Inc. This file is licensed under + * the terms of the GNU General Public License version 2. This program + * is licensed "as is" without any warranty of any kind, whether express + * or implied. + */ + +#include +#include +#include + +#include +#include +#include +#include + +#include + +/* + * map internal registers + * + * we don't really need 64k granularity as it could all be done with + * two 1MB entries, but this is more clear... + */ +static struct map_desc standard_io_desc[] __initdata = { + /* virtual physical length domain r w c b */ + { VA_CKPO_BASE, PA_CKPO_BASE, SZ_64K, DOMAIN_IO, 0,1,0,0}, + { VA_MEM_CTR_BASE, PA_MEM_CTR_BASE,SZ_64K, DOMAIN_IO, 0,1,0,0}, + { VA_INT_BASE, PA_INT_BASE, SZ_64K, DOMAIN_IO, 0,1,0,0}, + { VA_DMA_BASE, PA_DMA_BASE, SZ_256K, DOMAIN_IO, 0,1,0,0}, + { VA_PCI_BASE, PA_PCI_BASE, SZ_64K, DOMAIN_IO, 0,1,0,0}, + { VA_IO_PORT_BASE, PA_IO_PORT_BASE,SZ_64K, DOMAIN_IO, 0,1,0,0}, + { VA_RRCR_BASE, PA_RRCR_BASE, SZ_64K, DOMAIN_IO, 0,1,0,0}, + { VA_WD_BASE, PA_WD_BASE, SZ_64K, DOMAIN_IO, 0,1,0,0}, + { VA_TIMER_BASE, PA_TIMER_BASE, SZ_256K, DOMAIN_IO, 0,1,0,0}, + { VA_RTC_BASE, PA_RTC_BASE, SZ_64K, DOMAIN_IO, 0,1,0,0}, + { VA_UART_BASE, PA_UART_BASE, SZ_128K, DOMAIN_IO, 0,1,0,0}, + { VA_IIC_BASE, PA_IIC_BASE, SZ_128K, DOMAIN_IO, 0,1,0,0}, + { VA_DUAL_PORT_BASE, PA_DUAL_PORT_BASE, SZ_8K, DOMAIN_IO, 0,1,0,0}, + { VA_CAMELOT_BASE, PA_CAMELOT_BASE,SZ_16K, DOMAIN_IO, 0,1,0,0}, + LAST_DESC +}; + + +extern void __init fujitsu_chamelot_map_io(void) +{ + iotable_init(standard_io_desc); +} diff -urN --exclude=CVS --exclude='.*' linux-2.4.21-rmk1/arch/arm/mach-s3c2800/dma.c linux-2.4.21-rmk1-s3c2800/arch/arm/mach-s3c2800/dma.c --- linux-2.4.21-rmk1/arch/arm/mach-s3c2800/dma.c Wed Dec 31 19:00:00 1969 +++ linux-2.4.21-rmk1-s3c2800/arch/arm/mach-s3c2800/dma.c Thu Oct 16 10:33:11 2003 @@ -0,0 +1,485 @@ +/* + * arch/arm/arch-s3c2800/dma-s3c2800.c + * + * NOTE: these are stubs at best, copied from an s3c2410 port. + * THIS CODE HAS NOT BEEN TESTED AT ALL! + * + * Author: + * + * 2003 (c) MontaVista Software, Inc. This file is licensed under + * the terms of the GNU General Public License version 2. This program + * is licensed "as is" without any warranty of any kind, whether express + * or implied. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#ifdef DEBUG +#define DPRINTK( s, arg... ) printk( "dma<%s>: " s, dma->device_id , ##arg ) +#define swldebug(x...) printk( ##x ) +#else +#define DPRINTK( x... ) +#define swldebug( x... ) +#endif + +static s3c2800_dma_t s3c2800_dma_chan[MAX_S3C2800_DMA_CHANNELS]; + + +static void dmaDev_buf_enable(int dma_type) +{ + switch (dma_type ) { + default: +// rIISCON |= 0x1; /* IIS Interface start */ + } +} + + +static void dmaDev_pause_on(int dma_type) +{ + switch (dma_type ) { + default: +// rIISCON = (rIISCON&~(1<<3))|(1<<3); /* Pause Tx */ + } +} + +static void dmaDev_pause_stop(int dma_type) +{ + switch (dma_type ) { + default: +// rIISCON = (rIISCON&~(1<<3))|(0<<3); /* Stop Pause*/ + } +} + +//static void IIS_Interface_init(void); + +static void dmaDev_Config(int dma_type) +{ + switch (dma_type ) { + /* + * switch (){ + * case A: + * case B: + * } + */ + default: +// IIS_Interface_init(); + } +} + +/* + * This functions cann't be called in s3c2800_dma_flush_all(dmach_t channel) + * and I don't know where to use this function + * Please let me know~~ + */ +static void dmaDev_finished(s3c2800_dma_t * dma) +{ + + switch (dma->device ) { + default: +// rIISCON = 0; /* reset value */ + dma->regs->DMASKTRIG = (1<<2); +// rIISFCON = 0x0; /* For FIFO flush */ + } +} + + +static inline int s3c2800_start_dma(s3c2800_dma_t * dma) +{ + dma_buf_t *buf; + dma_regs_t *regs = dma->regs; + + swldebug(__FUNCTION__ " Starting \n"); + + if (dma->tail->size> MAX_DMA_TRANSFER_SIZE ) + printk(__FUNCTION__" DMA size over \n"); + + regs->DISRC = dma->tail->dma_start; + + regs->DCON = (regs->DCON&~(0xfffff)) | dma->tail->size/2; + regs->DMASKTRIG = (0<<2)|(1<<1)|0; /* no stop, DMA2 channe on, no-sw trigger */ + dmaDev_buf_enable(1); + + buf = dma->tail; + if(!buf) { + printk(__FUNCTION__"\n\n ONE BUFFER DATA ---> UNEXPECTED CASE \n\n"); + return 0; + } + dma->curr = buf; + dma->tail = buf->next; + + swldebug(" s CURRC 0X%08X \n",dma->regs->DCSRC ); + swldebug(" s DISRC 0X%08X \n",dma->regs->DISRC ); + swldebug(" s DSTAT 0X%08X \n",dma->regs->DSTAT&0xfffff); + + while( (regs->DSTAT&0xfffff)==0 ); + + regs->DISRC = dma->tail->dma_start; + regs->DCON = (regs->DCON&~(0xfffff)) |dma->tail->size/2; + + swldebug(" t CURRC 0X%08X \n",dma->regs->DCSRC ); + swldebug(" t DISRC 0X%08X \n",dma->regs->DISRC ); + swldebug(" t DSTAT 0X%08X \n",dma->regs->DSTAT&0xfffff); + + return 0; /* Succesful Return value */ +} + + +/* This must be called with IRQ disabled */ +static void dmaDone_irq_handler(int irq, void *dev_id, struct pt_regs *regs) +{ + s3c2800_dma_t *dma = (s3c2800_dma_t *) dev_id; + dma_buf_t *buf=dma->curr; + + swldebug(" 0 CURRC 0X%08X \n",dma->regs->DCSRC ); + swldebug(" 0 DISRC 0X%08X \n",dma->regs->DISRC ); + swldebug(" 0 DSTAT 0X%08X \n",dma->regs->DSTAT&0xfffff); + dma->usedQueueCnt++; + + if(!dma->callback) { + printk(__FUNCTION__ "\n\n WHERE IS MY CALLBACK FUNCTION ? \n\n"); + return; + } + + /* MAKE SURE TO CORRECT SIZE */ + dma->callback(buf->id,buf->size);/* wake up current done buffer */ + if(buf) kfree(buf); + + /*------------------------------------*/ + // Waiting ....let next buffer loaded + while( ((dma->regs->DSTAT&0xfffff)== 0) && dma->tail); + /*------------------------------------*/ + + dma->curr = dma->tail; + + swldebug(" 1 CURRC 0X%08X \n",dma->regs->DCSRC ); + swldebug(" 1 DISRC 0X%08X \n",dma->regs->DISRC ); + swldebug(" 1 DSTAT 0X%08X \n",dma->regs->DSTAT&0xfffff); + + if(!dma->curr){ + swldebug(__FUNCTION__ " ONE BUFFER CASE DATA END \n"); + s3c2800_dma_flush_all(2); + s3c2800_free_dma(2); + return; + } + + dma->tail = dma->tail->next; + buf = dma->tail; + + if(!buf) { + swldebug(__FUNCTION__ " OVER TWO,THREE BUFFER CASE DATA END \n"); + return; + } + + dma->regs->DISRC = buf->dma_ptr; + dma->regs->DCON = (dma->regs->DCON&~(0xfffff))|buf->size/2 ; + + swldebug(" 2 CURRC 0X%08X \n",dma->regs->DCSRC ); + swldebug(" 2 DISRC 0X%08X \n",dma->regs->DISRC ); + swldebug(" 2 DSTAT 0X%08X \n",dma->regs->DSTAT&0xfffff); + +} + + +/* + * if channel id defined, + * IRQ Number is consequently defined by s3c2800_init_dma() + * + */ +int s3c2800_request_dma (dmach_t channel, const char *device_id, + dma_device_t device) +{ + s3c2800_dma_t *dma = NULL; + int err= 0; + + if (s3c2800_dma_chan[channel].in_use) { + printk(" Request DMA Channel already used channel %d \n",channel); + return -EBUSY; + } else { + dma = &s3c2800_dma_chan[channel]; + dma->in_use = 1; /* IRQ NO already assigned in s3c2800_dma_init */ + } + + err=request_irq(dma->irq,dmaDone_irq_handler,SA_INTERRUPT,device_id,(void *) dma); + if (err) { + printk(KERN_ERR"%s: unable to request IRQ %d for DMA channel\n", + device_id, dma->irq); + return err; + } + dma->device_id = device_id; + dma->device = device; + dma->callback = NULL; + +#ifdef FULL_DMA_DEVICE_SUPPORT + switch(dma->device) { + case A: break; + case B: break; + default: + } +#else /* Only Sound */ + dma->regs->DISRCC = (0<<1)|(0<<0); /* AHB,Address increment */ + dma->regs->DIDSTC = (1<<1)|(1<<0); /* Destination peripheral BUS s address fixed */ +#endif + dma->regs->DIDST = (unsigned long )dma->device; + /* + * DCON[19:0] initial Transfer count: assigned by s3c2800_start_dma funtion + */ + dma->regs->DCON = + (1<<31)+(0<<30)+(1<<29)+(0<<28)+(0<<27)+(0<<24)+(1<<23)+(0<<22)+(1<<20); + /* handshake, sync PCLK, TC int, single tx, single service, I2SSDO, I2S request, + auto-reload,half-word , size missing */ + dmaDev_Config(1); + return 0; +} + +int s3c2800_dma_set_callback(dmach_t channel, dma_callback_t cb) +{ + s3c2800_dma_t *dma = &s3c2800_dma_chan[channel]; + + if ((unsigned)channel >= MAX_S3C2800_DMA_CHANNELS || !dma->in_use) + return -EINVAL; + dma->callback = cb; + DPRINTK("cb = %p\n", cb); + return 0; +} + + + +/* + * data : the buffer's physical address + */ + +int s3c2800_dma_queue_buffer(dmach_t channel, void *buf_id, + dma_addr_t data, int size) +{ + s3c2800_dma_t *dma; + dma_buf_t *buf; + int flags; + + dma = &s3c2800_dma_chan[channel]; + + + if ((unsigned)channel >= MAX_S3C2800_DMA_CHANNELS || !dma->in_use) + return -EINVAL; + + buf = kmalloc(sizeof(*buf), GFP_ATOMIC); + if (!buf)return -ENOMEM; + + buf->next = NULL; + buf->dma_ptr = buf->dma_start = data; + buf->size = size; + buf->id = buf_id; + + swldebug("queueing b=%#x a=%#x s=%d\n", (unsigned int)buf_id, data, size); + + switch(dma->queueCnt) { + case 0: /* first call */ + swldebug( "============> first call \n"); + dma->queueCnt++; + dma->head = buf; + dma->tail = buf; + return 0; + + case 1: /* second call */ + swldebug( "============> second call \n"); + dma->queueCnt++; + dma->tail->next = buf; + dma->head = buf; + s3c2800_start_dma(dma); + return 0; + + default: + break; + } + + local_irq_save(flags); + dma->queueCnt++; + if (dma->head) { + dma->head->next = buf; + } + dma->head = buf; + if (!dma->tail) { + dma->tail = buf; + } + local_irq_restore(flags); + return 0; +} + + +int s3c2800_dma_stop(dmach_t channel) +{ + s3c2800_dma_t *dma = &s3c2800_dma_chan[channel]; + int flags; + + if (dma->stopped) + return 0; + local_irq_save(flags); + dma->stopped = 1; + + dmaDev_pause_on(1); +#if 0 + if (dma->curr) { + dma_buf_t *buf = dma->curr; + dma->tail = buf; + dma->curr = NULL; + } +#endif + local_irq_restore(flags); + return 0; +} + + +int s3c2800_dma_resume(dmach_t channel) +{ + s3c2800_dma_t *dma = &s3c2800_dma_chan[channel]; + + if ((unsigned)channel >= MAX_S3C2800_DMA_CHANNELS || !dma->in_use) + return -EINVAL; + + if (dma->stopped) { + int flags; + save_flags_cli(flags); + dma->stopped = 0; + dmaDev_pause_stop(1); + restore_flags(flags); + } + return 0; +} + + + +int s3c2800_dma_set_spin(dmach_t channel, dma_addr_t addr, int size) +{ + s3c2800_dma_t *dma = &s3c2800_dma_chan[channel]; + int flags; + + if ((unsigned)channel >= MAX_S3C2800_DMA_CHANNELS || !dma->in_use) + return -EINVAL; + + DPRINTK("set spin %d at %#x\n", size, addr); + local_irq_save(flags); + dma->spin_addr = addr; + dma->spin_size = size; + local_irq_restore(flags); + return 0; +} + +int s3c2800_dma_flush_all(dmach_t channel) +{ + s3c2800_dma_t *dma = &s3c2800_dma_chan[channel]; + dma_buf_t *buf, *next_buf; + int flags; + + if ( ((unsigned)channel >= MAX_S3C2800_DMA_CHANNELS)|| !dma->in_use) + return -EINVAL; + + local_irq_save(flags); + buf = dma->tail; + if (!buf) buf = dma->tail; + dma->head = dma->tail = dma->curr = NULL; + dma->stopped = 0; + local_irq_restore(flags); + while (buf) { + next_buf = buf->next; + kfree(buf); + buf = next_buf; + } + swldebug("%s[%d] %s : flushed \n", __FILE__,__LINE__,__FUNCTION__); + return 0; +} + + +void s3c2800_free_dma(dmach_t channel) +{ + s3c2800_dma_t *dma; + + if ((unsigned)channel >= MAX_S3C2800_DMA_CHANNELS) return; + swldebug("%s[%d] %s : \n", __FILE__,__LINE__,__FUNCTION__); + dma = &s3c2800_dma_chan[channel]; + if (!dma->in_use) { + swldebug(KERN_ERR "Trying to free free DMA%d\n", channel); + return; + } + + s3c2800_dma_flush_all(channel); + dmaDev_finished(dma); + + free_irq(IRQ_DMA0 + channel, (void *) dma); + dma->in_use = 0; + dma->queueCnt = 0; + dma->usedQueueCnt = 0; +} + + +EXPORT_SYMBOL(s3c2800_request_dma); +EXPORT_SYMBOL(s3c2800_dma_set_callback); +EXPORT_SYMBOL(s3c2800_dma_set_spin); +EXPORT_SYMBOL(s3c2800_dma_queue_buffer); +EXPORT_SYMBOL(s3c2800_dma_stop); +EXPORT_SYMBOL(s3c2800_dma_resume); +EXPORT_SYMBOL(s3c2800_dma_flush_all); +EXPORT_SYMBOL(s3c2800_free_dma); + + +#if 0 + /* + * IIS DMA,FIFO Prescaler Setting + * Where is IIS_Interface_init() in place ? + * 1. DMA module arm/arch/mach-s3c2800/dma.c + * 2. audio module drivers/sound/s3c2800-audio.c + * 3. l3 module drivers/l3/l3-s3c2800.c + * 4. uda1341 module drivers/sound/s3c2800-uda1341.c + * + * as far as I know, 4 *^^* see below + */ + +static void IIS_Interface_init(void) +{ + /* rIISPSR moved into s3c2800-uda1341.c ioctl functions */ + + /* Trasmit DMA FIFO service request , + * Rx idle,II Prescaler Enable, IIS INTERFACE DISABLE + */ + rIISCON = (1<<5) + (1<<2) + (1<<1); + + /* Master mode[8],Tx mode[7:6],Low for Left Channel[5],IIS format[4] + * 16bit ch.[3],CDCLK 256fs[2],IISCLK 32fs[1:0] + */ +#if (AUDIO_CODEC_CLOCK == 256) + rIISMOD = (0<<8) + (2<<6) + (0<<5) + (0<<4) + (1<<3) + (0<<2) + (1<<0); +#else + rIISMOD = (0<<8) + (2<<6) + (0<<5) + (0<<4) + (1<<3) + (1<<2) + (1<<0); +#endif + + /* Tx DMA,Tx FIFO --> start piling.... */ + rIISFCON = (1<<15) + (1<<13); +} +#endif + + +static int __init s3c2800_init_dma(void) +{ + int channel; + + for (channel = 0; channel < MAX_S3C2800_DMA_CHANNELS; channel++) { + s3c2800_dma_chan[channel].regs = + (dma_regs_t *)ARRAY_DISRC(channel); + s3c2800_dma_chan[channel].irq = IRQ_DMA0 + channel; + } + + return 0; +} + +__initcall(s3c2800_init_dma); diff -urN --exclude=CVS --exclude='.*' linux-2.4.21-rmk1/arch/arm/mach-s3c2800/irq.c linux-2.4.21-rmk1-s3c2800/arch/arm/mach-s3c2800/irq.c --- linux-2.4.21-rmk1/arch/arm/mach-s3c2800/irq.c Wed Dec 31 19:00:00 1969 +++ linux-2.4.21-rmk1-s3c2800/arch/arm/mach-s3c2800/irq.c Thu Oct 16 10:33:11 2003 @@ -0,0 +1,103 @@ +/* + * arch/arm/mach-s3c2800/irq.c + * + * Samsung S3C2800 cpu interrupt support + * + * Author: + * + * 2003 (c) MontaVista Software, Inc. This file is licensed under + * the terms of the GNU General Public License version 2. This program + * is licensed "as is" without any warranty of any kind, whether express + * or implied. + */ + + +#include +#include +#include +#include +#include +#include + +#include +#include /* contains asm/arch/irqs.h */ +#include +#include + + +static void s3c2800_mask_ack_irq(unsigned int irq) +{ + if (0) printk("s3c2800_mask_ack_irq(irq=%d)\n", irq); + rINTMSK &= ~((unsigned long)1 << irq); + rSRCPND = ((unsigned long)1 << irq); +} + +static void s3c2800_mask_irq(unsigned int irq) +{ + if (0) printk("s3c2800_mask_irq(irq=%d)\n", irq); + rINTMSK &= ~((unsigned long)1 << irq); +} + +static void s3c2800_unmask_irq(unsigned int irq) +{ + if (0) printk("s3c2800_unmask_irq(irq=%d)\n", irq); + rINTMSK |= ((unsigned long) 1 << irq); +} + +static void dummy_mask_ack_irq(unsigned int irq) +{ + printk("s3c2800_dummy_mask_ack_irq(irq=%d)\n", irq); +} + +static void dummy_mask_irq(unsigned int irq) +{ + printk("s3c2800_dummy_mask_irq(irq=%d)\n", irq); +} + +static void dummy_unmask_irq(unsigned int irq) +{ + printk("s3c2800_dummy_unmask_irq(irq=%d)\n", irq); +} + +extern unsigned int fixup_irq (int i ) +{ + return i; +} + +extern void __init s3c2800_init_irq(void) +{ + unsigned long flags; + int irq; + + if (0) printk("s3c2800_init_irq()\n"); +// request_resource(&iomem_resource, &irq_resource); + + save_flags_cli (flags); + + /* mask all interrupts */ + rINTMSK = 0x00000000; + rSRCPND = 0xffffffff; + + /* all IRQs are IRQ, not FIQ */ + rINTMOD = 0x00000000; + + + restore_flags (flags); + + + for (irq = 0; irq <= IRQ_RTC; irq++) { + irq_desc[irq].valid = 1; + irq_desc[irq].probe_ok = 1; + irq_desc[irq].mask_ack = s3c2800_mask_ack_irq; + irq_desc[irq].mask = s3c2800_mask_irq; + irq_desc[irq].unmask = s3c2800_unmask_irq; + } + + { /* irq == IRQ_DUMMY */ + irq_desc[irq].valid = 1; + irq_desc[irq].probe_ok = 1; + irq_desc[irq].mask_ack = dummy_mask_ack_irq; + irq_desc[irq].mask = dummy_mask_irq; + irq_desc[irq].unmask = dummy_unmask_irq; + } +} diff -urN --exclude=CVS --exclude='.*' linux-2.4.21-rmk1/arch/arm/mach-s3c2800/leds.c linux-2.4.21-rmk1-s3c2800/arch/arm/mach-s3c2800/leds.c --- linux-2.4.21-rmk1/arch/arm/mach-s3c2800/leds.c Wed Dec 31 19:00:00 1969 +++ linux-2.4.21-rmk1-s3c2800/arch/arm/mach-s3c2800/leds.c Thu Oct 16 10:33:11 2003 @@ -0,0 +1,100 @@ +/* + * arch/arm/mach-s3c2800/leds.c + * + * Fujitsu Camelot board LED mappings + * + * Author: + * + * 2003 (c) MontaVista Software, Inc. This file is licensed under + * the terms of the GNU General Public License version 2. This program + * is licensed "as is" without any warranty of any kind, whether express + * or implied. + */ + +#include +#include + +#include +#include +#include +#include +#include + +extern void led_display(int data); + +/* + * called by arch_idle in include/asm/arch/system.h + */ + +void set_led_state(int data) +{ + rPDATF = rPDATF | (0xf<<4); /* All led off */ + rPDATF = (rPDATF & (0xffffff0f)) | ((~data & 0xf)<<4); +} + +void +set_led_bit(int n) +{ + u32 bit = (1 << n) << 4; + rPDATF |= bit; +} + +void +clear_led_bit(int n) +{ + u32 bit = (1 << n) << 4; + rPDATF &= ~bit; +} + +void +toggle_led_bit(int n) +{ + u32 bit = (1 << n) << 4; + rPDATF ^= bit; +} + +extern void s3c2800_leds_event(led_event_t ledevt) +{ + unsigned long flags; + + local_irq_save(flags); + + switch(ledevt) { + case led_idle_start: + set_led_bit(0); + break; + + case led_idle_end: + clear_led_bit(0); + break; + + case led_timer: + toggle_led_bit(1); + break; + + case led_red_on: + set_led_bit(3); + break; + case led_red_off: + clear_led_bit(3); + break; + default: + break; + } + + local_irq_restore(flags); +} + +static int __init leds_init(void) +{ + clear_led_bit(0); + clear_led_bit(1); + clear_led_bit(2); + clear_led_bit(3); + + leds_event = s3c2800_leds_event; + + return 0; +} + +__initcall(leds_init); diff -urN --exclude=CVS --exclude='.*' linux-2.4.21-rmk1/drivers/mtd/maps/Config.in linux-2.4.21-rmk1-s3c2800/drivers/mtd/maps/Config.in --- linux-2.4.21-rmk1/drivers/mtd/maps/Config.in Thu Oct 16 10:10:09 2003 +++ linux-2.4.21-rmk1-s3c2800/drivers/mtd/maps/Config.in Sat Oct 18 07:00:13 2003 @@ -87,6 +87,7 @@ dep_tristate ' CFI Flash device mapped on EDB7312' CONFIG_MTD_EDB7312 $CONFIG_ARCH_EDB7212 $CONFIG_MTD_CFI dep_tristate ' JEDEC Flash device mapped on impA7' CONFIG_MTD_IMPA7 $CONFIG_MTD_JEDECPROBE dep_tristate ' JEDEC Flash device mapped on Ceiva/Polaroid PhotoMax Digital Picture Frame' CONFIG_MTD_CEIVA $CONFIG_MTD_JEDECPROBE $CONFIG_ARCH_CEIVA + dep_tristate ' CFI Flash device mapped on Fujitsu Camelot board' CONFIG_MTD_FUJITSU_CAMELOT $CONFIG_MTD_CFI $CONFIG_MACH_FUJITSU_CAMELOT $CONFIG_MTD_PARTITIONS fi if [ "$CONFIG_ALPHA" = "y" ]; then dep_tristate ' Flash chip mapping on TSUNAMI' CONFIG_MTD_TSUNAMI $CONFIG_MTD_GENPROBE diff -urN --exclude=CVS --exclude='.*' linux-2.4.21-rmk1/drivers/mtd/maps/Makefile linux-2.4.21-rmk1-s3c2800/drivers/mtd/maps/Makefile --- linux-2.4.21-rmk1/drivers/mtd/maps/Makefile Thu Oct 16 10:10:09 2003 +++ linux-2.4.21-rmk1-s3c2800/drivers/mtd/maps/Makefile Thu Oct 16 10:47:50 2003 @@ -60,5 +60,6 @@ obj-$(CONFIG_MTD_UCLINUX) += uclinux.o obj-$(CONFIG_MTD_NETtel) += nettel.o obj-$(CONFIG_MTD_SCB2_FLASH) += scb2_flash.o +obj-$(CONFIG_MTD_FUJITSU_CAMELOT) += fujitsu_camelot.o include $(TOPDIR)/Rules.make diff -urN --exclude=CVS --exclude='.*' linux-2.4.21-rmk1/drivers/mtd/maps/fujitsu_camelot.c linux-2.4.21-rmk1-s3c2800/drivers/mtd/maps/fujitsu_camelot.c --- linux-2.4.21-rmk1/drivers/mtd/maps/fujitsu_camelot.c Wed Dec 31 19:00:00 1969 +++ linux-2.4.21-rmk1-s3c2800/drivers/mtd/maps/fujitsu_camelot.c Sat Oct 18 07:00:20 2003 @@ -0,0 +1,189 @@ +/* + * drivers/mtd/maps/fujitsu_camelot.c + * + * Flash memory access on Fujitsu Camelot boards + * + * Brad Parker + * + * Author: + * + * 2003 (c) MontaVista Software, Inc. This file is licensed under + * the terms of the GNU General Public License version 2. This program + * is licensed "as is" without any warranty of any kind, whether express + * or implied. + */ + + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +#ifdef DEBUG_RW +#define DBG(x...) printk(x) +#else +#define DBG(x...) +#endif + +#ifdef CONFIG_MACH_FUJITSU_CAMELOT +#define WINDOW_ADDR 0x00000000 +#define WINDOW_SIZE 0x200000 +#define BUSWIDTH 2 +#endif + +__u8 physmap_read8(struct map_info *map, unsigned long ofs) +{ + __u8 ret; + ret = __raw_readb(map->map_priv_2 + ofs); + DBG("read8 from %x, %x\n", (unsigned)(map->map_priv_2 + ofs), ret); + return ret; +} + +__u16 physmap_read16(struct map_info *map, unsigned long ofs) +{ + __u16 ret; + ret = __raw_readw(map->map_priv_2 + ofs); + DBG("read16 from %x, %x\n", (unsigned)(map->map_priv_2 + ofs), ret); + return ret; +} + +__u32 physmap_read32(struct map_info *map, unsigned long ofs) +{ + __u32 ret; + ret = __raw_readl(map->map_priv_2 + ofs); + DBG("read32 from %x, %x\n", (unsigned)(map->map_priv_2 + ofs), ret); + return ret; +} + +void physmap_copy_from(struct map_info *map, void *to, unsigned long from, ssize_t len) +{ + DBG("physmap_copy from %x to %x\n", (unsigned)from, (unsigned)to); + memcpy_fromio(to, map->map_priv_2 + from, len); +} + +void physmap_write8(struct map_info *map, __u8 d, unsigned long adr) +{ + DBG("write8 at %x, %x\n", (unsigned)(map->map_priv_2 + adr), d); + __raw_writeb(d, map->map_priv_2 + adr); + mb(); +} + +void physmap_write16(struct map_info *map, __u16 d, unsigned long adr) +{ + DBG("write16 at %x, %x\n", (unsigned)(map->map_priv_2 + adr), d); + __raw_writew(d, map->map_priv_2 + adr); + mb(); +} + +void physmap_write32(struct map_info *map, __u32 d, unsigned long adr) +{ + DBG("write32 at %x, %x\n", (unsigned)(map->map_priv_2 + adr), d); + __raw_writel(d, map->map_priv_2 + adr); + mb(); +} + +void physmap_copy_to(struct map_info *map, unsigned long to, const void *from, ssize_t len) +{ + DBG("physmap_copy_to %x from %x\n", (unsigned)to, (unsigned)from); + memcpy_toio(map->map_priv_2 + to, from, len); +} + +static struct map_info fujitsu_camelot_map = { + .name = "Fujitsu Camelot flash", + .size = WINDOW_SIZE, + .buswidth = BUSWIDTH, + + read8: physmap_read8, + read16: physmap_read16, + read32: physmap_read32, + copy_from: physmap_copy_from, + write8: physmap_write8, + write16: physmap_write16, + write32: physmap_write32, + copy_to: physmap_copy_to, +}; + +#ifdef CONFIG_MACH_FUJITSU_CAMELOT + +static struct mtd_partition fujitsu_camelot_partitions[] = { + { + name: "boot", + size: 0x00100000, + offset: 0, +// mask_flags: MTD_WRITEABLE + },{ + name: "kernel", + size: 0x00100000, + offset: 0x00100000 + } +}; + +#else +#error Unsupported board +#endif + +#define NB_OF(x) (sizeof(x)/sizeof(x[0])) + +static struct mtd_info *mymtd; + +int __init fujitsu_camelot_mtd_init(void) +{ + struct mtd_partition *parts; + int nb_parts = 0; + + /* + * Static partition definition selection + */ + parts = fujitsu_camelot_partitions; + nb_parts = NB_OF(fujitsu_camelot_partitions); + + /* + * Now let's probe for the actual flash. Do it here since + * specific machine settings might have been set above. + */ + printk(KERN_NOTICE "Fujitsu_Camelot flash: probing %d-bit flash\n", + fujitsu_camelot_map.buswidth*8); + + fujitsu_camelot_map.map_priv_2 = + (unsigned long)ioremap(WINDOW_ADDR, WINDOW_SIZE); + + mymtd = do_map_probe("cfi_probe", &fujitsu_camelot_map); + if (!mymtd) { + iounmap((void *)fujitsu_camelot_map.map_priv_2); + return -ENXIO; + } + +#ifdef CONFIG_MTD_PARTITIONS + add_mtd_partitions(mymtd, parts, nb_parts); +#endif + + return 0; +} + +static void __exit fujitsu_camelot_mtd_cleanup(void) +{ + if (mymtd) { + del_mtd_partitions(mymtd); + map_destroy(mymtd); + } + if (fujitsu_camelot_map.map_priv_2) { + iounmap((void *)fujitsu_camelot_map.map_priv_2); + fujitsu_camelot_map.map_priv_2 = 0; + } + +} + +module_init(fujitsu_camelot_mtd_init); +module_exit(fujitsu_camelot_mtd_cleanup); + + +MODULE_AUTHOR("Brad Parker"); +MODULE_DESCRIPTION("Fujitsu_Camelot CFI map driver"); +MODULE_LICENSE("GPL");