#
# Automatically generated make config: don't edit
# Sun Feb  1 16:26:09 2009
#
BR2_HAVE_DOT_CONFIG=y
BR2_VERSION="2009.02-svn"
# BR2_alpha is not set
BR2_arm=y
# BR2_armeb is not set
# BR2_avr32 is not set
# BR2_cris is not set
# BR2_ia64 is not set
# BR2_i386 is not set
# BR2_m68k is not set
# BR2_mips is not set
# BR2_mipsel is not set
# BR2_nios2 is not set
# BR2_powerpc is not set
# BR2_sh is not set
# BR2_sh64 is not set
# BR2_sparc is not set
# BR2_sparc64 is not set
# BR2_x86_64 is not set
BR2_generic_arm=y
# BR2_arm7tdmi is not set
# BR2_arm610 is not set
# BR2_arm710 is not set
# BR2_arm720t is not set
# BR2_arm920t is not set
# BR2_arm922t is not set
# BR2_arm926t is not set
# BR2_arm10t is not set
# BR2_arm1136jf_s is not set
# BR2_arm1176jz_s is not set
# BR2_arm1176jzf_s is not set
# BR2_sa110 is not set
# BR2_sa1100 is not set
# BR2_xscale is not set
# BR2_iwmmxt is not set
BR2_ARM_TYPE="GENERIC_ARM"
BR2_ARM_OABI=y
# BR2_ARM_EABI is not set
BR2_ARCH="arm"
BR2_ENDIAN="LITTLE"
BR2_GCC_TARGET_ABI="apcs-gnu"

#
# Target options
#

#
# Project Options
#
BR2_PROJECT="at91sam9g20dfc"
BR2_HOSTNAME="at91sam9g20dfc"
BR2_BANNER="Welcome to the Erik's uClibc development environment running on the AT91SAM9G20EK"

#
# Preset Devices
#
# BR2_TARGET_ARMLTD is not set
BR2_BOARD_NAME="at91sam9g20dfc"
BR2_BOARD_PATH="target/device/Atmel/$(BR2_BOARD_NAME)"
BR2_TARGET_ATMEL=y

#
# Atmel AT91 Specific Device Support
#
BR2_TARGET_AT91=y

#
# Selection criteria
#
BR2_TARGET_ATMEL_ALL=y

#
# Device Selection
#
# BR2_TARGET_AT91RM9200 is not set
# BR2_TARGET_AT91SAM9260 is not set
BR2_TARGET_AT91SAM9G20=y
# BR2_TARGET_AT91SAM9261 is not set
# BR2_TARGET_AT91SAM9261S is not set
# BR2_TARGET_AT91SAM9RL64 is not set
# BR2_TARGET_AT91SAM9263 is not set
# BR2_TARGET_AT91SAM9G40 is not set
# BR2_TARGET_AT91SAM9M10 is not set
# BR2_TARGET_AT91SAM9M11 is not set
# BR2_TARGET_AT91SAM9XE is not set
# BR2_TARGET_AT572D940HF is not set
# BR2_TARGET_AT91CAP9 is not set

#
# Development Board Selection
#
# BR2_TARGET_AT91RM9200DF is not set
# BR2_TARGET_AT91RM9200EK is not set
# BR2_TARGET_AT91RM9200DK is not set
# BR2_TARGET_AT91SAM9260DFC is not set
# BR2_TARGET_AT91SAM9260EK is not set
BR2_TARGET_AT91SAM9G20DFC=y
# BR2_TARGET_AT91SAM9G20EK is not set
# BR2_TARGET_AT91SAM9XEEK is not set
# BR2_TARGET_AT91SAM9261EK is not set
# BR2_TARGET_AT91SAM9RL64EK is not set
# BR2_TARGET_AT91SAM9263EK is not set
# BR2_TARGET_AT572D940DCM is not set
# BR2_TARGET_AT91CAP9DK is not set
# BR2_TARGET_AT91CAP9ADK is not set
# BR2_TARGET_AT91_ADVANCED_INFO is not set

#
# Package support
#

