Index: Makefile =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/Makefile,v retrieving revision 1.1.1.2 retrieving revision 1.1.1.3 diff -u -r1.1.1.2 -r1.1.1.3 --- Makefile 13 Jul 2005 05:24:37 -0000 1.1.1.2 +++ Makefile 13 Jul 2005 05:45:11 -0000 1.1.1.3 @@ -1,11 +1,12 @@ VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 18 -EXTRAVERSION = -rmk3 +EXTRAVERSION = -phatbox KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) -ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/) +#ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/) +ARCH = arm KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//g") CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ @@ -19,7 +20,7 @@ HOSTCC = gcc HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -CROSS_COMPILE = +CROSS_COMPILE = arm-linux- # # Include the make variables (CC, etc...) @@ -137,8 +138,7 @@ drivers/char/char.o \ drivers/block/block.o \ drivers/misc/misc.o \ - drivers/net/net.o \ - drivers/media/media.o + drivers/net/net.o DRIVERS-$(CONFIG_AGP) += drivers/char/agp/agp.o DRIVERS-$(CONFIG_DRM_NEW) += drivers/char/drm/drm.o DRIVERS-$(CONFIG_DRM_OLD) += drivers/char/drm-4.0/drm.o @@ -266,6 +266,8 @@ --end-group \ -o vmlinux $(NM) vmlinux | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map + $(OBJCOPY) -O binary vmlinux linux + symlinks: rm -f include/asm Index: README.PhatNoise =================================================================== RCS file: README.PhatNoise diff -N README.PhatNoise --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ README.PhatNoise 13 Jul 2005 05:45:11 -0000 1.1.1.1 @@ -0,0 +1,46 @@ +Building for Phatnoise Car Audio System version 1.0 and 1.1. + +Environment: +A gcc 2.95.3 cross-compiler is needed. arm-linux-gcc should be in your PATH. + +You need to configure/build the kernels individually. It is +unfortunately impossible to build one kernel which will work +on either board. We screwed that one up. + +In other words, CONFIG_ARCH_PHATNOISE10 and +CONFIG_ARCH_PHATNOISE11 should be mutually exclusive. +CONFIG_ARCH_PHATNOISE should be defined in either case. + + + +Instructions: + +1. Copy either config.phatnoise10 or config.phatnoise11 to +a file named .config. + +2. Run "make menuconfig". Exit. + +3. "make dep" + +4. "make" + +You now have a file called "linux". This is the binary kernel image +which gets loaded into memory by the boot loader. On 1.0 boards, +you need to rename this file "RoyalLin.ux" because that is the file +name that the boot loader looks for. On 1.1 boards, the file is named +"linux", but you also need a signature file called "linux.sig". + + + +Cirrus Logic DAI Device Driver: + +The driver is in the files linux/drivers/misc/cirrus_dai.c and +linux/drivers/misc/cirrus_dai_fiq.S (ARM assembly FIQ handler). + + + + +Brendan Dowling +Phatnoise, Inc. + + Index: config.phatnoise10 =================================================================== RCS file: config.phatnoise10 diff -N config.phatnoise10 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ config.phatnoise10 13 Jul 2005 05:45:11 -0000 1.1.1.1 @@ -0,0 +1,619 @@ +# +# Automatically generated by make menuconfig: 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 is not set +# CONFIG_MODVERSIONS is not set +# CONFIG_KMOD is not set + +# +# System Type +# +CONFIG_LOLAT=y +# CONFIG_LOLAT_SYSCTL is not set +# CONFIG_ARCH_ANAKIN is not set +# CONFIG_ARCH_ARCA5K is not set +# CONFIG_ARCH_CLPS7500 is not set +CONFIG_ARCH_CLPS711X=y +# 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_L7200 is not set +# CONFIG_ARCH_MX1ADS is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_SHARK is not set + +# +# Archimedes/A5000 Implementations +# +# 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_ASSABET is not set +# CONFIG_ASSABET_NEPONSET is not set +# CONFIG_SA1100_ADSBITSY is not set +# CONFIG_SA1100_BRUTUS 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_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_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_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_H3600_SLEEVE is not set + +# +# CLPS711X/EP721X Implementations +# +# CONFIG_ARCH_AUTCPU12 is not set +# CONFIG_ARCH_CDB89712 is not set +CONFIG_ARCH_PHATNOISE=y +CONFIG_ARCH_PHATNOISE10=y +# CONFIG_ARCH_PHATNOISE11 is not set +CONFIG_ARCH_EP7212=y +CONFIG_ARCH_EP7312=y +CONFIG_ARCH_EDB7211=y +# CONFIG_ARCH_P720T is not set +# CONFIG_ARCH_FORTUNET is not set +CONFIG_ARCH_EP7211=y +# CONFIG_EP72XX_ROM_BOOT is not set +# CONFIG_ARCH_ACORN is not set +# CONFIG_FOOTBRIDGE is not set +# CONFIG_FOOTBRIDGE_HOST is not set +# CONFIG_FOOTBRIDGE_ADDIN is not set +CONFIG_CPU_32=y +# CONFIG_CPU_26 is not set +# CONFIG_CPU_32v3 is not set +CONFIG_CPU_32v4=y +# CONFIG_CPU_ARM610 is not set +# CONFIG_CPU_ARM710 is not set +CONFIG_CPU_ARM720T=y +# CONFIG_CPU_ARM920T is not set +# CONFIG_CPU_ARM922T is not set +# CONFIG_CPU_ARM926T is not set +# CONFIG_CPU_ARM1020 is not set +# CONFIG_CPU_SA110 is not set +# CONFIG_CPU_SA1100 is not set +# CONFIG_ARM_THUMB is not set +CONFIG_DISCONTIGMEM=y +CONFIG_PREEMPT=y + +# +# General setup +# +# CONFIG_PCI is not set +CONFIG_ISA=y +# CONFIG_ISA_DMA is not set +# 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 +# CONFIG_FPE_NWFPE is not set +CONFIG_FPE_FASTFPE=y +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 is not set +# CONFIG_ARTHUR is not set +CONFIG_CMDLINE="root=/dev/ram" +# CONFIG_ALIGNMENT_TRAP is not set + +# +# Parallel port support +# +# CONFIG_PARPORT 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_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_NBD is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_INITRD=y + +# +# 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 is not set +# CONFIG_NETLINK_DEV is not set +# CONFIG_NETFILTER is not set +# CONFIG_FILTER is not set +CONFIG_UNIX=y +# CONFIG_INET is not set +# CONFIG_ATM is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_IPX is not set +# CONFIG_ATALK 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_AUNUDP is not set +# CONFIG_ECONET_NATIVE 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 device support +# +# CONFIG_NETDEVICES is not set + +# +# Amateur Radio support +# +# CONFIG_HAMRADIO is not set + +# +# IrDA (infrared) support +# +# CONFIG_IRDA is not set + +# +# ATA/IDE/MFM/RLL support +# +CONFIG_IDE=y + +# +# IDE, ATA and ATAPI Block devices +# +CONFIG_BLK_DEV_IDE=y +# CONFIG_BLK_DEV_HD_IDE is not set +# CONFIG_BLK_DEV_HD is not set +CONFIG_BLK_DEV_IDEDISK=y +CONFIG_IDEDISK_MULTI_MODE=y +# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set +# CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set +# CONFIG_BLK_DEV_IDEDISK_IBM is not set +# CONFIG_BLK_DEV_IDEDISK_MAXTOR is not set +# CONFIG_BLK_DEV_IDEDISK_QUANTUM is not set +# CONFIG_BLK_DEV_IDEDISK_SEAGATE is not set +# CONFIG_BLK_DEV_IDEDISK_WD is not set +# CONFIG_BLK_DEV_COMMERIAL is not set +# CONFIG_BLK_DEV_TIVO is not set +# CONFIG_BLK_DEV_IDECS is not set +# CONFIG_BLK_DEV_IDECD is not set +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_BLK_DEV_CMD640 is not set +# CONFIG_BLK_DEV_CMD640_ENHANCED is not set +# CONFIG_BLK_DEV_ISAPNP is not set +# CONFIG_IDE_CHIPSETS is not set +# CONFIG_IDEDMA_AUTO is not set +# CONFIG_DMA_NONPCI is not set +# CONFIG_BLK_DEV_IDE_MODES is not set +# CONFIG_BLK_DEV_ATARAID is not set +# CONFIG_BLK_DEV_ATARAID_PDC is not set +# CONFIG_BLK_DEV_ATARAID_HPT is not set + +# +# SCSI support +# +# CONFIG_SCSI is not set + +# +# Synchronous Serial Interface +# +# CONFIG_SSI is not set +# CONFIG_SSI_CLPS711X is not set +# CONFIG_SSI_JUNO 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 + +# +# Character devices +# +CONFIG_AUDIO_EP7x12=y +# CONFIG_VT is not set +# CONFIG_SERIAL is not set +# CONFIG_SERIAL_EXTENDED is not set +# CONFIG_SERIAL_NONSTANDARD 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=y +CONFIG_SERIAL_CLPS711X_CONSOLE=y +# 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_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 +# 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 +# CONFIG_QIC02_TAPE is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_INTEL_RNG 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 is not set +# CONFIG_REISERFS_FS is not set +# 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_BFS_FS is not set +# CONFIG_EXT3_FS is not set +# CONFIG_JBD is not set +# CONFIG_JBD_DEBUG is not set +CONFIG_FAT_FS=y +# CONFIG_MSDOS_FS is not set +# CONFIG_UMSDOS_FS is not set +CONFIG_VFAT_FS=y +# CONFIG_EFS_FS is not set +# CONFIG_JFFS_FS is not set +# CONFIG_JFFS2_FS is not set +# CONFIG_CRAMFS is not set +# CONFIG_TMPFS is not set +# CONFIG_RAMFS is not set +# CONFIG_ISO9660_FS is not set +# CONFIG_JOLIET is not set +# CONFIG_ZISOFS 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 is not set +# CONFIG_NFS_V3 is not set +# CONFIG_ROOT_NFS is not set +# CONFIG_NFSD is not set +# CONFIG_NFSD_V3 is not set +# CONFIG_SUNRPC is not set +# CONFIG_LOCKD is not set +# CONFIG_SMB_FS is not set +# CONFIG_NCPFS_NLS is not set +# CONFIG_ZISOFS_FS is not set +# CONFIG_ZLIB_FS_INFLATE is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_SMB_NLS is not set +CONFIG_NLS=y + +# +# Native Language Support +# +CONFIG_NLS_DEFAULT="iso8859-1" +# CONFIG_NLS_CODEPAGE_437 is not set +# 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=y +# 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 +CONFIG_CIRRUS_DAI=y +CONFIG_PHATNOISE_BOARD=y + +# +# 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 +# CONFIG_USB_UHCI is not set +# CONFIG_USB_UHCI_ALT is not set +# CONFIG_USB_OHCI is not set +# CONFIG_USB_OHCI_SA1111 is not set +# CONFIG_USB_AUDIO is not set +# CONFIG_USB_BLUETOOTH is not set +# CONFIG_USB_STORAGE is not set +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_HP8200e is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set +# CONFIG_USB_DC2XX is not set +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_SCANNER is not set +# CONFIG_USB_MICROTEK is not set +# CONFIG_USB_HPUSBSCSI is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_CATC is not set +# CONFIG_USB_CDCETHER is not set +# CONFIG_USB_USBNET is not set +# CONFIG_USB_USS720 is not set + +# +# USB Serial Converter support +# +# CONFIG_USB_SERIAL is not set +# CONFIG_USB_SERIAL_GENERIC is not set +# CONFIG_USB_SERIAL_BELKIN is not set +# CONFIG_USB_SERIAL_WHITEHEAT is not set +# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set +# CONFIG_USB_SERIAL_EMPEG is not set +# CONFIG_USB_SERIAL_FTDI_SIO is not set +# CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IPAQ is not set +# CONFIG_USB_SERIAL_IR is not set +# CONFIG_USB_SERIAL_EDGEPORT is not set +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +# CONFIG_USB_SERIAL_KEYSPAN is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set +# CONFIG_USB_SERIAL_MCT_U232 is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_PL2303 is not set +# CONFIG_USB_SERIAL_CYBERJACK is not set +# CONFIG_USB_SERIAL_XIRCOM is not set +# CONFIG_USB_SERIAL_OMNINET is not set +# CONFIG_USB_RIO500 is not set + +# +# Bluetooth support +# +# CONFIG_BLUEZ is not set + +# +# Kernel hacking +# +# CONFIG_NO_FRAME_POINTER is not set +CONFIG_DEBUG_USER=y +# CONFIG_DEBUG_INFO is not set +# 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 Index: config.phatnoise11 =================================================================== RCS file: config.phatnoise11 diff -N config.phatnoise11 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ config.phatnoise11 13 Jul 2005 05:45:11 -0000 1.1.1.1 @@ -0,0 +1,619 @@ +# +# Automatically generated by make menuconfig: 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 is not set +# CONFIG_MODVERSIONS is not set +# CONFIG_KMOD is not set + +# +# System Type +# +CONFIG_LOLAT=y +# CONFIG_LOLAT_SYSCTL is not set +# CONFIG_ARCH_ANAKIN is not set +# CONFIG_ARCH_ARCA5K is not set +# CONFIG_ARCH_CLPS7500 is not set +CONFIG_ARCH_CLPS711X=y +# 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_L7200 is not set +# CONFIG_ARCH_MX1ADS is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_SHARK is not set + +# +# Archimedes/A5000 Implementations +# +# 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_ASSABET is not set +# CONFIG_ASSABET_NEPONSET is not set +# CONFIG_SA1100_ADSBITSY is not set +# CONFIG_SA1100_BRUTUS 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_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_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_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_H3600_SLEEVE is not set + +# +# CLPS711X/EP721X Implementations +# +# CONFIG_ARCH_AUTCPU12 is not set +# CONFIG_ARCH_CDB89712 is not set +CONFIG_ARCH_PHATNOISE=y +# CONFIG_ARCH_PHATNOISE10 is not set +CONFIG_ARCH_PHATNOISE11=y +CONFIG_ARCH_EP7212=y +CONFIG_ARCH_EP7312=y +CONFIG_ARCH_EDB7211=y +# CONFIG_ARCH_P720T is not set +# CONFIG_ARCH_FORTUNET is not set +CONFIG_ARCH_EP7211=y +# CONFIG_EP72XX_ROM_BOOT is not set +# CONFIG_ARCH_ACORN is not set +# CONFIG_FOOTBRIDGE is not set +# CONFIG_FOOTBRIDGE_HOST is not set +# CONFIG_FOOTBRIDGE_ADDIN is not set +CONFIG_CPU_32=y +# CONFIG_CPU_26 is not set +# CONFIG_CPU_32v3 is not set +CONFIG_CPU_32v4=y +# CONFIG_CPU_ARM610 is not set +# CONFIG_CPU_ARM710 is not set +CONFIG_CPU_ARM720T=y +# CONFIG_CPU_ARM920T is not set +# CONFIG_CPU_ARM922T is not set +# CONFIG_CPU_ARM926T is not set +# CONFIG_CPU_ARM1020 is not set +# CONFIG_CPU_SA110 is not set +# CONFIG_CPU_SA1100 is not set +# CONFIG_ARM_THUMB is not set +CONFIG_DISCONTIGMEM=y +CONFIG_PREEMPT=y + +# +# General setup +# +# CONFIG_PCI is not set +CONFIG_ISA=y +# CONFIG_ISA_DMA is not set +# 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 +# CONFIG_FPE_NWFPE is not set +CONFIG_FPE_FASTFPE=y +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 is not set +# CONFIG_ARTHUR is not set +CONFIG_CMDLINE="root=/dev/ram" +# CONFIG_ALIGNMENT_TRAP is not set + +# +# Parallel port support +# +# CONFIG_PARPORT 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_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_NBD is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_INITRD=y + +# +# 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 is not set +# CONFIG_NETLINK_DEV is not set +# CONFIG_NETFILTER is not set +# CONFIG_FILTER is not set +CONFIG_UNIX=y +# CONFIG_INET is not set +# CONFIG_ATM is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_IPX is not set +# CONFIG_ATALK 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_AUNUDP is not set +# CONFIG_ECONET_NATIVE 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 device support +# +# CONFIG_NETDEVICES is not set + +# +# Amateur Radio support +# +# CONFIG_HAMRADIO is not set + +# +# IrDA (infrared) support +# +# CONFIG_IRDA is not set + +# +# ATA/IDE/MFM/RLL support +# +CONFIG_IDE=y + +# +# IDE, ATA and ATAPI Block devices +# +CONFIG_BLK_DEV_IDE=y +# CONFIG_BLK_DEV_HD_IDE is not set +# CONFIG_BLK_DEV_HD is not set +CONFIG_BLK_DEV_IDEDISK=y +CONFIG_IDEDISK_MULTI_MODE=y +# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set +# CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set +# CONFIG_BLK_DEV_IDEDISK_IBM is not set +# CONFIG_BLK_DEV_IDEDISK_MAXTOR is not set +# CONFIG_BLK_DEV_IDEDISK_QUANTUM is not set +# CONFIG_BLK_DEV_IDEDISK_SEAGATE is not set +# CONFIG_BLK_DEV_IDEDISK_WD is not set +# CONFIG_BLK_DEV_COMMERIAL is not set +# CONFIG_BLK_DEV_TIVO is not set +# CONFIG_BLK_DEV_IDECS is not set +# CONFIG_BLK_DEV_IDECD is not set +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_BLK_DEV_CMD640 is not set +# CONFIG_BLK_DEV_CMD640_ENHANCED is not set +# CONFIG_BLK_DEV_ISAPNP is not set +# CONFIG_IDE_CHIPSETS is not set +# CONFIG_IDEDMA_AUTO is not set +# CONFIG_DMA_NONPCI is not set +# CONFIG_BLK_DEV_IDE_MODES is not set +# CONFIG_BLK_DEV_ATARAID is not set +# CONFIG_BLK_DEV_ATARAID_PDC is not set +# CONFIG_BLK_DEV_ATARAID_HPT is not set + +# +# SCSI support +# +# CONFIG_SCSI is not set + +# +# Synchronous Serial Interface +# +# CONFIG_SSI is not set +# CONFIG_SSI_CLPS711X is not set +# CONFIG_SSI_JUNO 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 + +# +# Character devices +# +CONFIG_AUDIO_EP7x12=y +# CONFIG_VT is not set +# CONFIG_SERIAL is not set +# CONFIG_SERIAL_EXTENDED is not set +# CONFIG_SERIAL_NONSTANDARD 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=y +CONFIG_SERIAL_CLPS711X_CONSOLE=y +# 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_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 +# 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 +# CONFIG_QIC02_TAPE is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_INTEL_RNG 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 is not set +# CONFIG_REISERFS_FS is not set +# 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_BFS_FS is not set +# CONFIG_EXT3_FS is not set +# CONFIG_JBD is not set +# CONFIG_JBD_DEBUG is not set +CONFIG_FAT_FS=y +# CONFIG_MSDOS_FS is not set +# CONFIG_UMSDOS_FS is not set +CONFIG_VFAT_FS=y +# CONFIG_EFS_FS is not set +# CONFIG_JFFS_FS is not set +# CONFIG_JFFS2_FS is not set +# CONFIG_CRAMFS is not set +# CONFIG_TMPFS is not set +# CONFIG_RAMFS is not set +# CONFIG_ISO9660_FS is not set +# CONFIG_JOLIET is not set +# CONFIG_ZISOFS 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 is not set +# CONFIG_NFS_V3 is not set +# CONFIG_ROOT_NFS is not set +# CONFIG_NFSD is not set +# CONFIG_NFSD_V3 is not set +# CONFIG_SUNRPC is not set +# CONFIG_LOCKD is not set +# CONFIG_SMB_FS is not set +# CONFIG_NCPFS_NLS is not set +# CONFIG_ZISOFS_FS is not set +# CONFIG_ZLIB_FS_INFLATE is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_SMB_NLS is not set +CONFIG_NLS=y + +# +# Native Language Support +# +CONFIG_NLS_DEFAULT="iso8859-1" +# CONFIG_NLS_CODEPAGE_437 is not set +# 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=y +# 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 +CONFIG_CIRRUS_DAI=y +CONFIG_PHATNOISE_BOARD=y + +# +# 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 +# CONFIG_USB_UHCI is not set +# CONFIG_USB_UHCI_ALT is not set +# CONFIG_USB_OHCI is not set +# CONFIG_USB_OHCI_SA1111 is not set +# CONFIG_USB_AUDIO is not set +# CONFIG_USB_BLUETOOTH is not set +# CONFIG_USB_STORAGE is not set +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_HP8200e is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set +# CONFIG_USB_DC2XX is not set +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_SCANNER is not set +# CONFIG_USB_MICROTEK is not set +# CONFIG_USB_HPUSBSCSI is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_CATC is not set +# CONFIG_USB_CDCETHER is not set +# CONFIG_USB_USBNET is not set +# CONFIG_USB_USS720 is not set + +# +# USB Serial Converter support +# +# CONFIG_USB_SERIAL is not set +# CONFIG_USB_SERIAL_GENERIC is not set +# CONFIG_USB_SERIAL_BELKIN is not set +# CONFIG_USB_SERIAL_WHITEHEAT is not set +# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set +# CONFIG_USB_SERIAL_EMPEG is not set +# CONFIG_USB_SERIAL_FTDI_SIO is not set +# CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IPAQ is not set +# CONFIG_USB_SERIAL_IR is not set +# CONFIG_USB_SERIAL_EDGEPORT is not set +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +# CONFIG_USB_SERIAL_KEYSPAN is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set +# CONFIG_USB_SERIAL_MCT_U232 is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_PL2303 is not set +# CONFIG_USB_SERIAL_CYBERJACK is not set +# CONFIG_USB_SERIAL_XIRCOM is not set +# CONFIG_USB_SERIAL_OMNINET is not set +# CONFIG_USB_RIO500 is not set + +# +# Bluetooth support +# +# CONFIG_BLUEZ is not set + +# +# Kernel hacking +# +# CONFIG_NO_FRAME_POINTER is not set +CONFIG_DEBUG_USER=y +# CONFIG_DEBUG_INFO is not set +# 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 Index: arch/arm/Makefile =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/arch/arm/Makefile,v retrieving revision 1.1.1.2 retrieving revision 1.1.1.3 diff -u -r1.1.1.2 -r1.1.1.3 --- arch/arm/Makefile 13 Jul 2005 05:24:58 -0000 1.1.1.2 +++ arch/arm/Makefile 13 Jul 2005 05:45:42 -0000 1.1.1.3 @@ -134,8 +134,11 @@ endif ifeq ($(CONFIG_ARCH_CLPS711X),y) -TEXTADDR = 0xc0028000 -MACHINE = clps711x + TEXTADDR = 0xc0028000 + ifeq ($(CONFIG_ARCH_PHATNOISE),y) + TEXTADDR = 0xc0038000 + endif + MACHINE = clps711x endif ifeq ($(CONFIG_ARCH_FORTUNET),y) Index: arch/arm/config.in =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/arch/arm/config.in,v retrieving revision 1.1.1.3 retrieving revision 1.1.1.4 diff -u -r1.1.1.3 -r1.1.1.4 --- arch/arm/config.in 13 Jul 2005 05:29:05 -0000 1.1.1.3 +++ arch/arm/config.in 13 Jul 2005 05:45:42 -0000 1.1.1.4 @@ -32,6 +32,9 @@ mainmenu_option next_comment comment 'System Type' +bool 'Low latency scheduling' CONFIG_LOLAT +dep_bool 'Control low latency with sysctl' CONFIG_LOLAT_SYSCTL $CONFIG_LOLAT + choice 'ARM system type' \ "Anakin CONFIG_ARCH_ANAKIN \ Archimedes/A5000 CONFIG_ARCH_ARCA5K \ @@ -146,7 +149,11 @@ comment 'CLPS711X/EP721X Implementations' dep_bool ' AUTCPU12' CONFIG_ARCH_AUTCPU12 $CONFIG_ARCH_CLPS711X dep_bool ' CDB89712' CONFIG_ARCH_CDB89712 $CONFIG_ARCH_CLPS711X -dep_bool ' CLEP7312' CONFIG_ARCH_CLEP7312 $CONFIG_ARCH_CLPS711X +dep_bool ' PhatNoise' CONFIG_ARCH_PHATNOISE $CONFIG_ARCH_CLPS711X +dep_bool ' PhatNoise 1.0 (select one)' CONFIG_ARCH_PHATNOISE10 $CONFIG_ARCH_PHATNOISE +dep_bool ' PhatNoise 1.1 (select one)' CONFIG_ARCH_PHATNOISE11 $CONFIG_ARCH_PHATNOISE +dep_bool ' Cirrus Logic EP7212' CONFIG_ARCH_EP7212 $CONFIG_ARCH_CLPS711X +dep_bool ' Cirrus Logic EP7312' CONFIG_ARCH_EP7312 $CONFIG_ARCH_CLPS711X dep_bool ' EDB7211' CONFIG_ARCH_EDB7211 $CONFIG_ARCH_CLPS711X dep_bool ' P720T' CONFIG_ARCH_P720T $CONFIG_ARCH_CLPS711X dep_bool ' FORTUNET' CONFIG_ARCH_FORTUNET $CONFIG_ARCH_CLPS711X @@ -160,8 +167,8 @@ fi if [ "$CONFIG_ARCH_P720T" = "y" ]; then define_bool CONFIG_ARCH_EP7212 y -else - define_bool CONFIG_ARCH_EP7212 n +# else +# define_bool CONFIG_ARCH_EP7212 n fi if [ "$CONFIG_ARCH_EP7211" = "y" -o \ @@ -442,6 +449,7 @@ if [ "$CONFIG_ARCH_EBSA110" = "y" -o \ "$CONFIG_ARCH_SA1100" = "y" -o \ "$CONFIG_ARCH_CLPS7500" = "y" -o \ + "$CONFIG_ARCH_CLPS711X" = "y" -o \ "$CONFIG_ARCH_PERSONAL_SERVER" = "y" -o \ "$CONFIG_ARCH_CATS" = "y" -o \ "$CONFIG_ARCH_P720T" = "y" -o \ Index: arch/arm/kernel/Makefile =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/arch/arm/kernel/Makefile,v retrieving revision 1.1.1.2 retrieving revision 1.1.1.3 diff -u -r1.1.1.2 -r1.1.1.3 --- arch/arm/kernel/Makefile 13 Jul 2005 05:25:00 -0000 1.1.1.2 +++ arch/arm/kernel/Makefile 13 Jul 2005 05:45:45 -0000 1.1.1.3 @@ -51,6 +51,7 @@ obj-$(CONFIG_ARCH_ACORN) += ecard.o fiq.o time-acorn.o obj-$(CONFIG_ARCH_CLPS7500) += time-acorn.o +obj-$(CONFIG_ARCH_CLPS711X) += fiq.o obj-$(CONFIG_DEBUG_LL) += debug-$(PROCESSOR).o obj-$(CONFIG_MODULES) += armksyms.o obj-$(CONFIG_ARTHUR) += arthur.o Index: arch/arm/kernel/arch.c =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/arch/arm/kernel/arch.c,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.2 diff -u -r1.1.1.1 -r1.1.1.2 --- arch/arm/kernel/arch.c 13 Jul 2005 05:20:07 -0000 1.1.1.1 +++ arch/arm/kernel/arch.c 13 Jul 2005 05:45:46 -0000 1.1.1.2 @@ -149,6 +149,7 @@ #ifdef CONFIG_ARCH_CLPS7110 MACHINE_START(CLPS7110, "CL-PS7110") MAINTAINER("Werner Almesberger") + BOOT_PARAMS(0xC0023000) INITIRQ(genarch_init_irq) MACHINE_END #endif Index: arch/arm/kernel/head-armv.S =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/arch/arm/kernel/head-armv.S,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.2 diff -u -r1.1.1.1 -r1.1.1.2 --- arch/arm/kernel/head-armv.S 13 Jul 2005 05:20:07 -0000 1.1.1.1 +++ arch/arm/kernel/head-armv.S 13 Jul 2005 05:45:46 -0000 1.1.1.2 @@ -67,6 +67,156 @@ .section ".text.init",#alloc,#execinstr .type stext, #function ENTRY(stext) + + /* + * Begin Phatnoise debug hack stuff... + */ +#if 1 + .equ HwBaseAddress, 0x80000000 + .equ HwControl, 0x00000100 + .equ HwControl2, 0x00001100 + .equ HwControlUartEnable, 0x00000100 + .equ HwStatus, 0x00000140 + .equ HwStatus2, 0x00001140 + .equ HwStatusUartRxFifoEmpty,0x00400000 + .equ HwUartData, 0x00000480 + .equ HwUartData2, 0x00001480 + .equ HwUartDataFrameErr, 0x0100 + .equ HwUartDataParityErr, 0x0200 + .equ HwUartDataOverrunErr, 0x0400 + .equ HwUartControl, 0x000004C0 + .equ HwUartControl2, 0x000014C0 + .equ HwUartControlRate, 0x00000FFF + .equ HwUartControlRate115200, 0x001 + .equ HwUartControlRate57600, 0x003 + .equ HwUartControlRate38400, 0x005 + .equ HwUartControlRate19200, 0x00B + .equ HwUartControlRate9600, 0x017 + .equ HwUartControlRate115200_13, 0x000 + .equ HwUartControlRate57600_13, 0x001 + .equ HwUartControlRate38400_13, 0x002 + .equ HwUartControlRate19200_13, 0x005 + .equ HwUartControlRate9600_13, 0x00B + + .equ HwUartControlBreak, 0x00001000 + .equ HwUartControlParityEnable, 0x00002000 + .equ HwUartControlParityEvenOrOdd, 0x00004000 + .equ HwUartControlTwoStopBits, 0x00008000 + .equ HwUartControlFifoEnable, 0x00010000 + .equ HwUartControlDataLength, 0x00060000 + .equ HwUartControlDataLength5, 0x00000000 + .equ HwUartControlDataLength6, 0x00020000 + .equ HwUartControlDataLength7, 0x00040000 + .equ HwUartControlDataLength8, 0x00060000 + + .equ UartValue,HwUartControlRate115200+HwUartControlDataLength8 + .equ UartValue_13,HwUartControlRate115200_13+HwUartControlDataLength8 + .equ CLKMOD, 0x40 + + /* + * set up the serial port + */ + mov r12, #0x80000000 + mov r0, #HwControlUartEnable + + /* port 1 */ + mov r1,#HwControl + str r0,[r12, r1] + /* port 2 */ + mov r1,#HwControl2 + str r0,[r12, r1] + + ldr r1,=HwStatus2 + add r1,r1,r12 + + + /* + * read system flag 2 + */ + ldr r2,[r1] + tst r2, #CLKMOD + + mov r0, #0 + orr r0, r0, #HwUartControlDataLength8 + + /* + * this is 18MHz value + */ + orreq r0, r0, #HwUartControlRate115200 + /* + * this is 13MHz value + */ + orrne r0, r0, #HwUartControlRate115200_13 + + /* + * write it. + */ + str r0,[r12,#HwUartControl] + + /* + * print a debug message + */ +#if 0 + mov r0, #'s' + str r0, [r12, #HwUartData] + mov r0, #'t' + str r0, [r12, #HwUartData] + mov r0, #'e' + str r0, [r12, #HwUartData] + mov r0, #'x' + str r0, [r12, #HwUartData] + mov r0, #'t' + str r0, [r12, #HwUartData] + mov r0, #' ' + str r0, [r12, #HwUartData] + mov r0, #'0' + str r0, [r12, #HwUartData] + mov r0, #'x' + str r0, [r12, #HwUartData] +#endif +#endif /* DEBUG */ + +#ifdef CONFIG_ARCH_PHATNOISE10 + mov r1, #91 /* 91 == CLEP-7212*/ +#endif +#ifdef CONFIG_ARCH_PHATNOISE11 + mov r1, #170 /* 170 == CLEP-7312*/ +#endif + + mov r0, r1 + mov r0, r0, lsr #4 + +#if 0 + cmp r0, #10 + addlt r0, r0, #'0' + addge r0, r0, #'A' - 10 + str r0, [r12, #HwUartData] + + mov r0, r1 + and r0, r0, #0x0F + cmp r0, #10 + addlt r0, r0, #'0' + addge r0, r0, #'A' - 10 + + str r0, [r12, #HwUartData] + + mov r0, #'\r' + str r0, [r12, #HwUartData] + mov r0, #'\n' + str r0, [r12, #HwUartData] +#endif /* DEBUG */ + mov r0, #0 +#ifdef CONFIG_ARCH_PHATNOISE10 + mov r1, #91 /* 91 == CLEP-7212*/ +#endif +#ifdef CONFIG_ARCH_PHATNOISE11 + mov r1, #170 /* 170 == CLEP-7312*/ +#endif + + /* + * End Phatnoise debug hack stuff... + */ + mov r12, r0 /* * NOTE! Any code which is placed here should be done for one of @@ -132,10 +282,33 @@ teq r10, #0 @ invalid processor? moveq r0, #'p' @ yes, error 'p' beq __error + + + /* begin phatnoise hack... */ +#if 0 bl __lookup_architecture_type teq r7, #0 @ invalid architecture? moveq r0, #'a' @ yes, error 'a' beq __error +#endif + /* + * set up registers how lookup_architecture_type would have done... + * r5, r6, r7 corrupted + * r8 = page table flags + * r9 = processor ID + * r10 = pointer to processor structure + */ + + /* r5 = physical address of start of RAM + * r6 = physical IO address + * r7 = byte offset into page tables for IO + * r8 = page table flags + */ + + /* end phatnoise hack */ + + + bl __create_page_tables adr lr, __ret @ return address add pc, r10, #12 @ initialise processor @@ -322,6 +495,26 @@ * Generally, only serious errors cause this. */ __error: + mov r12, #0x80000000 + mov r1, #'E' + str r1, [r12, #HwUartData] + mov r1, #'r' + str r1, [r12, #HwUartData] + mov r1, #'r' + str r1, [r12, #HwUartData] + mov r1, #'o' + str r1, [r12, #HwUartData] + mov r1, #'r' + str r1, [r12, #HwUartData] + mov r1, #' ' + str r1, [r12, #HwUartData] + str r0, [r12, #HwUartData] + mov r1, #'\r' + str r1, [r12, #HwUartData] + mov r1, #'\n' + str r1, [r12, #HwUartData] + + #ifdef CONFIG_DEBUG_LL mov r8, r0 @ preserve r0 adr r0, err_str @@ -419,3 +612,6 @@ mov pc, lr 2: ldmib r4, {r5, r6, r7} @ found, get results mov pc, lr + + + Index: arch/arm/kernel/setup.c =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/arch/arm/kernel/setup.c,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.2 diff -u -r1.1.1.1 -r1.1.1.2 --- arch/arm/kernel/setup.c 13 Jul 2005 05:20:07 -0000 1.1.1.1 +++ arch/arm/kernel/setup.c 13 Jul 2005 05:45:45 -0000 1.1.1.2 @@ -457,19 +457,44 @@ struct tag *tags = NULL; struct machine_desc *mdesc; char *from = default_command_line; - +#if CONFIG_ARCH_PHATNOISE + struct param_struct *p; +#endif ROOT_DEV = MKDEV(0, 255); setup_processor(); mdesc = setup_architecture(machine_arch_type); machine_name = mdesc->name; + printk("Machine name is: %s\n", machine_name); + if (mdesc->soft_reboot) reboot_setup("s"); if (mdesc->param_offset) tags = phys_to_virt(mdesc->param_offset); + printk("Param offset is: 0x%08X\n", mdesc->param_offset); + printk("Tags offset is: 0x%08X\n", (unsigned int) tags); + +#if CONFIG_ARCH_PHATNOISE + p = (struct param_struct *) mdesc->param_offset; + p->u1.s.page_size=4096; + p->u1.s.nr_pages=4096; + p->u1.s.ramdisk_size=1024*1024; + p->u1.s.flags=0; + p->u1.s.rootdev=0x100; +#if CONFIG_ARCH_PHATNOISE10 + p->u1.s.initrd_start=0xC1200000; +#endif +#if CONFIG_ARCH_PHATNOISE11 + p->u1.s.initrd_start=0xC0C00000; +#endif + p->u1.s.initrd_size=1024*1024; +#endif + + + /* * Do the machine-specific fixups before we parse the * parameters or tags. Index: arch/arm/mach-clps711x/Makefile =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/arch/arm/mach-clps711x/Makefile,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.2 diff -u -r1.1.1.1 -r1.1.1.2 --- arch/arm/mach-clps711x/Makefile 13 Jul 2005 05:25:00 -0000 1.1.1.1 +++ arch/arm/mach-clps711x/Makefile 13 Jul 2005 05:45:47 -0000 1.1.1.2 @@ -20,7 +20,7 @@ obj-$(CONFIG_ARCH_AUTCPU12) += autcpu12.o obj-$(CONFIG_ARCH_CDB89712) += cdb89712.o -obj-$(CONFIG_ARCH_CLEP7312) += clep7312.o +obj-$(CONFIG_ARCH_EP7312) += clep7312.o obj-$(CONFIG_ARCH_EDB7211) += edb7211-arch.o edb7211-mm.o obj-$(CONFIG_ARCH_P720T) += p720t.o obj-$(CONFIG_ARCH_FORTUNET) += fortunet.o Index: arch/arm/mach-clps711x/clep7312.c =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/arch/arm/mach-clps711x/clep7312.c,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.2 diff -u -r1.1.1.1 -r1.1.1.2 --- arch/arm/mach-clps711x/clep7312.c 13 Jul 2005 05:25:00 -0000 1.1.1.1 +++ arch/arm/mach-clps711x/clep7312.c 13 Jul 2005 05:45:47 -0000 1.1.1.2 @@ -30,6 +30,7 @@ fixup_clep7312(struct machine_desc *desc, struct param_struct *params, char **cmdline, struct meminfo *mi) { + printk("fixup_clep7312()\n"); mi->nr_banks=1; mi->end = 0xc0FFFFFF; mi->bank[0].start = 0xc0000000; @@ -38,10 +39,10 @@ } -MACHINE_START(CLEP7212, "Cirrus Logic 7212/7312") +MACHINE_START(CLEP7312, "Cirrus Logic 7312") MAINTAINER("Nobody") BOOT_MEM(0xc0000000, 0x80000000, 0xff000000) - BOOT_PARAMS(0xc0000100) + BOOT_PARAMS(0xC0023000) FIXUP(fixup_clep7312) MAPIO(clps711x_map_io) INITIRQ(clps711x_init_irq) Index: arch/arm/mach-clps711x/edb7211-arch.c =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/arch/arm/mach-clps711x/edb7211-arch.c,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.2 diff -u -r1.1.1.1 -r1.1.1.2 --- arch/arm/mach-clps711x/edb7211-arch.c 13 Jul 2005 05:25:00 -0000 1.1.1.1 +++ arch/arm/mach-clps711x/edb7211-arch.c 13 Jul 2005 05:45:47 -0000 1.1.1.2 @@ -28,6 +28,22 @@ extern void clps711x_init_irq(void); extern void edb7211_map_io(void); + +static void __init +fixup_clep7312(struct machine_desc *desc, struct param_struct *params, + char **cmdline, struct meminfo *mi) +{ + printk("fixup_clep7312()\n"); + mi->nr_banks=1; + mi->end = 0xc0FFFFFF; + mi->bank[0].start = 0xc0000000; + mi->bank[0].size = 0x01000000; + mi->bank[0].node = 0; +} + + + + static void __init fixup_edb7211(struct machine_desc *desc, struct param_struct *params, char **cmdline, struct meminfo *mi) @@ -49,11 +65,31 @@ mi->nr_banks = 2; } -MACHINE_START(EDB7211, "CL-EDB7211 (EP7211 eval board)") - MAINTAINER("Jon McClintock") +#ifdef CONFIG_ARCH_PHATNOISE10 + +MACHINE_START(EDB7211, "CL-7212 (Phatnoise v1.0)") + MAINTAINER("Unknown") BOOT_MEM(0xc0000000, 0x80000000, 0xff000000) - BOOT_PARAMS(0xc0020100) /* 0xc0000000 - 0xc001ffff can be video RAM */ + BOOT_PARAMS(0xC0023000) /* 0xc0000000 - 0xc001ffff can be video RAM */ FIXUP(fixup_edb7211) MAPIO(edb7211_map_io) INITIRQ(clps711x_init_irq) MACHINE_END + +#else + +#ifdef CONFIG_ARCH_PHATNOISE11 + + +MACHINE_START(EDB7211, "CL-7312 (Phatnoise v1.1)") + MAINTAINER("Unknown") + BOOT_MEM(0xc0000000, 0x80000000, 0xff000000) + BOOT_PARAMS(0xC0023000) /* 0xc0000000 - 0xc001ffff can be video RAM */ + FIXUP(fixup_clep7312) + MAPIO(edb7211_map_io) + INITIRQ(clps711x_init_irq) +MACHINE_END + + +#endif +#endif Index: arch/arm/mach-clps711x/edb7211-mm.c =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/arch/arm/mach-clps711x/edb7211-mm.c,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.2 diff -u -r1.1.1.1 -r1.1.1.2 --- arch/arm/mach-clps711x/edb7211-mm.c 13 Jul 2005 05:25:00 -0000 1.1.1.1 +++ arch/arm/mach-clps711x/edb7211-mm.c 13 Jul 2005 05:45:47 -0000 1.1.1.2 @@ -31,6 +31,7 @@ #define MB1 1048576 /* one megabyte == size of an MMU section */ + extern void clps711x_map_io(void); /* @@ -55,20 +56,30 @@ static struct map_desc edb7211_io_desc[] __initdata = { /* virtual, physical, length, domain, r, w, c, b */ +#ifdef CONFIG_ARCH_7211_KEYBOARD /* memory-mapped extra keyboard row and CS8900A Ethernet chip */ { EP7211_VIRT_EXTKBD, EP7211_PHYS_EXTKBD, MB1, DOMAIN_IO, 1, 1, 0, 0 }, { EP7211_VIRT_CS8900A, EP7211_PHYS_CS8900A, MB1, DOMAIN_IO, 1, 1, 0, 0 }, +#endif + +#ifdef CONFIG_ARCH_PHATNOISE + { PHAT_VIRT_IDE, PHAT_PHYS_IDE, MB1, DOMAIN_IO, 0, 1, 0, 0,}, +#endif +#ifdef CONFIG_ARCH_7211_FLASH /* flash banks */ { EP7211_VIRT_FLASH1, EP7211_PHYS_FLASH1, MB1 * 8, DOMAIN_KERNEL, 1, 1, 0, 0 }, { EP7211_VIRT_FLASH2, EP7211_PHYS_FLASH2, MB1 * 8, DOMAIN_KERNEL, 1, 1, 0, 0 }, +#endif LAST_DESC }; void __init edb7211_map_io(void) { + printk(KERN_WARNING "edb7211_map_io()\n"); clps711x_map_io(); iotable_init(edb7211_io_desc); } + Index: arch/arm/mach-clps711x/irq.c =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/arch/arm/mach-clps711x/irq.c,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.2 diff -u -r1.1.1.1 -r1.1.1.2 --- arch/arm/mach-clps711x/irq.c 13 Jul 2005 05:25:00 -0000 1.1.1.1 +++ arch/arm/mach-clps711x/irq.c 13 Jul 2005 05:45:47 -0000 1.1.1.2 @@ -24,6 +24,8 @@ #include #include + + #include static void mask_irq_int1(unsigned int irq) @@ -44,6 +46,12 @@ clps_writel(intmr1, INTMR1); switch (irq) { + /* fiq's */ + case IRQ_EXTFIQ: break; + case IRQ_BLINT: clps_writel(0, BLEOI); break; + case IRQ_WEINT: break; + case IRQ_MCINT: clps_writel(0, MCEOI); break; + /* irq's */ case IRQ_CSINT: clps_writel(0, COEOI); break; case IRQ_TC1OI: clps_writel(0, TC1EOI); break; case IRQ_TC2OI: clps_writel(0, TC2EOI); break; @@ -87,16 +95,56 @@ static void unmask_irq_int2(unsigned int irq) { u32 intmr2; - intmr2 = clps_readl(INTMR2); intmr2 |= 1 << (irq - 16); clps_writel(intmr2, INTMR2); } +static void mask_fiq(unsigned int irq) +{ + u32 intmr3; + intmr3 = clps_readl(INTMR3); + intmr3 &= ~1; + clps_writel(intmr3, INTMR3); +} + +static void mask_ack_fiq(unsigned int irq) +{ + u32 intmr3; +#if CONFIG_ARCH_EP7212 + u32 daisr; +#endif + + intmr3 = clps_readl(INTMR3); + intmr3 &= ~1; + clps_writel(intmr3, INTMR3); + + +#if CONFIG_ARCH_EP7212 + /* + * Read DAI status register. + */ + daisr = clps_readl(DAISR); +#endif +} + +static void unmask_fiq(unsigned int irq) +{ + u32 intmr3; + intmr3 = clps_readl(INTMR3); + intmr3 |= 1; + clps_writel(intmr3, INTMR3); +} + +extern void init_FIQ(void); + void __init clps711x_init_irq(void) { unsigned int i; + printk("clps711x_init_irq() begin NR_IRQS = %d\n", NR_IRQS); + + for (i = 0; i < NR_IRQS; i++) { if (INT1_IRQS & (1 << i)) { irq_desc[i].valid = 1; @@ -116,6 +164,13 @@ irq_desc[i].mask = mask_irq_int2; irq_desc[i].unmask = unmask_irq_int2; } + if (i >= FIQ_START) { + irq_desc[i].valid = 1; + irq_desc[i].probe_ok = 1; + irq_desc[i].mask_ack = mask_ack_fiq; + irq_desc[i].mask = mask_fiq; + irq_desc[i].unmask = unmask_fiq; + } } /* @@ -123,6 +178,7 @@ */ clps_writel(0, INTMR1); clps_writel(0, INTMR2); + clps_writel(0, INTMR3); /* * Clear down any pending interrupts @@ -131,8 +187,20 @@ clps_writel(0, TC1EOI); clps_writel(0, TC2EOI); clps_writel(0, RTCEOI); + clps_writel(0, BLEOI); + clps_writel(0, MCEOI); clps_writel(0, TEOI); clps_writel(0, UMSEOI); clps_writel(0, SYNCIO); clps_writel(0, KBDEOI); + + clps_writel(0xFFFFFFFF, DAISR); + + /* + * init FIQ + */ + init_FIQ(); + + printk("clps711x_init_irq() end\n"); } + Index: arch/arm/mach-clps711x/time.c =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/arch/arm/mach-clps711x/time.c,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.2 diff -u -r1.1.1.1 -r1.1.1.2 --- arch/arm/mach-clps711x/time.c 13 Jul 2005 05:25:00 -0000 1.1.1.1 +++ arch/arm/mach-clps711x/time.c 13 Jul 2005 05:45:47 -0000 1.1.1.2 @@ -22,6 +22,7 @@ #include #include #include +#include extern unsigned long (*gettimeoffset)(void); @@ -29,6 +30,11 @@ * gettimeoffset() returns time since last timer tick, in usecs. * * 'LATCH' is hwclock ticks (see CLOCK_TICK_RATE in timex.h) per jiffy. + * + * + * actually, LATCH == ((CLOCK_TICK_RATE + HZ/2) / HZ) + * + * * 'tick' is usecs per jiffy. */ static unsigned long clps711x_gettimeoffset(void) @@ -40,15 +46,24 @@ void __init clps711x_setup_timer(void) { - unsigned int syscon; + unsigned int syscon1; gettimeoffset = clps711x_gettimeoffset; - syscon = clps_readl(SYSCON1); - syscon |= SYSCON1_TC2S | SYSCON1_TC2M; - clps_writel(syscon, SYSCON1); + printk("clps711x_setup_timer() SYSCON1 = 0x%08x adding TC2S and TC2M bits\n", + (unsigned) IO_SYSCON1); + + syscon1 = clps_readl(SYSCON1); + syscon1 |= SYSCON1_TC2S | SYSCON1_TC2M; + clps_writel(syscon1, SYSCON1); + + printk("clps711x_setup_timer() SYSCON1 = 0x%08x\n", (unsigned) IO_SYSCON1); + printk("clps711x_setup_timer() SYSCON2 = 0x%08x\n", (unsigned) IO_SYSCON2); + printk("clps711x_setup_timer() SYSCON3 = 0x%08x\n", (unsigned) IO_SYSCON3); clps_writel(LATCH-1, TC2D); /* 512kHz / 100Hz - 1 */ xtime.tv_sec = clps_readl(RTCDR); } + + Index: arch/arm/tools/mach-types =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/arch/arm/tools/mach-types,v retrieving revision 1.1.1.2 retrieving revision 1.1.1.3 diff -u -r1.1.1.2 -r1.1.1.3 --- arch/arm/tools/mach-types 13 Jul 2005 05:24:59 -0000 1.1.1.2 +++ arch/arm/tools/mach-types 13 Jul 2005 05:45:44 -0000 1.1.1.3 @@ -178,3 +178,4 @@ jornada56x ARCH_JORNADA56X JORNADA56X 167 active SA1100_ACTIVE ACTIVE 168 iq80321 ARCH_IQ80321 IQ80321 169 +clep7312 ARCH_CLEP7312 CLEP7312 170 Index: drivers/Makefile =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/drivers/Makefile,v retrieving revision 1.1.1.2 retrieving revision 1.1.1.3 diff -u -r1.1.1.2 -r1.1.1.3 --- drivers/Makefile 13 Jul 2005 05:25:31 -0000 1.1.1.2 +++ drivers/Makefile 13 Jul 2005 05:46:30 -0000 1.1.1.3 @@ -10,7 +10,7 @@ message/i2o message/fusion scsi md ieee1394 pnp isdn atm \ fc4 net/hamradio i2c l3 acpi bluetooth serial -subdir-y := parport serial char block net sound misc media cdrom hotplug +subdir-y := parport serial char block net sound misc cdrom hotplug subdir-m := $(subdir-y) Index: drivers/char/Config.in =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/drivers/char/Config.in,v retrieving revision 1.1.1.2 retrieving revision 1.1.1.3 diff -u -r1.1.1.2 -r1.1.1.3 --- drivers/char/Config.in 13 Jul 2005 05:26:01 -0000 1.1.1.2 +++ drivers/char/Config.in 13 Jul 2005 05:47:14 -0000 1.1.1.3 @@ -4,6 +4,9 @@ mainmenu_option next_comment comment 'Character devices' +bool 'Cirrus Logic EP7x12 Audio Driver' CONFIG_AUDIO_EP7x12 + + bool 'Virtual terminal' CONFIG_VT if [ "$CONFIG_VT" = "y" ]; then bool ' Support for console on virtual terminal' CONFIG_VT_CONSOLE Index: drivers/ide/ide.c =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/drivers/ide/ide.c,v retrieving revision 1.1.1.2 retrieving revision 1.1.1.3 diff -u -r1.1.1.2 -r1.1.1.3 --- drivers/ide/ide.c 13 Jul 2005 05:25:33 -0000 1.1.1.2 +++ drivers/ide/ide.c 13 Jul 2005 05:46:34 -0000 1.1.1.3 @@ -146,7 +146,6 @@ #endif /* MODULE */ #include #include -#include #include #include @@ -162,7 +161,21 @@ #include #endif /* CONFIG_KMOD */ -/* default maximum number of failures */ +#include + +#define IDE_PROBE_DEBUG 0 +#if IDE_PROBE_DEBUG +#define PRINTK(format, args...) \ + do {\ + printf(format , ## args);\ + } while (0) +#else +#define PRINTK(format, args...) do { } while (0) +#endif + + + + /* default maximum number of failures */ #define IDE_DEFAULT_MAX_FAILURES 1 static const byte ide_hwif_to_major[] = { IDE0_MAJOR, IDE1_MAJOR, IDE2_MAJOR, IDE3_MAJOR, IDE4_MAJOR, IDE5_MAJOR, IDE6_MAJOR, IDE7_MAJOR, IDE8_MAJOR, IDE9_MAJOR }; @@ -238,6 +251,10 @@ /* fill in any non-zero initial values */ hwif->index = index; hwif->noprobe = 1; +#if 0 && CONFIG_ARCH_PHATNOISE + /* Phatnoise has only one hwif */ + hwif->noprobe = 0; +#endif hwif->major = ide_hwif_to_major[index]; hwif->name[0] = 'i'; hwif->name[1] = 'd'; @@ -246,7 +263,9 @@ hwif->bus_state = BUSSTATE_ON; for (unit = 0; unit < MAX_DRIVES; ++unit) { ide_drive_t *drive = &hwif->drives[unit]; - +#if 0 && CONFIG_ARCH_PHATNOISE + drive->slow = 1; +#endif drive->media = ide_disk; drive->select.all = (unit<<4)|0xa0; drive->hwif = hwif; @@ -305,6 +324,8 @@ unsigned int index; static unsigned long magic_cookie = MAGIC_COOKIE; + //printk(KERN_WARNING "init_ide_data() begin\n"); + if (magic_cookie != MAGIC_COOKIE) return; /* already initialized */ magic_cookie = 0; @@ -322,10 +343,18 @@ for (index = 0; index < MAX_HWIFS; ++index) if (ide_hwifs[index].hw.io_ports[IDE_DATA_OFFSET] == HD_DATA) hwif->noprobe = 1; /* may be overridden by ide_setup() */ +#if 0 +#ifdef CONFIG_ARCH_PHATNOISE + hwif->noprobe = 1; +#endif +#endif + #endif /* CONFIG_BLK_DEV_HD */ idebus_parameter = 0; system_bus_speed = 0; + + //printk(KERN_WARNING "init_ide_data() end\n"); } /* @@ -1680,6 +1709,8 @@ ide_handler_t *handler; ide_startstop_t startstop; + //printk("ide_intr()\n"); + spin_lock_irqsave(&io_request_lock, flags); hwif = hwgroup->hwif; @@ -2606,6 +2637,8 @@ #endif /* CONFIG_BLK_DEV_IDECS */ } + + int system_bus_clock (void) { return((int) ((!system_bus_speed) ? ide_system_bus_speed() : system_bus_speed )); @@ -3332,6 +3365,7 @@ */ static void __init probe_for_hwifs (void) { + //printk(KERN_WARNING "probe_for_hwifs() begin\n"); #ifdef CONFIG_PCI if (pci_present()) { @@ -3420,6 +3454,7 @@ pnpide_init(1); } #endif /* CONFIG_BLK_DEV_ISAPNP */ + //printk(KERN_WARNING "probe_for_hwifs() end\n"); } void __init ide_init_builtin_drivers (void) @@ -3427,6 +3462,8 @@ /* * Probe for special PCI and other "known" interface chipsets */ + PRINTK(KERN_WARNING "ide_init_builtin_drivers() begin\n"); + probe_for_hwifs (); #ifdef CONFIG_BLK_DEV_IDE @@ -3741,8 +3778,10 @@ static char banner_printed; int i; + PRINTK(KERN_WARNING "ide_init() begin\n"); + if (!banner_printed) { - printk(KERN_INFO "Uniform Multi-Platform E-IDE driver " REVISION "\n"); + PRINTK(KERN_INFO "Uniform Multi-Platform E-IDE driver " REVISION "\n"); ide_devfs_handle = devfs_mk_dir (NULL, "ide", NULL); system_bus_speed = ide_system_bus_speed(); banner_printed = 1; @@ -3760,6 +3799,8 @@ ide_geninit(hwif); } + PRINTK(KERN_WARNING "ide_init() end\n"); + return 0; } Index: drivers/misc/Config.in =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/drivers/misc/Config.in,v retrieving revision 1.1.1.2 retrieving revision 1.1.1.3 diff -u -r1.1.1.2 -r1.1.1.3 --- drivers/misc/Config.in 13 Jul 2005 05:26:10 -0000 1.1.1.2 +++ drivers/misc/Config.in 13 Jul 2005 05:47:26 -0000 1.1.1.3 @@ -1,9 +1,14 @@ # # MCP drivers # +bool 'Cirrus Logic DAI device driver' CONFIG_CIRRUS_DAI +bool 'PhatNoise board version abstraction' CONFIG_PHATNOISE_BOARD + + mainmenu_option next_comment comment 'Multimedia Capabilities Port drivers' + bool 'Multimedia drivers' CONFIG_MCP # Interface drivers @@ -15,3 +20,4 @@ dep_tristate ' Touchscreen interface support' CONFIG_MCP_UCB1200_TS $CONFIG_MCP_UCB1200 endmenu + Index: drivers/misc/Makefile =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/drivers/misc/Makefile,v retrieving revision 1.1.1.2 retrieving revision 1.1.1.3 diff -u -r1.1.1.2 -r1.1.1.3 --- drivers/misc/Makefile 13 Jul 2005 05:26:10 -0000 1.1.1.2 +++ drivers/misc/Makefile 13 Jul 2005 05:47:26 -0000 1.1.1.3 @@ -19,6 +19,13 @@ obj-$(CONFIG_MCP_UCB1200_AUDIO) += ucb1x00-audio.o obj-$(CONFIG_MCP_UCB1200_TS) += ucb1x00-ts.o +obj-$(CONFIG_CIRRUS_DAI) += cirrus_dai.o cirrus_dai_fiq.o +obj-$(CONFIG_PHATNOISE_BOARD) += pn_board.o + include $(TOPDIR)/Rules.make fastdep: + + +%.o: %.S + $(CC) $(CFLAGS) -D__ASSEMBLY__ -c -o $@ $< Index: drivers/misc/cirrus_dai.c =================================================================== RCS file: drivers/misc/cirrus_dai.c diff -N drivers/misc/cirrus_dai.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ drivers/misc/cirrus_dai.c 13 Jul 2005 05:47:26 -0000 1.1.1.1 @@ -0,0 +1,553 @@ +/* + * audio_ep7x12.c - Cirrus Logic EP7x1x DAI interface + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + + +#define DEBUG_DAI 0 + + +#define DAI_MAJOR 14 + +#define DAI_FIQ 0 + +#if 0 +#define DISABLE_DAI() do { disable_fiq(DAI_FIQ); } while(0) +#define ENABLE_DAI() do { enable_fiq(DAI_FIQ); } while(0) +#else +#define DISABLE_DAI() do { cli(); IO_INTMR3=0; } while(0) +#define ENABLE_DAI() do { IO_INTMR3=1; sti(); } while(0) +#endif + + +/* + * this is how many bytes at a time we can take. 4 samples, stereo, 16-bit (16 bytes). + */ +#define BUF_INCR 0x00000010 +#define INCR_MASK 0x001FFFF0 + +#define BUF_SIZE 0x00200000 +#define BUF_MASK 0x001FFFFF + +/* + * this is the max number of bytes that can be in the buffer. + */ +#define BUF_MAX (BUF_SIZE - BUF_INCR) + + +static int dai_major; + +char dai_buf[BUF_SIZE] __attribute__ ((aligned(BUF_INCR))); + +volatile int dai_readp; +volatile int dai_writep; + +int dai_wait_size=0; /* block of free data that process is waiting to write */ + +/* list of waiting processes... */ +DECLARE_WAIT_QUEUE_HEAD(dai_wait); + +/* task for checking waiting processes and buffer level */ +struct tq_struct dai_task; + +#if DEBUG_DAI +/* task for checking underflow status... */ +struct tq_struct dai_debug_task; +volatile int dai_underflow=0; +int dai_old_underflow=0; +void dai_debug_task_routine(void *data); +struct tq_struct dai_debug_task; +#endif + + +/* which queue should we use */ +#define DAI_TASK_QUEUE (&tq_timer) + + +void dai_task_routine(void *data); + + +/* struct fiq_handler { + * struct fiq_handler *next, + * char *name, + * int (*fiq_op)(void *, int relinquish), + * void *dev_id; + */ +static struct fiq_handler dai_fh = { NULL, "DAI", NULL, NULL }; +extern unsigned char dai_start, dai_end; + + +#define SP_SIZE 32 + +unsigned char dai_sp[SP_SIZE] __attribute__ ((aligned(4)));; + +volatile char *dai_flags; + + +static void dai_init(void) +{ + struct pt_regs regs; + + /* + * make sure FIQ is disabled first. + */ + DISABLE_DAI(); + + printk(KERN_INFO "DAI: dai_init() initializing stuff\n"); + + dai_flags = &dai_sp[SP_SIZE]; + memset(dai_buf, 0, BUF_SIZE); + dai_readp = dai_writep = 0; + + get_fiq_regs(®s); + regs.ARM_r8 = (int) dai_buf; + regs.ARM_r9 = 0; /* scratch */ + regs.ARM_r10 = 0; /* counts from zero to BUF_SIZE */ + //regs.ARM_fp = 0; /* r11 */ + regs.ARM_ip = IO_BASE + DAIR; /*0xff002000;*/ /* r12 */ + printk("DAI: regs.ARM_ip = 0x%08x\n", (unsigned int) regs.ARM_ip); + regs.ARM_sp = (int) dai_flags; + set_fiq_regs(®s); + + + if (claim_fiq(&dai_fh)) { + printk(KERN_WARNING "DAI: dai_init() couldn't claim FIQ.\n"); + return; + } + + printk(KERN_INFO "DAI: dai_init() setting fiq handler\n"); + set_fiq_handler(&dai_start, &dai_end - &dai_start); + + /* + * Set up SYSCON3 and DAI64FS (if 7312) + */ + + printk(KERN_INFO "DAI: dai_init() SYSCON1 (0x%08x)\n", (unsigned int) IO_SYSCON1); + printk(KERN_INFO "DAI: dai_init() SYSCON2 (0x%08x)\n", (unsigned int) IO_SYSCON2); + printk(KERN_INFO "DAI: dai_init() SYSCON3 (0x%08x)\n", (unsigned int) IO_SYSCON3); + printk(KERN_INFO "DAI: dai_init() INTMR1 (0x%08x)\n", (unsigned int) IO_INTMR1); + printk(KERN_INFO "DAI: dai_init() INTMR2 (0x%08x)\n", (unsigned int) IO_INTMR2); + printk(KERN_INFO "DAI: dai_init() INTMR3 (0x%08x)\n", (unsigned int) IO_INTMR3); + printk(KERN_INFO "DAI: dai_init() DAISR (0x%08x)\n", (unsigned int) IO_DAISR); + printk(KERN_INFO "DAI: dai_init() DAI64FS (0x%08X)\n", (unsigned int) IO_DAI64FS); + +#define PHAT_64FS 0 + +#if PHAT_64FS + IO_SYSCON3 |= SYSCON3_DAISEL; + IO_SYSCON3 &= ~(1<<9); + IO_DAI64FS |= (2 << 8) | + DAI64FS_MCLK256EN | + DAI64FS_AUDCLKSRC | + DAI64FS_AUDCLKEN | + DAI64FS_I2SF64; +#else + IO_SYSCON3 |= SYSCON3_DAISEL | SYSCON3_DAIEN; +#endif + + printk(KERN_INFO "DAI: dai_init() setting PE.1\n"); + + /* + * Turn on the external 11.2896MHz clock + */ +#define COPWR 1 + IO_PEDDR |= COPWR; + IO_PEDR |= COPWR; + + printk(KERN_INFO "DAI: dai_init() setting DAI Control Register\n"); + /* + * DAI control register, + * external clock source (ECS), + * right channel transmit mask (RTCM). + */ + IO_DAIR = 0x0404 | DAIR_ECS | DAIR_RCTM; + + /* + * Clear the overrun and underrun bits + * in the DAI status register + */ + printk(KERN_INFO "DAI: dai_init() clearing DAI status register bits\n"); + IO_DAISR = 0xffffffff; + + + printk(KERN_INFO "DAI: dai_init() setting DAIR_DAIEN\n"); + /* + * Enable DAI interface + */ + IO_DAIR |= DAIR_DAIEN; + while (!(IO_DAISR & DAISR_FIFO)) { + } + + /* + * Enable the FIFOs for the left and right channels. + * + * Left Channel. + */ + IO_DAIDR2 = DAIDR2_FIFOEN | DAIDR2_FIFOLEFT; + while (!(IO_DAISR & DAISR_FIFO)) { + } + /* + * Right Channel. + */ + IO_DAIDR2 = DAIDR2_FIFOEN | DAIDR2_FIFORIGHT; + while (!(IO_DAISR & DAISR_FIFO)) { + } + + IO_DAIDR1 = 0; + IO_DAIDR0 = 0; + IO_DAIDR1 = 0; + IO_DAIDR0 = 0; + IO_DAIDR1 = 0; + IO_DAIDR0 = 0; + IO_DAIDR1 = 0; + IO_DAIDR0 = 0; + IO_DAIDR1 = 0; + IO_DAIDR0 = 0; + IO_DAIDR1 = 0; + IO_DAIDR0 = 0; + IO_DAIDR1 = 0; + IO_DAIDR0 = 0; + IO_DAIDR1 = 0; + IO_DAIDR0 = 0; + + printk(KERN_INFO "DAI: dai_init() DAISR = 0x%08x\n", (unsigned int) IO_DAISR); + + printk(KERN_INFO "DAI: dai_init() adding routine to task queue\n"); + dai_task.routine = dai_task_routine; + dai_task.data = NULL; + queue_task(&dai_task, DAI_TASK_QUEUE); + + +#if DEBUG_DAI + printk(KERN_INFO "DAI: dai_init() adding debug task routine\n"); + dai_debug_task.routine = dai_debug_task_routine; + dai_debug_task.data = NULL; + queue_task(&dai_debug_task, DAI_TASK_QUEUE); +#endif + + /* + * unmask the DAI interrupt + */ + printk(KERN_INFO "DAI: dai_init() enabling DAI interrupt\n"); + + /* + * Enable bit in INTMR3 + */ + ENABLE_DAI(); +} + +#if DEBUG_DAI +void dai_debug_task_routine(void *data) +{ + if (dai_underflow && !dai_old_underflow) { + printk("DAI: buffer underflow! skip dectected!\n"); + } + + dai_old_underflow = dai_underflow; + + /* enqueue ourselves again */ + queue_task(&dai_debug_task, DAI_TASK_QUEUE); +} + +#endif + + + +void dai_task_routine(void *data) +{ + int readp; + int avail; + + if (dai_wait_size) { + readp = dai_readp; + if (readp == dai_writep) { + /* empty case */ + avail = BUF_MAX; + } + else if (readp < dai_writep) { + avail = BUF_MAX - dai_writep + readp; + } + else { + avail = readp - dai_writep - BUF_INCR; + } + if (avail >= dai_wait_size) { + /* + * wake up waiting process. + */ + dai_wait_size = 0; + wake_up_interruptible(&dai_wait); + } + } + /* enqueue ourselves again */ + queue_task(&dai_task, DAI_TASK_QUEUE); +} + + +static ssize_t dai_write(struct file *file, + const char *buffer, size_t count, loff_t * loff) +{ + int to_copy; + int this_copy; + int readp; + int avail; + + //printk(KERN_DEBUG "dai: write(count = %d)\n", count); + + /* + * should always always always write a multiple of 4 stereo 16 bit samples + * (i.e., 16 bytes). + */ + + count &= INCR_MASK; + + /* + * Figure out how much space we have available + */ + +dai_write_test_count: + readp = dai_readp; + if (readp == dai_writep) { + /* empty case */ + avail = BUF_MAX; + } + else if (readp < dai_writep) { + avail = BUF_MAX - dai_writep + readp; + } + else { + avail = readp - dai_writep - BUF_INCR; + } + + /* + * if we can't write the whole chunk, then tell the app to try again later. + */ + if (avail < count) { + if (file->f_flags & O_NONBLOCK) + return -EAGAIN; + else { + /* + * put process to sleep. + */ + dai_wait_size = count; + interruptible_sleep_on(&dai_wait); + goto dai_write_test_count; + } + } + + /* + * copy. + */ + to_copy = count; + + while (to_copy > 0) { + if ((dai_writep + to_copy) > BUF_SIZE) + this_copy = BUF_SIZE - dai_writep; + else + this_copy = to_copy; + + copy_from_user(dai_buf + dai_writep, buffer, this_copy); + + buffer += this_copy; + to_copy -= this_copy; + + /* This is the critical part. */ + DISABLE_DAI(); +#if DEBUG_DAI + dai_underflow=0; +#endif + dai_writep += this_copy; + if (dai_writep >= BUF_SIZE) + dai_writep = 0; + ENABLE_DAI(); + } + return count; +} + + +static int dai_open(struct inode *inode, struct file *file) +{ + //printk(KERN_DEBUG "dai: open()\n"); + return 0; +} + +#if PHAT_USE_WAIT_QUEUE +static int dai_flush(struct inode *inode, struct file *file) +{ + //interruptible_sleep_on(&flush_queue); + + return wait_event_interruptible(flush_queue, + (dai_readp == dai_writep)); +} +#endif + + + +static int dai_release(struct inode *inode, struct file *file) +{ + //printk(KERN_DEBUG "dai: release()\n"); + return 0; +} + + +static void dai_clear(struct inode *inode, struct file *file) +{ + //printk(KERN_DEBUG "dai: clear()\n"); + short *daidata; + + DISABLE_DAI(); + /* + * This clears the buffer of pending data. + */ + dai_writep = dai_readp; + + /* + * The following code is to "smooth out" the discontinuity created in the output. + */ + daidata = (short *) &dai_buf[dai_writep]; + daidata[0] /= 2; + daidata[1] /= 2; + daidata[2] = daidata[0] / 2; + daidata[3] = daidata[1] / 2; + daidata[4] = daidata[2] / 2; + daidata[5] = daidata[3] / 2; + daidata[6] = daidata[4] / 2; + daidata[7] = daidata[5] / 2; + dai_writep += 16; + if (dai_writep >= BUF_SIZE) + dai_writep = 0; + + ENABLE_DAI(); +} + + + +static int dai_ioctl(struct inode *inode, + struct file *file, uint command, ulong arg) +{ + int val; + switch (command) { + case SNDCTL_DSP_GETFMTS: + put_user(AFMT_U16_LE, (long *) arg); + break; + case SNDCTL_DSP_SPEED: + /* + * Use this to set 64fs mode. + */ + if (get_user(val, (int *)arg)) + return -EFAULT; + + DISABLE_DAI(); + IO_SYSCON3 |= SYSCON3_DAISEL; + IO_SYSCON3 &= ~(1<<9); + IO_DAI64FS |= (2 << 8) | DAI64FS_MCLK256EN | + DAI64FS_AUDCLKSRC | DAI64FS_AUDCLKEN | + DAI64FS_I2SF64; + ENABLE_DAI(); + break; + case SNDCTL_DSP_STEREO: + case SNDCTL_DSP_SETFMT: + break; + case SNDCTL_DSP_RESET: + /* + * clear buffers immediately. + */ + dai_clear(inode, file); + break; + case SNDCTL_DSP_SYNC: + /* + * Send a value to the user. + * + * 0 if buffer is empty + * 1 if buffer contains data. + */ + if (get_user(val, (long *) arg)) val = 0; + if (val) { + if (dai_readp < dai_writep) { + val = (dai_readp + val) < dai_writep; + } else if (dai_readp > dai_writep) { + val = (dai_readp + val) < (dai_writep+BUF_SIZE); + } else { + val = 0; + } + } else { + val = dai_readp != dai_writep; + } + put_user(val, (long *) arg); + break; + case SNDCTL_DSP_GETBLKSIZE: + put_user(BUF_SIZE, (long *) arg); + break; + case SNDCTL_DSP_SETFRAGMENT: + get_user(val, (long *) arg); + break; + case SOUND_MIXER_READ_VOLUME: + put_user(128, (long *) arg); + break; + case SOUND_MIXER_READ_PCM: + put_user(128, (long *) arg); + break; + case SNDCTL_DSP_GETCAPS: + put_user(DSP_CAP_REALTIME, (long *) arg); + break; + case SNDCTL_DSP_GETOSPACE: + if (dai_readp == dai_writep) val = 0; + else if (dai_readp < dai_writep) val = dai_writep-dai_readp; + else val = dai_writep+BUF_SIZE-dai_readp; + val = BUF_SIZE - val; + put_user(val, (long *) arg); + break; + default: + return 0; + //return -EINVAL; + } + /* + * 0 == all good. + */ + return 0; +} + + +struct file_operations dai_fops = { + write: dai_write, + ioctl: dai_ioctl, + open: dai_open, + release: dai_release, +}; + + +static int __init audio_7110_init(void) +{ + printk(KERN_INFO "DAI: Version 1.2\n"); + + dai_major = register_chrdev(DAI_MAJOR, "dai", &dai_fops); + + if (dai_major) { + printk(KERN_WARNING "DAI: unable to get major %d\n", DAI_MAJOR); + } + else { + dai_major = DAI_MAJOR; + printk(KERN_INFO "DAI: major %d\n", dai_major); + dai_init(); + } + return 0; +} + + +module_init(audio_7110_init); + Index: drivers/misc/cirrus_dai_fiq.S =================================================================== RCS file: drivers/misc/cirrus_dai_fiq.S diff -N drivers/misc/cirrus_dai_fiq.S --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ drivers/misc/cirrus_dai_fiq.S 13 Jul 2005 05:47:26 -0000 1.1.1.1 @@ -0,0 +1,160 @@ +#include +#include +#include + +#define DEBUG_UNDERFLOW 0 + + + +#define BUF_SIZE 0x00200000 +#define BUF_MASK 0x001FFFFF + /* + * When the FIQ is initialized, + * + * r8_fiq = ... (read pointer, gets incremented) + * r9_fiq = ... (scratch...) + * r10_fiq = 0 (counts up to BUF_SIZE, this is mcp_readp) + * r11_fiq = ... (scratch...) + * r12_fiq = 0xFF002000 (DAI registers within memory mapped by mmu) + * r13 = sp, stack pointer. don't fuck with this. + * r14 = lr. don't fuck with this either. + * r15 = pc. definately don't fuck with the program counter. + * + * Note that the registers here are persistant from one + * invocation of the FIQ to the next. + * + */ + + /* + * This is what we need to do. + * + * If we have data to play, then write 4 samples to each left and then right channels + * UNTIL both FIFO's are half-full (this part is important and probably where the current + * failure is). + * + * If there is no data, write zeros. + * + * Read 4 samples from receive buffer regardless. + * + * Clear overrun and underrun status bits in DAI status register. + */ + + .text + .global SYMBOL_NAME(dai_end) +ENTRY(dai_start) + +dai_start: + # is readp == writep? + ldr r11, .dai_writep + ldr r9, [r11] + + # yes? + cmp r10, r9 + beq play_silent + +play_from_buffer: +// +// Read 4 samples from buffer and write them to the FIFO +// + ldrh r11, [r8, r10] + str r11, [r12, #0x80] + add r10, r10, #2 + + ldrh r11, [r8, r10] + str r11, [r12, #0x40] + add r10, r10, #2 + + ldrh r11, [r8, r10] + str r11, [r12, #0x80] + add r10, r10, #2 + + ldrh r11, [r8, r10] + str r11, [r12, #0x40] + add r10, r10, #2 + + ldrh r11, [r8, r10] + str r11, [r12, #0x80] + add r10, r10, #2 + + ldrh r11, [r8, r10] + str r11, [r12, #0x40] + add r10, r10, #2 + + ldrh r11, [r8, r10] + str r11, [r12, #0x80] + add r10, r10, #2 + + ldrh r11, [r8, r10] + str r11, [r12, #0x40] + add r10, r10, #2 + + mov r11, #BUF_SIZE + cmp r11, r10 + + # wrap around + movls r10, #0x0 + +read_input: + # Read from the incoming data registers. + # just throw away the result + ldr r11, [r12, #0x80] + ldr r11, [r12, #0x40] + ldr r11, [r12, #0x80] + ldr r11, [r12, #0x40] + ldr r11, [r12, #0x80] + ldr r11, [r12, #0x40] + ldr r11, [r12, #0x80] + ldr r11, [r12, #0x40] + + + # clear overrun and underrun bits in DAI status register + mov r11, #0xffffffff + mov r9, #0x100 + str r11, [r12, r9] + + # Save dai_readp + ldr r11, .dai_readp + str r10, [r11] + + # return + subs pc, lr, #4 + + +play_silent: + # Write zeroes to the output registers. + mov r11, #0 + str r11, [r12, #0x80] + str r11, [r12, #0x40] + str r11, [r12, #0x80] + str r11, [r12, #0x40] + str r11, [r12, #0x80] + str r11, [r12, #0x40] + str r11, [r12, #0x80] + str r11, [r12, #0x40] + +#if DEBUG_UNDERFLOW + ldr r11, .dai_underflow + mov r9, #1 + str r9, [r11] +#endif + + b read_input + + +.dai_buf: .long SYMBOL_NAME(dai_buf) +.dai_readp: .long SYMBOL_NAME(dai_readp) +.dai_writep: .long SYMBOL_NAME(dai_writep) +#if DEBUG_UNDERFLOW +.dai_underflow: .long SYMBOL_NAME(dai_underflow) +#endif + +.saved_regs: .word saved_area + +SYMBOL_NAME(dai_end): + + + .data +saved_area: + .long 0 + .long 0 + .long 0 Index: drivers/misc/pn_board.c =================================================================== RCS file: drivers/misc/pn_board.c diff -N drivers/misc/pn_board.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ drivers/misc/pn_board.c 13 Jul 2005 05:47:26 -0000 1.1.1.1 @@ -0,0 +1,143 @@ +/* + * PhatNoise Board abstraction + * Adds /proc/pn_board_ver and /dev/led + */ + +#include +#include +#include +#include +#include + +#ifdef CONFIG_ARCH_PHATNOISE + +#define BOARD_STRING "PhatNoise Board Unknown Version\n" + +#ifdef CONFIG_ARCH_PHATNOISE10 +#undef BOARD_STRING +#define BOARD_STRING "PhatNoise Board v1.0\n" +#endif + +#ifdef CONFIG_ARCH_PHATNOISE11 +#undef BOARD_STRING +#define BOARD_STRING "PhatNoise Board v1.1\n" +#endif + +#define C_NONE 'D' +#define C_GREEN 'G' +#define C_RED 'R' +#define C_ORANGE 'O' + +#define LED_MAJOR 13 + +#define SYS_OUTPUT_REG 0xff000003 + +#define SYS_BASE 0xff000000 +#define UNIQUEID_BASE 0x2440 +#define RANDOMID_BASE 0x2700 +#define SYSFLG_BASE 0x0140 + +static char *board_rev = BOARD_STRING; +static char *banner __initdata = KERN_INFO BOARD_STRING; + +static int led_major; + +#ifdef CONFIG_PROC_FS +static int pn_board_read(char* page, char** start, off_t off, int count, int* eof, void* data) +{ + int len; + len = sprintf(page,board_rev); + return len; +} + +static int pn_cpuid_read(char *page, char **start, off_t off, int count, int* eof, void* data) +{ + int len, i; + unsigned char *memp=(unsigned char *)SYS_BASE; + char retstr[128], tempstr[4], uniqueid[4], randomid[16], sysflg[4]; + memcpy(uniqueid,memp+UNIQUEID_BASE,4); + memcpy(randomid,memp+RANDOMID_BASE,16); + memcpy(sysflg,memp+SYSFLG_BASE,4); + strcpy(retstr,"Unique ID: 0x"); + for (i=0; i<4; i++) { + sprintf(tempstr,"%02x",uniqueid[i]); + strcat(retstr,tempstr); + } + strcat(retstr,"\nRandom ID: 0x"); + for (i=0; i<16; i++) { + sprintf(tempstr,"%02x",randomid[i]); + strcat(retstr,tempstr); + } + strcat(retstr,"\nCPU: "); + if (sysflg[3] & 0x20) + strcat(retstr,"EP73xx, ver 0x"); + else + strcat(retstr,"Unknown, ver 0x"); + sprintf(tempstr,"%02x",sysflg[3]>>6); + strcat(retstr,tempstr); + strcat(retstr,"\n"); + len = sprintf(page,"%s",retstr); + return len; +} +#endif + +static ssize_t led_write(struct file *file, + const char *buffer, size_t count, loff_t * loff) +{ + unsigned char *memp=(unsigned char *)SYS_OUTPUT_REG; + char color; + copy_from_user((void*)(&color),(const void*)buffer,1); + *memp &= ~0x01; + if (color == C_GREEN) *memp |= 0x01; + return 1; +} + +static ssize_t led_read(struct file *file, + char *buffer, size_t count, loff_t * loff) +{ + unsigned char *memp=(unsigned char *)SYS_OUTPUT_REG; + char color=C_NONE; + + if (*memp & 0x01) color=C_GREEN; + copy_to_user(buffer,(const char*)&color,1); + return 1; +} + +static int led_open(struct inode *inode, struct file *file) +{ + return 0; +} + +static int led_release(struct inode *inode, struct file *file) +{ + return 0; +} + +struct file_operations led_fops = { + write: led_write, + read: led_read, + open: led_open, + release: led_release, +}; + +static int __init pn_board_init(void) +{ + printk(banner); +#ifdef CONFIG_PROC_FS + create_proc_read_entry("pn_board_ver",0,0,pn_board_read,NULL); + create_proc_read_entry("pn_cpu_id",0,0,pn_cpuid_read,NULL); +#endif + led_major = register_chrdev(LED_MAJOR,"led",&led_fops); + if (led_major) { + printk(KERN_WARNING "LED: unable to get major %d\n", LED_MAJOR); + } + else { + led_major = LED_MAJOR; + printk(KERN_INFO "LED: major %d\n", led_major); + } + return 0; +} + +module_init(pn_board_init); + +#endif /* CONFIG_ARCH_PHATNOISE */ Index: drivers/serial/serial_clps711x.c =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/drivers/serial/serial_clps711x.c,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.2 diff -u -r1.1.1.1 -r1.1.1.2 --- drivers/serial/serial_clps711x.c 13 Jul 2005 05:26:42 -0000 1.1.1.1 +++ drivers/serial/serial_clps711x.c 13 Jul 2005 05:48:01 -0000 1.1.1.2 @@ -57,11 +57,16 @@ #include + #define UART_NR 2 #define SERIAL_CLPS711X_NAME "ttyAM" -#define SERIAL_CLPS711X_MAJOR 204 -#define SERIAL_CLPS711X_MINOR 16 + +#define SERIAL_CLPS711X_MAJOR 4 +//#define SERIAL_CLPS711X_MAJOR 204 + +#define SERIAL_CLPS711X_MINOR 64 +//#define SERIAL_CLPS711X_MINOR 16 #define SERIAL_CLPS711X_NR UART_NR #define CALLOUT_CLPS711X_NAME "cuaam" @@ -640,6 +645,9 @@ void __init clps711xuart_console_init(void) { +#if DEBUG + printk(KERN_WARNING "%s\n", __FUNCTION__); +#endif register_console(&clps711x_console); } Index: include/asm-arm/ide.h =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/include/asm-arm/ide.h,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.2 diff -u -r1.1.1.1 -r1.1.1.2 --- include/asm-arm/ide.h 13 Jul 2005 05:20:49 -0000 1.1.1.1 +++ include/asm-arm/ide.h 13 Jul 2005 05:48:37 -0000 1.1.1.2 @@ -13,10 +13,21 @@ #ifdef __KERNEL__ + +#ifdef CONFIG_ARCH_PHATNOISE + +#ifndef MAX_HWIFS +#define MAX_HWIFS 1 +#endif + +#else + #ifndef MAX_HWIFS #define MAX_HWIFS 4 #endif +#endif + #define ide__sti() __sti() #include Index: include/asm-arm/arch-clps711x/hardware.h =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/include/asm-arm/arch-clps711x/hardware.h,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.2 diff -u -r1.1.1.1 -r1.1.1.2 --- include/asm-arm/arch-clps711x/hardware.h 13 Jul 2005 05:27:53 -0000 1.1.1.1 +++ include/asm-arm/arch-clps711x/hardware.h 13 Jul 2005 05:48:41 -0000 1.1.1.2 @@ -27,6 +27,8 @@ #define CLPS7111_VIRT_BASE 0xff000000 #define CLPS7111_BASE CLPS7111_VIRT_BASE +#define IO_BASE CLPS7111_BASE + /* * The physical addresses that the external chip select signals map to is * dependent on the setting of the nMEDCHG signal on EP7211 and EP7212 @@ -63,11 +65,16 @@ #define EP7212_VIRT_BASE CLPS7111_VIRT_BASE #define EP7212_BASE CLPS7111_VIRT_BASE -#include #endif +#if defined (CONFIG_ARCH_EP7212) + +#include + +#endif + #define SYSPLD_VIRT_BASE 0xfe000000 #define SYSPLD_BASE SYSPLD_VIRT_BASE @@ -166,6 +173,17 @@ #endif /* CONFIG_ARCH_EDB7211 */ +#ifdef CONFIG_ARCH_PHATNOISE + + +#define PHAT_PHYS_IDE CS5_PHYS_BASE +#define PHAT_VIRT_IDE (0xfe100000) + +#endif + + + + /* * Relevant bits in port D, which controls power to the various parts of * the LCD on the EDB7211. @@ -175,5 +193,75 @@ #define EDB_PD3_LCDBL (1<<3) + +/* + * Allow access to IO registers as if they were normal variables + */ + +#define __IOB(x) (*(volatile unsigned char *) (IO_BASE+(x))) +#define __IOL(x) (*(volatile unsigned long *) (IO_BASE+(x))) + +#define IO_PADR __IOB(PADR) +#define IO_PBDR __IOB(PBDR) +#define IO_PCDR __IOB(PCDR) +#define IO_PDDR __IOB(PDDR) +#define IO_PADDR __IOB(PADDR) +#define IO_PBDDR __IOB(PBDDR) +#define IO_PCDDR __IOB(PCDDR) +#define IO_PDDDR __IOB(PDDDR) +#define IO_PEDR __IOB(PEDR) +#define IO_PEDDR __IOB(PEDDR) +#define IO_SYSCON1 __IOL(SYSCON1) +#define IO_SYSCON2 __IOL(SYSCON2) +#define IO_SYSFLG __IOL(SYSFLG) +#define IO_MEMCFG1 __IOL(MEMCFG1) +#define IO_MEMCFG2 __IOL(MEMCFG2) +/* DRFPR */ +#define IO_INTSR1 __IOL(INTSR1) +#define IO_INTSR2 __IOL(INTSR2) +#define IO_INTSR3 __IOL(INTSR3) +#define IO_INTMR1 __IOL(INTMR1) +#define IO_INTMR2 __IOL(INTMR2) +#define IO_INTMR3 __IOL(INTMR3) +#define IO_LCDCON __IOL(LCDCON) +#define IO_TC1D __IOL(TC1D) +#define IO_TC2D __IOL(TC2D) +#define IO_RTCDR __IOL(RTCDR) +#define IO_RTCMR __IOL(RTCMR) +/* PMPCON */ +#define IO_CODR __IOB(CODR) +#define IO_UARTDR __IOL(UARTDR) +#define IO_UBRLCR __IOL(UBRLCR) +#define IO_SYNCIO __IOL(SYNCIO) +#define IO_PALLSW __IOL(PALLSW) +#define IO_PALMSW __IOL(PALMSW) +#define IO_STFCLR __IOL(STFCLR) +#define IO_BLEOI __IOL(BLEOI) +#define IO_MCEOI __IOL(MCEOI) +#define IO_TEOI __IOL(TEOI) +#define IO_TC1EOI __IOL(TC1EOI) +#define IO_TC2EOI __IOL(TC2EOI) +#define IO_RTCEOI __IOL(RTCEOI) +#define IO_UMSEOI __IOL(UMSEOI) +#define IO_COEOI __IOL(COEOI) +#define IO_HALT __IOL(HALT) +#define IO_STDBY __TOL(STDBY) + +/*-------------- For PhatNoise 7212 ------------------------*/ +#define IO_SYSCON3 __IOL(SYSCON3) +#define IO_SYSFLG2 __IOL(SYSFLG2) + +#define IO_DAIR __IOL(DAIR) +#define IO_DAISR __IOL(DAISR) +#define IO_DAIDR0 __IOL(DAIDR0) +#define IO_DAIDR1 __IOL(DAIDR1) +#define IO_DAIDR2 __IOL(DAIDR2) +#define IO_DAIFLG __IOL(DAIFLG) + +/* ---- Phatnoise 7312 ---- */ + +#define IO_DAI64FS __IOL(DAI64FS) + + #endif Index: include/asm-arm/arch-clps711x/ide.h =================================================================== RCS file: include/asm-arm/arch-clps711x/ide.h diff -N include/asm-arm/arch-clps711x/ide.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ include/asm-arm/arch-clps711x/ide.h 13 Jul 2005 05:48:41 -0000 1.1.1.1 @@ -0,0 +1,157 @@ +/* + * linux/include/asm-arm/arch-clps711x/ide.h + */ +#include +#include +#include + + +#define PHAT_IDE_DEBUG 1 + + +/* + * Set up a hw structure for a specified data port, control port and IRQ. + * This should follow whatever the default interface uses. + */ +static __inline__ void +ide_init_hwif_ports(hw_regs_t *hw, int data_port, int ctrl_port, int *irq) +{ + ide_ioreg_t reg = (ide_ioreg_t) data_port; + int i; + + memset(hw, 0, sizeof(*hw)); + + for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) { + hw->io_ports[i] = reg; + reg += 1; + } + hw->io_ports[IDE_CONTROL_OFFSET] = (ide_ioreg_t) ctrl_port; + if (irq != NULL) + *irq = 0; +} + +/* + * This registers the standard ports for this architecture with the IDE + * driver. + */ + +#ifdef CONFIG_ARCH_PHATNOISE +#include +#include +#endif + +static __inline__ void +ide_init_default_hwifs(void) +{ +#ifdef CONFIG_ARCH_PHATNOISE + hw_regs_t hw; + + printk("PhatNoise ide_init_default_hwifs()\n"); + /* + * Make sure external expansion clock is enabled. + */ + IO_SYSCON1 |= SYSCON1_EXCKEN; +#if PHAT_IDE_DEBUG + printk("IO_SYSCON1 = 0x%08X\n", (unsigned) IO_SYSCON1); + printk("IO_SYSCON2 = 0x%08X\n", (unsigned) IO_SYSCON2); + printk("IO_SYSCON3 = 0x%08X\n", (unsigned) IO_SYSCON3); + + printk("IO_MEMCFG1 = 0x%08X\n", (unsigned) IO_MEMCFG1); + printk("IO_MEMCFG2 = 0x%08X\n", (unsigned) IO_MEMCFG2); +#endif + + ide_init_hwif_ports(&hw, PHAT_VIRT_IDE, PHAT_VIRT_IDE+0x0E, NULL); + //ide_init_hwif_ports(&hw, PHAT_PHYS_IDE, PHAT_PHYS_IDE+0x0E, NULL); + hw.irq = IRQ_EINT2; + ide_register_hw(&hw, NULL); +#endif +} + + + +/* define our IN_BYTE and OUT_BYTE for ide. + * + */ +#if 1 && CONFIG_ARCH_PHATNOISE +#ifndef DEFINE_ARCH_IDE_IN_OUT +#define DEFINE_ARCH_IDE_IN_OUT 1 + + +static uint8_t inb_ide(unsigned int p) +{ + unsigned int r; + +#ifdef RIDICULOUS_IDE_DEBUG + static unsigned int lastp = 0; + if (p != lastp) { + printk(KERN_WARNING "inb_ide(0x%x)\n", (unsigned) p); + } +#endif + + r = (* (volatile unsigned int *)(p)); + //r = inb(p) ; + +#ifdef RIDICULOUS_IDE_DEBUG + if (p != lastp) { + printk(KERN_WARNING "inb_ide(0x%x) = 0x%x\n", + (unsigned) p, r); + lastp = p; + } +#endif + if ((p & 0x3) == 1) + { + r = r >> 24; + } + if ((p & 0x3) == 2) + { + r = r >> 16; + } + if ((p & 0x3) == 3) + { + r = r >> 8; + } + return (uint8_t) r; +} + +#define HAVE_ARCH_IN_BYTE 1 +#define IN_BYTE(p) (byte)inb_ide(p) + + + +static void outb_ide(byte b, unsigned int p) +{ +#ifdef RIDICULOUS_IDE_DEBUG + static unsigned int lastp = 0; + static unsigned int lastb = 0; + + if (p != lastp || (p == lastp && (b != lastb))) { + printk(KERN_WARNING "outb_ide(%u, 0x%x)\n", + b, (unsigned) p); + lastp = p; + lastb = b; + } +#endif + + //outb_p(b, p); + *(volatile byte *) p = b; +} + +#define HAVE_ARCH_OUT_BYTE 1 +#define OUT_BYTE(b,p) outb_ide((b),(p)) + +static uint16_t inw_ide(int p) +{ + return (uint16_t) (* (volatile uint32_t *) p); +} + +static void outw_ide(uint16_t b, int p) +{ + * (volatile uint32_t *) p = b; +} + + + +#endif +#endif + + Index: include/asm-arm/arch-clps711x/irqs.h =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/include/asm-arm/arch-clps711x/irqs.h,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.2 diff -u -r1.1.1.1 -r1.1.1.2 --- include/asm-arm/arch-clps711x/irqs.h 13 Jul 2005 05:27:53 -0000 1.1.1.1 +++ include/asm-arm/arch-clps711x/irqs.h 13 Jul 2005 05:48:41 -0000 1.1.1.2 @@ -21,6 +21,18 @@ /* * Interrupts from INTSR1 */ + + +/* + * fiq's + */ +#define IRQ_EXTFIQ 0 +#define IRQ_BLINT 1 +#define IRQ_WEINT 2 +#define IRQ_MCINT 3 +/* + * regular irq's + */ #define IRQ_CSINT 4 #define IRQ_EINT1 5 #define IRQ_EINT2 6 @@ -34,8 +46,8 @@ #define IRQ_UMSINT 14 #define IRQ_SSEOTI 15 -#define INT1_IRQS (0x0000fff0) -#define INT1_ACK_IRQS (0x00004f10) +#define INT1_IRQS (0x0000ffff) +#define INT1_ACK_IRQS (0x00004f1e) /* * Interrupts from INTSR2 @@ -49,5 +61,7 @@ #define INT2_IRQS (0x30070000) #define INT2_ACK_IRQS (0x00010000) -#define NR_IRQS 30 + + +#define FIQ_START 64 Index: include/asm-arm/arch-clps711x/timex.h =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/include/asm-arm/arch-clps711x/timex.h,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.2 diff -u -r1.1.1.1 -r1.1.1.2 --- include/asm-arm/arch-clps711x/timex.h 13 Jul 2005 05:27:53 -0000 1.1.1.1 +++ include/asm-arm/arch-clps711x/timex.h 13 Jul 2005 05:48:41 -0000 1.1.1.2 @@ -21,3 +21,4 @@ */ #define CLOCK_TICK_RATE 512000 +//#define CLOCK_TICK_RATE 2000000 Index: include/asm-arm/hardware/ep7212.h =================================================================== RCS file: /mnt/lv0/cvsroot/phatlinux/include/asm-arm/hardware/ep7212.h,v retrieving revision 1.1.1.2 retrieving revision 1.1.1.3 diff -u -r1.1.1.2 -r1.1.1.3 --- include/asm-arm/hardware/ep7212.h 13 Jul 2005 05:27:51 -0000 1.1.1.2 +++ include/asm-arm/hardware/ep7212.h 13 Jul 2005 05:48:38 -0000 1.1.1.3 @@ -39,7 +39,7 @@ * These registers are specific to the EP7212 only */ #define DAIR 0x2000 -#define DAIR0 0x2040 +#define DAIDR0 0x2040 #define DAIDR1 0x2080 #define DAIDR2 0x20c0 #define DAISR 0x2100 @@ -80,4 +80,22 @@ #define SYSCON3_FASTWAKE (1 << 8) #define SYSCON3_DAIEN (1 << 9) +/* + * For EP7312 + */ +#define SYSCON3_128FS (1 << 9) + + +#define DAI64FS 0x2600 + +#define DAI64FS_I2SF64 (1 << 0) +#define DAI64FS_AUDCLKEN (1 << 1) +#define DAI64FS_AUDCLKSRC (1 << 2) +#define DAI64FS_MCLK256EN (1 << 3) + +#define DAI64FS_LOOPBACK (1 << 5) + + + + #endif /* __ASM_HARDWARE_EP7212_H */