Remove duplicate AVR32 patches, and add support for ARCH and conditional AVR32 patches

This commit is contained in:
Ulf Samuelsson 2008-03-29 23:09:46 +00:00
parent 230723920a
commit c659b13a2f
34 changed files with 622 additions and 111389 deletions

View file

@ -32,4 +32,6 @@ ifeq ($(strip $(subst ",,$(BR2_KERNEL_LINUX_ADVANCED))),y)
include target/linux/Makefile.in.advanced
endif
include target/device/Makefile.in.linux
include target/hurd/Makefile.in

View file

@ -0,0 +1,6 @@
if BR2_arm
source "target/device/Atmel/arch-arm/Config.in.linux.patches"
endif
if BR2_avr32
source "target/device/Atmel/arch-avr32/Config.in.linux.patches"
endif

View file

@ -30,8 +30,6 @@ endif
LINUX26_RC_PATCH:=$(strip $(subst ",, $(BR2_LINUX26_RC_PATCH)))
#"))
LINUX_BSP_PATCH:=$(strip $(subst ",, $(BR2_LINUX_BSP_ATMEL_PATCH)))
#"))
# These are set by "new" Config.in
LINUX26_KCONFIG:=$(BOARD_PATH)/$(BOARD_NAME)-linux-$(LINUX26_VERSION).config
@ -65,10 +63,6 @@ include target/device/Atmel/*/Makefile.in
UBOOT_CONFIG:=$(UBOOT_BOARD_NAME)_config
UBOOT_CONFIG_FILE:=$(BOARD_PATH)/u-boot/$(UBOOT_BOARD_NAME).h
ifeq ($(strip $(BR2_PACKAGE_LINUX)),y)
#include $(ATMEL_PATH)/Linux/linux.mk
endif
ifeq ($(strip $(BR2_TARGET_UBOOT_AT91)),y)
include $(ATMEL_PATH)/u-boot/u-boot.mk
endif

View file

@ -0,0 +1,3 @@
include target/device/Atmel/arch-arm/arch-arm.mk
include target/device/Atmel/arch-avr32/arch-avr32.mk

View file

@ -0,0 +1,58 @@
choice
prompt "Add AT91 specific patches"
depends on BR2_KERNEL_ARCH_PATCH_ENABLED
depends on BR2_TARGET_ATMEL && BR2_arm
default BR2_ARCH_AT91_2_6_24 if BR2_LINUX_2_6_24
default BR2_ARCH_AT91_2_6_24 if BR2_LINUX_2_6_23
default BR2_ARCH_AT91_2_6_22_1 if BR2_LINUX_2_6_22_1
default BR2_ARCH_AT91_2_6_21_5 if BR2_LINUX_2_6_21 || BR2_LINUX_2_6_21_5
default BR2_ARCH_AT91_2_6_21_1 if BR2_LINUX_2_6_21_1
default BR2_ARCH_AT91_2_6_20_4 if BR2_LINUX_2_6_20 || BR2_LINUX_2_6_20_4
default BR2_ARCH_AT91_2_6_24
help
Select a patch to add to the Linux kernel
config BR2_ARCH_AT91_2_6_24
bool "2.6.24"
help
Apply the at91 linux-2.6.24 patches"
config BR2_ARCH_AT91_2_6_22_1
bool "2.6.22.1"
help
Apply the at91 linux-2.6.22.1 patches"
config BR2_ARCH_AT91_2_6_21_5
bool "2.6.21.5"
help
Apply the at91 linux-2.6.21.5 patches"
config BR2_ARCH_AT91_2_6_21_1
bool "2.6.21.1"
help
Apply the at91 linux-2.6.21.1 patches"
config BR2_ARCH_AT91_2_6_20_4
bool "2.6.20.4"
help
Apply the at91 linux-2.6.20.4 patches"
endchoice
config BR2_KERNEL_ARCH_PATCH_VERSION
string
depends on BR2_KERNEL_ARCH_PATCH_ENABLED
depends on BR2_TARGET_ATMEL && BR2_arm
default "2.6.24" if BR2_ARCH_AT91_2_6_24
default "2.6.22.1" if BR2_ARCH_AT91_2_6_22_1
default "2.6.21.5" if BR2_ARCH_AT91_2_6_21_5
default "2.6.21.1" if BR2_ARCH_AT91_2_6_21_1
default "2.6.20.4" if BR2_ARCH_AT91_2_6_20_4
config BR2_KERNEL_ARCH_PATCH_DIR
string
default "target/device/Atmel/arch-arm/kernel-patches-$(BR2_KERNEL_ARCH_PATCH_VERSION)"

View file

@ -0,0 +1,12 @@
ifeq ($(BR2_avr32),y)
KERNEL_COND_PATCHES:=
ifeq ($(BR2_LINUX_AVR32_AC97_PATCH),y)
KERNEL_COND_PATCHES+=avr32.patched.ac97
endif
ifeq ($(BR2_LINUX_AVR32_ISI_PATCH),y)
KERNEL_COND_PATCHES+=avr32.patched.isi
endif
ifeq ($(BR2_LINUX_AVR32_PSIF_PATCH),y)
KERNEL_COND_PATCHES+=avr32.patched.psif
endif
endif

View file

@ -0,0 +1,4 @@
ifeq ($(BR2_arm),y)
endif

View file

@ -0,0 +1,79 @@
choice
prompt "Add AVR32 specific patches"
depends on BR2_KERNEL_ARCH_PATCH_ENABLED
depends on BR2_avr32
default BR2_ARCH_AVR32_2_6_24 if BR2_LINUX_2_6_24
default BR2_ARCH_AVR32_2_6_23 if BR2_LINUX_2_6_23
default BR2_ARCH_AVR32_2_6_22_10 if BR2_LINUX_2_6_22 || BR2_LINUX_2_6_22_10
default BR2_ARCH_AVR32_2_6_22_1 if BR2_LINUX_2_6_22_1
default BR2_ARCH_AVR32_2_6_21_5 if BR2_LINUX_2_6_21 || BR2_LINUX_2_6_21_5
default BR2_ARCH_AVR32_2_6_20_4 if BR2_LINUX_2_6_20 || BR2_LINUX_2_6_20_4
default BR2_ARCH_AVR32_2_6_24
help
Select a patch to add to the Linux kernel
config BR2_ARCH_AVR32_2_6_24
bool "2.6.24"
help
Apply the avr32 linux-2.6.24 patches"
config BR2_ARCH_AVR32_2_6_23
bool "2.6.23"
help
Apply the avr32 linux-2.6.23 patches"
config BR2_ARCH_AVR32_2_6_22_10
bool "2.6.22.10"
help
Apply the avr32 linux-2.6.22.10 patches"
config BR2_ARCH_AVR32_2_6_22_1
bool "2.6.22.1"
help
Apply the avr32 linux-2.6.22.1 patches"
config BR2_ARCH_AVR32_2_6_21_5
bool "2.6.21.5"
help
Apply the avr32 linux-2.6.21.5 patches"
config BR2_ARCH_AVR32_2_6_20_4
bool "2.6.20.4"
help
Apply the avr32 linux-2.6.20.4 patches"
endchoice
config BR2_KERNEL_ARCH_PATCH_VERSION
string
depends on BR2_KERNEL_ARCH_PATCH_ENABLED
depends on BR2_avr32
default "2.6.24" if BR2_ARCH_AVR32_2_6_24
default "2.6.22.10" if BR2_ARCH_AVR32_2_6_22_10
default "2.6.22.1" if BR2_ARCH_AVR32_2_6_22_1
default "2.6.21.5" if BR2_ARCH_AVR32_2_6_21_5
default "2.6.20.4" if BR2_ARCH_AVR32_2_6_20_4
config BR2_KERNEL_ARCH_PATCH_DIR
string
default "target/device/Atmel/arch-avr32/kernel-patches-$(BR2_KERNEL_ARCH_PATCH_VERSION)"
config BR2_LINUX_AVR32_ISI_PATCH
bool "Add ISI patch"
default n
help
Add support for the Image Sensor Interface
config BR2_LINUX_AVR32_AC97_PATCH
bool "Add AC97 patch"
default n
help
Add support for AC97.
Will need to be patched further to change GPIO_PIN_NONE
to the real pin used as AC-97 reset pin.
config BR2_LINUX_AVR32_PSIF_PATCH
bool "Add PSIF patch"
default n
help
Add support for the PS/2 Interface

View file

@ -0,0 +1,27 @@
ifeq ($(BR2_avr32),y)
avr32.patched.ac97: $(LINUX26_DIR)/.patched.ac97
@echo avr32.patched.ac97
avr32.patched.isi: $(LINUX26_DIR)/.patched.isi
@echo avr32.patched.isi
avr32.patched.psif: $(LINUX26_DIR)/.patched.psif
@echo avr32.patched.psif
$(LINUX26_DIR)/.patched.isi: $(LINUX26_DIR)/.patched.arch
toolchain/patch-kernel.sh $(LINUX26_DIR) $(BR2_KERNEL_ARCH_PATCH_DIR) \
linux-*-500-v4l-avr32-isi.patch.cond
touch $@
$(LINUX26_DIR)/.patched.ac97: $(LINUX26_DIR)/.patched.arch
toolchain/patch-kernel.sh $(LINUX26_DIR) $(BR2_KERNEL_ARCH_PATCH_DIR) \
linux-*-avr32-ac97-reset.patch.cond
touch $@
$(LINUX26_DIR)/.patched.psif: $(LINUX26_DIR)/.patched.arch
toolchain/patch-kernel.sh $(LINUX26_DIR) $(BR2_KERNEL_ARCH_PATCH_DIR) \
linux-*-avr32-psif-2.patch.cond
touch $@
endif

View file

@ -1,6 +1,6 @@
#
# Automatically generated make config: don't edit
# Mon Mar 17 22:02:39 2008
# Sat Mar 29 23:43:32 2008
#
BR2_HAVE_DOT_CONFIG=y
BR2_VERSION="0.10.0-svn"
@ -58,7 +58,7 @@ BR2_BANNER="Welcome to the Erik's uClibc development environment running on the
#
# Preset Devices
#
# BR2_TARGET_ARM is not set
# BR2_TARGET_ARMLTD is not set
BR2_TARGET_ATMEL=y
#
@ -110,6 +110,10 @@ BR2_TARGET_AT91BOOT_DATAFLASHCARD=y
BR2_TARGET_AT91BOOTSTRAP_MEMORY="dataflashcard"
# BR2_TARGET_SHARP is not set
#
# Generic Architecture support
#
#
# Generic System Support
#
@ -196,17 +200,13 @@ BR2_EXT_UCLIBC_VERSION_0_9_28_3=y
# BR2_KERNEL_HEADERS_2_6_20 is not set
# BR2_KERNEL_HEADERS_2_6_21_5 is not set
# BR2_KERNEL_HEADERS_2_6_21 is not set
BR2_KERNEL_HEADERS_2_6_22_1=y
# BR2_KERNEL_HEADERS_2_6_22_1 is not set
# BR2_KERNEL_HEADERS_2_6_22_10 is not set
# BR2_KERNEL_HEADERS_2_6_22 is not set
# BR2_KERNEL_HEADERS_2_6_23 is not set
# BR2_KERNEL_HEADERS_2_6_24 is not set
BR2_KERNEL_HEADERS_2_6_24=y
# BR2_KERNEL_HEADERS_SNAP is not set
# BR2_KERNEL_HEADERS_IPMI is not set
# BR2_KERNEL_HEADERS_LZMA is not set
# BR2_KERNEL_HEADERS_RT is not set
BR2_KERNEL_HEADERS_PATCH_DIR=y
BR2_DEFAULT_KERNEL_HEADERS="2.6.22.1"
BR2_DEFAULT_KERNEL_HEADERS="2.6.24"
#
# uClibc Options
@ -215,7 +215,7 @@ BR2_DEFAULT_KERNEL_HEADERS="2.6.22.1"
BR2_UCLIBC_VERSION_0_9_29=y
# BR2_UCLIBC_VERSION_SNAPSHOT is not set
BR2_UCLIBC_CONFIG="toolchain/uClibc/uClibc-0.9.29.config"
# BR2_ENABLE_LOCALE is not set
BR2_ENABLE_LOCALE=y
# BR2_PTHREADS_NONE is not set
# BR2_PTHREADS is not set
BR2_PTHREADS_OLD=y
@ -281,8 +281,8 @@ BR2_PACKAGE_SSTRIP_TARGET=y
BR2_PACKAGE_SSTRIP_HOST=y
# BR2_ENABLE_MULTILIB is not set
BR2_LARGEFILE=y
# BR2_INET_IPV6 is not set
# BR2_INET_RPC is not set
BR2_INET_IPV6=y
BR2_INET_RPC=y
BR2_USE_WCHAR=y
# BR2_SOFT_FLOAT is not set
BR2_TARGET_OPTIMIZATION="-Os -pipe"
@ -296,30 +296,24 @@ BR2_PACKAGE_BUSYBOX=y
# BR2_BUSYBOX_VERSION_1_6_1 is not set
# BR2_BUSYBOX_VERSION_1_7_X is not set
# BR2_BUSYBOX_VERSION_1_8_X is not set
BR2_BUSYBOX_VERSION_1_9_X=y
# BR2_BUSYBOX_VERSION_1_9_X is not set
BR2_BUSYBOX_VERSION_1_10_X=y
# BR2_PACKAGE_BUSYBOX_SNAPSHOT is not set
BR2_BUSYBOX_VERSION="1.9.1"
BR2_PACKAGE_BUSYBOX_INSTALL_SYMLINKS=y
BR2_BUSYBOX_VERSION="1.10.0"
BR2_PACKAGE_BUSYBOX_FULLINSTALL=y
BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-1.6.0.config"
# BR2_PACKAGE_BUSYBOX_HIDE_OTHERS is not set
BR2_PACKAGE_BUSYBOX_HIDE_OTHERS=y
# BR2_PACKAGE_BUSYBOX_SKELETON is not set
#
# The minimum needed to build a uClibc development system
#
# BR2_PACKAGE_BASH is not set
# BR2_PACKAGE_BZIP2 is not set
# BR2_PACKAGE_COREUTILS is not set
BR2_PACKAGE_BASH=y
BR2_PACKAGE_BZIP2=y
# BR2_PACKAGE_DIFFUTILS is not set
# BR2_PACKAGE_FINDUTILS is not set
# BR2_PACKAGE_FLEX is not set
# BR2_PACKAGE_GAWK is not set
# BR2_PACKAGE_GCC_TARGET is not set
# BR2_PACKAGE_GREP is not set
# BR2_PACKAGE_MAKE is not set
# BR2_PACKAGE_PATCH is not set
# BR2_PACKAGE_SED is not set
# BR2_PACKAGE_TAR is not set
#
# Other development stuff
@ -333,19 +327,22 @@ BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-1.6.0.config"
# BR2_PACKAGE_DMALLOC is not set
# BR2_PACKAGE_FAKEROOT is not set
BR2_HOST_FAKEROOT=y
# BR2_PACKAGE_GETTEXT is not set
# BR2_PACKAGE_LIBINTL is not set
BR2_PACKAGE_GETTEXT=y
# BR2_PACKAGE_GETTEXT_STATIC is not set
BR2_PACKAGE_LIBINTL=y
# BR2_PACKAGE_LIBGMP is not set
# BR2_PACKAGE_LIBMPFR is not set
# BR2_PACKAGE_LIBTOOL is not set
# BR2_PACKAGE_M4 is not set
# BR2_PACKAGE_PKGCONFIG is not set
# BR2_READLINE is not set
BR2_READLINE=y
BR2_PACKAGE_READLINE_TARGET=y
# BR2_PACKAGE_READLINE_HEADERS is not set
#
# Other stuff
#
# BR2_PACKAGE_AT is not set
BR2_PACKAGE_AT=y
# BR2_PACKAGE_BERKELEYDB is not set
# BR2_PACKAGE_BSDIFF is not set
# BR2_PACKAGE_CUPS is not set
@ -356,56 +353,46 @@ BR2_HOST_FAKEROOT=y
# BR2_PACKAGE_ICU is not set
# BR2_PACKAGE_IPKG is not set
# BR2_PACKAGE_KEXEC is not set
# BR2_PACKAGE_LESS is not set
BR2_PACKAGE_LIBDAEMON=y
# BR2_PACKAGE_LIBELF is not set
# BR2_PACKAGE_LIBEVENT is not set
BR2_PACKAGE_LIBEVENT=y
# BR2_PACKAGE_LIBFLOAT is not set
# BR2_PACKAGE_LIBGCRYPT is not set
# BR2_PACKAGE_LIBGPG_ERROR is not set
# BR2_PACKAGE_LIBLOCKFILE is not set
BR2_PACKAGE_LIBLOCKFILE=y
# BR2_PACKAGE_LIBSYSFS is not set
# BR2_PACKAGE_LOCKFILE_PROGS is not set
BR2_PACKAGE_LOCKFILE_PROGS=y
# BR2_PACKAGE_LSOF is not set
# BR2_PACKAGE_LTP-TESTSUITE is not set
# BR2_PACKAGE_LTRACE is not set
# BR2_PACKAGE_LTT is not set
# BR2_PACKAGE_MODULE_INIT_TOOLS is not set
# BR2_PACKAGE_MODUTILS is not set
# BR2_PACKAGE_NG_SPICE_REWORK is not set
# BR2_PACKAGE_PORTAGE is not set
# BR2_PACKAGE_PROCPS is not set
# BR2_PACKAGE_PSMISC is not set
# BR2_PACKAGE_SQLITE is not set
# BR2_PACKAGE_STARTUP_NOTIFICATION is not set
# BR2_PACKAGE_STRACE is not set
# BR2_PACKAGE_SUDO is not set
# BR2_PACKAGE_SYSKLOGD is not set
# BR2_PACKAGE_SYSVINIT is not set
# BR2_PACKAGE_TINYLOGIN is not set
# BR2_PACKAGE_UTIL-LINUX is not set
# BR2_PACKAGE_WHICH is not set
# BR2_TEXTEDIT_SUPPORT is not set
BR2_NETWORK_SUPPORT=y
#
# Networking applications
#
#
# argus - disabled (requires libpcap)
#
# BR2_PACKAGE_AVAHI is not set
# BR2_PACKAGE_BOA is not set
# BR2_PACKAGE_ARGUS is not set
BR2_PACKAGE_AVAHI=y
BR2_PACKAGE_AVAHI_AUTOIPD=y
# BR2_PACKAGE_AVAHI_DAEMON is not set
BR2_PACKAGE_BOA=y
# BR2_PACKAGE_BIND is not set
# BR2_PACKAGE_BRIDGE is not set
# BR2_PACKAGE_CURL is not set
# BR2_PACKAGE_LIBCURL is not set
# BR2_PACKAGE_ISC_DHCP is not set
# BR2_PACKAGE_DNSMASQ is not set
# BR2_PACKAGE_DROPBEAR is not set
# BR2_PACKAGE_ETHTOOL is not set
# BR2_PACKAGE_HASERL is not set
BR2_PACKAGE_DROPBEAR=y
BR2_PACKAGE_ETHTOOL=y
BR2_PACKAGE_HASERL=y
# BR2_PACKAGE_HASERL_VERSION_0_8_0 is not set
BR2_PACKAGE_HASERL_VERSION_0_9_22=y
BR2_PACKAGE_HASERL_VERSION="0.9.22"
# BR2_PACKAGE_IRDA_UTILS is not set
# BR2_PACKAGE_IPERF is not set
# BR2_PACKAGE_IPROUTE2 is not set
@ -415,29 +402,42 @@ BR2_NETWORK_SUPPORT=y
#
# BR2_PACKAGE_IPTABLES is not set
# BR2_PACKAGE_KISMET is not set
# BR2_PACKAGE_L2TP is not set
BR2_PACKAGE_L2TP=y
# BR2_PACKAGE_LIBCGI is not set
# BR2_PACKAGE_LIBCGICC is not set
# BR2_PACKAGE_LIBEXOSIP2 is not set
# BR2_PACKAGE_LIBOSIP2 is not set
# BR2_PACKAGE_LIBPCAP is not set
BR2_PACKAGE_LIBPCAP=y
# BR2_PACKAGE_LINKS is not set
# BR2_PACKAGE_LRZSZ is not set
BR2_PACKAGE_LRZSZ=y
# BR2_PACKAGE_MDNSRESPONDER is not set
# BR2_PACKAGE_MICROCOM is not set
BR2_PACKAGE_MICROCOM=y
# BR2_PACKAGE_MROUTED is not set
# BR2_PACKAGE_MUTT is not set
# BR2_PACKAGE_NBD is not set
# BR2_PACKAGE_NCFTP is not set
# BR2_PACKAGE_NETCAT is not set
# BR2_PACKAGE_NETKITBASE is not set
# BR2_PACKAGE_NETKITTELNET is not set
# BR2_PACKAGE_NETPLUG is not set
# BR2_PACKAGE_NETSNMP is not set
BR2_PACKAGE_NCFTP=y
#
# nfs-utils requires a toolchain with 'Enable RPC' selected
# ncFTP tools selection
#
BR2_PACKAGE_NCFTP_GET=y
BR2_PACKAGE_NCFTP_PUT=y
BR2_PACKAGE_NCFTP_LS=y
BR2_PACKAGE_NCFTP_BATCH=y
# BR2_PACKAGE_NCFTP_SPOOLER is not set
# BR2_PACKAGE_NCFTP_BOOKMARKS is not set
# BR2_PACKAGE_NETKITBASE is not set
# BR2_PACKAGE_NETKITTELNET is not set
BR2_PACKAGE_NETPLUG=y
# BR2_PACKAGE_NETSNMP is not set
BR2_PACKAGE_NFS_UTILS=y
#
# NFS utilities selection
#
# BR2_PACKAGE_NFS_UTILS_RPCDEBUG is not set
# BR2_PACKAGE_NFS_UTILS_RPC_LOCKD is not set
# BR2_PACKAGE_NFS_UTILS_RPC_RQUOTAD is not set
# BR2_PACKAGE_NTP is not set
# BR2_PACKAGE_OLSR is not set
# BR2_PACKAGE_OPENNTPD is not set
@ -445,12 +445,9 @@ BR2_NETWORK_SUPPORT=y
# BR2_PACKAGE_OPENSSL is not set
# BR2_PACKAGE_OPENVPN is not set
# BR2_PACKAGE_OPENSWAN is not set
#
# portmap requires a toolchain with 'Enable RPC' selected
#
# BR2_PACKAGE_PPPD is not set
# BR2_PACKAGE_RP_PPPOE is not set
BR2_PACKAGE_PORTMAP=y
BR2_PACKAGE_PPPD=y
BR2_PACKAGE_RP_PPPOE=y
# BR2_PACKAGE_PPTP_LINUX is not set
# BR2_PACKAGE_PROFTPD is not set
# BR2_PACKAGE_QUAGGA is not set
@ -463,33 +460,58 @@ BR2_NETWORK_SUPPORT=y
# BR2_PACKAGE_QUAGGA_RIPD is not set
# BR2_PACKAGE_QUAGGA_RIPNGD is not set
# BR2_PACKAGE_QUAGGA_OSPFD is not set
# BR2_PACKAGE_QUAGGA_OSPF6D is not set
# BR2_PACKAGE_QUAGGA_WATCHQUAGGA is not set
# BR2_PACKAGE_QUAGGA_ISISD is not set
# BR2_PACKAGE_RSYNC is not set
# BR2_PACKAGE_SAMBA is not set
# BR2_PACKAGE_SOCAT is not set
BR2_PACKAGE_RSYNC=y
BR2_PACKAGE_SAMBA=y
#
# Samba tools selection
#
BR2_PACKAGE_SAMBA_CIFS=y
BR2_PACKAGE_SAMBA_EVENTLOGADM=y
BR2_PACKAGE_SAMBA_NET=y
BR2_PACKAGE_SAMBA_NMBD=y
BR2_PACKAGE_SAMBA_NMBLOOKUP=y
BR2_PACKAGE_SAMBA_NTLM_AUTH=y
BR2_PACKAGE_SAMBA_PDBEDIT=y
BR2_PACKAGE_SAMBA_PROFILES=y
BR2_PACKAGE_SAMBA_RPCCLIENT=y
BR2_PACKAGE_SAMBA_SMBCACLS=y
BR2_PACKAGE_SAMBA_SMBCLIENT=y
BR2_PACKAGE_SAMBA_SMBCONTROL=y
BR2_PACKAGE_SAMBA_SMBCQUOTAS=y
BR2_PACKAGE_SAMBA_SMBGET=y
BR2_PACKAGE_SAMBA_SMBPASSWD=y
BR2_PACKAGE_SAMBA_SMBSPOOL=y
BR2_PACKAGE_SAMBA_SMBSTATUS=y
BR2_PACKAGE_SAMBA_SMBTREE=y
BR2_PACKAGE_SAMBA_SWAT=y
BR2_PACKAGE_SAMBA_TDB=y
BR2_PACKAGE_SAMBA_TESTPARM=y
BR2_PACKAGE_SAMBA_WINBINDD=y
BR2_PACKAGE_SAMBA_WBINFO=y
BR2_PACKAGE_SOCAT=y
# BR2_PACKAGE_STUNNEL is not set
# BR2_PACKAGE_TCPDUMP is not set
# BR2_PACKAGE_DHCPDUMP is not set
# BR2_PACKAGE_TFTPD is not set
# BR2_PACKAGE_LIGHTTPD is not set
# BR2_PACKAGE_THTTPD is not set
# BR2_PACKAGE_TINYHTTPD is not set
BR2_PACKAGE_TFTPD=y
# BR2_PACKAGE_TN5250 is not set
# BR2_PACKAGE_TTCP is not set
# BR2_PACKAGE_UDPCAST is not set
#
# vpnc - disabled (requires libgcrypt and libgpg_error)
#
# BR2_PACKAGE_VTUN is not set
# BR2_PACKAGE_WGET is not set
# BR2_PACKAGE_WIRELESS_TOOLS is not set
BR2_BLOCKDEV_SUPPORT=y
#
# dbus not available (need expat or libxml2)
#
# BR2_PACKAGE_DM is not set
BR2_PACKAGE_DBUS=y
BR2_DBUS_EXPAT=y
# BR2_DBUS_LIBXML2 is not set
# BR2_PACKAGE_DBUS_GLIB is not set
BR2_PACKAGE_DM=y
# BR2_PACKAGE_DMRAID is not set
# BR2_PACKAGE_E2FSPROGS is not set
# BR2_PACKAGE_FCONFIG is not set
@ -497,58 +519,54 @@ BR2_BLOCKDEV_SUPPORT=y
# BR2_PACKAGE_LIBFUSE is not set
# BR2_PACKAGE_GADGETFS_TEST is not set
# BR2_PACKAGE_HAL is not set
# BR2_PACKAGE_HDPARM is not set
# BR2_PACKAGE_HOTPLUG is not set
# BR2_PACKAGE_HWDATA is not set
# BR2_PACKAGE_IOSTAT is not set
# BR2_PACKAGE_LIBAIO is not set
# BR2_PACKAGE_LIBRAW1394 is not set
# BR2_PACKAGE_LIBUSB is not set
BR2_PACKAGE_LIBUSB=y
# BR2_PACKAGE_LM_SENSORS is not set
# BR2_PACKAGE_LVM2 is not set
# BR2_PACKAGE_MDADM is not set
# BR2_PACKAGE_MEMTESTER is not set
# BR2_PACKAGE_MKDOSFS is not set
BR2_PACKAGE_MKDOSFS=y
BR2_PACKAGE_MTD=y
# BR2_PACKAGE_MTD_UTILS is not set
BR2_PACKAGE_MTD_20061007=y
# BR2_PACKAGE_MTD_20050122 is not set
# BR2_PACKAGE_MTD_SNAPSHOT is not set
BR2_PACKAGE_MTD_ORIG_STRING="mtd_20061007.orig.tar.gz"
# BR2_PACKAGE_MTD_UTILS_GIT is not set
#
# MTD tools selection
#
BR2_PACKAGE_MTD_DOCFDISK=y
BR2_PACKAGE_MTD_DOC_LOADBIOS=y
BR2_PACKAGE_MTD_FLASHCP=y
BR2_PACKAGE_MTD_FLASH_ERASE=y
BR2_PACKAGE_MTD_FLASH_ERASEALL=y
BR2_PACKAGE_MTD_FLASH_INFO=y
BR2_PACKAGE_MTD_FLASH_LOCK=y
BR2_PACKAGE_MTD_FLASH_UNLOCK=y
BR2_PACKAGE_MTD_FLASHCP=y
BR2_PACKAGE_MTD_ERASE=y
BR2_PACKAGE_MTD_JFFS2DUMP=y
BR2_PACKAGE_MTD_SUMTOOL=y
BR2_PACKAGE_MTD_FTL_CHECK=y
BR2_PACKAGE_MTD_FTL_FORMAT=y
BR2_PACKAGE_MTD_NFTL_FORMAT=y
BR2_PACKAGE_MTD_NFTLDUMP=y
BR2_PACKAGE_MTD_JFFS2DUMP=y
BR2_PACKAGE_MTD_MKFSJFFS2=y
BR2_PACKAGE_MTD_MKFSJFFS=y
BR2_PACKAGE_MTD_MTD_DEBUG=y
BR2_PACKAGE_MTD_NANDDUMP=y
BR2_PACKAGE_MTD_NANDWRITE=y
BR2_PACKAGE_MTD_MTD_DEBUG=y
BR2_PACKAGE_MTD_DOCFDISK=y
BR2_PACKAGE_MTD_DOC_LOADBIOS=y
BR2_PACKAGE_MTD_NFTL_FORMAT=y
BR2_PACKAGE_MTD_NFTLDUMP=y
BR2_PACKAGE_MTD_SUMTOOL=y
# BR2_PACKAGE_NTFS-3G is not set
# BR2_PACKAGE_PCIUTILS is not set
# BR2_PACKAGE_PCMCIA is not set
# BR2_PACKAGE_RAIDTOOLS is not set
# BR2_PACKAGE_SETSERIAL is not set
# BR2_PACKAGE_SFDISK is not set
BR2_PACKAGE_SETSERIAL=y
# BR2_PACKAGE_SMARTMONTOOLS is not set
# BR2_PACKAGE_UDEV is not set
# BR2_PACKAGE_USBMOUNT is not set
# BR2_PACKAGE_USBUTILS is not set
BR2_PACKAGE_UDEV_VOLUME_ID=y
BR2_PACKAGE_UDEV_SCSI_ID=y
BR2_PACKAGE_USBMOUNT=y
BR2_PACKAGE_USBUTILS=y
# BR2_PACKAGE_WIPE is not set
# BR2_PACKAGE_XFSPROGS is not set
BR2_AUDIO_SUPPORT=y
@ -573,7 +591,8 @@ BR2_GRAPHIC_SUPPORT=y
#
# text rendering libraries
#
# BR2_PACKAGE_NCURSES is not set
BR2_PACKAGE_NCURSES=y
# BR2_PACKAGE_NCURSES_TARGET_HEADERS is not set
# BR2_PACKAGE_NEWT is not set
# BR2_PACKAGE_SLANG is not set
@ -636,6 +655,7 @@ BR2_X11_PREFIX="/usr"
# BR2_PACKAGE_FONTCONFIG is not set
# BR2_PACKAGE_FREETYPE is not set
# BR2_PACKAGE_TSLIB is not set
# BR2_PACKAGE_WEBKIT is not set
#
# X Window managers
@ -649,23 +669,24 @@ BR2_X11_PREFIX="/usr"
#
# X applications
#
# BR2_PACKAGE_ALSAMIXERGUI is not set
#
# dillo - disabled (requires jpeg,libglib12,libgtk12,zlib,libpng and Xorg(7))
#
# BR2_PACKAGE_DOCKER is not set
# BR2_PACKAGE_GQVIEW is not set
# BR2_PACKAGE_LEAFPAD is not set
#
# midori - disabled (requires Xorg(7))
#
# BR2_PACKAGE_WEBKIT is not set
# BR2_PACKAGE_GQVIEW is not set
# BR2_PACKAGE_LEAFPAD is not set
# BR2_PACKAGE_TORSMO is not set
# BR2_PACKAGE_PCMANFM is not set
# BR2_PACKAGE_XSTROKE is not set
# BR2_PACKAGE_SYLPHEED is not set
# BR2_PACKAGE_XPDF is not set
# BR2_PACKAGE_TORSMO is not set
# BR2_PACKAGE_X11VNC is not set
# BR2_PACKAGE_XPDF is not set
# BR2_PACKAGE_XSTROKE is not set
# BR2_PACKAGE_XVKBD is not set
#
@ -673,32 +694,29 @@ BR2_X11_PREFIX="/usr"
#
# BR2_PACKAGE_MPLAYER is not set
BR2_COMPRESSOR_SUPPORT=y
# BR2_PACKAGE_GZIP is not set
# BR2_PACKAGE_LZO is not set
# BR2_PACKAGE_LZMA_TARGET is not set
# BR2_PACKAGE_LZMA_HOST is not set
BR2_PACKAGE_ZLIB=y
# BR2_PACKAGE_ZLIB_TARGET_HEADERS is not set
BR2_SCRIPTING_SUPPORT=y
#
# lua - disabled (requires readline and ncurses)
#
# BR2_PACKAGE_LUA is not set
# BR2_PACKAGE_MICROPERL is not set
# BR2_PACKAGE_PYTHON is not set
# BR2_PACKAGE_RUBY is not set
# BR2_PACKAGE_TCL is not set
# BR2_PACKAGE_PHP is not set
BR2_XML_SUPPORT=y
BR2_PACKAGE_EXPAT=y
# BR2_PACKAGE_EZXML is not set
# BR2_PACKAGE_LIBXML2 is not set
#
# PHP Extensions
# libxslt - disabled (requires pkgconfig)
#
#
# Database extensions
#
# BR2_XML_SUPPORT is not set
# BR2_JAVA_SUPPORT is not set
# BR2_PACKAGE_XERCES is not set
BR2_JAVA_SUPPORT=y
# BR2_PACKAGE_CLASSPATH is not set
BR2_GAMES=y
# BR2_PACKAGE_LXDOOM is not set
# BR2_PACKAGE_LXDOOM_WAD is not set
@ -727,7 +745,7 @@ BR2_TARGET_ROOTFS_EXT2_NONE=y
# BR2_TARGET_ROOTFS_EXT2_GZIP is not set
# BR2_TARGET_ROOTFS_EXT2_BZIP2 is not set
# BR2_TARGET_ROOTFS_EXT2_LZMA is not set
BR2_TARGET_ROOTFS_EXT2_COPYTO=""
BR2_TARGET_ROOTFS_EXT2_COPYTO="/tftpboot"
BR2_TARGET_ROOTFS_JFFS2=y
BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_1056=y
# BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_528 is not set
@ -744,7 +762,7 @@ BR2_TARGET_ROOTFS_JFFS2_LE=y
# BR2_TARGET_ROOTFS_JFFS2_SQUASH is not set
# BR2_TARGET_ROOTFS_JFFS2_SUMMARY is not set
BR2_TARGET_ROOTFS_JFFS2_OUTPUT="$(IMAGE).jffs2"
BR2_TARGET_ROOTFS_JFFS2_COPYTO=""
BR2_TARGET_ROOTFS_JFFS2_COPYTO="/tftpboot"
# BR2_TARGET_ROOTFS_SQUASHFS is not set
# BR2_TARGET_ROOTFS_TAR is not set
# BR2_TARGET_ROOTFS_CPIO is not set
@ -762,34 +780,60 @@ BR2_KERNEL_LINUX_ADVANCED=y
# BR2_KERNEL_LINUX is not set
# BR2_KERNEL_HURD is not set
BR2_PACKAGE_LINUX=y
BR2_PACKAGE_LINUX_KCONFIG="$(BR2_BOARD_PATH)/$(BR2_BOARD_NAME)-linux-$(LINUX26_VERSION).config"
BR2_PACKAGE_LINUX_FORMAT="vmlinux"
BR2_KERNEL_CURRENT_VERSION="2.6.24"
BR2_PACKAGE_LINUX_KCONFIG="$(BR2_BOARD_PATH)/$(BR2_BOARD_NAME)-linux-$(BR2_LINUX26_VERSION).config"
BR2_PACKAGE_LINUX_FORMAT="uImage"
BR2_KERNEL_PATCH_LEVEL="$(BR2_KERNEL_MINORLEVEL)"
BR2_KERNEL_CURRENT_VERSION="2.6.24.4"
BR2_KERNEL_NEXT_VERSION="2.6.25"
BR2_KERNEL_THIS_VERSION="2.6.24"
BR2_KERNEL_SITE="http://ftp.kernel.org/pub/linux/kernel/v2.6/"
BR2_MM_PATCH_SITE="http://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6"
BR2_RC_MM_PATCH_DIR="$(BR2_KERNEL_NEXT_VERSION)-rc$(BR2_KERNEL_RC_LEVEL)/2.6.$(BR2_KERNEL_NEXT_VERSION)-rc$(BR2_KERNEL_RC_LEVEL)-mm$(BR2_KERNEL_MM_LEVEL)"
BR2_KERNEL_PATCH_SITE="http://ftp.kernel.org/pub/linux/kernel/v2.6/"
# BR2_LINUX_2_6_STABLE is not set
# BR2_LINUX_2_6_24 is not set
BR2_LINUX_2_6_24=y
# BR2_LINUX_2_6_23 is not set
# BR2_LINUX_2_6_22_10 is not set
BR2_LINUX_2_6_22_1=y
# BR2_LINUX_2_6_22_1 is not set
# BR2_LINUX_2_6_22 is not set
# BR2_LINUX_2_6_21_7 is not set
# BR2_LINUX_2_6_21_5 is not set
# BR2_LINUX_2_6_21 is not set
# BR2_LINUX_2_6_20 is not set
# BR2_LINUX_2_6_25 is not set
# BR2_LINUX26_CUSTOM is not set
#
# Patches
#
# BR2_KERNEL_ADD_PATCH is not set
BR2_LINUX_BSP_PATCH="linux-2.6.20.4-atmel.patch.bz2"
BR2_KERNEL_PREPATCHED=y
# BR2_KERNEL_BASE is not set
BR2_KERNEL_ADD_KERNEL_ORG_PATCH=y
# BR2_KERNEL_ADD_LATEST is not set
# BR2_KERNEL_ADD_LATEST_MINORPATCH is not set
BR2_KERNEL_ADD_MINORPATCH=y
# BR2_KERNEL_ADD_LATEST_RC_PATCH is not set
# BR2_KERNEL_ADD_RC_PATCH is not set
# BR2_KERNEL_ADD_LATEST_SNAPSHOT is not set
# BR2_KERNEL_ADD_SNAPSHOT is not set
# BR2_KERNEL_ADD_LATEST_MM_PATCH is not set
# BR2_KERNEL_ADD_MM_PATCH is not set
BR2_KERNEL_ADD_PATCH=y
BR2_KERNEL_MINORLEVEL="4"
BR2_KERNEL_ARCH_PATCH_ENABLED=y
BR2_ARCH_AT91_2_6_24=y
# BR2_ARCH_AT91_2_6_22_1 is not set
# BR2_ARCH_AT91_2_6_21_5 is not set
# BR2_ARCH_AT91_2_6_21_1 is not set
# BR2_ARCH_AT91_2_6_20_4 is not set
BR2_KERNEL_ARCH_PATCH_VERSION="2.6.24"
BR2_KERNEL_ARCH_PATCH_DIR="target/device/Atmel/arch-arm/kernel-patches-$(BR2_KERNEL_ARCH_PATCH_VERSION)"
BR2_LINUX_BOARD_PATCH=y
BR2_LINUX_BSP_PATCH=""
BR2_KERNEL_PATCH="patch-$(BR2_DOWNLOAD_LINUX26_VERSION).$(BR2_KERNEL_PATCH_LEVEL).bz2"
# BR2_KERNEL_PREPATCHED is not set
BR2_KERNEL_BASE=y
# BR2_KERNEL_LATEST is not set
BR2_DOWNLOAD_LINUX26_VERSION="2.6.22.1"
BR2_LINUX26_VERSION="2.6.22.1"
BR2_DOWNLOAD_LINUX26_VERSION="$(BR2_KERNEL_THIS_VERSION)"
BR2_LINUX26_VERSION="$(BR2_KERNEL_THIS_VERSION).$(BR2_KERNEL_PATCH_LEVEL)"
#
# Linux Kernel Configuration
@ -798,8 +842,8 @@ BR2_PACKAGE_LINUX_USE_KCONFIG=y
# BR2_PACKAGE_LINUX_USE_DEFCONFIG is not set
# BR2_PACKAGE_LINUX_USE_XCONFIG is not set
# BR2_LINUX_BIN_BZIMAGE is not set
# BR2_LINUX_BIN_UIMAGE is not set
BR2_LINUX_BIN_VMLINUX=y
BR2_LINUX_BIN_UIMAGE=y
# BR2_LINUX_BIN_VMLINUX is not set
# BR2_LINUX_BIN_ZIMAGE is not set
# BR2_LINUX_BIN_CUSTOM is not set
@ -808,5 +852,5 @@ BR2_LINUX_BIN_VMLINUX=y
#
# BR2_LINUX_COPYTO_ROOTFS is not set
BR2_LINUX_COPYTO_TFTPBOOT=y
BR2_LINUX_COPYTO="/tftpboot"
BR2_LINUX_COPYTO=""
BR2_LINUX_COPY_CONFIGURATION=y

View file

@ -1,11 +0,0 @@
--- a/arch/avr32/boards/atngw100/setup.c 2007-11-02 10:47:52.000000000 +0100
+++ b/arch/avr32/boards/atngw100/setup.c 2007-11-02 10:48:00.000000000 +0100
@@ -20,7 +20,7 @@
#include <asm/io.h>
#include <asm/setup.h>
-#include <asm/arch/at32ap7000.h>
+#include <asm/arch/at32ap700x.h>
#include <asm/arch/board.h>
#include <asm/arch/init.h>
#include <asm/arch/portmux.h>

View file

@ -1,255 +0,0 @@
diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
index eeac479..7913cd8 100644
--- a/drivers/mmc/host/atmel-mci.c
+++ b/drivers/mmc/host/atmel-mci.c
@@ -39,7 +39,6 @@ enum {
EVENT_STOP_COMPLETE,
EVENT_DMA_COMPLETE,
EVENT_DMA_ERROR,
- EVENT_CARD_DETECT,
};
struct atmel_mci_dma {
@@ -70,6 +69,9 @@ struct atmel_mci {
int detect_pin;
int wp_pin;
+ /* For detect pin debouncing */
+ struct timer_list detect_timer;
+
unsigned long bus_hz;
unsigned long mapbase;
struct clk *mck;
@@ -108,8 +110,6 @@ MODULE_PARM_DESC(fmax, "Max frequency in Hz of the MMC bus clock");
test_bit(EVENT_DMA_COMPLETE, &host->completed_events)
#define mci_dma_error_is_complete(host) \
test_bit(EVENT_DMA_ERROR, &host->completed_events)
-#define mci_card_detect_is_complete(host) \
- test_bit(EVENT_CARD_DETECT, &host->completed_events)
/* Test and clear bit macros for pending events */
#define mci_clear_cmd_is_pending(host) \
@@ -124,8 +124,6 @@ MODULE_PARM_DESC(fmax, "Max frequency in Hz of the MMC bus clock");
test_and_clear_bit(EVENT_STOP_COMPLETE, &host->pending_events)
#define mci_clear_dma_error_is_pending(host) \
test_and_clear_bit(EVENT_DMA_ERROR, &host->pending_events)
-#define mci_clear_card_detect_is_pending(host) \
- test_and_clear_bit(EVENT_CARD_DETECT, &host->pending_events)
/* Test and set bit macros for completed events */
#define mci_set_cmd_is_completed(host) \
@@ -140,8 +138,6 @@ MODULE_PARM_DESC(fmax, "Max frequency in Hz of the MMC bus clock");
test_and_set_bit(EVENT_STOP_COMPLETE, &host->completed_events)
#define mci_set_dma_error_is_completed(host) \
test_and_set_bit(EVENT_DMA_ERROR, &host->completed_events)
-#define mci_set_card_detect_is_completed(host) \
- test_and_set_bit(EVENT_CARD_DETECT, &host->completed_events)
/* Set bit macros for completed events */
#define mci_set_cmd_complete(host) \
@@ -158,8 +154,6 @@ MODULE_PARM_DESC(fmax, "Max frequency in Hz of the MMC bus clock");
set_bit(EVENT_DMA_COMPLETE, &host->completed_events)
#define mci_set_dma_error_complete(host) \
set_bit(EVENT_DMA_ERROR, &host->completed_events)
-#define mci_set_card_detect_complete(host) \
- set_bit(EVENT_CARD_DETECT, &host->completed_events)
/* Set bit macros for pending events */
#define mci_set_cmd_pending(host) \
@@ -174,8 +168,6 @@ MODULE_PARM_DESC(fmax, "Max frequency in Hz of the MMC bus clock");
set_bit(EVENT_STOP_COMPLETE, &host->pending_events)
#define mci_set_dma_error_pending(host) \
set_bit(EVENT_DMA_ERROR, &host->pending_events)
-#define mci_set_card_detect_pending(host) \
- set_bit(EVENT_CARD_DETECT, &host->pending_events)
/* Clear bit macros for pending events */
#define mci_clear_cmd_pending(host) \
@@ -190,8 +182,6 @@ MODULE_PARM_DESC(fmax, "Max frequency in Hz of the MMC bus clock");
clear_bit(EVENT_STOP_COMPLETE, &host->pending_events)
#define mci_clear_dma_error_pending(host) \
clear_bit(EVENT_DMA_ERROR, &host->pending_events)
-#define mci_clear_card_detect_pending(host) \
- clear_bit(EVENT_CARD_DETECT, &host->pending_events)
#ifdef CONFIG_DEBUG_FS
@@ -560,6 +550,21 @@ static void atmci_request(struct mmc_host *mmc, struct mmc_request *mrq)
mci_readl(host, IMR));
WARN_ON(host->mrq != NULL);
+
+ /*
+ * We may "know" the card is gone even though there's still an
+ * electrical connection. If so, we really need to communicate
+ * this to the MMC core since there won't be any more
+ * interrupts as the card is completely removed. Otherwise,
+ * the MMC core might believe the card is still there even
+ * though the card was just removed very slowly.
+ */
+ if (!host->present) {
+ mrq->cmd->error = -ENOMEDIUM;
+ mmc_request_done(mmc, mrq);
+ return;
+ }
+
host->mrq = mrq;
host->pending_events = 0;
host->completed_events = 0;
@@ -729,6 +734,61 @@ static void atmci_command_complete(struct atmel_mci *host,
}
}
+static void atmci_detect_change(unsigned long data)
+{
+ struct atmel_mci *host = (struct atmel_mci *)data;
+ struct mmc_request *mrq = host->mrq;
+ int present;
+
+ /*
+ * atmci_remove() sets detect_pin to -1 before freeing the
+ * interrupt. We must not re-enable the interrupt if it has
+ * been freed.
+ */
+ smp_rmb();
+ if (host->detect_pin < 0)
+ return;
+
+ enable_irq(gpio_to_irq(host->detect_pin));
+ present = !gpio_get_value(host->detect_pin);
+
+ dev_vdbg(&host->pdev->dev, "detect change: %d (was %d)\n",
+ present, host->present);
+
+ if (present != host->present) {
+ dev_dbg(&host->mmc->class_dev, "card %s\n",
+ present ? "inserted" : "removed");
+ host->present = present;
+
+ /* Reset controller if card is gone */
+ if (!present) {
+ mci_writel(host, CR, MCI_BIT(SWRST));
+ mci_writel(host, IDR, ~0UL);
+ mci_writel(host, CR, MCI_BIT(MCIEN));
+ }
+
+ /* Clean up queue if present */
+ if (mrq) {
+ if (!mci_cmd_is_complete(host))
+ mrq->cmd->error = -ENOMEDIUM;
+ if (mrq->data && !mci_data_is_complete(host)
+ && !mci_data_error_is_complete(host)) {
+ dma_stop_request(host->dma.req.req.dmac,
+ host->dma.req.req.channel);
+ host->data->error = -ENOMEDIUM;
+ atmci_data_complete(host, host->data);
+ }
+ if (mrq->stop && !mci_stop_is_complete(host))
+ mrq->stop->error = -ENOMEDIUM;
+
+ host->cmd = NULL;
+ atmci_request_end(host->mmc, mrq);
+ }
+
+ mmc_detect_change(host->mmc, 0);
+ }
+}
+
static void atmci_tasklet_func(unsigned long priv)
{
struct mmc_host *mmc = (struct mmc_host *)priv;
@@ -806,33 +866,6 @@ static void atmci_tasklet_func(unsigned long priv)
data->bytes_xfered = data->blocks * data->blksz;
atmci_data_complete(host, data);
}
- if (mci_clear_card_detect_is_pending(host)) {
- /* Reset controller if card is gone */
- if (!host->present) {
- mci_writel(host, CR, MCI_BIT(SWRST));
- mci_writel(host, IDR, ~0UL);
- mci_writel(host, CR, MCI_BIT(MCIEN));
- }
-
- /* Clean up queue if present */
- if (mrq) {
- if (!mci_cmd_is_complete(host))
- mrq->cmd->error = -ETIMEDOUT;
- if (mrq->data && !mci_data_is_complete(host)
- && !mci_data_error_is_complete(host)) {
- dma_stop_request(host->dma.req.req.dmac,
- host->dma.req.req.channel);
- host->data->error = -ETIMEDOUT;
- atmci_data_complete(host, data);
- }
- if (mrq->stop && !mci_stop_is_complete(host))
- mrq->stop->error = -ETIMEDOUT;
-
- host->cmd = NULL;
- atmci_request_end(mmc, mrq);
- }
- mmc_detect_change(host->mmc, msecs_to_jiffies(100));
- }
}
static void atmci_cmd_interrupt(struct mmc_host *mmc, u32 status)
@@ -957,20 +990,19 @@ static irqreturn_t atmci_interrupt(int irq, void *dev_id)
return IRQ_HANDLED;
}
-static irqreturn_t atmci_detect_change(int irq, void *dev_id)
+static irqreturn_t atmci_detect_interrupt(int irq, void *dev_id)
{
struct mmc_host *mmc = dev_id;
struct atmel_mci *host = mmc_priv(mmc);
- int present = !gpio_get_value(irq_to_gpio(irq));
+ /*
+ * Disable interrupts until the pin has stabilized and check
+ * the state then. Use mod_timer() since we may be in the
+ * middle of the timer routine when this interrupt triggers.
+ */
+ disable_irq_nosync(irq);
+ mod_timer(&host->detect_timer, jiffies + msecs_to_jiffies(20));
- if (present != host->present) {
- dev_dbg(&mmc->class_dev, "card %s\n",
- present ? "inserted" : "removed");
- host->present = present;
- mci_set_card_detect_pending(host);
- tasklet_schedule(&host->tasklet);
- }
return IRQ_HANDLED;
}
@@ -1079,8 +1111,11 @@ static int __devinit atmci_probe(struct platform_device *pdev)
mmc_add_host(mmc);
if (host->detect_pin >= 0) {
+ setup_timer(&host->detect_timer, atmci_detect_change,
+ (unsigned long)host);
+
ret = request_irq(gpio_to_irq(host->detect_pin),
- atmci_detect_change,
+ atmci_detect_interrupt,
IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
DRIVER_NAME, mmc);
if (ret) {
@@ -1125,9 +1160,16 @@ static int __devexit atmci_remove(struct platform_device *pdev)
atmci_cleanup_debugfs(host);
if (host->detect_pin >= 0) {
- free_irq(gpio_to_irq(host->detect_pin), host->mmc);
+ int pin = host->detect_pin;
+
+ /* Make sure our timer doesn't enable the interrupt */
+ host->detect_pin = -1;
+ smp_wmb();
+
+ free_irq(gpio_to_irq(pin), host->mmc);
+ del_timer_sync(&host->detect_timer);
cancel_delayed_work(&host->mmc->detect);
- gpio_free(host->detect_pin);
+ gpio_free(pin);
}
mmc_remove_host(host->mmc);

View file

@ -1,6 +1,6 @@
#
# Automatically generated make config: don't edit
# Sat Mar 29 09:30:00 2008
# Sat Mar 29 23:18:45 2008
#
BR2_HAVE_DOT_CONFIG=y
BR2_VERSION="0.10.0-svn"
@ -116,7 +116,7 @@ BR2_ROOTFS_PREFIX="rootfs"
BR2_ROOTFS_SUFFIX="$(DATE)"
BR2_GNU_BUILD_SUFFIX="pc-linux-gnu"
BR2_GNU_TARGET_SUFFIX="linux-uclibc"
BR2_JLEVEL=1
BR2_JLEVEL=2
# BR2_PREFER_IMA is not set
# BR2_DEPRECATED is not set
BR2_RECENT=y
@ -138,15 +138,26 @@ BR2_UPDATE_CONFIG=y
#
# Toolchain
#
BR2_TOOLCHAIN_BUILDROOT=y
# BR2_TOOLCHAIN_BUILDROOT is not set
# BR2_TOOLCHAIN_EXTERNAL is not set
# BR2_TOOLCHAIN_EXTERNAL_SOURCE is not set
BR2_TOOLCHAIN_EXTERNAL_SOURCE=y
BR2_TOOLCHAIN_SOURCE=y
BR2_EXT_GCC_VERSION_4_1_2=y
# BR2_TOOLCHAIN_ATMEL_AVR32_4_1_2 is not set
BR2_TOOLCHAIN_ATMEL_AVR32_4_2_1=y
# BR2_TOOLCHAIN_UNKNOWNVENDOR is not set
BR2_TOOLCHAIN_ATMEL_AVR32=y
BR2_VENDOR_SITE="$(BR2_ATMEL_MIRROR)"
BR2_VENDOR_SUFFIX="-avr32"
BR2_VENDOR_BINUTILS_RELEASE="-2.1.3"
BR2_VENDOR_GCC_RELEASE="-2.1.3"
BR2_VENDOR_UCLIBC_RELEASE="-2.1.3"
BR2_VENDOR_GDB_RELEASE="-2.1.3"
BR2_VENDOR_PATCH_DIR="target/device/Atmel/toolchain/avr32"
# BR2_EXT_GCC_VERSION_4_1_2 is not set
BR2_EXT_GCC_VERSION_4_2_1=y
BR2_EXT_BINUTILS_VERSION_2_17=y
BR2_EXT_UCLIBC_VERSION_0_9_29=y
BR2_EXT_UCLIBC_VERSION_0_9_28_3=y
# BR2_EXT_UCLIBC_VERSION_0_9_28_3 is not set
#
# Kernel Header Options
@ -177,7 +188,7 @@ BR2_DEFAULT_KERNEL_HEADERS="2.6.24"
BR2_UCLIBC_VERSION_0_9_29=y
# BR2_UCLIBC_VERSION_SNAPSHOT is not set
BR2_UCLIBC_CONFIG="target/device/Atmel/uClibc.config.avr32"
# BR2_ENABLE_LOCALE is not set
BR2_ENABLE_LOCALE=y
# BR2_PTHREADS_NONE is not set
# BR2_PTHREADS is not set
BR2_PTHREADS_OLD=y
@ -206,7 +217,7 @@ BR2_GCC_VERSION_4_2_1=y
BR2_GCC_SUPPORTS_SYSROOT=y
# BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE is not set
BR2_GCC_VERSION="4.2.1"
# BR2_TOOLCHAIN_SYSROOT is not set
BR2_TOOLCHAIN_SYSROOT=y
# BR2_GCC_USE_SJLJ_EXCEPTIONS is not set
BR2_EXTRA_GCC_CONFIG_OPTIONS=""
BR2_GCC_CROSS_CXX=y
@ -265,7 +276,7 @@ BR2_BUSYBOX_VERSION_1_10_X=y
# BR2_PACKAGE_BUSYBOX_SNAPSHOT is not set
BR2_BUSYBOX_VERSION="1.10.0"
BR2_PACKAGE_BUSYBOX_FULLINSTALL=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_BOARD_PATH)/busybox-$(BR2_BUSYBOX_VERSION).config"
BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-1.6.0.config"
BR2_PACKAGE_BUSYBOX_HIDE_OTHERS=y
BR2_PACKAGE_BUSYBOX_SKELETON=y
@ -379,7 +390,7 @@ BR2_PACKAGE_IPTABLES=y
# BR2_PACKAGE_LINKS is not set
BR2_PACKAGE_LRZSZ=y
# BR2_PACKAGE_MDNSRESPONDER is not set
# BR2_PACKAGE_MICROCOM is not set
BR2_PACKAGE_MICROCOM=y
# BR2_PACKAGE_MROUTED is not set
# BR2_PACKAGE_MUTT is not set
BR2_PACKAGE_NBD=y
@ -576,7 +587,7 @@ BR2_TARGET_ROOTFS_JFFS2_BE=y
# BR2_TARGET_ROOTFS_JFFS2_SQUASH is not set
# BR2_TARGET_ROOTFS_JFFS2_SUMMARY is not set
BR2_TARGET_ROOTFS_JFFS2_OUTPUT="$(IMAGE).jffs2"
BR2_TARGET_ROOTFS_JFFS2_COPYTO=""
BR2_TARGET_ROOTFS_JFFS2_COPYTO="/tftpboot"
# BR2_TARGET_ROOTFS_SQUASHFS is not set
BR2_TARGET_ROOTFS_TAR=y
BR2_TARGET_ROOTFS_TAR_NONE=y
@ -610,14 +621,16 @@ BR2_KERNEL_LINUX_ADVANCED=y
# BR2_KERNEL_LINUX is not set
# BR2_KERNEL_HURD is not set
BR2_PACKAGE_LINUX=y
BR2_PACKAGE_LINUX_KCONFIG="$(BR2_BOARD_PATH)/$(BR2_BOARD_NAME)-linux-2.6.22.5.config"
BR2_PACKAGE_LINUX_KCONFIG="$(BR2_BOARD_PATH)/$(BR2_BOARD_NAME)-linux-2.6.24.config"
BR2_PACKAGE_LINUX_FORMAT="uImage"
BR2_KERNEL_CURRENT_VERSION="2.6.24.3"
BR2_KERNEL_CURRENT_VERSION="2.6.24.4"
BR2_KERNEL_NEXT_VERSION="2.6.25"
BR2_KERNEL_THIS_VERSION="2.6.24"
BR2_KERNEL_SITE="http://ftp.kernel.org/pub/linux/kernel/v2.6/"
BR2_MM_PATCH_SITE="http://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6"
BR2_RC_MM_PATCH_DIR="$(BR2_KERNEL_NEXT_VERSION)-rc$(BR2_KERNEL_RC_LEVEL)/2.6.$(BR2_KERNEL_NEXT_VERSION)-rc$(BR2_KERNEL_RC_LEVEL)-mm$(BR2_KERNEL_MM_LEVEL)"
BR2_LINUX_2_6_STABLE=y
# BR2_LINUX_2_6_24 is not set
# BR2_LINUX_2_6_STABLE is not set
BR2_LINUX_2_6_24=y
# BR2_LINUX_2_6_23 is not set
# BR2_LINUX_2_6_22_10 is not set
# BR2_LINUX_2_6_22_1 is not set
@ -632,22 +645,27 @@ BR2_LINUX_2_6_STABLE=y
#
# Patches
#
BR2_KERNEL_ADD_NO_PATCH=y
# BR2_KERNEL_ADD_LATEST_MINORPATCH is not set
# BR2_KERNEL_ADD_MINORPATCH is not set
# BR2_KERNEL_ADD_LATEST_RC_PATCH is not set
# BR2_KERNEL_ADD_RC_PATCH is not set
# BR2_KERNEL_ADD_LATEST_SNAPSHOT is not set
# BR2_KERNEL_ADD_SNAPSHOT is not set
# BR2_KERNEL_ADD_LATEST_MM_PATCH is not set
# BR2_KERNEL_ADD_MM_PATCH is not set
# BR2_KERNEL_ADD_KERNEL_ORG_PATCH is not set
# BR2_KERNEL_ADD_PATCH is not set
BR2_KERNEL_ARCH_PATCH_ENABLED=y
BR2_KERNEL_ARCH_PATCH_VERSION="2.6.24"
BR2_KERNEL_ARCH_PATCH_DIR="target/device/Atmel/arch-avr32/kernel-patches-$(BR2_KERNEL_ARCH_PATCH_VERSION)"
BR2_ARCH_AVR32_2_6_24=y
# BR2_ARCH_AVR32_2_6_23 is not set
# BR2_ARCH_AVR32_2_6_22_10 is not set
# BR2_ARCH_AVR32_2_6_22_1 is not set
# BR2_ARCH_AVR32_2_6_21_5 is not set
# BR2_ARCH_AVR32_2_6_20_4 is not set
# BR2_LINUX_AVR32_ISI_PATCH is not set
# BR2_LINUX_AVR32_AC97_PATCH is not set
# BR2_LINUX_AVR32_PSIF_PATCH is not set
BR2_LINUX_BOARD_PATCH=y
BR2_LINUX_BSP_PATCH=""
# BR2_KERNEL_PREPATCHED is not set
# BR2_KERNEL_BASE is not set
BR2_KERNEL_BASE=y
# BR2_KERNEL_LATEST is not set
BR2_DOWNLOAD_LINUX26_VERSION="$(BR2_KERNEL_CURRENT_VERSION)"
BR2_LINUX26_VERSION="$(BR2_KERNEL_CURRENT_VERSION)"
BR2_DOWNLOAD_LINUX26_VERSION="$(BR2_KERNEL_THIS_VERSION)"
BR2_LINUX26_VERSION="$(BR2_KERNEL_THIS_VERSION)"
#
# Linux Kernel Configuration
@ -665,6 +683,6 @@ BR2_LINUX_BIN_UIMAGE=y
# Destinations for linux kernel binaries
#
BR2_LINUX_COPYTO_ROOTFS=y
# BR2_LINUX_COPYTO_TFTPBOOT is not set
BR2_LINUX_COPYTO="n"
BR2_LINUX_COPYTO_TFTPBOOT=y
BR2_LINUX_COPYTO=""
# BR2_LINUX_COPY_CONFIGURATION is not set

View file

@ -1,11 +0,0 @@
--- a/arch/avr32/boards/atngw100/setup.c 2007-11-02 10:47:52.000000000 +0100
+++ b/arch/avr32/boards/atngw100/setup.c 2007-11-02 10:48:00.000000000 +0100
@@ -20,7 +20,7 @@
#include <asm/io.h>
#include <asm/setup.h>
-#include <asm/arch/at32ap7000.h>
+#include <asm/arch/at32ap700x.h>
#include <asm/arch/board.h>
#include <asm/arch/init.h>
#include <asm/arch/portmux.h>

View file

@ -1,255 +0,0 @@
diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
index eeac479..7913cd8 100644
--- a/drivers/mmc/host/atmel-mci.c
+++ b/drivers/mmc/host/atmel-mci.c
@@ -39,7 +39,6 @@ enum {
EVENT_STOP_COMPLETE,
EVENT_DMA_COMPLETE,
EVENT_DMA_ERROR,
- EVENT_CARD_DETECT,
};
struct atmel_mci_dma {
@@ -70,6 +69,9 @@ struct atmel_mci {
int detect_pin;
int wp_pin;
+ /* For detect pin debouncing */
+ struct timer_list detect_timer;
+
unsigned long bus_hz;
unsigned long mapbase;
struct clk *mck;
@@ -108,8 +110,6 @@ MODULE_PARM_DESC(fmax, "Max frequency in Hz of the MMC bus clock");
test_bit(EVENT_DMA_COMPLETE, &host->completed_events)
#define mci_dma_error_is_complete(host) \
test_bit(EVENT_DMA_ERROR, &host->completed_events)
-#define mci_card_detect_is_complete(host) \
- test_bit(EVENT_CARD_DETECT, &host->completed_events)
/* Test and clear bit macros for pending events */
#define mci_clear_cmd_is_pending(host) \
@@ -124,8 +124,6 @@ MODULE_PARM_DESC(fmax, "Max frequency in Hz of the MMC bus clock");
test_and_clear_bit(EVENT_STOP_COMPLETE, &host->pending_events)
#define mci_clear_dma_error_is_pending(host) \
test_and_clear_bit(EVENT_DMA_ERROR, &host->pending_events)
-#define mci_clear_card_detect_is_pending(host) \
- test_and_clear_bit(EVENT_CARD_DETECT, &host->pending_events)
/* Test and set bit macros for completed events */
#define mci_set_cmd_is_completed(host) \
@@ -140,8 +138,6 @@ MODULE_PARM_DESC(fmax, "Max frequency in Hz of the MMC bus clock");
test_and_set_bit(EVENT_STOP_COMPLETE, &host->completed_events)
#define mci_set_dma_error_is_completed(host) \
test_and_set_bit(EVENT_DMA_ERROR, &host->completed_events)
-#define mci_set_card_detect_is_completed(host) \
- test_and_set_bit(EVENT_CARD_DETECT, &host->completed_events)
/* Set bit macros for completed events */
#define mci_set_cmd_complete(host) \
@@ -158,8 +154,6 @@ MODULE_PARM_DESC(fmax, "Max frequency in Hz of the MMC bus clock");
set_bit(EVENT_DMA_COMPLETE, &host->completed_events)
#define mci_set_dma_error_complete(host) \
set_bit(EVENT_DMA_ERROR, &host->completed_events)
-#define mci_set_card_detect_complete(host) \
- set_bit(EVENT_CARD_DETECT, &host->completed_events)
/* Set bit macros for pending events */
#define mci_set_cmd_pending(host) \
@@ -174,8 +168,6 @@ MODULE_PARM_DESC(fmax, "Max frequency in Hz of the MMC bus clock");
set_bit(EVENT_STOP_COMPLETE, &host->pending_events)
#define mci_set_dma_error_pending(host) \
set_bit(EVENT_DMA_ERROR, &host->pending_events)
-#define mci_set_card_detect_pending(host) \
- set_bit(EVENT_CARD_DETECT, &host->pending_events)
/* Clear bit macros for pending events */
#define mci_clear_cmd_pending(host) \
@@ -190,8 +182,6 @@ MODULE_PARM_DESC(fmax, "Max frequency in Hz of the MMC bus clock");
clear_bit(EVENT_STOP_COMPLETE, &host->pending_events)
#define mci_clear_dma_error_pending(host) \
clear_bit(EVENT_DMA_ERROR, &host->pending_events)
-#define mci_clear_card_detect_pending(host) \
- clear_bit(EVENT_CARD_DETECT, &host->pending_events)
#ifdef CONFIG_DEBUG_FS
@@ -560,6 +550,21 @@ static void atmci_request(struct mmc_host *mmc, struct mmc_request *mrq)
mci_readl(host, IMR));
WARN_ON(host->mrq != NULL);
+
+ /*
+ * We may "know" the card is gone even though there's still an
+ * electrical connection. If so, we really need to communicate
+ * this to the MMC core since there won't be any more
+ * interrupts as the card is completely removed. Otherwise,
+ * the MMC core might believe the card is still there even
+ * though the card was just removed very slowly.
+ */
+ if (!host->present) {
+ mrq->cmd->error = -ENOMEDIUM;
+ mmc_request_done(mmc, mrq);
+ return;
+ }
+
host->mrq = mrq;
host->pending_events = 0;
host->completed_events = 0;
@@ -729,6 +734,61 @@ static void atmci_command_complete(struct atmel_mci *host,
}
}
+static void atmci_detect_change(unsigned long data)
+{
+ struct atmel_mci *host = (struct atmel_mci *)data;
+ struct mmc_request *mrq = host->mrq;
+ int present;
+
+ /*
+ * atmci_remove() sets detect_pin to -1 before freeing the
+ * interrupt. We must not re-enable the interrupt if it has
+ * been freed.
+ */
+ smp_rmb();
+ if (host->detect_pin < 0)
+ return;
+
+ enable_irq(gpio_to_irq(host->detect_pin));
+ present = !gpio_get_value(host->detect_pin);
+
+ dev_vdbg(&host->pdev->dev, "detect change: %d (was %d)\n",
+ present, host->present);
+
+ if (present != host->present) {
+ dev_dbg(&host->mmc->class_dev, "card %s\n",
+ present ? "inserted" : "removed");
+ host->present = present;
+
+ /* Reset controller if card is gone */
+ if (!present) {
+ mci_writel(host, CR, MCI_BIT(SWRST));
+ mci_writel(host, IDR, ~0UL);
+ mci_writel(host, CR, MCI_BIT(MCIEN));
+ }
+
+ /* Clean up queue if present */
+ if (mrq) {
+ if (!mci_cmd_is_complete(host))
+ mrq->cmd->error = -ENOMEDIUM;
+ if (mrq->data && !mci_data_is_complete(host)
+ && !mci_data_error_is_complete(host)) {
+ dma_stop_request(host->dma.req.req.dmac,
+ host->dma.req.req.channel);
+ host->data->error = -ENOMEDIUM;
+ atmci_data_complete(host, host->data);
+ }
+ if (mrq->stop && !mci_stop_is_complete(host))
+ mrq->stop->error = -ENOMEDIUM;
+
+ host->cmd = NULL;
+ atmci_request_end(host->mmc, mrq);
+ }
+
+ mmc_detect_change(host->mmc, 0);
+ }
+}
+
static void atmci_tasklet_func(unsigned long priv)
{
struct mmc_host *mmc = (struct mmc_host *)priv;
@@ -806,33 +866,6 @@ static void atmci_tasklet_func(unsigned long priv)
data->bytes_xfered = data->blocks * data->blksz;
atmci_data_complete(host, data);
}
- if (mci_clear_card_detect_is_pending(host)) {
- /* Reset controller if card is gone */
- if (!host->present) {
- mci_writel(host, CR, MCI_BIT(SWRST));
- mci_writel(host, IDR, ~0UL);
- mci_writel(host, CR, MCI_BIT(MCIEN));
- }
-
- /* Clean up queue if present */
- if (mrq) {
- if (!mci_cmd_is_complete(host))
- mrq->cmd->error = -ETIMEDOUT;
- if (mrq->data && !mci_data_is_complete(host)
- && !mci_data_error_is_complete(host)) {
- dma_stop_request(host->dma.req.req.dmac,
- host->dma.req.req.channel);
- host->data->error = -ETIMEDOUT;
- atmci_data_complete(host, data);
- }
- if (mrq->stop && !mci_stop_is_complete(host))
- mrq->stop->error = -ETIMEDOUT;
-
- host->cmd = NULL;
- atmci_request_end(mmc, mrq);
- }
- mmc_detect_change(host->mmc, msecs_to_jiffies(100));
- }
}
static void atmci_cmd_interrupt(struct mmc_host *mmc, u32 status)
@@ -957,20 +990,19 @@ static irqreturn_t atmci_interrupt(int irq, void *dev_id)
return IRQ_HANDLED;
}
-static irqreturn_t atmci_detect_change(int irq, void *dev_id)
+static irqreturn_t atmci_detect_interrupt(int irq, void *dev_id)
{
struct mmc_host *mmc = dev_id;
struct atmel_mci *host = mmc_priv(mmc);
- int present = !gpio_get_value(irq_to_gpio(irq));
+ /*
+ * Disable interrupts until the pin has stabilized and check
+ * the state then. Use mod_timer() since we may be in the
+ * middle of the timer routine when this interrupt triggers.
+ */
+ disable_irq_nosync(irq);
+ mod_timer(&host->detect_timer, jiffies + msecs_to_jiffies(20));
- if (present != host->present) {
- dev_dbg(&mmc->class_dev, "card %s\n",
- present ? "inserted" : "removed");
- host->present = present;
- mci_set_card_detect_pending(host);
- tasklet_schedule(&host->tasklet);
- }
return IRQ_HANDLED;
}
@@ -1079,8 +1111,11 @@ static int __devinit atmci_probe(struct platform_device *pdev)
mmc_add_host(mmc);
if (host->detect_pin >= 0) {
+ setup_timer(&host->detect_timer, atmci_detect_change,
+ (unsigned long)host);
+
ret = request_irq(gpio_to_irq(host->detect_pin),
- atmci_detect_change,
+ atmci_detect_interrupt,
IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
DRIVER_NAME, mmc);
if (ret) {
@@ -1125,9 +1160,16 @@ static int __devexit atmci_remove(struct platform_device *pdev)
atmci_cleanup_debugfs(host);
if (host->detect_pin >= 0) {
- free_irq(gpio_to_irq(host->detect_pin), host->mmc);
+ int pin = host->detect_pin;
+
+ /* Make sure our timer doesn't enable the interrupt */
+ host->detect_pin = -1;
+ smp_wmb();
+
+ free_irq(gpio_to_irq(pin), host->mmc);
+ del_timer_sync(&host->detect_timer);
cancel_delayed_work(&host->mmc->detect);
- gpio_free(host->detect_pin);
+ gpio_free(pin);
}
mmc_remove_host(host->mmc);

View file

@ -1,6 +1,6 @@
#
# Automatically generated make config: don't edit
# Tue Feb 26 08:59:01 2008
# Sat Mar 29 23:26:39 2008
#
BR2_HAVE_DOT_CONFIG=y
BR2_VERSION="0.10.0-svn"
@ -68,10 +68,14 @@ BR2_BOARD_NAME="atstk1002"
#
# Secondary locations
#
BR2_TARGET_ATMEL_COPYTO=""
BR2_TARGET_ATMEL_COPYTO="/tftpboot"
BR2_BOARD_PATH="target/device/Atmel/$(BR2_BOARD_NAME)"
# BR2_TARGET_VALKA is not set
#
# Generic Architecture support
#
#
# Generic System Support
#
@ -112,30 +116,48 @@ BR2_ROOTFS_PREFIX="rootfs"
BR2_ROOTFS_SUFFIX="$(DATE)"
BR2_GNU_BUILD_SUFFIX="pc-linux-gnu"
BR2_GNU_TARGET_SUFFIX="linux-uclibc"
BR2_JLEVEL=1
BR2_JLEVEL=2
# BR2_PREFER_IMA is not set
# BR2_DEPRECATED is not set
BR2_RECENT=y
# BR2_ENABLE_DEBUG is not set
BR2_STRIP_strip=y
# BR2_STRIP_sstrip is not set
# BR2_STRIP_none is not set
# BR2_OPTIMIZE_0 is not set
# BR2_OPTIMIZE_1 is not set
BR2_OPTIMIZE_2=y
# BR2_OPTIMIZE_3 is not set
# BR2_OPTIMIZE_S is not set
# BR2_PREFER_STATIC_LIB is not set
# BR2_HAVE_MANPAGES is not set
# BR2_HAVE_INFOPAGES is not set
# BR2_HAVE_DEVFILES is not set
BR2_UPDATE_CONFIG=y
#
# Toolchain
#
BR2_TOOLCHAIN_BUILDROOT=y
# BR2_TOOLCHAIN_BUILDROOT is not set
# BR2_TOOLCHAIN_EXTERNAL is not set
# BR2_TOOLCHAIN_EXTERNAL_SOURCE is not set
BR2_TOOLCHAIN_EXTERNAL_SOURCE=y
BR2_TOOLCHAIN_SOURCE=y
BR2_EXT_GCC_VERSION_4_1_2=y
# BR2_TOOLCHAIN_ATMEL_AVR32_4_1_2 is not set
BR2_TOOLCHAIN_ATMEL_AVR32_4_2_1=y
# BR2_TOOLCHAIN_UNKNOWNVENDOR is not set
BR2_TOOLCHAIN_ATMEL_AVR32=y
BR2_VENDOR_SITE="$(BR2_ATMEL_MIRROR)"
BR2_VENDOR_SUFFIX="-avr32"
BR2_VENDOR_BINUTILS_RELEASE="-2.1.3"
BR2_VENDOR_GCC_RELEASE="-2.1.3"
BR2_VENDOR_UCLIBC_RELEASE="-2.1.3"
BR2_VENDOR_GDB_RELEASE="-2.1.3"
BR2_VENDOR_PATCH_DIR="target/device/Atmel/toolchain/avr32"
# BR2_EXT_GCC_VERSION_4_1_2 is not set
BR2_EXT_GCC_VERSION_4_2_1=y
BR2_EXT_BINUTILS_VERSION_2_17=y
BR2_EXT_UCLIBC_VERSION_0_9_29=y
BR2_EXT_UCLIBC_VERSION_0_9_28_3=y
# BR2_EXT_UCLIBC_VERSION_0_9_28_3 is not set
#
# Kernel Header Options
@ -166,13 +188,13 @@ BR2_DEFAULT_KERNEL_HEADERS="2.6.24"
BR2_UCLIBC_VERSION_0_9_29=y
# BR2_UCLIBC_VERSION_SNAPSHOT is not set
BR2_UCLIBC_CONFIG="target/device/Atmel/uClibc.config.avr32"
# BR2_ENABLE_LOCALE is not set
BR2_ENABLE_LOCALE=y
# BR2_PTHREADS_NONE is not set
# BR2_PTHREADS is not set
BR2_PTHREADS_OLD=y
# BR2_PTHREADS_NATIVE is not set
# BR2_PTHREAD_DEBUG is not set
# BR2_UCLIBC_PROGRAM_INVOCATION is not set
BR2_UCLIBC_PROGRAM_INVOCATION=y
#
# Binutils Options
@ -195,7 +217,7 @@ BR2_GCC_VERSION_4_2_1=y
BR2_GCC_SUPPORTS_SYSROOT=y
# BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE is not set
BR2_GCC_VERSION="4.2.1"
# BR2_TOOLCHAIN_SYSROOT is not set
BR2_TOOLCHAIN_SYSROOT=y
# BR2_GCC_USE_SJLJ_EXCEPTIONS is not set
BR2_EXTRA_GCC_CONFIG_OPTIONS=""
BR2_GCC_CROSS_CXX=y
@ -249,11 +271,12 @@ BR2_PACKAGE_BUSYBOX=y
# BR2_BUSYBOX_VERSION_1_6_1 is not set
# BR2_BUSYBOX_VERSION_1_7_X is not set
# BR2_BUSYBOX_VERSION_1_8_X is not set
BR2_BUSYBOX_VERSION_1_9_X=y
# BR2_BUSYBOX_VERSION_1_9_X is not set
BR2_BUSYBOX_VERSION_1_10_X=y
# BR2_PACKAGE_BUSYBOX_SNAPSHOT is not set
BR2_BUSYBOX_VERSION="1.9.1"
BR2_PACKAGE_BUSYBOX_INSTALL_SYMLINKS=y
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_BOARD_PATH)/busybox-$(BR2_BUSYBOX_VERSION).config"
BR2_BUSYBOX_VERSION="1.10.0"
BR2_PACKAGE_BUSYBOX_FULLINSTALL=y
BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox-1.6.0.config"
BR2_PACKAGE_BUSYBOX_HIDE_OTHERS=y
BR2_PACKAGE_BUSYBOX_SKELETON=y
@ -261,7 +284,6 @@ BR2_PACKAGE_BUSYBOX_SKELETON=y
# The minimum needed to build a uClibc development system
#
BR2_PACKAGE_BASH=y
# B2_PACKAGE_BASH_LINK_SH is not set
BR2_PACKAGE_BZIP2=y
# BR2_PACKAGE_DIFFUTILS is not set
# BR2_PACKAGE_FLEX is not set
@ -278,7 +300,6 @@ BR2_PACKAGE_BZIP2=y
# BR2_PACKAGE_CVS is not set
# BR2_PACKAGE_DISTCC is not set
# BR2_PACKAGE_DMALLOC is not set
# BR2_PACKAGE_EXPAT is not set
# BR2_PACKAGE_FAKEROOT is not set
BR2_HOST_FAKEROOT=y
# BR2_PACKAGE_GETTEXT is not set
@ -289,7 +310,6 @@ BR2_HOST_FAKEROOT=y
# BR2_PACKAGE_M4 is not set
# BR2_PACKAGE_PKGCONFIG is not set
# BR2_READLINE is not set
# BR2_PACKAGE_XERCES is not set
#
# Other stuff
@ -297,19 +317,14 @@ BR2_HOST_FAKEROOT=y
# BR2_PACKAGE_AT is not set
# BR2_PACKAGE_BERKELEYDB is not set
# BR2_PACKAGE_BSDIFF is not set
# BR2_PACKAGE_CUPS is not set
# BR2_PACKAGE_CUSTOMIZE is not set
# BR2_PACKAGE_DASH is not set
# BR2_PACKAGE_FCONFIG is not set
BR2_PACKAGE_FILE=y
# BR2_PACKAGE_FIS is not set
# BR2_PACKAGE_KEXEC is not set
# BR2_PACKAGE_GAMIN is not set
# BR2_PACKAGE_ICU is not set
# BR2_PACKAGE_IPKG is not set
# BR2_PACKAGE_CUPS is not set
# BR2_PACKAGE_NG_SPICE_REWORK is not set
# BR2_PACKAGE_GAMIN is not set
# BR2_PACKAGE_STARTUP_NOTIFICATION is not set
# BR2_PACKAGE_CLASSPATH is not set
# BR2_PACKAGE_KEXEC is not set
BR2_PACKAGE_LIBDAEMON=y
# BR2_PACKAGE_LIBELF is not set
# BR2_PACKAGE_LIBEVENT is not set
@ -318,18 +333,15 @@ BR2_PACKAGE_LIBDAEMON=y
# BR2_PACKAGE_LIBGPG_ERROR is not set
# BR2_PACKAGE_LIBLOCKFILE is not set
# BR2_PACKAGE_LIBSYSFS is not set
# BR2_PACKAGE_LIBXML2 is not set
#
# libxslt - disabled (requires pkgconfig)
#
# BR2_PACKAGE_LOCKFILE_PROGS is not set
# BR2_PACKAGE_LSOF is not set
# BR2_PACKAGE_LTP-TESTSUITE is not set
# BR2_PACKAGE_LTRACE is not set
# BR2_PACKAGE_LTT is not set
# BR2_PACKAGE_NG_SPICE_REWORK is not set
# BR2_PACKAGE_PORTAGE is not set
# BR2_PACKAGE_SQLITE is not set
# BR2_PACKAGE_STARTUP_NOTIFICATION is not set
BR2_PACKAGE_STRACE=y
# BR2_PACKAGE_SUDO is not set
BR2_NETWORK_SUPPORT=y
@ -357,8 +369,8 @@ BR2_PACKAGE_DROPBEAR=y
# BR2_PACKAGE_ETHTOOL is not set
BR2_PACKAGE_HASERL=y
# BR2_PACKAGE_HASERL_VERSION_0_8_0 is not set
BR2_PACKAGE_HASERL_VERSION_0_9_21=y
BR2_PACKAGE_HASERL_VERSION="0.9.21"
BR2_PACKAGE_HASERL_VERSION_0_9_22=y
BR2_PACKAGE_HASERL_VERSION="0.9.22"
# BR2_PACKAGE_IRDA_UTILS is not set
# BR2_PACKAGE_IPERF is not set
# BR2_PACKAGE_IPROUTE2 is not set
@ -377,7 +389,7 @@ BR2_PACKAGE_HASERL_VERSION="0.9.21"
# BR2_PACKAGE_LINKS is not set
BR2_PACKAGE_LRZSZ=y
# BR2_PACKAGE_MDNSRESPONDER is not set
# BR2_PACKAGE_MICROCOM is not set
BR2_PACKAGE_MICROCOM=y
# BR2_PACKAGE_MROUTED is not set
# BR2_PACKAGE_MUTT is not set
BR2_PACKAGE_NBD=y
@ -432,6 +444,7 @@ BR2_PACKAGE_RSYNC=y
# BR2_PACKAGE_TFTPD is not set
# BR2_PACKAGE_TN5250 is not set
# BR2_PACKAGE_TTCP is not set
# BR2_PACKAGE_UDPCAST is not set
#
# vpnc - disabled (requires libgcrypt and libgpg_error)
@ -446,6 +459,8 @@ BR2_BLOCKDEV_SUPPORT=y
# BR2_PACKAGE_DM is not set
# BR2_PACKAGE_DMRAID is not set
# BR2_PACKAGE_E2FSPROGS is not set
# BR2_PACKAGE_FCONFIG is not set
# BR2_PACKAGE_FIS is not set
# BR2_PACKAGE_LIBFUSE is not set
# BR2_PACKAGE_GADGETFS_TEST is not set
# BR2_PACKAGE_HAL is not set
@ -463,32 +478,30 @@ BR2_PACKAGE_MTD=y
BR2_PACKAGE_MTD_UTILS=y
# BR2_PACKAGE_MTD_20061007 is not set
# BR2_PACKAGE_MTD_20050122 is not set
# BR2_PACKAGE_MTD_SNAPSHOT is not set
# BR2_PACKAGE_MTD_UTILS_GIT is not set
#
# MTD tools selection
#
# BR2_PACKAGE_MTD_DOCFDISK is not set
# BR2_PACKAGE_MTD_DOC_LOADBIOS is not set
BR2_PACKAGE_MTD_FLASHCP=y
BR2_PACKAGE_MTD_FLASH_ERASE=y
BR2_PACKAGE_MTD_FLASH_ERASEALL=y
BR2_PACKAGE_MTD_FLASH_INFO=y
# BR2_PACKAGE_MTD_FLASH_LOCK is not set
# BR2_PACKAGE_MTD_FLASH_UNLOCK is not set
BR2_PACKAGE_MTD_FLASHCP=y
# BR2_PACKAGE_MTD_ERASE is not set
# BR2_PACKAGE_MTD_JFFS2DUMP is not set
# BR2_PACKAGE_MTD_JFFS3DUMP is not set
# BR2_PACKAGE_MTD_SUMTOOL is not set
# BR2_PACKAGE_MTD_FTL_CHECK is not set
# BR2_PACKAGE_MTD_FTL_FORMAT is not set
# BR2_PACKAGE_MTD_NFTL_FORMAT is not set
# BR2_PACKAGE_MTD_NFTLDUMP is not set
# BR2_PACKAGE_MTD_JFFS2DUMP is not set
# BR2_PACKAGE_MTD_MKFSJFFS2 is not set
# BR2_PACKAGE_MTD_MKFSJFFS is not set
BR2_PACKAGE_MTD_MTD_DEBUG=y
# BR2_PACKAGE_MTD_NANDDUMP is not set
# BR2_PACKAGE_MTD_NANDWRITE is not set
BR2_PACKAGE_MTD_MTD_DEBUG=y
# BR2_PACKAGE_MTD_DOCFDISK is not set
# BR2_PACKAGE_MTD_DOC_LOADBIOS is not set
# BR2_PACKAGE_MTD_NFTL_FORMAT is not set
# BR2_PACKAGE_MTD_NFTLDUMP is not set
# BR2_PACKAGE_MTD_SUMTOOL is not set
# BR2_PACKAGE_NTFS-3G is not set
# BR2_PACKAGE_PCIUTILS is not set
# BR2_PACKAGE_PCMCIA is not set
@ -562,6 +575,7 @@ BR2_PACKAGE_JPEG=y
BR2_PACKAGE_LIBPNG=y
BR2_PACKAGE_LIBUNGIF=y
# BR2_PACKAGE_SDL is not set
# BR2_PACKAGE_SDL_MIXER is not set
# BR2_PACKAGE_SDL_TTF is not set
# BR2_PACKAGE_TIFF is not set
@ -587,12 +601,19 @@ BR2_PACKAGE_QTOPIA4_LICENSE_TYPE_GPL=y
# BR2_PACKAGE_QTOPIA4_LICENSE_TYPE_COMMERCIAL is not set
BR2_PACKAGE_QTOPIA4_GPL_LICENSE_APPROVED=y
# BR2_PACKAGE_QTOPIA4_QT3SUPPORT is not set
BR2_PACKAGE_QTOPIA4_DEPTHS="-depths 24,16,8"
BR2_PACKAGE_QTOPIA4_GIF=y
BR2_PACKAGE_QTOPIA4_LIBMNG=y
BR2_PACKAGE_QTOPIA4_NOJPEG=y
# BR2_PACKAGE_QTOPIA4_SYSTEMJPEG is not set
# BR2_PACKAGE_QTOPIA4_QTJPEG is not set
BR2_PACKAGE_QTOPIA4_NOPNG=y
# BR2_PACKAGE_QTOPIA4_SYSTEMPNG is not set
# BR2_PACKAGE_QTOPIA4_QTPNG is not set
BR2_PACKAGE_QTOPIA4_NOTIFF=y
# BR2_PACKAGE_QTOPIA4_SYSTEMTIFF is not set
# BR2_PACKAGE_QTOPIA4_QTTIFF is not set
# BR2_PACKAGE_QTOPIA4_SQL is not set
# BR2_PACKAGE_QTOPIA4_OPENSSL is not set
# BR2_PACKAGE_QTOPIA4_NOZLIB is not set
BR2_PACKAGE_QTOPIA4_QTZLIB=y
# BR2_PACKAGE_QTOPIA4_SYSTEMZLIB is not set
@ -619,10 +640,11 @@ BR2_X11_PREFIX="/usr"
#
# fltk - disabled (requires Xorg(7))
#
# BR2_PACKAGE_OPENMOTIF is not set
# BR2_PACKAGE_FONTCONFIG is not set
# BR2_PACKAGE_FREETYPE is not set
# BR2_PACKAGE_TSLIB is not set
# BR2_PACKAGE_OPENMOTIF is not set
# BR2_PACKAGE_WEBKIT is not set
#
# X Window managers
@ -636,25 +658,25 @@ BR2_X11_PREFIX="/usr"
#
# X applications
#
# BR2_PACKAGE_ALSAMIXERGUI is not set
#
# dillo - disabled (requires jpeg,libglib12,libgtk12,zlib,libpng and Xorg(7))
#
# BR2_PACKAGE_DOCKER is not set
# BR2_PACKAGE_GQVIEW is not set
# BR2_PACKAGE_LEAFPAD is not set
#
# midori - disabled (requires Xorg(7))
#
# BR2_PACKAGE_WEBKIT is not set
#
# synergy - disabled (requires Xorg(7))
#
# BR2_PACKAGE_GQVIEW is not set
# BR2_PACKAGE_LEAFPAD is not set
# BR2_PACKAGE_TORSMO is not set
# BR2_PACKAGE_PCMANFM is not set
# BR2_PACKAGE_XSTROKE is not set
# BR2_PACKAGE_SYLPHEED is not set
# BR2_PACKAGE_TORSMO is not set
# BR2_PACKAGE_X11VNC is not set
# BR2_PACKAGE_XPDF is not set
# BR2_PACKAGE_XSTROKE is not set
# BR2_PACKAGE_XVKBD is not set
#
# Video libraries/codecs and applications
@ -667,12 +689,18 @@ BR2_PACKAGE_LZO=y
BR2_PACKAGE_ZLIB=y
# BR2_PACKAGE_ZLIB_TARGET_HEADERS is not set
# BR2_SCRIPTING_SUPPORT is not set
# BR2_GAMES is not set
BR2_XML_SUPPORT=y
# BR2_PACKAGE_EXPAT is not set
# BR2_PACKAGE_EZXML is not set
# BR2_PACKAGE_LIBXML2 is not set
#
# Editors
# libxslt - disabled (requires pkgconfig)
#
# BR2_PACKAGE_VIM is not set
# BR2_PACKAGE_XERCES is not set
BR2_JAVA_SUPPORT=y
# BR2_PACKAGE_CLASSPATH is not set
# BR2_GAMES is not set
#
# Target filesystem options
@ -693,7 +721,7 @@ BR2_TARGET_ROOTFS_EXT2_OUTPUT="$(IMAGE).ext2"
# BR2_TARGET_ROOTFS_EXT2_GZIP is not set
BR2_TARGET_ROOTFS_EXT2_BZIP2=y
# BR2_TARGET_ROOTFS_EXT2_LZMA is not set
BR2_TARGET_ROOTFS_EXT2_COPYTO=""
BR2_TARGET_ROOTFS_EXT2_COPYTO="/tftpboot"
# BR2_TARGET_ROOTFS_JFFS2 is not set
# BR2_TARGET_ROOTFS_SQUASHFS is not set
BR2_TARGET_ROOTFS_TAR=y
@ -709,15 +737,16 @@ BR2_TARGET_ROOTFS_TAR_COPYTO=""
#
# bootloader for target device
#
BR2_TARGET_U_BOOT=y
BR2_TARGET_U_BOOT_CONFIG_HEADER_FILE=""
BR2_TARGET_U_BOOT_CONFIG_BOARD="$(BR2_BOARD_NAME)_config"
BR2_TARGET_U_BOOT_SERVERIP=""
BR2_TARGET_U_BOOT_IPADDR=""
BR2_TARGET_U_BOOT_ETH0ADDR=""
BR2_TARGET_U_BOOT_ETH1ADDR=""
BR2_TARGET_U_BOOT_BOOTARGS="console=ttyS0 root=/dev/mmcblk0p1 rootwait=1 fbmem=600k"
BR2_TARGET_U_BOOT_BOOTCMD="mmcinit; ext2load mmc 0:1 0x90300000 /boot/uImage; bootm"
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BOARDNAME="$(BOARD_NAME)"
BR2_TARGET_UBOOT_CUSTOM_PATCH=""
BR2_TARGET_UBOOT_SERVERIP="10.175.196.221"
BR2_TARGET_UBOOT_IPADDR="10.175.196.18"
BR2_TARGET_UBOOT_GATEWAY="10.175.196.1"
BR2_TARGET_UBOOT_NETMASK="255.255.255.0"
BR2_TARGET_UBOOT_ETHADDR="04:25:fe:ed:00:18"
BR2_TARGET_UBOOT_ETH1ADDR=""
# BR2_TARGET_UBOOT_SILENT is not set
#
# Kernel
@ -727,13 +756,16 @@ BR2_KERNEL_LINUX_ADVANCED=y
# BR2_KERNEL_LINUX is not set
# BR2_KERNEL_HURD is not set
BR2_PACKAGE_LINUX=y
BR2_PACKAGE_LINUX_KCONFIG="$(BR2_BOARD_PATH)/$(BR2_BOARD_NAME)-linux-2.6.22.5.config"
BR2_PACKAGE_LINUX_KCONFIG="$(BR2_BOARD_PATH)/$(BR2_BOARD_NAME)-linux-2.6.24.config"
BR2_PACKAGE_LINUX_FORMAT="uImage"
BR2_KERNEL_CURRENT_VERSION="2.6.24"
BR2_KERNEL_PATCH_LEVEL="$(BR2_KERNEL_MINORLEVEL)"
BR2_KERNEL_CURRENT_VERSION="2.6.24.4"
BR2_KERNEL_NEXT_VERSION="2.6.25"
BR2_KERNEL_THIS_VERSION="2.6.24"
BR2_KERNEL_SITE="http://ftp.kernel.org/pub/linux/kernel/v2.6/"
BR2_MM_PATCH_SITE="http://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6"
BR2_RC_MM_PATCH_DIR="$(BR2_KERNEL_NEXT_VERSION)-rc$(BR2_KERNEL_RC_LEVEL)/2.6.$(BR2_KERNEL_NEXT_VERSION)-rc$(BR2_KERNEL_RC_LEVEL)-mm$(BR2_KERNEL_MM_LEVEL)"
BR2_KERNEL_PATCH_SITE="http://ftp.kernel.org/pub/linux/kernel/v2.6/"
# BR2_LINUX_2_6_STABLE is not set
BR2_LINUX_2_6_24=y
# BR2_LINUX_2_6_23 is not set
@ -744,27 +776,44 @@ BR2_LINUX_2_6_24=y
# BR2_LINUX_2_6_21_5 is not set
# BR2_LINUX_2_6_21 is not set
# BR2_LINUX_2_6_20 is not set
# BR2_LINUX_2_6_25 is not set
# BR2_LINUX26_CUSTOM is not set
#
# Patches
#
BR2_KERNEL_ADD_NO_PATCH=y
BR2_KERNEL_ADD_KERNEL_ORG_PATCH=y
# BR2_KERNEL_ADD_LATEST is not set
# BR2_KERNEL_ADD_LATEST_MINORPATCH is not set
# BR2_KERNEL_ADD_MINORPATCH is not set
BR2_KERNEL_ADD_MINORPATCH=y
# BR2_KERNEL_ADD_LATEST_RC_PATCH is not set
# BR2_KERNEL_ADD_RC_PATCH is not set
# BR2_KERNEL_ADD_LATEST_SNAPSHOT is not set
# BR2_KERNEL_ADD_SNAPSHOT is not set
# BR2_KERNEL_ADD_LATEST_MM_PATCH is not set
# BR2_KERNEL_ADD_MM_PATCH is not set
# BR2_KERNEL_ADD_PATCH is not set
BR2_KERNEL_ADD_PATCH=y
BR2_KERNEL_MINORLEVEL="3"
BR2_KERNEL_ARCH_PATCH_ENABLED=y
BR2_KERNEL_ARCH_PATCH_VERSION="2.6.24"
BR2_KERNEL_ARCH_PATCH_DIR="target/device/Atmel/arch-avr32/kernel-patches-$(BR2_KERNEL_ARCH_PATCH_VERSION)"
BR2_ARCH_AVR32_2_6_24=y
# BR2_ARCH_AVR32_2_6_23 is not set
# BR2_ARCH_AVR32_2_6_22_10 is not set
# BR2_ARCH_AVR32_2_6_22_1 is not set
# BR2_ARCH_AVR32_2_6_21_5 is not set
# BR2_ARCH_AVR32_2_6_20_4 is not set
# BR2_LINUX_AVR32_ISI_PATCH is not set
# BR2_LINUX_AVR32_AC97_PATCH is not set
# BR2_LINUX_AVR32_PSIF_PATCH is not set
BR2_LINUX_BOARD_PATCH=y
BR2_LINUX_BSP_PATCH=""
BR2_KERNEL_PATCH="patch-$(BR2_DOWNLOAD_LINUX26_VERSION).$(BR2_KERNEL_PATCH_LEVEL).bz2"
# BR2_KERNEL_PREPATCHED is not set
BR2_KERNEL_BASE=y
# BR2_KERNEL_LATEST is not set
BR2_DOWNLOAD_LINUX26_VERSION="$(BR2_KERNEL_THIS_VERSION)"
BR2_LINUX26_VERSION="$(BR2_KERNEL_THIS_VERSION)"
BR2_LINUX26_VERSION="$(BR2_KERNEL_THIS_VERSION).$(BR2_KERNEL_PATCH_LEVEL)"
#
# Linux Kernel Configuration

View file

@ -1,255 +0,0 @@
diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
index eeac479..7913cd8 100644
--- a/drivers/mmc/host/atmel-mci.c
+++ b/drivers/mmc/host/atmel-mci.c
@@ -39,7 +39,6 @@ enum {
EVENT_STOP_COMPLETE,
EVENT_DMA_COMPLETE,
EVENT_DMA_ERROR,
- EVENT_CARD_DETECT,
};
struct atmel_mci_dma {
@@ -70,6 +69,9 @@ struct atmel_mci {
int detect_pin;
int wp_pin;
+ /* For detect pin debouncing */
+ struct timer_list detect_timer;
+
unsigned long bus_hz;
unsigned long mapbase;
struct clk *mck;
@@ -108,8 +110,6 @@ MODULE_PARM_DESC(fmax, "Max frequency in Hz of the MMC bus clock");
test_bit(EVENT_DMA_COMPLETE, &host->completed_events)
#define mci_dma_error_is_complete(host) \
test_bit(EVENT_DMA_ERROR, &host->completed_events)
-#define mci_card_detect_is_complete(host) \
- test_bit(EVENT_CARD_DETECT, &host->completed_events)
/* Test and clear bit macros for pending events */
#define mci_clear_cmd_is_pending(host) \
@@ -124,8 +124,6 @@ MODULE_PARM_DESC(fmax, "Max frequency in Hz of the MMC bus clock");
test_and_clear_bit(EVENT_STOP_COMPLETE, &host->pending_events)
#define mci_clear_dma_error_is_pending(host) \
test_and_clear_bit(EVENT_DMA_ERROR, &host->pending_events)
-#define mci_clear_card_detect_is_pending(host) \
- test_and_clear_bit(EVENT_CARD_DETECT, &host->pending_events)
/* Test and set bit macros for completed events */
#define mci_set_cmd_is_completed(host) \
@@ -140,8 +138,6 @@ MODULE_PARM_DESC(fmax, "Max frequency in Hz of the MMC bus clock");
test_and_set_bit(EVENT_STOP_COMPLETE, &host->completed_events)
#define mci_set_dma_error_is_completed(host) \
test_and_set_bit(EVENT_DMA_ERROR, &host->completed_events)
-#define mci_set_card_detect_is_completed(host) \
- test_and_set_bit(EVENT_CARD_DETECT, &host->completed_events)
/* Set bit macros for completed events */
#define mci_set_cmd_complete(host) \
@@ -158,8 +154,6 @@ MODULE_PARM_DESC(fmax, "Max frequency in Hz of the MMC bus clock");
set_bit(EVENT_DMA_COMPLETE, &host->completed_events)
#define mci_set_dma_error_complete(host) \
set_bit(EVENT_DMA_ERROR, &host->completed_events)
-#define mci_set_card_detect_complete(host) \
- set_bit(EVENT_CARD_DETECT, &host->completed_events)
/* Set bit macros for pending events */
#define mci_set_cmd_pending(host) \
@@ -174,8 +168,6 @@ MODULE_PARM_DESC(fmax, "Max frequency in Hz of the MMC bus clock");
set_bit(EVENT_STOP_COMPLETE, &host->pending_events)
#define mci_set_dma_error_pending(host) \
set_bit(EVENT_DMA_ERROR, &host->pending_events)
-#define mci_set_card_detect_pending(host) \
- set_bit(EVENT_CARD_DETECT, &host->pending_events)
/* Clear bit macros for pending events */
#define mci_clear_cmd_pending(host) \
@@ -190,8 +182,6 @@ MODULE_PARM_DESC(fmax, "Max frequency in Hz of the MMC bus clock");
clear_bit(EVENT_STOP_COMPLETE, &host->pending_events)
#define mci_clear_dma_error_pending(host) \
clear_bit(EVENT_DMA_ERROR, &host->pending_events)
-#define mci_clear_card_detect_pending(host) \
- clear_bit(EVENT_CARD_DETECT, &host->pending_events)
#ifdef CONFIG_DEBUG_FS
@@ -560,6 +550,21 @@ static void atmci_request(struct mmc_host *mmc, struct mmc_request *mrq)
mci_readl(host, IMR));
WARN_ON(host->mrq != NULL);
+
+ /*
+ * We may "know" the card is gone even though there's still an
+ * electrical connection. If so, we really need to communicate
+ * this to the MMC core since there won't be any more
+ * interrupts as the card is completely removed. Otherwise,
+ * the MMC core might believe the card is still there even
+ * though the card was just removed very slowly.
+ */
+ if (!host->present) {
+ mrq->cmd->error = -ENOMEDIUM;
+ mmc_request_done(mmc, mrq);
+ return;
+ }
+
host->mrq = mrq;
host->pending_events = 0;
host->completed_events = 0;
@@ -729,6 +734,61 @@ static void atmci_command_complete(struct atmel_mci *host,
}
}
+static void atmci_detect_change(unsigned long data)
+{
+ struct atmel_mci *host = (struct atmel_mci *)data;
+ struct mmc_request *mrq = host->mrq;
+ int present;
+
+ /*
+ * atmci_remove() sets detect_pin to -1 before freeing the
+ * interrupt. We must not re-enable the interrupt if it has
+ * been freed.
+ */
+ smp_rmb();
+ if (host->detect_pin < 0)
+ return;
+
+ enable_irq(gpio_to_irq(host->detect_pin));
+ present = !gpio_get_value(host->detect_pin);
+
+ dev_vdbg(&host->pdev->dev, "detect change: %d (was %d)\n",
+ present, host->present);
+
+ if (present != host->present) {
+ dev_dbg(&host->mmc->class_dev, "card %s\n",
+ present ? "inserted" : "removed");
+ host->present = present;
+
+ /* Reset controller if card is gone */
+ if (!present) {
+ mci_writel(host, CR, MCI_BIT(SWRST));
+ mci_writel(host, IDR, ~0UL);
+ mci_writel(host, CR, MCI_BIT(MCIEN));
+ }
+
+ /* Clean up queue if present */
+ if (mrq) {
+ if (!mci_cmd_is_complete(host))
+ mrq->cmd->error = -ENOMEDIUM;
+ if (mrq->data && !mci_data_is_complete(host)
+ && !mci_data_error_is_complete(host)) {
+ dma_stop_request(host->dma.req.req.dmac,
+ host->dma.req.req.channel);
+ host->data->error = -ENOMEDIUM;
+ atmci_data_complete(host, host->data);
+ }
+ if (mrq->stop && !mci_stop_is_complete(host))
+ mrq->stop->error = -ENOMEDIUM;
+
+ host->cmd = NULL;
+ atmci_request_end(host->mmc, mrq);
+ }
+
+ mmc_detect_change(host->mmc, 0);
+ }
+}
+
static void atmci_tasklet_func(unsigned long priv)
{
struct mmc_host *mmc = (struct mmc_host *)priv;
@@ -806,33 +866,6 @@ static void atmci_tasklet_func(unsigned long priv)
data->bytes_xfered = data->blocks * data->blksz;
atmci_data_complete(host, data);
}
- if (mci_clear_card_detect_is_pending(host)) {
- /* Reset controller if card is gone */
- if (!host->present) {
- mci_writel(host, CR, MCI_BIT(SWRST));
- mci_writel(host, IDR, ~0UL);
- mci_writel(host, CR, MCI_BIT(MCIEN));
- }
-
- /* Clean up queue if present */
- if (mrq) {
- if (!mci_cmd_is_complete(host))
- mrq->cmd->error = -ETIMEDOUT;
- if (mrq->data && !mci_data_is_complete(host)
- && !mci_data_error_is_complete(host)) {
- dma_stop_request(host->dma.req.req.dmac,
- host->dma.req.req.channel);
- host->data->error = -ETIMEDOUT;
- atmci_data_complete(host, data);
- }
- if (mrq->stop && !mci_stop_is_complete(host))
- mrq->stop->error = -ETIMEDOUT;
-
- host->cmd = NULL;
- atmci_request_end(mmc, mrq);
- }
- mmc_detect_change(host->mmc, msecs_to_jiffies(100));
- }
}
static void atmci_cmd_interrupt(struct mmc_host *mmc, u32 status)
@@ -957,20 +990,19 @@ static irqreturn_t atmci_interrupt(int irq, void *dev_id)
return IRQ_HANDLED;
}
-static irqreturn_t atmci_detect_change(int irq, void *dev_id)
+static irqreturn_t atmci_detect_interrupt(int irq, void *dev_id)
{
struct mmc_host *mmc = dev_id;
struct atmel_mci *host = mmc_priv(mmc);
- int present = !gpio_get_value(irq_to_gpio(irq));
+ /*
+ * Disable interrupts until the pin has stabilized and check
+ * the state then. Use mod_timer() since we may be in the
+ * middle of the timer routine when this interrupt triggers.
+ */
+ disable_irq_nosync(irq);
+ mod_timer(&host->detect_timer, jiffies + msecs_to_jiffies(20));
- if (present != host->present) {
- dev_dbg(&mmc->class_dev, "card %s\n",
- present ? "inserted" : "removed");
- host->present = present;
- mci_set_card_detect_pending(host);
- tasklet_schedule(&host->tasklet);
- }
return IRQ_HANDLED;
}
@@ -1079,8 +1111,11 @@ static int __devinit atmci_probe(struct platform_device *pdev)
mmc_add_host(mmc);
if (host->detect_pin >= 0) {
+ setup_timer(&host->detect_timer, atmci_detect_change,
+ (unsigned long)host);
+
ret = request_irq(gpio_to_irq(host->detect_pin),
- atmci_detect_change,
+ atmci_detect_interrupt,
IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
DRIVER_NAME, mmc);
if (ret) {
@@ -1125,9 +1160,16 @@ static int __devexit atmci_remove(struct platform_device *pdev)
atmci_cleanup_debugfs(host);
if (host->detect_pin >= 0) {
- free_irq(gpio_to_irq(host->detect_pin), host->mmc);
+ int pin = host->detect_pin;
+
+ /* Make sure our timer doesn't enable the interrupt */
+ host->detect_pin = -1;
+ smp_wmb();
+
+ free_irq(gpio_to_irq(pin), host->mmc);
+ del_timer_sync(&host->detect_timer);
cancel_delayed_work(&host->mmc->detect);
- gpio_free(host->detect_pin);
+ gpio_free(pin);
}
mmc_remove_host(host->mmc);

View file

@ -0,0 +1,14 @@
menuconfig BR2_KERNEL_ARCH_PATCH_ENABLED
bool "Add ARCH specific patch"
depends on BR2_PACKAGE_LINUX
depends on !BR2_KERNEL_PREPATCHED
default y if BR2_avr32
default y if BR2_TARGET_ATMEL && BR2_arm
default n
if BR2_KERNEL_ARCH_PATCH_ENABLED
source "target/device/Atmel/Config.in.linux.patches"
endif

View file

@ -0,0 +1 @@
include target/device/Atmel/Makefile.in.linux

View file

@ -32,7 +32,7 @@ if BR2_KERNEL_LINUX_ADVANCED
# --- These 'constants' requires regular maintenance, so put them first
config BR2_KERNEL_PATCH_LEVEL
string
default "3" if BR2_LINUX_2_6_24 && BR2_KERNEL_ADD_LATEST_MINORPATCH
default "4" if BR2_LINUX_2_6_24 && BR2_KERNEL_ADD_LATEST_MINORPATCH
default "17" if BR2_LINUX_2_6_23 && BR2_KERNEL_ADD_LATEST_MINORPATCH
default "19" if BR2_LINUX_2_6_22 && BR2_KERNEL_ADD_LATEST_MINORPATCH
default "7" if BR2_LINUX_2_6_21 && BR2_KERNEL_ADD_LATEST_MINORPATCH
@ -41,7 +41,7 @@ config BR2_KERNEL_PATCH_LEVEL
config BR2_KERNEL_CURRENT_VERSION
string
default "2.6.24.3"
default "2.6.24.4"
config BR2_KERNEL_NEXT_VERSION
string
@ -63,16 +63,16 @@ config BR2_KERNEL_THIS_VERSION
config LINUX26_LATEST_RC_VERSION
string
default "2.6.25" if BR2_KERNEL_ADD_LATEST_RC_PATCH
default "2.6.25-rc7" if BR2_KERNEL_ADD_LATEST_RC_PATCH
config LINUX26_LATEST_GIT_VERSION
string
default "2.6.25-rc7-git5" if BR2_KERNEL_ADD_LATEST_SNAPSHOT
config LINUX26_LATEST_MM_VERSION
string
default "2.6.25-rc5-mm1" if BR2_KERNEL_ADD_LATEST_MM_PATCH
config LINUX26_LATEST_GIT_VERSION
string
default "2.6.25-rc6-git3" if BR2_KERNEL_ADD_LATEST_SNAPSHOT
config BR2_KERNEL_SITE
string
default "http://ftp.kernel.org/pub/linux/kernel/v2.6/"
@ -129,9 +129,9 @@ choice
Select the specific Linux version you want to use
config BR2_LINUX_2_6_STABLE
bool "The latest stable Linux kernel (2.6.24.3)"
bool "The latest stable Linux kernel (2.6.24.4)"
help
Linux 2.6.24.3
Linux 2.6.24.4
config BR2_LINUX_2_6_24
bool "Linux 2.6.24"
@ -233,47 +233,66 @@ endif
menu "Patches"
depends on BR2_PACKAGE_LINUX
config BR2_KERNEL_ADD_KERNEL_ORG_PATCH
bool "Add kernel.org patch"
depends on BR2_KERNEL_BASE
help
Add pre, snapshot or -mm patches
from http://www.kernel.org/
config BR2_KERNEL_ADD_LATEST
bool "Use only the latest patch version"
default y
depends on BR2_KERNEL_ADD_KERNEL_ORG_PATCH
help
Restrict the choices to the latest versions
choice
prompt "Add a patch to the Linux Kernel"
prompt "Add a kernel.org patch to the Linux Kernel"
depends on BR2_PACKAGE_LINUX
depends on !BR2_KERNEL_PREPATCHED
default BR2_KERNEL_ADD_NO_PATCH
depends on BR2_KERNEL_ADD_KERNEL_ORG_PATCH
help
Select a patch to add to the Linux kernel
config BR2_KERNEL_ADD_NO_PATCH
bool "Do not add a patch"
config BR2_KERNEL_ADD_LATEST_MINORPATCH
bool "Add _latest_ '.#' minor patch"
depends on BR2_KERNEL_ADD_LATEST
select BR2_KERNEL_ADD_PATCH
config BR2_KERNEL_ADD_MINORPATCH
bool "Add a '.#' minor patch"
depends on !BR2_KERNEL_ADD_LATEST
select BR2_KERNEL_ADD_PATCH
config BR2_KERNEL_ADD_LATEST_RC_PATCH
bool "Add _latest_ '-rc#' patch"
depends on BR2_KERNEL_ADD_LATEST
select BR2_KERNEL_ADD_PATCH
config BR2_KERNEL_ADD_RC_PATCH
bool "Add an '-rc#' patch"
depends on !BR2_KERNEL_ADD_LATEST
select BR2_KERNEL_ADD_PATCH
config BR2_KERNEL_ADD_LATEST_SNAPSHOT
bool "Add _latest_ 'snapshot' patch"
depends on BR2_KERNEL_ADD_LATEST
select BR2_KERNEL_ADD_PATCH
config BR2_KERNEL_ADD_SNAPSHOT
bool "Add a 'snapshot' patch (linux-2.6.X-rc#-git#)"
depends on !BR2_KERNEL_ADD_LATEST
select BR2_KERNEL_ADD_PATCH
config BR2_KERNEL_ADD_LATEST_MM_PATCH
bool "Add latest '-mm' patch for the stable linux kernel"
bool "Add _latest_ '-mm' patch for the stable linux kernel"
depends on BR2_KERNEL_ADD_LATEST
select BR2_KERNEL_ADD_PATCH
config BR2_KERNEL_ADD_MM_PATCH
bool "Add an '-mm#' patch for the stable linux kernel"
depends on !BR2_KERNEL_ADD_LATEST
select BR2_KERNEL_ADD_PATCH
endchoice
@ -282,7 +301,6 @@ config BR2_KERNEL_ADD_PATCH
bool
default n
config BR2_KERNEL_MINORLEVEL
string "patch level"
default ""
@ -303,6 +321,12 @@ config BR2_KERNEL_MM_LEVEL
default ""
depends on BR2_KERNEL_ADD_MM_PATCH
source "target/device/Config.in.linux.patches"
config BR2_LINUX_BOARD_PATCH
bool "Add board specific patch"
default y
config BR2_LINUX_BSP_PATCH
string "Additional patch to apply (from \$(DL_DIR))"
default ""

View file

@ -77,6 +77,13 @@ ifeq ($(strip $(LINUX26_PATCH_DIR)),)
LINUX26_PATCH_DIR:=$(BOARD_PATH)/kernel-patches/
endif
# kernel architecture patches provided by buildroot
KERNEL_ARCH_PATCH_DIR:=$(strip $(subst ",,$(BR2_KERNEL_ARCH_PATCH_DIR)))
#"))
# -----------------------------------------------------------------------------
# Linux kernel configuration file
# This is used if BR2_PACKAGE_LINUX_USE_KCONFIG is set
@ -267,6 +274,18 @@ ifeq ($(BR2_PACKAGE_OPENSWAN),y)
toolchain/patch-kernel.sh $(LINUX26_DIR) package/openswan \
linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2}
endif
touch $@
$(LINUX26_DIR)/.patched.arch: $(LINUX26_DIR)/.patched
ifneq ($(BR2_KERNEL_ARCH_PATCH_DIR),)
if [ -d $(KERNEL_ARCH_PATCH_DIR) ] ; then \
toolchain/patch-kernel.sh $(LINUX26_DIR) $(KERNEL_ARCH_PATCH_DIR) \
linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2} ; \
fi
endif
touch $@
$(LINUX26_DIR)/.patched.board: $(LINUX26_DIR)/.patched.arch $(KERNEL_COND_PATCHES)
ifneq ($(LINUX26_PATCH_DIR),)
if [ -d $(LINUX26_PATCH_DIR) ] ; then \
toolchain/patch-kernel.sh $(LINUX26_DIR) $(LINUX26_PATCH_DIR) \
@ -274,9 +293,11 @@ ifneq ($(LINUX26_PATCH_DIR),)
fi
endif
touch $@
# =============================================================================
$(LINUX26_DIR)/.config: $(LINUX26_DIR)/.patched
# =============================================================================
linux_patch: $(LINUX26_DIR)/.patched.board
$(LINUX26_DIR)/.config: $(LINUX26_DIR)/.patched.board
ifeq ($(BR2_PACKAGE_LINUX_USE_DEFCONFIG),y)
$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) $(BOARD_NAME)_defconfig
endif
@ -454,6 +475,7 @@ linux-status:
@echo BR2_KERNEL_SITE=$(BR2_KERNEL_SITE)
@echo BR2_KERNEL_PATCH_SITE=$(BR2_KERNEL_PATCH_SITE)
@echo BR2_KERNEL_PATCH=$(BR2_KERNEL_PATCH)
@echo KERNEL_COND_PATCHES=$(KERNEL_COND_PATCHES)
@echo BR2_LINUX26_CUSTOM=$(BR2_LINUX26_CUSTOM)
@echo BR2_CUSTOM_LINUX26_PATCH_SITE=$(BR2_CUSTOM_LINUX26_PATCH_SITE)
@echo BR2_CUSTOM_LINUX26_PATCH=$(BR2_CUSTOM_LINUX26_PATCH)