#
# Secondary locations
#
BR2_AT91_LINUXPATCH_SITE="http://maxim.org.za/AT91RM9200/2.6"
BR2_TARGET_AT91BOOTSTRAP=y
BR2_TARGET_AT91BOOTSTRAP_BOARD="at91sam9g20ek"
# BR2_TARGET_AT91BOOT_DATAFLASH is not set
BR2_TARGET_AT91BOOT_DATAFLASHCARD=y
# BR2_TARGET_AT91BOOT_NANDFLASH is not set
# BR2_TARGET_AT91BOOT_FLASH is not set
# BR2_TARGET_AT91BOOT_SDCARD is not set
# BR2_TARGET_AT91BOOT_EEPROM is not set
BR2_TARGET_AT91BOOTSTRAP_MEMORY="dataflashcard"
BR2_AT91BOOTSTRAP_IMG_SIZE="0x32000"
BR2_AT91BOOTSTRAP_JUMP_TO_DEFAULT=y
# BR2_AT91BOOTSTRAP_JUMP_TO_HIGH_SDRAM is not set
# BR2_AT91BOOTSTRAP_JUMP_TO_START_OF_SDRAM is not set
BR2_AT91BOOTSTRAP_JUMP_ADDR="0x23F00000"

#
# It will be copied to $(BR2_AT91BOOTSTRAP_JUMP_ADDR)
#
# BR2_TARGET_KWIKBYTE is not set
BR2_KERNEL_ARCH_PATCH_VERSION="2.6.28"
BR2_KERNEL_ARCH_PATCH_DIR="target/device/Atmel/arch-arm/kernel-patches-$(BR2_KERNEL_ARCH_PATCH_VERSION)"

#
# Generic System Support
#
# BR2_TARGET_GENERIC_ACCESS_POINT is not set
# BR2_TARGET_GENERIC_FIREWALL is not set
# BR2_TARGET_GENERIC_DEV_SYSTEM is not set

#
# Build options
#
BR2_WGET="wget --passive-ftp -nd"
BR2_SVN_CO="svn co"
BR2_SVN_UP="svn up"
BR2_GIT="git clone"
BR2_ZCAT="gzip -d -c"
BR2_BZCAT="bzcat"
BR2_TAR_OPTIONS=""
BR2_DL_DIR="$(TOPDIR)/dl"

#
# Mirrors and Download locations
#
BR2_PRIMARY_SITE=""
BR2_BACKUP_SITE="http://sources.buildroot.net/"
BR2_SOURCEFORGE_MIRROR="easynews"
BR2_KERNEL_MIRROR="http://www.kernel.org/pub/"
BR2_GNU_MIRROR="http://ftp.gnu.org/pub/gnu"
BR2_DEBIAN_MIRROR="http://ftp.debian.org"

#
# Atmel Mirrors
#
BR2_ATMEL_MIRROR="ftp://www.at91.com/pub/buildroot"
BR2_AT91_PATCH_MIRROR="http://maxim.org.za/AT91RM9200/2.6/"
BR2_STAGING_DIR="$(BASE_DIR)/staging"
# BR2_FPU_SUFFIX is not set
BR2_TOPDIR_PREFIX=""
BR2_TOPDIR_SUFFIX=""
BR2_ROOTFS_PREFIX="at91sam92g20ek-rootfs"
BR2_JLEVEL=2
# BR2_DEPRECATED is not set
# BR2_CONFIG_CACHE is not set
# 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_DOCUMENTATION is not set
# BR2_HAVE_DEVFILES is not set

#
# Toolchain
#
BR2_TOOLCHAIN_BUILDROOT=y
# BR2_TOOLCHAIN_EXTERNAL is not set

#
# Kernel Header Options
#
# BR2_KERNEL_HEADERS_2_4_31 is not set
# BR2_KERNEL_HEADERS_2_6_20_4 is not set
# 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 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_25 is not set
# BR2_KERNEL_HEADERS_2_6_26 is not set
# BR2_KERNEL_HEADERS_2_6_27 is not set
BR2_KERNEL_HEADERS_2_6_28=y
# BR2_KERNEL_HEADERS_SNAP is not set
# BR2_KERNEL_HEADERS_PATCH_DIR is not set
BR2_DEFAULT_KERNEL_HEADERS="2.6.28.2"

#
# uClibc Options
#
# BR2_UCLIBC_VERSION_0_9_29 is not set
BR2_UCLIBC_VERSION_0_9_30=y
# BR2_UCLIBC_VERSION_SNAPSHOT is not set
BR2_UCLIBC_CONFIG="toolchain/uClibc/uClibc-0.9.30.config"
# BR2_PTHREAD_DEBUG is not set
BR2_PROGRAM_INVOCATION=y
# BR2_UCLIBC_INSTALL_TEST_SUITE is not set

#
# Binutils Options
#
# BR2_BINUTILS_VERSION_2_17 is not set
# BR2_BINUTILS_VERSION_2_17_50_0_17 is not set
# BR2_BINUTILS_VERSION_2_18 is not set
# BR2_BINUTILS_VERSION_2_18_50_0_1 is not set
# BR2_BINUTILS_VERSION_2_18_50_0_3 is not set
# BR2_BINUTILS_VERSION_2_18_50_0_6 is not set
# BR2_BINUTILS_VERSION_2_18_50_0_8 is not set
# BR2_BINUTILS_VERSION_2_18_50_0_9 is not set
BR2_BINUTILS_VERSION_2_19=y
BR2_BINUTILS_VERSION="2.19"
BR2_EXTRA_BINUTILS_CONFIG_OPTIONS=""

#
# GCC Options
#
# BR2_GCC_VERSION_3_4_6 is not set
# BR2_GCC_VERSION_4_0_4 is not set
# BR2_GCC_VERSION_4_1_2 is not set
# BR2_GCC_VERSION_4_2_1 is not set
# BR2_GCC_VERSION_4_2_2 is not set
# BR2_GCC_VERSION_4_2_3 is not set
# BR2_GCC_VERSION_4_2_4 is not set
# BR2_GCC_VERSION_4_3_1 is not set
BR2_GCC_VERSION_4_3_2=y
BR2_GCC_SUPPORTS_SYSROOT=y
BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE=y
BR2_GCC_VERSION="4.3.2"
BR2_TOOLCHAIN_SYSROOT=y
BR2_EXTRA_GCC_CONFIG_OPTIONS=""
# BR2_GCC_CROSS_FORTRAN is not set
# BR2_INSTALL_LIBGCJ is not set
# BR2_INSTALL_OBJC is not set
# BR2_INSTALL_FORTRAN is not set
BR2_GCC_SHARED_LIBGCC=y

#
# Ccache Options
#
BR2_CCACHE=y
BR2_CCACHE_DIR="$(TOOLCHAIN_DIR)/ccache-$(CCACHE_VER)/cache"

#
# Gdb Options
#
# BR2_PACKAGE_GDB is not set
# BR2_PACKAGE_GDB_SERVER is not set
# BR2_PACKAGE_GDB_HOST is not set

#
# Common Toolchain Options
#
BR2_LARGEFILE=y
BR2_INET_IPV6=y
BR2_INET_RPC=y
BR2_ENABLE_LOCALE=y
BR2_USE_WCHAR=y
# BR2_SOFT_FLOAT is not set
# BR2_PTHREADS_NONE is not set
# BR2_PTHREADS is not set
BR2_PTHREADS_OLD=y
# BR2_PTHREADS_NATIVE is not set
BR2_GCC_CROSS_CXX=y
BR2_INSTALL_LIBSTDCPP=y
BR2_TARGET_OPTIMIZATION="-Os -pipe"
# BR2_ELF2FLT is not set
# BR2_MKLIBS is not set
BR2_PACKAGE_SSTRIP_TARGET=y
BR2_PACKAGE_SSTRIP_HOST=y
# BR2_VFP_FLOAT is not set
BR2_CROSS_TOOLCHAIN_TARGET_UTILS=y

#
# Package Selection for the target
#
BR2_PACKAGE_BUSYBOX=y
# BR2_BUSYBOX_VERSION_1_2_2_1 is not set
# 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 is not set
# BR2_BUSYBOX_VERSION_1_10_X is not set
# BR2_BUSYBOX_VERSION_1_11_X is not set
# BR2_BUSYBOX_VERSION_1_12_X is not set
BR2_BUSYBOX_VERSION_1_13_X=y
# BR2_PACKAGE_BUSYBOX_SNAPSHOT is not set
BR2_BUSYBOX_VERSION="1.13.2"
BR2_PACKAGE_BUSYBOX_FULLINSTALL=y
BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-1.13.x.config"
# BR2_PACKAGE_BUSYBOX_SHOW_OTHERS is not set

#
# The minimum needed to build a uClibc development system
#
# BR2_PACKAGE_FLEX is not set
# BR2_PACKAGE_GCC_TARGET is not set
# BR2_PACKAGE_MAKE is not set

#
# Other development stuff
#
# BR2_PACKAGE_AUTOCONF is not set
# BR2_PACKAGE_AUTOMAKE is not set
# BR2_PACKAGE_BISON is not set
# BR2_PACKAGE_CCACHE_TARGET is not set
# BR2_PACKAGE_CVS is not set
# BR2_PACKAGE_DISTCC is not set
# BR2_PACKAGE_DMALLOC is not set
# BR2_PACKAGE_FAKEROOT 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_GPERF is not set
# BR2_PACKAGE_LIBMPFR is not set
# BR2_PACKAGE_LIBTOOL is not set
# BR2_PACKAGE_M4 is not set
# BR2_PACKAGE_OPROFILE is not set
BR2_PACKAGE_READLINE=y
# BR2_PACKAGE_PCRE is not set

#
# Other stuff
#
BR2_PACKAGE_AT=y
# BR2_PACKAGE_BEECRYPT 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_FILE is not set
# BR2_PACKAGE_GAMIN is not set
# BR2_PACKAGE_ICU is not set
# BR2_PACKAGE_KEXEC is not set
# BR2_PACKAGE_LIBCONFIG is not set
# BR2_PACKAGE_LIBCONFUSE is not set
BR2_PACKAGE_LIBDAEMON=y
# BR2_PACKAGE_LIBELF is not set
BR2_PACKAGE_LIBEVENT=y
# BR2_PACKAGE_LIBGCRYPT is not set
# BR2_PACKAGE_LIBGPG_ERROR is not set
# BR2_PACKAGE_LIBICONV is not set
# BR2_PACKAGE_LIBIDN is not set
BR2_PACKAGE_LIBLOCKFILE=y
# BR2_PACKAGE_LIBOIL is not set
# BR2_PACKAGE_LIBSYSFS is not set
BR2_PACKAGE_LOCKFILE_PROGS=y
# BR2_PACKAGE_LOGROTATE is not set
# BR2_PACKAGE_LSOF is not set
# BR2_PACKAGE_LTP-TESTSUITE is not set
# BR2_PACKAGE_LTRACE is not set
# BR2_PACKAGE_MEMSTAT is not set
# BR2_PACKAGE_NG_SPICE_REWORK is not set
# BR2_PACKAGE_POPT is not set
# BR2_PACKAGE_SCREEN is not set
# BR2_PACKAGE_STARTUP_NOTIFICATION is not set
# BR2_PACKAGE_STRACE is not set
# BR2_PACKAGE_SUDO is not set

#
# Database
#
# BR2_PACKAGE_MYSQL_CLIENT is not set
# BR2_PACKAGE_SQLITE is not set

#
# Networking
#

#
# Networking applications
#
# BR2_PACKAGE_ARGUS is not set
BR2_PACKAGE_AVAHI=y
BR2_PACKAGE_AVAHI_AUTOIPD=y
# BR2_PACKAGE_AVAHI_DAEMON is not set
# BR2_PACKAGE_AXEL is not set
# BR2_PACKAGE_BIND is not set
# BR2_PACKAGE_BRIDGE is not set
# BR2_PACKAGE_DNSMASQ is not set
BR2_PACKAGE_DROPBEAR=y
BR2_PACKAGE_ETHTOOL=y
BR2_PACKAGE_HASERL=y
# BR2_PACKAGE_HASERL_VERSION_0_8_X is not set
BR2_PACKAGE_HASERL_VERSION_0_9_X=y
BR2_PACKAGE_HASERL_VERSION="0.9.25"
# BR2_PACKAGE_IFPLUGD is not set
# BR2_PACKAGE_IPERF is not set
# BR2_PACKAGE_IPROUTE2 is not set

#
# ipsec-tools	- disabled (requires openssl, flex and the flex library (libfl.a) )
#
# BR2_PACKAGE_IPTABLES is not set
# BR2_PACKAGE_KISMET is not set
BR2_PACKAGE_L2TP=y
# BR2_PACKAGE_LIBCGI is not set
# BR2_PACKAGE_LIBCGICC is not set
# BR2_PACKAGE_LIBCURL is not set
# BR2_PACKAGE_LIBDNET is not set
# BR2_PACKAGE_LIBEXOSIP2 is not set
# BR2_PACKAGE_LIBOSIP2 is not set
BR2_PACKAGE_LIBPCAP=y
# BR2_PACKAGE_LIBUPNP is not set
# BR2_PACKAGE_LINKS is not set
BR2_PACKAGE_LRZSZ=y
# BR2_PACKAGE_MDNSRESPONDER is not set
BR2_PACKAGE_MICROCOM=y
# BR2_PACKAGE_MIIDIAG is not set
# BR2_PACKAGE_MROUTED is not set
# BR2_PACKAGE_MUTT is not set
# BR2_PACKAGE_NBD is not set
BR2_PACKAGE_NCFTP=y

#
# 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_NEON 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
# BR2_PACKAGE_OPENSSH is not set
# BR2_PACKAGE_OPENSSL is not set
# BR2_PACKAGE_OPENVPN is not set
# BR2_PACKAGE_OPENSWAN is not set
BR2_PACKAGE_PORTMAP=y
BR2_PACKAGE_PPPD=y
# BR2_PACKAGE_RADVD is not set
BR2_PACKAGE_RP_PPPOE=y
# BR2_PACKAGE_PPTP_LINUX is not set
# BR2_PACKAGE_PROFTPD is not set

#
# quagga suite
#
# BR2_PACKAGE_QUAGGA_ZEBRA is not set
# BR2_PACKAGE_QUAGGA_BGPD is not set
# 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=y
# BR2_PACKAGE_SAMBA is not set
BR2_PACKAGE_SOCAT=y
BR2_PACKAGE_SOCAT_PREDEF_CRDLY_SHIFT="9"
BR2_PACKAGE_SOCAT_PREDEF_TABDLY_SHIFT="11"
BR2_PACKAGE_SOCAT_PREDEF_CSIZE_SHIFT="4"
# BR2_PACKAGE_STUNNEL is not set
# BR2_PACKAGE_TCPDUMP is not set
# BR2_PACKAGE_DHCPDUMP 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
# BR2_PACKAGE_VPNC is not set
# BR2_PACKAGE_VSFTPD is not set
# BR2_PACKAGE_VTUN is not set
# BR2_PACKAGE_WEBIF is not set
# BR2_PACKAGE_WIRELESS_TOOLS is not set

#
# Hardware handling / blockdevices and filesystem maintenance
#
BR2_PACKAGE_DBUS=y
BR2_DBUS_EXPAT=y
# BR2_DBUS_LIBXML2 is not set
# BR2_PACKAGE_DBUS_GLIB is not set
# BR2_PACKAGE_DEVMEM2 is not set
BR2_PACKAGE_DM=y
# BR2_PACKAGE_DMRAID is not set
# BR2_PACKAGE_E2FSPROGS is not set
# BR2_PACKAGE_EEPROG 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
# BR2_PACKAGE_HWDATA is not set
# BR2_PACKAGE_I2C_TOOLS is not set
# BR2_PACKAGE_INPUT_TOOLS is not set
# BR2_PACKAGE_IOSTAT is not set
# BR2_PACKAGE_LIBAIO is not set
# BR2_PACKAGE_LIBRAW1394 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=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_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_FTL_CHECK=y
BR2_PACKAGE_MTD_FTL_FORMAT=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_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_SETSERIAL=y
# BR2_PACKAGE_SMARTMONTOOLS 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

#
# Audio and video libraries and applications
#
# BR2_PACKAGE_ALSA_LIB is not set

#
# asterisk	- disabled (required openssl and mpg123)
#
# BR2_PACKAGE_AUMIX is not set
# BR2_PACKAGE_GSTREAMER is not set
# BR2_PACKAGE_LIBID3TAG is not set
# BR2_PACKAGE_LIBMAD is not set
# BR2_PACKAGE_LIBMPD is not set
# BR2_PACKAGE_LIBOGG is not set
# BR2_PACKAGE_LIBSNDFILE is not set
# BR2_PACKAGE_LIBTHEORA is not set

#
# libvorbis requires the package libogg to build
#
# BR2_PACKAGE_MADPLAY is not set
# BR2_PACKAGE_MPG123 is not set
# BR2_PACKAGE_MPLAYER is not set
# BR2_PACKAGE_SPEEX is not set
# BR2_PACKAGE_FESTIVAL is not set
# BR2_PACKAGE_VLC is not set

#
# Graphic libraries and applications (graphic/text)
#

#
# text rendering libraries
#
BR2_PACKAGE_NCURSES=y
# BR2_PACKAGE_NCURSES_TARGET_PANEL is not set
# BR2_PACKAGE_NCURSES_TARGET_FORM is not set
# BR2_PACKAGE_NCURSES_TARGET_MENU is not set
# BR2_PACKAGE_NCURSES_TARGET_HEADERS is not set
# BR2_PACKAGE_NEWT is not set
# BR2_PACKAGE_SLANG is not set

#
# text rendering applications
#
# BR2_PACKAGE_DIALOG is not set

#
# graphic libraries
#
# BR2_PACKAGE_DIRECTFB is not set
# BR2_PACKAGE_FBDUMP is not set
# BR2_PACKAGE_IMAGEMAGICK is not set
# BR2_PACKAGE_JPEG is not set
# BR2_PACKAGE_LIBART is not set
# BR2_PACKAGE_LIBPNG is not set
# BR2_PACKAGE_LIBUNGIF is not set
# BR2_PACKAGE_LINUX_FUSION is not set
# BR2_PACKAGE_PIXMAN is not set
# BR2_PACKAGE_SDL is not set
# BR2_PACKAGE_TIFF is not set

#
# busybox graphic applications
#

#
# --> May be broken in busybox
#
# BR2_PACKAGE_FBV is not set
# BR2_PACKAGE_FBSET is not set

#
# other GUIs
#
# BR2_PACKAGE_QT is not set
BR2_PACKAGE_XSERVER_none=y
# BR2_PACKAGE_XSERVER_xorg is not set
# BR2_PACKAGE_XSERVER_tinyx is not set

#
# X libraries and helper libraries
#
# BR2_PACKAGE_ATK is not set
# BR2_PACKAGE_PANGO is not set
# BR2_PACKAGE_LIBDRM is not set
# BR2_PACKAGE_LIBERATION is not set
# BR2_PACKAGE_LIBGLIB12 is not set
# BR2_PACKAGE_LIBGLIB2 is not set
# 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_WEBKIT is not set

#
# X Window managers
#
# BR2_PACKAGE_MATCHBOX is not set

#
# X applications
#
# BR2_PACKAGE_ALSAMIXERGUI is not set

#
# dillo		- disabled (requires jpeg,libglib12,libgtk12,zlib,libpng and Xorg(7))
#
# BR2_PACKAGE_GQVIEW is not set
# BR2_PACKAGE_LEAFPAD is not set

#
# midori		- disabled (requires Xorg(7))
#
# BR2_PACKAGE_PCMANFM 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

#
# Compressors / decompressors
#
# BR2_PACKAGE_LZO is not set
# BR2_PACKAGE_LZMA is not set
# BR2_PACKAGE_LZMA_HOST is not set
BR2_PACKAGE_ZLIB=y
# BR2_PACKAGE_ZLIB_TARGET_HEADERS is not set

#
# Package managers
#
# BR2_PACKAGE_IPKG is not set
# BR2_PACKAGE_PORTAGE is not set

#
# Interpreter languages / Scripting
#
# 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

#
# XML handling
#
BR2_PACKAGE_EXPAT=y
# BR2_PACKAGE_EZXML is not set
# BR2_PACKAGE_LIBXML2 is not set
# BR2_PACKAGE_LIBXSLT is not set
# BR2_PACKAGE_XERCES is not set

#
# Java
#
# BR2_PACKAGE_CLASSPATH is not set

#
# Games
#
# BR2_PACKAGE_GNUCHESS is not set
# BR2_PACKAGE_MAGICCUBE4D is not set
# BR2_PACKAGE_PRBOOM is not set
# BR2_PACKAGE_RUBIX is not set
# BR2_PACKAGE_VICE is not set
# BR2_PACKAGE_XBOARD is not set

#
# Target filesystem options
#

#
# filesystem for target device
#
BR2_ROOTFS_DEVICE_TABLE="target/device/Atmel/root/device_table.txt"
# BR2_TARGET_ROOTFS_CRAMFS is not set
# BR2_TARGET_ROOTFS_CLOOP is not set
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_BLOCKS=0
BR2_TARGET_ROOTFS_EXT2_INODES=0
BR2_TARGET_ROOTFS_EXT2_RESBLKS=0
BR2_TARGET_ROOTFS_EXT2_SQUASH=y

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_JFFS2=y
BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_1056=y
# BR2_TARGET_ROOTFS_JFFS2_DATAFLASH_528 is not set
# BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_2K_128K is not set
# BR2_TARGET_ROOTFS_JFFS2_FLASH_128 is not set
# BR2_TARGET_ROOTFS_JFFS2_FLASH_64 is not set
# BR2_TARGET_ROOTFS_JFFS2_CUSTOM is not set
BR2_TARGET_ROOTFS_JFFS2_PAGESIZE=0x420
BR2_TARGET_ROOTFS_JFFS2_EBSIZE=0x2100
BR2_TARGET_ROOTFS_JFFS2_NOCLEANMARKER=y
# BR2_JFFS2_TARGET_SREC is not set
# BR2_TARGET_ROOTFS_JFFS2_PAD is not set
BR2_TARGET_ROOTFS_JFFS2_LE=y
# BR2_TARGET_ROOTFS_JFFS2_BE is not set
# BR2_TARGET_ROOTFS_JFFS2_SQUASH is not set
# BR2_TARGET_ROOTFS_JFFS2_SUMMARY is not set


# BR2_TARGET_ROOTFS_UBIFS is not set
# BR2_TARGET_ROOTFS_SQUASHFS is not set
# BR2_TARGET_ROOTFS_TAR is not set
# BR2_TARGET_ROOTFS_CPIO is not set
# BR2_TARGET_ROOTFS_INITRAMFS is not set
# BR2_TARGET_ROOTFS_ROMFS is not set

#
# bootloader for target device
#
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BOARDNAME="at91sam9g20ek"
BR2_TARGET_UBOOT_2009_01=y
# BR2_TARGET_UBOOT_2008_10 is not set
BR2_UBOOT_VERSION="2009.01"
BR2_TARGET_U_BOOT_2009_01_ARCH_AT91=y
BR2_TARGET_U_BOOT_ARCH_AT91_PATCH_DIR="target/device/Atmel/arch-arm/u-boot/2009.01"
BR2_TARGET_UBOOT_CUSTOM_PATCH_DIR=""
BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASHCARD=y
# BR2_TARGET_UBOOT_BOOTSOURCE_DATAFLASH is not set
# BR2_TARGET_UBOOT_BOOTSOURCE_NANDFLASH is not set
# BR2_TARGET_UBOOT_BOOTSOURCE_FLASH is not set
# BR2_TARGET_UBOOT_BOOTSOURCE_SDCARD is not set
# BR2_TARGET_UBOOT_BOOTSOURCE_EEPROM is not set
BR2_TARGET_UBOOT_BOOTSOURCE="dataflash"
# BR2_TARGET_UBOOT_TOOL_MKIMAGE is not set
# BR2_TARGET_UBOOT_TOOL_ENV is not set
BR2_TARGET_UBOOT_DATAFLASH_SIZE_8MB=y
# BR2_TARGET_UBOOT_DATAFLASH_SIZE_4MB is not set
# BR2_TARGET_UBOOT_DATAFLASH_SIZE_2MB is not set
# BR2_TARGET_UBOOT_DATAFLASH_SIZE_1MB is not set
# BR2_TARGET_UBOOT_DATAFLASH_SIZE_0_50MB is not set
# BR2_TARGET_UBOOT_DATAFLASH_SIZE_0_25MB is not set
BR2_TARGET_UBOOT_END_OF_FLASH="C083FFFF"
BR2_TARGET_UBOOT_KERNEL_LOCATION="C0042000"
BR2_TARGET_UBOOT_NETWORK=y
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_BOOTSOURCE_DATAFLASHCARD=y
BR2_BOOTSOURCE=y

#
# Kernel
#
# BR2_KERNEL_none is not set
BR2_KERNEL_LINUX_ADVANCED=y
# BR2_KERNEL_LINUX is not set
BR2_PACKAGE_LINUX=y
BR2_PACKAGE_LINUX_KCONFIG="$(BR2_BOARD_PATH)/$(BR2_BOARD_NAME)-linux-$(BR2_LINUX26_VERSION).config"
BR2_PACKAGE_LINUX_FORMAT="uImage"
BR2_KERNEL_CURRENT_VERSION="2.6.28.2"
BR2_KERNEL_LATEST_2_6_28="2"
BR2_KERNEL_LATEST_2_6_27="13"
BR2_KERNEL_LATEST_2_6_26="8"
BR2_KERNEL_LATEST_2_6_25="19"
BR2_KERNEL_LATEST_2_6_24="7"
BR2_KERNEL_LATEST_2_6_23="17"
BR2_KERNEL_LATEST_2_6_22="19"
BR2_KERNEL_LATEST_2_6_21="7"
BR2_KERNEL_LATEST_2_6_20="21"
BR2_KERNEL_PATCH_LEVEL="$(BR2_KERNEL_MINORLEVEL)"
BR2_KERNEL_NEXT_VERSION="2.6.29"
BR2_KERNEL_THIS_VERSION="2.6.28"
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="$(BR2_KERNEL_SITE)"
# BR2_LINUX_2_6_STABLE is not set
BR2_LINUX_2_6_28=y
# BR2_LINUX_2_6_27 is not set
# BR2_LINUX_2_6_26 is not set
# BR2_LINUX_2_6_25 is not set
# BR2_LINUX_2_6_24 is not set
# BR2_LINUX_2_6_23 is not set
# BR2_LINUX_2_6_22 is not set
# BR2_LINUX_2_6_21 is not set
# BR2_LINUX_2_6_20 is not set
# BR2_LINUX_2_6_29 is not set
# BR2_LINUX26_CUSTOM is not set

#
# Patches
#
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="2"
BR2_KERNEL_ARCH_PATCH_ENABLED=y
BR2_ARCH_AT91_2_6_28=y
# BR2_ARCH_AT91_2_6_27 is not set
# BR2_ARCH_AT91_2_6_26 is not set
# BR2_ARCH_AT91_2_6_25 is not set
# BR2_ARCH_AT91_2_6_24 is not set
# BR2_ARCH_AT91_2_6_22 is not set
BR2_LINUX_BSP_PATCH=""
BR2_KERNEL_PATCH="patch-$(BR2_DOWNLOAD_LINUX26_VERSION).$(BR2_KERNEL_PATCH_LEVEL).bz2"
BR2_EXTRA_VERSION=".$(BR2_KERNEL_PATCH_LEVEL)"
BR2_KERNEL_BASE=y
BR2_DOWNLOAD_LINUX26_VERSION="$(BR2_KERNEL_THIS_VERSION)"
BR2_LINUX26_VERSION="$(BR2_KERNEL_THIS_VERSION).$(BR2_KERNEL_PATCH_LEVEL)"

#
# Linux Kernel Configuration
#
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=y
# BR2_LINUX_BIN_VMLINUX is not set
# BR2_LINUX_BIN_ZIMAGE is not set
# BR2_LINUX_BIN_CUSTOM is not set

#
# Destinations for linux kernel binaries
#
# BR2_LINUX_COPYTO_ROOTFS is not set
BR2_LINUX_COPYTO_TFTPBOOT=y
BR2_LINUX_COPYTO=""
BR2_LINUX_COPY_CONFIGURATION=y
