summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2011-09-05 11:53:26 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2011-09-05 11:53:26 +0200
commit4a54d9dd804bc3b64703ba04060ec8c48a8c9811 (patch)
tree948f1b2bead3d128603ad5a34609205db61da3aa
parente61aad237ecb819635bb7550dbbf66f2b8817b50 (diff)
parent40c2b2f6a83e9cca14567e855fc75a8d1ef78f28 (diff)
resolve conflict
-rw-r--r--.gitignore1
-rw-r--r--Config.in1
-rw-r--r--Makefile6
-rw-r--r--mk/build.mk14
-rw-r--r--mk/image.mk2
-rw-r--r--package/base-files/Makefile80
-rw-r--r--package/base-files/src/etc/hosts2
-rw-r--r--package/boost/Makefile162
-rw-r--r--package/jack/Makefile45
-rw-r--r--package/libgcc/Makefile2
-rw-r--r--package/openjdk/Makefile7
-rwxr-xr-xscripts/create-image.sh10
-rwxr-xr-xscripts/update-sys2
-rw-r--r--target/arch.lst1
-rw-r--r--target/arm/Makefile29
-rw-r--r--target/arm/sys-available/qemu-arm10
-rw-r--r--target/config/Config.in60
-rw-r--r--target/config/Config.in.adk7
-rw-r--r--target/config/Config.in.arch.choice6
-rw-r--r--target/config/Config.in.arch.default4
-rw-r--r--target/config/Config.in.runtime127
-rw-r--r--target/config/Config.in.system.choice1
-rw-r--r--target/cris/Makefile19
-rw-r--r--target/cris/kernel.config211
-rw-r--r--target/cris/sys-available/foxboard-lx1
-rw-r--r--target/cris/sys-available/qemu-cris15
-rw-r--r--target/cris/sys-available/toolchain-cris3
-rw-r--r--target/cris/target.mk4
-rw-r--r--target/cris/uclibc.config.v32243
-rw-r--r--target/linux/Config.in1
-rw-r--r--target/linux/config/Config.in.block13
-rw-r--r--target/linux/config/Config.in.cpu21
-rw-r--r--target/linux/config/Config.in.flash3
-rw-r--r--target/linux/config/Config.in.graphics6
-rw-r--r--target/linux/config/Config.in.input10
-rw-r--r--target/linux/config/Config.in.kernel3
-rw-r--r--target/linux/config/Config.in.netdevice27
-rw-r--r--target/linux/config/Config.in.network2
-rw-r--r--target/linux/config/Config.in.pm6
-rw-r--r--target/linux/config/Config.in.sensors25
-rw-r--r--target/linux/config/Config.in.serial15
-rw-r--r--target/linux/config/Config.in.spi4
-rw-r--r--target/linux/config/Config.in.systems24
-rw-r--r--target/linux/config/Config.in.usb8
-rw-r--r--target/linux/patches/2.6.39/cris-etrax.patch12
-rw-r--r--target/linux/patches/2.6.39/mips-malta.patch135
-rw-r--r--target/linux/patches/2.6.39/rb4xx.patch7321
-rw-r--r--target/mips/Makefile18
-rw-r--r--target/mips/sys-available/qemu-mipsel1
-rw-r--r--target/sh/Config.in9
-rw-r--r--target/sh/Makefile36
-rw-r--r--target/sh/kernel.config1817
-rw-r--r--target/sh/sys-available/qemu-sh10
-rw-r--r--target/sh/sys-available/toolchain-sh9
-rw-r--r--target/sh/target.mk5
-rw-r--r--target/sh/uclibc.config247
-rw-r--r--target/x86/Makefile6
-rw-r--r--target/x86/sys-available/intel-atom28
-rw-r--r--target/x86/sys-available/qemu-i686 (renamed from target/x86/sys-available/qemu-x86)6
-rw-r--r--tests/adk.exp5
-rw-r--r--tests/adk.exp.in4
-rw-r--r--tests/master.exp4
-rw-r--r--tests/master.exp.in1
-rw-r--r--toolchain/uClibc/Makefile3
-rw-r--r--toolchain/uClibc/patches/uClibc-0.9.32-use-arch-pt-initfini_c.patch39
65 files changed, 5720 insertions, 5239 deletions
diff --git a/.gitignore b/.gitignore
index 51956e85e..fba1c551e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,7 @@
/config/zconf.tab.h
/tests/master.exp
/tests/adk.exp
+/tests/adk.exp.in.tmp
/prereq.mk
/toolchain_build_*/
/.ADK_HAVE_DOT_CONFIG
diff --git a/Config.in b/Config.in
index ebbd05dc3..241f7b850 100644
--- a/Config.in
+++ b/Config.in
@@ -24,6 +24,7 @@ config ADK_CHOOSE_TARGET_SYSTEM
default y if ADK_CHOOSE_TARGET_SYSTEM_PPC64
default y if ADK_CHOOSE_TARGET_SYSTEM_SPARC
default y if ADK_CHOOSE_TARGET_SYSTEM_SPARC64
+ default y if ADK_CHOOSE_TARGET_SYSTEM_SH
default y if ADK_CHOOSE_TARGET_SYSTEM_X86
default y if ADK_CHOOSE_TARGET_SYSTEM_X86_64
default n
diff --git a/Makefile b/Makefile
index b143098c4..590c0dac2 100644
--- a/Makefile
+++ b/Makefile
@@ -155,6 +155,12 @@ bulkallmod: .prereq_done
check: .prereq_done
@${GMAKE_INV} check
+check-gcc: .prereq_done
+ @${GMAKE_INV} check-gcc
+
+check-g++: .prereq_done
+ @${GMAKE_INV} check-g++
+
menu: .prereq_done
@${GMAKE_INV} menu
diff --git a/mk/build.mk b/mk/build.mk
index 5eecb0a6d..15d0e3b16 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -587,11 +587,21 @@ dep: $(TOPDIR)/bin/tools/depmaker
include $(TOPDIR)/toolchain/gcc/Makefile.inc
-check:
- @-rm tests/adk.exp tests/master.exp
+check-dejagnu:
+ @-rm tests/adk.exp tests/master.exp >/dev/null 2>&1
@sed -e "s#@ADK_TARGET_IP@#$(ADK_TARGET_IP)#" tests/adk.exp.in > \
+ tests/adk.exp.in.tmp
+ @sed -e "s#@ADK_TARGET_PORT@#$(ADK_TARGET_PORT)#" tests/adk.exp.in.tmp > \
tests/adk.exp
@sed -e "s#@TOPDIR@#$(TOPDIR)#" tests/master.exp.in > \
tests/master.exp
+
+check-gcc: check-dejagnu
env DEJAGNU=$(TOPDIR)/tests/master.exp \
$(MAKE) -C $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/$(PKG_NAME)-$(PKG_VERSION)-final/gcc check-gcc
+
+check-g++: check-dejagnu
+ env DEJAGNU=$(TOPDIR)/tests/master.exp \
+ $(MAKE) -C $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/$(PKG_NAME)-$(PKG_VERSION)-final/gcc check-g++
+
+check: check-gcc check-g++
diff --git a/mk/image.mk b/mk/image.mk
index 185164c22..78b18e716 100644
--- a/mk/image.mk
+++ b/mk/image.mk
@@ -95,7 +95,7 @@ ${BIN_DIR}/${INITRAMFS}: ${TARGET_DIR}
cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | \
sed "s#\(.*\)#:0:0::::::\1#" | sort | \
${TOOLS_DIR}/cpio -o -C512 -Hnewc -P | \
- lzma -9 >$@ 2>/dev/null
+ xz -C crc32 >$@ 2>/dev/null
${BUILD_DIR}/${INITRAMFS_PIGGYBACK}: ${TARGET_DIR}
${SED} 's/.*CONFIG_(BLK_DEV_INITRD|INITRAMFS_SOURCE).*//' \
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index a1cf05491..4cc7e970a 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -6,7 +6,7 @@ include $(TOPDIR)/mk/rootfs.mk
PKG_NAME:= base-files
PKG_VERSION:= 1.0
-PKG_RELEASE:= 45
+PKG_RELEASE:= 46
PKG_SECTION:= base
PKG_DESCR:= basic files and scripts
@@ -64,10 +64,15 @@ endif
cat ./files/inittab.serial >> $(IDIR_BASE_FILES)/etc/inittab
test -z $(ADK_RUNTIME_CONSOLE_BOTH) || \
cat ./files/inittab.vga >> $(IDIR_BASE_FILES)/etc/inittab
+ifeq ($(ADK_TARGET_QEMU_ARM_MODEL_VERSATILE),y)
+ $(SED) 's#ttyS#ttyAMA#g' $(IDIR_BASE_FILES)/etc/inittab
+endif
$(SED) 's#@SPEED@#$(ADK_RUNTIME_CONSOLE_SERIAL_SPEED)#' $(IDIR_BASE_FILES)/etc/inittab
test -z $(ADK_RUNTIME_HOSTNAME) || \
echo $(ADK_RUNTIME_HOSTNAME) > $(IDIR_BASE_FILES)/etc/hostname; \
- echo "127.0.0.1 $(ADK_RUNTIME_HOSTNAME)" >> $(IDIR_BASE_FILES)/etc/hosts
+ echo "127.0.0.1 localhost" > $(IDIR_BASE_FILES)/etc/hosts
+ echo "::1 localhost" >> $(IDIR_BASE_FILES)/etc/hosts
+ echo "127.0.1.1 $(ADK_RUNTIME_HOSTNAME)" >> $(IDIR_BASE_FILES)/etc/hosts
test -z $(ADK_RUNTIME_PASSWORD) || \
$(SED) 's,\*NP\*,'"$$(${TOPDIR}/bin/tools/mkcrypt \
${ADK_RUNTIME_PASSWORD}),g" $(IDIR_BASE_FILES)/etc/shadow
@@ -81,4 +86,75 @@ ifneq (${ADK_PACKAGE_CONFIG_IN_ETC},)
chmod 600 $(IDIR_BASE_FILES)/etc/adkconfig.gz
endif
+
+
+# simple network configuration
+ifneq (${ADK_SIMPLE_NETWORK_CONFIG},)
+ ${INSTALL_DIR} ${IDIR_BASE_FILES}/etc/network
+
+ # network config local
+ echo -e "auto lo\niface lo inet loopback" > ${IDIR_BASE_FILES}/etc/network/interfaces
+
+ # network config eth0
+ # configure nic with manual ip
+ifeq (${SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NIC},y)
+ echo -e "\nauto eth0\niface eth0 inet dhcp" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+endif
+ # configure nic with dhcp
+ifeq (${SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NIC_MANUAL},y)
+ echo -e "\nauto eth0\niface eth0 inet static" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+ echo -e " address ${SIMPLE_NETWORK_CONFIG_ETH0_IP}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+ echo -e " netmask ${SIMPLE_NETWORK_CONFIG_ETH0_NM}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+ echo -e " broadcast ${SIMPLE_NETWORK_CONFIG_ETH0_BC}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+ echo -e " gateway ${SIMPLE_NETWORK_CONFIG_ETH0_GW}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+endif
+ # configure bridge
+ifeq (${SIMPLE_NETWORK_CONFIG_ETH0_TYPE_BRIDGE},y)
+ echo -e "\nauto br0\niface br0 inet manual" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+ echo -e " bridge-ports ${SIMPLE_NETWORK_CONFIG_ETH0_BRIDGE}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+endif
+ #configure bridge with ip
+ifeq (${SIMPLE_NETWORK_CONFIG_ETH0_TYPE_BRIDGE_IP},y)
+ echo -e "\nauto br0\niface br0 inet static" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+ echo -e " address ${SIMPLE_NETWORK_CONFIG_ETH0_IP}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+ echo -e " netmask ${SIMPLE_NETWORK_CONFIG_ETH0_NM}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+ echo -e " broadcast ${SIMPLE_NETWORK_CONFIG_ETH0_BC}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+ echo -e " bridge-ports ${SIMPLE_NETWORK_CONFIG_ETH0_BRIDGE}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+endif
+
+ # network config eth1
+ # configure nic with manual ip
+ifeq (${SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NIC},y)
+ echo -e "\nauto eth1\niface eth1 inet dhcp" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+endif
+ # configure nic with dhcp
+ifeq (${SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NIC_MANUAL},y)
+ echo -e "\nauto eth1\niface eth1 inet static" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+ echo -e " address ${SIMPLE_NETWORK_CONFIG_ETH1_IP}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+ echo -e " netmask ${SIMPLE_NETWORK_CONFIG_ETH1_NM}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+ echo -e " broadcast ${SIMPLE_NETWORK_CONFIG_ETH1_BC}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+ echo -e " gateway ${SIMPLE_NETWORK_CONFIG_ETH1_GW}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+endif
+ # configure bridge
+ifeq (${SIMPLE_NETWORK_CONFIG_ETH1_TYPE_BRIDGE},y)
+ echo -e "\nauto br0\niface br1 inet manual" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+ echo -e " bridge-ports ${SIMPLE_NETWORK_CONFIG_ETH1_BRIDGE}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+endif
+ #configure bridge with ip
+ifeq (${SIMPLE_NETWORK_CONFIG_ETH1_TYPE_BRIDGE_IP},y)
+ echo -e "\nauto br0\niface br1 inet static" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+ echo -e " address ${SIMPLE_NETWORK_CONFIG_ETH1_IP}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+ echo -e " netmask ${SIMPLE_NETWORK_CONFIG_ETH1_NM}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+ echo -e " broadcast ${SIMPLE_NETWORK_CONFIG_ETH1_BC}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+ echo -e " bridge-ports ${SIMPLE_NETWORK_CONFIG_ETH1_BRIDGE}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+endif
+
+ # newline at the end of interfaces file
+ echo -en "\n" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+
+ # resolver config
+ echo -e "nameserver ${SIMPLE_NETWORK_CONFIG_RESOLV}" > ${IDIR_BASE_FILES}/etc/resolv.conf
+endif
+
+
include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/base-files/src/etc/hosts b/package/base-files/src/etc/hosts
deleted file mode 100644
index 085363292..000000000
--- a/package/base-files/src/etc/hosts
+++ /dev/null
@@ -1,2 +0,0 @@
-::1 localhost
-127.0.0.1 localhost
diff --git a/package/boost/Makefile b/package/boost/Makefile
new file mode 100644
index 000000000..45c18e08e
--- /dev/null
+++ b/package/boost/Makefile
@@ -0,0 +1,162 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include ${TOPDIR}/rules.mk
+
+PKG_NAME:= boost
+PKG_VERSION:= 1_47_0
+PKG_RELEASE:= 1
+PKG_MD5SUM:= ff180a5276bec773a7625cac7e2288e8
+PKG_DESCR:= boost C++ library
+PKG_SECTION:= libs
+PKG_URL:= http://www.boost.org/
+PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=boost/}
+DISTFILES:= boost_1_47_0.tar.gz
+WRKDIST= ${WRKDIR}/${PKG_NAME}_${PKG_VERSION}
+
+PKG_SUBPKGS:= BOOST BOOST_DEV
+PKGSD_BOOST_DEV:= boost header files
+PKGSC_BOOST_DEV:= devel
+
+PKG_CHOICES_BOOST:= STATIC SHARED BOTH
+PKGCD_STATIC:= install static libs
+PKGCD_SHARED:= install shared libs
+PKGCD_BOTH:= install static and shared libs
+
+PKG_FLAVOURS_BOOST:= date_time graph graph_parallel iostreams math program_options python regex serialization signals system test thread wave
+
+PKGFD_date_time:= with date-time
+PKGFD_python:= with Python
+PKGFB_python:= python
+PKGFS_python:= python
+PKGFD_iostreams:= with iostreams
+PKGFD_graph:= with graph
+PKGFD_graph_parallel:= with graph_parallel
+PKGFD_math:= with math
+PKGFD_program_options:= with program_options
+PKGFD_regex:= with regex
+PKGFD_serialization:= with serialization
+PKGFD_signals:= with signals
+PKGFD_system:= with system
+PKGFD_test:= with test
+PKGFD_thread:= with thread
+PKGFD_wave:= with wave
+
+include ${TOPDIR}/mk/package.mk
+
+$(eval $(call PKG_template,BOOST,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,BOOST_DEV,boost-dev,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_BOOST_DEV},${PKGSC_BOOST_DEV}))
+
+CONFIG_STYLE:= manual
+BUILD_STYLE:= manual
+INSTALL_STYLE:= manual
+
+CONFIGURE_ARGS += \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=${WRKINST}/usr \
+
+ifneq (${ADK_PACKAGE_BOOST_IOSTREAMS},)
+ CONFIGURE_ARGS += -sNO_BZIP2=1 -sZLIB_INCLUDE=${STAGING_DIR}/usr/include -sZLIB_LIBPATH=${STAGING_DIR}/usr/lib
+else
+ CONFIGURE_ARGS += --without-iostreams
+endif
+ifeq (${ADK_PACKAGE_BOOST_DATE_TIME},)
+ CONFIGURE_ARGS+=--without-date_time
+endif
+ifeq (${ADK_PACKAGE_BOOST_PYTHON},)
+ CONFIGURE_ARGS+=--without-python
+endif
+ifeq (${ADK_PACKAGE_BOOST_GRAPH},)
+ CONFIGURE_ARGS+=--without-graph
+endif
+ifeq (${ADK_PACKAGE_BOOST_math},)
+ CONFIGURE_ARGS+=--without-math
+endif
+ifeq (${ADK_PACKAGE_BOOST_PROGRAM_OPTIONS},)
+ CONFIGURE_ARGS+=--without-program_options
+endif
+ifeq (${ADK_PACKAGE_BOOST_REGEX},)
+ CONFIGURE_ARGS+=--without-regex
+endif
+ifeq (${ADK_PACKAGE_BOOST_SERIALIZATION},)
+ CONFIGURE_ARGS+=--without-serialization
+endif
+ifeq (${ADK_PACKAGE_BOOST_SIGNALS},)
+ CONFIGURE_ARGS+=--without-signals
+endif
+ifeq (${ADK_PACKAGE_BOOST_SYSTEM},)
+ CONFIGURE_ARGS+=--without-system
+endif
+ifeq (${ADK_PACKAGE_BOOST_TEST},)
+ CONFIGURE_ARGS+=--without-test
+endif
+ifeq (${ADK_PACKAGE_BOOST_THREAD},)
+ CONFIGURE_ARGS+=--without-thread
+endif
+ifeq (${ADK_PACKAGE_BOOST_WAVE},)
+ CONFIGURE_ARGS+=--without-wave
+endif
+
+# some variables for build
+GPP_PATH:= ${STAGING_HOST_DIR}/bin/${GNU_TARGET_NAME}-g++
+GPP_VERSION:= "`${GPP_PATH} -v 2>&1 | tail -1 | awk '{print $$3}'`"
+BJAM_PATH:= "`find ${WRKBUILD} -type f -name "bjam"`"
+PYTHON_PATH:= ${STAGING_TARGET_DIR}/usr/bin/python
+PYTHON_INCLUDE:= "`find ${STAGING_TARGET_DIR}/usr/include/ -maxdepth 1 -type d -name "python*" | head -1`"
+PYTHON_LIB:= "`find ${STAGING_TARGET_DIR}/usr/lib/ -maxdepth 1 -type d -name "python*" | head -1`"
+USER_JAM:= ${WRKBUILD}/tools/build/v2/user-config.jam
+
+pre-build:
+ @echo "build bjam..."
+ cd $(WRKBUILD)/tools/build/v2/engine; ./build.sh gcc
+
+do-build:
+ @echo "build boost library..."
+# remove exisiting using gcc line from user.jam
+ ${SED} "/^using gcc/d" ${USER_JAM}
+# add using gcc line with determined options to user.jam
+ echo "using gcc : ${GPP_VERSION} : ${GPP_PATH} ;" >> ${USER_JAM};
+
+# remove exisiting using python line from user.jam
+ ${SED} "/^using python/d" ${USER_JAM}
+ifneq (${ADK_PACKAGE_BOOST_PYTHON},)
+# add using python line with determined options to user.jam
+ echo "using python : ${PYTHON_VERSION} : ${PYTHON_PATH} : ${PYTHON_INCLUDE} : ${PYTHON_LIB} ;" >> ${USER_JAM};
+endif
+
+# run bjam to build boost
+ ( cd ${WRKBUILD}; \
+ ${BJAM_PATH} \
+ -sBUILD=release \
+ --toolset=gcc-${GPP_VERSION} \
+ --build-type=minimal \
+ --layout=versioned \
+ --disable-long-double \
+ --without-mpi \
+ ${CONFIGURE_ARGS} \
+ install \
+ )
+
+
+boost-install:
+ ${INSTALL_DIR} ${IDIR_BOOST}/usr/lib
+ifneq (${ADK_PACKAGE_BOOST_SHARED},)
+ ${CP} ${WRKINST}/usr/lib/*.so* ${IDIR_BOOST}/usr/lib
+endif
+ifneq (${ADK_PACKAGE_BOOST_STATIC},)
+ ${CP} ${WRKINST}/usr/lib/*.a ${IDIR_BOOST}/usr/lib
+endif
+ifneq (${ADK_PACKAGE_BOOST_BOTH},)
+ ${CP} ${WRKINST}/usr/lib/*.a ${IDIR_BOOST}/usr/lib
+ ${CP} ${WRKINST}/usr/lib/*.so* ${IDIR_BOOST}/usr/lib
+endif
+
+
+boost-dev-install:
+ ${INSTALL_DIR} ${IDIR_BOOST_DEV}/usr/include
+ ${CP} ${WRKINST}/usr/include/* ${IDIR_BOOST_DEV}/usr/include
+
+
+include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/jack/Makefile b/package/jack/Makefile
new file mode 100644
index 000000000..65776fd7f
--- /dev/null
+++ b/package/jack/Makefile
@@ -0,0 +1,45 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(TOPDIR)/rules.mk
+
+# always use tab spaces as separator, no spaces
+PKG_NAME:= jack
+PKG_VERSION:= 1.9.7
+PKG_RELEASE:= 1
+PKG_MD5SUM:= 9759670feecbd43eeccf1c0f743ec199
+PKG_DESCR:= JACK Audio Connection Kit
+PKG_SECTION:= multimedia
+PKG_DEPENDS:= alsa-lib
+PKG_BUILDDEP:= python2 alsa-lib
+PKG_URL:= http://jackaudio.org
+PKG_SITES:= http://www.grame.fr/~letz/
+
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
+
+include $(TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,JACK,jack,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+
+CONFIG_STYLE:= manual
+BUILD_STYLE:= manual
+INSTALL_STYLE:= manual
+
+do-configure:
+ $(WRKSRC)/waf configure --alsa --prefix=$(WRKINST)/usr
+
+do-build:
+ cd $(WRKSRC) && $(WRKSRC)/waf build
+
+do-install:
+ cd $(WRKSRC) && $(WRKSRC)/waf install
+
+jack-install:
+ $(INSTALL_DIR) $(IDIR_JACK)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/jack* \
+ $(IDIR_JACK)/usr/bin
+ $(INSTALL_DIR) $(IDIR_JACK)/usr/lib
+ $(INSTALL_BIN) $(WRKINST)/usr/lib/lib* \
+ $(IDIR_JACK)/usr/lib
+
+include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/libgcc/Makefile b/package/libgcc/Makefile
index 55f9e5b90..353c5cc32 100644
--- a/package/libgcc/Makefile
+++ b/package/libgcc/Makefile
@@ -11,6 +11,8 @@ PKG_DFLT_LIBGCC:= y if !ADK_TOOLCHAIN_ONLY
NO_DISTFILES:= 1
+PKG_ARCH_DEPENDS:= !sh
+
include ${TOPDIR}/mk/package.mk
$(eval $(call PKG_template,LIBGCC,libgcc,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
diff --git a/package/openjdk/Makefile b/package/openjdk/Makefile
index e2bff393d..2c953c0fe 100644
--- a/package/openjdk/Makefile
+++ b/package/openjdk/Makefile
@@ -17,7 +17,7 @@ PKG_DESCR:= OpenJDK Java VM
PKG_SECTION:= lang
PKG_BUILDDEP:= alsa-lib xproto jpeg zlib giflib libpng freetype cups
PKG_BUILDDEP+= libX11 libXt libXp libXinerama libXrender libXtst libiconv
-PKG_DEPENDS:= zlib libstdcxx libffi libpthread
+PKG_DEPENDS:= zlib libstdcxx libffi libpthread libxtst libxi
PKG_URL:= http://openjdk.org/
PKG_SITES:= http://download.java.net/openjdk/jdk6/promoted/b22/ \
http://mirror.netcologne.de/apache.org/xml/xalan-j/binaries/ \
@@ -59,7 +59,9 @@ include $(TOPDIR)/mk/package.mk
$(eval $(call PKG_template,OPENJDK,openjdk,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
+# segfaults with march=pentium-m/atom
+TARGET_CFLAGS:= $(subst march=pentium-m,march=i686,$(TARGET_CFLAGS))
+TARGET_CFLAGS:= $(subst march=atom,march=i686,$(TARGET_CFLAGS))
TARGET_CFLAGS:= $(filter-out -fhonour-copts,$(TARGET_CFLAGS))
BOOTSTRAPJDK:= ${STAGING_JAVA_HOST_DIR}/bootstrap-jdk
@@ -144,5 +146,6 @@ pre-configure:
openjdk-install:
$(INSTALL_DIR) $(IDIR_OPENJDK)/usr
$(CP) $(WRKBUILD)/openjdk.build/j2re-image/* $(IDIR_OPENJDK)/usr
+ rm -rf $(IDIR_OPENJDK)/usr/man
include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/scripts/create-image.sh b/scripts/create-image.sh
index f3e03eced..2b5b34bc9 100755
--- a/scripts/create-image.sh
+++ b/scripts/create-image.sh
@@ -79,11 +79,13 @@ printf "Creating filesystem $filesystem\n"
printf "Create partition and filesystem\n"
$parted -s $1 mklabel msdos
-$parted -s $1 mkpart primary ext2 0 98%
+$parted -s $1 -- mkpart primary ext2 0 -0
$parted -s $1 set 1 boot on
-dd if=$1 of=mbr bs=16384 count=1 2>/dev/null
-dd if=$1 skip=16384 of=$1.new 2>/dev/null
+offset=$(parted $1 unit b print | tail -2 | head -1 | cut -f 1 --delimit="B" | cut -c 9-)
+
+dd if=$1 of=mbr bs=$offset count=1 2>/dev/null
+dd if=$1 skip=$offset of=$1.new 2>/dev/null
if [ "$filesystem" = "ext2" -o "$filesystem" = "ext3" -o "$filesystem" = "ext4" ];then
mkfsopts=-F
@@ -105,7 +107,7 @@ rm mbr
tmp=$(mktemp -d)
-mount -o loop,offset=16384 -t $filesystem $1 $tmp
+mount -o loop,offset=$offset -t $filesystem $1 $tmp
if [ -z $initramfs ];then
printf "Extracting install archive\n"
diff --git a/scripts/update-sys b/scripts/update-sys
index 268184428..bcfbfa84e 100755
--- a/scripts/update-sys
+++ b/scripts/update-sys
@@ -50,7 +50,7 @@ config $archsym
EOF
if [ "${system}" = "toolchain" -o "${system}" = "qemu" ];then
- sys=${system}-$arch
+ sys=${system}-$cpuarch
else
sys=$system
fi
diff --git a/target/arch.lst b/target/arch.lst
index a5c2da7ec..b4eca2828 100644
--- a/target/arch.lst
+++ b/target/arch.lst
@@ -5,5 +5,6 @@ ppc
ppc64
sparc
sparc64
+sh
x86
x86_64
diff --git a/target/arm/Makefile b/target/arm/Makefile
index 5323750fe..e290fd8e3 100644
--- a/target/arm/Makefile
+++ b/target/arm/Makefile
@@ -7,9 +7,18 @@ include $(TOPDIR)/mk/modules.mk
include $(TOPDIR)/mk/kernel-build.mk
include $(TOPDIR)/mk/image.mk
+ZKERNEL:=$(LINUX_DIR)/arch/arm/boot/zImage
KERNEL:=$(LINUX_DIR)/vmlinux
LOADADDR:=0x20008000
+ifeq ($(ADK_TARGET_QEMU_ARM_MODEL_SPITZ),y)
+MACH:=spitz
+endif
+ifeq ($(ADK_TARGET_QEMU_ARM_MODEL_VERSATILE),y)
+MACH:=versatilepb
+NET:=-net user,hostfwd=tcp::2222-:22 -net nic,model=smc91c111
+endif
+
tools-compile:
$(MAKE) -C ../tools/uboot-mkimage
@@ -38,32 +47,46 @@ imageinstall: kernel-install $(BIN_DIR)/$(ROOTFSTARBALL)
endif
ifeq ($(ADK_TARGET_FS),archive)
imageinstall: $(BIN_DIR)/$(ROOTFSTARBALL)
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM),y)
+ @cp $(ZKERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
+else
@cp $(KERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
+endif
@echo 'The kernel file is: $(BIN_DIR)/${TARGET_KERNEL}'
@echo "The RootFS tarball is: $(BIN_DIR)/$(ROOTFSTARBALL)"
ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM),y)
@echo "Use following command to create a QEMU Image:"
@echo "sudo ./scripts/create-image.sh -f $(ADK_TARGET_ROOTFS) qemu-${CPU_ARCH}.img $(BIN_DIR)/$(ROOTFSTARBALL)"
@echo "Start qemu with following options:"
- @echo 'qemu-system-arm -nographic -kernel $(BIN_DIR)/$(TARGET_KERNEL) -hda qemu-${CPU_ARCH}.img -append "root=/dev/hda1"'
+ @echo 'qemu-system-arm -M $(MACH) -nographic $(NET) -kernel $(BIN_DIR)/$(TARGET_KERNEL) -hda qemu-${CPU_ARCH}.img'
+endif
endif
endif
ifeq ($(ADK_TARGET_FS),initramfs)
imageinstall: $(BIN_DIR)/$(INITRAMFS)
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM),y)
+ @cp $(ZKERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
+else
@cp $(KERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
+endif
@echo 'The kernel file is: $(BIN_DIR)/${TARGET_KERNEL}'
@echo 'The initramfs image is: ${BIN_DIR}/${INITRAMFS}'
ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM),y)
@echo "Start qemu with following command line:"
- @echo 'qemu-system-arm -nographic -kernel $(BIN_DIR)/$(TARGET_KERNEL) -initrd ${BIN_DIR}/${INITRAMFS}'
+ @echo 'qemu-system-arm -M $(MACH) -nographic $(NET) -kernel $(BIN_DIR)/$(TARGET_KERNEL) -initrd ${BIN_DIR}/${INITRAMFS}'
endif
endif
ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinitramfs
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM),y)
+ @cp $(ZKERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
+else
@cp $(KERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
+endif
@echo 'The kernel+initramfs file is: $(BIN_DIR)/${TARGET_KERNEL}'
ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM),y)
@echo "Start qemu with following command line:"
- @echo 'qemu-system-arm -nographic -kernel $(BIN_DIR)/$(TARGET_KERNEL)'
+ @echo 'qemu-system-arm -M $(MACH) -nographic $(NET) -kernel $(BIN_DIR)/$(TARGET_KERNEL)'
+endif
endif
endif
diff --git a/target/arm/sys-available/qemu-arm b/target/arm/sys-available/qemu-arm
new file mode 100644
index 000000000..1e62f2abb
--- /dev/null
+++ b/target/arm/sys-available/qemu-arm
@@ -0,0 +1,10 @@
+config ADK_TARGET_SYSTEM_QEMU_ARM
+ bool "Qemu Emulator"
+ select ADK_arm
+ select ADK_qemu_arm
+ select ADK_little
+ select ADK_EABI
+ select ADK_TARGET_NO_FPU
+ select ADK_HARDWARE_QEMU
+ help
+ Support for Qemu Emulator (arm).
diff --git a/target/config/Config.in b/target/config/Config.in
index 62bcbf071..a6719eb52 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -74,6 +74,29 @@ config ADK_TARGET_ABI_N64
endchoice
# submodel support
+#
+choice
+prompt "Qemu ARM Emulation"
+depends on ADK_TARGET_SYSTEM_QEMU_ARM
+
+config ADK_TARGET_QEMU_ARM_MODEL_SPITZ
+ boolean "Xscale PXA270 Spitz PDA"
+ select ADK_KERNEL_ARCH_PXA
+ select ADK_KERNEL_PXA_SHARPSL
+ select ADK_KERNEL_MACH_SPITZ
+ select ADK_KERNEL_SPI_PXA2XX
+
+config ADK_TARGET_QEMU_ARM_MODEL_VERSATILE
+ boolean "ARM Ltd. Versatile"
+ select ADK_KERNEL_ARCH_VERSATILE
+ select ADK_KERNEL_PCI
+ select ADK_KERNEL_BLOCK
+ select ADK_KERNEL_SCSI
+ select ADK_KERNEL_BLK_DEV_SD
+ select ADK_KERNEL_SCSI_SYM53C8XX_2
+
+endchoice
+
choice
prompt "Foxboard LX Model"
depends on ADK_TARGET_SYSTEM_FOXBOARD_LX
@@ -218,6 +241,16 @@ config ADK_TARGET_CPU_WITH_SSE
config ADK_TARGET_CPU_WITH_SSE2
boolean
+config ADK_TARGET_CPU_WITH_SSE3
+ boolean
+
+config ADK_TARGET_CPU_WITH_SSSE3
+ boolean
+
+# hyper threading
+config ADK_TARGET_CPU_WITH_HT
+ boolean
+
config ADK_TARGET_CPU_WITH_3DNOW
boolean
@@ -225,6 +258,15 @@ config ADK_TARGET_CPU_WITH_3DNOWEXT
boolean
# cpu configuration
+config ADK_CPU_CRIS_V10
+ boolean
+
+config ADK_CPU_CRIS_V32
+ boolean
+
+config ADK_CPU_SH4
+ boolean
+
config ADK_CPU_SPARC_V8
boolean
@@ -255,6 +297,9 @@ config ADK_CPU_PPC64
config ADK_CPU_PENTIUM_M
boolean
+config ADK_CPU_ATOM
+ boolean
+
config ADK_CPU_AMDFAM10
select ADK_TARGET_CPU_WITH_VT
boolean
@@ -273,6 +318,7 @@ config ADK_TARGET_CPU_ARCH
default "i686" if ADK_CPU_I686
default "i586" if ADK_CPU_GEODE
default "i686" if ADK_CPU_PENTIUM_M
+ default "i686" if ADK_CPU_ATOM
default "mips64" if ADK_LINUX_MIPS && ADK_big && ADK_TARGET_KERNEL64
default "mips64el" if ADK_LINUX_MIPS && ADK_little && ADK_TARGET_KERNEL64
default "mips" if ADK_LINUX_MIPS && ADK_big
@@ -280,6 +326,9 @@ config ADK_TARGET_CPU_ARCH
default "arm" if ADK_LINUX_ARM && ADK_little
default "armeb" if ADK_LINUX_ARM && ADK_big
default "sparc" if ADK_LINUX_SPARC
+ default "sh" if ADK_LINUX_SH
+ default "cris" if ADK_CPU_CRIS_V10
+ default "crisv32" if ADK_CPU_CRIS_V32
default "ppc" if ADK_CPU_PPC
default "ppc64" if ADK_CPU_PPC64
@@ -302,6 +351,7 @@ config ADK_TARGET_CFLAGS
default "-march=i586" if ADK_CPU_I586
default "-march=i686" if ADK_CPU_I686
default "-march=pentium-m" if ADK_CPU_PENTIUM_M
+ default "-march=atom" if ADK_CPU_ATOM
default "-march=amdfam10" if ADK_CPU_AMDFAM10
default "-mcpu=v8" if ADK_CPU_SPARC_V8
default "-m64 -mcpu=v9" if ADK_CPU_SPARC_V9
@@ -309,6 +359,8 @@ config ADK_TARGET_CFLAGS
default "-march=mips32" if ADK_CPU_MIPS32
default "-march=mips64" if ADK_CPU_MIPS64
default "-march=armv5te -mtune=arm926ej-s" if ADK_CPU_ARMV5
+ default "-march=v32" if ADK_CPU_CRIS_V32
+ default "-march=v10" if ADK_CPU_CRIS_V10
config ADK_TARGET_CMDLINE
string
@@ -317,9 +369,15 @@ config ADK_TARGET_CMDLINE
default "console=ttyS0,38400" if ADK_TARGET_SYSTEM_PCENGINES_WRAP
default "console=ttyS0,115200 console=tty0 geodewdt.nowayout=1" if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
default "console=ttyS0,115200 console=tty0" if ADK_TARGET_SYSTEM_IBM_X40
+ default "console=ttyS0,115200 console=tty0" if ADK_TARGET_SYSTEM_INTEL_ATOM
+ default "console=ttyS0,115200 console=tty0" if ADK_TARGET_SYSTEM_QEMU_I686
+ default "console=ttyS0,115200 console=tty0" if ADK_TARGET_QEMU_ARM_MODEL_SPITZ
+ default "console=ttyAMA0 console=tty0" if ADK_TARGET_QEMU_ARM_MODEL_VERSATILE
+ default "console=tty0" if ADK_TARGET_SYSTEM_QEMU_SH
default "console=ttyS0,115200" if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D13
default "console=ttyS0,115200" if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D2
default "console=ttyS0,115200" if ADK_TARGET_SYSTEM_FOXBOARD_LX
+ default "console=tty0" if ADK_TARGET_SYSTEM_QEMU_SH
default ""
# c library
@@ -430,6 +488,7 @@ config ADK_TARGET_ROOTFS_INITRAMFS
ADK_LINUX_X86_64 || \
ADK_LINUX_NATIVE
select ADK_KERNEL_BLK_DEV_INITRD
+ select ADK_KERNEL_RD_XZ
help
create an read-only initramfs system.
@@ -474,6 +533,7 @@ config ADK_TARGET_ROOTFS_NFSROOT
select ADK_KERNEL_NFS_COMMON
select ADK_KERNEL_IP_PNP
select ADK_KERNEL_IP_PNP_DHCP
+ depends on !ADK_HARDWARE_QEMU
help
Root filesystem mounted via NFS. (DHCP)
diff --git a/target/config/Config.in.adk b/target/config/Config.in.adk
index 442094b85..5ff27a6a6 100644
--- a/target/config/Config.in.adk
+++ b/target/config/Config.in.adk
@@ -66,6 +66,13 @@ config ADK_TARGET_IP
default "127.0.0.1"
help
+config ADK_TARGET_PORT
+ prompt "Set target port for make check"
+ string
+ default "2222" if ADK_HARDWARE_QEMU
+ default "22"
+ help
+
choice
prompt "Hostsystem (do not change!)"
config ADK_HOST_LINUX
diff --git a/target/config/Config.in.arch.choice b/target/config/Config.in.arch.choice
index 092a0297d..380f84b5d 100644
--- a/target/config/Config.in.arch.choice
+++ b/target/config/Config.in.arch.choice
@@ -56,6 +56,12 @@ config ADK_LINUX_SPARC64
help
Support for sparc64 systems.
+config ADK_LINUX_SH
+ bool "superh system"
+ select ADK_sh
+ help
+ Support for superh systems.
+
config ADK_LINUX_X86
bool "x86 system"
select ADK_x86
diff --git a/target/config/Config.in.arch.default b/target/config/Config.in.arch.default
index cbe8b6ddc..5590b2bbd 100644
--- a/target/config/Config.in.arch.default
+++ b/target/config/Config.in.arch.default
@@ -35,6 +35,9 @@ config ADK_sparc
config ADK_sparc64
bool
+config ADK_sh
+ bool
+
config ADK_x86_64
bool
@@ -54,6 +57,7 @@ config ADK_TARGET_ARCH
default "ppc64" if ADK_ppc64
default "sparc" if ADK_sparc
default "sparc64" if ADK_sparc64
+ default "sh" if ADK_sh
default "x86" if ADK_x86
default "x86_64" if ADK_x86_64
default "native" if ADK_native
diff --git a/target/config/Config.in.runtime b/target/config/Config.in.runtime
index dec6f3839..2c1ccb1d1 100644
--- a/target/config/Config.in.runtime
+++ b/target/config/Config.in.runtime
@@ -3,7 +3,7 @@
config ADK_RUNTIME_HOSTNAME
string "hostname for the embedded system"
- default "localhost"
+ default "openadk"
help
Set your target hostname.
@@ -141,3 +141,128 @@ config ADK_BINSH_ZSH
Use zsh as system shell. This is probably a bad idea.
endchoice
+
+
+
+
+
+config ADK_SIMPLE_NETWORK_CONFIG
+ prompt "simple network configuration"
+ boolean
+ help
+ Manually change network config
+
+ WWW: http://www.openadk.org
+
+menu "eth0 Configuration"
+depends on ADK_SIMPLE_NETWORK_CONFIG
+
+choice
+ prompt "Type"
+ default SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NIC
+
+config SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NIC
+ bool "NIC / DHCP"
+
+config SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NIC_MANUAL
+ bool "NIC / manual IP"
+
+config SIMPLE_NETWORK_CONFIG_ETH0_TYPE_BRIDGE_IP
+ bool "Bridge with IP"
+
+config SIMPLE_NETWORK_CONFIG_ETH0_TYPE_BRIDGE
+ bool "Bridge w/o IP"
+
+config SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NONE
+ bool "None"
+endchoice
+
+config SIMPLE_NETWORK_CONFIG_ETH0_IP
+ depends on SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NIC_MANUAL || SIMPLE_NETWORK_CONFIG_ETH0_TYPE_BRIDGE_IP
+ string "eth0 IP Address"
+ default "192.168.1.2"
+
+config SIMPLE_NETWORK_CONFIG_ETH0_NM
+ depends on SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NIC_MANUAL || SIMPLE_NETWORK_CONFIG_ETH0_TYPE_BRIDGE_IP
+ string "eth0 Netmask"
+ default "255.255.255.0"
+
+config SIMPLE_NETWORK_CONFIG_ETH0_GW
+ depends on SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NIC_MANUAL
+ string "eth0 Gateway"
+ default "192.168.1.1"
+
+config SIMPLE_NETWORK_CONFIG_ETH0_BRIDGE
+ depends on SIMPLE_NETWORK_CONFIG_ETH0_TYPE_BRIDGE || SIMPLE_NETWORK_CONFIG_ETH0_TYPE_BRIDGE_IP
+ string "Bridge ports"
+ default "eth0 eth1"
+
+config SIMPLE_NETWORK_CONFIG_ETH0_BC
+ depends on SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NIC_MANUAL || SIMPLE_NETWORK_CONFIG_ETH0_TYPE_BRIDGE_IP
+ string "eth0 Broadcast"
+ default "+"
+
+endmenu
+
+
+
+menu "eth1 Configuration"
+depends on ADK_SIMPLE_NETWORK_CONFIG
+
+choice
+ prompt "Type"
+ default SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NONE
+
+config SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NIC
+ bool "NIC / DHCP"
+
+config SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NIC_MANUAL
+ bool "NIC / manual IP"
+
+config SIMPLE_NETWORK_CONFIG_ETH1_TYPE_BRIDGE_IP
+ bool "Bridge with IP"
+
+config SIMPLE_NETWORK_CONFIG_ETH1_TYPE_BRIDGE
+ bool "Bridge w/o IP"
+
+config SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NONE
+ bool "None"
+endchoice
+
+config SIMPLE_NETWORK_CONFIG_ETH1_IP
+ depends on SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NIC_MANUAL || SIMPLE_NETWORK_CONFIG_ETH1_TYPE_BRIDGE_IP
+ string "eth1 IP Address"
+ default "192.168.1.2"
+
+config SIMPLE_NETWORK_CONFIG_ETH1_NM
+ depends on SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NIC_MANUAL || SIMPLE_NETWORK_CONFIG_ETH1_TYPE_BRIDGE_IP
+ string "eth1 Netmask"
+ default "255.255.255.0"
+
+config SIMPLE_NETWORK_CONFIG_ETH1_GW
+ depends on SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NIC_MANUAL
+ string "eth1 Gateway"
+ default "192.168.1.1"
+
+config SIMPLE_NETWORK_CONFIG_ETH1_BRIDGE
+ depends on SIMPLE_NETWORK_CONFIG_ETH1_TYPE_BRIDGE || SIMPLE_NETWORK_CONFIG_ETH1_TYPE_BRIDGE_IP
+ string "Bridge ports"
+ default "eth1 eth2"
+
+config SIMPLE_NETWORK_CONFIG_ETH1_BC
+ depends on SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NIC_MANUAL || SIMPLE_NETWORK_CONFIG_ETH1_TYPE_BRIDGE_IP
+ string "eth1 Broadcast"
+ default "+"
+
+endmenu
+
+
+menu "Resolver Configuration"
+depends on ADK_SIMPLE_NETWORK_CONFIG
+
+config SIMPLE_NETWORK_CONFIG_RESOLV
+ string "Nameserver"
+ default "192.168.1.1"
+
+endmenu
+
diff --git a/target/config/Config.in.system.choice b/target/config/Config.in.system.choice
index 597d8054a..222b28aba 100644
--- a/target/config/Config.in.system.choice
+++ b/target/config/Config.in.system.choice
@@ -5,5 +5,6 @@ source "target/ppc/Config.in"
source "target/ppc64/Config.in"
source "target/sparc/Config.in"
source "target/sparc64/Config.in"
+source "target/sh/Config.in"
source "target/x86/Config.in"
source "target/x86_64/Config.in"
diff --git a/target/cris/Makefile b/target/cris/Makefile
index 52417225e..6b744a806 100644
--- a/target/cris/Makefile
+++ b/target/cris/Makefile
@@ -48,3 +48,22 @@ imageinstall: $(BIN_DIR)/$(ROOTFSTARBALL)
@echo 'The kernel file is: $(BIN_DIR)/${TARGET_KERNEL}'
@echo "The RootFS tarball is: $(BIN_DIR)/$(ROOTFSTARBALL)"
endif
+ifeq ($(ADK_TARGET_FS),initramfs)
+imageinstall: $(BIN_DIR)/$(INITRAMFS)
+ @cp $(KERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
+ @echo 'The kernel file is: $(BIN_DIR)/${TARGET_KERNEL}'
+ @echo 'The initramfs image is: ${BIN_DIR}/${INITRAMFS}'
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_CRIS),y)
+ @echo "Start qemu with following command line:"
+ @echo 'qemu-system-cris -nographic -kernel $(BIN_DIR)/$(TARGET_KERNEL) -initrd ${BIN_DIR}/${INITRAMFS}'
+endif
+endif
+ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
+imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinitramfs
+ @cp $(KERNEL) $(BIN_DIR)/${TARGET_KERNEL}
+ @echo 'The kernel+initramfs file is: $(BIN_DIR)/${TARGET_KERNEL}'
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_CRIS),y)
+ @echo "Start qemu with following command line:"
+ @echo 'qemu-system-cris -nographic -kernel $(BIN_DIR)/$(TARGET_KERNEL)'
+endif
+endif
diff --git a/target/cris/kernel.config b/target/cris/kernel.config
index 8fbd0d9c7..c79daaefa 100644
--- a/target/cris/kernel.config
+++ b/target/cris/kernel.config
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux/cris 2.6.39 Kernel Configuration
-# Mon Aug 22 09:21:47 2011
+# Thu Aug 25 08:32:11 2011
#
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
@@ -157,8 +157,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_HAVE_AOUT is not set
# CONFIG_BINFMT_MISC is not set
CONFIG_ETRAX_CMDLINE=""
-CONFIG_ETRAX_WATCHDOG=y
-# CONFIG_ETRAX_WATCHDOG_NICE_DOGGY is not set
+# CONFIG_ETRAX_WATCHDOG is not set
CONFIG_ETRAX_FAST_TIMER=y
# CONFIG_ETRAX_KMALLOCED_MODULES is not set
# CONFIG_OOM_REBOOT is not set
@@ -264,7 +263,111 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_IPV6 is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-# CONFIG_NETFILTER is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+
+#
+# Core Netfilter Configuration
+#
+# CONFIG_NETFILTER_NETLINK_QUEUE is not set
+# CONFIG_NETFILTER_NETLINK_LOG is not set
+CONFIG_NF_CONNTRACK=m
+# CONFIG_NF_CONNTRACK_MARK is not set
+# CONFIG_NF_CONNTRACK_EVENTS is not set
+# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
+# CONFIG_NF_CT_PROTO_DCCP is not set
+# CONFIG_NF_CT_PROTO_SCTP is not set
+# CONFIG_NF_CT_PROTO_UDPLITE is not set
+# CONFIG_NF_CONNTRACK_AMANDA is not set
+# CONFIG_NF_CONNTRACK_FTP is not set
+# CONFIG_NF_CONNTRACK_H323 is not set
+# CONFIG_NF_CONNTRACK_IRC is not set
+# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
+# CONFIG_NF_CONNTRACK_SNMP is not set
+# CONFIG_NF_CONNTRACK_PPTP is not set
+# CONFIG_NF_CONNTRACK_SANE is not set
+# CONFIG_NF_CONNTRACK_SIP is not set
+# CONFIG_NF_CONNTRACK_TFTP is not set
+# CONFIG_NF_CT_NETLINK is not set
+CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+# CONFIG_NETFILTER_XT_MARK is not set
+# CONFIG_NETFILTER_XT_CONNMARK is not set
+
+#
+# Xtables targets
+#
+# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
+# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
+# CONFIG_NETFILTER_XT_TARGET_MARK is not set
+# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
+# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
+# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
+# CONFIG_NETFILTER_XT_TARGET_TEE is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
+
+#
+# Xtables matches
+#
+# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
+# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
+# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
+# CONFIG_NETFILTER_XT_MATCH_CPU is not set
+# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
+# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
+# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
+# CONFIG_NETFILTER_XT_MATCH_ESP is not set
+# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
+# CONFIG_NETFILTER_XT_MATCH_HL is not set
+# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
+# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
+# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_MAC is not set
+# CONFIG_NETFILTER_XT_MATCH_MARK is not set
+# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
+# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
+# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
+# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
+# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
+# CONFIG_NETFILTER_XT_MATCH_REALM is not set
+# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
+# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
+# CONFIG_NETFILTER_XT_MATCH_STATE is not set
+# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
+# CONFIG_NETFILTER_XT_MATCH_STRING is not set
+# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
+# CONFIG_NETFILTER_XT_MATCH_TIME is not set
+# CONFIG_NETFILTER_XT_MATCH_U32 is not set
+# CONFIG_IP_VS is not set
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+# CONFIG_IP_NF_MATCH_AH is not set
+# CONFIG_IP_NF_MATCH_ECN is not set
+# CONFIG_IP_NF_MATCH_TTL is not set
+# CONFIG_IP_NF_FILTER is not set
+# CONFIG_IP_NF_TARGET_LOG is not set
+# CONFIG_IP_NF_TARGET_ULOG is not set
+# CONFIG_NF_NAT is not set
+# CONFIG_IP_NF_MANGLE is not set
+# CONFIG_IP_NF_RAW is not set
+# CONFIG_IP_NF_ARPTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_RDS is not set
@@ -750,7 +853,105 @@ CONFIG_MAGIC_SYSRQ=y
# CONFIG_SECURITYFS is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
-# CONFIG_CRYPTO is not set
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ALGAPI2=m
+CONFIG_CRYPTO_AEAD2=m
+CONFIG_CRYPTO_BLKCIPHER2=m
+CONFIG_CRYPTO_HASH2=m
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=m
+CONFIG_CRYPTO_PCOMP2=m
+CONFIG_CRYPTO_MANAGER=m
+CONFIG_CRYPTO_MANAGER2=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+# CONFIG_CRYPTO_GF128MUL is not set
+# CONFIG_CRYPTO_NULL is not set
+CONFIG_CRYPTO_WORKQUEUE=m
+# CONFIG_CRYPTO_CRYPTD is not set
+# CONFIG_CRYPTO_AUTHENC is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+# CONFIG_CRYPTO_CCM is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_SEQIV is not set
+
+#
+# Block modes
+#
+# CONFIG_CRYPTO_CBC is not set
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+# CONFIG_CRYPTO_ECB is not set
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_PCBC is not set
+# CONFIG_CRYPTO_XTS is not set
+
+#
+# Hash modes
+#
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_GHASH is not set
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=m
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+
+#
+# Compression
+#
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_ZLIB is not set
+# CONFIG_CRYPTO_LZO is not set
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+# CONFIG_CRYPTO_USER_API_HASH is not set
+# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
+CONFIG_CRYPTO_HW=y
#
# OCF Configuration
diff --git a/target/cris/sys-available/foxboard-lx b/target/cris/sys-available/foxboard-lx
index 0b4c81c68..edef0ffc8 100644
--- a/target/cris/sys-available/foxboard-lx
+++ b/target/cris/sys-available/foxboard-lx
@@ -2,6 +2,7 @@ config ADK_TARGET_SYSTEM_FOXBOARD_LX
bool "FOX Board LX"
select ADK_cris
select ADK_foxboard_lx
+ select ADK_CPU_CRIS_V10
select ADK_TARGET_WITH_MTD
select ADK_TARGET_WITH_USB
help
diff --git a/target/cris/sys-available/qemu-cris b/target/cris/sys-available/qemu-cris
new file mode 100644
index 000000000..050fa1ce0
--- /dev/null
+++ b/target/cris/sys-available/qemu-cris
@@ -0,0 +1,15 @@
+config ADK_TARGET_SYSTEM_QEMU_CRIS
+ bool "Qemu Emulator"
+ select ADK_cris
+ select ADK_qemu_cris
+ select ADK_CPU_CRIS_V32
+ select ADK_KERNEL_ETRAXFS
+ select ADK_KERNEL_MTD_MTDRAM
+ select ADK_HARDWARE_QEMU
+ select ADK_TARGET_WITH_INPUT
+ select ADK_TARGET_WITH_PCI
+ select ADK_TARGET_WITH_HDD
+ select ADK_TARGET_WITH_MTD
+ help
+ Support for Qemu Emulator (CRIS).
+
diff --git a/target/cris/sys-available/toolchain-cris b/target/cris/sys-available/toolchain-cris
index cef2d17c2..129619e72 100644
--- a/target/cris/sys-available/toolchain-cris
+++ b/target/cris/sys-available/toolchain-cris
@@ -2,7 +2,8 @@ config ADK_TARGET_SYSTEM_TOOLCHAIN_CRIS
bool "Toolchain only"
select ADK_cris
select ADK_toolchain_cris
+ select ADK_CPU_CRIS_V10
select ADK_TOOLCHAIN
help
- Build a cris toolchain.
+ Build a cris toolchain (crisv10).
diff --git a/target/cris/target.mk b/target/cris/target.mk
index a0b68f06b..9f143ef11 100644
--- a/target/cris/target.mk
+++ b/target/cris/target.mk
@@ -1,5 +1,5 @@
include $(TOPDIR)/mk/kernel-ver.mk
ARCH:= cris
-CPU_ARCH:= cris
+CPU_ARCH:= $(ADK_TARGET_CPU_ARCH)
TARGET_OPTIMIZATION:= -Os -pipe -fno-auto-inc-dec -fno-peephole2
-TARGET_CFLAGS_ARCH:= -march=v10
+TARGET_CFLAGS_ARCH:= $(ADK_TARGET_CFLAGS)
diff --git a/target/cris/uclibc.config.v32 b/target/cris/uclibc.config.v32
new file mode 100644
index 000000000..e2c710242
--- /dev/null
+++ b/target/cris/uclibc.config.v32
@@ -0,0 +1,243 @@
+#
+# Automatically generated make config: don't edit
+# Version: 0.9.32
+# Wed Aug 24 20:05:46 2011
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+TARGET_cris=y
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+# TARGET_xtensa is not set
+# TARGET_c6x is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="cris"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_CRIS is not set
+CONFIG_CRISV32=y
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_LITTLE_ENDIAN=y
+
+#
+# Using Little Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+# DO_XSI_MATH is not set
+UCLIBC_HAS_FENV=y
+KERNEL_HEADERS=""
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+DOPIC=y
+# ARCH_HAS_NO_SHARED is not set
+# ARCH_HAS_NO_LDSO is not set
+HAVE_SHARED=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_ENV_SUPPORT is not set
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+# UCLIBC_STATIC_LDCONFIG is not set
+LDSO_RUNPATH=y
+LDSO_SEARCH_INTERP_PATH=y
+UCLIBC_CTOR_DTOR=y
+# LDSO_GNU_HASH_SUPPORT is not set
+# HAS_NO_THREADS is not set
+LINUXTHREADS_OLD=y
+# LINUXTHREADS_NEW is not set
+# UCLIBC_HAS_THREADS_NATIVE is not set
+UCLIBC_HAS_THREADS=y
+PTHREADS_DEBUG_SUPPORT=y
+UCLIBC_HAS_SYSLOG=y
+UCLIBC_HAS_LFS=y
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+MALLOC_GLIBC_COMPAT=y
+UCLIBC_DYNAMIC_ATEXIT=y
+COMPAT_ATEXIT=y
+UCLIBC_SUSV3_LEGACY=y
+# UCLIBC_SUSV3_LEGACY_MACROS is not set
+UCLIBC_SUSV4_LEGACY=y
+# UCLIBC_STRICT_HEADERS is not set
+# UCLIBC_HAS_STUBS is not set
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+UCLIBC_HAS___PROGNAME=y
+UCLIBC_HAS_PTY=y
+ASSUME_DEVPTS=y
+UNIX98PTY_ONLY=y
+UCLIBC_HAS_GETPT=y
+UCLIBC_HAS_LIBUTIL=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+
+#
+# Advanced Library Settings
+#
+UCLIBC_PWD_BUFFER_SIZE=256
+UCLIBC_GRP_BUFFER_SIZE=256
+
+#
+# Support various families of functions
+#
+# UCLIBC_LINUX_MODULE_24 is not set
+UCLIBC_LINUX_SPECIFIC=y
+UCLIBC_HAS_GNU_ERROR=y
+UCLIBC_BSD_SPECIFIC=y
+UCLIBC_HAS_BSD_ERR=y
+# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set
+# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
+# UCLIBC_NTP_LEGACY is not set
+# UCLIBC_SV4_DEPRECATED is not set
+UCLIBC_HAS_REALTIME=y
+UCLIBC_HAS_ADVANCED_REALTIME=y
+UCLIBC_HAS_EPOLL=y
+# UCLIBC_HAS_XATTR is not set
+# UCLIBC_HAS_PROFILING is not set
+UCLIBC_HAS_CRYPT_IMPL=y
+UCLIBC_HAS_CRYPT=y
+UCLIBC_HAS_NETWORK_SUPPORT=y
+UCLIBC_HAS_SOCKET=y
+UCLIBC_HAS_IPV4=y
+UCLIBC_HAS_IPV6=y
+UCLIBC_HAS_RPC=y
+UCLIBC_HAS_FULL_RPC=y
+UCLIBC_HAS_REENTRANT_RPC=y
+UCLIBC_USE_NETLINK=y
+UCLIBC_SUPPORT_AI_ADDRCONFIG=y
+UCLIBC_HAS_BSD_RES_CLOSE=y
+UCLIBC_HAS_COMPAT_RES_STATE=y
+# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
+UCLIBC_HAS_LIBRESOLV_STUB=y
+UCLIBC_HAS_LIBNSL_STUB=y
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+# UCLIBC_HAS_LOCALE is not set
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_4096=y
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+# UCLIBC_HAS_REGEX_OLD is not set
+UCLIBC_HAS_FNMATCH=y
+# UCLIBC_HAS_FNMATCH_OLD is not set
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_NFTW=y
+UCLIBC_HAS_FTW=y
+# UCLIBC_HAS_FTS is not set
+UCLIBC_HAS_GLOB=y
+UCLIBC_HAS_GNU_GLOB=y
+# UCLIBC_HAS_UTMPX is not set
+
+#
+# Library Installation Options
+#
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="/usr/"
+MULTILIB_DIR="lib"
+HARDWIRED_ABSPATH=y
+
+#
+# Security options
+#
+UCLIBC_HAS_ARC4RANDOM=y
+# HAVE_NO_SSP is not set
+# UCLIBC_HAS_SSP is not set
+UCLIBC_BUILD_RELRO=y
+# UCLIBC_BUILD_NOW is not set
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# uClibc development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+UCLIBC_EXTRA_CFLAGS=""
+# DODEBUG is not set
+# DODEBUG_PT is not set
+DOSTRIP=y
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+# UCLIBC_HAS_BACKTRACE is not set
+WARNINGS="-Wall"
+EXTRA_WARNINGS=y
+# DOMULTI is not set
+# UCLIBC_MJN3_ONLY is not set
diff --git a/target/linux/Config.in b/target/linux/Config.in
index 7b52a3003..1b78cecb5 100644
--- a/target/linux/Config.in
+++ b/target/linux/Config.in
@@ -20,6 +20,7 @@ source target/linux/config/Config.in.misc
source target/linux/config/Config.in.mips
source target/linux/config/Config.in.lib
source target/linux/config/Config.in.pm
+source target/linux/config/Config.in.serial
source target/linux/config/Config.in.spi
source target/linux/config/Config.in.kvm
source target/linux/config/Config.in.debug
diff --git a/target/linux/config/Config.in.block b/target/linux/config/Config.in.block
index 78e7b1bd5..fe4c0a9c8 100644
--- a/target/linux/config/Config.in.block
+++ b/target/linux/config/Config.in.block
@@ -62,6 +62,9 @@ config ADK_KERNEL_MMC
config ADK_KERNEL_MMC_BLOCK
boolean
+config ADK_KERNEL_SCSI_SYM53C8XX_2
+ boolean
+
config ADK_KERNEL_MMC_AT91
boolean
select ADK_KERNEL_BLOCK
@@ -121,14 +124,16 @@ config ADK_KERNEL_ATA_PIIX
select ADK_KERNEL_ATA_BMDMA
select ADK_KERNEL_BLK_DEV
select ADK_KERNEL_BLK_DEV_SD
- default y if ADK_TARGET_SYSTEM_QEMU_MIPS64
- default y if ADK_TARGET_SYSTEM_QEMU_MIPS64EL
+ default y if ADK_TARGET_SYSTEM_QEMU_I686
default y if ADK_TARGET_SYSTEM_QEMU_MIPS
default y if ADK_TARGET_SYSTEM_QEMU_MIPSEL
- default y if ADK_TARGET_SYSTEM_QEMU_X86
+ default y if ADK_TARGET_SYSTEM_QEMU_PPC
+ default y if ADK_TARGET_SYSTEM_QEMU_SPARC
default y if ADK_TARGET_SYSTEM_QEMU_X86_64
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_NATIVE_SYSTEM_IBM_X40
+ default y if ADK_TARGET_SYSTEM_INTEL_ATOM
+ default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default n
config ADK_KERNEL_SATA_AHCI
@@ -150,6 +155,8 @@ config ADK_KPACKAGE_KMOD_SATA_AHCI
select ADK_KERNEL_BLK_DEV_SD
depends on !ADK_KERNEL_SATA_AHCI
depends on ADK_TARGET_WITH_SATA
+ default y if ADK_TARGET_SYSTEM_INTEL_ATOM
+ default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default n
help
Enables support for AHCI Serial ATA.
diff --git a/target/linux/config/Config.in.cpu b/target/linux/config/Config.in.cpu
index 64d9e9f3f..5be6dacfc 100644
--- a/target/linux/config/Config.in.cpu
+++ b/target/linux/config/Config.in.cpu
@@ -11,3 +11,24 @@ config ADK_KERNEL_MTRR
boolean
default y if ADK_TARGET_CPU_WITH_MTRR
default n
+
+# hyper threading
+config ADK_KERNEL_PM_SLEEP_SMP
+ boolean
+ default y if ADK_TARGET_CPU_WITH_HT
+ default n
+
+config ADK_KERNEL_SMP
+ boolean
+ default y if ADK_TARGET_CPU_WITH_HT
+ default n
+
+config ADK_KERNEL_X86_HT
+ boolean
+ default y if ADK_TARGET_CPU_WITH_HT
+ default n
+
+config ADK_KERNEL_USE_GENERIC_SMP_HELPERS
+ boolean
+ default y if ADK_TARGET_CPU_WITH_HT
+ default n
diff --git a/target/linux/config/Config.in.flash b/target/linux/config/Config.in.flash
index 3e2898617..fb4f22221 100644
--- a/target/linux/config/Config.in.flash
+++ b/target/linux/config/Config.in.flash
@@ -1,5 +1,8 @@
config ADK_KERNEL_MTD
boolean
+
+config ADK_KERNEL_MTD_MTDRAM
+ boolean
config ADK_KERNEL_MTD_NAND
boolean
diff --git a/target/linux/config/Config.in.graphics b/target/linux/config/Config.in.graphics
index 667593de9..5cbe307f0 100644
--- a/target/linux/config/Config.in.graphics
+++ b/target/linux/config/Config.in.graphics
@@ -3,6 +3,7 @@ config ADK_KERNEL_VT
default y if ADK_HARDWARE_QEMU
default y if ADK_TARGET_WITH_VGA
default y if ADK_NATIVE_SYSTEM_IBM_X40
+ default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default n
config ADK_KERNEL_VT_CONSOLE
@@ -10,6 +11,7 @@ config ADK_KERNEL_VT_CONSOLE
default y if ADK_HARDWARE_QEMU
default y if ADK_TARGET_WITH_VGA
default y if ADK_NATIVE_SYSTEM_IBM_X40
+ default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default n
config ADK_KERNEL_FONTS
@@ -71,7 +73,7 @@ config ADK_KERNEL_FB_SM7XX
Framebuffer support for Lemote Yeelong.
config ADK_HARDWARE_GRAPHICS_INTEL_I915
- prompt "................................ Support for Intel graphic cards (AGP/DRM/KMS)"
+ prompt "............................ Support for Intel graphic cards (AGP/DRM/KMS/NM10)"
boolean
select ADK_KERNEL_FB
select ADK_KERNEL_DRM
@@ -83,7 +85,7 @@ config ADK_HARDWARE_GRAPHICS_INTEL_I915
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_NATIVE_SYSTEM_IBM_X40
default n
- depends on ADK_TARGET_SYSTEM_IBM_X40 || ADK_NATIVE_SYSTEM_IBM_X40
+ depends on ADK_TARGET_SYSTEM_IBM_X40 || ADK_NATIVE_SYSTEM_IBM_X40 || ADK_TARGET_SYSTEM_INTEL_ATOM || ADK_NATIVE_SYSTEM_INTEL_ATOM
help
AGP/DRM/KMS support for Intel chipset i915.
diff --git a/target/linux/config/Config.in.input b/target/linux/config/Config.in.input
index b8566e569..65524a0d3 100644
--- a/target/linux/config/Config.in.input
+++ b/target/linux/config/Config.in.input
@@ -6,6 +6,8 @@ config ADK_KERNEL_INPUT
default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_NATIVE_SYSTEM_IBM_X40
+ default y if ADK_TARGET_SYSTEM_INTEL_ATOM
+ default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
default y if ADK_TARGET_SYSTEM_SHUTTLE_SA76G2
default n
@@ -15,6 +17,8 @@ config ADK_KERNEL_INPUT_KEYBOARD
default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_NATIVE_SYSTEM_IBM_X40
+ default y if ADK_TARGET_SYSTEM_INTEL_ATOM
+ default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
default y if ADK_TARGET_SYSTEM_SHUTTLE_SA76G2
default n
@@ -24,6 +28,8 @@ config ADK_KERNEL_KEYBOARD_ATKBD
default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_NATIVE_SYSTEM_IBM_X40
+ default y if ADK_TARGET_SYSTEM_INTEL_ATOM
+ default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
default y if ADK_TARGET_SYSTEM_SHUTTLE_SA76G2
default n
@@ -33,6 +39,8 @@ config ADK_KERNEL_INPUT_MOUSE
default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_NATIVE_SYSTEM_IBM_X40
+ default y if ADK_TARGET_SYSTEM_INTEL_ATOM
+ default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
default y if ADK_TARGET_SYSTEM_SHUTTLE_SA76G2
default n
@@ -42,6 +50,8 @@ config ADK_KERNEL_INPUT_MOUSEDEV
default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_NATIVE_SYSTEM_IBM_X40
+ default y if ADK_TARGET_SYSTEM_INTEL_ATOM
+ default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
default y if ADK_TARGET_SYSTEM_SHUTTLE_SA76G2
default n
diff --git a/target/linux/config/Config.in.kernel b/target/linux/config/Config.in.kernel
index 696f7afc9..1791a624a 100644
--- a/target/linux/config/Config.in.kernel
+++ b/target/linux/config/Config.in.kernel
@@ -85,3 +85,6 @@ config ADK_KERNEL_NFS_COMMON
config ADK_KERNEL_SUNRPC
boolean
+
+config ADK_KERNEL_PCI
+ boolean
diff --git a/target/linux/config/Config.in.netdevice b/target/linux/config/Config.in.netdevice
index d9a8cd9dc..b615156f9 100644
--- a/target/linux/config/Config.in.netdevice
+++ b/target/linux/config/Config.in.netdevice
@@ -22,6 +22,16 @@ config ADK_KERNEL_NETDEV_1000
config ADK_KERNEL_VIA_RHINE_MMIO
boolean
+config ADK_KERNEL_SMC91X
+ boolean
+ select ADK_KERNEL_NETDEVICES
+ select ADK_KERNEL_NET_ETHERNET
+ select ADK_KERNEL_NET_PCI
+ select ADK_KERNEL_MII
+ default y if ADK_TARGET_QEMU_ARM_MODEL_VERSATILE
+ default n
+ help
+
config ADK_KERNEL_CPMAC
boolean
select ADK_KERNEL_NETDEVICES
@@ -42,6 +52,17 @@ config ADK_KERNEL_MACB
default n
help
+config ADK_KERNEL_PCNET32
+ boolean
+ select ADK_KERNEL_NETDEVICES
+ select ADK_KERNEL_NET_ETHERNET
+ select ADK_KERNEL_NET_PCI
+ select ADK_KERNEL_MII
+ default y if ADK_TARGET_SYSTEM_QEMU_MIPSEL
+ default y if ADK_TARGET_SYSTEM_QEMU_MIPS
+ default n
+ help
+
config ADK_KERNEL_NATSEMI
boolean
select ADK_KERNEL_NETDEVICES
@@ -135,7 +156,7 @@ config ADK_KERNEL_E1000
select ADK_KERNEL_NETDEV_1000
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_NATIVE_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_QEMU_X86
+ default y if ADK_TARGET_SYSTEM_QEMU_I686
default y if ADK_TARGET_SYSTEM_QEMU_X86_64
default n
help
@@ -154,6 +175,8 @@ config ADK_KERNEL_R8169
select ADK_KERNEL_NETDEVICES
select ADK_KERNEL_NET_ETHERNET
select ADK_KERNEL_NETDEV_1000
+ select ADK_KERNEL_MII
+ select ADK_KPACKAGE_KMOD_FW_LOADER
default y if ADK_TARGET_SYSTEM_OVH_RPS
default n
help
@@ -246,6 +269,8 @@ config ADK_KPACKAGE_KMOD_R8169
select ADK_KERNEL_NETDEVICES
select ADK_KERNEL_NET_ETHERNET
select ADK_KERNEL_NETDEV_1000
+ select ADK_KERNEL_MII
+ select ADK_KPACKAGE_KMOD_FW_LOADER
depends on !ADK_KERNEL_R8169
default n
help
diff --git a/target/linux/config/Config.in.network b/target/linux/config/Config.in.network
index 6e4267857..2ec253111 100644
--- a/target/linux/config/Config.in.network
+++ b/target/linux/config/Config.in.network
@@ -158,7 +158,7 @@ config ADK_KPACKAGE_KMOD_NET_IPGRE
config ADK_KPACKAGE_KMOD_IPV6
prompt "kmod-ipv6......................... IPv6 support"
tristate
- default n
+ default m
help
This is complemental support for the IP version 6.
You will still be able to do traditional IPv4 networking as well.
diff --git a/target/linux/config/Config.in.pm b/target/linux/config/Config.in.pm
index 5ffd8aca9..4e35a12b2 100644
--- a/target/linux/config/Config.in.pm
+++ b/target/linux/config/Config.in.pm
@@ -36,6 +36,8 @@ config ADK_HARDWARE_ACPI
select ADK_KERNEL_ACPI_BUTTON
select ADK_KERNEL_ACPI_FAN
select ADK_KERNEL_ACPI_DOCK
+ default y if ADK_TARGET_SYSTEM_INTEL_ATOM
+ default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_NATIVE_SYSTEM_IBM_X40
default n
@@ -46,6 +48,8 @@ config ADK_KERNEL_SUSPEND
prompt "Enable Suspend-to-RAM support"
boolean
select ADK_KERNEL_PM
+ default y if ADK_TARGET_SYSTEM_INTEL_ATOM
+ default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_NATIVE_SYSTEM_IBM_X40
default n
@@ -58,6 +62,8 @@ config ADK_KERNEL_HIBERNATION
select ADK_KERNEL_PM
select ADK_KERNEL_SWAP
select BUSYBOX_SWAPONOFF
+ default y if ADK_TARGET_SYSTEM_INTEL_ATOM
+ default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_NATIVE_SYSTEM_IBM_X40
default n
diff --git a/target/linux/config/Config.in.sensors b/target/linux/config/Config.in.sensors
new file mode 100644
index 000000000..941913bbd
--- /dev/null
+++ b/target/linux/config/Config.in.sensors
@@ -0,0 +1,25 @@
+menu "Sensors"
+
+config ADK_KERNEL_HWMON
+ boolean
+
+config ADK_KPACKAGE_KMOD_CORETEMP
+ prompt "kmod-coretemp..................... Coretemp"
+ boolean
+ select ADK_KERNEL_I2C
+ select ADK_KERNEL_I2C_CHARDEV
+ select ADK_KERNEL_HWMON
+ select ADK_KERNEL_EXPERIMENTAL
+ default n
+ help
+ Coretemp module
+
+config ADK_KPACKAGE_KMOD_IT87
+ prompt "kmod-it87......................... it87"
+ boolean
+ default n
+ help
+ Module for IT87 smbus chipsets
+
+endmenu
+
diff --git a/target/linux/config/Config.in.serial b/target/linux/config/Config.in.serial
new file mode 100644
index 000000000..adc25312d
--- /dev/null
+++ b/target/linux/config/Config.in.serial
@@ -0,0 +1,15 @@
+config ADK_KERNEL_SERIAL_PXA
+ boolean
+ default y if ADK_TARGET_QEMU_ARM_MODEL_SPITZ
+
+config ADK_KERNEL_SERIAL_PXA_CONSOLE
+ boolean
+ default y if ADK_TARGET_QEMU_ARM_MODEL_SPITZ
+
+config ADK_KERNEL_SERIAL_AMBA_PL011
+ boolean
+ default y if ADK_TARGET_QEMU_ARM_MODEL_VERSATILE
+
+config ADK_KERNEL_SERIAL_AMBA_PL011_CONSOLE
+ boolean
+ default y if ADK_TARGET_QEMU_ARM_MODEL_VERSATILE
diff --git a/target/linux/config/Config.in.spi b/target/linux/config/Config.in.spi
index a141f8231..73db5e86d 100644
--- a/target/linux/config/Config.in.spi
+++ b/target/linux/config/Config.in.spi
@@ -12,3 +12,7 @@ config ADK_KERNEL_SPI_RB4XX
config ADK_KERNEL_SPI_RB4XX_CPLD
select ADK_KERNEL_SPI
boolean
+
+config ADK_KERNEL_SPI_PXA2XX
+ select ADK_KERNEL_SPI
+ boolean
diff --git a/target/linux/config/Config.in.systems b/target/linux/config/Config.in.systems
index 8750ac281..3e64caddc 100644
--- a/target/linux/config/Config.in.systems
+++ b/target/linux/config/Config.in.systems
@@ -1,3 +1,10 @@
+# page size
+config ADK_KERNEL_PAGE_SIZE_4KB
+ boolean
+
+config ADK_KERNEL_PAGE_SIZE_16KB
+ boolean
+
# mips systems
config ADK_KERNEL_ATHEROS_AR231X
boolean
@@ -28,6 +35,18 @@ config ADK_KERNEL_LEMOTE_MACH2F
boolean
# arm systems
+config ADK_KERNEL_ARCH_VERSATILE
+ boolean
+
+config ADK_KERNEL_ARCH_PXA
+ boolean
+
+config ADK_KERNEL_PXA_SHARPSL
+ boolean
+
+config ADK_KERNEL_MACH_SPITZ
+ boolean
+
config ADK_KERNEL_ARCH_AT91
boolean
@@ -37,6 +56,7 @@ config ADK_KERNEL_ARCH_AT91SAM9G20
config ADK_KERNEL_MACH_ACMENETUSFOXG20
boolean
+# endianesss and ABI
config ADK_KERNEL_AEABI
boolean
@@ -45,3 +65,7 @@ config ADK_KERNEL_CPU_BIG_ENDIAN
config ADK_KERNEL_CPU_LITTLE_ENDIAN
boolean
+
+# cris systems
+config ADK_KERNEL_ETRAXFS
+ boolean
diff --git a/target/linux/config/Config.in.usb b/target/linux/config/Config.in.usb
index f16ef7dab..057fa1ffc 100644
--- a/target/linux/config/Config.in.usb
+++ b/target/linux/config/Config.in.usb
@@ -35,6 +35,8 @@ config ADK_KPACKAGE_KMOD_USB
default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D13
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_NATIVE_SYSTEM_IBM_X40
+ default y if ADK_TARGET_SYSTEM_INTEL_ATOM
+ default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
default y if ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
default y if ADK_TARGET_SYSTEM_FOXBOARD_LX
@@ -78,6 +80,8 @@ config ADK_KPACKAGE_KMOD_USB_UHCI_HCD
depends on !ADK_TARGET_SYSTEM_FOXBOARD_LX
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_NATIVE_SYSTEM_IBM_X40
+ default y if ADK_TARGET_SYSTEM_INTEL_ATOM
+ default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
default n
help
@@ -101,6 +105,8 @@ config ADK_KPACKAGE_KMOD_USB_OHCI_HCD
default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D2
default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D13
default y if ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
+ default y if ADK_TARGET_SYSTEM_INTEL_ATOM
+ default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default n
help
The Open Host Controller Interface (OHCI) is a standard for accessing
@@ -152,6 +158,8 @@ config ADK_KPACKAGE_KMOD_USB_EHCI_HCD
default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D2
default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D13
+ default y if ADK_TARGET_SYSTEM_INTEL_ATOM
+ default y if ADK_NATIVE_SYSTEM_INTEL_ATOM
default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_NATIVE_SYSTEM_IBM_X40
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
diff --git a/target/linux/patches/2.6.39/cris-etrax.patch b/target/linux/patches/2.6.39/cris-etrax.patch
new file mode 100644
index 000000000..a80d9a8b8
--- /dev/null
+++ b/target/linux/patches/2.6.39/cris-etrax.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-2.6.39.orig/arch/cris/arch-v32/drivers/i2c.h linux-2.6.39/arch/cris/arch-v32/drivers/i2c.h
+--- linux-2.6.39.orig/arch/cris/arch-v32/drivers/i2c.h 2011-05-19 06:06:34.000000000 +0200
++++ linux-2.6.39/arch/cris/arch-v32/drivers/i2c.h 2011-08-24 19:15:05.000000000 +0200
+@@ -2,7 +2,7 @@
+ #include <linux/init.h>
+
+ /* High level I2C actions */
+-int __init i2c_init(void);
++static int __init i2c_init(void);
+ int i2c_write(unsigned char theSlave, void *data, size_t nbytes);
+ int i2c_read(unsigned char theSlave, void *data, size_t nbytes);
+ int i2c_writereg(unsigned char theSlave, unsigned char theReg, unsigned char theValue);
diff --git a/target/linux/patches/2.6.39/mips-malta.patch b/target/linux/patches/2.6.39/mips-malta.patch
new file mode 100644
index 000000000..cc8789dca
--- /dev/null
+++ b/target/linux/patches/2.6.39/mips-malta.patch
@@ -0,0 +1,135 @@
+http://lkml.indiana.edu/hypermail/linux/kernel/1105.3/02199.html
+
+diff -Nur linux-2.6.39.orig/arch/mips/include/asm/smp-ops.h linux-2.6.39/arch/mips/include/asm/smp-ops.h
+--- linux-2.6.39.orig/arch/mips/include/asm/smp-ops.h 2011-05-19 06:06:34.000000000 +0200
++++ linux-2.6.39/arch/mips/include/asm/smp-ops.h 2011-08-29 04:39:03.360480881 +0200
+@@ -56,8 +56,43 @@
+
+ #endif /* !CONFIG_SMP */
+
+-extern struct plat_smp_ops up_smp_ops;
+-extern struct plat_smp_ops cmp_smp_ops;
+-extern struct plat_smp_ops vsmp_smp_ops;
++static inline int register_up_smp_ops(void)
++{
++#ifdef CONFIG_SMP_UP
++ extern struct plat_smp_ops up_smp_ops;
++
++ register_smp_ops(&up_smp_ops);
++
++ return 0;
++#else
++ return -ENODEV;
++#endif
++}
++
++static inline int register_cmp_smp_ops(void)
++{
++#ifdef CONFIG_MIPS_CMP
++ extern struct plat_smp_ops cmp_smp_ops;
++
++ register_smp_ops(&cmp_smp_ops);
++
++ return 0;
++#else
++ return -ENODEV;
++#endif
++}
++
++static inline int register_vsmp_smp_ops(void)
++{
++#ifdef CONFIG_MIPS_MT_SMP
++ extern struct plat_smp_ops vsmp_smp_ops;
++
++ register_smp_ops(&vsmp_smp_ops);
++
++ return 0;
++#else
++ return -ENODEV;
++#endif
++}
+
+ #endif /* __ASM_SMP_OPS_H */
+diff -Nur linux-2.6.39.orig/arch/mips/mipssim/sim_setup.c linux-2.6.39/arch/mips/mipssim/sim_setup.c
+--- linux-2.6.39.orig/arch/mips/mipssim/sim_setup.c 2011-05-19 06:06:34.000000000 +0200
++++ linux-2.6.39/arch/mips/mipssim/sim_setup.c 2011-08-29 04:39:03.390480572 +0200
+@@ -59,18 +59,17 @@
+
+ prom_meminit();
+
+-#ifdef CONFIG_MIPS_MT_SMP
+- if (cpu_has_mipsmt)
+- register_smp_ops(&vsmp_smp_ops);
+- else
+- register_smp_ops(&up_smp_ops);
+-#endif
++ if (cpu_has_mipsmt) {
++ if (!register_vsmp_smp_ops())
++ return;
++
+ #ifdef CONFIG_MIPS_MT_SMTC
+- if (cpu_has_mipsmt)
+ register_smp_ops(&ssmtc_smp_ops);
+- else
+- register_smp_ops(&up_smp_ops);
++ return;
+ #endif
++ }
++
++ register_up_smp_ops();
+ }
+
+ static void __init serial_init(void)
+diff -Nur linux-2.6.39.orig/arch/mips/mti-malta/malta-init.c linux-2.6.39/arch/mips/mti-malta/malta-init.c
+--- linux-2.6.39.orig/arch/mips/mti-malta/malta-init.c 2011-05-19 06:06:34.000000000 +0200
++++ linux-2.6.39/arch/mips/mti-malta/malta-init.c 2011-08-29 04:39:03.700480601 +0200
+@@ -29,6 +29,7 @@
+ #include <asm/system.h>
+ #include <asm/cacheflush.h>
+ #include <asm/traps.h>
++#include <asm/smp-ops.h>
+
+ #include <asm/gcmpregs.h>
+ #include <asm/mips-boards/prom.h>
+@@ -358,15 +359,14 @@
+ #ifdef CONFIG_SERIAL_8250_CONSOLE
+ console_config();
+ #endif
+-#ifdef CONFIG_MIPS_CMP
+ /* Early detection of CMP support */
+ if (gcmp_probe(GCMP_BASE_ADDR, GCMP_ADDRSPACE_SZ))
+- register_smp_ops(&cmp_smp_ops);
+- else
+-#endif
+-#ifdef CONFIG_MIPS_MT_SMP
+- register_smp_ops(&vsmp_smp_ops);
+-#endif
++ if (!register_cmp_smp_ops())
++ return;
++
++ if (!register_vsmp_smp_ops())
++ return;
++
+ #ifdef CONFIG_MIPS_MT_SMTC
+ register_smp_ops(&msmtc_smp_ops);
+ #endif
+diff -Nur linux-2.6.39.orig/arch/mips/pmc-sierra/msp71xx/msp_setup.c linux-2.6.39/arch/mips/pmc-sierra/msp71xx/msp_setup.c
+--- linux-2.6.39.orig/arch/mips/pmc-sierra/msp71xx/msp_setup.c 2011-05-19 06:06:34.000000000 +0200
++++ linux-2.6.39/arch/mips/pmc-sierra/msp71xx/msp_setup.c 2011-08-29 04:39:03.790480302 +0200
+@@ -228,13 +228,11 @@
+ */
+ msp_serial_setup();
+
+-#ifdef CONFIG_MIPS_MT_SMP
+- register_smp_ops(&vsmp_smp_ops);
+-#endif
+-
++ if (register_vsmp_smp_ops()) {
+ #ifdef CONFIG_MIPS_MT_SMTC
+- register_smp_ops(&msp_smtc_smp_ops);
++ register_smp_ops(&msp_smtc_smp_ops);
+ #endif
++ }
+
+ #ifdef CONFIG_PMCTWILED
+ /*
diff --git a/target/linux/patches/2.6.39/rb4xx.patch b/target/linux/patches/2.6.39/rb4xx.patch
index 49fd204d7..4f2e1cd84 100644
--- a/target/linux/patches/2.6.39/rb4xx.patch
+++ b/target/linux/patches/2.6.39/rb4xx.patch
@@ -1,6 +1,571 @@
+diff -Nur linux-2.6.39.orig/arch/mips/Kconfig linux-2.6.39/arch/mips/Kconfig
+--- linux-2.6.39.orig/arch/mips/Kconfig 2011-05-19 06:06:34.000000000 +0200
++++ linux-2.6.39/arch/mips/Kconfig 2011-08-24 18:17:24.000000000 +0200
+@@ -84,6 +84,23 @@
+ help
+ Support for the Atheros AR71XX/AR724X/AR913X SoCs.
+
++config ATHEROS_AR71XX
++ bool "Atheros AR71xx based boards"
++ select CEVT_R4K
++ select CSRC_R4K
++ select DMA_NONCOHERENT
++ select HW_HAS_PCI
++ select IRQ_CPU
++ select ARCH_REQUIRE_GPIOLIB
++ select SYS_HAS_CPU_MIPS32_R1
++ select SYS_HAS_CPU_MIPS32_R2
++ select SYS_SUPPORTS_32BIT_KERNEL
++ select SYS_SUPPORTS_BIG_ENDIAN
++ select SYS_HAS_EARLY_PRINTK
++ select MIPS_MACHINE
++ help
++ Support for Atheros AR71xx based boards.
++
+ config BCM47XX
+ bool "Broadcom BCM47XX based boards"
+ select CEVT_R4K
+@@ -739,6 +756,7 @@
+ endchoice
+
+ source "arch/mips/alchemy/Kconfig"
++source "arch/mips/ar71xx/Kconfig"
+ source "arch/mips/ath79/Kconfig"
+ source "arch/mips/bcm63xx/Kconfig"
+ source "arch/mips/jazz/Kconfig"
+@@ -907,6 +925,9 @@
+ config MIPS_DISABLE_OBSOLETE_IDE
+ bool
+
++config MYLOADER
++ bool
++
+ config SYNC_R4K
+ bool
+
+diff -Nur linux-2.6.39.orig/arch/mips/Makefile linux-2.6.39/arch/mips/Makefile
+--- linux-2.6.39.orig/arch/mips/Makefile 2011-05-19 06:06:34.000000000 +0200
++++ linux-2.6.39/arch/mips/Makefile 2011-08-24 18:17:24.000000000 +0200
+@@ -158,6 +158,13 @@
+ endif
+ cflags-$(CONFIG_CAVIUM_CN63XXP1) += -Wa,-mfix-cn63xxp1
+
++#
++# Atheros AR71xx
++#
++core-$(CONFIG_ATHEROS_AR71XX) += arch/mips/ar71xx/
++cflags-$(CONFIG_ATHEROS_AR71XX) += -I$(srctree)/arch/mips/include/asm/mach-ar71xx
++load-$(CONFIG_ATHEROS_AR71XX) += 0xffffffff80060000
++
+ cflags-$(CONFIG_CPU_R4000_WORKAROUNDS) += $(call cc-option,-mfix-r4000,)
+ cflags-$(CONFIG_CPU_R4400_WORKAROUNDS) += $(call cc-option,-mfix-r4400,)
+ cflags-$(CONFIG_CPU_DADDI_WORKAROUNDS) += $(call cc-option,-mno-daddi,)
+@@ -174,6 +181,7 @@
+ #
+ libs-$(CONFIG_ARC) += arch/mips/fw/arc/
+ libs-$(CONFIG_CFE) += arch/mips/fw/cfe/
++libs-$(CONFIG_MYLOADER) += arch/mips/fw/myloader/
+ libs-$(CONFIG_SNIPROM) += arch/mips/fw/sni/
+ libs-y += arch/mips/fw/lib/
+
+diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/Kconfig linux-2.6.39/arch/mips/ar71xx/Kconfig
+--- linux-2.6.39.orig/arch/mips/ar71xx/Kconfig 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.39/arch/mips/ar71xx/Kconfig 2011-08-24 18:17:23.000000000 +0200
+@@ -0,0 +1,420 @@
++if ATHEROS_AR71XX
++
++menu "Atheros AR71xx machine selection"
++
++config AR71XX_MACH_AP81
++ bool "Atheros AP81 board support"
++ select SOC_AR913X
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_AR9XXX_WMAC
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_DEV_USB
++ default n
++
++config AR71XX_MACH_AP83
++ bool "Atheros AP83 board support"
++ select SOC_AR913X
++ select AR71XX_DEV_AR9XXX_WMAC
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_DEV_USB
++ default n
++
++config AR71XX_MACH_AP96
++ bool "Atheros AP96 board support"
++ select SOC_AR71XX
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_AP94_PCI if PCI
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_DEV_USB
++ default n
++
++config AR71XX_MACH_AP121
++ bool "Atheros AP121 board support"
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_DEV_USB
++ select AR71XX_DEV_AR9XXX_WMAC
++ select SOC_AR933X
++ default n
++
++config AR71XX_MACH_DB120
++ bool "Atheros DB120 board support"
++ select SOC_AR934X
++ select AR71XX_DEV_AR9XXX_WMAC
++ select AR71XX_DEV_DB120_PCI if PCI
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_DEV_USB
++ default n
++
++config AR71XX_MACH_DIR_600_A1
++ bool "D-Link DIR-600 rev. A1 support"
++ select SOC_AR724X
++ select AR71XX_DEV_AP91_PCI if PCI
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_NVRAM
++ default n
++
++config AR71XX_MACH_DIR_615_C1
++ bool "D-Link DIR-615 rev. C1 support"
++ select SOC_AR913X
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_AR9XXX_WMAC
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_NVRAM
++ default n
++
++config AR71XX_MACH_DIR_825_B1
++ bool "D-Link DIR-825 rev. B1 board support"
++ select SOC_AR71XX
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_AP94_PCI if PCI
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_DEV_USB
++ default n
++
++config AR71XX_MACH_JA76PF
++ bool "jjPlus JA76PF board support"
++ select SOC_AR71XX
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_PB42_PCI if PCI
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_DEV_USB
++ default n
++
++config AR71XX_MACH_JWAP003
++ bool "jjPlus JWAP003 board support"
++ select SOC_AR71XX
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_PB42_PCI if PCI
++ select AR71XX_DEV_USB
++ default n
++
++config AR71XX_MACH_PB42
++ bool "Atheros PB42 board support"
++ select SOC_AR71XX
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_PB42_PCI if PCI
++ default n
++
++config AR71XX_MACH_PB44
++ bool "Atheros PB44 board support"
++ select SOC_AR71XX
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_PB42_PCI if PCI
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_DEV_USB
++ default n
++
++config AR71XX_MACH_PB92
++ bool "Atheros PB92 board support"
++ select SOC_AR724X
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_PB9X_PCI if PCI
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_DEV_USB
++ default n
++
++config AR71XX_MACH_AW_NR580
++ bool "AzureWave AW-NR580 board support"
++ select SOC_AR71XX
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_PB42_PCI if PCI
++ select AR71XX_DEV_LEDS_GPIO
++ default n
++
++config AR71XX_MACH_WZR_HP_AG300H
++ bool "Buffalo WZR-HP-AG300H board support"
++ select SOC_AR71XX
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_DEV_USB
++ default n
++
++config AR71XX_MACH_WZR_HP_G300NH
++ bool "Buffalo WZR-HP-G300NH board support"
++ select SOC_AR913X
++ select AR71XX_DEV_AR9XXX_WMAC
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_DEV_USB
++ select RTL8366_SMI
++ default n
++
++config AR71XX_MACH_WP543
++ bool "Compex WP543/WPJ543 board support"
++ select SOC_AR71XX
++ select MYLOADER
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_PB42_PCI if PCI
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_DEV_USB
++ default n
++
++config AR71XX_MACH_WRT160NL
++ bool "Linksys WRT160NL board support"
++ select SOC_AR913X
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_AR9XXX_WMAC
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_DEV_USB
++ select AR71XX_NVRAM
++ default n
++
++config AR71XX_MACH_WRT400N
++ bool "Linksys WRT400N board support"
++ select SOC_AR71XX
++ select AR71XX_DEV_AP94_PCI if PCI
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ default n
++
++config AR71XX_MACH_RB4XX
++ bool "MikroTik RouterBOARD 4xx series support"
++ select SOC_AR71XX
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_DEV_USB
++ default n
++
++config AR71XX_MACH_RB750
++ bool "MikroTik RouterBOARD 750 support"
++ select SOC_AR724X
++ default n
++
++config AR71XX_MACH_WNDR3700
++ bool "NETGEAR WNDR3700 board support"
++ select SOC_AR71XX
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_AP94_PCI if PCI
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_DEV_USB
++ default n
++
++config AR71XX_MACH_WNR2000
++ bool "NETGEAR WNR2000 board support"
++ select SOC_AR913X
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_AR9XXX_WMAC
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ default n
++
++config AR71XX_MACH_MZK_W04NU
++ bool "Planex MZK-W04NU board support"
++ select SOC_AR913X
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_AR9XXX_WMAC
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_DEV_USB
++ default n
++
++config AR71XX_MACH_MZK_W300NH
++ bool "Planex MZK-W300NH board support"
++ select SOC_AR913X
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_AR9XXX_WMAC
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ default n
++
++config AR71XX_MACH_NBG460N
++ bool "Zyxel NBG460N/550N/550NH board support"
++ select SOC_AR913X
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_AR9XXX_WMAC
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ default n
++
++config AR71XX_MACH_TL_MR3X20
++ bool "TP-LINK TL-MR3220/3420 support"
++ select SOC_AR724X
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_AP91_PCI if PCI
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_DEV_USB
++ default n
++
++config AR71XX_MACH_TL_WA901ND
++ bool "TP-LINK TL-WA901ND support"
++ select SOC_AR724X
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_AP91_PCI if PCI
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ default n
++
++config AR71XX_MACH_TL_WA901ND_V2
++ bool "TP-LINK TL-WA901ND v2 support"
++ select SOC_AR913X
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_AR9XXX_WMAC
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ default n
++
++config AR71XX_MACH_TL_WR741ND
++ bool "TP-LINK TL-WR741ND support"
++ select SOC_AR724X
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_AP91_PCI if PCI
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ default n
++
++config AR71XX_MACH_TL_WR841N_V1
++ bool "TP-LINK TL-WR841N v1 support"
++ select SOC_AR71XX
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_PB42_PCI if PCI
++ select AR71XX_DEV_DSA
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ default n
++
++config AR71XX_MACH_TL_WR941ND
++ bool "TP-LINK TL-WR941ND support"
++ select SOC_AR913X
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_AR9XXX_WMAC
++ select AR71XX_DEV_DSA
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ default n
++
++config AR71XX_MACH_TL_WR1043ND
++ bool "TP-LINK TL-WR1043ND support"
++ select SOC_AR913X
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_AR9XXX_WMAC
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_DEV_USB
++ default n
++
++config AR71XX_MACH_TEW_632BRP
++ bool "TRENDnet TEW-632BRP support"
++ select SOC_AR913X
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_AR9XXX_WMAC
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_NVRAM
++ default n
++
++config AR71XX_MACH_UBNT
++ bool "Ubiquiti AR71xx based boards support"
++ select SOC_AR71XX
++ select SOC_AR724X
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_AP91_PCI if PCI
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ select AR71XX_DEV_PB42_PCI if PCI
++ select AR71XX_DEV_USB
++ default n
++
++config AR71XX_MACH_EAP7660D
++ bool "Senao EAP7660D support"
++ select SOC_AR71XX
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ default n
++
++config AR71XX_MACH_ZCN_1523H
++ bool "Zcomax ZCN-1523H support"
++ select SOC_AR724X
++ select AR71XX_DEV_M25P80
++ select AR71XX_DEV_AP91_PCI if PCI
++ select AR71XX_DEV_GPIO_BUTTONS
++ select AR71XX_DEV_LEDS_GPIO
++ default n
++
++endmenu
++
++config SOC_AR71XX
++ bool
++ select USB_ARCH_HAS_EHCI
++ select USB_ARCH_HAS_OHCI
++
++config SOC_AR724X
++ bool
++ select USB_ARCH_HAS_EHCI
++ select USB_ARCH_HAS_OHCI
++
++config SOC_AR913X
++ bool
++ select USB_ARCH_HAS_EHCI
++
++config SOC_AR934X
++ bool
++ select USB_ARCH_HAS_EHCI
++
++config AR71XX_DEV_M25P80
++ def_bool n
++
++config AR71XX_DEV_AP91_PCI
++ select AR71XX_PCI_ATH9K_FIXUP
++ def_bool n
++
++config AR71XX_DEV_AP94_PCI
++ select AR71XX_PCI_ATH9K_FIXUP
++ def_bool n
++
++config AR71XX_DEV_AR9XXX_WMAC
++ def_bool n
++
++config AR71XX_DEV_DB120_PCI
++ select AR71XX_PCI_ATH9K_FIXUP
++ def_bool n
++
++config AR71XX_DEV_DSA
++ def_bool n
++
++config AR71XX_DEV_GPIO_BUTTONS
++ def_bool n
++
++config AR71XX_DEV_LEDS_GPIO
++ def_bool n
++
++config AR71XX_DEV_PB42_PCI
++ def_bool n
++
++config AR71XX_DEV_PB9X_PCI
++ def_bool n
++
++config AR71XX_DEV_USB
++ def_bool n
++
++config AR71XX_NVRAM
++ def_bool n
++
++config AR71XX_PCI_ATH9K_FIXUP
++ def_bool n
++
++config SOC_AR933X
++ bool
++ select USB_ARCH_HAS_EHCI
++
++endif
+diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/Makefile linux-2.6.39/arch/mips/ar71xx/Makefile
+--- linux-2.6.39.orig/arch/mips/ar71xx/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.39/arch/mips/ar71xx/Makefile 2011-08-24 18:17:23.000000000 +0200
+@@ -0,0 +1,67 @@
++#
++# Makefile for the Atheros AR71xx SoC specific parts of the kernel
++#
++# Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
++# Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
++#
++# This program is free software; you can redistribute it and/or modify it
++# under the terms of the GNU General Public License version 2 as published
++# by the Free Software Foundation.
++
++obj-y := prom.o irq.o setup.o devices.o gpio.o ar71xx.o
++
++obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
++obj-$(CONFIG_PCI) += pci.o
++
++obj-$(CONFIG_AR71XX_DEV_AP91_PCI) += dev-ap91-pci.o
++obj-$(CONFIG_AR71XX_DEV_AP94_PCI) += dev-ap94-pci.o
++obj-$(CONFIG_AR71XX_DEV_AR9XXX_WMAC) += dev-ar9xxx-wmac.o
++obj-$(CONFIG_AR71XX_DEV_DB120_PCI) += dev-db120-pci.o
++obj-$(CONFIG_AR71XX_DEV_DSA) += dev-dsa.o
++obj-$(CONFIG_AR71XX_DEV_GPIO_BUTTONS) += dev-gpio-buttons.o
++obj-$(CONFIG_AR71XX_DEV_LEDS_GPIO) += dev-leds-gpio.o
++obj-$(CONFIG_AR71XX_DEV_M25P80) += dev-m25p80.o
++obj-$(CONFIG_AR71XX_DEV_PB42_PCI) += dev-pb42-pci.o
++obj-$(CONFIG_AR71XX_DEV_PB9X_PCI) += dev-pb9x-pci.o
++obj-$(CONFIG_AR71XX_DEV_USB) += dev-usb.o
++
++obj-$(CONFIG_AR71XX_NVRAM) += nvram.o
++obj-$(CONFIG_AR71XX_PCI_ATH9K_FIXUP) += pci-ath9k-fixup.o
++
++obj-$(CONFIG_AR71XX_MACH_AP121) += mach-ap121.o
++obj-$(CONFIG_AR71XX_MACH_AP81) += mach-ap81.o
++obj-$(CONFIG_AR71XX_MACH_AP83) += mach-ap83.o
++obj-$(CONFIG_AR71XX_MACH_AP96) += mach-ap96.o
++obj-$(CONFIG_AR71XX_MACH_AW_NR580) += mach-aw-nr580.o
++obj-$(CONFIG_AR71XX_MACH_DB120) += mach-db120.o
++obj-$(CONFIG_AR71XX_MACH_DIR_600_A1) += mach-dir-600-a1.o
++obj-$(CONFIG_AR71XX_MACH_DIR_615_C1) += mach-dir-615-c1.o
++obj-$(CONFIG_AR71XX_MACH_DIR_825_B1) += mach-dir-825-b1.o
++obj-$(CONFIG_AR71XX_MACH_EAP7660D) += mach-eap7660d.o
++obj-$(CONFIG_AR71XX_MACH_JA76PF) += mach-ja76pf.o
++obj-$(CONFIG_AR71XX_MACH_JWAP003) += mach-jwap003.o
++obj-$(CONFIG_AR71XX_MACH_MZK_W04NU) += mach-mzk-w04nu.o
++obj-$(CONFIG_AR71XX_MACH_MZK_W300NH) += mach-mzk-w300nh.o
++obj-$(CONFIG_AR71XX_MACH_NBG460N) += mach-nbg460n.o
++obj-$(CONFIG_AR71XX_MACH_PB42) += mach-pb42.o
++obj-$(CONFIG_AR71XX_MACH_PB44) += mach-pb44.o
++obj-$(CONFIG_AR71XX_MACH_PB92) += mach-pb92.o
++obj-$(CONFIG_AR71XX_MACH_RB4XX) += mach-rb4xx.o
++obj-$(CONFIG_AR71XX_MACH_RB750) += mach-rb750.o
++obj-$(CONFIG_AR71XX_MACH_TEW_632BRP) += mach-tew-632brp.o
++obj-$(CONFIG_AR71XX_MACH_TL_MR3X20) += mach-tl-mr3x20.o
++obj-$(CONFIG_AR71XX_MACH_TL_WA901ND) += mach-tl-wa901nd.o
++obj-$(CONFIG_AR71XX_MACH_TL_WA901ND_V2) += mach-tl-wa901nd-v2.o
++obj-$(CONFIG_AR71XX_MACH_TL_WR741ND) += mach-tl-wr741nd.o
++obj-$(CONFIG_AR71XX_MACH_TL_WR841N_V1) += mach-tl-wr841n.o
++obj-$(CONFIG_AR71XX_MACH_TL_WR941ND) += mach-tl-wr941nd.o
++obj-$(CONFIG_AR71XX_MACH_TL_WR1043ND) += mach-tl-wr1043nd.o
++obj-$(CONFIG_AR71XX_MACH_UBNT) += mach-ubnt.o
++obj-$(CONFIG_AR71XX_MACH_WNDR3700) += mach-wndr3700.o
++obj-$(CONFIG_AR71XX_MACH_WNR2000) += mach-wnr2000.o
++obj-$(CONFIG_AR71XX_MACH_WP543) += mach-wp543.o
++obj-$(CONFIG_AR71XX_MACH_WRT160NL) += mach-wrt160nl.o
++obj-$(CONFIG_AR71XX_MACH_WRT400N) += mach-wrt400n.o
++obj-$(CONFIG_AR71XX_MACH_WZR_HP_G300NH) += mach-wzr-hp-g300nh.o
++obj-$(CONFIG_AR71XX_MACH_WZR_HP_AG300H) += mach-wzr-hp-ag300h.o
++obj-$(CONFIG_AR71XX_MACH_ZCN_1523H) += mach-zcn-1523h.o
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/ar71xx.c linux-2.6.39/arch/mips/ar71xx/ar71xx.c
--- linux-2.6.39.orig/arch/mips/ar71xx/ar71xx.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/ar71xx.c 2011-08-24 02:41:55.227990426 +0200
++++ linux-2.6.39/arch/mips/ar71xx/ar71xx.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,230 @@
+/*
+ * AR71xx SoC routines
@@ -234,7 +799,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/ar71xx.c linux-2.6.39/arch/mips/ar7
+EXPORT_SYMBOL_GPL(ar71xx_flash_release);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-ap91-pci.c linux-2.6.39/arch/mips/ar71xx/dev-ap91-pci.c
--- linux-2.6.39.orig/arch/mips/ar71xx/dev-ap91-pci.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-ap91-pci.c 2011-08-24 02:41:55.277990824 +0200
++++ linux-2.6.39/arch/mips/ar71xx/dev-ap91-pci.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,71 @@
+/*
+ * Atheros AP91 reference board PCI initialization
@@ -309,7 +874,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-ap91-pci.c linux-2.6.39/arch/mi
+}
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-ap91-pci.h linux-2.6.39/arch/mips/ar71xx/dev-ap91-pci.h
--- linux-2.6.39.orig/arch/mips/ar71xx/dev-ap91-pci.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-ap91-pci.h 2011-08-24 02:41:55.287981779 +0200
++++ linux-2.6.39/arch/mips/ar71xx/dev-ap91-pci.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,25 @@
+/*
+ * Atheros AP91 reference board PCI initialization
@@ -338,7 +903,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-ap91-pci.h linux-2.6.39/arch/mi
+
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-ap94-pci.c linux-2.6.39/arch/mips/ar71xx/dev-ap94-pci.c
--- linux-2.6.39.orig/arch/mips/ar71xx/dev-ap94-pci.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-ap94-pci.c 2011-08-24 02:41:55.287981779 +0200
++++ linux-2.6.39/arch/mips/ar71xx/dev-ap94-pci.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,109 @@
+/*
+ * Atheros AP94 reference board PCI initialization
@@ -451,7 +1016,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-ap94-pci.c linux-2.6.39/arch/mi
+}
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-ap94-pci.h linux-2.6.39/arch/mips/ar71xx/dev-ap94-pci.h
--- linux-2.6.39.orig/arch/mips/ar71xx/dev-ap94-pci.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-ap94-pci.h 2011-08-24 02:41:55.287981779 +0200
++++ linux-2.6.39/arch/mips/ar71xx/dev-ap94-pci.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,31 @@
+/*
+ * Atheros AP94 reference board PCI initialization
@@ -486,7 +1051,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-ap94-pci.h linux-2.6.39/arch/mi
+
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-ar9xxx-wmac.c linux-2.6.39/arch/mips/ar71xx/dev-ar9xxx-wmac.c
--- linux-2.6.39.orig/arch/mips/ar71xx/dev-ar9xxx-wmac.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-ar9xxx-wmac.c 2011-08-24 02:41:55.287981779 +0200
++++ linux-2.6.39/arch/mips/ar71xx/dev-ar9xxx-wmac.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,154 @@
+/*
+ * Atheros AR9XXX SoCs built-in WMAC device support
@@ -644,7 +1209,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-ar9xxx-wmac.c linux-2.6.39/arch
+}
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-ar9xxx-wmac.h linux-2.6.39/arch/mips/ar71xx/dev-ar9xxx-wmac.h
--- linux-2.6.39.orig/arch/mips/ar71xx/dev-ar9xxx-wmac.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-ar9xxx-wmac.h 2011-08-24 02:41:55.297981663 +0200
++++ linux-2.6.39/arch/mips/ar71xx/dev-ar9xxx-wmac.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,20 @@
+/*
+ * Atheros AR9XXX SoCs built-in WMAC device support
@@ -668,7 +1233,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-ar9xxx-wmac.h linux-2.6.39/arch
+#endif /* _AR71XX_DEV_AR9XXX_WMAC_H */
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-db120-pci.c linux-2.6.39/arch/mips/ar71xx/dev-db120-pci.c
--- linux-2.6.39.orig/arch/mips/ar71xx/dev-db120-pci.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-db120-pci.c 2011-08-24 02:41:55.317990461 +0200
++++ linux-2.6.39/arch/mips/ar71xx/dev-db120-pci.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,31 @@
+/*
+ * Atheros db120 reference board PCI initialization
@@ -703,7 +1268,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-db120-pci.c linux-2.6.39/arch/m
+}
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-db120-pci.h linux-2.6.39/arch/mips/ar71xx/dev-db120-pci.h
--- linux-2.6.39.orig/arch/mips/ar71xx/dev-db120-pci.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-db120-pci.h 2011-08-24 02:41:55.327990934 +0200
++++ linux-2.6.39/arch/mips/ar71xx/dev-db120-pci.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,22 @@
+/*
+ * Atheros DB120 reference board PCI initialization
@@ -729,7 +1294,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-db120-pci.h linux-2.6.39/arch/m
+#endif /* _AR71XX_DEV_DB120_PCI_H */
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-dsa.c linux-2.6.39/arch/mips/ar71xx/dev-dsa.c
--- linux-2.6.39.orig/arch/mips/ar71xx/dev-dsa.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-dsa.c 2011-08-24 02:41:55.337990441 +0200
++++ linux-2.6.39/arch/mips/ar71xx/dev-dsa.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,50 @@
+/*
+ * Atheros AR71xx DSA switch device support
@@ -783,7 +1348,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-dsa.c linux-2.6.39/arch/mips/ar
+}
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-dsa.h linux-2.6.39/arch/mips/ar71xx/dev-dsa.h
--- linux-2.6.39.orig/arch/mips/ar71xx/dev-dsa.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-dsa.h 2011-08-24 02:41:55.347990727 +0200
++++ linux-2.6.39/arch/mips/ar71xx/dev-dsa.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,20 @@
+/*
+ * Atheros AR71xx DSA switch device support
@@ -807,7 +1372,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-dsa.h linux-2.6.39/arch/mips/ar
+#endif /* _AR71XX_DEV_DSA_H */
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-gpio-buttons.c linux-2.6.39/arch/mips/ar71xx/dev-gpio-buttons.c
--- linux-2.6.39.orig/arch/mips/ar71xx/dev-gpio-buttons.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-gpio-buttons.c 2011-08-24 02:41:55.347990727 +0200
++++ linux-2.6.39/arch/mips/ar71xx/dev-gpio-buttons.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,58 @@
+/*
+ * Atheros AR71xx GPIO button support
@@ -869,7 +1434,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-gpio-buttons.c linux-2.6.39/arc
+}
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-gpio-buttons.h linux-2.6.39/arch/mips/ar71xx/dev-gpio-buttons.h
--- linux-2.6.39.orig/arch/mips/ar71xx/dev-gpio-buttons.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-gpio-buttons.h 2011-08-24 02:41:55.347990727 +0200
++++ linux-2.6.39/arch/mips/ar71xx/dev-gpio-buttons.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,23 @@
+/*
+ * Atheros AR71xx GPIO button support
@@ -894,9 +1459,505 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-gpio-buttons.h linux-2.6.39/arc
+ struct gpio_keys_button *buttons);
+
+#endif /* _AR71XX_DEV_GPIO_BUTTONS_H */
+diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-leds-gpio.c linux-2.6.39/arch/mips/ar71xx/dev-leds-gpio.c
+--- linux-2.6.39.orig/arch/mips/ar71xx/dev-leds-gpio.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.39/arch/mips/ar71xx/dev-leds-gpio.c 2011-08-24 18:17:23.000000000 +0200
+@@ -0,0 +1,57 @@
++/*
++ * Atheros AR71xx GPIO LED device support
++ *
++ * Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
++ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
++ *
++ * Parts of this file are based on Atheros' 2.6.15 BSP
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 as published
++ * by the Free Software Foundation.
++ */
++
++#include <linux/init.h>
++#include <linux/slab.h>
++#include <linux/platform_device.h>
++
++#include "dev-leds-gpio.h"
++
++void __init ar71xx_add_device_leds_gpio(int id, unsigned num_leds,
++ struct gpio_led *leds)
++{
++ struct platform_device *pdev;
++ struct gpio_led_platform_data pdata;
++ struct gpio_led *p;
++ int err;
++
++ p = kmalloc(num_leds * sizeof(*p), GFP_KERNEL);
++ if (!p)
++ return;
++
++ memcpy(p, leds, num_leds * sizeof(*p));
++
++ pdev = platform_device_alloc("leds-gpio", id);
++ if (!pdev)
++ goto err_free_leds;
++
++ memset(&pdata, 0, sizeof(pdata));
++ pdata.num_leds = num_leds;
++ pdata.leds = p;
++
++ err = platform_device_add_data(pdev, &pdata, sizeof(pdata));
++ if (err)
++ goto err_put_pdev;
++
++ err = platform_device_add(pdev);
++ if (err)
++ goto err_put_pdev;
++
++ return;
++
++err_put_pdev:
++ platform_device_put(pdev);
++
++err_free_leds:
++ kfree(p);
++}
+diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-leds-gpio.h linux-2.6.39/arch/mips/ar71xx/dev-leds-gpio.h
+--- linux-2.6.39.orig/arch/mips/ar71xx/dev-leds-gpio.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.39/arch/mips/ar71xx/dev-leds-gpio.h 2011-08-24 18:17:23.000000000 +0200
+@@ -0,0 +1,21 @@
++/*
++ * Atheros AR71xx GPIO LED device support
++ *
++ * Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
++ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 as published
++ * by the Free Software Foundation.
++ */
++
++#ifndef _AR71XX_DEV_LEDS_GPIO_H
++#define _AR71XX_DEV_LEDS_GPIO_H
++
++#include <linux/leds.h>
++
++void ar71xx_add_device_leds_gpio(int id,
++ unsigned num_leds,
++ struct gpio_led *leds) __init;
++
++#endif /* _AR71XX_DEV_LEDS_GPIO_H */
+diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-m25p80.c linux-2.6.39/arch/mips/ar71xx/dev-m25p80.c
+--- linux-2.6.39.orig/arch/mips/ar71xx/dev-m25p80.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.39/arch/mips/ar71xx/dev-m25p80.c 2011-08-24 18:17:23.000000000 +0200
+@@ -0,0 +1,30 @@
++/*
++ * Copyright (C) 2009 Gabor Juhos <juhosg@openwrt.org>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 as published
++ * by the Free Software Foundation.
++ */
++
++#include <linux/init.h>
++#include <linux/spi/spi.h>
++#include <linux/spi/flash.h>
++
++#include "devices.h"
++#include "dev-m25p80.h"
++
++static struct spi_board_info ar71xx_spi_info[] = {
++ {
++ .bus_num = 0,
++ .chip_select = 0,
++ .max_speed_hz = 25000000,
++ .modalias = "m25p80",
++ }
++};
++
++void __init ar71xx_add_device_m25p80(struct flash_platform_data *pdata)
++{
++ ar71xx_spi_info[0].platform_data = pdata;
++ ar71xx_add_device_spi(NULL, ar71xx_spi_info,
++ ARRAY_SIZE(ar71xx_spi_info));
++}
+diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-m25p80.h linux-2.6.39/arch/mips/ar71xx/dev-m25p80.h
+--- linux-2.6.39.orig/arch/mips/ar71xx/dev-m25p80.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.39/arch/mips/ar71xx/dev-m25p80.h 2011-08-24 18:17:23.000000000 +0200
+@@ -0,0 +1,16 @@
++/*
++ * Copyright (C) 2009 Gabor Juhos <juhosg@openwrt.org>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 as published
++ * by the Free Software Foundation.
++ */
++
++#ifndef _AR71XX_DEV_M25P80_H
++#define _AR71XX_DEV_M25P80_H
++
++#include <linux/spi/flash.h>
++
++void ar71xx_add_device_m25p80(struct flash_platform_data *pdata) __init;
++
++#endif /* _AR71XX_DEV_M25P80_H */
+diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-pb42-pci.c linux-2.6.39/arch/mips/ar71xx/dev-pb42-pci.c
+--- linux-2.6.39.orig/arch/mips/ar71xx/dev-pb42-pci.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.39/arch/mips/ar71xx/dev-pb42-pci.c 2011-08-24 18:17:23.000000000 +0200
+@@ -0,0 +1,40 @@
++/*
++ * Atheros PB42 reference board PCI initialization
++ *
++ * Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
++ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
++ *
++ * Parts of this file are based on Atheros' 2.6.15 BSP
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 as published
++ * by the Free Software Foundation.
++ */
++
++#include <linux/pci.h>
++
++#include <asm/mach-ar71xx/ar71xx.h>
++#include <asm/mach-ar71xx/pci.h>
++
++#include "dev-pb42-pci.h"
++
++static struct ar71xx_pci_irq pb42_pci_irqs[] __initdata = {
++ {
++ .slot = 0,
++ .pin = 1,
++ .irq = AR71XX_PCI_IRQ_DEV0,
++ }, {
++ .slot = 1,
++ .pin = 1,
++ .irq = AR71XX_PCI_IRQ_DEV1,
++ }, {
++ .slot = 2,
++ .pin = 1,
++ .irq = AR71XX_PCI_IRQ_DEV2,
++ }
++};
++
++void __init pb42_pci_init(void)
++{
++ ar71xx_pci_init(ARRAY_SIZE(pb42_pci_irqs), pb42_pci_irqs);
++}
+diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-pb42-pci.h linux-2.6.39/arch/mips/ar71xx/dev-pb42-pci.h
+--- linux-2.6.39.orig/arch/mips/ar71xx/dev-pb42-pci.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.39/arch/mips/ar71xx/dev-pb42-pci.h 2011-08-24 18:17:23.000000000 +0200
+@@ -0,0 +1,21 @@
++/*
++ * Atheros PB42 reference board PCI initialization
++ *
++ * Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
++ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 as published
++ * by the Free Software Foundation.
++ */
++
++#ifndef _AR71XX_DEV_PB42_PCI_H
++#define _AR71XX_DEV_PB42_PCI_H
++
++#if defined(CONFIG_AR71XX_DEV_PB42_PCI)
++void pb42_pci_init(void) __init;
++#else
++static inline void pb42_pci_init(void) { }
++#endif
++
++#endif /* _AR71XX_DEV_PB42_PCI_H */
+diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-pb9x-pci.c linux-2.6.39/arch/mips/ar71xx/dev-pb9x-pci.c
+--- linux-2.6.39.orig/arch/mips/ar71xx/dev-pb9x-pci.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.39/arch/mips/ar71xx/dev-pb9x-pci.c 2011-08-24 18:17:23.000000000 +0200
+@@ -0,0 +1,33 @@
++/*
++ * Atheros PB9x reference board PCI initialization
++ *
++ * Copyright (C) 2010 Felix Fietkau <nbd@openwrt.org>
++ * Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
++ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
++ *
++ * Parts of this file are based on Atheros' 2.6.15 BSP
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 as published
++ * by the Free Software Foundation.
++ */
++
++#include <linux/pci.h>
++
++#include <asm/mach-ar71xx/ar71xx.h>
++#include <asm/mach-ar71xx/pci.h>
++
++#include "dev-pb9x-pci.h"
++
++static struct ar71xx_pci_irq pb9x_pci_irqs[] __initdata = {
++ {
++ .slot = 0,
++ .pin = 1,
++ .irq = AR71XX_PCI_IRQ_DEV0,
++ }
++};
++
++void __init pb9x_pci_init(void)
++{
++ ar71xx_pci_init(ARRAY_SIZE(pb9x_pci_irqs), pb9x_pci_irqs);
++}
+diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-pb9x-pci.h linux-2.6.39/arch/mips/ar71xx/dev-pb9x-pci.h
+--- linux-2.6.39.orig/arch/mips/ar71xx/dev-pb9x-pci.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.39/arch/mips/ar71xx/dev-pb9x-pci.h 2011-08-24 18:17:23.000000000 +0200
+@@ -0,0 +1,22 @@
++/*
++ * Atheros PB9x reference board PCI initialization
++ *
++ * Copyright (C) 2010 Felix Fietkau <nbd@openwrt.org>
++ * Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
++ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 as published
++ * by the Free Software Foundation.
++ */
++
++#ifndef _AR71XX_DEV_PB9X_PCI_H
++#define _AR71XX_DEV_PB9X_PCI_H
++
++#if defined(CONFIG_AR71XX_DEV_PB9X_PCI)
++void pb9x_pci_init(void) __init;
++#else
++static inline void pb9x_pci_init(void) { }
++#endif
++
++#endif /* _AR71XX_DEV_PB9X_PCI_H */
+diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-usb.c linux-2.6.39/arch/mips/ar71xx/dev-usb.c
+--- linux-2.6.39.orig/arch/mips/ar71xx/dev-usb.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.39/arch/mips/ar71xx/dev-usb.c 2011-08-24 18:17:23.000000000 +0200
+@@ -0,0 +1,199 @@
++/*
++ * Atheros AR71xx USB host device support
++ *
++ * Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
++ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
++ *
++ * Parts of this file are based on Atheros' 2.6.15 BSP
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 as published
++ * by the Free Software Foundation.
++ */
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/delay.h>
++#include <linux/dma-mapping.h>
++#include <linux/platform_device.h>
++
++#include <asm/mach-ar71xx/ar71xx.h>
++#include <asm/mach-ar71xx/platform.h>
++
++#include "dev-usb.h"
++
++/*
++ * OHCI (USB full speed host controller)
++ */
++static struct resource ar71xx_ohci_resources[] = {
++ [0] = {
++ .start = AR71XX_OHCI_BASE,
++ .end = AR71XX_OHCI_BASE + AR71XX_OHCI_SIZE - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = AR71XX_MISC_IRQ_OHCI,
++ .end = AR71XX_MISC_IRQ_OHCI,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++static struct resource ar7240_ohci_resources[] = {
++ [0] = {
++ .start = AR7240_OHCI_BASE,
++ .end = AR7240_OHCI_BASE + AR7240_OHCI_SIZE - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = AR71XX_CPU_IRQ_USB,
++ .end = AR71XX_CPU_IRQ_USB,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++static u64 ar71xx_ohci_dmamask = DMA_BIT_MASK(32);
++static struct platform_device ar71xx_ohci_device = {
++ .name = "ar71xx-ohci",
++ .id = -1,
++ .resource = ar71xx_ohci_resources,
++ .num_resources = ARRAY_SIZE(ar71xx_ohci_resources),
++ .dev = {
++ .dma_mask = &ar71xx_ohci_dmamask,
++ .coherent_dma_mask = DMA_BIT_MASK(32),
++ },
++};
++
++/*
++ * EHCI (USB high/full speed host controller)
++ */
++static struct resource ar71xx_ehci_resources[] = {
++ [0] = {
++ .start = AR71XX_EHCI_BASE,
++ .end = AR71XX_EHCI_BASE + AR71XX_EHCI_SIZE - 1,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = AR71XX_CPU_IRQ_USB,
++ .end = AR71XX_CPU_IRQ_USB,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++static u64 ar71xx_ehci_dmamask = DMA_BIT_MASK(32);
++static struct ar71xx_ehci_platform_data ar71xx_ehci_data;
++
++static struct platform_device ar71xx_ehci_device = {
++ .name = "ar71xx-ehci",
++ .id = -1,
++ .resource = ar71xx_ehci_resources,
++ .num_resources = ARRAY_SIZE(ar71xx_ehci_resources),
++ .dev = {
++ .dma_mask = &ar71xx_ehci_dmamask,
++ .coherent_dma_mask = DMA_BIT_MASK(32),
++ .platform_data = &ar71xx_ehci_data,
++ },
++};
++
++#define AR71XX_USB_RESET_MASK \
++ (RESET_MODULE_USB_HOST | RESET_MODULE_USB_PHY \
++ | RESET_MODULE_USB_OHCI_DLL)
++
++#define AR7240_USB_RESET_MASK \
++ (RESET_MODULE_USB_HOST | RESET_MODULE_USB_OHCI_DLL_7240)
++
++static void __init ar71xx_usb_setup(void)
++{
++ ar71xx_device_stop(AR71XX_USB_RESET_MASK);
++ mdelay(1000);
++ ar71xx_device_start(AR71XX_USB_RESET_MASK);
++
++ /* Turning on the Buff and Desc swap bits */
++ ar71xx_usb_ctrl_wr(USB_CTRL_REG_CONFIG, 0xf0000);
++
++ /* WAR for HW bug. Here it adjusts the duration between two SOFS */
++ ar71xx_usb_ctrl_wr(USB_CTRL_REG_FLADJ, 0x20c00);
++
++ mdelay(900);
++
++ platform_device_register(&ar71xx_ohci_device);
++ platform_device_register(&ar71xx_ehci_device);
++}
++
++static void __init ar7240_usb_setup(void)
++{
++ ar71xx_device_stop(AR7240_USB_RESET_MASK);
++ mdelay(1000);
++ ar71xx_device_start(AR7240_USB_RESET_MASK);
++
++ /* WAR for HW bug. Here it adjusts the duration between two SOFS */
++ ar71xx_usb_ctrl_wr(USB_CTRL_REG_FLADJ, 0x3);
++
++ ar71xx_ohci_device.resource = ar7240_ohci_resources;
++ ar71xx_ohci_device.num_resources = ARRAY_SIZE(ar7240_ohci_resources);
++ platform_device_register(&ar71xx_ohci_device);
++}
++
++static void __init ar7241_usb_setup(void)
++{
++ ar71xx_device_start(AR724X_RESET_USBSUS_OVERRIDE);
++ mdelay(10);
++
++ ar71xx_device_start(AR724X_RESET_USB_HOST);
++ mdelay(10);
++
++ ar71xx_device_start(AR724X_RESET_USB_PHY);
++ mdelay(10);
++
++ ar71xx_ehci_data.is_ar91xx = 1;
++ ar71xx_ehci_device.resource = ar7240_ohci_resources;
++ ar71xx_ehci_device.num_resources = ARRAY_SIZE(ar7240_ohci_resources);
++ platform_device_register(&ar71xx_ehci_device);
++}
++
++static void __init ar91xx_usb_setup(void)
++{
++ ar71xx_device_stop(RESET_MODULE_USBSUS_OVERRIDE);
++ mdelay(10);
++
++ ar71xx_device_start(RESET_MODULE_USB_HOST);
++ mdelay(10);
++
++ ar71xx_device_start(RESET_MODULE_USB_PHY);
++ mdelay(10);
++
++ ar71xx_ehci_data.is_ar91xx = 1;
++ platform_device_register(&ar71xx_ehci_device);
++}
++
++void __init ar71xx_add_device_usb(void)
++{
++ switch (ar71xx_soc) {
++ case AR71XX_SOC_AR7240:
++ ar7240_usb_setup();
++ break;
++
++ case AR71XX_SOC_AR7241:
++ case AR71XX_SOC_AR7242:
++ ar7241_usb_setup();
++ break;
++
++ case AR71XX_SOC_AR7130:
++ case AR71XX_SOC_AR7141:
++ case AR71XX_SOC_AR7161:
++ ar71xx_usb_setup();
++ break;
++
++ case AR71XX_SOC_AR9130:
++ case AR71XX_SOC_AR9132:
++ case AR71XX_SOC_AR9330:
++ case AR71XX_SOC_AR9331:
++ case AR71XX_SOC_AR9341:
++ case AR71XX_SOC_AR9342:
++ case AR71XX_SOC_AR9344:
++ ar91xx_usb_setup();
++ break;
++
++ default:
++ BUG();
++ }
++}
+diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-usb.h linux-2.6.39/arch/mips/ar71xx/dev-usb.h
+--- linux-2.6.39.orig/arch/mips/ar71xx/dev-usb.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.39/arch/mips/ar71xx/dev-usb.h 2011-08-24 18:17:23.000000000 +0200
+@@ -0,0 +1,17 @@
++/*
++ * Atheros AR71xx USB host device support
++ *
++ * Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
++ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 as published
++ * by the Free Software Foundation.
++ */
++
++#ifndef _AR71XX_DEV_USB_H
++#define _AR71XX_DEV_USB_H
++
++void ar71xx_add_device_usb(void) __init;
++
++#endif /* _AR71XX_DEV_USB_H */
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/devices.c linux-2.6.39/arch/mips/ar71xx/devices.c
--- linux-2.6.39.orig/arch/mips/ar71xx/devices.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/devices.c 2011-08-24 02:41:55.347990727 +0200
++++ linux-2.6.39/arch/mips/ar71xx/devices.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,765 @@
+/*
+ * Atheros AR71xx SoC platform devices
@@ -1665,7 +2726,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/devices.c linux-2.6.39/arch/mips/ar
+}
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/devices.h linux-2.6.39/arch/mips/ar71xx/devices.h
--- linux-2.6.39.orig/arch/mips/ar71xx/devices.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/devices.h 2011-08-24 02:41:55.347990727 +0200
++++ linux-2.6.39/arch/mips/ar71xx/devices.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,50 @@
+/*
+ * Atheros AR71xx SoC device definitions
@@ -1717,505 +2778,9 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/devices.h linux-2.6.39/arch/mips/ar
+void ar71xx_add_device_wdt(void) __init;
+
+#endif /* __AR71XX_DEVICES_H */
-diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-leds-gpio.c linux-2.6.39/arch/mips/ar71xx/dev-leds-gpio.c
---- linux-2.6.39.orig/arch/mips/ar71xx/dev-leds-gpio.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-leds-gpio.c 2011-08-24 02:41:55.347990727 +0200
-@@ -0,0 +1,57 @@
-+/*
-+ * Atheros AR71xx GPIO LED device support
-+ *
-+ * Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
-+ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
-+ *
-+ * Parts of this file are based on Atheros' 2.6.15 BSP
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 as published
-+ * by the Free Software Foundation.
-+ */
-+
-+#include <linux/init.h>
-+#include <linux/slab.h>
-+#include <linux/platform_device.h>
-+
-+#include "dev-leds-gpio.h"
-+
-+void __init ar71xx_add_device_leds_gpio(int id, unsigned num_leds,
-+ struct gpio_led *leds)
-+{
-+ struct platform_device *pdev;
-+ struct gpio_led_platform_data pdata;
-+ struct gpio_led *p;
-+ int err;
-+
-+ p = kmalloc(num_leds * sizeof(*p), GFP_KERNEL);
-+ if (!p)
-+ return;
-+
-+ memcpy(p, leds, num_leds * sizeof(*p));
-+
-+ pdev = platform_device_alloc("leds-gpio", id);
-+ if (!pdev)
-+ goto err_free_leds;
-+
-+ memset(&pdata, 0, sizeof(pdata));
-+ pdata.num_leds = num_leds;
-+ pdata.leds = p;
-+
-+ err = platform_device_add_data(pdev, &pdata, sizeof(pdata));
-+ if (err)
-+ goto err_put_pdev;
-+
-+ err = platform_device_add(pdev);
-+ if (err)
-+ goto err_put_pdev;
-+
-+ return;
-+
-+err_put_pdev:
-+ platform_device_put(pdev);
-+
-+err_free_leds:
-+ kfree(p);
-+}
-diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-leds-gpio.h linux-2.6.39/arch/mips/ar71xx/dev-leds-gpio.h
---- linux-2.6.39.orig/arch/mips/ar71xx/dev-leds-gpio.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-leds-gpio.h 2011-08-24 02:41:55.367990903 +0200
-@@ -0,0 +1,21 @@
-+/*
-+ * Atheros AR71xx GPIO LED device support
-+ *
-+ * Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
-+ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 as published
-+ * by the Free Software Foundation.
-+ */
-+
-+#ifndef _AR71XX_DEV_LEDS_GPIO_H
-+#define _AR71XX_DEV_LEDS_GPIO_H
-+
-+#include <linux/leds.h>
-+
-+void ar71xx_add_device_leds_gpio(int id,
-+ unsigned num_leds,
-+ struct gpio_led *leds) __init;
-+
-+#endif /* _AR71XX_DEV_LEDS_GPIO_H */
-diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-m25p80.c linux-2.6.39/arch/mips/ar71xx/dev-m25p80.c
---- linux-2.6.39.orig/arch/mips/ar71xx/dev-m25p80.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-m25p80.c 2011-08-24 02:41:55.367990903 +0200
-@@ -0,0 +1,30 @@
-+/*
-+ * Copyright (C) 2009 Gabor Juhos <juhosg@openwrt.org>
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 as published
-+ * by the Free Software Foundation.
-+ */
-+
-+#include <linux/init.h>
-+#include <linux/spi/spi.h>
-+#include <linux/spi/flash.h>
-+
-+#include "devices.h"
-+#include "dev-m25p80.h"
-+
-+static struct spi_board_info ar71xx_spi_info[] = {
-+ {
-+ .bus_num = 0,
-+ .chip_select = 0,
-+ .max_speed_hz = 25000000,
-+ .modalias = "m25p80",
-+ }
-+};
-+
-+void __init ar71xx_add_device_m25p80(struct flash_platform_data *pdata)
-+{
-+ ar71xx_spi_info[0].platform_data = pdata;
-+ ar71xx_add_device_spi(NULL, ar71xx_spi_info,
-+ ARRAY_SIZE(ar71xx_spi_info));
-+}
-diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-m25p80.h linux-2.6.39/arch/mips/ar71xx/dev-m25p80.h
---- linux-2.6.39.orig/arch/mips/ar71xx/dev-m25p80.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-m25p80.h 2011-08-24 02:41:55.377990515 +0200
-@@ -0,0 +1,16 @@
-+/*
-+ * Copyright (C) 2009 Gabor Juhos <juhosg@openwrt.org>
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 as published
-+ * by the Free Software Foundation.
-+ */
-+
-+#ifndef _AR71XX_DEV_M25P80_H
-+#define _AR71XX_DEV_M25P80_H
-+
-+#include <linux/spi/flash.h>
-+
-+void ar71xx_add_device_m25p80(struct flash_platform_data *pdata) __init;
-+
-+#endif /* _AR71XX_DEV_M25P80_H */
-diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-pb42-pci.c linux-2.6.39/arch/mips/ar71xx/dev-pb42-pci.c
---- linux-2.6.39.orig/arch/mips/ar71xx/dev-pb42-pci.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-pb42-pci.c 2011-08-24 02:41:55.377990515 +0200
-@@ -0,0 +1,40 @@
-+/*
-+ * Atheros PB42 reference board PCI initialization
-+ *
-+ * Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
-+ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
-+ *
-+ * Parts of this file are based on Atheros' 2.6.15 BSP
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 as published
-+ * by the Free Software Foundation.
-+ */
-+
-+#include <linux/pci.h>
-+
-+#include <asm/mach-ar71xx/ar71xx.h>
-+#include <asm/mach-ar71xx/pci.h>
-+
-+#include "dev-pb42-pci.h"
-+
-+static struct ar71xx_pci_irq pb42_pci_irqs[] __initdata = {
-+ {
-+ .slot = 0,
-+ .pin = 1,
-+ .irq = AR71XX_PCI_IRQ_DEV0,
-+ }, {
-+ .slot = 1,
-+ .pin = 1,
-+ .irq = AR71XX_PCI_IRQ_DEV1,
-+ }, {
-+ .slot = 2,
-+ .pin = 1,
-+ .irq = AR71XX_PCI_IRQ_DEV2,
-+ }
-+};
-+
-+void __init pb42_pci_init(void)
-+{
-+ ar71xx_pci_init(ARRAY_SIZE(pb42_pci_irqs), pb42_pci_irqs);
-+}
-diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-pb42-pci.h linux-2.6.39/arch/mips/ar71xx/dev-pb42-pci.h
---- linux-2.6.39.orig/arch/mips/ar71xx/dev-pb42-pci.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-pb42-pci.h 2011-08-24 02:41:55.387991243 +0200
-@@ -0,0 +1,21 @@
-+/*
-+ * Atheros PB42 reference board PCI initialization
-+ *
-+ * Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
-+ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 as published
-+ * by the Free Software Foundation.
-+ */
-+
-+#ifndef _AR71XX_DEV_PB42_PCI_H
-+#define _AR71XX_DEV_PB42_PCI_H
-+
-+#if defined(CONFIG_AR71XX_DEV_PB42_PCI)
-+void pb42_pci_init(void) __init;
-+#else
-+static inline void pb42_pci_init(void) { }
-+#endif
-+
-+#endif /* _AR71XX_DEV_PB42_PCI_H */
-diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-pb9x-pci.c linux-2.6.39/arch/mips/ar71xx/dev-pb9x-pci.c
---- linux-2.6.39.orig/arch/mips/ar71xx/dev-pb9x-pci.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-pb9x-pci.c 2011-08-24 02:41:55.387991243 +0200
-@@ -0,0 +1,33 @@
-+/*
-+ * Atheros PB9x reference board PCI initialization
-+ *
-+ * Copyright (C) 2010 Felix Fietkau <nbd@openwrt.org>
-+ * Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
-+ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
-+ *
-+ * Parts of this file are based on Atheros' 2.6.15 BSP
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 as published
-+ * by the Free Software Foundation.
-+ */
-+
-+#include <linux/pci.h>
-+
-+#include <asm/mach-ar71xx/ar71xx.h>
-+#include <asm/mach-ar71xx/pci.h>
-+
-+#include "dev-pb9x-pci.h"
-+
-+static struct ar71xx_pci_irq pb9x_pci_irqs[] __initdata = {
-+ {
-+ .slot = 0,
-+ .pin = 1,
-+ .irq = AR71XX_PCI_IRQ_DEV0,
-+ }
-+};
-+
-+void __init pb9x_pci_init(void)
-+{
-+ ar71xx_pci_init(ARRAY_SIZE(pb9x_pci_irqs), pb9x_pci_irqs);
-+}
-diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-pb9x-pci.h linux-2.6.39/arch/mips/ar71xx/dev-pb9x-pci.h
---- linux-2.6.39.orig/arch/mips/ar71xx/dev-pb9x-pci.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-pb9x-pci.h 2011-08-24 02:41:55.387991243 +0200
-@@ -0,0 +1,22 @@
-+/*
-+ * Atheros PB9x reference board PCI initialization
-+ *
-+ * Copyright (C) 2010 Felix Fietkau <nbd@openwrt.org>
-+ * Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
-+ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 as published
-+ * by the Free Software Foundation.
-+ */
-+
-+#ifndef _AR71XX_DEV_PB9X_PCI_H
-+#define _AR71XX_DEV_PB9X_PCI_H
-+
-+#if defined(CONFIG_AR71XX_DEV_PB9X_PCI)
-+void pb9x_pci_init(void) __init;
-+#else
-+static inline void pb9x_pci_init(void) { }
-+#endif
-+
-+#endif /* _AR71XX_DEV_PB9X_PCI_H */
-diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-usb.c linux-2.6.39/arch/mips/ar71xx/dev-usb.c
---- linux-2.6.39.orig/arch/mips/ar71xx/dev-usb.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-usb.c 2011-08-24 02:41:55.417990329 +0200
-@@ -0,0 +1,199 @@
-+/*
-+ * Atheros AR71xx USB host device support
-+ *
-+ * Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
-+ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
-+ *
-+ * Parts of this file are based on Atheros' 2.6.15 BSP
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 as published
-+ * by the Free Software Foundation.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/delay.h>
-+#include <linux/dma-mapping.h>
-+#include <linux/platform_device.h>
-+
-+#include <asm/mach-ar71xx/ar71xx.h>
-+#include <asm/mach-ar71xx/platform.h>
-+
-+#include "dev-usb.h"
-+
-+/*
-+ * OHCI (USB full speed host controller)
-+ */
-+static struct resource ar71xx_ohci_resources[] = {
-+ [0] = {
-+ .start = AR71XX_OHCI_BASE,
-+ .end = AR71XX_OHCI_BASE + AR71XX_OHCI_SIZE - 1,
-+ .flags = IORESOURCE_MEM,
-+ },
-+ [1] = {
-+ .start = AR71XX_MISC_IRQ_OHCI,
-+ .end = AR71XX_MISC_IRQ_OHCI,
-+ .flags = IORESOURCE_IRQ,
-+ },
-+};
-+
-+static struct resource ar7240_ohci_resources[] = {
-+ [0] = {
-+ .start = AR7240_OHCI_BASE,
-+ .end = AR7240_OHCI_BASE + AR7240_OHCI_SIZE - 1,
-+ .flags = IORESOURCE_MEM,
-+ },
-+ [1] = {
-+ .start = AR71XX_CPU_IRQ_USB,
-+ .end = AR71XX_CPU_IRQ_USB,
-+ .flags = IORESOURCE_IRQ,
-+ },
-+};
-+
-+static u64 ar71xx_ohci_dmamask = DMA_BIT_MASK(32);
-+static struct platform_device ar71xx_ohci_device = {
-+ .name = "ar71xx-ohci",
-+ .id = -1,
-+ .resource = ar71xx_ohci_resources,
-+ .num_resources = ARRAY_SIZE(ar71xx_ohci_resources),
-+ .dev = {
-+ .dma_mask = &ar71xx_ohci_dmamask,
-+ .coherent_dma_mask = DMA_BIT_MASK(32),
-+ },
-+};
-+
-+/*
-+ * EHCI (USB high/full speed host controller)
-+ */
-+static struct resource ar71xx_ehci_resources[] = {
-+ [0] = {
-+ .start = AR71XX_EHCI_BASE,
-+ .end = AR71XX_EHCI_BASE + AR71XX_EHCI_SIZE - 1,
-+ .flags = IORESOURCE_MEM,
-+ },
-+ [1] = {
-+ .start = AR71XX_CPU_IRQ_USB,
-+ .end = AR71XX_CPU_IRQ_USB,
-+ .flags = IORESOURCE_IRQ,
-+ },
-+};
-+
-+static u64 ar71xx_ehci_dmamask = DMA_BIT_MASK(32);
-+static struct ar71xx_ehci_platform_data ar71xx_ehci_data;
-+
-+static struct platform_device ar71xx_ehci_device = {
-+ .name = "ar71xx-ehci",
-+ .id = -1,
-+ .resource = ar71xx_ehci_resources,
-+ .num_resources = ARRAY_SIZE(ar71xx_ehci_resources),
-+ .dev = {
-+ .dma_mask = &ar71xx_ehci_dmamask,
-+ .coherent_dma_mask = DMA_BIT_MASK(32),
-+ .platform_data = &ar71xx_ehci_data,
-+ },
-+};
-+
-+#define AR71XX_USB_RESET_MASK \
-+ (RESET_MODULE_USB_HOST | RESET_MODULE_USB_PHY \
-+ | RESET_MODULE_USB_OHCI_DLL)
-+
-+#define AR7240_USB_RESET_MASK \
-+ (RESET_MODULE_USB_HOST | RESET_MODULE_USB_OHCI_DLL_7240)
-+
-+static void __init ar71xx_usb_setup(void)
-+{
-+ ar71xx_device_stop(AR71XX_USB_RESET_MASK);
-+ mdelay(1000);
-+ ar71xx_device_start(AR71XX_USB_RESET_MASK);
-+
-+ /* Turning on the Buff and Desc swap bits */
-+ ar71xx_usb_ctrl_wr(USB_CTRL_REG_CONFIG, 0xf0000);
-+
-+ /* WAR for HW bug. Here it adjusts the duration between two SOFS */
-+ ar71xx_usb_ctrl_wr(USB_CTRL_REG_FLADJ, 0x20c00);
-+
-+ mdelay(900);
-+
-+ platform_device_register(&ar71xx_ohci_device);
-+ platform_device_register(&ar71xx_ehci_device);
-+}
-+
-+static void __init ar7240_usb_setup(void)
-+{
-+ ar71xx_device_stop(AR7240_USB_RESET_MASK);
-+ mdelay(1000);
-+ ar71xx_device_start(AR7240_USB_RESET_MASK);
-+
-+ /* WAR for HW bug. Here it adjusts the duration between two SOFS */
-+ ar71xx_usb_ctrl_wr(USB_CTRL_REG_FLADJ, 0x3);
-+
-+ ar71xx_ohci_device.resource = ar7240_ohci_resources;
-+ ar71xx_ohci_device.num_resources = ARRAY_SIZE(ar7240_ohci_resources);
-+ platform_device_register(&ar71xx_ohci_device);
-+}
-+
-+static void __init ar7241_usb_setup(void)
-+{
-+ ar71xx_device_start(AR724X_RESET_USBSUS_OVERRIDE);
-+ mdelay(10);
-+
-+ ar71xx_device_start(AR724X_RESET_USB_HOST);
-+ mdelay(10);
-+
-+ ar71xx_device_start(AR724X_RESET_USB_PHY);
-+ mdelay(10);
-+
-+ ar71xx_ehci_data.is_ar91xx = 1;
-+ ar71xx_ehci_device.resource = ar7240_ohci_resources;
-+ ar71xx_ehci_device.num_resources = ARRAY_SIZE(ar7240_ohci_resources);
-+ platform_device_register(&ar71xx_ehci_device);
-+}
-+
-+static void __init ar91xx_usb_setup(void)
-+{
-+ ar71xx_device_stop(RESET_MODULE_USBSUS_OVERRIDE);
-+ mdelay(10);
-+
-+ ar71xx_device_start(RESET_MODULE_USB_HOST);
-+ mdelay(10);
-+
-+ ar71xx_device_start(RESET_MODULE_USB_PHY);
-+ mdelay(10);
-+
-+ ar71xx_ehci_data.is_ar91xx = 1;
-+ platform_device_register(&ar71xx_ehci_device);
-+}
-+
-+void __init ar71xx_add_device_usb(void)
-+{
-+ switch (ar71xx_soc) {
-+ case AR71XX_SOC_AR7240:
-+ ar7240_usb_setup();
-+ break;
-+
-+ case AR71XX_SOC_AR7241:
-+ case AR71XX_SOC_AR7242:
-+ ar7241_usb_setup();
-+ break;
-+
-+ case AR71XX_SOC_AR7130:
-+ case AR71XX_SOC_AR7141:
-+ case AR71XX_SOC_AR7161:
-+ ar71xx_usb_setup();
-+ break;
-+
-+ case AR71XX_SOC_AR9130:
-+ case AR71XX_SOC_AR9132:
-+ case AR71XX_SOC_AR9330:
-+ case AR71XX_SOC_AR9331:
-+ case AR71XX_SOC_AR9341:
-+ case AR71XX_SOC_AR9342:
-+ case AR71XX_SOC_AR9344:
-+ ar91xx_usb_setup();
-+ break;
-+
-+ default:
-+ BUG();
-+ }
-+}
-diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/dev-usb.h linux-2.6.39/arch/mips/ar71xx/dev-usb.h
---- linux-2.6.39.orig/arch/mips/ar71xx/dev-usb.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/dev-usb.h 2011-08-24 02:41:55.427989786 +0200
-@@ -0,0 +1,17 @@
-+/*
-+ * Atheros AR71xx USB host device support
-+ *
-+ * Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
-+ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 as published
-+ * by the Free Software Foundation.
-+ */
-+
-+#ifndef _AR71XX_DEV_USB_H
-+#define _AR71XX_DEV_USB_H
-+
-+void ar71xx_add_device_usb(void) __init;
-+
-+#endif /* _AR71XX_DEV_USB_H */
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/early_printk.c linux-2.6.39/arch/mips/ar71xx/early_printk.c
--- linux-2.6.39.orig/arch/mips/ar71xx/early_printk.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/early_printk.c 2011-08-24 02:41:55.427989786 +0200
++++ linux-2.6.39/arch/mips/ar71xx/early_printk.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,96 @@
+/*
+ * Atheros AR7xxx/AR9xxx SoC early printk support
@@ -2315,7 +2880,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/early_printk.c linux-2.6.39/arch/mi
+}
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/gpio.c linux-2.6.39/arch/mips/ar71xx/gpio.c
--- linux-2.6.39.orig/arch/mips/ar71xx/gpio.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/gpio.c 2011-08-24 02:41:55.457989607 +0200
++++ linux-2.6.39/arch/mips/ar71xx/gpio.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,193 @@
+/*
+ * Atheros AR7XXX/AR9XXX SoC GPIO API support
@@ -2512,7 +3077,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/gpio.c linux-2.6.39/arch/mips/ar71x
+}
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/irq.c linux-2.6.39/arch/mips/ar71xx/irq.c
--- linux-2.6.39.orig/arch/mips/ar71xx/irq.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/irq.c 2011-08-24 02:41:55.457989607 +0200
++++ linux-2.6.39/arch/mips/ar71xx/irq.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,377 @@
+/*
+ * Atheros AR71xx SoC specific interrupt handling
@@ -2891,433 +3456,9 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/irq.c linux-2.6.39/arch/mips/ar71xx
+
+ ar71xx_gpio_irq_init();
+}
-diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/Kconfig linux-2.6.39/arch/mips/ar71xx/Kconfig
---- linux-2.6.39.orig/arch/mips/ar71xx/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/Kconfig 2011-08-24 04:20:27.209240389 +0200
-@@ -0,0 +1,420 @@
-+if ATHEROS_AR71XX
-+
-+menu "Atheros AR71xx machine selection"
-+
-+config AR71XX_MACH_AP81
-+ bool "Atheros AP81 board support"
-+ select SOC_AR913X
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_AR9XXX_WMAC
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_DEV_USB
-+ default n
-+
-+config AR71XX_MACH_AP83
-+ bool "Atheros AP83 board support"
-+ select SOC_AR913X
-+ select AR71XX_DEV_AR9XXX_WMAC
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_DEV_USB
-+ default n
-+
-+config AR71XX_MACH_AP96
-+ bool "Atheros AP96 board support"
-+ select SOC_AR71XX
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_AP94_PCI if PCI
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_DEV_USB
-+ default n
-+
-+config AR71XX_MACH_AP121
-+ bool "Atheros AP121 board support"
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_DEV_USB
-+ select AR71XX_DEV_AR9XXX_WMAC
-+ select SOC_AR933X
-+ default n
-+
-+config AR71XX_MACH_DB120
-+ bool "Atheros DB120 board support"
-+ select SOC_AR934X
-+ select AR71XX_DEV_AR9XXX_WMAC
-+ select AR71XX_DEV_DB120_PCI if PCI
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_DEV_USB
-+ default n
-+
-+config AR71XX_MACH_DIR_600_A1
-+ bool "D-Link DIR-600 rev. A1 support"
-+ select SOC_AR724X
-+ select AR71XX_DEV_AP91_PCI if PCI
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_NVRAM
-+ default n
-+
-+config AR71XX_MACH_DIR_615_C1
-+ bool "D-Link DIR-615 rev. C1 support"
-+ select SOC_AR913X
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_AR9XXX_WMAC
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_NVRAM
-+ default n
-+
-+config AR71XX_MACH_DIR_825_B1
-+ bool "D-Link DIR-825 rev. B1 board support"
-+ select SOC_AR71XX
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_AP94_PCI if PCI
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_DEV_USB
-+ default n
-+
-+config AR71XX_MACH_JA76PF
-+ bool "jjPlus JA76PF board support"
-+ select SOC_AR71XX
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_PB42_PCI if PCI
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_DEV_USB
-+ default n
-+
-+config AR71XX_MACH_JWAP003
-+ bool "jjPlus JWAP003 board support"
-+ select SOC_AR71XX
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_PB42_PCI if PCI
-+ select AR71XX_DEV_USB
-+ default n
-+
-+config AR71XX_MACH_PB42
-+ bool "Atheros PB42 board support"
-+ select SOC_AR71XX
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_PB42_PCI if PCI
-+ default n
-+
-+config AR71XX_MACH_PB44
-+ bool "Atheros PB44 board support"
-+ select SOC_AR71XX
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_PB42_PCI if PCI
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_DEV_USB
-+ default n
-+
-+config AR71XX_MACH_PB92
-+ bool "Atheros PB92 board support"
-+ select SOC_AR724X
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_PB9X_PCI if PCI
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_DEV_USB
-+ default n
-+
-+config AR71XX_MACH_AW_NR580
-+ bool "AzureWave AW-NR580 board support"
-+ select SOC_AR71XX
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_PB42_PCI if PCI
-+ select AR71XX_DEV_LEDS_GPIO
-+ default n
-+
-+config AR71XX_MACH_WZR_HP_AG300H
-+ bool "Buffalo WZR-HP-AG300H board support"
-+ select SOC_AR71XX
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_DEV_USB
-+ default n
-+
-+config AR71XX_MACH_WZR_HP_G300NH
-+ bool "Buffalo WZR-HP-G300NH board support"
-+ select SOC_AR913X
-+ select AR71XX_DEV_AR9XXX_WMAC
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_DEV_USB
-+ select RTL8366_SMI
-+ default n
-+
-+config AR71XX_MACH_WP543
-+ bool "Compex WP543/WPJ543 board support"
-+ select SOC_AR71XX
-+ select MYLOADER
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_PB42_PCI if PCI
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_DEV_USB
-+ default n
-+
-+config AR71XX_MACH_WRT160NL
-+ bool "Linksys WRT160NL board support"
-+ select SOC_AR913X
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_AR9XXX_WMAC
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_DEV_USB
-+ select AR71XX_NVRAM
-+ default n
-+
-+config AR71XX_MACH_WRT400N
-+ bool "Linksys WRT400N board support"
-+ select SOC_AR71XX
-+ select AR71XX_DEV_AP94_PCI if PCI
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ default n
-+
-+config AR71XX_MACH_RB4XX
-+ bool "MikroTik RouterBOARD 4xx series support"
-+ select SOC_AR71XX
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_DEV_USB
-+ default n
-+
-+config AR71XX_MACH_RB750
-+ bool "MikroTik RouterBOARD 750 support"
-+ select SOC_AR724X
-+ default n
-+
-+config AR71XX_MACH_WNDR3700
-+ bool "NETGEAR WNDR3700 board support"
-+ select SOC_AR71XX
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_AP94_PCI if PCI
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_DEV_USB
-+ default n
-+
-+config AR71XX_MACH_WNR2000
-+ bool "NETGEAR WNR2000 board support"
-+ select SOC_AR913X
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_AR9XXX_WMAC
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ default n
-+
-+config AR71XX_MACH_MZK_W04NU
-+ bool "Planex MZK-W04NU board support"
-+ select SOC_AR913X
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_AR9XXX_WMAC
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_DEV_USB
-+ default n
-+
-+config AR71XX_MACH_MZK_W300NH
-+ bool "Planex MZK-W300NH board support"
-+ select SOC_AR913X
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_AR9XXX_WMAC
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ default n
-+
-+config AR71XX_MACH_NBG460N
-+ bool "Zyxel NBG460N/550N/550NH board support"
-+ select SOC_AR913X
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_AR9XXX_WMAC
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ default n
-+
-+config AR71XX_MACH_TL_MR3X20
-+ bool "TP-LINK TL-MR3220/3420 support"
-+ select SOC_AR724X
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_AP91_PCI if PCI
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_DEV_USB
-+ default n
-+
-+config AR71XX_MACH_TL_WA901ND
-+ bool "TP-LINK TL-WA901ND support"
-+ select SOC_AR724X
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_AP91_PCI if PCI
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ default n
-+
-+config AR71XX_MACH_TL_WA901ND_V2
-+ bool "TP-LINK TL-WA901ND v2 support"
-+ select SOC_AR913X
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_AR9XXX_WMAC
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ default n
-+
-+config AR71XX_MACH_TL_WR741ND
-+ bool "TP-LINK TL-WR741ND support"
-+ select SOC_AR724X
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_AP91_PCI if PCI
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ default n
-+
-+config AR71XX_MACH_TL_WR841N_V1
-+ bool "TP-LINK TL-WR841N v1 support"
-+ select SOC_AR71XX
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_PB42_PCI if PCI
-+ select AR71XX_DEV_DSA
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ default n
-+
-+config AR71XX_MACH_TL_WR941ND
-+ bool "TP-LINK TL-WR941ND support"
-+ select SOC_AR913X
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_AR9XXX_WMAC
-+ select AR71XX_DEV_DSA
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ default n
-+
-+config AR71XX_MACH_TL_WR1043ND
-+ bool "TP-LINK TL-WR1043ND support"
-+ select SOC_AR913X
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_AR9XXX_WMAC
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_DEV_USB
-+ default n
-+
-+config AR71XX_MACH_TEW_632BRP
-+ bool "TRENDnet TEW-632BRP support"
-+ select SOC_AR913X
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_AR9XXX_WMAC
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_NVRAM
-+ default n
-+
-+config AR71XX_MACH_UBNT
-+ bool "Ubiquiti AR71xx based boards support"
-+ select SOC_AR71XX
-+ select SOC_AR724X
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_AP91_PCI if PCI
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ select AR71XX_DEV_PB42_PCI if PCI
-+ select AR71XX_DEV_USB
-+ default n
-+
-+config AR71XX_MACH_EAP7660D
-+ bool "Senao EAP7660D support"
-+ select SOC_AR71XX
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ default n
-+
-+config AR71XX_MACH_ZCN_1523H
-+ bool "Zcomax ZCN-1523H support"
-+ select SOC_AR724X
-+ select AR71XX_DEV_M25P80
-+ select AR71XX_DEV_AP91_PCI if PCI
-+ select AR71XX_DEV_GPIO_BUTTONS
-+ select AR71XX_DEV_LEDS_GPIO
-+ default n
-+
-+endmenu
-+
-+config SOC_AR71XX
-+ bool
-+ select USB_ARCH_HAS_EHCI
-+ select USB_ARCH_HAS_OHCI
-+
-+config SOC_AR724X
-+ bool
-+ select USB_ARCH_HAS_EHCI
-+ select USB_ARCH_HAS_OHCI
-+
-+config SOC_AR913X
-+ bool
-+ select USB_ARCH_HAS_EHCI
-+
-+config SOC_AR934X
-+ bool
-+ select USB_ARCH_HAS_EHCI
-+
-+config AR71XX_DEV_M25P80
-+ def_bool n
-+
-+config AR71XX_DEV_AP91_PCI
-+ select AR71XX_PCI_ATH9K_FIXUP
-+ def_bool n
-+
-+config AR71XX_DEV_AP94_PCI
-+ select AR71XX_PCI_ATH9K_FIXUP
-+ def_bool n
-+
-+config AR71XX_DEV_AR9XXX_WMAC
-+ def_bool n
-+
-+config AR71XX_DEV_DB120_PCI
-+ select AR71XX_PCI_ATH9K_FIXUP
-+ def_bool n
-+
-+config AR71XX_DEV_DSA
-+ def_bool n
-+
-+config AR71XX_DEV_GPIO_BUTTONS
-+ def_bool n
-+
-+config AR71XX_DEV_LEDS_GPIO
-+ def_bool n
-+
-+config AR71XX_DEV_PB42_PCI
-+ def_bool n
-+
-+config AR71XX_DEV_PB9X_PCI
-+ def_bool n
-+
-+config AR71XX_DEV_USB
-+ def_bool n
-+
-+config AR71XX_NVRAM
-+ def_bool n
-+
-+config AR71XX_PCI_ATH9K_FIXUP
-+ def_bool n
-+
-+config SOC_AR933X
-+ bool
-+ select USB_ARCH_HAS_EHCI
-+
-+endif
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-ap121.c linux-2.6.39/arch/mips/ar71xx/mach-ap121.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-ap121.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-ap121.c 2011-08-24 02:41:55.477989660 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-ap121.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,245 @@
+/*
+ * Atheros AP121 board support
@@ -3566,7 +3707,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-ap121.c linux-2.6.39/arch/mips
+ ap121_mini_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-ap81.c linux-2.6.39/arch/mips/ar71xx/mach-ap81.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-ap81.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-ap81.c 2011-08-24 02:41:55.477989660 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-ap81.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,142 @@
+/*
+ * Atheros AP81 board support
@@ -3712,7 +3853,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-ap81.c linux-2.6.39/arch/mips/
+MIPS_MACHINE(AR71XX_MACH_AP81, "AP81", "Atheros AP81", ap81_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-ap83.c linux-2.6.39/arch/mips/ar71xx/mach-ap83.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-ap83.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-ap83.c 2011-08-24 02:41:55.477989660 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-ap83.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,267 @@
+/*
+ * Atheros AP83 board support
@@ -3983,7 +4124,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-ap83.c linux-2.6.39/arch/mips/
+MIPS_MACHINE(AR71XX_MACH_AP83, "AP83", "Atheros AP83", ap83_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-ap96.c linux-2.6.39/arch/mips/ar71xx/mach-ap96.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-ap96.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-ap96.c 2011-08-24 02:41:55.477989660 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-ap96.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,180 @@
+/*
+ * Atheros AP96 board support
@@ -4167,7 +4308,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-ap96.c linux-2.6.39/arch/mips/
+MIPS_MACHINE(AR71XX_MACH_AP96, "AP96", "Atheros AP96", ap96_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-aw-nr580.c linux-2.6.39/arch/mips/ar71xx/mach-aw-nr580.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-aw-nr580.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-aw-nr580.c 2011-08-24 02:41:55.487989871 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-aw-nr580.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,102 @@
+/*
+ * AzureWave AW-NR580 board support
@@ -4273,7 +4414,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-aw-nr580.c linux-2.6.39/arch/m
+ aw_nr580_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-db120.c linux-2.6.39/arch/mips/ar71xx/mach-db120.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-db120.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-db120.c 2011-08-24 02:41:55.487989871 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-db120.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,134 @@
+/*
+ * Atheros DB120 board (WASP SoC) support
@@ -4411,7 +4552,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-db120.c linux-2.6.39/arch/mips
+MIPS_MACHINE(AR71XX_MACH_DB120, "DB120", "Atheros DB120", db120_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-dir-600-a1.c linux-2.6.39/arch/mips/ar71xx/mach-dir-600-a1.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-dir-600-a1.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-dir-600-a1.c 2011-08-24 02:41:55.487989871 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-dir-600-a1.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,159 @@
+/*
+ * D-Link DIR-600 rev. A1 board support
@@ -4574,7 +4715,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-dir-600-a1.c linux-2.6.39/arch
+ dir_600_a1_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-dir-615-c1.c linux-2.6.39/arch/mips/ar71xx/mach-dir-615-c1.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-dir-615-c1.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-dir-615-c1.c 2011-08-24 02:41:55.487989871 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-dir-615-c1.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,175 @@
+/*
+ * D-Link DIR-615 rev C1 board support
@@ -4753,7 +4894,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-dir-615-c1.c linux-2.6.39/arch
+ dir_615c1_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-dir-825-b1.c linux-2.6.39/arch/mips/ar71xx/mach-dir-825-b1.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-dir-825-b1.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-dir-825-b1.c 2011-08-24 02:41:55.487989871 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-dir-825-b1.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,198 @@
+/*
+ * D-Link DIR-825 rev. B1 board support
@@ -4955,7 +5096,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-dir-825-b1.c linux-2.6.39/arch
+ dir825b1_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-eap7660d.c linux-2.6.39/arch/mips/ar71xx/mach-eap7660d.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-eap7660d.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-eap7660d.c 2011-08-24 02:41:55.497990784 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-eap7660d.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,180 @@
+/*
+ * Senao EAP7660D board support
@@ -5139,7 +5280,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-eap7660d.c linux-2.6.39/arch/m
+ eap7660d_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-ja76pf.c linux-2.6.39/arch/mips/ar71xx/mach-ja76pf.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-ja76pf.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-ja76pf.c 2011-08-24 02:41:55.517989552 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-ja76pf.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,102 @@
+/*
+ * jjPlus JA76PF board support
@@ -5245,7 +5386,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-ja76pf.c linux-2.6.39/arch/mip
+MIPS_MACHINE(AR71XX_MACH_JA76PF, "JA76PF", "jjPlus JA76PF", ja76pf_init);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-jwap003.c linux-2.6.39/arch/mips/ar71xx/mach-jwap003.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-jwap003.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-jwap003.c 2011-08-24 02:41:55.517989552 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-jwap003.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,83 @@
+/*
+ * jjPlus JWAP003 board support
@@ -5332,7 +5473,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-jwap003.c linux-2.6.39/arch/mi
+MIPS_MACHINE(AR71XX_MACH_JWAP003, "JWAP003", "jjPlus JWAP003", jwap003_init);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-mzk-w04nu.c linux-2.6.39/arch/mips/ar71xx/mach-mzk-w04nu.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-mzk-w04nu.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-mzk-w04nu.c 2011-08-24 02:41:55.517989552 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-mzk-w04nu.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,166 @@
+/*
+ * Planex MZK-W04NU board support
@@ -5502,7 +5643,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-mzk-w04nu.c linux-2.6.39/arch/
+ mzk_w04nu_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-mzk-w300nh.c linux-2.6.39/arch/mips/ar71xx/mach-mzk-w300nh.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-mzk-w300nh.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-mzk-w300nh.c 2011-08-24 02:41:55.527982711 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-mzk-w300nh.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,159 @@
+/*
+ * Planex MZK-W300NH board support
@@ -5665,7 +5806,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-mzk-w300nh.c linux-2.6.39/arch
+ mzk_w300nh_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-nbg460n.c linux-2.6.39/arch/mips/ar71xx/mach-nbg460n.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-nbg460n.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-nbg460n.c 2011-08-24 02:41:55.537990605 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-nbg460n.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,225 @@
+/*
+ * Zyxel NBG 460N/550N/550NH board support
@@ -5894,7 +6035,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-nbg460n.c linux-2.6.39/arch/mi
+ nbg460n_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-pb42.c linux-2.6.39/arch/mips/ar71xx/mach-pb42.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-pb42.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-pb42.c 2011-08-24 02:41:55.537990605 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-pb42.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,74 @@
+/*
+ * Atheros PB42 board support
@@ -5972,7 +6113,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-pb42.c linux-2.6.39/arch/mips/
+MIPS_MACHINE(AR71XX_MACH_PB42, "PB42", "Atheros PB42", pb42_init);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-pb44.c linux-2.6.39/arch/mips/ar71xx/mach-pb44.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-pb44.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-pb44.c 2011-08-24 02:41:55.537990605 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-pb44.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,213 @@
+/*
+ * Atheros PB44 board support
@@ -6189,7 +6330,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-pb44.c linux-2.6.39/arch/mips/
+MIPS_MACHINE(AR71XX_MACH_PB44, "PB44", "Atheros PB44", pb44_init);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-pb92.c linux-2.6.39/arch/mips/ar71xx/mach-pb92.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-pb92.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-pb92.c 2011-08-24 02:41:55.567991163 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-pb92.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,105 @@
+/*
+ * Atheros PB92 board support
@@ -6298,7 +6439,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-pb92.c linux-2.6.39/arch/mips/
+MIPS_MACHINE(AR71XX_MACH_PB92, "PB92", "Atheros PB92", pb92_init);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-rb4xx.c linux-2.6.39/arch/mips/ar71xx/mach-rb4xx.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-rb4xx.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-rb4xx.c 2011-08-24 02:41:55.567991163 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-rb4xx.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,344 @@
+/*
+ * MikroTik RouterBOARD 4xx series support
@@ -6646,7 +6787,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-rb4xx.c linux-2.6.39/arch/mips
+ rb493_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-rb750.c linux-2.6.39/arch/mips/ar71xx/mach-rb750.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-rb750.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-rb750.c 2011-08-24 02:41:55.567991163 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-rb750.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,144 @@
+/*
+ * MikroTik RouterBOARD 750 support
@@ -6794,7 +6935,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-rb750.c linux-2.6.39/arch/mips
+ rb750_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tew-632brp.c linux-2.6.39/arch/mips/ar71xx/mach-tew-632brp.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-tew-632brp.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-tew-632brp.c 2011-08-24 02:41:55.577989822 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-tew-632brp.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,151 @@
+/*
+ * TrendNET TEW-632BRP board support
@@ -6949,7 +7090,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tew-632brp.c linux-2.6.39/arch
+ tew_632brp_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-mr3x20.c linux-2.6.39/arch/mips/ar71xx/mach-tl-mr3x20.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-mr3x20.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-tl-mr3x20.c 2011-08-24 02:41:55.577989822 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-tl-mr3x20.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,166 @@
+/*
+ * TP-LINK TL-MR3220/3420 board support
@@ -7117,15 +7258,16 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-mr3x20.c linux-2.6.39/arch/
+
+MIPS_MACHINE(AR71XX_MACH_TL_MR3420, "TL-MR3420", "TP-LINK TL-MR3420",
+ tl_mr3420_setup);
-diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wa901nd.c linux-2.6.39/arch/mips/ar71xx/mach-tl-wa901nd.c
---- linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wa901nd.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-tl-wa901nd.c 2011-08-24 02:41:55.587990766 +0200
-@@ -0,0 +1,130 @@
+diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wa901nd-v2.c linux-2.6.39/arch/mips/ar71xx/mach-tl-wa901nd-v2.c
+--- linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wa901nd-v2.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.39/arch/mips/ar71xx/mach-tl-wa901nd-v2.c 2011-08-24 18:17:23.000000000 +0200
+@@ -0,0 +1,132 @@
+/*
-+ * TP-LINK TL-WA901ND board support
++ * TP-LINK TL-WA901ND v2 board support
+ *
+ * Copyright (C) 2009-2010 Gabor Juhos <juhosg@openwrt.org>
+ * Copyright (C) 2010 Pieter Hollants <pieter@hollants.com>
++ * Copyright (C) 2011 Jonathan Bennett <jbscience87@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published
@@ -7140,21 +7282,23 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wa901nd.c linux-2.6.39/arch
+#include "machtype.h"
+#include "devices.h"
+#include "dev-m25p80.h"
-+#include "dev-ap91-pci.h"
+#include "dev-gpio-buttons.h"
+#include "dev-leds-gpio.h"
++#include "dev-ar9xxx-wmac.h"
+
-+#define TL_WA901ND_GPIO_LED_QSS 0
-+#define TL_WA901ND_GPIO_LED_SYSTEM 1
++#define TL_WA901ND_V2_GPIO_LED_QSS 4
++#define TL_WA901ND_V2_GPIO_LED_SYSTEM 2
++#define TL_WA901ND_V2_GPIO_LED_WLAN 9
+
-+#define TL_WA901ND_GPIO_BTN_RESET 11
-+#define TL_WA901ND_GPIO_BTN_QSS 12
+
-+#define TL_WA901ND_KEYS_POLL_INTERVAL 20 /* msecs */
-+#define TL_WA901ND_KEYS_DEBOUNCE_INTERVAL (3 * TL_WA901ND_KEYS_POLL_INTERVAL)
++#define TL_WA901ND_V2_GPIO_BTN_RESET 3
++#define TL_WA901ND_V2_GPIO_BTN_QSS 7
+
++#define TL_WA901ND_V2_KEYS_POLL_INTERVAL 20 /* msecs */
++#define TL_WA901ND_V2_KEYS_DEBOUNCE_INTERVAL \
++ (3 * TL_WA901ND_V2_KEYS_POLL_INTERVAL)
+#ifdef CONFIG_MTD_PARTITIONS
-+static struct mtd_partition tl_wa901nd_partitions[] = {
++static struct mtd_partition tl_wa901nd_v2_partitions[] = {
+ {
+ .name = "u-boot",
+ .offset = 0,
@@ -7181,86 +7325,84 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wa901nd.c linux-2.6.39/arch
+};
+#endif /* CONFIG_MTD_PARTITIONS */
+
-+static struct flash_platform_data tl_wa901nd_flash_data = {
++static struct flash_platform_data tl_wa901nd_v2_flash_data = {
+#ifdef CONFIG_MTD_PARTITIONS
-+ .parts = tl_wa901nd_partitions,
-+ .nr_parts = ARRAY_SIZE(tl_wa901nd_partitions),
++ .parts = tl_wa901nd_v2_partitions,
++ .nr_parts = ARRAY_SIZE(tl_wa901nd_v2_partitions),
+#endif
+};
+
-+static struct gpio_led tl_wa901nd_leds_gpio[] __initdata = {
++static struct gpio_led tl_wa901nd_v2_leds_gpio[] __initdata = {
+ {
-+ .name = "tl-wa901nd:green:system",
-+ .gpio = TL_WA901ND_GPIO_LED_SYSTEM,
++ .name = "tl-wa901nd-v2:green:system",
++ .gpio = TL_WA901ND_V2_GPIO_LED_SYSTEM,
+ .active_low = 1,
+ }, {
-+ .name = "tl-wa901nd:green:qss",
-+ .gpio = TL_WA901ND_GPIO_LED_QSS,
++ .name = "tl-wa901nd-v2:green:qss",
++ .gpio = TL_WA901ND_V2_GPIO_LED_QSS,
++ }, {
++ .name = "tl-wa901nd-v2:green:wlan",
++ .gpio = TL_WA901ND_V2_GPIO_LED_WLAN,
+ .active_low = 1,
+ }
+};
+
-+static struct gpio_keys_button tl_wa901nd_gpio_keys[] __initdata = {
++static struct gpio_keys_button tl_wa901nd_v2_gpio_keys[] __initdata = {
+ {
+ .desc = "reset",
+ .type = EV_KEY,
-+ .code = BTN_0,
-+ .debounce_interval = TL_WA901ND_KEYS_DEBOUNCE_INTERVAL,
-+ .gpio = TL_WA901ND_GPIO_BTN_RESET,
++ .code = KEY_RESTART,
++ .debounce_interval = TL_WA901ND_V2_KEYS_DEBOUNCE_INTERVAL,
++ .gpio = TL_WA901ND_V2_GPIO_BTN_RESET,
+ .active_low = 1,
+ }, {
+ .desc = "qss",
+ .type = EV_KEY,
-+ .code = BTN_1,
-+ .debounce_interval = TL_WA901ND_KEYS_DEBOUNCE_INTERVAL,
-+ .gpio = TL_WA901ND_GPIO_BTN_QSS,
++ .code = KEY_WPS_BUTTON,
++ .debounce_interval = TL_WA901ND_V2_KEYS_DEBOUNCE_INTERVAL,
++ .gpio = TL_WA901ND_V2_GPIO_BTN_QSS,
+ .active_low = 1,
+ }
+};
+
-+static void __init tl_wa901nd_setup(void)
++static void __init tl_wa901nd_v2_setup(void)
+{
+ u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00);
-+ u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
++ u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff1000);
+
-+ /*
-+ * ar71xx_eth0 would be the WAN port, but is not connected on
-+ * the TL-WA901ND. ar71xx_eth1 connects to the internal switch chip,
-+ * however we have a single LAN port only.
-+ */
-+ ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac, 0);
-+ ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
-+ ar71xx_eth1_data.speed = SPEED_1000;
-+ ar71xx_eth1_data.duplex = DUPLEX_FULL;
-+ ar71xx_eth1_data.has_ar7240_switch = 1;
++ ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac, 0);
+
++ ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII;
++ ar71xx_eth0_data.phy_mask = 0x00001000;
+ ar71xx_add_device_mdio(0x0);
-+ ar71xx_add_device_eth(1);
+
-+ ar71xx_add_device_m25p80(&tl_wa901nd_flash_data);
++ ar71xx_eth0_data.reset_bit = RESET_MODULE_GE0_MAC |
++ RESET_MODULE_GE0_PHY;
++ ar71xx_add_device_eth(0);
+
-+ ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_wa901nd_leds_gpio),
-+ tl_wa901nd_leds_gpio);
++ ar71xx_add_device_m25p80(&tl_wa901nd_v2_flash_data);
+
-+ ar71xx_register_gpio_keys_polled(-1, TL_WA901ND_KEYS_POLL_INTERVAL,
-+ ARRAY_SIZE(tl_wa901nd_gpio_keys),
-+ tl_wa901nd_gpio_keys);
++ ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_wa901nd_v2_leds_gpio),
++ tl_wa901nd_v2_leds_gpio);
+
-+ ap91_pci_init(ee, mac);
++ ar71xx_register_gpio_keys_polled(-1, TL_WA901ND_V2_KEYS_POLL_INTERVAL,
++ ARRAY_SIZE(tl_wa901nd_v2_gpio_keys),
++ tl_wa901nd_v2_gpio_keys);
++
++ ar9xxx_add_device_wmac(eeprom, mac);
+}
+
-+MIPS_MACHINE(AR71XX_MACH_TL_WA901ND, "TL-WA901ND", "TP-LINK TL-WA901ND",
-+ tl_wa901nd_setup);
-diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wa901nd-v2.c linux-2.6.39/arch/mips/ar71xx/mach-tl-wa901nd-v2.c
---- linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wa901nd-v2.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-tl-wa901nd-v2.c 2011-08-24 02:41:55.587990766 +0200
-@@ -0,0 +1,132 @@
++MIPS_MACHINE(AR71XX_MACH_TL_WA901ND_V2, "TL-WA901ND-v2",
++ "TP-LINK TL-WA901ND v2", tl_wa901nd_v2_setup);
+diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wa901nd.c linux-2.6.39/arch/mips/ar71xx/mach-tl-wa901nd.c
+--- linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wa901nd.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.39/arch/mips/ar71xx/mach-tl-wa901nd.c 2011-08-24 18:17:23.000000000 +0200
+@@ -0,0 +1,130 @@
+/*
-+ * TP-LINK TL-WA901ND v2 board support
++ * TP-LINK TL-WA901ND board support
+ *
+ * Copyright (C) 2009-2010 Gabor Juhos <juhosg@openwrt.org>
+ * Copyright (C) 2010 Pieter Hollants <pieter@hollants.com>
-+ * Copyright (C) 2011 Jonathan Bennett <jbscience87@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published
@@ -7275,23 +7417,21 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wa901nd-v2.c linux-2.6.39/a
+#include "machtype.h"
+#include "devices.h"
+#include "dev-m25p80.h"
++#include "dev-ap91-pci.h"
+#include "dev-gpio-buttons.h"
+#include "dev-leds-gpio.h"
-+#include "dev-ar9xxx-wmac.h"
+
-+#define TL_WA901ND_V2_GPIO_LED_QSS 4
-+#define TL_WA901ND_V2_GPIO_LED_SYSTEM 2
-+#define TL_WA901ND_V2_GPIO_LED_WLAN 9
++#define TL_WA901ND_GPIO_LED_QSS 0
++#define TL_WA901ND_GPIO_LED_SYSTEM 1
+
++#define TL_WA901ND_GPIO_BTN_RESET 11
++#define TL_WA901ND_GPIO_BTN_QSS 12
+
-+#define TL_WA901ND_V2_GPIO_BTN_RESET 3
-+#define TL_WA901ND_V2_GPIO_BTN_QSS 7
++#define TL_WA901ND_KEYS_POLL_INTERVAL 20 /* msecs */
++#define TL_WA901ND_KEYS_DEBOUNCE_INTERVAL (3 * TL_WA901ND_KEYS_POLL_INTERVAL)
+
-+#define TL_WA901ND_V2_KEYS_POLL_INTERVAL 20 /* msecs */
-+#define TL_WA901ND_V2_KEYS_DEBOUNCE_INTERVAL \
-+ (3 * TL_WA901ND_V2_KEYS_POLL_INTERVAL)
+#ifdef CONFIG_MTD_PARTITIONS
-+static struct mtd_partition tl_wa901nd_v2_partitions[] = {
++static struct mtd_partition tl_wa901nd_partitions[] = {
+ {
+ .name = "u-boot",
+ .offset = 0,
@@ -7318,78 +7458,79 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wa901nd-v2.c linux-2.6.39/a
+};
+#endif /* CONFIG_MTD_PARTITIONS */
+
-+static struct flash_platform_data tl_wa901nd_v2_flash_data = {
++static struct flash_platform_data tl_wa901nd_flash_data = {
+#ifdef CONFIG_MTD_PARTITIONS
-+ .parts = tl_wa901nd_v2_partitions,
-+ .nr_parts = ARRAY_SIZE(tl_wa901nd_v2_partitions),
++ .parts = tl_wa901nd_partitions,
++ .nr_parts = ARRAY_SIZE(tl_wa901nd_partitions),
+#endif
+};
+
-+static struct gpio_led tl_wa901nd_v2_leds_gpio[] __initdata = {
++static struct gpio_led tl_wa901nd_leds_gpio[] __initdata = {
+ {
-+ .name = "tl-wa901nd-v2:green:system",
-+ .gpio = TL_WA901ND_V2_GPIO_LED_SYSTEM,
++ .name = "tl-wa901nd:green:system",
++ .gpio = TL_WA901ND_GPIO_LED_SYSTEM,
+ .active_low = 1,
+ }, {
-+ .name = "tl-wa901nd-v2:green:qss",
-+ .gpio = TL_WA901ND_V2_GPIO_LED_QSS,
-+ }, {
-+ .name = "tl-wa901nd-v2:green:wlan",
-+ .gpio = TL_WA901ND_V2_GPIO_LED_WLAN,
++ .name = "tl-wa901nd:green:qss",
++ .gpio = TL_WA901ND_GPIO_LED_QSS,
+ .active_low = 1,
+ }
+};
+
-+static struct gpio_keys_button tl_wa901nd_v2_gpio_keys[] __initdata = {
++static struct gpio_keys_button tl_wa901nd_gpio_keys[] __initdata = {
+ {
+ .desc = "reset",
+ .type = EV_KEY,
-+ .code = KEY_RESTART,
-+ .debounce_interval = TL_WA901ND_V2_KEYS_DEBOUNCE_INTERVAL,
-+ .gpio = TL_WA901ND_V2_GPIO_BTN_RESET,
++ .code = BTN_0,
++ .debounce_interval = TL_WA901ND_KEYS_DEBOUNCE_INTERVAL,
++ .gpio = TL_WA901ND_GPIO_BTN_RESET,
+ .active_low = 1,
+ }, {
+ .desc = "qss",
+ .type = EV_KEY,
-+ .code = KEY_WPS_BUTTON,
-+ .debounce_interval = TL_WA901ND_V2_KEYS_DEBOUNCE_INTERVAL,
-+ .gpio = TL_WA901ND_V2_GPIO_BTN_QSS,
++ .code = BTN_1,
++ .debounce_interval = TL_WA901ND_KEYS_DEBOUNCE_INTERVAL,
++ .gpio = TL_WA901ND_GPIO_BTN_QSS,
+ .active_low = 1,
+ }
+};
+
-+static void __init tl_wa901nd_v2_setup(void)
++static void __init tl_wa901nd_setup(void)
+{
+ u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00);
-+ u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff1000);
++ u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
+
-+ ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac, 0);
++ /*
++ * ar71xx_eth0 would be the WAN port, but is not connected on
++ * the TL-WA901ND. ar71xx_eth1 connects to the internal switch chip,
++ * however we have a single LAN port only.
++ */
++ ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac, 0);
++ ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
++ ar71xx_eth1_data.speed = SPEED_1000;
++ ar71xx_eth1_data.duplex = DUPLEX_FULL;
++ ar71xx_eth1_data.has_ar7240_switch = 1;
+
-+ ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII;
-+ ar71xx_eth0_data.phy_mask = 0x00001000;
+ ar71xx_add_device_mdio(0x0);
++ ar71xx_add_device_eth(1);
+
-+ ar71xx_eth0_data.reset_bit = RESET_MODULE_GE0_MAC |
-+ RESET_MODULE_GE0_PHY;
-+ ar71xx_add_device_eth(0);
-+
-+ ar71xx_add_device_m25p80(&tl_wa901nd_v2_flash_data);
++ ar71xx_add_device_m25p80(&tl_wa901nd_flash_data);
+
-+ ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_wa901nd_v2_leds_gpio),
-+ tl_wa901nd_v2_leds_gpio);
++ ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_wa901nd_leds_gpio),
++ tl_wa901nd_leds_gpio);
+
-+ ar71xx_register_gpio_keys_polled(-1, TL_WA901ND_V2_KEYS_POLL_INTERVAL,
-+ ARRAY_SIZE(tl_wa901nd_v2_gpio_keys),
-+ tl_wa901nd_v2_gpio_keys);
++ ar71xx_register_gpio_keys_polled(-1, TL_WA901ND_KEYS_POLL_INTERVAL,
++ ARRAY_SIZE(tl_wa901nd_gpio_keys),
++ tl_wa901nd_gpio_keys);
+
-+ ar9xxx_add_device_wmac(eeprom, mac);
++ ap91_pci_init(ee, mac);
+}
+
-+MIPS_MACHINE(AR71XX_MACH_TL_WA901ND_V2, "TL-WA901ND-v2",
-+ "TP-LINK TL-WA901ND v2", tl_wa901nd_v2_setup);
++MIPS_MACHINE(AR71XX_MACH_TL_WA901ND, "TL-WA901ND", "TP-LINK TL-WA901ND",
++ tl_wa901nd_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wr1043nd.c linux-2.6.39/arch/mips/ar71xx/mach-tl-wr1043nd.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wr1043nd.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-tl-wr1043nd.c 2011-08-24 02:41:55.587990766 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-tl-wr1043nd.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,156 @@
+/*
+ * TP-LINK TL-WR1043ND board support
@@ -7549,7 +7690,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wr1043nd.c linux-2.6.39/arc
+ tl_wr1043nd_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wr741nd.c linux-2.6.39/arch/mips/ar71xx/mach-tl-wr741nd.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wr741nd.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-tl-wr741nd.c 2011-08-24 02:41:55.587990766 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-tl-wr741nd.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,135 @@
+/*
+ * TP-LINK TL-WR741ND board support
@@ -7688,7 +7829,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wr741nd.c linux-2.6.39/arch
+ tl_wr741nd_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wr841n.c linux-2.6.39/arch/mips/ar71xx/mach-tl-wr841n.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wr841n.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-tl-wr841n.c 2011-08-24 02:41:55.597982750 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-tl-wr841n.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,144 @@
+/*
+ * TP-LINK TL-WR841N board support
@@ -7836,7 +7977,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wr841n.c linux-2.6.39/arch/
+ tl_wr841n_v1_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wr941nd.c linux-2.6.39/arch/mips/ar71xx/mach-tl-wr941nd.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wr941nd.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-tl-wr941nd.c 2011-08-24 02:41:55.597982750 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-tl-wr941nd.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,147 @@
+/*
+ * TP-LINK TL-WR941ND board support
@@ -7985,88 +8126,9 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-tl-wr941nd.c linux-2.6.39/arch
+
+MIPS_MACHINE(AR71XX_MACH_TL_WR941ND, "TL-WR941ND", "TP-LINK TL-WR941ND",
+ tl_wr941nd_setup);
-diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/machtype.h linux-2.6.39/arch/mips/ar71xx/machtype.h
---- linux-2.6.39.orig/arch/mips/ar71xx/machtype.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/machtype.h 2011-08-24 02:41:55.597982750 +0200
-@@ -0,0 +1,75 @@
-+/*
-+ * Atheros AR71xx machine type definitions
-+ *
-+ * Copyright (C) 2008-2010 Gabor Juhos <juhosg@openwrt.org>
-+ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 as published
-+ * by the Free Software Foundation.
-+ */
-+
-+#ifndef _AR71XX_MACHTYPE_H
-+#define _AR71XX_MACHTYPE_H
-+
-+#include <asm/mips_machine.h>
-+
-+enum ar71xx_mach_type {
-+ AR71XX_MACH_GENERIC = 0,
-+ AR71XX_MACH_AP121, /* Atheros AP121 */
-+ AR71XX_MACH_AP121_MINI, /* Atheros AP121-MINI */
-+ AR71XX_MACH_AP81, /* Atheros AP81 */
-+ AR71XX_MACH_AP83, /* Atheros AP83 */
-+ AR71XX_MACH_AW_NR580, /* AzureWave AW-NR580 */
-+ AR71XX_MACH_DIR_600_A1, /* D-Link DIR-600 rev. A1 */
-+ AR71XX_MACH_DIR_615_C1, /* D-Link DIR-615 rev. C1 */
-+ AR71XX_MACH_DIR_825_B1, /* D-Link DIR-825 rev. B1 */
-+ AR71XX_MACH_JA76PF, /* jjPlus JA76PF */
-+ AR71XX_MACH_JWAP003, /* jjPlus JWAP003 */
-+ AR71XX_MACH_RB_411, /* MikroTik RouterBOARD 411/411A/411AH */
-+ AR71XX_MACH_RB_411U, /* MikroTik RouterBOARD 411U */
-+ AR71XX_MACH_RB_433, /* MikroTik RouterBOARD 433/433AH */
-+ AR71XX_MACH_RB_433U, /* MikroTik RouterBOARD 433UAH */
-+ AR71XX_MACH_RB_450, /* MikroTik RouterBOARD 450 */
-+ AR71XX_MACH_RB_450G, /* MikroTik RouterBOARD 450G */
-+ AR71XX_MACH_RB_493, /* Mikrotik RouterBOARD 493/493AH */
-+ AR71XX_MACH_RB_750, /* MikroTik RouterBOARD 750 */
-+ AR71XX_MACH_PB42, /* Atheros PB42 */
-+ AR71XX_MACH_PB44, /* Atheros PB44 */
-+ AR71XX_MACH_PB92, /* Atheros PB92 */
-+ AR71XX_MACH_MZK_W04NU, /* Planex MZK-W04NU */
-+ AR71XX_MACH_MZK_W300NH, /* Planex MZK-W300NH */
-+ AR71XX_MACH_NBG460N, /* Zyxel NBG460N/550N/550NH */
-+ AR71XX_MACH_TEW_632BRP, /* TRENDnet TEW-632BRP */
-+ AR71XX_MACH_TL_MR3220, /* TP-LINK TL-MR3220 */
-+ AR71XX_MACH_TL_MR3420, /* TP-LINK TL-MR3420 */
-+ AR71XX_MACH_TL_WA901ND, /* TP-LINK TL-WA901ND */
-+ AR71XX_MACH_TL_WA901ND_V2, /* TP-LINK TL-WA901ND v2 */
-+ AR71XX_MACH_TL_WR741ND, /* TP-LINK TL-WR741ND */
-+ AR71XX_MACH_TL_WR841N_V1, /* TP-LINK TL-WR841N v1 */
-+ AR71XX_MACH_TL_WR941ND, /* TP-LINK TL-WR941ND */
-+ AR71XX_MACH_TL_WR1043ND, /* TP-LINK TL-WR1041ND */
-+ AR71XX_MACH_UBNT_LSSR71, /* Ubiquiti LS-SR71 */
-+ AR71XX_MACH_UBNT_LSX, /* Ubiquiti LSX */
-+ AR71XX_MACH_UBNT_RS, /* Ubiquiti RouterStation */
-+ AR71XX_MACH_UBNT_RSPRO, /* Ubiquiti RouterStation Pro */
-+ AR71XX_MACH_UBNT_BULLET_M, /* Ubiquiti Bullet M */
-+ AR71XX_MACH_UBNT_ROCKET_M, /* Ubiquiti Rocket M */
-+ AR71XX_MACH_UBNT_NANO_M, /* Ubiquiti NanoStation M */
-+ AR71XX_MACH_WNDR3700, /* NETGEAR WNDR3700 */
-+ AR71XX_MACH_WNDR3700V2, /* NETGEAR WNDR3700v2 */
-+ AR71XX_MACH_WNR2000, /* NETGEAR WNR2000 */
-+ AR71XX_MACH_WP543, /* Compex WP543 */
-+ AR71XX_MACH_WRT160NL, /* Linksys WRT160NL */
-+ AR71XX_MACH_WRT400N, /* Linksys WRT400N */
-+ AR71XX_MACH_WZR_HP_AG300H, /* Buffalo WZR-HP-AG300H */
-+ AR71XX_MACH_WZR_HP_G300NH, /* Buffalo WZR-HP-G300NH */
-+ AR71XX_MACH_EAP7660D, /* Senao EAP7660D */
-+ AR71XX_MACH_ZCN_1523H_2, /* Zcomax ZCN-1523H-2-xx */
-+ AR71XX_MACH_ZCN_1523H_5, /* Zcomax ZCN-1523H-5-xx */
-+ AR71XX_MACH_AP96, /* Atheros AP96 */
-+ AR71XX_MACH_UBNT_UNIFI, /* Unifi */
-+ AR71XX_MACH_DB120, /* Atheros DB120 (AR934x based) */
-+};
-+
-+#endif /* _AR71XX_MACHTYPE_H */
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-ubnt.c linux-2.6.39/arch/mips/ar71xx/mach-ubnt.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-ubnt.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-ubnt.c 2011-08-24 02:41:55.597982750 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-ubnt.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,333 @@
+/*
+ * Ubiquiti RouterStation support
@@ -8403,7 +8465,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-ubnt.c linux-2.6.39/arch/mips/
+ ubnt_unifi_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-wndr3700.c linux-2.6.39/arch/mips/ar71xx/mach-wndr3700.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-wndr3700.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-wndr3700.c 2011-08-24 02:41:55.607980283 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-wndr3700.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,290 @@
+/*
+ * Netgear WNDR3700 board support
@@ -8697,7 +8759,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-wndr3700.c linux-2.6.39/arch/m
+ wndr3700v2_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-wnr2000.c linux-2.6.39/arch/mips/ar71xx/mach-wnr2000.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-wnr2000.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-wnr2000.c 2011-08-24 02:41:55.617990333 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-wnr2000.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,150 @@
+/*
+ * NETGEAR WNR2000 board support
@@ -8851,7 +8913,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-wnr2000.c linux-2.6.39/arch/mi
+MIPS_MACHINE(AR71XX_MACH_WNR2000, "WNR2000", "NETGEAR WNR2000", wnr2000_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-wp543.c linux-2.6.39/arch/mips/ar71xx/mach-wp543.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-wp543.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-wp543.c 2011-08-24 02:41:55.617990333 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-wp543.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,101 @@
+/*
+ * Compex WP543/WPJ543 board support
@@ -8956,7 +9018,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-wp543.c linux-2.6.39/arch/mips
+MIPS_MACHINE(AR71XX_MACH_WP543, "WP543", "Compex WP543", wp543_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-wrt160nl.c linux-2.6.39/arch/mips/ar71xx/mach-wrt160nl.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-wrt160nl.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-wrt160nl.c 2011-08-24 02:41:55.617990333 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-wrt160nl.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,161 @@
+/*
+ * Linksys WRT160NL board support
@@ -9121,7 +9183,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-wrt160nl.c linux-2.6.39/arch/m
+ wrt160nl_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-wrt400n.c linux-2.6.39/arch/mips/ar71xx/mach-wrt400n.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-wrt400n.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-wrt400n.c 2011-08-24 02:41:55.617990333 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-wrt400n.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,164 @@
+/*
+ * Linksys WRT400N board support
@@ -9289,7 +9351,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-wrt400n.c linux-2.6.39/arch/mi
+MIPS_MACHINE(AR71XX_MACH_WRT400N, "WRT400N", "Linksys WRT400N", wrt400n_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-wzr-hp-ag300h.c linux-2.6.39/arch/mips/ar71xx/mach-wzr-hp-ag300h.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-wzr-hp-ag300h.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-wzr-hp-ag300h.c 2011-08-24 02:41:55.628193451 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-wzr-hp-ag300h.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,231 @@
+/*
+ * Buffalo WZR-HP-AG300H board support
@@ -9524,7 +9586,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-wzr-hp-ag300h.c linux-2.6.39/a
+
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-wzr-hp-g300nh.c linux-2.6.39/arch/mips/ar71xx/mach-wzr-hp-g300nh.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-wzr-hp-g300nh.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-wzr-hp-g300nh.c 2011-08-24 02:41:55.649418561 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-wzr-hp-g300nh.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,292 @@
+/*
+ * Buffalo WZR-HP-G300NH board support
@@ -9820,7 +9882,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-wzr-hp-g300nh.c linux-2.6.39/a
+ "Buffalo WZR-HP-G300NH", wzrhpg300nh_setup);
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-zcn-1523h.c linux-2.6.39/arch/mips/ar71xx/mach-zcn-1523h.c
--- linux-2.6.39.orig/arch/mips/ar71xx/mach-zcn-1523h.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/mach-zcn-1523h.c 2011-08-24 02:41:55.649418561 +0200
++++ linux-2.6.39/arch/mips/ar71xx/mach-zcn-1523h.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,214 @@
+/*
+ * Zcomax ZCN-1523H-2-8/5-16 board support
@@ -10036,80 +10098,88 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/mach-zcn-1523h.c linux-2.6.39/arch/
+
+MIPS_MACHINE(AR71XX_MACH_ZCN_1523H_5, "ZCN-1523H-5", "Zcomax ZCN-1523H-5",
+ zcn_1523h_5_setup);
-diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/Makefile linux-2.6.39/arch/mips/ar71xx/Makefile
---- linux-2.6.39.orig/arch/mips/ar71xx/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/Makefile 2011-08-24 02:41:55.677990354 +0200
-@@ -0,0 +1,67 @@
-+#
-+# Makefile for the Atheros AR71xx SoC specific parts of the kernel
-+#
-+# Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
-+# Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
-+#
-+# This program is free software; you can redistribute it and/or modify it
-+# under the terms of the GNU General Public License version 2 as published
-+# by the Free Software Foundation.
-+
-+obj-y := prom.o irq.o setup.o devices.o gpio.o ar71xx.o
+diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/machtype.h linux-2.6.39/arch/mips/ar71xx/machtype.h
+--- linux-2.6.39.orig/arch/mips/ar71xx/machtype.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.39/arch/mips/ar71xx/machtype.h 2011-08-24 18:17:23.000000000 +0200
+@@ -0,0 +1,75 @@
++/*
++ * Atheros AR71xx machine type definitions
++ *
++ * Copyright (C) 2008-2010 Gabor Juhos <juhosg@openwrt.org>
++ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 as published
++ * by the Free Software Foundation.
++ */
+
-+obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
-+obj-$(CONFIG_PCI) += pci.o
++#ifndef _AR71XX_MACHTYPE_H
++#define _AR71XX_MACHTYPE_H
+
-+obj-$(CONFIG_AR71XX_DEV_AP91_PCI) += dev-ap91-pci.o
-+obj-$(CONFIG_AR71XX_DEV_AP94_PCI) += dev-ap94-pci.o
-+obj-$(CONFIG_AR71XX_DEV_AR9XXX_WMAC) += dev-ar9xxx-wmac.o
-+obj-$(CONFIG_AR71XX_DEV_DB120_PCI) += dev-db120-pci.o
-+obj-$(CONFIG_AR71XX_DEV_DSA) += dev-dsa.o
-+obj-$(CONFIG_AR71XX_DEV_GPIO_BUTTONS) += dev-gpio-buttons.o
-+obj-$(CONFIG_AR71XX_DEV_LEDS_GPIO) += dev-leds-gpio.o
-+obj-$(CONFIG_AR71XX_DEV_M25P80) += dev-m25p80.o
-+obj-$(CONFIG_AR71XX_DEV_PB42_PCI) += dev-pb42-pci.o
-+obj-$(CONFIG_AR71XX_DEV_PB9X_PCI) += dev-pb9x-pci.o
-+obj-$(CONFIG_AR71XX_DEV_USB) += dev-usb.o
++#include <asm/mips_machine.h>
+
-+obj-$(CONFIG_AR71XX_NVRAM) += nvram.o
-+obj-$(CONFIG_AR71XX_PCI_ATH9K_FIXUP) += pci-ath9k-fixup.o
++enum ar71xx_mach_type {
++ AR71XX_MACH_GENERIC = 0,
++ AR71XX_MACH_AP121, /* Atheros AP121 */
++ AR71XX_MACH_AP121_MINI, /* Atheros AP121-MINI */
++ AR71XX_MACH_AP81, /* Atheros AP81 */
++ AR71XX_MACH_AP83, /* Atheros AP83 */
++ AR71XX_MACH_AW_NR580, /* AzureWave AW-NR580 */
++ AR71XX_MACH_DIR_600_A1, /* D-Link DIR-600 rev. A1 */
++ AR71XX_MACH_DIR_615_C1, /* D-Link DIR-615 rev. C1 */
++ AR71XX_MACH_DIR_825_B1, /* D-Link DIR-825 rev. B1 */
++ AR71XX_MACH_JA76PF, /* jjPlus JA76PF */
++ AR71XX_MACH_JWAP003, /* jjPlus JWAP003 */
++ AR71XX_MACH_RB_411, /* MikroTik RouterBOARD 411/411A/411AH */
++ AR71XX_MACH_RB_411U, /* MikroTik RouterBOARD 411U */
++ AR71XX_MACH_RB_433, /* MikroTik RouterBOARD 433/433AH */
++ AR71XX_MACH_RB_433U, /* MikroTik RouterBOARD 433UAH */
++ AR71XX_MACH_RB_450, /* MikroTik RouterBOARD 450 */
++ AR71XX_MACH_RB_450G, /* MikroTik RouterBOARD 450G */
++ AR71XX_MACH_RB_493, /* Mikrotik RouterBOARD 493/493AH */
++ AR71XX_MACH_RB_750, /* MikroTik RouterBOARD 750 */
++ AR71XX_MACH_PB42, /* Atheros PB42 */
++ AR71XX_MACH_PB44, /* Atheros PB44 */
++ AR71XX_MACH_PB92, /* Atheros PB92 */
++ AR71XX_MACH_MZK_W04NU, /* Planex MZK-W04NU */
++ AR71XX_MACH_MZK_W300NH, /* Planex MZK-W300NH */
++ AR71XX_MACH_NBG460N, /* Zyxel NBG460N/550N/550NH */
++ AR71XX_MACH_TEW_632BRP, /* TRENDnet TEW-632BRP */
++ AR71XX_MACH_TL_MR3220, /* TP-LINK TL-MR3220 */
++ AR71XX_MACH_TL_MR3420, /* TP-LINK TL-MR3420 */
++ AR71XX_MACH_TL_WA901ND, /* TP-LINK TL-WA901ND */
++ AR71XX_MACH_TL_WA901ND_V2, /* TP-LINK TL-WA901ND v2 */
++ AR71XX_MACH_TL_WR741ND, /* TP-LINK TL-WR741ND */
++ AR71XX_MACH_TL_WR841N_V1, /* TP-LINK TL-WR841N v1 */
++ AR71XX_MACH_TL_WR941ND, /* TP-LINK TL-WR941ND */
++ AR71XX_MACH_TL_WR1043ND, /* TP-LINK TL-WR1041ND */
++ AR71XX_MACH_UBNT_LSSR71, /* Ubiquiti LS-SR71 */
++ AR71XX_MACH_UBNT_LSX, /* Ubiquiti LSX */
++ AR71XX_MACH_UBNT_RS, /* Ubiquiti RouterStation */
++ AR71XX_MACH_UBNT_RSPRO, /* Ubiquiti RouterStation Pro */
++ AR71XX_MACH_UBNT_BULLET_M, /* Ubiquiti Bullet M */
++ AR71XX_MACH_UBNT_ROCKET_M, /* Ubiquiti Rocket M */
++ AR71XX_MACH_UBNT_NANO_M, /* Ubiquiti NanoStation M */
++ AR71XX_MACH_WNDR3700, /* NETGEAR WNDR3700 */
++ AR71XX_MACH_WNDR3700V2, /* NETGEAR WNDR3700v2 */
++ AR71XX_MACH_WNR2000, /* NETGEAR WNR2000 */
++ AR71XX_MACH_WP543, /* Compex WP543 */
++ AR71XX_MACH_WRT160NL, /* Linksys WRT160NL */
++ AR71XX_MACH_WRT400N, /* Linksys WRT400N */
++ AR71XX_MACH_WZR_HP_AG300H, /* Buffalo WZR-HP-AG300H */
++ AR71XX_MACH_WZR_HP_G300NH, /* Buffalo WZR-HP-G300NH */
++ AR71XX_MACH_EAP7660D, /* Senao EAP7660D */
++ AR71XX_MACH_ZCN_1523H_2, /* Zcomax ZCN-1523H-2-xx */
++ AR71XX_MACH_ZCN_1523H_5, /* Zcomax ZCN-1523H-5-xx */
++ AR71XX_MACH_AP96, /* Atheros AP96 */
++ AR71XX_MACH_UBNT_UNIFI, /* Unifi */
++ AR71XX_MACH_DB120, /* Atheros DB120 (AR934x based) */
++};
+
-+obj-$(CONFIG_AR71XX_MACH_AP121) += mach-ap121.o
-+obj-$(CONFIG_AR71XX_MACH_AP81) += mach-ap81.o
-+obj-$(CONFIG_AR71XX_MACH_AP83) += mach-ap83.o
-+obj-$(CONFIG_AR71XX_MACH_AP96) += mach-ap96.o
-+obj-$(CONFIG_AR71XX_MACH_AW_NR580) += mach-aw-nr580.o
-+obj-$(CONFIG_AR71XX_MACH_DB120) += mach-db120.o
-+obj-$(CONFIG_AR71XX_MACH_DIR_600_A1) += mach-dir-600-a1.o
-+obj-$(CONFIG_AR71XX_MACH_DIR_615_C1) += mach-dir-615-c1.o
-+obj-$(CONFIG_AR71XX_MACH_DIR_825_B1) += mach-dir-825-b1.o
-+obj-$(CONFIG_AR71XX_MACH_EAP7660D) += mach-eap7660d.o
-+obj-$(CONFIG_AR71XX_MACH_JA76PF) += mach-ja76pf.o
-+obj-$(CONFIG_AR71XX_MACH_JWAP003) += mach-jwap003.o
-+obj-$(CONFIG_AR71XX_MACH_MZK_W04NU) += mach-mzk-w04nu.o
-+obj-$(CONFIG_AR71XX_MACH_MZK_W300NH) += mach-mzk-w300nh.o
-+obj-$(CONFIG_AR71XX_MACH_NBG460N) += mach-nbg460n.o
-+obj-$(CONFIG_AR71XX_MACH_PB42) += mach-pb42.o
-+obj-$(CONFIG_AR71XX_MACH_PB44) += mach-pb44.o
-+obj-$(CONFIG_AR71XX_MACH_PB92) += mach-pb92.o
-+obj-$(CONFIG_AR71XX_MACH_RB4XX) += mach-rb4xx.o
-+obj-$(CONFIG_AR71XX_MACH_RB750) += mach-rb750.o
-+obj-$(CONFIG_AR71XX_MACH_TEW_632BRP) += mach-tew-632brp.o
-+obj-$(CONFIG_AR71XX_MACH_TL_MR3X20) += mach-tl-mr3x20.o
-+obj-$(CONFIG_AR71XX_MACH_TL_WA901ND) += mach-tl-wa901nd.o
-+obj-$(CONFIG_AR71XX_MACH_TL_WA901ND_V2) += mach-tl-wa901nd-v2.o
-+obj-$(CONFIG_AR71XX_MACH_TL_WR741ND) += mach-tl-wr741nd.o
-+obj-$(CONFIG_AR71XX_MACH_TL_WR841N_V1) += mach-tl-wr841n.o
-+obj-$(CONFIG_AR71XX_MACH_TL_WR941ND) += mach-tl-wr941nd.o
-+obj-$(CONFIG_AR71XX_MACH_TL_WR1043ND) += mach-tl-wr1043nd.o
-+obj-$(CONFIG_AR71XX_MACH_UBNT) += mach-ubnt.o
-+obj-$(CONFIG_AR71XX_MACH_WNDR3700) += mach-wndr3700.o
-+obj-$(CONFIG_AR71XX_MACH_WNR2000) += mach-wnr2000.o
-+obj-$(CONFIG_AR71XX_MACH_WP543) += mach-wp543.o
-+obj-$(CONFIG_AR71XX_MACH_WRT160NL) += mach-wrt160nl.o
-+obj-$(CONFIG_AR71XX_MACH_WRT400N) += mach-wrt400n.o
-+obj-$(CONFIG_AR71XX_MACH_WZR_HP_G300NH) += mach-wzr-hp-g300nh.o
-+obj-$(CONFIG_AR71XX_MACH_WZR_HP_AG300H) += mach-wzr-hp-ag300h.o
-+obj-$(CONFIG_AR71XX_MACH_ZCN_1523H) += mach-zcn-1523h.o
++#endif /* _AR71XX_MACHTYPE_H */
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/nvram.c linux-2.6.39/arch/mips/ar71xx/nvram.c
--- linux-2.6.39.orig/arch/mips/ar71xx/nvram.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/nvram.c 2011-08-24 02:41:55.677990354 +0200
++++ linux-2.6.39/arch/mips/ar71xx/nvram.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,75 @@
+/*
+ * Atheros AR71xx minimal nvram support
@@ -10188,7 +10258,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/nvram.c linux-2.6.39/arch/mips/ar71
+}
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/nvram.h linux-2.6.39/arch/mips/ar71xx/nvram.h
--- linux-2.6.39.orig/arch/mips/ar71xx/nvram.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/nvram.h 2011-08-24 02:41:55.687991145 +0200
++++ linux-2.6.39/arch/mips/ar71xx/nvram.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,19 @@
+/*
+ * Atheros AR71xx minimal nvram support
@@ -10211,7 +10281,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/nvram.h linux-2.6.39/arch/mips/ar71
+#endif /* _AR71XX_NVRAM_H */
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/pci-ath9k-fixup.c linux-2.6.39/arch/mips/ar71xx/pci-ath9k-fixup.c
--- linux-2.6.39.orig/arch/mips/ar71xx/pci-ath9k-fixup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/pci-ath9k-fixup.c 2011-08-24 02:41:55.697990606 +0200
++++ linux-2.6.39/arch/mips/ar71xx/pci-ath9k-fixup.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,123 @@
+/*
+ * Atheros AP94 reference board PCI initialization
@@ -10338,7 +10408,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/pci-ath9k-fixup.c linux-2.6.39/arch
+}
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/pci-ath9k-fixup.h linux-2.6.39/arch/mips/ar71xx/pci-ath9k-fixup.h
--- linux-2.6.39.orig/arch/mips/ar71xx/pci-ath9k-fixup.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/pci-ath9k-fixup.h 2011-08-24 02:41:55.697990606 +0200
++++ linux-2.6.39/arch/mips/ar71xx/pci-ath9k-fixup.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,6 @@
+#ifndef _PCI_ATH9K_FIXUP
+#define _PCI_ATH9K_FIXUP
@@ -10348,7 +10418,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/pci-ath9k-fixup.h linux-2.6.39/arch
+#endif /* _PCI_ATH9K_FIXUP */
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/pci.c linux-2.6.39/arch/mips/ar71xx/pci.c
--- linux-2.6.39.orig/arch/mips/ar71xx/pci.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/pci.c 2011-08-24 02:41:55.697990606 +0200
++++ linux-2.6.39/arch/mips/ar71xx/pci.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,97 @@
+/*
+ * Atheros AR71xx PCI setup code
@@ -10449,7 +10519,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/pci.c linux-2.6.39/arch/mips/ar71xx
+}
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/prom.c linux-2.6.39/arch/mips/ar71xx/prom.c
--- linux-2.6.39.orig/arch/mips/ar71xx/prom.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/prom.c 2011-08-24 02:41:55.737990425 +0200
++++ linux-2.6.39/arch/mips/ar71xx/prom.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,189 @@
+/*
+ * Atheros AR71xx SoC specific prom routines
@@ -10642,7 +10712,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/prom.c linux-2.6.39/arch/mips/ar71x
+}
diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/setup.c linux-2.6.39/arch/mips/ar71xx/setup.c
--- linux-2.6.39.orig/arch/mips/ar71xx/setup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/ar71xx/setup.c 2011-08-24 02:41:55.737990425 +0200
++++ linux-2.6.39/arch/mips/ar71xx/setup.c 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,446 @@
+/*
+ * Atheros AR71xx SoC specific setup
@@ -11092,7 +11162,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/ar71xx/setup.c linux-2.6.39/arch/mips/ar71
+ ar71xx_generic_init);
diff -Nur linux-2.6.39.orig/arch/mips/include/asm/checksum.h linux-2.6.39/arch/mips/include/asm/checksum.h
--- linux-2.6.39.orig/arch/mips/include/asm/checksum.h 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/arch/mips/include/asm/checksum.h 2011-08-24 05:53:21.109231561 +0200
++++ linux-2.6.39/arch/mips/include/asm/checksum.h 2011-08-24 18:17:23.000000000 +0200
@@ -12,6 +12,7 @@
#define _ASM_CHECKSUM_H
@@ -11145,7 +11215,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/include/asm/checksum.h linux-2.6.39/arch/m
return csum_fold(csum);
diff -Nur linux-2.6.39.orig/arch/mips/include/asm/fw/myloader/myloader.h linux-2.6.39/arch/mips/include/asm/fw/myloader/myloader.h
--- linux-2.6.39.orig/arch/mips/include/asm/fw/myloader/myloader.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/include/asm/fw/myloader/myloader.h 2011-04-27 12:19:21.887662064 +0200
++++ linux-2.6.39/arch/mips/include/asm/fw/myloader/myloader.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,34 @@
+/*
+ * Compex's MyLoader specific definitions
@@ -11183,7 +11253,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/include/asm/fw/myloader/myloader.h linux-2
+#endif /* _ASM_MIPS_FW_MYLOADER_H */
diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/ar71xx.h linux-2.6.39/arch/mips/include/asm/mach-ar71xx/ar71xx.h
--- linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/ar71xx.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/ar71xx.h 2011-08-06 09:32:36.758018150 +0200
++++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/ar71xx.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,769 @@
+/*
+ * Atheros AR71xx SoC specific definitions
@@ -11956,7 +12026,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/ar71xx.h linux-2.6
+#endif /* __ASM_MACH_AR71XX_H */
diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/ar91xx_flash.h linux-2.6.39/arch/mips/include/asm/mach-ar71xx/ar91xx_flash.h
--- linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/ar91xx_flash.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/ar91xx_flash.h 2011-04-27 12:19:21.867661560 +0200
++++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/ar91xx_flash.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,26 @@
+/*
+ * AR91xx parallel flash driver platform data definitions
@@ -11986,7 +12056,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/ar91xx_flash.h lin
+#endif /* __AR91XX_FLASH_H */
diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/ar933x_uart.h linux-2.6.39/arch/mips/include/asm/mach-ar71xx/ar933x_uart.h
--- linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/ar933x_uart.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/ar933x_uart.h 2011-08-06 09:32:36.758018150 +0200
++++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/ar933x_uart.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,67 @@
+/*
+ * Atheros AR933X UART defines
@@ -12057,7 +12127,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/ar933x_uart.h linu
+#endif /* __AR933X_UART_H */
diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/ar933x_uart_platform.h linux-2.6.39/arch/mips/include/asm/mach-ar71xx/ar933x_uart_platform.h
--- linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/ar933x_uart_platform.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/ar933x_uart_platform.h 2011-08-06 09:32:36.758018150 +0200
++++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/ar933x_uart_platform.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,18 @@
+/*
+ * Platform data definition for Atheros AR933X UART
@@ -12079,7 +12149,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/ar933x_uart_platfo
+#endif /* _AR933X_UART_PLATFORM_H */
diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/cpu-feature-overrides.h linux-2.6.39/arch/mips/include/asm/mach-ar71xx/cpu-feature-overrides.h
--- linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/cpu-feature-overrides.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/cpu-feature-overrides.h 2011-04-27 12:19:21.877661867 +0200
++++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/cpu-feature-overrides.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,56 @@
+/*
+ * Atheros AR71xx specific CPU feature overrides
@@ -12139,7 +12209,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/cpu-feature-overri
+#endif /* __ASM_MACH_AR71XX_CPU_FEATURE_OVERRIDES_H */
diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/gpio.h linux-2.6.39/arch/mips/include/asm/mach-ar71xx/gpio.h
--- linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/gpio.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/gpio.h 2011-04-27 12:19:21.877661867 +0200
++++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/gpio.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,53 @@
+/*
+ * Atheros AR71xx GPIO API definitions
@@ -12196,7 +12266,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/gpio.h linux-2.6.3
+#endif /* __ASM_MACH_AR71XX_GPIO_H */
diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/irq.h linux-2.6.39/arch/mips/include/asm/mach-ar71xx/irq.h
--- linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/irq.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/irq.h 2011-04-27 12:19:21.877661867 +0200
++++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/irq.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,17 @@
+/*
+ * Copyright (C) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
@@ -12217,7 +12287,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/irq.h linux-2.6.39
+#endif /* __ASM_MACH_AR71XX_IRQ_H */
diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/kernel-entry-init.h linux-2.6.39/arch/mips/include/asm/mach-ar71xx/kernel-entry-init.h
--- linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/kernel-entry-init.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/kernel-entry-init.h 2011-04-27 12:19:21.877661867 +0200
++++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/kernel-entry-init.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,32 @@
+/*
+ * Atheros AR71xx specific kernel entry setup
@@ -12253,7 +12323,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/kernel-entry-init.
+#endif /* __ASM_MACH_AR71XX_KERNEL_ENTRY_H */
diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/mach-rb750.h linux-2.6.39/arch/mips/include/asm/mach-ar71xx/mach-rb750.h
--- linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/mach-rb750.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/mach-rb750.h 2011-04-27 12:19:21.877661867 +0200
++++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/mach-rb750.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,66 @@
+/*
+ * MikroTik RouterBOARD 750 definitions
@@ -12324,7 +12394,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/mach-rb750.h linux
\ No newline at end of file
diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/mangle-port.h linux-2.6.39/arch/mips/include/asm/mach-ar71xx/mangle-port.h
--- linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/mangle-port.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/mangle-port.h 2011-04-27 12:19:21.877661867 +0200
++++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/mangle-port.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2008 Gabor Juhos <juhosg@openwrt.org>
@@ -12373,7 +12443,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/mangle-port.h linu
+#endif /* __ASM_MACH_AR71XX_MANGLE_PORT_H */
diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/pci.h linux-2.6.39/arch/mips/include/asm/mach-ar71xx/pci.h
--- linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/pci.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/pci.h 2011-04-27 12:19:21.877661867 +0200
++++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/pci.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,46 @@
+/*
+ * Atheros AR71xx SoC specific PCI definitions
@@ -12423,7 +12493,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/pci.h linux-2.6.39
+#endif /* __ASM_MACH_AR71XX_PCI_H */
diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/platform.h linux-2.6.39/arch/mips/include/asm/mach-ar71xx/platform.h
--- linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/platform.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/platform.h 2011-08-22 07:40:11.890481646 +0200
++++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/platform.h 2011-08-24 18:17:23.000000000 +0200
@@ -0,0 +1,63 @@
+/*
+ * Atheros AR71xx SoC specific platform data definitions
@@ -12490,7 +12560,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/platform.h linux-2
+#endif /* __ASM_MACH_AR71XX_PLATFORM_H */
diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/rb4xx_cpld.h linux-2.6.39/arch/mips/include/asm/mach-ar71xx/rb4xx_cpld.h
--- linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/rb4xx_cpld.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/rb4xx_cpld.h 2011-04-27 12:19:21.867661560 +0200
++++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/rb4xx_cpld.h 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,48 @@
+/*
+ * SPI driver definitions for the CPLD chip on the Mikrotik RB4xx boards
@@ -12542,7 +12612,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/rb4xx_cpld.h linux
+extern int rb4xx_cpld_write(const unsigned char *buf, unsigned count);
diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/war.h linux-2.6.39/arch/mips/include/asm/mach-ar71xx/war.h
--- linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/war.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/war.h 2011-04-27 12:19:21.867661560 +0200
++++ linux-2.6.39/arch/mips/include/asm/mach-ar71xx/war.h 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,25 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
@@ -12571,7 +12641,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/include/asm/mach-ar71xx/war.h linux-2.6.39
+#endif /* __ASM_MACH_AR71XX_WAR_H */
diff -Nur linux-2.6.39.orig/arch/mips/include/asm/time.h linux-2.6.39/arch/mips/include/asm/time.h
--- linux-2.6.39.orig/arch/mips/include/asm/time.h 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/arch/mips/include/asm/time.h 2011-08-24 05:53:05.239228886 +0200
++++ linux-2.6.39/arch/mips/include/asm/time.h 2011-08-24 18:17:24.000000000 +0200
@@ -52,6 +52,7 @@
*/
#ifdef CONFIG_CEVT_R4K_LIB
@@ -12580,2530 +12650,9 @@ diff -Nur linux-2.6.39.orig/arch/mips/include/asm/time.h linux-2.6.39/arch/mips/
extern int r4k_clockevent_init(void);
#endif
-diff -Nur linux-2.6.39.orig/arch/mips/Kconfig linux-2.6.39/arch/mips/Kconfig
---- linux-2.6.39.orig/arch/mips/Kconfig 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/arch/mips/Kconfig 2011-08-24 02:42:39.969240338 +0200
-@@ -84,6 +84,23 @@
- help
- Support for the Atheros AR71XX/AR724X/AR913X SoCs.
-
-+config ATHEROS_AR71XX
-+ bool "Atheros AR71xx based boards"
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select DMA_NONCOHERENT
-+ select HW_HAS_PCI
-+ select IRQ_CPU
-+ select ARCH_REQUIRE_GPIOLIB
-+ select SYS_HAS_CPU_MIPS32_R1
-+ select SYS_HAS_CPU_MIPS32_R2
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_HAS_EARLY_PRINTK
-+ select MIPS_MACHINE
-+ help
-+ Support for Atheros AR71xx based boards.
-+
- config BCM47XX
- bool "Broadcom BCM47XX based boards"
- select CEVT_R4K
-@@ -739,6 +756,7 @@
- endchoice
-
- source "arch/mips/alchemy/Kconfig"
-+source "arch/mips/ar71xx/Kconfig"
- source "arch/mips/ath79/Kconfig"
- source "arch/mips/bcm63xx/Kconfig"
- source "arch/mips/jazz/Kconfig"
-@@ -907,6 +925,9 @@
- config MIPS_DISABLE_OBSOLETE_IDE
- bool
-
-+config MYLOADER
-+ bool
-+
- config SYNC_R4K
- bool
-
-diff -Nur linux-2.6.39.orig/arch/mips/Kconfig.orig linux-2.6.39/arch/mips/Kconfig.orig
---- linux-2.6.39.orig/arch/mips/Kconfig.orig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/Kconfig.orig 2011-08-22 16:21:32.077979816 +0200
-@@ -0,0 +1,2472 @@
-+config MIPS
-+ bool
-+ default y
-+ select HAVE_GENERIC_DMA_COHERENT
-+ select HAVE_IDE
-+ select HAVE_OPROFILE
-+ select HAVE_IRQ_WORK
-+ select HAVE_PERF_EVENTS
-+ select PERF_USE_VMALLOC
-+ select HAVE_ARCH_KGDB
-+ select HAVE_FUNCTION_TRACER
-+ select HAVE_FUNCTION_TRACE_MCOUNT_TEST
-+ select HAVE_DYNAMIC_FTRACE
-+ select HAVE_FTRACE_MCOUNT_RECORD
-+ select HAVE_C_RECORDMCOUNT
-+ select HAVE_FUNCTION_GRAPH_TRACER
-+ select HAVE_KPROBES
-+ select HAVE_KRETPROBES
-+ select RTC_LIB if !MACH_LOONGSON
-+ select GENERIC_ATOMIC64 if !64BIT
-+ select HAVE_DMA_ATTRS
-+ select HAVE_DMA_API_DEBUG
-+ select HAVE_GENERIC_HARDIRQS
-+ select GENERIC_IRQ_PROBE
-+ select GENERIC_IRQ_SHOW
-+ select HAVE_ARCH_JUMP_LABEL
-+
-+menu "Machine selection"
-+
-+config ZONE_DMA
-+ bool
-+
-+choice
-+ prompt "System type"
-+ default SGI_IP22
-+
-+config MIPS_ALCHEMY
-+ bool "Alchemy processor based machines"
-+ select 64BIT_PHYS_ADDR
-+ select CEVT_R4K_LIB
-+ select CSRC_R4K_LIB
-+ select IRQ_CPU
-+ select SYS_HAS_CPU_MIPS32_R1
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_APM_EMULATION
-+ select GENERIC_GPIO
-+ select ARCH_WANT_OPTIONAL_GPIOLIB
-+ select SYS_SUPPORTS_ZBOOT
-+
-+config AR7
-+ bool "Texas Instruments AR7"
-+ select BOOT_ELF32
-+ select DMA_NONCOHERENT
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select IRQ_CPU
-+ select NO_EXCEPT_FILL
-+ select SWAP_IO_SPACE
-+ select SYS_HAS_CPU_MIPS32_R1
-+ select SYS_HAS_EARLY_PRINTK
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+ select SYS_SUPPORTS_ZBOOT_UART16550
-+ select ARCH_REQUIRE_GPIOLIB
-+ select GCD
-+ select VLYNQ
-+ help
-+ Support for the Texas Instruments AR7 System-on-a-Chip
-+ family: TNETD7100, 7200 and 7300.
-+
-+config ATH79
-+ bool "Atheros AR71XX/AR724X/AR913X based boards"
-+ select ARCH_REQUIRE_GPIOLIB
-+ select BOOT_RAW
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select DMA_NONCOHERENT
-+ select IRQ_CPU
-+ select MIPS_MACHINE
-+ select SYS_HAS_CPU_MIPS32_R2
-+ select SYS_HAS_EARLY_PRINTK
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ help
-+ Support for the Atheros AR71XX/AR724X/AR913X SoCs.
-+
-+config ATHEROS_AR71XX
-+ bool "Atheros AR71xx based boards"
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select DMA_NONCOHERENT
-+ select HW_HAS_PCI
-+ select IRQ_CPU
-+ select ARCH_REQUIRE_GPIOLIB
-+ select SYS_HAS_CPU_MIPS32_R1
-+ select SYS_HAS_CPU_MIPS32_R2
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_HAS_EARLY_PRINTK
-+ select MIPS_MACHINE
-+ help
-+ Support for Atheros AR71xx based boards.
-+
-+config BCM47XX
-+ bool "Broadcom BCM47XX based boards"
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select DMA_NONCOHERENT
-+ select HW_HAS_PCI
-+ select IRQ_CPU
-+ select SYS_HAS_CPU_MIPS32_R1
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+ select SSB
-+ select SSB_DRIVER_MIPS
-+ select SSB_DRIVER_EXTIF
-+ select SSB_EMBEDDED
-+ select SSB_B43_PCI_BRIDGE if PCI
-+ select SSB_PCICORE_HOSTMODE if PCI
-+ select GENERIC_GPIO
-+ select SYS_HAS_EARLY_PRINTK
-+ select CFE
-+ help
-+ Support for BCM47XX based boards
-+
-+config BCM63XX
-+ bool "Broadcom BCM63XX based boards"
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select DMA_NONCOHERENT
-+ select IRQ_CPU
-+ select SYS_HAS_CPU_MIPS32_R1
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_HAS_EARLY_PRINTK
-+ select SWAP_IO_SPACE
-+ select ARCH_REQUIRE_GPIOLIB
-+ help
-+ Support for BCM63XX based boards
-+
-+config MIPS_COBALT
-+ bool "Cobalt Server"
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select CEVT_GT641XX
-+ select DMA_NONCOHERENT
-+ select HW_HAS_PCI
-+ select I8253
-+ select I8259
-+ select IRQ_CPU
-+ select IRQ_GT641XX
-+ select PCI_GT64XXX_PCI0
-+ select PCI
-+ select SYS_HAS_CPU_NEVADA
-+ select SYS_HAS_EARLY_PRINTK
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_64BIT_KERNEL
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+
-+config MACH_DECSTATION
-+ bool "DECstations"
-+ select BOOT_ELF32
-+ select CEVT_DS1287
-+ select CEVT_R4K
-+ select CSRC_IOASIC
-+ select CSRC_R4K
-+ select CPU_DADDI_WORKAROUNDS if 64BIT
-+ select CPU_R4000_WORKAROUNDS if 64BIT
-+ select CPU_R4400_WORKAROUNDS if 64BIT
-+ select DMA_NONCOHERENT
-+ select NO_IOPORT
-+ select IRQ_CPU
-+ select SYS_HAS_CPU_R3000
-+ select SYS_HAS_CPU_R4X00
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+ select SYS_SUPPORTS_128HZ
-+ select SYS_SUPPORTS_256HZ
-+ select SYS_SUPPORTS_1024HZ
-+ help
-+ This enables support for DEC's MIPS based workstations. For details
-+ see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the
-+ DECstation porting pages on <http://decstation.unix-ag.org/>.
-+
-+ If you have one of the following DECstation Models you definitely
-+ want to choose R4xx0 for the CPU Type:
-+
-+ DECstation 5000/50
-+ DECstation 5000/150
-+ DECstation 5000/260
-+ DECsystem 5900/260
-+
-+ otherwise choose R3000.
-+
-+config MACH_JAZZ
-+ bool "Jazz family of machines"
-+ select ARC
-+ select ARC32
-+ select ARCH_MAY_HAVE_PC_FDC
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
-+ select GENERIC_ISA_DMA
-+ select IRQ_CPU
-+ select I8253
-+ select I8259
-+ select ISA
-+ select SYS_HAS_CPU_R4X00
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
-+ select SYS_SUPPORTS_100HZ
-+ help
-+ This a family of machines based on the MIPS R4030 chipset which was
-+ used by several vendors to build RISC/os and Windows NT workstations.
-+ Members include the Acer PICA, MIPS Magnum 4000, MIPS Millennium and
-+ Olivetti M700-10 workstations.
-+
-+config MACH_JZ4740
-+ bool "Ingenic JZ4740 based machines"
-+ select SYS_HAS_CPU_MIPS32_R1
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+ select DMA_NONCOHERENT
-+ select IRQ_CPU
-+ select GENERIC_GPIO
-+ select ARCH_REQUIRE_GPIOLIB
-+ select SYS_HAS_EARLY_PRINTK
-+ select HAVE_PWM
-+ select HAVE_CLK
-+
-+config LASAT
-+ bool "LASAT Networks platforms"
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select DMA_NONCOHERENT
-+ select SYS_HAS_EARLY_PRINTK
-+ select HW_HAS_PCI
-+ select IRQ_CPU
-+ select PCI_GT64XXX_PCI0
-+ select MIPS_NILE4
-+ select R5000_CPU_SCACHE
-+ select SYS_HAS_CPU_R5000
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_64BIT_KERNEL if BROKEN
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+
-+config MACH_LOONGSON
-+ bool "Loongson family of machines"
-+ select SYS_SUPPORTS_ZBOOT
-+ help
-+ This enables the support of Loongson family of machines.
-+
-+ Loongson is a family of general-purpose MIPS-compatible CPUs.
-+ developed at Institute of Computing Technology (ICT),
-+ Chinese Academy of Sciences (CAS) in the People's Republic
-+ of China. The chief architect is Professor Weiwu Hu.
-+
-+config MIPS_MALTA
-+ bool "MIPS Malta board"
-+ select ARCH_MAY_HAVE_PC_FDC
-+ select BOOT_ELF32
-+ select BOOT_RAW
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select DMA_NONCOHERENT
-+ select GENERIC_ISA_DMA
-+ select IRQ_CPU
-+ select IRQ_GIC
-+ select HW_HAS_PCI
-+ select I8253
-+ select I8259
-+ select MIPS_BOARDS_GEN
-+ select MIPS_BONITO64
-+ select MIPS_CPU_SCACHE
-+ select PCI_GT64XXX_PCI0
-+ select MIPS_MSC
-+ select SWAP_IO_SPACE
-+ select SYS_HAS_CPU_MIPS32_R1
-+ select SYS_HAS_CPU_MIPS32_R2
-+ select SYS_HAS_CPU_MIPS64_R1
-+ select SYS_HAS_CPU_NEVADA
-+ select SYS_HAS_CPU_RM7000
-+ select SYS_HAS_EARLY_PRINTK
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_64BIT_KERNEL
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+ select SYS_SUPPORTS_MIPS_CMP
-+ select SYS_SUPPORTS_MULTITHREADING
-+ select SYS_SUPPORTS_SMARTMIPS
-+ select SYS_SUPPORTS_ZBOOT
-+ help
-+ This enables support for the MIPS Technologies Malta evaluation
-+ board.
-+
-+config MIPS_SIM
-+ bool 'MIPS simulator (MIPSsim)'
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select DMA_NONCOHERENT
-+ select SYS_HAS_EARLY_PRINTK
-+ select IRQ_CPU
-+ select BOOT_RAW
-+ select SYS_HAS_CPU_MIPS32_R1
-+ select SYS_HAS_CPU_MIPS32_R2
-+ select SYS_HAS_EARLY_PRINTK
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_SUPPORTS_MULTITHREADING
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+ help
-+ This option enables support for MIPS Technologies MIPSsim software
-+ emulator.
-+
-+config NEC_MARKEINS
-+ bool "NEC EMMA2RH Mark-eins board"
-+ select SOC_EMMA2RH
-+ select HW_HAS_PCI
-+ help
-+ This enables support for the NEC Electronics Mark-eins boards.
-+
-+config MACH_VR41XX
-+ bool "NEC VR4100 series based machines"
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select SYS_HAS_CPU_VR41XX
-+ select ARCH_REQUIRE_GPIOLIB
-+
-+config NXP_STB220
-+ bool "NXP STB220 board"
-+ select SOC_PNX833X
-+ help
-+ Support for NXP Semiconductors STB220 Development Board.
-+
-+config NXP_STB225
-+ bool "NXP 225 board"
-+ select SOC_PNX833X
-+ select SOC_PNX8335
-+ help
-+ Support for NXP Semiconductors STB225 Development Board.
-+
-+config PNX8550_JBS
-+ bool "NXP PNX8550 based JBS board"
-+ select PNX8550
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+
-+config PNX8550_STB810
-+ bool "NXP PNX8550 based STB810 board"
-+ select PNX8550
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+
-+config PMC_MSP
-+ bool "PMC-Sierra MSP chipsets"
-+ depends on EXPERIMENTAL
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select DMA_NONCOHERENT
-+ select SWAP_IO_SPACE
-+ select NO_EXCEPT_FILL
-+ select BOOT_RAW
-+ select SYS_HAS_CPU_MIPS32_R1
-+ select SYS_HAS_CPU_MIPS32_R2
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select IRQ_CPU
-+ select SERIAL_8250
-+ select SERIAL_8250_CONSOLE
-+ help
-+ This adds support for the PMC-Sierra family of Multi-Service
-+ Processor System-On-A-Chips. These parts include a number
-+ of integrated peripherals, interfaces and DSPs in addition to
-+ a variety of MIPS cores.
-+
-+config PMC_YOSEMITE
-+ bool "PMC-Sierra Yosemite eval board"
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select DMA_COHERENT
-+ select HW_HAS_PCI
-+ select IRQ_CPU
-+ select IRQ_CPU_RM7K
-+ select IRQ_CPU_RM9K
-+ select SWAP_IO_SPACE
-+ select SYS_HAS_CPU_RM9000
-+ select SYS_HAS_EARLY_PRINTK
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_64BIT_KERNEL
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_SUPPORTS_HIGHMEM
-+ select SYS_SUPPORTS_SMP
-+ help
-+ Yosemite is an evaluation board for the RM9000x2 processor
-+ manufactured by PMC-Sierra.
-+
-+config POWERTV
-+ bool "Cisco PowerTV"
-+ select BOOT_ELF32
-+ select CEVT_R4K
-+ select CPU_MIPSR2_IRQ_VI
-+ select CPU_MIPSR2_IRQ_EI
-+ select CSRC_POWERTV
-+ select DMA_NONCOHERENT
-+ select HW_HAS_PCI
-+ select SYS_HAS_EARLY_PRINTK
-+ select SYS_HAS_CPU_MIPS32_R2
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_SUPPORTS_HIGHMEM
-+ select USB_OHCI_LITTLE_ENDIAN
-+ help
-+ This enables support for the Cisco PowerTV Platform.
-+
-+config SGI_IP22
-+ bool "SGI IP22 (Indy/Indigo2)"
-+ select ARC
-+ select ARC32
-+ select BOOT_ELF32
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select DEFAULT_SGI_PARTITION
-+ select DMA_NONCOHERENT
-+ select HW_HAS_EISA
-+ select I8253
-+ select I8259
-+ select IP22_CPU_SCACHE
-+ select IRQ_CPU
-+ select GENERIC_ISA_DMA_SUPPORT_BROKEN
-+ select SGI_HAS_I8042
-+ select SGI_HAS_INDYDOG
-+ select SGI_HAS_HAL2
-+ select SGI_HAS_SEEQ
-+ select SGI_HAS_WD93
-+ select SGI_HAS_ZILOG
-+ select SWAP_IO_SPACE
-+ select SYS_HAS_CPU_R4X00
-+ select SYS_HAS_CPU_R5000
-+ #
-+ # Disable EARLY_PRINTK for now since it leads to overwritten prom
-+ # memory during early boot on some machines.
-+ #
-+ # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
-+ # for a more details discussion
-+ #
-+ # select SYS_HAS_EARLY_PRINTK
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_64BIT_KERNEL
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ help
-+ This are the SGI Indy, Challenge S and Indigo2, as well as certain
-+ OEM variants like the Tandem CMN B006S. To compile a Linux kernel
-+ that runs on these, say Y here.
-+
-+config SGI_IP27
-+ bool "SGI IP27 (Origin200/2000)"
-+ select ARC
-+ select ARC64
-+ select BOOT_ELF64
-+ select DEFAULT_SGI_PARTITION
-+ select DMA_COHERENT
-+ select SYS_HAS_EARLY_PRINTK
-+ select HW_HAS_PCI
-+ select NR_CPUS_DEFAULT_64
-+ select SYS_HAS_CPU_R10000
-+ select SYS_SUPPORTS_64BIT_KERNEL
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_SUPPORTS_NUMA
-+ select SYS_SUPPORTS_SMP
-+ help
-+ This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
-+ workstations. To compile a Linux kernel that runs on these, say Y
-+ here.
-+
-+config SGI_IP28
-+ bool "SGI IP28 (Indigo2 R10k) (EXPERIMENTAL)"
-+ depends on EXPERIMENTAL
-+ select ARC
-+ select ARC64
-+ select BOOT_ELF64
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select DEFAULT_SGI_PARTITION
-+ select DMA_NONCOHERENT
-+ select GENERIC_ISA_DMA_SUPPORT_BROKEN
-+ select IRQ_CPU
-+ select HW_HAS_EISA
-+ select I8253
-+ select I8259
-+ select SGI_HAS_I8042
-+ select SGI_HAS_INDYDOG
-+ select SGI_HAS_HAL2
-+ select SGI_HAS_SEEQ
-+ select SGI_HAS_WD93
-+ select SGI_HAS_ZILOG
-+ select SWAP_IO_SPACE
-+ select SYS_HAS_CPU_R10000
-+ #
-+ # Disable EARLY_PRINTK for now since it leads to overwritten prom
-+ # memory during early boot on some machines.
-+ #
-+ # See http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20091119164009.GA15038%40deprecation.cyrius.com
-+ # for a more details discussion
-+ #
-+ # select SYS_HAS_EARLY_PRINTK
-+ select SYS_SUPPORTS_64BIT_KERNEL
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ help
-+ This is the SGI Indigo2 with R10000 processor. To compile a Linux
-+ kernel that runs on these, say Y here.
-+
-+config SGI_IP32
-+ bool "SGI IP32 (O2)"
-+ select ARC
-+ select ARC32
-+ select BOOT_ELF32
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select DMA_NONCOHERENT
-+ select HW_HAS_PCI
-+ select IRQ_CPU
-+ select R5000_CPU_SCACHE
-+ select RM7000_CPU_SCACHE
-+ select SYS_HAS_CPU_R5000
-+ select SYS_HAS_CPU_R10000 if BROKEN
-+ select SYS_HAS_CPU_RM7000
-+ select SYS_HAS_CPU_NEVADA
-+ select SYS_SUPPORTS_64BIT_KERNEL
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ help
-+ If you want this kernel to run on SGI O2 workstation, say Y here.
-+
-+config SIBYTE_CRHINE
-+ bool "Sibyte BCM91120C-CRhine"
-+ depends on EXPERIMENTAL
-+ select BOOT_ELF32
-+ select DMA_COHERENT
-+ select SIBYTE_BCM1120
-+ select SWAP_IO_SPACE
-+ select SYS_HAS_CPU_SB1
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+
-+config SIBYTE_CARMEL
-+ bool "Sibyte BCM91120x-Carmel"
-+ depends on EXPERIMENTAL
-+ select BOOT_ELF32
-+ select DMA_COHERENT
-+ select SIBYTE_BCM1120
-+ select SWAP_IO_SPACE
-+ select SYS_HAS_CPU_SB1
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+
-+config SIBYTE_CRHONE
-+ bool "Sibyte BCM91125C-CRhone"
-+ depends on EXPERIMENTAL
-+ select BOOT_ELF32
-+ select DMA_COHERENT
-+ select SIBYTE_BCM1125
-+ select SWAP_IO_SPACE
-+ select SYS_HAS_CPU_SB1
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_SUPPORTS_HIGHMEM
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+
-+config SIBYTE_RHONE
-+ bool "Sibyte BCM91125E-Rhone"
-+ depends on EXPERIMENTAL
-+ select BOOT_ELF32
-+ select DMA_COHERENT
-+ select SIBYTE_BCM1125H
-+ select SWAP_IO_SPACE
-+ select SYS_HAS_CPU_SB1
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+
-+config SIBYTE_SWARM
-+ bool "Sibyte BCM91250A-SWARM"
-+ select BOOT_ELF32
-+ select DMA_COHERENT
-+ select HAVE_PATA_PLATFORM
-+ select NR_CPUS_DEFAULT_2
-+ select SIBYTE_SB1250
-+ select SWAP_IO_SPACE
-+ select SYS_HAS_CPU_SB1
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_SUPPORTS_HIGHMEM
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+ select ZONE_DMA32 if 64BIT
-+
-+config SIBYTE_LITTLESUR
-+ bool "Sibyte BCM91250C2-LittleSur"
-+ depends on EXPERIMENTAL
-+ select BOOT_ELF32
-+ select DMA_COHERENT
-+ select HAVE_PATA_PLATFORM
-+ select NR_CPUS_DEFAULT_2
-+ select SIBYTE_SB1250
-+ select SWAP_IO_SPACE
-+ select SYS_HAS_CPU_SB1
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_SUPPORTS_HIGHMEM
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+
-+config SIBYTE_SENTOSA
-+ bool "Sibyte BCM91250E-Sentosa"
-+ depends on EXPERIMENTAL
-+ select BOOT_ELF32
-+ select DMA_COHERENT
-+ select NR_CPUS_DEFAULT_2
-+ select SIBYTE_SB1250
-+ select SWAP_IO_SPACE
-+ select SYS_HAS_CPU_SB1
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+
-+config SIBYTE_BIGSUR
-+ bool "Sibyte BCM91480B-BigSur"
-+ select BOOT_ELF32
-+ select DMA_COHERENT
-+ select NR_CPUS_DEFAULT_4
-+ select SIBYTE_BCM1x80
-+ select SWAP_IO_SPACE
-+ select SYS_HAS_CPU_SB1
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_SUPPORTS_HIGHMEM
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+ select ZONE_DMA32 if 64BIT
-+
-+config SNI_RM
-+ bool "SNI RM200/300/400"
-+ select ARC if CPU_LITTLE_ENDIAN
-+ select ARC32 if CPU_LITTLE_ENDIAN
-+ select SNIPROM if CPU_BIG_ENDIAN
-+ select ARCH_MAY_HAVE_PC_FDC
-+ select BOOT_ELF32
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select DEFAULT_SGI_PARTITION if CPU_BIG_ENDIAN
-+ select DMA_NONCOHERENT
-+ select GENERIC_ISA_DMA
-+ select HW_HAS_EISA
-+ select HW_HAS_PCI
-+ select IRQ_CPU
-+ select I8253
-+ select I8259
-+ select ISA
-+ select SWAP_IO_SPACE if CPU_BIG_ENDIAN
-+ select SYS_HAS_CPU_R4X00
-+ select SYS_HAS_CPU_R5000
-+ select SYS_HAS_CPU_R10000
-+ select R5000_CPU_SCACHE
-+ select SYS_HAS_EARLY_PRINTK
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_SUPPORTS_HIGHMEM
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+ help
-+ The SNI RM200/300/400 are MIPS-based machines manufactured by
-+ Siemens Nixdorf Informationssysteme (SNI), parent company of Pyramid
-+ Technology and now in turn merged with Fujitsu. Say Y here to
-+ support this machine type.
-+
-+config MACH_TX39XX
-+ bool "Toshiba TX39 series based machines"
-+
-+config MACH_TX49XX
-+ bool "Toshiba TX49 series based machines"
-+
-+config MIKROTIK_RB532
-+ bool "Mikrotik RB532 boards"
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select DMA_NONCOHERENT
-+ select HW_HAS_PCI
-+ select IRQ_CPU
-+ select SYS_HAS_CPU_MIPS32_R1
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+ select SWAP_IO_SPACE
-+ select BOOT_RAW
-+ select ARCH_REQUIRE_GPIOLIB
-+ help
-+ Support the Mikrotik(tm) RouterBoard 532 series,
-+ based on the IDT RC32434 SoC.
-+
-+config WR_PPMC
-+ bool "Wind River PPMC board"
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select IRQ_CPU
-+ select BOOT_ELF32
-+ select DMA_NONCOHERENT
-+ select HW_HAS_PCI
-+ select PCI_GT64XXX_PCI0
-+ select SWAP_IO_SPACE
-+ select SYS_HAS_CPU_MIPS32_R1
-+ select SYS_HAS_CPU_MIPS32_R2
-+ select SYS_HAS_CPU_MIPS64_R1
-+ select SYS_HAS_CPU_NEVADA
-+ select SYS_HAS_CPU_RM7000
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_64BIT_KERNEL
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+ help
-+ This enables support for the Wind River MIPS32 4KC PPMC evaluation
-+ board, which is based on GT64120 bridge chip.
-+
-+config CAVIUM_OCTEON_SIMULATOR
-+ bool "Cavium Networks Octeon Simulator"
-+ select CEVT_R4K
-+ select 64BIT_PHYS_ADDR
-+ select DMA_COHERENT
-+ select SYS_SUPPORTS_64BIT_KERNEL
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_SUPPORTS_HIGHMEM
-+ select SYS_SUPPORTS_HOTPLUG_CPU
-+ select SYS_HAS_CPU_CAVIUM_OCTEON
-+ help
-+ The Octeon simulator is software performance model of the Cavium
-+ Octeon Processor. It supports simulating Octeon processors on x86
-+ hardware.
-+
-+config CAVIUM_OCTEON_REFERENCE_BOARD
-+ bool "Cavium Networks Octeon reference board"
-+ select CEVT_R4K
-+ select 64BIT_PHYS_ADDR
-+ select DMA_COHERENT
-+ select SYS_SUPPORTS_64BIT_KERNEL
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select SYS_SUPPORTS_HIGHMEM
-+ select SYS_SUPPORTS_HOTPLUG_CPU
-+ select SYS_HAS_EARLY_PRINTK
-+ select SYS_HAS_CPU_CAVIUM_OCTEON
-+ select SWAP_IO_SPACE
-+ select HW_HAS_PCI
-+ select ARCH_SUPPORTS_MSI
-+ select ZONE_DMA32
-+ select USB_ARCH_HAS_OHCI
-+ select USB_ARCH_HAS_EHCI
-+ help
-+ This option supports all of the Octeon reference boards from Cavium
-+ Networks. It builds a kernel that dynamically determines the Octeon
-+ CPU type and supports all known board reference implementations.
-+ Some of the supported boards are:
-+ EBT3000
-+ EBH3000
-+ EBH3100
-+ Thunder
-+ Kodama
-+ Hikari
-+ Say Y here for most Octeon reference boards.
-+
-+endchoice
-+
-+source "arch/mips/alchemy/Kconfig"
-+source "arch/mips/ar71xx/Kconfig"
-+source "arch/mips/ath79/Kconfig"
-+source "arch/mips/bcm63xx/Kconfig"
-+source "arch/mips/jazz/Kconfig"
-+source "arch/mips/jz4740/Kconfig"
-+source "arch/mips/lasat/Kconfig"
-+source "arch/mips/pmc-sierra/Kconfig"
-+source "arch/mips/powertv/Kconfig"
-+source "arch/mips/sgi-ip27/Kconfig"
-+source "arch/mips/sibyte/Kconfig"
-+source "arch/mips/txx9/Kconfig"
-+source "arch/mips/vr41xx/Kconfig"
-+source "arch/mips/cavium-octeon/Kconfig"
-+source "arch/mips/loongson/Kconfig"
-+
-+endmenu
-+
-+config RWSEM_GENERIC_SPINLOCK
-+ bool
-+ default y
-+
-+config RWSEM_XCHGADD_ALGORITHM
-+ bool
-+
-+config ARCH_HAS_ILOG2_U32
-+ bool
-+ default n
-+
-+config ARCH_HAS_ILOG2_U64
-+ bool
-+ default n
-+
-+config ARCH_SUPPORTS_OPROFILE
-+ bool
-+ default y if !MIPS_MT_SMTC
-+
-+config GENERIC_FIND_NEXT_BIT
-+ bool
-+ default y
-+
-+config GENERIC_FIND_BIT_LE
-+ bool
-+ default y
-+
-+config GENERIC_HWEIGHT
-+ bool
-+ default y
-+
-+config GENERIC_CALIBRATE_DELAY
-+ bool
-+ default y
-+
-+config GENERIC_CLOCKEVENTS
-+ bool
-+ default y
-+
-+config GENERIC_CMOS_UPDATE
-+ bool
-+ default y
-+
-+config SCHED_OMIT_FRAME_POINTER
-+ bool
-+ default y
-+
-+#
-+# Select some configuration options automatically based on user selections.
-+#
-+config ARC
-+ bool
-+
-+config ARCH_MAY_HAVE_PC_FDC
-+ bool
-+
-+config BOOT_RAW
-+ bool
-+
-+config CEVT_BCM1480
-+ bool
-+
-+config CEVT_DS1287
-+ bool
-+
-+config CEVT_GT641XX
-+ bool
-+
-+config CEVT_R4K_LIB
-+ bool
-+
-+config CEVT_R4K
-+ select CEVT_R4K_LIB
-+ bool
-+
-+config CEVT_SB1250
-+ bool
-+
-+config CEVT_TXX9
-+ bool
-+
-+config CSRC_BCM1480
-+ bool
-+
-+config CSRC_IOASIC
-+ bool
-+
-+config CSRC_POWERTV
-+ bool
-+
-+config CSRC_R4K_LIB
-+ bool
-+
-+config CSRC_R4K
-+ select CSRC_R4K_LIB
-+ bool
-+
-+config CSRC_SB1250
-+ bool
-+
-+config GPIO_TXX9
-+ select GENERIC_GPIO
-+ select ARCH_REQUIRE_GPIOLIB
-+ bool
-+
-+config CFE
-+ bool
-+
-+config ARCH_DMA_ADDR_T_64BIT
-+ def_bool (HIGHMEM && 64BIT_PHYS_ADDR) || 64BIT
-+
-+config DMA_COHERENT
-+ bool
-+
-+config DMA_NONCOHERENT
-+ bool
-+ select NEED_DMA_MAP_STATE
-+
-+config NEED_DMA_MAP_STATE
-+ bool
-+
-+config SYS_HAS_EARLY_PRINTK
-+ bool
-+
-+config HOTPLUG_CPU
-+ bool "Support for hot-pluggable CPUs"
-+ depends on SMP && HOTPLUG && SYS_SUPPORTS_HOTPLUG_CPU
-+ help
-+ Say Y here to allow turning CPUs off and on. CPUs can be
-+ controlled through /sys/devices/system/cpu.
-+ (Note: power management support will enable this option
-+ automatically on SMP systems. )
-+ Say N if you want to disable CPU hotplug.
-+
-+config SYS_SUPPORTS_HOTPLUG_CPU
-+ bool
-+
-+config I8259
-+ bool
-+
-+config MIPS_BONITO64
-+ bool
-+
-+config MIPS_MSC
-+ bool
-+
-+config MIPS_NILE4
-+ bool
-+
-+config MIPS_DISABLE_OBSOLETE_IDE
-+ bool
-+
-+config SYNC_R4K
-+ bool
-+
-+config MIPS_MACHINE
-+ def_bool n
-+
-+config NO_IOPORT
-+ def_bool n
-+
-+config GENERIC_ISA_DMA
-+ bool
-+ select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n
-+ select ISA_DMA_API
-+
-+config GENERIC_ISA_DMA_SUPPORT_BROKEN
-+ bool
-+ select GENERIC_ISA_DMA
-+
-+config ISA_DMA_API
-+ bool
-+
-+config GENERIC_GPIO
-+ bool
-+
-+#
-+# Endianess selection. Sufficiently obscure so many users don't know what to
-+# answer,so we try hard to limit the available choices. Also the use of a
-+# choice statement should be more obvious to the user.
-+#
-+choice
-+ prompt "Endianess selection"
-+ help
-+ Some MIPS machines can be configured for either little or big endian
-+ byte order. These modes require different kernels and a different
-+ Linux distribution. In general there is one preferred byteorder for a
-+ particular system but some systems are just as commonly used in the
-+ one or the other endianness.
-+
-+config CPU_BIG_ENDIAN
-+ bool "Big endian"
-+ depends on SYS_SUPPORTS_BIG_ENDIAN
-+
-+config CPU_LITTLE_ENDIAN
-+ bool "Little endian"
-+ depends on SYS_SUPPORTS_LITTLE_ENDIAN
-+ help
-+
-+endchoice
-+
-+config EXPORT_UASM
-+ bool
-+
-+config SYS_SUPPORTS_APM_EMULATION
-+ bool
-+
-+config SYS_SUPPORTS_BIG_ENDIAN
-+ bool
-+
-+config SYS_SUPPORTS_LITTLE_ENDIAN
-+ bool
-+
-+config SYS_SUPPORTS_HUGETLBFS
-+ bool
-+ depends on CPU_SUPPORTS_HUGEPAGES && 64BIT
-+ default y
-+
-+config IRQ_CPU
-+ bool
-+
-+config IRQ_CPU_RM7K
-+ bool
-+
-+config IRQ_CPU_RM9K
-+ bool
-+
-+config IRQ_MSP_SLP
-+ bool
-+
-+config IRQ_MSP_CIC
-+ bool
-+
-+config IRQ_TXX9
-+ bool
-+
-+config IRQ_GT641XX
-+ bool
-+
-+config IRQ_GIC
-+ bool
-+
-+config MIPS_BOARDS_GEN
-+ bool
-+
-+config PCI_GT64XXX_PCI0
-+ bool
-+
-+config NO_EXCEPT_FILL
-+ bool
-+
-+config MIPS_RM9122
-+ bool
-+ select SERIAL_RM9000
-+
-+config SOC_EMMA2RH
-+ bool
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select DMA_NONCOHERENT
-+ select IRQ_CPU
-+ select SWAP_IO_SPACE
-+ select SYS_HAS_CPU_R5500
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_64BIT_KERNEL
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+
-+config SOC_PNX833X
-+ bool
-+ select CEVT_R4K
-+ select CSRC_R4K
-+ select IRQ_CPU
-+ select DMA_NONCOHERENT
-+ select SYS_HAS_CPU_MIPS32_R2
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select SYS_SUPPORTS_LITTLE_ENDIAN
-+ select SYS_SUPPORTS_BIG_ENDIAN
-+ select GENERIC_GPIO
-+ select CPU_MIPSR2_IRQ_VI
-+
-+config SOC_PNX8335
-+ bool
-+ select SOC_PNX833X
-+
-+config PNX8550
-+ bool
-+ select SOC_PNX8550
-+
-+config SOC_PNX8550
-+ bool
-+ select DMA_NONCOHERENT
-+ select HW_HAS_PCI
-+ select SYS_HAS_CPU_MIPS32_R1
-+ select SYS_HAS_EARLY_PRINTK
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select GENERIC_GPIO
-+
-+config SWAP_IO_SPACE
-+ bool
-+
-+config SERIAL_RM9000
-+ bool
-+
-+config SGI_HAS_INDYDOG
-+ bool
-+
-+config SGI_HAS_HAL2
-+ bool
-+
-+config SGI_HAS_SEEQ
-+ bool
-+
-+config SGI_HAS_WD93
-+ bool
-+
-+config SGI_HAS_ZILOG
-+ bool
-+
-+config SGI_HAS_I8042
-+ bool
-+
-+config DEFAULT_SGI_PARTITION
-+ bool
-+
-+config ARC32
-+ bool
-+
-+config SNIPROM
-+ bool
-+
-+config BOOT_ELF32
-+ bool
-+
-+config MIPS_L1_CACHE_SHIFT
-+ int
-+ default "4" if MACH_DECSTATION || MIKROTIK_RB532 || PMC_MSP4200_EVAL
-+ default "6" if MIPS_CPU_SCACHE
-+ default "7" if SGI_IP22 || SGI_IP27 || SGI_IP28 || SNI_RM || CPU_CAVIUM_OCTEON
-+ default "5"
-+
-+config HAVE_STD_PC_SERIAL_PORT
-+ bool
-+
-+config ARC_CONSOLE
-+ bool "ARC console support"
-+ depends on SGI_IP22 || SGI_IP28 || (SNI_RM && CPU_LITTLE_ENDIAN)
-+
-+config ARC_MEMORY
-+ bool
-+ depends on MACH_JAZZ || SNI_RM || SGI_IP32
-+ default y
-+
-+config ARC_PROMLIB
-+ bool
-+ depends on MACH_JAZZ || SNI_RM || SGI_IP22 || SGI_IP28 || SGI_IP32
-+ default y
-+
-+config ARC64
-+ bool
-+
-+config BOOT_ELF64
-+ bool
-+
-+menu "CPU selection"
-+
-+choice
-+ prompt "CPU type"
-+ default CPU_R4X00
-+
-+config CPU_LOONGSON2E
-+ bool "Loongson 2E"
-+ depends on SYS_HAS_CPU_LOONGSON2E
-+ select CPU_LOONGSON2
-+ help
-+ The Loongson 2E processor implements the MIPS III instruction set
-+ with many extensions.
-+
-+ It has an internal FPGA northbridge, which is compatible to
-+ bonito64.
-+
-+config CPU_LOONGSON2F
-+ bool "Loongson 2F"
-+ depends on SYS_HAS_CPU_LOONGSON2F
-+ select CPU_LOONGSON2
-+ select GENERIC_GPIO
-+ select ARCH_REQUIRE_GPIOLIB
-+ help
-+ The Loongson 2F processor implements the MIPS III instruction set
-+ with many extensions.
-+
-+ Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller
-+ have a similar programming interface with FPGA northbridge used in
-+ Loongson2E.
-+
-+config CPU_MIPS32_R1
-+ bool "MIPS32 Release 1"
-+ depends on SYS_HAS_CPU_MIPS32_R1
-+ select CPU_HAS_PREFETCH
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select CPU_SUPPORTS_HIGHMEM
-+ help
-+ Choose this option to build a kernel for release 1 or later of the
-+ MIPS32 architecture. Most modern embedded systems with a 32-bit
-+ MIPS processor are based on a MIPS32 processor. If you know the
-+ specific type of processor in your system, choose those that one
-+ otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
-+ Release 2 of the MIPS32 architecture is available since several
-+ years so chances are you even have a MIPS32 Release 2 processor
-+ in which case you should choose CPU_MIPS32_R2 instead for better
-+ performance.
-+
-+config CPU_MIPS32_R2
-+ bool "MIPS32 Release 2"
-+ depends on SYS_HAS_CPU_MIPS32_R2
-+ select CPU_HAS_PREFETCH
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select CPU_SUPPORTS_HIGHMEM
-+ help
-+ Choose this option to build a kernel for release 2 or later of the
-+ MIPS32 architecture. Most modern embedded systems with a 32-bit
-+ MIPS processor are based on a MIPS32 processor. If you know the
-+ specific type of processor in your system, choose those that one
-+ otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
-+
-+config CPU_MIPS64_R1
-+ bool "MIPS64 Release 1"
-+ depends on SYS_HAS_CPU_MIPS64_R1
-+ select CPU_HAS_PREFETCH
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select CPU_SUPPORTS_64BIT_KERNEL
-+ select CPU_SUPPORTS_HIGHMEM
-+ select CPU_SUPPORTS_HUGEPAGES
-+ help
-+ Choose this option to build a kernel for release 1 or later of the
-+ MIPS64 architecture. Many modern embedded systems with a 64-bit
-+ MIPS processor are based on a MIPS64 processor. If you know the
-+ specific type of processor in your system, choose those that one
-+ otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
-+ Release 2 of the MIPS64 architecture is available since several
-+ years so chances are you even have a MIPS64 Release 2 processor
-+ in which case you should choose CPU_MIPS64_R2 instead for better
-+ performance.
-+
-+config CPU_MIPS64_R2
-+ bool "MIPS64 Release 2"
-+ depends on SYS_HAS_CPU_MIPS64_R2
-+ select CPU_HAS_PREFETCH
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select CPU_SUPPORTS_64BIT_KERNEL
-+ select CPU_SUPPORTS_HIGHMEM
-+ select CPU_SUPPORTS_HUGEPAGES
-+ help
-+ Choose this option to build a kernel for release 2 or later of the
-+ MIPS64 architecture. Many modern embedded systems with a 64-bit
-+ MIPS processor are based on a MIPS64 processor. If you know the
-+ specific type of processor in your system, choose those that one
-+ otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
-+
-+config CPU_R3000
-+ bool "R3000"
-+ depends on SYS_HAS_CPU_R3000
-+ select CPU_HAS_WB
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select CPU_SUPPORTS_HIGHMEM
-+ help
-+ Please make sure to pick the right CPU type. Linux/MIPS is not
-+ designed to be generic, i.e. Kernels compiled for R3000 CPUs will
-+ *not* work on R4000 machines and vice versa. However, since most
-+ of the supported machines have an R4000 (or similar) CPU, R4x00
-+ might be a safe bet. If the resulting kernel does not work,
-+ try to recompile with R3000.
-+
-+config CPU_TX39XX
-+ bool "R39XX"
-+ depends on SYS_HAS_CPU_TX39XX
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+
-+config CPU_VR41XX
-+ bool "R41xx"
-+ depends on SYS_HAS_CPU_VR41XX
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select CPU_SUPPORTS_64BIT_KERNEL
-+ help
-+ The options selects support for the NEC VR4100 series of processors.
-+ Only choose this option if you have one of these processors as a
-+ kernel built with this option will not run on any other type of
-+ processor or vice versa.
-+
-+config CPU_R4300
-+ bool "R4300"
-+ depends on SYS_HAS_CPU_R4300
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select CPU_SUPPORTS_64BIT_KERNEL
-+ help
-+ MIPS Technologies R4300-series processors.
-+
-+config CPU_R4X00
-+ bool "R4x00"
-+ depends on SYS_HAS_CPU_R4X00
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select CPU_SUPPORTS_64BIT_KERNEL
-+ help
-+ MIPS Technologies R4000-series processors other than 4300, including
-+ the R4000, R4400, R4600, and 4700.
-+
-+config CPU_TX49XX
-+ bool "R49XX"
-+ depends on SYS_HAS_CPU_TX49XX
-+ select CPU_HAS_PREFETCH
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select CPU_SUPPORTS_64BIT_KERNEL
-+
-+config CPU_R5000
-+ bool "R5000"
-+ depends on SYS_HAS_CPU_R5000
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select CPU_SUPPORTS_64BIT_KERNEL
-+ help
-+ MIPS Technologies R5000-series processors other than the Nevada.
-+
-+config CPU_R5432
-+ bool "R5432"
-+ depends on SYS_HAS_CPU_R5432
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select CPU_SUPPORTS_64BIT_KERNEL
-+
-+config CPU_R5500
-+ bool "R5500"
-+ depends on SYS_HAS_CPU_R5500
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select CPU_SUPPORTS_64BIT_KERNEL
-+ select CPU_SUPPORTS_HUGEPAGES
-+ help
-+ NEC VR5500 and VR5500A series processors implement 64-bit MIPS IV
-+ instruction set.
-+
-+config CPU_R6000
-+ bool "R6000"
-+ depends on EXPERIMENTAL
-+ depends on SYS_HAS_CPU_R6000
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ help
-+ MIPS Technologies R6000 and R6000A series processors. Note these
-+ processors are extremely rare and the support for them is incomplete.
-+
-+config CPU_NEVADA
-+ bool "RM52xx"
-+ depends on SYS_HAS_CPU_NEVADA
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select CPU_SUPPORTS_64BIT_KERNEL
-+ help
-+ QED / PMC-Sierra RM52xx-series ("Nevada") processors.
-+
-+config CPU_R8000
-+ bool "R8000"
-+ depends on EXPERIMENTAL
-+ depends on SYS_HAS_CPU_R8000
-+ select CPU_HAS_PREFETCH
-+ select CPU_SUPPORTS_64BIT_KERNEL
-+ help
-+ MIPS Technologies R8000 processors. Note these processors are
-+ uncommon and the support for them is incomplete.
-+
-+config CPU_R10000
-+ bool "R10000"
-+ depends on SYS_HAS_CPU_R10000
-+ select CPU_HAS_PREFETCH
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select CPU_SUPPORTS_64BIT_KERNEL
-+ select CPU_SUPPORTS_HIGHMEM
-+ help
-+ MIPS Technologies R10000-series processors.
-+
-+config CPU_RM7000
-+ bool "RM7000"
-+ depends on SYS_HAS_CPU_RM7000
-+ select CPU_HAS_PREFETCH
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select CPU_SUPPORTS_64BIT_KERNEL
-+ select CPU_SUPPORTS_HIGHMEM
-+
-+config CPU_RM9000
-+ bool "RM9000"
-+ depends on SYS_HAS_CPU_RM9000
-+ select CPU_HAS_PREFETCH
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select CPU_SUPPORTS_64BIT_KERNEL
-+ select CPU_SUPPORTS_HIGHMEM
-+ select WEAK_ORDERING
-+
-+config CPU_SB1
-+ bool "SB1"
-+ depends on SYS_HAS_CPU_SB1
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select CPU_SUPPORTS_64BIT_KERNEL
-+ select CPU_SUPPORTS_HIGHMEM
-+ select WEAK_ORDERING
-+
-+config CPU_CAVIUM_OCTEON
-+ bool "Cavium Octeon processor"
-+ depends on SYS_HAS_CPU_CAVIUM_OCTEON
-+ select CPU_HAS_PREFETCH
-+ select CPU_SUPPORTS_64BIT_KERNEL
-+ select SYS_SUPPORTS_SMP
-+ select NR_CPUS_DEFAULT_16
-+ select WEAK_ORDERING
-+ select CPU_SUPPORTS_HIGHMEM
-+ select CPU_SUPPORTS_HUGEPAGES
-+ help
-+ The Cavium Octeon processor is a highly integrated chip containing
-+ many ethernet hardware widgets for networking tasks. The processor
-+ can have up to 16 Mips64v2 cores and 8 integrated gigabit ethernets.
-+ Full details can be found at http://www.caviumnetworks.com.
-+
-+config CPU_BMIPS3300
-+ bool "BMIPS3300"
-+ depends on SYS_HAS_CPU_BMIPS3300
-+ select DMA_NONCOHERENT
-+ select IRQ_CPU
-+ select SWAP_IO_SPACE
-+ select SYS_SUPPORTS_32BIT_KERNEL
-+ select WEAK_ORDERING
-+ help
-+ Broadcom BMIPS3300 processors.
-+
-+config CPU_BMIPS4350
-+ bool "BMIPS4350"
-+ depends on SYS_HAS_CPU_BMIPS4350
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select DMA_NONCOHERENT
-+ select IRQ_CPU
-+ select SWAP_IO_SPACE
-+ select SYS_SUPPORTS_SMP
-+ select SYS_SUPPORTS_HOTPLUG_CPU
-+ select WEAK_ORDERING
-+ help
-+ Broadcom BMIPS4350 ("VIPER") processors.
-+
-+config CPU_BMIPS4380
-+ bool "BMIPS4380"
-+ depends on SYS_HAS_CPU_BMIPS4380
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select DMA_NONCOHERENT
-+ select IRQ_CPU
-+ select SWAP_IO_SPACE
-+ select SYS_SUPPORTS_SMP
-+ select SYS_SUPPORTS_HOTPLUG_CPU
-+ select WEAK_ORDERING
-+ help
-+ Broadcom BMIPS4380 processors.
-+
-+config CPU_BMIPS5000
-+ bool "BMIPS5000"
-+ depends on SYS_HAS_CPU_BMIPS5000
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select CPU_SUPPORTS_HIGHMEM
-+ select DMA_NONCOHERENT
-+ select IRQ_CPU
-+ select SWAP_IO_SPACE
-+ select SYS_SUPPORTS_SMP
-+ select SYS_SUPPORTS_HOTPLUG_CPU
-+ select WEAK_ORDERING
-+ help
-+ Broadcom BMIPS5000 processors.
-+
-+endchoice
-+
-+if CPU_LOONGSON2F
-+config CPU_NOP_WORKAROUNDS
-+ bool
-+
-+config CPU_JUMP_WORKAROUNDS
-+ bool
-+
-+config CPU_LOONGSON2F_WORKAROUNDS
-+ bool "Loongson 2F Workarounds"
-+ default y
-+ select CPU_NOP_WORKAROUNDS
-+ select CPU_JUMP_WORKAROUNDS
-+ help
-+ Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which
-+ require workarounds. Without workarounds the system may hang
-+ unexpectedly. For more information please refer to the gas
-+ -mfix-loongson2f-nop and -mfix-loongson2f-jump options.
-+
-+ Loongson 2F03 and later have fixed these issues and no workarounds
-+ are needed. The workarounds have no significant side effect on them
-+ but may decrease the performance of the system so this option should
-+ be disabled unless the kernel is intended to be run on 2F01 or 2F02
-+ systems.
-+
-+ If unsure, please say Y.
-+endif # CPU_LOONGSON2F
-+
-+config SYS_SUPPORTS_ZBOOT
-+ bool
-+ select HAVE_KERNEL_GZIP
-+ select HAVE_KERNEL_BZIP2
-+ select HAVE_KERNEL_LZMA
-+ select HAVE_KERNEL_LZO
-+
-+config SYS_SUPPORTS_ZBOOT_UART16550
-+ bool
-+ select SYS_SUPPORTS_ZBOOT
-+
-+config CPU_LOONGSON2
-+ bool
-+ select CPU_SUPPORTS_32BIT_KERNEL
-+ select CPU_SUPPORTS_64BIT_KERNEL
-+ select CPU_SUPPORTS_HIGHMEM
-+
-+config SYS_HAS_CPU_LOONGSON2E
-+ bool
-+
-+config SYS_HAS_CPU_LOONGSON2F
-+ bool
-+ select CPU_SUPPORTS_CPUFREQ
-+ select CPU_SUPPORTS_ADDRWINCFG if 64BIT
-+ select CPU_SUPPORTS_UNCACHED_ACCELERATED
-+
-+config SYS_HAS_CPU_MIPS32_R1
-+ bool
-+
-+config SYS_HAS_CPU_MIPS32_R2
-+ bool
-+
-+config SYS_HAS_CPU_MIPS64_R1
-+ bool
-+
-+config SYS_HAS_CPU_MIPS64_R2
-+ bool
-+
-+config SYS_HAS_CPU_R3000
-+ bool
-+
-+config SYS_HAS_CPU_TX39XX
-+ bool
-+
-+config SYS_HAS_CPU_VR41XX
-+ bool
-+
-+config SYS_HAS_CPU_R4300
-+ bool
-+
-+config SYS_HAS_CPU_R4X00
-+ bool
-+
-+config SYS_HAS_CPU_TX49XX
-+ bool
-+
-+config SYS_HAS_CPU_R5000
-+ bool
-+
-+config SYS_HAS_CPU_R5432
-+ bool
-+
-+config SYS_HAS_CPU_R5500
-+ bool
-+
-+config SYS_HAS_CPU_R6000
-+ bool
-+
-+config SYS_HAS_CPU_NEVADA
-+ bool
-+
-+config SYS_HAS_CPU_R8000
-+ bool
-+
-+config SYS_HAS_CPU_R10000
-+ bool
-+
-+config SYS_HAS_CPU_RM7000
-+ bool
-+
-+config SYS_HAS_CPU_RM9000
-+ bool
-+
-+config SYS_HAS_CPU_SB1
-+ bool
-+
-+config SYS_HAS_CPU_CAVIUM_OCTEON
-+ bool
-+
-+config SYS_HAS_CPU_BMIPS3300
-+ bool
-+
-+config SYS_HAS_CPU_BMIPS4350
-+ bool
-+
-+config SYS_HAS_CPU_BMIPS4380
-+ bool
-+
-+config SYS_HAS_CPU_BMIPS5000
-+ bool
-+
-+#
-+# CPU may reorder R->R, R->W, W->R, W->W
-+# Reordering beyond LL and SC is handled in WEAK_REORDERING_BEYOND_LLSC
-+#
-+config WEAK_ORDERING
-+ bool
-+
-+#
-+# CPU may reorder reads and writes beyond LL/SC
-+# CPU may reorder R->LL, R->LL, W->LL, W->LL, R->SC, R->SC, W->SC, W->SC
-+#
-+config WEAK_REORDERING_BEYOND_LLSC
-+ bool
-+endmenu
-+
-+#
-+# These two indicate any level of the MIPS32 and MIPS64 architecture
-+#
-+config CPU_MIPS32
-+ bool
-+ default y if CPU_MIPS32_R1 || CPU_MIPS32_R2
-+
-+config CPU_MIPS64
-+ bool
-+ default y if CPU_MIPS64_R1 || CPU_MIPS64_R2
-+
-+#
-+# These two indicate the revision of the architecture, either Release 1 or Release 2
-+#
-+config CPU_MIPSR1
-+ bool
-+ default y if CPU_MIPS32_R1 || CPU_MIPS64_R1
-+
-+config CPU_MIPSR2
-+ bool
-+ default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
-+
-+config SYS_SUPPORTS_32BIT_KERNEL
-+ bool
-+config SYS_SUPPORTS_64BIT_KERNEL
-+ bool
-+config CPU_SUPPORTS_32BIT_KERNEL
-+ bool
-+config CPU_SUPPORTS_64BIT_KERNEL
-+ bool
-+config CPU_SUPPORTS_CPUFREQ
-+ bool
-+config CPU_SUPPORTS_ADDRWINCFG
-+ bool
-+config CPU_SUPPORTS_HUGEPAGES
-+ bool
-+config CPU_SUPPORTS_UNCACHED_ACCELERATED
-+ bool
-+config MIPS_PGD_C0_CONTEXT
-+ bool
-+ default y if 64BIT && CPU_MIPSR2
-+
-+#
-+# Set to y for ptrace access to watch registers.
-+#
-+config HARDWARE_WATCHPOINTS
-+ bool
-+ default y if CPU_MIPSR1 || CPU_MIPSR2
-+
-+menu "Kernel type"
-+
-+choice
-+
-+ prompt "Kernel code model"
-+ help
-+ You should only select this option if you have a workload that
-+ actually benefits from 64-bit processing or if your machine has
-+ large memory. You will only be presented a single option in this
-+ menu if your system does not support both 32-bit and 64-bit kernels.
-+
-+config 32BIT
-+ bool "32-bit kernel"
-+ depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
-+ select TRAD_SIGNALS
-+ help
-+ Select this option if you want to build a 32-bit kernel.
-+config 64BIT
-+ bool "64-bit kernel"
-+ depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
-+ select HAVE_SYSCALL_WRAPPERS
-+ help
-+ Select this option if you want to build a 64-bit kernel.
-+
-+endchoice
-+
-+choice
-+ prompt "Kernel page size"
-+ default PAGE_SIZE_4KB
-+
-+config PAGE_SIZE_4KB
-+ bool "4kB"
-+ depends on !CPU_LOONGSON2
-+ help
-+ This option select the standard 4kB Linux page size. On some
-+ R3000-family processors this is the only available page size. Using
-+ 4kB page size will minimize memory consumption and is therefore
-+ recommended for low memory systems.
-+
-+config PAGE_SIZE_8KB
-+ bool "8kB"
-+ depends on (EXPERIMENTAL && CPU_R8000) || CPU_CAVIUM_OCTEON
-+ help
-+ Using 8kB page size will result in higher performance kernel at
-+ the price of higher memory consumption. This option is available
-+ only on R8000 and cnMIPS processors. Note that you will need a
-+ suitable Linux distribution to support this.
-+
-+config PAGE_SIZE_16KB
-+ bool "16kB"
-+ depends on !CPU_R3000 && !CPU_TX39XX
-+ help
-+ Using 16kB page size will result in higher performance kernel at
-+ the price of higher memory consumption. This option is available on
-+ all non-R3000 family processors. Note that you will need a suitable
-+ Linux distribution to support this.
-+
-+config PAGE_SIZE_32KB
-+ bool "32kB"
-+ depends on CPU_CAVIUM_OCTEON
-+ help
-+ Using 32kB page size will result in higher performance kernel at
-+ the price of higher memory consumption. This option is available
-+ only on cnMIPS cores. Note that you will need a suitable Linux
-+ distribution to support this.
-+
-+config PAGE_SIZE_64KB
-+ bool "64kB"
-+ depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX
-+ help
-+ Using 64kB page size will result in higher performance kernel at
-+ the price of higher memory consumption. This option is available on
-+ all non-R3000 family processor. Not that at the time of this
-+ writing this option is still high experimental.
-+
-+endchoice
-+
-+config FORCE_MAX_ZONEORDER
-+ int "Maximum zone order"
-+ range 13 64 if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_32KB
-+ default "13" if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_32KB
-+ range 12 64 if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_16KB
-+ default "12" if SYS_SUPPORTS_HUGETLBFS && PAGE_SIZE_16KB
-+ range 11 64
-+ default "11"
-+ help
-+ The kernel memory allocator divides physically contiguous memory
-+ blocks into "zones", where each zone is a power of two number of
-+ pages. This option selects the largest power of two that the kernel
-+ keeps in the memory allocator. If you need to allocate very large
-+ blocks of physically contiguous memory, then you may need to
-+ increase this value.
-+
-+ This config option is actually maximum order plus one. For example,
-+ a value of 11 means that the largest free memory block is 2^10 pages.
-+
-+ The page size is not necessarily 4KB. Keep this in mind
-+ when choosing a value for this option.
-+
-+config BOARD_SCACHE
-+ bool
-+
-+config IP22_CPU_SCACHE
-+ bool
-+ select BOARD_SCACHE
-+
-+#
-+# Support for a MIPS32 / MIPS64 style S-caches
-+#
-+config MIPS_CPU_SCACHE
-+ bool
-+ select BOARD_SCACHE
-+
-+config R5000_CPU_SCACHE
-+ bool
-+ select BOARD_SCACHE
-+
-+config RM7000_CPU_SCACHE
-+ bool
-+ select BOARD_SCACHE
-+
-+config SIBYTE_DMA_PAGEOPS
-+ bool "Use DMA to clear/copy pages"
-+ depends on CPU_SB1
-+ help
-+ Instead of using the CPU to zero and copy pages, use a Data Mover
-+ channel. These DMA channels are otherwise unused by the standard
-+ SiByte Linux port. Seems to give a small performance benefit.
-+
-+config CPU_HAS_PREFETCH
-+ bool
-+
-+choice
-+ prompt "MIPS MT options"
-+
-+config MIPS_MT_DISABLED
-+ bool "Disable multithreading support."
-+ help
-+ Use this option if your workload can't take advantage of
-+ MIPS hardware multithreading support. On systems that don't have
-+ the option of an MT-enabled processor this option will be the only
-+ option in this menu.
-+
-+config MIPS_MT_SMP
-+ bool "Use 1 TC on each available VPE for SMP"
-+ depends on SYS_SUPPORTS_MULTITHREADING
-+ select CPU_MIPSR2_IRQ_VI
-+ select CPU_MIPSR2_IRQ_EI
-+ select MIPS_MT
-+ select NR_CPUS_DEFAULT_2
-+ select SMP
-+ select SYS_SUPPORTS_SCHED_SMT if SMP
-+ select SYS_SUPPORTS_SMP
-+ select SMP_UP
-+ help
-+ This is a kernel model which is known a VSMP but lately has been
-+ marketesed into SMVP.
-+ Virtual SMP uses the processor's VPEs to implement virtual
-+ processors. In currently available configuration of the 34K processor
-+ this allows for a dual processor. Both processors will share the same
-+ primary caches; each will obtain the half of the TLB for it's own
-+ exclusive use. For a layman this model can be described as similar to
-+ what Intel calls Hyperthreading.
-+
-+ For further information see http://www.linux-mips.org/wiki/34K#VSMP
-+
-+config MIPS_MT_SMTC
-+ bool "SMTC: Use all TCs on all VPEs for SMP"
-+ depends on CPU_MIPS32_R2
-+ #depends on CPU_MIPS64_R2 # once there is hardware ...
-+ depends on SYS_SUPPORTS_MULTITHREADING
-+ select CPU_MIPSR2_IRQ_VI
-+ select CPU_MIPSR2_IRQ_EI
-+ select MIPS_MT
-+ select NR_CPUS_DEFAULT_8
-+ select SMP
-+ select SYS_SUPPORTS_SMP
-+ select SMP_UP
-+ help
-+ This is a kernel model which is known a SMTC or lately has been
-+ marketesed into SMVP.
-+ is presenting the available TC's of the core as processors to Linux.
-+ On currently available 34K processors this means a Linux system will
-+ see up to 5 processors. The implementation of the SMTC kernel differs
-+ significantly from VSMP and cannot efficiently coexist in the same
-+ kernel binary so the choice between VSMP and SMTC is a compile time
-+ decision.
-+
-+ For further information see http://www.linux-mips.org/wiki/34K#SMTC
-+
-+endchoice
-+
-+config MIPS_MT
-+ bool
-+
-+config SCHED_SMT
-+ bool "SMT (multithreading) scheduler support"
-+ depends on SYS_SUPPORTS_SCHED_SMT
-+ default n
-+ help
-+ SMT scheduler support improves the CPU scheduler's decision making
-+ when dealing with MIPS MT enabled cores at a cost of slightly
-+ increased overhead in some places. If unsure say N here.
-+
-+config SYS_SUPPORTS_SCHED_SMT
-+ bool
-+
-+
-+config SYS_SUPPORTS_MULTITHREADING
-+ bool
-+
-+config MIPS_MT_FPAFF
-+ bool "Dynamic FPU affinity for FP-intensive threads"
-+ default y
-+ depends on MIPS_MT_SMP || MIPS_MT_SMTC
-+
-+config MIPS_VPE_LOADER
-+ bool "VPE loader support."
-+ depends on SYS_SUPPORTS_MULTITHREADING
-+ select CPU_MIPSR2_IRQ_VI
-+ select CPU_MIPSR2_IRQ_EI
-+ select MIPS_MT
-+ help
-+ Includes a loader for loading an elf relocatable object
-+ onto another VPE and running it.
-+
-+config MIPS_MT_SMTC_IM_BACKSTOP
-+ bool "Use per-TC register bits as backstop for inhibited IM bits"
-+ depends on MIPS_MT_SMTC
-+ default n
-+ help
-+ To support multiple TC microthreads acting as "CPUs" within
-+ a VPE, VPE-wide interrupt mask bits must be specially manipulated
-+ during interrupt handling. To support legacy drivers and interrupt
-+ controller management code, SMTC has a "backstop" to track and
-+ if necessary restore the interrupt mask. This has some performance
-+ impact on interrupt service overhead.
-+
-+config MIPS_MT_SMTC_IRQAFF
-+ bool "Support IRQ affinity API"
-+ depends on MIPS_MT_SMTC
-+ default n
-+ help
-+ Enables SMP IRQ affinity API (/proc/irq/*/smp_affinity, etc.)
-+ for SMTC Linux kernel. Requires platform support, of which
-+ an example can be found in the MIPS kernel i8259 and Malta
-+ platform code. Adds some overhead to interrupt dispatch, and
-+ should be used only if you know what you are doing.
-+
-+config MIPS_VPE_LOADER_TOM
-+ bool "Load VPE program into memory hidden from linux"
-+ depends on MIPS_VPE_LOADER
-+ default y
-+ help
-+ The loader can use memory that is present but has been hidden from
-+ Linux using the kernel command line option "mem=xxMB". It's up to
-+ you to ensure the amount you put in the option and the space your
-+ program requires is less or equal to the amount physically present.
-+
-+# this should possibly be in drivers/char, but it is rather cpu related. Hmmm
-+config MIPS_VPE_APSP_API
-+ bool "Enable support for AP/SP API (RTLX)"
-+ depends on MIPS_VPE_LOADER
-+ help
-+
-+config MIPS_APSP_KSPD
-+ bool "Enable KSPD"
-+ depends on MIPS_VPE_APSP_API
-+ default y
-+ help
-+ KSPD is a kernel daemon that accepts syscall requests from the SP
-+ side, actions them and returns the results. It also handles the
-+ "exit" syscall notifying other kernel modules the SP program is
-+ exiting. You probably want to say yes here.
-+
-+config MIPS_CMP
-+ bool "MIPS CMP framework support"
-+ depends on SYS_SUPPORTS_MIPS_CMP
-+ select SYNC_R4K
-+ select SYS_SUPPORTS_SMP
-+ select SYS_SUPPORTS_SCHED_SMT if SMP
-+ select WEAK_ORDERING
-+ default n
-+ help
-+ This is a placeholder option for the GCMP work. It will need to
-+ be handled differently...
-+
-+config SB1_PASS_1_WORKAROUNDS
-+ bool
-+ depends on CPU_SB1_PASS_1
-+ default y
-+
-+config SB1_PASS_2_WORKAROUNDS
-+ bool
-+ depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
-+ default y
-+
-+config SB1_PASS_2_1_WORKAROUNDS
-+ bool
-+ depends on CPU_SB1 && CPU_SB1_PASS_2
-+ default y
-+
-+config 64BIT_PHYS_ADDR
-+ bool
-+
-+config ARCH_PHYS_ADDR_T_64BIT
-+ def_bool 64BIT_PHYS_ADDR
-+
-+config CPU_HAS_SMARTMIPS
-+ depends on SYS_SUPPORTS_SMARTMIPS
-+ bool "Support for the SmartMIPS ASE"
-+ help
-+ SmartMIPS is a extension of the MIPS32 architecture aimed at
-+ increased security at both hardware and software level for
-+ smartcards. Enabling this option will allow proper use of the
-+ SmartMIPS instructions by Linux applications. However a kernel with
-+ this option will not work on a MIPS core without SmartMIPS core. If
-+ you don't know you probably don't have SmartMIPS and should say N
-+ here.
-+
-+config CPU_HAS_WB
-+ bool
-+
-+#
-+# Vectored interrupt mode is an R2 feature
-+#
-+config CPU_MIPSR2_IRQ_VI
-+ bool
-+
-+#
-+# Extended interrupt mode is an R2 feature
-+#
-+config CPU_MIPSR2_IRQ_EI
-+ bool
-+
-+config CPU_HAS_SYNC
-+ bool
-+ depends on !CPU_R3000
-+ default y
-+
-+config GENERIC_CLOCKEVENTS_BROADCAST
-+ bool
-+
-+#
-+# CPU non-features
-+#
-+config CPU_DADDI_WORKAROUNDS
-+ bool
-+
-+config CPU_R4000_WORKAROUNDS
-+ bool
-+ select CPU_R4400_WORKAROUNDS
-+
-+config CPU_R4400_WORKAROUNDS
-+ bool
-+
-+#
-+# - Highmem only makes sense for the 32-bit kernel.
-+# - The current highmem code will only work properly on physically indexed
-+# caches such as R3000, SB1, R7000 or those that look like they're virtually
-+# indexed such as R4000/R4400 SC and MC versions or R10000. So for the
-+# moment we protect the user and offer the highmem option only on machines
-+# where it's known to be safe. This will not offer highmem on a few systems
-+# such as MIPS32 and MIPS64 CPUs which may have virtual and physically
-+# indexed CPUs but we're playing safe.
-+# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
-+# know they might have memory configurations that could make use of highmem
-+# support.
-+#
-+config HIGHMEM
-+ bool "High Memory Support"
-+ depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM
-+
-+config CPU_SUPPORTS_HIGHMEM
-+ bool
-+
-+config SYS_SUPPORTS_HIGHMEM
-+ bool
-+
-+config SYS_SUPPORTS_SMARTMIPS
-+ bool
-+
-+config ARCH_FLATMEM_ENABLE
-+ def_bool y
-+ depends on !NUMA && !CPU_LOONGSON2
-+
-+config ARCH_DISCONTIGMEM_ENABLE
-+ bool
-+ default y if SGI_IP27
-+ help
-+ Say Y to support efficient handling of discontiguous physical memory,
-+ for architectures which are either NUMA (Non-Uniform Memory Access)
-+ or have huge holes in the physical address space for other reasons.
-+ See <file:Documentation/vm/numa> for more.
-+
-+config ARCH_POPULATES_NODE_MAP
-+ def_bool y
-+
-+config ARCH_SPARSEMEM_ENABLE
-+ bool
-+ select SPARSEMEM_STATIC
-+
-+config NUMA
-+ bool "NUMA Support"
-+ depends on SYS_SUPPORTS_NUMA
-+ help
-+ Say Y to compile the kernel to support NUMA (Non-Uniform Memory
-+ Access). This option improves performance on systems with more
-+ than two nodes; on two node systems it is generally better to
-+ leave it disabled; on single node systems disable this option
-+ disabled.
-+
-+config SYS_SUPPORTS_NUMA
-+ bool
-+
-+config NODES_SHIFT
-+ int
-+ default "6"
-+ depends on NEED_MULTIPLE_NODES
-+
-+config HW_PERF_EVENTS
-+ bool "Enable hardware performance counter support for perf events"
-+ depends on PERF_EVENTS && !MIPS_MT_SMTC && OPROFILE=n && CPU_MIPS32
-+ default y
-+ help
-+ Enable hardware performance counter support for perf events. If
-+ disabled, perf events will use software events only.
-+
-+source "mm/Kconfig"
-+
-+config SMP
-+ bool "Multi-Processing support"
-+ depends on SYS_SUPPORTS_SMP
-+ select IRQ_PER_CPU
-+ select USE_GENERIC_SMP_HELPERS
-+ help
-+ This enables support for systems with more than one CPU. If you have
-+ a system with only one CPU, like most personal computers, say N. If
-+ you have a system with more than one CPU, say Y.
-+
-+ If you say N here, the kernel will run on single and multiprocessor
-+ machines, but will use only one CPU of a multiprocessor machine. If
-+ you say Y here, the kernel will run on many, but not all,
-+ singleprocessor machines. On a singleprocessor machine, the kernel
-+ will run faster if you say N here.
-+
-+ People using multiprocessor machines who say Y here should also say
-+ Y to "Enhanced Real Time Clock Support", below.
-+
-+ See also the SMP-HOWTO available at
-+ <http://www.tldp.org/docs.html#howto>.
-+
-+ If you don't know what to do here, say N.
-+
-+config SMP_UP
-+ bool
-+
-+config SYS_SUPPORTS_MIPS_CMP
-+ bool
-+
-+config SYS_SUPPORTS_SMP
-+ bool
-+
-+config NR_CPUS_DEFAULT_1
-+ bool
-+
-+config NR_CPUS_DEFAULT_2
-+ bool
-+
-+config NR_CPUS_DEFAULT_4
-+ bool
-+
-+config NR_CPUS_DEFAULT_8
-+ bool
-+
-+config NR_CPUS_DEFAULT_16
-+ bool
-+
-+config NR_CPUS_DEFAULT_32
-+ bool
-+
-+config NR_CPUS_DEFAULT_64
-+ bool
-+
-+config NR_CPUS
-+ int "Maximum number of CPUs (2-64)"
-+ range 1 64 if NR_CPUS_DEFAULT_1
-+ depends on SMP
-+ default "1" if NR_CPUS_DEFAULT_1
-+ default "2" if NR_CPUS_DEFAULT_2
-+ default "4" if NR_CPUS_DEFAULT_4
-+ default "8" if NR_CPUS_DEFAULT_8
-+ default "16" if NR_CPUS_DEFAULT_16
-+ default "32" if NR_CPUS_DEFAULT_32
-+ default "64" if NR_CPUS_DEFAULT_64
-+ help
-+ This allows you to specify the maximum number of CPUs which this
-+ kernel will support. The maximum supported value is 32 for 32-bit
-+ kernel and 64 for 64-bit kernels; the minimum value which makes
-+ sense is 1 for Qemu (useful only for kernel debugging purposes)
-+ and 2 for all others.
-+
-+ This is purely to save memory - each supported CPU adds
-+ approximately eight kilobytes to the kernel image. For best
-+ performance should round up your number of processors to the next
-+ power of two.
-+
-+source "kernel/time/Kconfig"
-+
-+#
-+# Timer Interrupt Frequency Configuration
-+#
-+
-+choice
-+ prompt "Timer frequency"
-+ default HZ_250
-+ help
-+ Allows the configuration of the timer frequency.
-+
-+ config HZ_48
-+ bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ
-+
-+ config HZ_100
-+ bool "100 HZ" if SYS_SUPPORTS_100HZ || SYS_SUPPORTS_ARBIT_HZ
-+
-+ config HZ_128
-+ bool "128 HZ" if SYS_SUPPORTS_128HZ || SYS_SUPPORTS_ARBIT_HZ
-+
-+ config HZ_250
-+ bool "250 HZ" if SYS_SUPPORTS_250HZ || SYS_SUPPORTS_ARBIT_HZ
-+
-+ config HZ_256
-+ bool "256 HZ" if SYS_SUPPORTS_256HZ || SYS_SUPPORTS_ARBIT_HZ
-+
-+ config HZ_1000
-+ bool "1000 HZ" if SYS_SUPPORTS_1000HZ || SYS_SUPPORTS_ARBIT_HZ
-+
-+ config HZ_1024
-+ bool "1024 HZ" if SYS_SUPPORTS_1024HZ || SYS_SUPPORTS_ARBIT_HZ
-+
-+endchoice
-+
-+config SYS_SUPPORTS_48HZ
-+ bool
-+
-+config SYS_SUPPORTS_100HZ
-+ bool
-+
-+config SYS_SUPPORTS_128HZ
-+ bool
-+
-+config SYS_SUPPORTS_250HZ
-+ bool
-+
-+config SYS_SUPPORTS_256HZ
-+ bool
-+
-+config SYS_SUPPORTS_1000HZ
-+ bool
-+
-+config SYS_SUPPORTS_1024HZ
-+ bool
-+
-+config SYS_SUPPORTS_ARBIT_HZ
-+ bool
-+ default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
-+ !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
-+ !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
-+ !SYS_SUPPORTS_1024HZ
-+
-+config HZ
-+ int
-+ default 48 if HZ_48
-+ default 100 if HZ_100
-+ default 128 if HZ_128
-+ default 250 if HZ_250
-+ default 256 if HZ_256
-+ default 1000 if HZ_1000
-+ default 1024 if HZ_1024
-+
-+source "kernel/Kconfig.preempt"
-+
-+config MIPS_INSANE_LARGE
-+ bool "Support for large 64-bit configurations"
-+ depends on CPU_R10000 && 64BIT
-+ help
-+ MIPS R10000 does support a 44 bit / 16TB address space as opposed to
-+ previous 64-bit processors which only supported 40 bit / 1TB. If you
-+ need processes of more than 1TB virtual address space, say Y here.
-+ This will result in additional memory usage, so it is not
-+ recommended for normal users.
-+
-+config KEXEC
-+ bool "Kexec system call (EXPERIMENTAL)"
-+ depends on EXPERIMENTAL
-+ help
-+ kexec is a system call that implements the ability to shutdown your
-+ current kernel, and to start another kernel. It is like a reboot
-+ but it is independent of the system firmware. And like a reboot
-+ you can start any kernel with it, not just Linux.
-+
-+ The name comes from the similarity to the exec system call.
-+
-+ It is an ongoing process to be certain the hardware in a machine
-+ is properly shutdown, so do not be surprised if this code does not
-+ initially work for you. It may help to enable device hotplugging
-+ support. As of this writing the exact hardware interface is
-+ strongly in flux, so no good recommendation can be made.
-+
-+config SECCOMP
-+ bool "Enable seccomp to safely compute untrusted bytecode"
-+ depends on PROC_FS
-+ default y
-+ help
-+ This kernel feature is useful for number crunching applications
-+ that may need to compute untrusted bytecode during their
-+ execution. By using pipes or other transports made available to
-+ the process as file descriptors supporting the read/write
-+ syscalls, it's possible to isolate those applications in
-+ their own address space using seccomp. Once seccomp is
-+ enabled via /proc/<pid>/seccomp, it cannot be disabled
-+ and the task is only allowed to execute a few safe syscalls
-+ defined by each seccomp mode.
-+
-+ If unsure, say Y. Only embedded should say N here.
-+
-+config USE_OF
-+ bool "Flattened Device Tree support"
-+ select OF
-+ select OF_EARLY_FLATTREE
-+ help
-+ Include support for flattened device tree machine descriptions.
-+
-+endmenu
-+
-+config LOCKDEP_SUPPORT
-+ bool
-+ default y
-+
-+config STACKTRACE_SUPPORT
-+ bool
-+ default y
-+
-+source "init/Kconfig"
-+
-+source "kernel/Kconfig.freezer"
-+
-+menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
-+
-+config HW_HAS_EISA
-+ bool
-+config HW_HAS_PCI
-+ bool
-+
-+config PCI
-+ bool "Support for PCI controller"
-+ depends on HW_HAS_PCI
-+ select PCI_DOMAINS
-+ help
-+ Find out whether you have a PCI motherboard. PCI is the name of a
-+ bus system, i.e. the way the CPU talks to the other stuff inside
-+ your box. Other bus systems are ISA, EISA, or VESA. If you have PCI,
-+ say Y, otherwise N.
-+
-+config PCI_DOMAINS
-+ bool
-+
-+source "drivers/pci/Kconfig"
-+
-+#
-+# ISA support is now enabled via select. Too many systems still have the one
-+# or other ISA chip on the board that users don't know about so don't expect
-+# users to choose the right thing ...
-+#
-+config ISA
-+ bool
-+
-+config EISA
-+ bool "EISA support"
-+ depends on HW_HAS_EISA
-+ select ISA
-+ select GENERIC_ISA_DMA
-+ ---help---
-+ The Extended Industry Standard Architecture (EISA) bus was
-+ developed as an open alternative to the IBM MicroChannel bus.
-+
-+ The EISA bus provided some of the features of the IBM MicroChannel
-+ bus while maintaining backward compatibility with cards made for
-+ the older ISA bus. The EISA bus saw limited use between 1988 and
-+ 1995 when it was made obsolete by the PCI bus.
-+
-+ Say Y here if you are building a kernel for an EISA-based machine.
-+
-+ Otherwise, say N.
-+
-+source "drivers/eisa/Kconfig"
-+
-+config TC
-+ bool "TURBOchannel support"
-+ depends on MACH_DECSTATION
-+ help
-+ TURBOchannel is a DEC (now Compaq (now HP)) bus for Alpha and MIPS
-+ processors. TURBOchannel programming specifications are available
-+ at:
-+ <ftp://ftp.hp.com/pub/alphaserver/archive/triadd/>
-+ and:
-+ <http://www.computer-refuge.org/classiccmp/ftp.digital.com/pub/DEC/TriAdd/>
-+ Linux driver support status is documented at:
-+ <http://www.linux-mips.org/wiki/DECstation>
-+
-+#config ACCESSBUS
-+# bool "Access.Bus support"
-+# depends on TC
-+
-+config MMU
-+ bool
-+ default y
-+
-+config I8253
-+ bool
-+ select MIPS_EXTERNAL_TIMER
-+
-+config ZONE_DMA32
-+ bool
-+
-+source "drivers/pcmcia/Kconfig"
-+
-+source "drivers/pci/hotplug/Kconfig"
-+
-+config RAPIDIO
-+ bool "RapidIO support"
-+ depends on PCI
-+ default n
-+ help
-+ If you say Y here, the kernel will include drivers and
-+ infrastructure code to support RapidIO interconnect devices.
-+
-+source "drivers/rapidio/Kconfig"
-+
-+endmenu
-+
-+menu "Executable file formats"
-+
-+source "fs/Kconfig.binfmt"
-+
-+config TRAD_SIGNALS
-+ bool
-+
-+config MIPS32_COMPAT
-+ bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
-+ depends on 64BIT
-+ help
-+ Select this option if you want Linux/MIPS 32-bit binary
-+ compatibility. Since all software available for Linux/MIPS is
-+ currently 32-bit you should say Y here.
-+
-+config COMPAT
-+ bool
-+ depends on MIPS32_COMPAT
-+ default y
-+
-+config SYSVIPC_COMPAT
-+ bool
-+ depends on COMPAT && SYSVIPC
-+ default y
-+
-+config MIPS32_O32
-+ bool "Kernel support for o32 binaries"
-+ depends on MIPS32_COMPAT
-+ help
-+ Select this option if you want to run o32 binaries. These are pure
-+ 32-bit binaries as used by the 32-bit Linux/MIPS port. Most of
-+ existing binaries are in this format.
-+
-+ If unsure, say Y.
-+
-+config MIPS32_N32
-+ bool "Kernel support for n32 binaries"
-+ depends on MIPS32_COMPAT
-+ help
-+ Select this option if you want to run n32 binaries. These are
-+ 64-bit binaries using 32-bit quantities for addressing and certain
-+ data that would normally be 64-bit. They are used in special
-+ cases.
-+
-+ If unsure, say N.
-+
-+config BINFMT_ELF32
-+ bool
-+ default y if MIPS32_O32 || MIPS32_N32
-+
-+endmenu
-+
-+menu "Power management options"
-+
-+config ARCH_HIBERNATION_POSSIBLE
-+ def_bool y
-+ depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
-+
-+config ARCH_SUSPEND_POSSIBLE
-+ def_bool y
-+ depends on SYS_SUPPORTS_HOTPLUG_CPU || !SMP
-+
-+source "kernel/power/Kconfig"
-+
-+endmenu
-+
-+source "arch/mips/kernel/cpufreq/Kconfig"
-+
-+source "net/Kconfig"
-+
-+source "drivers/Kconfig"
-+
-+source "fs/Kconfig"
-+
-+source "arch/mips/Kconfig.debug"
-+
-+source "security/Kconfig"
-+
-+source "crypto/Kconfig"
-+
-+menuconfig VIRTUALIZATION
-+ bool "Virtualization"
-+ default n
-+ ---help---
-+ Say Y here to get to see options for using your Linux host to run other
-+ operating systems inside virtual machines (guests).
-+ This option alone does not add any kernel code.
-+
-+ If you say N, all options in this submenu will be skipped and disabled.
-+
-+if VIRTUALIZATION
-+
-+source drivers/virtio/Kconfig
-+
-+endif # VIRTUALIZATION
-+
-+source "lib/Kconfig"
diff -Nur linux-2.6.39.orig/arch/mips/kernel/traps.c linux-2.6.39/arch/mips/kernel/traps.c
--- linux-2.6.39.orig/arch/mips/kernel/traps.c 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/arch/mips/kernel/traps.c 2011-08-24 05:53:05.179230891 +0200
++++ linux-2.6.39/arch/mips/kernel/traps.c 2011-08-24 18:17:24.000000000 +0200
@@ -54,6 +54,7 @@
#include <asm/types.h>
#include <asm/stacktrace.h>
@@ -15121,34 +12670,9 @@ diff -Nur linux-2.6.39.orig/arch/mips/kernel/traps.c linux-2.6.39/arch/mips/kern
cp0_perfcount_irq = (read_c0_intctl() >> INTCTLB_IPPCI) & 7;
if (cp0_perfcount_irq == cp0_compare_irq)
cp0_perfcount_irq = -1;
-diff -Nur linux-2.6.39.orig/arch/mips/Makefile linux-2.6.39/arch/mips/Makefile
---- linux-2.6.39.orig/arch/mips/Makefile 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/arch/mips/Makefile 2011-08-24 02:42:39.917989402 +0200
-@@ -158,6 +158,13 @@
- endif
- cflags-$(CONFIG_CAVIUM_CN63XXP1) += -Wa,-mfix-cn63xxp1
-
-+#
-+# Atheros AR71xx
-+#
-+core-$(CONFIG_ATHEROS_AR71XX) += arch/mips/ar71xx/
-+cflags-$(CONFIG_ATHEROS_AR71XX) += -I$(srctree)/arch/mips/include/asm/mach-ar71xx
-+load-$(CONFIG_ATHEROS_AR71XX) += 0xffffffff80060000
-+
- cflags-$(CONFIG_CPU_R4000_WORKAROUNDS) += $(call cc-option,-mfix-r4000,)
- cflags-$(CONFIG_CPU_R4400_WORKAROUNDS) += $(call cc-option,-mfix-r4400,)
- cflags-$(CONFIG_CPU_DADDI_WORKAROUNDS) += $(call cc-option,-mno-daddi,)
-@@ -174,6 +181,7 @@
- #
- libs-$(CONFIG_ARC) += arch/mips/fw/arc/
- libs-$(CONFIG_CFE) += arch/mips/fw/cfe/
-+libs-$(CONFIG_MYLOADER) += arch/mips/fw/myloader/
- libs-$(CONFIG_SNIPROM) += arch/mips/fw/sni/
- libs-y += arch/mips/fw/lib/
-
diff -Nur linux-2.6.39.orig/arch/mips/pci/Makefile linux-2.6.39/arch/mips/pci/Makefile
--- linux-2.6.39.orig/arch/mips/pci/Makefile 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/arch/mips/pci/Makefile 2011-08-22 16:21:37.437981205 +0200
++++ linux-2.6.39/arch/mips/pci/Makefile 2011-08-24 18:17:24.000000000 +0200
@@ -18,6 +18,7 @@
obj-$(CONFIG_BCM47XX) += pci-bcm47xx.o
obj-$(CONFIG_BCM63XX) += pci-bcm63xx.o fixup-bcm63xx.o \
@@ -15159,7 +12683,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/pci/Makefile linux-2.6.39/arch/mips/pci/Ma
# These are still pretty much in the old state, watch, go blind.
diff -Nur linux-2.6.39.orig/arch/mips/pci/pci-ar71xx.c linux-2.6.39/arch/mips/pci/pci-ar71xx.c
--- linux-2.6.39.orig/arch/mips/pci/pci-ar71xx.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/pci/pci-ar71xx.c 2011-08-06 09:32:37.098016752 +0200
++++ linux-2.6.39/arch/mips/pci/pci-ar71xx.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,415 @@
+/*
+ * Atheros AR71xx PCI host controller driver
@@ -15578,7 +13102,7 @@ diff -Nur linux-2.6.39.orig/arch/mips/pci/pci-ar71xx.c linux-2.6.39/arch/mips/pc
+}
diff -Nur linux-2.6.39.orig/arch/mips/pci/pci-ar724x.c linux-2.6.39/arch/mips/pci/pci-ar724x.c
--- linux-2.6.39.orig/arch/mips/pci/pci-ar724x.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/arch/mips/pci/pci-ar724x.c 2011-08-06 09:32:37.088017079 +0200
++++ linux-2.6.39/arch/mips/pci/pci-ar724x.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,389 @@
+/*
+ * Atheros AR724x PCI host controller driver
@@ -15969,9 +13493,22 @@ diff -Nur linux-2.6.39.orig/arch/mips/pci/pci-ar724x.c linux-2.6.39/arch/mips/pc
+err:
+ return ret;
+}
+diff -Nur linux-2.6.39.orig/drivers/Makefile linux-2.6.39/drivers/Makefile
+--- linux-2.6.39.orig/drivers/Makefile 2011-05-19 06:06:34.000000000 +0200
++++ linux-2.6.39/drivers/Makefile 2011-08-24 18:17:24.000000000 +0200
+@@ -46,8 +46,8 @@
+ obj-$(CONFIG_SCSI) += scsi/
+ obj-$(CONFIG_ATA) += ata/
+ obj-$(CONFIG_TARGET_CORE) += target/
+-obj-$(CONFIG_MTD) += mtd/
+ obj-$(CONFIG_SPI) += spi/
++obj-$(CONFIG_MTD) += mtd/
+ obj-y += net/
+ obj-$(CONFIG_ATM) += atm/
+ obj-$(CONFIG_FUSION) += message/
diff -Nur linux-2.6.39.orig/drivers/gpio/nxp_74hc153.c linux-2.6.39/drivers/gpio/nxp_74hc153.c
--- linux-2.6.39.orig/drivers/gpio/nxp_74hc153.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/gpio/nxp_74hc153.c 2011-04-27 12:19:22.327664626 +0200
++++ linux-2.6.39/drivers/gpio/nxp_74hc153.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,247 @@
+/*
+ * NXP 74HC153 - Dual 4-input multiplexer GPIO driver
@@ -16222,7 +13759,7 @@ diff -Nur linux-2.6.39.orig/drivers/gpio/nxp_74hc153.c linux-2.6.39/drivers/gpio
+MODULE_ALIAS("platform:" NXP_74HC153_DRIVER_NAME);
diff -Nur linux-2.6.39.orig/drivers/leds/leds-rb750.c linux-2.6.39/drivers/leds/leds-rb750.c
--- linux-2.6.39.orig/drivers/leds/leds-rb750.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/leds/leds-rb750.c 2011-04-27 12:19:22.267661616 +0200
++++ linux-2.6.39/drivers/leds/leds-rb750.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,141 @@
+/*
+ * LED driver for the RouterBOARD 750
@@ -16367,7 +13904,7 @@ diff -Nur linux-2.6.39.orig/drivers/leds/leds-rb750.c linux-2.6.39/drivers/leds/
+MODULE_LICENSE("GPL v2");
diff -Nur linux-2.6.39.orig/drivers/leds/leds-wndr3700-usb.c linux-2.6.39/drivers/leds/leds-wndr3700-usb.c
--- linux-2.6.39.orig/drivers/leds/leds-wndr3700-usb.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/leds/leds-wndr3700-usb.c 2011-04-27 12:19:22.267661616 +0200
++++ linux-2.6.39/drivers/leds/leds-wndr3700-usb.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,75 @@
+/*
+ * USB LED driver for the NETGEAR WNDR3700
@@ -16444,22 +13981,9 @@ diff -Nur linux-2.6.39.orig/drivers/leds/leds-wndr3700-usb.c linux-2.6.39/driver
+MODULE_AUTHOR("Gabor Juhos <juhosg@openwrt.org>");
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("platform:" DRIVER_NAME);
-diff -Nur linux-2.6.39.orig/drivers/Makefile linux-2.6.39/drivers/Makefile
---- linux-2.6.39.orig/drivers/Makefile 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/Makefile 2011-08-23 15:10:42.370478643 +0200
-@@ -46,8 +46,8 @@
- obj-$(CONFIG_SCSI) += scsi/
- obj-$(CONFIG_ATA) += ata/
- obj-$(CONFIG_TARGET_CORE) += target/
--obj-$(CONFIG_MTD) += mtd/
- obj-$(CONFIG_SPI) += spi/
-+obj-$(CONFIG_MTD) += mtd/
- obj-y += net/
- obj-$(CONFIG_ATM) += atm/
- obj-$(CONFIG_FUSION) += message/
diff -Nur linux-2.6.39.orig/drivers/mtd/chips/cfi_cmdset_0002.c linux-2.6.39/drivers/mtd/chips/cfi_cmdset_0002.c
--- linux-2.6.39.orig/drivers/mtd/chips/cfi_cmdset_0002.c 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/mtd/chips/cfi_cmdset_0002.c 2011-08-22 16:22:28.477979654 +0200
++++ linux-2.6.39/drivers/mtd/chips/cfi_cmdset_0002.c 2011-08-24 18:17:24.000000000 +0200
@@ -39,7 +39,7 @@
#include <linux/mtd/xip.h>
@@ -16519,9 +14043,37 @@ diff -Nur linux-2.6.39.orig/drivers/mtd/chips/cfi_cmdset_0002.c linux-2.6.39/dri
/*
+diff -Nur linux-2.6.39.orig/drivers/mtd/maps/Kconfig linux-2.6.39/drivers/mtd/maps/Kconfig
+--- linux-2.6.39.orig/drivers/mtd/maps/Kconfig 2011-05-19 06:06:34.000000000 +0200
++++ linux-2.6.39/drivers/mtd/maps/Kconfig 2011-08-24 18:17:24.000000000 +0200
+@@ -260,6 +260,13 @@
+ Support for parsing CFE image tag and creating MTD partitions on
+ Broadcom BCM63xx boards.
+
++config MTD_AR91XX_FLASH
++ tristate "Atheros AR91xx parallel flash support"
++ depends on ATHEROS_AR71XX
++ select MTD_COMPLEX_MAPPINGS
++ help
++ Parallel flash driver for the Atheros AR91xx based boards.
++
+ config MTD_DILNETPC
+ tristate "CFI Flash device mapped on DIL/Net PC"
+ depends on X86 && MTD_PARTITIONS && MTD_CFI_INTELEXT && BROKEN
+diff -Nur linux-2.6.39.orig/drivers/mtd/maps/Makefile linux-2.6.39/drivers/mtd/maps/Makefile
+--- linux-2.6.39.orig/drivers/mtd/maps/Makefile 2011-05-19 06:06:34.000000000 +0200
++++ linux-2.6.39/drivers/mtd/maps/Makefile 2011-08-24 18:17:24.000000000 +0200
+@@ -40,6 +40,7 @@
+ obj-$(CONFIG_MTD_DBOX2) += dbox2-flash.o
+ obj-$(CONFIG_MTD_SOLUTIONENGINE)+= solutionengine.o
+ obj-$(CONFIG_MTD_PCI) += pci.o
++obj-$(CONFIG_MTD_AR91XX_FLASH) += ar91xx_flash.o
+ obj-$(CONFIG_MTD_AUTCPU12) += autcpu12-nvram.o
+ obj-$(CONFIG_MTD_EDB7312) += edb7312.o
+ obj-$(CONFIG_MTD_IMPA7) += impa7.o
diff -Nur linux-2.6.39.orig/drivers/mtd/maps/ar91xx_flash.c linux-2.6.39/drivers/mtd/maps/ar91xx_flash.c
--- linux-2.6.39.orig/drivers/mtd/maps/ar91xx_flash.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/mtd/maps/ar91xx_flash.c 2011-04-27 12:19:22.177661504 +0200
++++ linux-2.6.39/drivers/mtd/maps/ar91xx_flash.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,310 @@
+/*
+ * Parallel flash driver for the Atheros AR91xx SoC
@@ -16833,37 +14385,9 @@ diff -Nur linux-2.6.39.orig/drivers/mtd/maps/ar91xx_flash.c linux-2.6.39/drivers
+MODULE_AUTHOR("Gabor Juhos <juhosg@openwrt.org>");
+MODULE_DESCRIPTION("Parallel flash driver for the Atheros AR91xx SoC");
+MODULE_ALIAS("platform:" DRV_NAME);
-diff -Nur linux-2.6.39.orig/drivers/mtd/maps/Kconfig linux-2.6.39/drivers/mtd/maps/Kconfig
---- linux-2.6.39.orig/drivers/mtd/maps/Kconfig 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/mtd/maps/Kconfig 2011-08-22 16:22:06.367979538 +0200
-@@ -260,6 +260,13 @@
- Support for parsing CFE image tag and creating MTD partitions on
- Broadcom BCM63xx boards.
-
-+config MTD_AR91XX_FLASH
-+ tristate "Atheros AR91xx parallel flash support"
-+ depends on ATHEROS_AR71XX
-+ select MTD_COMPLEX_MAPPINGS
-+ help
-+ Parallel flash driver for the Atheros AR91xx based boards.
-+
- config MTD_DILNETPC
- tristate "CFI Flash device mapped on DIL/Net PC"
- depends on X86 && MTD_PARTITIONS && MTD_CFI_INTELEXT && BROKEN
-diff -Nur linux-2.6.39.orig/drivers/mtd/maps/Makefile linux-2.6.39/drivers/mtd/maps/Makefile
---- linux-2.6.39.orig/drivers/mtd/maps/Makefile 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/mtd/maps/Makefile 2011-08-22 16:22:06.387979567 +0200
-@@ -40,6 +40,7 @@
- obj-$(CONFIG_MTD_DBOX2) += dbox2-flash.o
- obj-$(CONFIG_MTD_SOLUTIONENGINE)+= solutionengine.o
- obj-$(CONFIG_MTD_PCI) += pci.o
-+obj-$(CONFIG_MTD_AR91XX_FLASH) += ar91xx_flash.o
- obj-$(CONFIG_MTD_AUTCPU12) += autcpu12-nvram.o
- obj-$(CONFIG_MTD_EDB7312) += edb7312.o
- obj-$(CONFIG_MTD_IMPA7) += impa7.o
diff -Nur linux-2.6.39.orig/drivers/mtd/nand/Kconfig linux-2.6.39/drivers/mtd/nand/Kconfig
--- linux-2.6.39.orig/drivers/mtd/nand/Kconfig 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/mtd/nand/Kconfig 2011-08-23 14:22:33.407989933 +0200
++++ linux-2.6.39/drivers/mtd/nand/Kconfig 2011-08-24 18:17:24.000000000 +0200
@@ -531,4 +531,9 @@
Enables support for NAND Flash chips on the ST Microelectronics
Flexible Static Memory Controller (FSMC)
@@ -16876,7 +14400,7 @@ diff -Nur linux-2.6.39.orig/drivers/mtd/nand/Kconfig linux-2.6.39/drivers/mtd/na
endif # MTD_NAND
diff -Nur linux-2.6.39.orig/drivers/mtd/nand/Makefile linux-2.6.39/drivers/mtd/nand/Makefile
--- linux-2.6.39.orig/drivers/mtd/nand/Makefile 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/mtd/nand/Makefile 2011-08-22 16:22:41.217981942 +0200
++++ linux-2.6.39/drivers/mtd/nand/Makefile 2011-08-24 18:17:24.000000000 +0200
@@ -34,6 +34,7 @@
obj-$(CONFIG_MTD_NAND_PXA3xx) += pxa3xx_nand.o
obj-$(CONFIG_MTD_NAND_TMIO) += tmio_nand.o
@@ -16887,7 +14411,7 @@ diff -Nur linux-2.6.39.orig/drivers/mtd/nand/Makefile linux-2.6.39/drivers/mtd/n
obj-$(CONFIG_MTD_NAND_ORION) += orion_nand.o
diff -Nur linux-2.6.39.orig/drivers/mtd/nand/rb4xx_nand.c linux-2.6.39/drivers/mtd/nand/rb4xx_nand.c
--- linux-2.6.39.orig/drivers/mtd/nand/rb4xx_nand.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/mtd/nand/rb4xx_nand.c 2011-08-23 11:36:58.637983055 +0200
++++ linux-2.6.39/drivers/mtd/nand/rb4xx_nand.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,311 @@
+/*
+ * NAND flash driver for the MikroTik RouterBoard 4xx series
@@ -17202,7 +14726,7 @@ diff -Nur linux-2.6.39.orig/drivers/mtd/nand/rb4xx_nand.c linux-2.6.39/drivers/m
+MODULE_LICENSE("GPL v2");
diff -Nur linux-2.6.39.orig/drivers/mtd/nand/rb750_nand.c linux-2.6.39/drivers/mtd/nand/rb750_nand.c
--- linux-2.6.39.orig/drivers/mtd/nand/rb750_nand.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/mtd/nand/rb750_nand.c 2011-04-27 12:19:22.177661504 +0200
++++ linux-2.6.39/drivers/mtd/nand/rb750_nand.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,361 @@
+/*
+ * NAND flash driver for the MikroTik RouterBOARD 750
@@ -17567,7 +15091,7 @@ diff -Nur linux-2.6.39.orig/drivers/mtd/nand/rb750_nand.c linux-2.6.39/drivers/m
+MODULE_LICENSE("GPL v2");
diff -Nur linux-2.6.39.orig/drivers/mtd/wrt160nl_part.c linux-2.6.39/drivers/mtd/wrt160nl_part.c
--- linux-2.6.39.orig/drivers/mtd/wrt160nl_part.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/mtd/wrt160nl_part.c 2011-08-06 09:32:37.138017083 +0200
++++ linux-2.6.39/drivers/mtd/wrt160nl_part.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,190 @@
+/*
+ * Copyright (C) 2009 Christian Daniel <cd@maintech.de>
@@ -17759,9 +15283,610 @@ diff -Nur linux-2.6.39.orig/drivers/mtd/wrt160nl_part.c linux-2.6.39/drivers/mtd
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Christian Daniel <cd@maintech.de>");
+diff -Nur linux-2.6.39.orig/drivers/net/Kconfig linux-2.6.39/drivers/net/Kconfig
+--- linux-2.6.39.orig/drivers/net/Kconfig 2011-05-19 06:06:34.000000000 +0200
++++ linux-2.6.39/drivers/net/Kconfig 2011-08-24 18:17:24.000000000 +0200
+@@ -2071,6 +2071,8 @@
+
+ The safe and default value for this is N.
+
++source drivers/net/ag71xx/Kconfig
++
+ config DL2K
+ tristate "DL2000/TC902x-based Gigabit Ethernet support"
+ depends on PCI
+diff -Nur linux-2.6.39.orig/drivers/net/Makefile linux-2.6.39/drivers/net/Makefile
+--- linux-2.6.39.orig/drivers/net/Makefile 2011-05-19 06:06:34.000000000 +0200
++++ linux-2.6.39/drivers/net/Makefile 2011-08-24 18:17:24.000000000 +0200
+@@ -112,6 +112,7 @@
+ # end link order section
+ #
+
++obj-$(CONFIG_AG71XX) += ag71xx/
+ obj-$(CONFIG_SUNDANCE) += sundance.o
+ obj-$(CONFIG_HAMACHI) += hamachi.o
+ obj-$(CONFIG_NET) += Space.o loopback.o
+diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/Kconfig linux-2.6.39/drivers/net/ag71xx/Kconfig
+--- linux-2.6.39.orig/drivers/net/ag71xx/Kconfig 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.39/drivers/net/ag71xx/Kconfig 2011-08-24 18:17:24.000000000 +0200
+@@ -0,0 +1,33 @@
++config AG71XX
++ tristate "Atheros AR71xx built-in ethernet mac support"
++ depends on ATHEROS_AR71XX
++ select PHYLIB
++ help
++ If you wish to compile a kernel for AR71xx/91xx and enable
++ ethernet support, then you should always answer Y to this.
++
++if AG71XX
++
++config AG71XX_DEBUG
++ bool "Atheros AR71xx built-in ethernet driver debugging"
++ default n
++ help
++ Atheros AR71xx built-in ethernet driver debugging messages.
++
++config AG71XX_DEBUG_FS
++ bool "Atheros AR71xx built-in ethernet driver debugfs support"
++ depends on DEBUG_FS
++ default n
++ help
++ Say Y, if you need access to various statistics provided by
++ the ag71xx driver.
++
++config AG71XX_AR8216_SUPPORT
++ bool "special support for the Atheros AR8216 switch"
++ default n
++ default y if AR71XX_MACH_WNR2000 || AR71XX_MACH_MZK_W04NU
++ help
++ Say 'y' here if you want to enable special support for the
++ Atheros AR8216 switch found on some boards.
++
++endif
+diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/Makefile linux-2.6.39/drivers/net/ag71xx/Makefile
+--- linux-2.6.39.orig/drivers/net/ag71xx/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.39/drivers/net/ag71xx/Makefile 2011-08-24 18:17:24.000000000 +0200
+@@ -0,0 +1,15 @@
++#
++# Makefile for the Atheros AR71xx built-in ethernet macs
++#
++
++ag71xx-y += ag71xx_main.o
++ag71xx-y += ag71xx_ethtool.o
++ag71xx-y += ag71xx_phy.o
++ag71xx-y += ag71xx_mdio.o
++ag71xx-y += ag71xx_ar7240.o
++
++ag71xx-$(CONFIG_AG71XX_DEBUG_FS) += ag71xx_debugfs.o
++ag71xx-$(CONFIG_AG71XX_AR8216_SUPPORT) += ag71xx_ar8216.o
++
++obj-$(CONFIG_AG71XX) += ag71xx.o
++
+diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/ag71xx.h linux-2.6.39/drivers/net/ag71xx/ag71xx.h
+--- linux-2.6.39.orig/drivers/net/ag71xx/ag71xx.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.39/drivers/net/ag71xx/ag71xx.h 2011-08-24 18:17:24.000000000 +0200
+@@ -0,0 +1,518 @@
++/*
++ * Atheros AR71xx built-in ethernet mac driver
++ *
++ * Copyright (C) 2008-2010 Gabor Juhos <juhosg@openwrt.org>
++ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
++ *
++ * Based on Atheros' AG7100 driver
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 2 as published
++ * by the Free Software Foundation.
++ */
++
++#ifndef __AG71XX_H
++#define __AG71XX_H
++
++#include <linux/kernel.h>
++#include <linux/version.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/types.h>
++#include <linux/random.h>
++#include <linux/spinlock.h>
++#include <linux/interrupt.h>
++#include <linux/platform_device.h>
++#include <linux/ethtool.h>
++#include <linux/etherdevice.h>
++#include <linux/if_vlan.h>
++#include <linux/phy.h>
++#include <linux/skbuff.h>
++#include <linux/dma-mapping.h>
++#include <linux/workqueue.h>
++
++#include <linux/bitops.h>
++
++#include <asm/mach-ar71xx/ar71xx.h>
++#include <asm/mach-ar71xx/platform.h>
++
++#define AG71XX_DRV_NAME "ag71xx"
++#define AG71XX_DRV_VERSION "0.5.35"
++
++#define AG71XX_NAPI_WEIGHT 64
++#define AG71XX_OOM_REFILL (1 + HZ/10)
++
++#define AG71XX_INT_ERR (AG71XX_INT_RX_BE | AG71XX_INT_TX_BE)
++#define AG71XX_INT_TX (AG71XX_INT_TX_PS)
++#define AG71XX_INT_RX (AG71XX_INT_RX_PR | AG71XX_INT_RX_OF)
++
++#define AG71XX_INT_POLL (AG71XX_INT_RX | AG71XX_INT_TX)
++#define AG71XX_INT_INIT (AG71XX_INT_ERR | AG71XX_INT_POLL)
++
++#define AG71XX_TX_MTU_LEN 1540
++#define AG71XX_RX_PKT_RESERVE 64
++#define AG71XX_RX_PKT_SIZE \
++ (AG71XX_RX_PKT_RESERVE + ETH_FRAME_LEN + ETH_FCS_LEN + VLAN_HLEN)
++
++#define AG71XX_TX_RING_SIZE_DEFAULT 64
++#define AG71XX_RX_RING_SIZE_DEFAULT 128
++
++#define AG71XX_TX_RING_SIZE_MAX 256
++#define AG71XX_RX_RING_SIZE_MAX 256
++
++#ifdef CONFIG_AG71XX_DEBUG
++#define DBG(fmt, args...) printk(KERN_DEBUG fmt, ## args)
++#else
++#define DBG(fmt, args...) do {} while (0)
++#endif
++
++#define ag71xx_assert(_cond) \
++do { \
++ if (_cond) \
++ break; \
++ printk("%s,%d: assertion failed\n", __FILE__, __LINE__); \
++ BUG(); \
++} while (0)
++
++struct ag71xx_desc {
++ u32 data;
++ u32 ctrl;
++#define DESC_EMPTY BIT(31)
++#define DESC_MORE BIT(24)
++#define DESC_PKTLEN_M 0xfff
++ u32 next;
++ u32 pad;
++} __attribute__((aligned(4)));
++
++struct ag71xx_buf {
++ struct sk_buff *skb;
++ struct ag71xx_desc *desc;
++ dma_addr_t dma_addr;
++ unsigned long timestamp;
++};
++
++struct ag71xx_ring {
++ struct ag71xx_buf *buf;
++ u8 *descs_cpu;
++ dma_addr_t descs_dma;
++ unsigned int desc_size;
++ unsigned int curr;
++ unsigned int dirty;
++ unsigned int size;
++};
++
++struct ag71xx_mdio {
++ struct mii_bus *mii_bus;
++ int mii_irq[PHY_MAX_ADDR];
++ void __iomem *mdio_base;
++ struct ag71xx_mdio_platform_data *pdata;
++};
++
++struct ag71xx_int_stats {
++ unsigned long rx_pr;
++ unsigned long rx_be;
++ unsigned long rx_of;
++ unsigned long tx_ps;
++ unsigned long tx_be;
++ unsigned long tx_ur;
++ unsigned long total;
++};
++
++struct ag71xx_napi_stats {
++ unsigned long napi_calls;
++ unsigned long rx_count;
++ unsigned long rx_packets;
++ unsigned long rx_packets_max;
++ unsigned long tx_count;
++ unsigned long tx_packets;
++ unsigned long tx_packets_max;
++
++ unsigned long rx[AG71XX_NAPI_WEIGHT + 1];
++ unsigned long tx[AG71XX_NAPI_WEIGHT + 1];
++};
++
++struct ag71xx_debug {
++ struct dentry *debugfs_dir;
++
++ struct ag71xx_int_stats int_stats;
++ struct ag71xx_napi_stats napi_stats;
++};
++
++struct ag71xx {
++ void __iomem *mac_base;
++ void __iomem *mii_ctrl;
++
++ spinlock_t lock;
++ struct platform_device *pdev;
++ struct net_device *dev;
++ struct napi_struct napi;
++ u32 msg_enable;
++
++ struct ag71xx_desc *stop_desc;
++ dma_addr_t stop_desc_dma;
++
++ struct ag71xx_ring rx_ring;
++ struct ag71xx_ring tx_ring;
++
++ struct mii_bus *mii_bus;
++ struct phy_device *phy_dev;
++ void *phy_priv;
++
++ unsigned int link;
++ unsigned int speed;
++ int duplex;
++
++ struct work_struct restart_work;
++ struct delayed_work link_work;
++ struct timer_list oom_timer;
++
++#ifdef CONFIG_AG71XX_DEBUG_FS
++ struct ag71xx_debug debug;
++#endif
++};
++
++extern struct ethtool_ops ag71xx_ethtool_ops;
++void ag71xx_link_adjust(struct ag71xx *ag);
++
++int ag71xx_mdio_driver_init(void) __init;
++void ag71xx_mdio_driver_exit(void);
++
++int ag71xx_phy_connect(struct ag71xx *ag);
++void ag71xx_phy_disconnect(struct ag71xx *ag);
++void ag71xx_phy_start(struct ag71xx *ag);
++void ag71xx_phy_stop(struct ag71xx *ag);
++
++static inline struct ag71xx_platform_data *ag71xx_get_pdata(struct ag71xx *ag)
++{
++ return ag->pdev->dev.platform_data;
++}
++
++static inline int ag71xx_desc_empty(struct ag71xx_desc *desc)
++{
++ return (desc->ctrl & DESC_EMPTY) != 0;
++}
++
++static inline int ag71xx_desc_pktlen(struct ag71xx_desc *desc)
++{
++ return desc->ctrl & DESC_PKTLEN_M;
++}
++
++/* Register offsets */
++#define AG71XX_REG_MAC_CFG1 0x0000
++#define AG71XX_REG_MAC_CFG2 0x0004
++#define AG71XX_REG_MAC_IPG 0x0008
++#define AG71XX_REG_MAC_HDX 0x000c
++#define AG71XX_REG_MAC_MFL 0x0010
++#define AG71XX_REG_MII_CFG 0x0020
++#define AG71XX_REG_MII_CMD 0x0024
++#define AG71XX_REG_MII_ADDR 0x0028
++#define AG71XX_REG_MII_CTRL 0x002c
++#define AG71XX_REG_MII_STATUS 0x0030
++#define AG71XX_REG_MII_IND 0x0034
++#define AG71XX_REG_MAC_IFCTL 0x0038
++#define AG71XX_REG_MAC_ADDR1 0x0040
++#define AG71XX_REG_MAC_ADDR2 0x0044
++#define AG71XX_REG_FIFO_CFG0 0x0048
++#define AG71XX_REG_FIFO_CFG1 0x004c
++#define AG71XX_REG_FIFO_CFG2 0x0050
++#define AG71XX_REG_FIFO_CFG3 0x0054
++#define AG71XX_REG_FIFO_CFG4 0x0058
++#define AG71XX_REG_FIFO_CFG5 0x005c
++#define AG71XX_REG_FIFO_RAM0 0x0060
++#define AG71XX_REG_FIFO_RAM1 0x0064
++#define AG71XX_REG_FIFO_RAM2 0x0068
++#define AG71XX_REG_FIFO_RAM3 0x006c
++#define AG71XX_REG_FIFO_RAM4 0x0070
++#define AG71XX_REG_FIFO_RAM5 0x0074
++#define AG71XX_REG_FIFO_RAM6 0x0078
++#define AG71XX_REG_FIFO_RAM7 0x007c
++
++#define AG71XX_REG_TX_CTRL 0x0180
++#define AG71XX_REG_TX_DESC 0x0184
++#define AG71XX_REG_TX_STATUS 0x0188
++#define AG71XX_REG_RX_CTRL 0x018c
++#define AG71XX_REG_RX_DESC 0x0190
++#define AG71XX_REG_RX_STATUS 0x0194
++#define AG71XX_REG_INT_ENABLE 0x0198
++#define AG71XX_REG_INT_STATUS 0x019c
++
++#define AG71XX_REG_FIFO_DEPTH 0x01a8
++#define AG71XX_REG_RX_SM 0x01b0
++#define AG71XX_REG_TX_SM 0x01b4
++
++#define MAC_CFG1_TXE BIT(0) /* Tx Enable */
++#define MAC_CFG1_STX BIT(1) /* Synchronize Tx Enable */
++#define MAC_CFG1_RXE BIT(2) /* Rx Enable */
++#define MAC_CFG1_SRX BIT(3) /* Synchronize Rx Enable */
++#define MAC_CFG1_TFC BIT(4) /* Tx Flow Control Enable */
++#define MAC_CFG1_RFC BIT(5) /* Rx Flow Control Enable */
++#define MAC_CFG1_LB BIT(8) /* Loopback mode */
++#define MAC_CFG1_SR BIT(31) /* Soft Reset */
++
++#define MAC_CFG2_FDX BIT(0)
++#define MAC_CFG2_CRC_EN BIT(1)
++#define MAC_CFG2_PAD_CRC_EN BIT(2)
++#define MAC_CFG2_LEN_CHECK BIT(4)
++#define MAC_CFG2_HUGE_FRAME_EN BIT(5)
++#define MAC_CFG2_IF_1000 BIT(9)
++#define MAC_CFG2_IF_10_100 BIT(8)
++
++#define FIFO_CFG0_WTM BIT(0) /* Watermark Module */
++#define FIFO_CFG0_RXS BIT(1) /* Rx System Module */
++#define FIFO_CFG0_RXF BIT(2) /* Rx Fabric Module */
++#define FIFO_CFG0_TXS BIT(3) /* Tx System Module */
++#define FIFO_CFG0_TXF BIT(4) /* Tx Fabric Module */
++#define FIFO_CFG0_ALL (FIFO_CFG0_WTM | FIFO_CFG0_RXS | FIFO_CFG0_RXF \
++ | FIFO_CFG0_TXS | FIFO_CFG0_TXF)
++
++#define FIFO_CFG0_ENABLE_SHIFT 8
++
++#define FIFO_CFG4_DE BIT(0) /* Drop Event */
++#define FIFO_CFG4_DV BIT(1) /* RX_DV Event */
++#define FIFO_CFG4_FC BIT(2) /* False Carrier */
++#define FIFO_CFG4_CE BIT(3) /* Code Error */
++#define FIFO_CFG4_CR BIT(4) /* CRC error */
++#define FIFO_CFG4_LM BIT(5) /* Length Mismatch */
++#define FIFO_CFG4_LO BIT(6) /* Length out of range */
++#define FIFO_CFG4_OK BIT(7) /* Packet is OK */
++#define FIFO_CFG4_MC BIT(8) /* Multicast Packet */
++#define FIFO_CFG4_BC BIT(9) /* Broadcast Packet */
++#define FIFO_CFG4_DR BIT(10) /* Dribble */
++#define FIFO_CFG4_LE BIT(11) /* Long Event */
++#define FIFO_CFG4_CF BIT(12) /* Control Frame */
++#define FIFO_CFG4_PF BIT(13) /* Pause Frame */
++#define FIFO_CFG4_UO BIT(14) /* Unsupported Opcode */
++#define FIFO_CFG4_VT BIT(15) /* VLAN tag detected */
++#define FIFO_CFG4_FT BIT(16) /* Frame Truncated */
++#define FIFO_CFG4_UC BIT(17) /* Unicast Packet */
++
++#define FIFO_CFG5_DE BIT(0) /* Drop Event */
++#define FIFO_CFG5_DV BIT(1) /* RX_DV Event */
++#define FIFO_CFG5_FC BIT(2) /* False Carrier */
++#define FIFO_CFG5_CE BIT(3) /* Code Error */
++#define FIFO_CFG5_LM BIT(4) /* Length Mismatch */
++#define FIFO_CFG5_LO BIT(5) /* Length Out of Range */
++#define FIFO_CFG5_OK BIT(6) /* Packet is OK */
++#define FIFO_CFG5_MC BIT(7) /* Multicast Packet */
++#define FIFO_CFG5_BC BIT(8) /* Broadcast Packet */
++#define FIFO_CFG5_DR BIT(9) /* Dribble */
++#define FIFO_CFG5_CF BIT(10) /* Control Frame */
++#define FIFO_CFG5_PF BIT(11) /* Pause Frame */
++#define FIFO_CFG5_UO BIT(12) /* Unsupported Opcode */
++#define FIFO_CFG5_VT BIT(13) /* VLAN tag detected */
++#define FIFO_CFG5_LE BIT(14) /* Long Event */
++#define FIFO_CFG5_FT BIT(15) /* Frame Truncated */
++#define FIFO_CFG5_16 BIT(16) /* unknown */
++#define FIFO_CFG5_17 BIT(17) /* unknown */
++#define FIFO_CFG5_SF BIT(18) /* Short Frame */
++#define FIFO_CFG5_BM BIT(19) /* Byte Mode */
++
++#define AG71XX_INT_TX_PS BIT(0)
++#define AG71XX_INT_TX_UR BIT(1)
++#define AG71XX_INT_TX_BE BIT(3)
++#define AG71XX_INT_RX_PR BIT(4)
++#define AG71XX_INT_RX_OF BIT(6)
++#define AG71XX_INT_RX_BE BIT(7)
++
++#define MAC_IFCTL_SPEED BIT(16)
++
++#define MII_CFG_CLK_DIV_4 0
++#define MII_CFG_CLK_DIV_6 2
++#define MII_CFG_CLK_DIV_8 3
++#define MII_CFG_CLK_DIV_10 4
++#define MII_CFG_CLK_DIV_14 5
++#define MII_CFG_CLK_DIV_20 6
++#define MII_CFG_CLK_DIV_28 7
++#define MII_CFG_RESET BIT(31)
++
++#define MII_CMD_WRITE 0x0
++#define MII_CMD_READ 0x1
++#define MII_ADDR_SHIFT 8
++#define MII_IND_BUSY BIT(0)
++#define MII_IND_INVALID BIT(2)
++
++#define TX_CTRL_TXE BIT(0) /* Tx Enable */
++
++#define TX_STATUS_PS BIT(0) /* Packet Sent */
++#define TX_STATUS_UR BIT(1) /* Tx Underrun */
++#define TX_STATUS_BE BIT(3) /* Bus Error */
++
++#define RX_CTRL_RXE BIT(0) /* Rx Enable */
++
++#define RX_STATUS_PR BIT(0) /* Packet Received */
++#define RX_STATUS_OF BIT(2) /* Rx Overflow */
++#define RX_STATUS_BE BIT(3) /* Bus Error */
++
++#define MII_CTRL_IF_MASK 3
++#define MII_CTRL_SPEED_SHIFT 4
++#define MII_CTRL_SPEED_MASK 3
++#define MII_CTRL_SPEED_10 0
++#define MII_CTRL_SPEED_100 1
++#define MII_CTRL_SPEED_1000 2
++
++static inline void ag71xx_check_reg_offset(struct ag71xx *ag, unsigned reg)
++{
++ switch (reg) {
++ case AG71XX_REG_MAC_CFG1 ... AG71XX_REG_MAC_MFL:
++ case AG71XX_REG_MAC_IFCTL ... AG71XX_REG_INT_STATUS:
++ case AG71XX_REG_MII_CFG:
++ break;
++
++ default:
++ BUG();
++ }
++}
++
++static inline void ag71xx_wr(struct ag71xx *ag, unsigned reg, u32 value)
++{
++ ag71xx_check_reg_offset(ag, reg);
++
++ __raw_writel(value, ag->mac_base + reg);
++ /* flush write */
++ (void) __raw_readl(ag->mac_base + reg);
++}
++
++static inline u32 ag71xx_rr(struct ag71xx *ag, unsigned reg)
++{
++ ag71xx_check_reg_offset(ag, reg);
++
++ return __raw_readl(ag->mac_base + reg);
++}
++
++static inline void ag71xx_sb(struct ag71xx *ag, unsigned reg, u32 mask)
++{
++ void __iomem *r;
++
++ ag71xx_check_reg_offset(ag, reg);
++
++ r = ag->mac_base + reg;
++ __raw_writel(__raw_readl(r) | mask, r);
++ /* flush write */
++ (void)__raw_readl(r);
++}
++
++static inline void ag71xx_cb(struct ag71xx *ag, unsigned reg, u32 mask)
++{
++ void __iomem *r;
++
++ ag71xx_check_reg_offset(ag, reg);
++
++ r = ag->mac_base + reg;
++ __raw_writel(__raw_readl(r) & ~mask, r);
++ /* flush write */
++ (void) __raw_readl(r);
++}
++
++static inline void ag71xx_int_enable(struct ag71xx *ag, u32 ints)
++{
++ ag71xx_sb(ag, AG71XX_REG_INT_ENABLE, ints);
++}
++
++static inline void ag71xx_int_disable(struct ag71xx *ag, u32 ints)
++{
++ ag71xx_cb(ag, AG71XX_REG_INT_ENABLE, ints);
++}
++
++static inline void ag71xx_mii_ctrl_wr(struct ag71xx *ag, u32 value)
++{
++ struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag);
++
++ if (pdata->is_ar724x)
++ return;
++
++ __raw_writel(value, ag->mii_ctrl);
++
++ /* flush write */
++ __raw_readl(ag->mii_ctrl);
++}
++
++static inline u32 ag71xx_mii_ctrl_rr(struct ag71xx *ag)
++{
++ struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag);
++
++ if (pdata->is_ar724x)
++ return 0xffffffff;
++
++ return __raw_readl(ag->mii_ctrl);
++}
++
++static inline void ag71xx_mii_ctrl_set_if(struct ag71xx *ag,
++ unsigned int mii_if)
++{
++ u32 t;
++
++ t = ag71xx_mii_ctrl_rr(ag);
++ t &= ~(MII_CTRL_IF_MASK);
++ t |= (mii_if & MII_CTRL_IF_MASK);
++ ag71xx_mii_ctrl_wr(ag, t);
++}
++
++static inline void ag71xx_mii_ctrl_set_speed(struct ag71xx *ag,
++ unsigned int speed)
++{
++ u32 t;
++
++ t = ag71xx_mii_ctrl_rr(ag);
++ t &= ~(MII_CTRL_SPEED_MASK << MII_CTRL_SPEED_SHIFT);
++ t |= (speed & MII_CTRL_SPEED_MASK) << MII_CTRL_SPEED_SHIFT;
++ ag71xx_mii_ctrl_wr(ag, t);
++}
++
++#ifdef CONFIG_AG71XX_AR8216_SUPPORT
++void ag71xx_add_ar8216_header(struct ag71xx *ag, struct sk_buff *skb);
++int ag71xx_remove_ar8216_header(struct ag71xx *ag, struct sk_buff *skb,
++ int pktlen);
++static inline int ag71xx_has_ar8216(struct ag71xx *ag)
++{
++ return ag71xx_get_pdata(ag)->has_ar8216;
++}
++#else
++static inline void ag71xx_add_ar8216_header(struct ag71xx *ag,
++ struct sk_buff *skb)
++{
++}
++
++static inline int ag71xx_remove_ar8216_header(struct ag71xx *ag,
++ struct sk_buff *skb,
++ int pktlen)
++{
++ return 0;
++}
++static inline int ag71xx_has_ar8216(struct ag71xx *ag)
++{
++ return 0;
++}
++#endif
++
++#ifdef CONFIG_AG71XX_DEBUG_FS
++int ag71xx_debugfs_root_init(void);
++void ag71xx_debugfs_root_exit(void);
++int ag71xx_debugfs_init(struct ag71xx *ag);
++void ag71xx_debugfs_exit(struct ag71xx *ag);
++void ag71xx_debugfs_update_int_stats(struct ag71xx *ag, u32 status);
++void ag71xx_debugfs_update_napi_stats(struct ag71xx *ag, int rx, int tx);
++#else
++static inline int ag71xx_debugfs_root_init(void) { return 0; }
++static inline void ag71xx_debugfs_root_exit(void) {}
++static inline int ag71xx_debugfs_init(struct ag71xx *ag) { return 0; }
++static inline void ag71xx_debugfs_exit(struct ag71xx *ag) {}
++static inline void ag71xx_debugfs_update_int_stats(struct ag71xx *ag,
++ u32 status) {}
++static inline void ag71xx_debugfs_update_napi_stats(struct ag71xx *ag,
++ int rx, int tx) {}
++#endif /* CONFIG_AG71XX_DEBUG_FS */
++
++void ag71xx_ar7240_start(struct ag71xx *ag);
++void ag71xx_ar7240_stop(struct ag71xx *ag);
++int ag71xx_ar7240_init(struct ag71xx *ag);
++void ag71xx_ar7240_cleanup(struct ag71xx *ag);
++
++int ag71xx_mdio_mii_read(struct ag71xx_mdio *am, int addr, int reg);
++void ag71xx_mdio_mii_write(struct ag71xx_mdio *am, int addr, int reg, u16 val);
++
++u16 ar7240sw_phy_read(struct mii_bus *mii, unsigned phy_addr,
++ unsigned reg_addr);
++int ar7240sw_phy_write(struct mii_bus *mii, unsigned phy_addr,
++ unsigned reg_addr, u16 reg_val);
++
++#endif /* _AG71XX_H */
diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_ar7240.c linux-2.6.39/drivers/net/ag71xx/ag71xx_ar7240.c
--- linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_ar7240.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/net/ag71xx/ag71xx_ar7240.c 2011-08-06 09:32:37.298018216 +0200
++++ linux-2.6.39/drivers/net/ag71xx/ag71xx_ar7240.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,913 @@
+/*
+ * Driver for the built-in ethernet switch of the Atheros AR7240 SoC
@@ -18678,7 +16803,7 @@ diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_ar7240.c linux-2.6.39/driv
+}
diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_ar8216.c linux-2.6.39/drivers/net/ag71xx/ag71xx_ar8216.c
--- linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_ar8216.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/net/ag71xx/ag71xx_ar8216.c 2011-04-27 12:19:22.257663952 +0200
++++ linux-2.6.39/drivers/net/ag71xx/ag71xx_ar8216.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,44 @@
+/*
+ * Atheros AR71xx built-in ethernet mac driver
@@ -18726,7 +16851,7 @@ diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_ar8216.c linux-2.6.39/driv
+}
diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_debugfs.c linux-2.6.39/drivers/net/ag71xx/ag71xx_debugfs.c
--- linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_debugfs.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/net/ag71xx/ag71xx_debugfs.c 2011-08-06 09:32:37.298018216 +0200
++++ linux-2.6.39/drivers/net/ag71xx/ag71xx_debugfs.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,280 @@
+/*
+ * Atheros AR71xx built-in ethernet mac driver
@@ -19010,7 +17135,7 @@ diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_debugfs.c linux-2.6.39/dri
+}
diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_ethtool.c linux-2.6.39/drivers/net/ag71xx/ag71xx_ethtool.c
--- linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_ethtool.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/net/ag71xx/ag71xx_ethtool.c 2011-08-06 09:32:37.308017908 +0200
++++ linux-2.6.39/drivers/net/ag71xx/ag71xx_ethtool.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,124 @@
+/*
+ * Atheros AR71xx built-in ethernet mac driver
@@ -19136,531 +17261,9 @@ diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_ethtool.c linux-2.6.39/dri
+ .set_ringparam = ag71xx_ethtool_set_ringparam,
+ .get_link = ethtool_op_get_link,
+};
-diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/ag71xx.h linux-2.6.39/drivers/net/ag71xx/ag71xx.h
---- linux-2.6.39.orig/drivers/net/ag71xx/ag71xx.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/net/ag71xx/ag71xx.h 2011-08-22 07:40:12.160480642 +0200
-@@ -0,0 +1,518 @@
-+/*
-+ * Atheros AR71xx built-in ethernet mac driver
-+ *
-+ * Copyright (C) 2008-2010 Gabor Juhos <juhosg@openwrt.org>
-+ * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
-+ *
-+ * Based on Atheros' AG7100 driver
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 as published
-+ * by the Free Software Foundation.
-+ */
-+
-+#ifndef __AG71XX_H
-+#define __AG71XX_H
-+
-+#include <linux/kernel.h>
-+#include <linux/version.h>
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/types.h>
-+#include <linux/random.h>
-+#include <linux/spinlock.h>
-+#include <linux/interrupt.h>
-+#include <linux/platform_device.h>
-+#include <linux/ethtool.h>
-+#include <linux/etherdevice.h>
-+#include <linux/if_vlan.h>
-+#include <linux/phy.h>
-+#include <linux/skbuff.h>
-+#include <linux/dma-mapping.h>
-+#include <linux/workqueue.h>
-+
-+#include <linux/bitops.h>
-+
-+#include <asm/mach-ar71xx/ar71xx.h>
-+#include <asm/mach-ar71xx/platform.h>
-+
-+#define AG71XX_DRV_NAME "ag71xx"
-+#define AG71XX_DRV_VERSION "0.5.35"
-+
-+#define AG71XX_NAPI_WEIGHT 64
-+#define AG71XX_OOM_REFILL (1 + HZ/10)
-+
-+#define AG71XX_INT_ERR (AG71XX_INT_RX_BE | AG71XX_INT_TX_BE)
-+#define AG71XX_INT_TX (AG71XX_INT_TX_PS)
-+#define AG71XX_INT_RX (AG71XX_INT_RX_PR | AG71XX_INT_RX_OF)
-+
-+#define AG71XX_INT_POLL (AG71XX_INT_RX | AG71XX_INT_TX)
-+#define AG71XX_INT_INIT (AG71XX_INT_ERR | AG71XX_INT_POLL)
-+
-+#define AG71XX_TX_MTU_LEN 1540
-+#define AG71XX_RX_PKT_RESERVE 64
-+#define AG71XX_RX_PKT_SIZE \
-+ (AG71XX_RX_PKT_RESERVE + ETH_FRAME_LEN + ETH_FCS_LEN + VLAN_HLEN)
-+
-+#define AG71XX_TX_RING_SIZE_DEFAULT 64
-+#define AG71XX_RX_RING_SIZE_DEFAULT 128
-+
-+#define AG71XX_TX_RING_SIZE_MAX 256
-+#define AG71XX_RX_RING_SIZE_MAX 256
-+
-+#ifdef CONFIG_AG71XX_DEBUG
-+#define DBG(fmt, args...) printk(KERN_DEBUG fmt, ## args)
-+#else
-+#define DBG(fmt, args...) do {} while (0)
-+#endif
-+
-+#define ag71xx_assert(_cond) \
-+do { \
-+ if (_cond) \
-+ break; \
-+ printk("%s,%d: assertion failed\n", __FILE__, __LINE__); \
-+ BUG(); \
-+} while (0)
-+
-+struct ag71xx_desc {
-+ u32 data;
-+ u32 ctrl;
-+#define DESC_EMPTY BIT(31)
-+#define DESC_MORE BIT(24)
-+#define DESC_PKTLEN_M 0xfff
-+ u32 next;
-+ u32 pad;
-+} __attribute__((aligned(4)));
-+
-+struct ag71xx_buf {
-+ struct sk_buff *skb;
-+ struct ag71xx_desc *desc;
-+ dma_addr_t dma_addr;
-+ unsigned long timestamp;
-+};
-+
-+struct ag71xx_ring {
-+ struct ag71xx_buf *buf;
-+ u8 *descs_cpu;
-+ dma_addr_t descs_dma;
-+ unsigned int desc_size;
-+ unsigned int curr;
-+ unsigned int dirty;
-+ unsigned int size;
-+};
-+
-+struct ag71xx_mdio {
-+ struct mii_bus *mii_bus;
-+ int mii_irq[PHY_MAX_ADDR];
-+ void __iomem *mdio_base;
-+ struct ag71xx_mdio_platform_data *pdata;
-+};
-+
-+struct ag71xx_int_stats {
-+ unsigned long rx_pr;
-+ unsigned long rx_be;
-+ unsigned long rx_of;
-+ unsigned long tx_ps;
-+ unsigned long tx_be;
-+ unsigned long tx_ur;
-+ unsigned long total;
-+};
-+
-+struct ag71xx_napi_stats {
-+ unsigned long napi_calls;
-+ unsigned long rx_count;
-+ unsigned long rx_packets;
-+ unsigned long rx_packets_max;
-+ unsigned long tx_count;
-+ unsigned long tx_packets;
-+ unsigned long tx_packets_max;
-+
-+ unsigned long rx[AG71XX_NAPI_WEIGHT + 1];
-+ unsigned long tx[AG71XX_NAPI_WEIGHT + 1];
-+};
-+
-+struct ag71xx_debug {
-+ struct dentry *debugfs_dir;
-+
-+ struct ag71xx_int_stats int_stats;
-+ struct ag71xx_napi_stats napi_stats;
-+};
-+
-+struct ag71xx {
-+ void __iomem *mac_base;
-+ void __iomem *mii_ctrl;
-+
-+ spinlock_t lock;
-+ struct platform_device *pdev;
-+ struct net_device *dev;
-+ struct napi_struct napi;
-+ u32 msg_enable;
-+
-+ struct ag71xx_desc *stop_desc;
-+ dma_addr_t stop_desc_dma;
-+
-+ struct ag71xx_ring rx_ring;
-+ struct ag71xx_ring tx_ring;
-+
-+ struct mii_bus *mii_bus;
-+ struct phy_device *phy_dev;
-+ void *phy_priv;
-+
-+ unsigned int link;
-+ unsigned int speed;
-+ int duplex;
-+
-+ struct work_struct restart_work;
-+ struct delayed_work link_work;
-+ struct timer_list oom_timer;
-+
-+#ifdef CONFIG_AG71XX_DEBUG_FS
-+ struct ag71xx_debug debug;
-+#endif
-+};
-+
-+extern struct ethtool_ops ag71xx_ethtool_ops;
-+void ag71xx_link_adjust(struct ag71xx *ag);
-+
-+int ag71xx_mdio_driver_init(void) __init;
-+void ag71xx_mdio_driver_exit(void);
-+
-+int ag71xx_phy_connect(struct ag71xx *ag);
-+void ag71xx_phy_disconnect(struct ag71xx *ag);
-+void ag71xx_phy_start(struct ag71xx *ag);
-+void ag71xx_phy_stop(struct ag71xx *ag);
-+
-+static inline struct ag71xx_platform_data *ag71xx_get_pdata(struct ag71xx *ag)
-+{
-+ return ag->pdev->dev.platform_data;
-+}
-+
-+static inline int ag71xx_desc_empty(struct ag71xx_desc *desc)
-+{
-+ return (desc->ctrl & DESC_EMPTY) != 0;
-+}
-+
-+static inline int ag71xx_desc_pktlen(struct ag71xx_desc *desc)
-+{
-+ return desc->ctrl & DESC_PKTLEN_M;
-+}
-+
-+/* Register offsets */
-+#define AG71XX_REG_MAC_CFG1 0x0000
-+#define AG71XX_REG_MAC_CFG2 0x0004
-+#define AG71XX_REG_MAC_IPG 0x0008
-+#define AG71XX_REG_MAC_HDX 0x000c
-+#define AG71XX_REG_MAC_MFL 0x0010
-+#define AG71XX_REG_MII_CFG 0x0020
-+#define AG71XX_REG_MII_CMD 0x0024
-+#define AG71XX_REG_MII_ADDR 0x0028
-+#define AG71XX_REG_MII_CTRL 0x002c
-+#define AG71XX_REG_MII_STATUS 0x0030
-+#define AG71XX_REG_MII_IND 0x0034
-+#define AG71XX_REG_MAC_IFCTL 0x0038
-+#define AG71XX_REG_MAC_ADDR1 0x0040
-+#define AG71XX_REG_MAC_ADDR2 0x0044
-+#define AG71XX_REG_FIFO_CFG0 0x0048
-+#define AG71XX_REG_FIFO_CFG1 0x004c
-+#define AG71XX_REG_FIFO_CFG2 0x0050
-+#define AG71XX_REG_FIFO_CFG3 0x0054
-+#define AG71XX_REG_FIFO_CFG4 0x0058
-+#define AG71XX_REG_FIFO_CFG5 0x005c
-+#define AG71XX_REG_FIFO_RAM0 0x0060
-+#define AG71XX_REG_FIFO_RAM1 0x0064
-+#define AG71XX_REG_FIFO_RAM2 0x0068
-+#define AG71XX_REG_FIFO_RAM3 0x006c
-+#define AG71XX_REG_FIFO_RAM4 0x0070
-+#define AG71XX_REG_FIFO_RAM5 0x0074
-+#define AG71XX_REG_FIFO_RAM6 0x0078
-+#define AG71XX_REG_FIFO_RAM7 0x007c
-+
-+#define AG71XX_REG_TX_CTRL 0x0180
-+#define AG71XX_REG_TX_DESC 0x0184
-+#define AG71XX_REG_TX_STATUS 0x0188
-+#define AG71XX_REG_RX_CTRL 0x018c
-+#define AG71XX_REG_RX_DESC 0x0190
-+#define AG71XX_REG_RX_STATUS 0x0194
-+#define AG71XX_REG_INT_ENABLE 0x0198
-+#define AG71XX_REG_INT_STATUS 0x019c
-+
-+#define AG71XX_REG_FIFO_DEPTH 0x01a8
-+#define AG71XX_REG_RX_SM 0x01b0
-+#define AG71XX_REG_TX_SM 0x01b4
-+
-+#define MAC_CFG1_TXE BIT(0) /* Tx Enable */
-+#define MAC_CFG1_STX BIT(1) /* Synchronize Tx Enable */
-+#define MAC_CFG1_RXE BIT(2) /* Rx Enable */
-+#define MAC_CFG1_SRX BIT(3) /* Synchronize Rx Enable */
-+#define MAC_CFG1_TFC BIT(4) /* Tx Flow Control Enable */
-+#define MAC_CFG1_RFC BIT(5) /* Rx Flow Control Enable */
-+#define MAC_CFG1_LB BIT(8) /* Loopback mode */
-+#define MAC_CFG1_SR BIT(31) /* Soft Reset */
-+
-+#define MAC_CFG2_FDX BIT(0)
-+#define MAC_CFG2_CRC_EN BIT(1)
-+#define MAC_CFG2_PAD_CRC_EN BIT(2)
-+#define MAC_CFG2_LEN_CHECK BIT(4)
-+#define MAC_CFG2_HUGE_FRAME_EN BIT(5)
-+#define MAC_CFG2_IF_1000 BIT(9)
-+#define MAC_CFG2_IF_10_100 BIT(8)
-+
-+#define FIFO_CFG0_WTM BIT(0) /* Watermark Module */
-+#define FIFO_CFG0_RXS BIT(1) /* Rx System Module */
-+#define FIFO_CFG0_RXF BIT(2) /* Rx Fabric Module */
-+#define FIFO_CFG0_TXS BIT(3) /* Tx System Module */
-+#define FIFO_CFG0_TXF BIT(4) /* Tx Fabric Module */
-+#define FIFO_CFG0_ALL (FIFO_CFG0_WTM | FIFO_CFG0_RXS | FIFO_CFG0_RXF \
-+ | FIFO_CFG0_TXS | FIFO_CFG0_TXF)
-+
-+#define FIFO_CFG0_ENABLE_SHIFT 8
-+
-+#define FIFO_CFG4_DE BIT(0) /* Drop Event */
-+#define FIFO_CFG4_DV BIT(1) /* RX_DV Event */
-+#define FIFO_CFG4_FC BIT(2) /* False Carrier */
-+#define FIFO_CFG4_CE BIT(3) /* Code Error */
-+#define FIFO_CFG4_CR BIT(4) /* CRC error */
-+#define FIFO_CFG4_LM BIT(5) /* Length Mismatch */
-+#define FIFO_CFG4_LO BIT(6) /* Length out of range */
-+#define FIFO_CFG4_OK BIT(7) /* Packet is OK */
-+#define FIFO_CFG4_MC BIT(8) /* Multicast Packet */
-+#define FIFO_CFG4_BC BIT(9) /* Broadcast Packet */
-+#define FIFO_CFG4_DR BIT(10) /* Dribble */
-+#define FIFO_CFG4_LE BIT(11) /* Long Event */
-+#define FIFO_CFG4_CF BIT(12) /* Control Frame */
-+#define FIFO_CFG4_PF BIT(13) /* Pause Frame */
-+#define FIFO_CFG4_UO BIT(14) /* Unsupported Opcode */
-+#define FIFO_CFG4_VT BIT(15) /* VLAN tag detected */
-+#define FIFO_CFG4_FT BIT(16) /* Frame Truncated */
-+#define FIFO_CFG4_UC BIT(17) /* Unicast Packet */
-+
-+#define FIFO_CFG5_DE BIT(0) /* Drop Event */
-+#define FIFO_CFG5_DV BIT(1) /* RX_DV Event */
-+#define FIFO_CFG5_FC BIT(2) /* False Carrier */
-+#define FIFO_CFG5_CE BIT(3) /* Code Error */
-+#define FIFO_CFG5_LM BIT(4) /* Length Mismatch */
-+#define FIFO_CFG5_LO BIT(5) /* Length Out of Range */
-+#define FIFO_CFG5_OK BIT(6) /* Packet is OK */
-+#define FIFO_CFG5_MC BIT(7) /* Multicast Packet */
-+#define FIFO_CFG5_BC BIT(8) /* Broadcast Packet */
-+#define FIFO_CFG5_DR BIT(9) /* Dribble */
-+#define FIFO_CFG5_CF BIT(10) /* Control Frame */
-+#define FIFO_CFG5_PF BIT(11) /* Pause Frame */
-+#define FIFO_CFG5_UO BIT(12) /* Unsupported Opcode */
-+#define FIFO_CFG5_VT BIT(13) /* VLAN tag detected */
-+#define FIFO_CFG5_LE BIT(14) /* Long Event */
-+#define FIFO_CFG5_FT BIT(15) /* Frame Truncated */
-+#define FIFO_CFG5_16 BIT(16) /* unknown */
-+#define FIFO_CFG5_17 BIT(17) /* unknown */
-+#define FIFO_CFG5_SF BIT(18) /* Short Frame */
-+#define FIFO_CFG5_BM BIT(19) /* Byte Mode */
-+
-+#define AG71XX_INT_TX_PS BIT(0)
-+#define AG71XX_INT_TX_UR BIT(1)
-+#define AG71XX_INT_TX_BE BIT(3)
-+#define AG71XX_INT_RX_PR BIT(4)
-+#define AG71XX_INT_RX_OF BIT(6)
-+#define AG71XX_INT_RX_BE BIT(7)
-+
-+#define MAC_IFCTL_SPEED BIT(16)
-+
-+#define MII_CFG_CLK_DIV_4 0
-+#define MII_CFG_CLK_DIV_6 2
-+#define MII_CFG_CLK_DIV_8 3
-+#define MII_CFG_CLK_DIV_10 4
-+#define MII_CFG_CLK_DIV_14 5
-+#define MII_CFG_CLK_DIV_20 6
-+#define MII_CFG_CLK_DIV_28 7
-+#define MII_CFG_RESET BIT(31)
-+
-+#define MII_CMD_WRITE 0x0
-+#define MII_CMD_READ 0x1
-+#define MII_ADDR_SHIFT 8
-+#define MII_IND_BUSY BIT(0)
-+#define MII_IND_INVALID BIT(2)
-+
-+#define TX_CTRL_TXE BIT(0) /* Tx Enable */
-+
-+#define TX_STATUS_PS BIT(0) /* Packet Sent */
-+#define TX_STATUS_UR BIT(1) /* Tx Underrun */
-+#define TX_STATUS_BE BIT(3) /* Bus Error */
-+
-+#define RX_CTRL_RXE BIT(0) /* Rx Enable */
-+
-+#define RX_STATUS_PR BIT(0) /* Packet Received */
-+#define RX_STATUS_OF BIT(2) /* Rx Overflow */
-+#define RX_STATUS_BE BIT(3) /* Bus Error */
-+
-+#define MII_CTRL_IF_MASK 3
-+#define MII_CTRL_SPEED_SHIFT 4
-+#define MII_CTRL_SPEED_MASK 3
-+#define MII_CTRL_SPEED_10 0
-+#define MII_CTRL_SPEED_100 1
-+#define MII_CTRL_SPEED_1000 2
-+
-+static inline void ag71xx_check_reg_offset(struct ag71xx *ag, unsigned reg)
-+{
-+ switch (reg) {
-+ case AG71XX_REG_MAC_CFG1 ... AG71XX_REG_MAC_MFL:
-+ case AG71XX_REG_MAC_IFCTL ... AG71XX_REG_INT_STATUS:
-+ case AG71XX_REG_MII_CFG:
-+ break;
-+
-+ default:
-+ BUG();
-+ }
-+}
-+
-+static inline void ag71xx_wr(struct ag71xx *ag, unsigned reg, u32 value)
-+{
-+ ag71xx_check_reg_offset(ag, reg);
-+
-+ __raw_writel(value, ag->mac_base + reg);
-+ /* flush write */
-+ (void) __raw_readl(ag->mac_base + reg);
-+}
-+
-+static inline u32 ag71xx_rr(struct ag71xx *ag, unsigned reg)
-+{
-+ ag71xx_check_reg_offset(ag, reg);
-+
-+ return __raw_readl(ag->mac_base + reg);
-+}
-+
-+static inline void ag71xx_sb(struct ag71xx *ag, unsigned reg, u32 mask)
-+{
-+ void __iomem *r;
-+
-+ ag71xx_check_reg_offset(ag, reg);
-+
-+ r = ag->mac_base + reg;
-+ __raw_writel(__raw_readl(r) | mask, r);
-+ /* flush write */
-+ (void)__raw_readl(r);
-+}
-+
-+static inline void ag71xx_cb(struct ag71xx *ag, unsigned reg, u32 mask)
-+{
-+ void __iomem *r;
-+
-+ ag71xx_check_reg_offset(ag, reg);
-+
-+ r = ag->mac_base + reg;
-+ __raw_writel(__raw_readl(r) & ~mask, r);
-+ /* flush write */
-+ (void) __raw_readl(r);
-+}
-+
-+static inline void ag71xx_int_enable(struct ag71xx *ag, u32 ints)
-+{
-+ ag71xx_sb(ag, AG71XX_REG_INT_ENABLE, ints);
-+}
-+
-+static inline void ag71xx_int_disable(struct ag71xx *ag, u32 ints)
-+{
-+ ag71xx_cb(ag, AG71XX_REG_INT_ENABLE, ints);
-+}
-+
-+static inline void ag71xx_mii_ctrl_wr(struct ag71xx *ag, u32 value)
-+{
-+ struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag);
-+
-+ if (pdata->is_ar724x)
-+ return;
-+
-+ __raw_writel(value, ag->mii_ctrl);
-+
-+ /* flush write */
-+ __raw_readl(ag->mii_ctrl);
-+}
-+
-+static inline u32 ag71xx_mii_ctrl_rr(struct ag71xx *ag)
-+{
-+ struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag);
-+
-+ if (pdata->is_ar724x)
-+ return 0xffffffff;
-+
-+ return __raw_readl(ag->mii_ctrl);
-+}
-+
-+static inline void ag71xx_mii_ctrl_set_if(struct ag71xx *ag,
-+ unsigned int mii_if)
-+{
-+ u32 t;
-+
-+ t = ag71xx_mii_ctrl_rr(ag);
-+ t &= ~(MII_CTRL_IF_MASK);
-+ t |= (mii_if & MII_CTRL_IF_MASK);
-+ ag71xx_mii_ctrl_wr(ag, t);
-+}
-+
-+static inline void ag71xx_mii_ctrl_set_speed(struct ag71xx *ag,
-+ unsigned int speed)
-+{
-+ u32 t;
-+
-+ t = ag71xx_mii_ctrl_rr(ag);
-+ t &= ~(MII_CTRL_SPEED_MASK << MII_CTRL_SPEED_SHIFT);
-+ t |= (speed & MII_CTRL_SPEED_MASK) << MII_CTRL_SPEED_SHIFT;
-+ ag71xx_mii_ctrl_wr(ag, t);
-+}
-+
-+#ifdef CONFIG_AG71XX_AR8216_SUPPORT
-+void ag71xx_add_ar8216_header(struct ag71xx *ag, struct sk_buff *skb);
-+int ag71xx_remove_ar8216_header(struct ag71xx *ag, struct sk_buff *skb,
-+ int pktlen);
-+static inline int ag71xx_has_ar8216(struct ag71xx *ag)
-+{
-+ return ag71xx_get_pdata(ag)->has_ar8216;
-+}
-+#else
-+static inline void ag71xx_add_ar8216_header(struct ag71xx *ag,
-+ struct sk_buff *skb)
-+{
-+}
-+
-+static inline int ag71xx_remove_ar8216_header(struct ag71xx *ag,
-+ struct sk_buff *skb,
-+ int pktlen)
-+{
-+ return 0;
-+}
-+static inline int ag71xx_has_ar8216(struct ag71xx *ag)
-+{
-+ return 0;
-+}
-+#endif
-+
-+#ifdef CONFIG_AG71XX_DEBUG_FS
-+int ag71xx_debugfs_root_init(void);
-+void ag71xx_debugfs_root_exit(void);
-+int ag71xx_debugfs_init(struct ag71xx *ag);
-+void ag71xx_debugfs_exit(struct ag71xx *ag);
-+void ag71xx_debugfs_update_int_stats(struct ag71xx *ag, u32 status);
-+void ag71xx_debugfs_update_napi_stats(struct ag71xx *ag, int rx, int tx);
-+#else
-+static inline int ag71xx_debugfs_root_init(void) { return 0; }
-+static inline void ag71xx_debugfs_root_exit(void) {}
-+static inline int ag71xx_debugfs_init(struct ag71xx *ag) { return 0; }
-+static inline void ag71xx_debugfs_exit(struct ag71xx *ag) {}
-+static inline void ag71xx_debugfs_update_int_stats(struct ag71xx *ag,
-+ u32 status) {}
-+static inline void ag71xx_debugfs_update_napi_stats(struct ag71xx *ag,
-+ int rx, int tx) {}
-+#endif /* CONFIG_AG71XX_DEBUG_FS */
-+
-+void ag71xx_ar7240_start(struct ag71xx *ag);
-+void ag71xx_ar7240_stop(struct ag71xx *ag);
-+int ag71xx_ar7240_init(struct ag71xx *ag);
-+void ag71xx_ar7240_cleanup(struct ag71xx *ag);
-+
-+int ag71xx_mdio_mii_read(struct ag71xx_mdio *am, int addr, int reg);
-+void ag71xx_mdio_mii_write(struct ag71xx_mdio *am, int addr, int reg, u16 val);
-+
-+u16 ar7240sw_phy_read(struct mii_bus *mii, unsigned phy_addr,
-+ unsigned reg_addr);
-+int ar7240sw_phy_write(struct mii_bus *mii, unsigned phy_addr,
-+ unsigned reg_addr, u16 reg_val);
-+
-+#endif /* _AG71XX_H */
diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_main.c linux-2.6.39/drivers/net/ag71xx/ag71xx_main.c
--- linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_main.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/net/ag71xx/ag71xx_main.c 2011-08-22 07:40:12.160480642 +0200
++++ linux-2.6.39/drivers/net/ag71xx/ag71xx_main.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,1291 @@
+/*
+ * Atheros AR71xx built-in ethernet mac driver
@@ -20955,7 +18558,7 @@ diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_main.c linux-2.6.39/driver
+MODULE_ALIAS("platform:" AG71XX_DRV_NAME);
diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_mdio.c linux-2.6.39/drivers/net/ag71xx/ag71xx_mdio.c
--- linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_mdio.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/net/ag71xx/ag71xx_mdio.c 2011-04-27 12:19:22.257663952 +0200
++++ linux-2.6.39/drivers/net/ag71xx/ag71xx_mdio.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,248 @@
+/*
+ * Atheros AR71xx built-in ethernet mac driver
@@ -21207,7 +18810,7 @@ diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_mdio.c linux-2.6.39/driver
+}
diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_phy.c linux-2.6.39/drivers/net/ag71xx/ag71xx_phy.c
--- linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_phy.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/net/ag71xx/ag71xx_phy.c 2011-08-06 09:32:37.298018216 +0200
++++ linux-2.6.39/drivers/net/ag71xx/ag71xx_phy.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,228 @@
+/*
+ * Atheros AR71xx built-in ethernet mac driver
@@ -21437,88 +19040,9 @@ diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/ag71xx_phy.c linux-2.6.39/drivers
+ else if (ag->phy_dev)
+ phy_disconnect(ag->phy_dev);
+}
-diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/Kconfig linux-2.6.39/drivers/net/ag71xx/Kconfig
---- linux-2.6.39.orig/drivers/net/ag71xx/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/net/ag71xx/Kconfig 2011-04-27 12:19:22.247664026 +0200
-@@ -0,0 +1,33 @@
-+config AG71XX
-+ tristate "Atheros AR71xx built-in ethernet mac support"
-+ depends on ATHEROS_AR71XX
-+ select PHYLIB
-+ help
-+ If you wish to compile a kernel for AR71xx/91xx and enable
-+ ethernet support, then you should always answer Y to this.
-+
-+if AG71XX
-+
-+config AG71XX_DEBUG
-+ bool "Atheros AR71xx built-in ethernet driver debugging"
-+ default n
-+ help
-+ Atheros AR71xx built-in ethernet driver debugging messages.
-+
-+config AG71XX_DEBUG_FS
-+ bool "Atheros AR71xx built-in ethernet driver debugfs support"
-+ depends on DEBUG_FS
-+ default n
-+ help
-+ Say Y, if you need access to various statistics provided by
-+ the ag71xx driver.
-+
-+config AG71XX_AR8216_SUPPORT
-+ bool "special support for the Atheros AR8216 switch"
-+ default n
-+ default y if AR71XX_MACH_WNR2000 || AR71XX_MACH_MZK_W04NU
-+ help
-+ Say 'y' here if you want to enable special support for the
-+ Atheros AR8216 switch found on some boards.
-+
-+endif
-diff -Nur linux-2.6.39.orig/drivers/net/ag71xx/Makefile linux-2.6.39/drivers/net/ag71xx/Makefile
---- linux-2.6.39.orig/drivers/net/ag71xx/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/net/ag71xx/Makefile 2011-04-27 12:19:22.257663952 +0200
-@@ -0,0 +1,15 @@
-+#
-+# Makefile for the Atheros AR71xx built-in ethernet macs
-+#
-+
-+ag71xx-y += ag71xx_main.o
-+ag71xx-y += ag71xx_ethtool.o
-+ag71xx-y += ag71xx_phy.o
-+ag71xx-y += ag71xx_mdio.o
-+ag71xx-y += ag71xx_ar7240.o
-+
-+ag71xx-$(CONFIG_AG71XX_DEBUG_FS) += ag71xx_debugfs.o
-+ag71xx-$(CONFIG_AG71XX_AR8216_SUPPORT) += ag71xx_ar8216.o
-+
-+obj-$(CONFIG_AG71XX) += ag71xx.o
-+
-diff -Nur linux-2.6.39.orig/drivers/net/Kconfig linux-2.6.39/drivers/net/Kconfig
---- linux-2.6.39.orig/drivers/net/Kconfig 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/net/Kconfig 2011-08-22 16:21:54.787979739 +0200
-@@ -2071,6 +2071,8 @@
-
- The safe and default value for this is N.
-
-+source drivers/net/ag71xx/Kconfig
-+
- config DL2K
- tristate "DL2000/TC902x-based Gigabit Ethernet support"
- depends on PCI
-diff -Nur linux-2.6.39.orig/drivers/net/Makefile linux-2.6.39/drivers/net/Makefile
---- linux-2.6.39.orig/drivers/net/Makefile 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/net/Makefile 2011-08-22 16:21:54.797980120 +0200
-@@ -112,6 +112,7 @@
- # end link order section
- #
-
-+obj-$(CONFIG_AG71XX) += ag71xx/
- obj-$(CONFIG_SUNDANCE) += sundance.o
- obj-$(CONFIG_HAMACHI) += hamachi.o
- obj-$(CONFIG_NET) += Space.o loopback.o
diff -Nur linux-2.6.39.orig/drivers/net/phy/Kconfig linux-2.6.39/drivers/net/phy/Kconfig
--- linux-2.6.39.orig/drivers/net/phy/Kconfig 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/net/phy/Kconfig 2011-08-22 22:19:34.339230055 +0200
++++ linux-2.6.39/drivers/net/phy/Kconfig 2011-08-24 18:17:24.000000000 +0200
@@ -13,6 +13,12 @@
if PHYLIB
@@ -21534,7 +19058,7 @@ diff -Nur linux-2.6.39.orig/drivers/net/phy/Kconfig linux-2.6.39/drivers/net/phy
config MARVELL_PHY
diff -Nur linux-2.6.39.orig/drivers/net/phy/Makefile linux-2.6.39/drivers/net/phy/Makefile
--- linux-2.6.39.orig/drivers/net/phy/Makefile 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/net/phy/Makefile 2011-08-22 22:19:34.339230055 +0200
++++ linux-2.6.39/drivers/net/phy/Makefile 2011-08-24 18:17:24.000000000 +0200
@@ -3,6 +3,7 @@
libphy-objs := phy.o phy_device.o mdio_bus.o
@@ -21545,7 +19069,7 @@ diff -Nur linux-2.6.39.orig/drivers/net/phy/Makefile linux-2.6.39/drivers/net/ph
obj-$(CONFIG_CICADA_PHY) += cicada.o
diff -Nur linux-2.6.39.orig/drivers/net/phy/micrel.c linux-2.6.39/drivers/net/phy/micrel.c
--- linux-2.6.39.orig/drivers/net/phy/micrel.c 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/net/phy/micrel.c 2011-04-27 12:19:22.257663952 +0200
++++ linux-2.6.39/drivers/net/phy/micrel.c 2011-08-24 18:17:24.000000000 +0200
@@ -1,251 +1,82 @@
/*
- * drivers/net/phy/micrel.c
@@ -21850,7 +19374,7 @@ diff -Nur linux-2.6.39.orig/drivers/net/phy/micrel.c linux-2.6.39/drivers/net/ph
+MODULE_LICENSE("GPL v2");
diff -Nur linux-2.6.39.orig/drivers/net/phy/phy.c linux-2.6.39/drivers/net/phy/phy.c
--- linux-2.6.39.orig/drivers/net/phy/phy.c 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/net/phy/phy.c 2011-08-22 22:00:02.067980292 +0200
++++ linux-2.6.39/drivers/net/phy/phy.c 2011-08-24 18:17:24.000000000 +0200
@@ -297,6 +297,50 @@
}
EXPORT_SYMBOL(phy_ethtool_gset);
@@ -21913,7 +19437,7 @@ diff -Nur linux-2.6.39.orig/drivers/net/phy/phy.c linux-2.6.39/drivers/net/phy/p
idx = phy_find_valid(idx, phydev->supported);
diff -Nur linux-2.6.39.orig/drivers/net/phy/phy_device.c linux-2.6.39/drivers/net/phy/phy_device.c
--- linux-2.6.39.orig/drivers/net/phy/phy_device.c 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/net/phy/phy_device.c 2011-08-22 22:00:06.817981347 +0200
++++ linux-2.6.39/drivers/net/phy/phy_device.c 2011-08-24 18:17:24.000000000 +0200
@@ -149,6 +149,18 @@
}
EXPORT_SYMBOL(phy_scan_fixups);
@@ -21944,7 +19468,7 @@ diff -Nur linux-2.6.39.orig/drivers/net/phy/phy_device.c linux-2.6.39/drivers/ne
INIT_DELAYED_WORK(&dev->state_queue, phy_state_machine);
diff -Nur linux-2.6.39.orig/drivers/net/phy/swconfig.c linux-2.6.39/drivers/net/phy/swconfig.c
--- linux-2.6.39.orig/drivers/net/phy/swconfig.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/net/phy/swconfig.c 2011-08-22 22:18:58.887990974 +0200
++++ linux-2.6.39/drivers/net/phy/swconfig.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,954 @@
+/*
+ * swconfig.c: Switch configuration API
@@ -22900,9 +20424,80 @@ diff -Nur linux-2.6.39.orig/drivers/net/phy/swconfig.c linux-2.6.39/drivers/net/
+module_init(swconfig_init);
+module_exit(swconfig_exit);
+
+diff -Nur linux-2.6.39.orig/drivers/spi/Kconfig linux-2.6.39/drivers/spi/Kconfig
+--- linux-2.6.39.orig/drivers/spi/Kconfig 2011-05-19 06:06:34.000000000 +0200
++++ linux-2.6.39/drivers/spi/Kconfig 2011-08-24 18:17:24.000000000 +0200
+@@ -67,6 +67,13 @@
+ This enables support for the SPI controller present on the
+ Atheros AR71XX/AR724X/AR913X SoCs.
+
++config SPI_AR71XX
++ tristate "Atheros AR71xx SPI Controller"
++ depends on SPI_MASTER && ATHEROS_AR71XX
++ select SPI_BITBANG
++ help
++ This is the SPI contoller driver for Atheros AR71xx.
++
+ config SPI_ATMEL
+ tristate "Atmel SPI Controller"
+ depends on (ARCH_AT91 || AVR32)
+@@ -301,6 +308,12 @@
+ config SPI_PXA2XX_PCI
+ def_bool SPI_PXA2XX && X86_32 && PCI
+
++config SPI_RB4XX
++ tristate "Mikrotik RB4XX SPI master"
++ depends on SPI_MASTER && AR71XX_MACH_RB4XX
++ help
++ SPI controller driver for the Mikrotik RB4xx series boards.
++
+ config SPI_S3C24XX
+ tristate "Samsung S3C24XX series SPI"
+ depends on ARCH_S3C2410 && EXPERIMENTAL
+@@ -457,6 +470,13 @@
+ sysfs interface, with each line presented as a kind of GPIO
+ exposing both switch control and diagnostic feedback.
+
++config SPI_RB4XX_CPLD
++ tristate "MikroTik RB4XX CPLD driver"
++ depends on AR71XX_MACH_RB4XX
++ help
++ SPI driver for the Xilinx CPLD chip present on the
++ MikroTik RB4xx boards.
++
+ #
+ # Add new SPI protocol masters in alphabetical order above this line
+ #
+diff -Nur linux-2.6.39.orig/drivers/spi/Makefile linux-2.6.39/drivers/spi/Makefile
+--- linux-2.6.39.orig/drivers/spi/Makefile 2011-05-19 06:06:34.000000000 +0200
++++ linux-2.6.39/drivers/spi/Makefile 2011-08-24 18:17:24.000000000 +0200
+@@ -10,6 +10,7 @@
+
+ # SPI master controller drivers (bus)
+ obj-$(CONFIG_SPI_ALTERA) += spi_altera.o
++obj-$(CONFIG_SPI_AR71XX) += ar71xx_spi.o
+ obj-$(CONFIG_SPI_ATMEL) += atmel_spi.o
+ obj-$(CONFIG_SPI_ATH79) += ath79_spi.o
+ obj-$(CONFIG_SPI_BFIN) += spi_bfin5xx.o
+@@ -54,6 +55,7 @@
+ obj-$(CONFIG_SPI_SH_MSIOF) += spi_sh_msiof.o
+ obj-$(CONFIG_SPI_STMP3XXX) += spi_stmp.o
+ obj-$(CONFIG_SPI_NUC900) += spi_nuc900.o
++obj-$(CONFIG_SPI_RB4XX) += rb4xx_spi.o
+
+ # special build for s3c24xx spi driver with fiq support
+ spi_s3c24xx_hw-y := spi_s3c24xx.o
+@@ -62,6 +64,7 @@
+ # ... add above this line ...
+
+ # SPI protocol drivers (device/link on bus)
++obj-$(CONFIG_SPI_RB4XX_CPLD) += spi_rb4xx_cpld.o
+ obj-$(CONFIG_SPI_SPIDEV) += spidev.o
+ obj-$(CONFIG_SPI_TLE62X0) += tle62x0.o
+ # ... add above this line ...
diff -Nur linux-2.6.39.orig/drivers/spi/ap83_spi.c linux-2.6.39/drivers/spi/ap83_spi.c
--- linux-2.6.39.orig/drivers/spi/ap83_spi.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/spi/ap83_spi.c 2011-04-27 12:19:22.317665385 +0200
++++ linux-2.6.39/drivers/spi/ap83_spi.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,283 @@
+/*
+ * Atheros AP83 board specific SPI Controller driver
@@ -23189,7 +20784,7 @@ diff -Nur linux-2.6.39.orig/drivers/spi/ap83_spi.c linux-2.6.39/drivers/spi/ap83
+MODULE_LICENSE("GPL v2");
diff -Nur linux-2.6.39.orig/drivers/spi/ar71xx_spi.c linux-2.6.39/drivers/spi/ar71xx_spi.c
--- linux-2.6.39.orig/drivers/spi/ar71xx_spi.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/spi/ar71xx_spi.c 2011-04-27 12:19:22.317665385 +0200
++++ linux-2.6.39/drivers/spi/ar71xx_spi.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,283 @@
+/*
+ * Atheros AR71xx SPI Controller driver
@@ -23474,645 +21069,9 @@ diff -Nur linux-2.6.39.orig/drivers/spi/ar71xx_spi.c linux-2.6.39/drivers/spi/ar
+MODULE_AUTHOR("Gabor Juhos <juhosg@openwrt.org>");
+MODULE_AUTHOR("Imre Kaloz <kaloz@openwrt.org>");
+MODULE_LICENSE("GPL v2");
-diff -Nur linux-2.6.39.orig/drivers/spi/Kconfig linux-2.6.39/drivers/spi/Kconfig
---- linux-2.6.39.orig/drivers/spi/Kconfig 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/spi/Kconfig 2011-08-23 15:10:24.167989908 +0200
-@@ -67,6 +67,13 @@
- This enables support for the SPI controller present on the
- Atheros AR71XX/AR724X/AR913X SoCs.
-
-+config SPI_AR71XX
-+ tristate "Atheros AR71xx SPI Controller"
-+ depends on SPI_MASTER && ATHEROS_AR71XX
-+ select SPI_BITBANG
-+ help
-+ This is the SPI contoller driver for Atheros AR71xx.
-+
- config SPI_ATMEL
- tristate "Atmel SPI Controller"
- depends on (ARCH_AT91 || AVR32)
-@@ -301,6 +308,12 @@
- config SPI_PXA2XX_PCI
- def_bool SPI_PXA2XX && X86_32 && PCI
-
-+config SPI_RB4XX
-+ tristate "Mikrotik RB4XX SPI master"
-+ depends on SPI_MASTER && AR71XX_MACH_RB4XX
-+ help
-+ SPI controller driver for the Mikrotik RB4xx series boards.
-+
- config SPI_S3C24XX
- tristate "Samsung S3C24XX series SPI"
- depends on ARCH_S3C2410 && EXPERIMENTAL
-@@ -457,6 +470,13 @@
- sysfs interface, with each line presented as a kind of GPIO
- exposing both switch control and diagnostic feedback.
-
-+config SPI_RB4XX_CPLD
-+ tristate "MikroTik RB4XX CPLD driver"
-+ depends on AR71XX_MACH_RB4XX
-+ help
-+ SPI driver for the Xilinx CPLD chip present on the
-+ MikroTik RB4xx boards.
-+
- #
- # Add new SPI protocol masters in alphabetical order above this line
- #
-diff -Nur linux-2.6.39.orig/drivers/spi/Kconfig.orig linux-2.6.39/drivers/spi/Kconfig.orig
---- linux-2.6.39.orig/drivers/spi/Kconfig.orig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/spi/Kconfig.orig 2011-08-23 15:10:11.277991848 +0200
-@@ -0,0 +1,482 @@
-+#
-+# SPI driver configuration
-+#
-+# NOTE: the reason this doesn't show SPI slave support is mostly that
-+# nobody's needed a slave side API yet. The master-role API is not
-+# fully appropriate there, so it'd need some thought to do well.
-+#
-+menuconfig SPI
-+ bool "SPI support"
-+ depends on HAS_IOMEM
-+ help
-+ The "Serial Peripheral Interface" is a low level synchronous
-+ protocol. Chips that support SPI can have data transfer rates
-+ up to several tens of Mbit/sec. Chips are addressed with a
-+ controller and a chipselect. Most SPI slaves don't support
-+ dynamic device discovery; some are even write-only or read-only.
-+
-+ SPI is widely used by microcontrollers to talk with sensors,
-+ eeprom and flash memory, codecs and various other controller
-+ chips, analog to digital (and d-to-a) converters, and more.
-+ MMC and SD cards can be accessed using SPI protocol; and for
-+ DataFlash cards used in MMC sockets, SPI must always be used.
-+
-+ SPI is one of a family of similar protocols using a four wire
-+ interface (select, clock, data in, data out) including Microwire
-+ (half duplex), SSP, SSI, and PSP. This driver framework should
-+ work with most such devices and controllers.
-+
-+if SPI
-+
-+config SPI_DEBUG
-+ boolean "Debug support for SPI drivers"
-+ depends on DEBUG_KERNEL
-+ help
-+ Say "yes" to enable debug messaging (like dev_dbg and pr_debug),
-+ sysfs, and debugfs support in SPI controller and protocol drivers.
-+
-+#
-+# MASTER side ... talking to discrete SPI slave chips including microcontrollers
-+#
-+
-+config SPI_MASTER
-+# boolean "SPI Master Support"
-+ boolean
-+ default SPI
-+ help
-+ If your system has an master-capable SPI controller (which
-+ provides the clock and chipselect), you can enable that
-+ controller and the protocol drivers for the SPI slave chips
-+ that are connected.
-+
-+if SPI_MASTER
-+
-+comment "SPI Master Controller Drivers"
-+
-+config SPI_ALTERA
-+ tristate "Altera SPI Controller"
-+ select SPI_BITBANG
-+ help
-+ This is the driver for the Altera SPI Controller.
-+
-+config SPI_ATH79
-+ tristate "Atheros AR71XX/AR724X/AR913X SPI controller driver"
-+ depends on ATH79 && GENERIC_GPIO
-+ select SPI_BITBANG
-+ help
-+ This enables support for the SPI controller present on the
-+ Atheros AR71XX/AR724X/AR913X SoCs.
-+
-+config SPI_AR71XX
-+ tristate "Atheros AR71xx SPI Controller"
-+ depends on SPI_MASTER && ATHEROS_AR71XX
-+ select SPI_BITBANG
-+ help
-+ This is the SPI contoller driver for Atheros AR71xx.
-+
-+config SPI_ATMEL
-+ tristate "Atmel SPI Controller"
-+ depends on (ARCH_AT91 || AVR32)
-+ help
-+ This selects a driver for the Atmel SPI Controller, present on
-+ many AT32 (AVR32) and AT91 (ARM) chips.
-+
-+config SPI_BFIN
-+ tristate "SPI controller driver for ADI Blackfin5xx"
-+ depends on BLACKFIN
-+ help
-+ This is the SPI controller master driver for Blackfin 5xx processor.
-+
-+config SPI_AU1550
-+ tristate "Au1550/Au12x0 SPI Controller"
-+ depends on (SOC_AU1550 || SOC_AU1200) && EXPERIMENTAL
-+ select SPI_BITBANG
-+ help
-+ If you say yes to this option, support will be included for the
-+ Au1550 SPI controller (may also work with Au1200,Au1210,Au1250).
-+
-+ This driver can also be built as a module. If so, the module
-+ will be called au1550_spi.
-+
-+config SPI_BITBANG
-+ tristate "Utilities for Bitbanging SPI masters"
-+ help
-+ With a few GPIO pins, your system can bitbang the SPI protocol.
-+ Select this to get SPI support through I/O pins (GPIO, parallel
-+ port, etc). Or, some systems' SPI master controller drivers use
-+ this code to manage the per-word or per-transfer accesses to the
-+ hardware shift registers.
-+
-+ This is library code, and is automatically selected by drivers that
-+ need it. You only need to select this explicitly to support driver
-+ modules that aren't part of this kernel tree.
-+
-+config SPI_BUTTERFLY
-+ tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)"
-+ depends on PARPORT
-+ select SPI_BITBANG
-+ help
-+ This uses a custom parallel port cable to connect to an AVR
-+ Butterfly <http://www.atmel.com/products/avr/butterfly>, an
-+ inexpensive battery powered microcontroller evaluation board.
-+ This same cable can be used to flash new firmware.
-+
-+config SPI_COLDFIRE_QSPI
-+ tristate "Freescale Coldfire QSPI controller"
-+ depends on (M520x || M523x || M5249 || M527x || M528x || M532x)
-+ help
-+ This enables support for the Coldfire QSPI controller in master
-+ mode.
-+
-+ This driver can also be built as a module. If so, the module
-+ will be called coldfire_qspi.
-+
-+config SPI_DAVINCI
-+ tristate "Texas Instruments DaVinci/DA8x/OMAP-L/AM1x SoC SPI controller"
-+ depends on SPI_MASTER && ARCH_DAVINCI
-+ select SPI_BITBANG
-+ help
-+ SPI master controller for DaVinci/DA8x/OMAP-L/AM1x SPI modules.
-+
-+ This driver can also be built as a module. The module will be called
-+ davinci_spi.
-+
-+config SPI_EP93XX
-+ tristate "Cirrus Logic EP93xx SPI controller"
-+ depends on ARCH_EP93XX
-+ help
-+ This enables using the Cirrus EP93xx SPI controller in master
-+ mode.
-+
-+ To compile this driver as a module, choose M here. The module will be
-+ called ep93xx_spi.
-+
-+config SPI_GPIO
-+ tristate "GPIO-based bitbanging SPI Master"
-+ depends on GENERIC_GPIO
-+ select SPI_BITBANG
-+ help
-+ This simple GPIO bitbanging SPI master uses the arch-neutral GPIO
-+ interface to manage MOSI, MISO, SCK, and chipselect signals. SPI
-+ slaves connected to a bus using this driver are configured as usual,
-+ except that the spi_board_info.controller_data holds the GPIO number
-+ for the chipselect used by this controller driver.
-+
-+ Note that this driver often won't achieve even 1 Mbit/sec speeds,
-+ making it unusually slow for SPI. If your platform can inline
-+ GPIO operations, you should be able to leverage that for better
-+ speed with a custom version of this driver; see the source code.
-+
-+config SPI_IMX_VER_IMX1
-+ def_bool y if SOC_IMX1
-+
-+config SPI_IMX_VER_0_0
-+ def_bool y if SOC_IMX21 || SOC_IMX27
-+
-+config SPI_IMX_VER_0_4
-+ def_bool y if SOC_IMX31
-+
-+config SPI_IMX_VER_0_7
-+ def_bool y if ARCH_MX25 || SOC_IMX35 || SOC_IMX51 || SOC_IMX53
-+
-+config SPI_IMX_VER_2_3
-+ def_bool y if SOC_IMX51 || SOC_IMX53
-+
-+config SPI_IMX
-+ tristate "Freescale i.MX SPI controllers"
-+ depends on ARCH_MXC
-+ select SPI_BITBANG
-+ default m if IMX_HAVE_PLATFORM_SPI_IMX
-+ help
-+ This enables using the Freescale i.MX SPI controllers in master
-+ mode.
-+
-+config SPI_LM70_LLP
-+ tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)"
-+ depends on PARPORT && EXPERIMENTAL
-+ select SPI_BITBANG
-+ help
-+ This driver supports the NS LM70 LLP Evaluation Board,
-+ which interfaces to an LM70 temperature sensor using
-+ a parallel port.
-+
-+config SPI_MPC52xx
-+ tristate "Freescale MPC52xx SPI (non-PSC) controller support"
-+ depends on PPC_MPC52xx && SPI
-+ select SPI_MASTER_OF
-+ help
-+ This drivers supports the MPC52xx SPI controller in master SPI
-+ mode.
-+
-+config SPI_MPC52xx_PSC
-+ tristate "Freescale MPC52xx PSC SPI controller"
-+ depends on PPC_MPC52xx && EXPERIMENTAL
-+ help
-+ This enables using the Freescale MPC52xx Programmable Serial
-+ Controller in master SPI mode.
-+
-+config SPI_MPC512x_PSC
-+ tristate "Freescale MPC512x PSC SPI controller"
-+ depends on SPI_MASTER && PPC_MPC512x
-+ help
-+ This enables using the Freescale MPC5121 Programmable Serial
-+ Controller in SPI master mode.
-+
-+config SPI_FSL_LIB
-+ tristate
-+ depends on FSL_SOC
-+
-+config SPI_FSL_SPI
-+ tristate "Freescale SPI controller"
-+ depends on FSL_SOC
-+ select SPI_FSL_LIB
-+ help
-+ This enables using the Freescale SPI controllers in master mode.
-+ MPC83xx platform uses the controller in cpu mode or CPM/QE mode.
-+ MPC8569 uses the controller in QE mode, MPC8610 in cpu mode.
-+
-+config SPI_FSL_ESPI
-+ tristate "Freescale eSPI controller"
-+ depends on FSL_SOC
-+ select SPI_FSL_LIB
-+ help
-+ This enables using the Freescale eSPI controllers in master mode.
-+ From MPC8536, 85xx platform uses the controller, and all P10xx,
-+ P20xx, P30xx,P40xx, P50xx uses this controller.
-+
-+config SPI_OC_TINY
-+ tristate "OpenCores tiny SPI"
-+ depends on GENERIC_GPIO
-+ select SPI_BITBANG
-+ help
-+ This is the driver for OpenCores tiny SPI master controller.
-+
-+config SPI_OMAP_UWIRE
-+ tristate "OMAP1 MicroWire"
-+ depends on ARCH_OMAP1
-+ select SPI_BITBANG
-+ help
-+ This hooks up to the MicroWire controller on OMAP1 chips.
-+
-+config SPI_OMAP24XX
-+ tristate "McSPI driver for OMAP"
-+ depends on ARCH_OMAP2PLUS
-+ help
-+ SPI master controller for OMAP24XX and later Multichannel SPI
-+ (McSPI) modules.
-+
-+config SPI_OMAP_100K
-+ tristate "OMAP SPI 100K"
-+ depends on SPI_MASTER && (ARCH_OMAP850 || ARCH_OMAP730)
-+ help
-+ OMAP SPI 100K master controller for omap7xx boards.
-+
-+config SPI_ORION
-+ tristate "Orion SPI master (EXPERIMENTAL)"
-+ depends on PLAT_ORION && EXPERIMENTAL
-+ help
-+ This enables using the SPI master controller on the Orion chips.
-+
-+config SPI_PL022
-+ tristate "ARM AMBA PL022 SSP controller (EXPERIMENTAL)"
-+ depends on ARM_AMBA && EXPERIMENTAL
-+ default y if MACH_U300
-+ default y if ARCH_REALVIEW
-+ default y if INTEGRATOR_IMPD1
-+ default y if ARCH_VERSATILE
-+ help
-+ This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP
-+ controller. If you have an embedded system with an AMBA(R)
-+ bus and a PL022 controller, say Y or M here.
-+
-+config SPI_PPC4xx
-+ tristate "PPC4xx SPI Controller"
-+ depends on PPC32 && 4xx && SPI_MASTER
-+ select SPI_BITBANG
-+ help
-+ This selects a driver for the PPC4xx SPI Controller.
-+
-+config SPI_PXA2XX
-+ tristate "PXA2xx SSP SPI master"
-+ depends on (ARCH_PXA || (X86_32 && PCI)) && EXPERIMENTAL
-+ select PXA_SSP if ARCH_PXA
-+ help
-+ This enables using a PXA2xx or Sodaville SSP port as a SPI master
-+ controller. The driver can be configured to use any SSP port and
-+ additional documentation can be found a Documentation/spi/pxa2xx.
-+
-+config SPI_PXA2XX_PCI
-+ def_bool SPI_PXA2XX && X86_32 && PCI
-+
-+config SPI_S3C24XX
-+ tristate "Samsung S3C24XX series SPI"
-+ depends on ARCH_S3C2410 && EXPERIMENTAL
-+ select SPI_BITBANG
-+ help
-+ SPI driver for Samsung S3C24XX series ARM SoCs
-+
-+config SPI_S3C24XX_FIQ
-+ bool "S3C24XX driver with FIQ pseudo-DMA"
-+ depends on SPI_S3C24XX
-+ select FIQ
-+ help
-+ Enable FIQ support for the S3C24XX SPI driver to provide pseudo
-+ DMA by using the fast-interrupt request framework, This allows
-+ the driver to get DMA-like performance when there are either
-+ no free DMA channels, or when doing transfers that required both
-+ TX and RX data paths.
-+
-+config SPI_S3C24XX_GPIO
-+ tristate "Samsung S3C24XX series SPI by GPIO"
-+ depends on ARCH_S3C2410 && EXPERIMENTAL
-+ select SPI_BITBANG
-+ help
-+ SPI driver for Samsung S3C24XX series ARM SoCs using
-+ GPIO lines to provide the SPI bus. This can be used where
-+ the inbuilt hardware cannot provide the transfer mode, or
-+ where the board is using non hardware connected pins.
-+
-+config SPI_S3C64XX
-+ tristate "Samsung S3C64XX series type SPI"
-+ depends on (ARCH_S3C64XX || ARCH_S5P64X0)
-+ select S3C64XX_DMA if ARCH_S3C64XX
-+ help
-+ SPI driver for Samsung S3C64XX and newer SoCs.
-+
-+config SPI_SH_MSIOF
-+ tristate "SuperH MSIOF SPI controller"
-+ depends on SUPERH && HAVE_CLK
-+ select SPI_BITBANG
-+ help
-+ SPI driver for SuperH MSIOF blocks.
-+
-+config SPI_SH
-+ tristate "SuperH SPI controller"
-+ depends on SUPERH
-+ help
-+ SPI driver for SuperH SPI blocks.
-+
-+config SPI_SH_SCI
-+ tristate "SuperH SCI SPI controller"
-+ depends on SUPERH
-+ select SPI_BITBANG
-+ help
-+ SPI driver for SuperH SCI blocks.
-+
-+config SPI_STMP3XXX
-+ tristate "Freescale STMP37xx/378x SPI/SSP controller"
-+ depends on ARCH_STMP3XXX && SPI_MASTER
-+ help
-+ SPI driver for Freescale STMP37xx/378x SoC SSP interface
-+
-+config SPI_TEGRA
-+ tristate "Nvidia Tegra SPI controller"
-+ depends on ARCH_TEGRA
-+ select TEGRA_SYSTEM_DMA
-+ help
-+ SPI driver for NVidia Tegra SoCs
-+
-+config SPI_TI_SSP
-+ tristate "TI Sequencer Serial Port - SPI Support"
-+ depends on MFD_TI_SSP
-+ help
-+ This selects an SPI master implementation using a TI sequencer
-+ serial port.
-+
-+ To compile this driver as a module, choose M here: the
-+ module will be called ti-ssp-spi.
-+
-+config SPI_TOPCLIFF_PCH
-+ tristate "Topcliff PCH SPI Controller"
-+ depends on PCI
-+ help
-+ SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus
-+ used in some x86 embedded processors.
-+
-+config SPI_TXX9
-+ tristate "Toshiba TXx9 SPI controller"
-+ depends on GENERIC_GPIO && CPU_TX49XX
-+ help
-+ SPI driver for Toshiba TXx9 MIPS SoCs
-+
-+config SPI_XILINX
-+ tristate "Xilinx SPI controller common module"
-+ depends on HAS_IOMEM && EXPERIMENTAL
-+ select SPI_BITBANG
-+ help
-+ This exposes the SPI controller IP from the Xilinx EDK.
-+
-+ See the "OPB Serial Peripheral Interface (SPI) (v1.00e)"
-+ Product Specification document (DS464) for hardware details.
-+
-+ Or for the DS570, see "XPS Serial Peripheral Interface (SPI) (v2.00b)"
-+
-+config SPI_NUC900
-+ tristate "Nuvoton NUC900 series SPI"
-+ depends on ARCH_W90X900 && EXPERIMENTAL
-+ select SPI_BITBANG
-+ help
-+ SPI driver for Nuvoton NUC900 series ARM SoCs
-+
-+#
-+# Add new SPI master controllers in alphabetical order above this line
-+#
-+
-+config SPI_DESIGNWARE
-+ tristate "DesignWare SPI controller core support"
-+ depends on SPI_MASTER
-+ help
-+ general driver for SPI controller core from DesignWare
-+
-+config SPI_DW_PCI
-+ tristate "PCI interface driver for DW SPI core"
-+ depends on SPI_DESIGNWARE && PCI
-+
-+config SPI_DW_MID_DMA
-+ bool "DMA support for DW SPI controller on Intel Moorestown platform"
-+ depends on SPI_DW_PCI && INTEL_MID_DMAC
-+
-+config SPI_DW_MMIO
-+ tristate "Memory-mapped io interface driver for DW SPI core"
-+ depends on SPI_DESIGNWARE && HAVE_CLK
-+
-+#
-+# There are lots of SPI device types, with sensors and memory
-+# being probably the most widely used ones.
-+#
-+comment "SPI Protocol Masters"
-+
-+config SPI_SPIDEV
-+ tristate "User mode SPI device driver support"
-+ depends on EXPERIMENTAL
-+ help
-+ This supports user mode SPI protocol drivers.
-+
-+ Note that this application programming interface is EXPERIMENTAL
-+ and hence SUBJECT TO CHANGE WITHOUT NOTICE while it stabilizes.
-+
-+config SPI_TLE62X0
-+ tristate "Infineon TLE62X0 (for power switching)"
-+ depends on SYSFS
-+ help
-+ SPI driver for Infineon TLE62X0 series line driver chips,
-+ such as the TLE6220, TLE6230 and TLE6240. This provides a
-+ sysfs interface, with each line presented as a kind of GPIO
-+ exposing both switch control and diagnostic feedback.
-+
-+config SPI_RB4XX_CPLD
-+ tristate "MikroTik RB4XX CPLD driver"
-+ depends on AR71XX_MACH_RB4XX
-+ help
-+ SPI driver for the Xilinx CPLD chip present on the
-+ MikroTik RB4xx boards.
-+
-+#
-+# Add new SPI protocol masters in alphabetical order above this line
-+#
-+
-+endif # SPI_MASTER
-+
-+# (slave support would go here)
-+
-+endif # SPI
-diff -Nur linux-2.6.39.orig/drivers/spi/Makefile linux-2.6.39/drivers/spi/Makefile
---- linux-2.6.39.orig/drivers/spi/Makefile 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/spi/Makefile 2011-08-23 15:10:24.199233941 +0200
-@@ -10,6 +10,7 @@
-
- # SPI master controller drivers (bus)
- obj-$(CONFIG_SPI_ALTERA) += spi_altera.o
-+obj-$(CONFIG_SPI_AR71XX) += ar71xx_spi.o
- obj-$(CONFIG_SPI_ATMEL) += atmel_spi.o
- obj-$(CONFIG_SPI_ATH79) += ath79_spi.o
- obj-$(CONFIG_SPI_BFIN) += spi_bfin5xx.o
-@@ -54,6 +55,7 @@
- obj-$(CONFIG_SPI_SH_MSIOF) += spi_sh_msiof.o
- obj-$(CONFIG_SPI_STMP3XXX) += spi_stmp.o
- obj-$(CONFIG_SPI_NUC900) += spi_nuc900.o
-+obj-$(CONFIG_SPI_RB4XX) += rb4xx_spi.o
-
- # special build for s3c24xx spi driver with fiq support
- spi_s3c24xx_hw-y := spi_s3c24xx.o
-@@ -62,6 +64,7 @@
- # ... add above this line ...
-
- # SPI protocol drivers (device/link on bus)
-+obj-$(CONFIG_SPI_RB4XX_CPLD) += spi_rb4xx_cpld.o
- obj-$(CONFIG_SPI_SPIDEV) += spidev.o
- obj-$(CONFIG_SPI_TLE62X0) += tle62x0.o
- # ... add above this line ...
-diff -Nur linux-2.6.39.orig/drivers/spi/Makefile.orig linux-2.6.39/drivers/spi/Makefile.orig
---- linux-2.6.39.orig/drivers/spi/Makefile.orig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/spi/Makefile.orig 2011-08-23 15:10:11.300479072 +0200
-@@ -0,0 +1,75 @@
-+#
-+# Makefile for kernel SPI drivers.
-+#
-+
-+ccflags-$(CONFIG_SPI_DEBUG) := -DDEBUG
-+
-+# small core, mostly translating board-specific
-+# config declarations into driver model code
-+obj-$(CONFIG_SPI_MASTER) += spi.o
-+
-+# SPI master controller drivers (bus)
-+obj-$(CONFIG_SPI_ALTERA) += spi_altera.o
-+obj-$(CONFIG_SPI_AR71XX) += ar71xx_spi.o
-+obj-$(CONFIG_SPI_ATMEL) += atmel_spi.o
-+obj-$(CONFIG_SPI_ATH79) += ath79_spi.o
-+obj-$(CONFIG_SPI_BFIN) += spi_bfin5xx.o
-+obj-$(CONFIG_SPI_BITBANG) += spi_bitbang.o
-+obj-$(CONFIG_SPI_AU1550) += au1550_spi.o
-+obj-$(CONFIG_SPI_BUTTERFLY) += spi_butterfly.o
-+obj-$(CONFIG_SPI_COLDFIRE_QSPI) += coldfire_qspi.o
-+obj-$(CONFIG_SPI_DAVINCI) += davinci_spi.o
-+obj-$(CONFIG_SPI_DESIGNWARE) += dw_spi.o
-+obj-$(CONFIG_SPI_DW_PCI) += dw_spi_midpci.o
-+dw_spi_midpci-objs := dw_spi_pci.o dw_spi_mid.o
-+obj-$(CONFIG_SPI_DW_MMIO) += dw_spi_mmio.o
-+obj-$(CONFIG_SPI_EP93XX) += ep93xx_spi.o
-+obj-$(CONFIG_SPI_GPIO) += spi_gpio.o
-+obj-$(CONFIG_SPI_IMX) += spi_imx.o
-+obj-$(CONFIG_SPI_LM70_LLP) += spi_lm70llp.o
-+obj-$(CONFIG_SPI_PXA2XX) += pxa2xx_spi.o
-+obj-$(CONFIG_SPI_PXA2XX_PCI) += pxa2xx_spi_pci.o
-+obj-$(CONFIG_SPI_OC_TINY) += spi_oc_tiny.o
-+obj-$(CONFIG_SPI_OMAP_UWIRE) += omap_uwire.o
-+obj-$(CONFIG_SPI_OMAP24XX) += omap2_mcspi.o
-+obj-$(CONFIG_SPI_OMAP_100K) += omap_spi_100k.o
-+obj-$(CONFIG_SPI_ORION) += orion_spi.o
-+obj-$(CONFIG_SPI_PL022) += amba-pl022.o
-+obj-$(CONFIG_SPI_MPC512x_PSC) += mpc512x_psc_spi.o
-+obj-$(CONFIG_SPI_MPC52xx_PSC) += mpc52xx_psc_spi.o
-+obj-$(CONFIG_SPI_MPC52xx) += mpc52xx_spi.o
-+obj-$(CONFIG_SPI_FSL_LIB) += spi_fsl_lib.o
-+obj-$(CONFIG_SPI_FSL_ESPI) += spi_fsl_espi.o
-+obj-$(CONFIG_SPI_FSL_SPI) += spi_fsl_spi.o
-+obj-$(CONFIG_SPI_PPC4xx) += spi_ppc4xx.o
-+obj-$(CONFIG_SPI_S3C24XX_GPIO) += spi_s3c24xx_gpio.o
-+obj-$(CONFIG_SPI_S3C24XX) += spi_s3c24xx_hw.o
-+obj-$(CONFIG_SPI_S3C64XX) += spi_s3c64xx.o
-+obj-$(CONFIG_SPI_TEGRA) += spi_tegra.o
-+obj-$(CONFIG_SPI_TI_SSP) += ti-ssp-spi.o
-+obj-$(CONFIG_SPI_TOPCLIFF_PCH) += spi_topcliff_pch.o
-+obj-$(CONFIG_SPI_TXX9) += spi_txx9.o
-+obj-$(CONFIG_SPI_XILINX) += xilinx_spi.o
-+obj-$(CONFIG_SPI_SH) += spi_sh.o
-+obj-$(CONFIG_SPI_SH_SCI) += spi_sh_sci.o
-+obj-$(CONFIG_SPI_SH_MSIOF) += spi_sh_msiof.o
-+obj-$(CONFIG_SPI_STMP3XXX) += spi_stmp.o
-+obj-$(CONFIG_SPI_NUC900) += spi_nuc900.o
-+
-+# special build for s3c24xx spi driver with fiq support
-+spi_s3c24xx_hw-y := spi_s3c24xx.o
-+spi_s3c24xx_hw-$(CONFIG_SPI_S3C24XX_FIQ) += spi_s3c24xx_fiq.o
-+
-+# ... add above this line ...
-+
-+# SPI protocol drivers (device/link on bus)
-+obj-$(CONFIG_SPI_RB4XX_CPLD) += spi_rb4xx_cpld.o
-+obj-$(CONFIG_SPI_SPIDEV) += spidev.o
-+obj-$(CONFIG_SPI_TLE62X0) += tle62x0.o
-+# ... add above this line ...
-+
-+# SPI slave controller drivers (upstream link)
-+# ... add above this line ...
-+
-+# SPI slave drivers (protocol for that link)
-+# ... add above this line ...
diff -Nur linux-2.6.39.orig/drivers/spi/pb44_spi.c linux-2.6.39/drivers/spi/pb44_spi.c
--- linux-2.6.39.orig/drivers/spi/pb44_spi.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/spi/pb44_spi.c 2011-04-27 12:19:22.317665385 +0200
++++ linux-2.6.39/drivers/spi/pb44_spi.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,299 @@
+/*
+ * Atheros PB44 board SPI controller driver
@@ -24415,7 +21374,7 @@ diff -Nur linux-2.6.39.orig/drivers/spi/pb44_spi.c linux-2.6.39/drivers/spi/pb44
+MODULE_LICENSE("GPL v2");
diff -Nur linux-2.6.39.orig/drivers/spi/rb4xx_spi.c linux-2.6.39/drivers/spi/rb4xx_spi.c
--- linux-2.6.39.orig/drivers/spi/rb4xx_spi.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/spi/rb4xx_spi.c 2011-04-27 12:19:22.307664943 +0200
++++ linux-2.6.39/drivers/spi/rb4xx_spi.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,474 @@
+/*
+ * SPI controller driver for the Mikrotik RB4xx boards
@@ -24893,7 +21852,7 @@ diff -Nur linux-2.6.39.orig/drivers/spi/rb4xx_spi.c linux-2.6.39/drivers/spi/rb4
+MODULE_LICENSE("GPL v2");
diff -Nur linux-2.6.39.orig/drivers/spi/spi_rb4xx_cpld.c linux-2.6.39/drivers/spi/spi_rb4xx_cpld.c
--- linux-2.6.39.orig/drivers/spi/spi_rb4xx_cpld.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/spi/spi_rb4xx_cpld.c 2011-04-27 12:19:22.317665385 +0200
++++ linux-2.6.39/drivers/spi/spi_rb4xx_cpld.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,440 @@
+/*
+ * SPI driver for the CPLD chip on the Mikrotik RB4xx boards
@@ -25337,7 +22296,7 @@ diff -Nur linux-2.6.39.orig/drivers/spi/spi_rb4xx_cpld.c linux-2.6.39/drivers/sp
+MODULE_LICENSE("GPL v2");
diff -Nur linux-2.6.39.orig/drivers/spi/spi_vsc7385.c linux-2.6.39/drivers/spi/spi_vsc7385.c
--- linux-2.6.39.orig/drivers/spi/spi_vsc7385.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/spi/spi_vsc7385.c 2011-04-27 12:19:22.317665385 +0200
++++ linux-2.6.39/drivers/spi/spi_vsc7385.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,621 @@
+/*
+ * SPI driver for the Vitesse VSC7385 ethernet switch
@@ -25962,7 +22921,7 @@ diff -Nur linux-2.6.39.orig/drivers/spi/spi_vsc7385.c linux-2.6.39/drivers/spi/s
+
diff -Nur linux-2.6.39.orig/drivers/tty/serial/ar933x_uart.c linux-2.6.39/drivers/tty/serial/ar933x_uart.c
--- linux-2.6.39.orig/drivers/tty/serial/ar933x_uart.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/tty/serial/ar933x_uart.c 2011-08-06 09:32:37.098016752 +0200
++++ linux-2.6.39/drivers/tty/serial/ar933x_uart.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,688 @@
+/*
+ * Atheros AR933X SoC built-in UART driver
@@ -26652,9 +23611,40 @@ diff -Nur linux-2.6.39.orig/drivers/tty/serial/ar933x_uart.c linux-2.6.39/driver
+MODULE_AUTHOR("Gabor Juhos <juhosg@openwrt.org>");
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("platform:" DRIVER_NAME);
+diff -Nur linux-2.6.39.orig/drivers/usb/host/Kconfig linux-2.6.39/drivers/usb/host/Kconfig
+--- linux-2.6.39.orig/drivers/usb/host/Kconfig 2011-05-19 06:06:34.000000000 +0200
++++ linux-2.6.39/drivers/usb/host/Kconfig 2011-08-24 18:17:24.000000000 +0200
+@@ -129,6 +129,13 @@
+ config USB_FSL_MPH_DR_OF
+ tristate
+
++config USB_EHCI_AR71XX
++ bool "USB EHCI support for AR71xx"
++ depends on USB_EHCI_HCD && ATHEROS_AR71XX
++ default y
++ help
++ Support for Atheros AR71xx built-in EHCI controller
++
+ config USB_EHCI_FSL
+ bool "Support for Freescale on-chip EHCI USB controller"
+ depends on USB_EHCI_HCD && FSL_SOC
+@@ -287,6 +294,13 @@
+ Enables support for the on-chip OHCI controller on
+ OMAP3 and later chips.
+
++config USB_OHCI_AR71XX
++ bool "USB OHCI support for Atheros AR71xx"
++ depends on USB_OHCI_HCD && ATHEROS_AR71XX
++ default y
++ help
++ Support for Atheros AR71xx built-in OHCI controller
++
+ config USB_OHCI_HCD_PPC_SOC
+ bool "OHCI support for on-chip PPC USB controller"
+ depends on USB_OHCI_HCD && (STB03xxx || PPC_MPC52xx)
diff -Nur linux-2.6.39.orig/drivers/usb/host/ehci-ar71xx.c linux-2.6.39/drivers/usb/host/ehci-ar71xx.c
--- linux-2.6.39.orig/drivers/usb/host/ehci-ar71xx.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/usb/host/ehci-ar71xx.c 2011-04-27 12:19:22.267661616 +0200
++++ linux-2.6.39/drivers/usb/host/ehci-ar71xx.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,242 @@
+/*
+ * Bus Glue for Atheros AR71xx built-in EHCI controller.
@@ -26900,7 +23890,7 @@ diff -Nur linux-2.6.39.orig/drivers/usb/host/ehci-ar71xx.c linux-2.6.39/drivers/
+};
diff -Nur linux-2.6.39.orig/drivers/usb/host/ehci-hcd.c linux-2.6.39/drivers/usb/host/ehci-hcd.c
--- linux-2.6.39.orig/drivers/usb/host/ehci-hcd.c 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/usb/host/ehci-hcd.c 2011-08-22 16:21:42.807985568 +0200
++++ linux-2.6.39/drivers/usb/host/ehci-hcd.c 2011-08-24 18:17:24.000000000 +0200
@@ -1265,6 +1265,11 @@
#define PLATFORM_DRIVER tegra_ehci_driver
#endif
@@ -26913,40 +23903,9 @@ diff -Nur linux-2.6.39.orig/drivers/usb/host/ehci-hcd.c linux-2.6.39/drivers/usb
#if !defined(PCI_DRIVER) && !defined(PLATFORM_DRIVER) && \
!defined(PS3_SYSTEM_BUS_DRIVER) && !defined(OF_PLATFORM_DRIVER) && \
!defined(XILINX_OF_PLATFORM_DRIVER)
-diff -Nur linux-2.6.39.orig/drivers/usb/host/Kconfig linux-2.6.39/drivers/usb/host/Kconfig
---- linux-2.6.39.orig/drivers/usb/host/Kconfig 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/usb/host/Kconfig 2011-08-22 16:21:42.767983341 +0200
-@@ -129,6 +129,13 @@
- config USB_FSL_MPH_DR_OF
- tristate
-
-+config USB_EHCI_AR71XX
-+ bool "USB EHCI support for AR71xx"
-+ depends on USB_EHCI_HCD && ATHEROS_AR71XX
-+ default y
-+ help
-+ Support for Atheros AR71xx built-in EHCI controller
-+
- config USB_EHCI_FSL
- bool "Support for Freescale on-chip EHCI USB controller"
- depends on USB_EHCI_HCD && FSL_SOC
-@@ -287,6 +294,13 @@
- Enables support for the on-chip OHCI controller on
- OMAP3 and later chips.
-
-+config USB_OHCI_AR71XX
-+ bool "USB OHCI support for Atheros AR71xx"
-+ depends on USB_OHCI_HCD && ATHEROS_AR71XX
-+ default y
-+ help
-+ Support for Atheros AR71xx built-in OHCI controller
-+
- config USB_OHCI_HCD_PPC_SOC
- bool "OHCI support for on-chip PPC USB controller"
- depends on USB_OHCI_HCD && (STB03xxx || PPC_MPC52xx)
diff -Nur linux-2.6.39.orig/drivers/usb/host/ohci-ar71xx.c linux-2.6.39/drivers/usb/host/ohci-ar71xx.c
--- linux-2.6.39.orig/drivers/usb/host/ohci-ar71xx.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/usb/host/ohci-ar71xx.c 2011-04-27 12:19:22.267661616 +0200
++++ linux-2.6.39/drivers/usb/host/ohci-ar71xx.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,165 @@
+/*
+ * OHCI HCD (Host Controller Driver) for USB.
@@ -27115,7 +24074,7 @@ diff -Nur linux-2.6.39.orig/drivers/usb/host/ohci-ar71xx.c linux-2.6.39/drivers/
+};
diff -Nur linux-2.6.39.orig/drivers/usb/host/ohci-hcd.c linux-2.6.39/drivers/usb/host/ohci-hcd.c
--- linux-2.6.39.orig/drivers/usb/host/ohci-hcd.c 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/usb/host/ohci-hcd.c 2011-08-22 16:21:42.847983209 +0200
++++ linux-2.6.39/drivers/usb/host/ohci-hcd.c 2011-08-24 18:17:24.000000000 +0200
@@ -1105,6 +1105,11 @@
#define PLATFORM_DRIVER ohci_hcd_cns3xxx_driver
#endif
@@ -27128,9 +24087,37 @@ diff -Nur linux-2.6.39.orig/drivers/usb/host/ohci-hcd.c linux-2.6.39/drivers/usb
#if !defined(PCI_DRIVER) && \
!defined(PLATFORM_DRIVER) && \
!defined(OMAP1_PLATFORM_DRIVER) && \
+diff -Nur linux-2.6.39.orig/drivers/watchdog/Kconfig linux-2.6.39/drivers/watchdog/Kconfig
+--- linux-2.6.39.orig/drivers/watchdog/Kconfig 2011-05-19 06:06:34.000000000 +0200
++++ linux-2.6.39/drivers/watchdog/Kconfig 2011-08-24 18:17:24.000000000 +0200
+@@ -990,6 +990,13 @@
+ To compile this driver as a loadable module, choose M here.
+ The module will be called bcm63xx_wdt.
+
++config AR71XX_WDT
++ tristate "Atheros AR71xx Watchdog Timer"
++ depends on ATHEROS_AR71XX
++ help
++ Hardware driver for the built-in watchdog timer on the Atheros
++ AR71xx SoCs.
++
+ # PARISC Architecture
+
+ # POWERPC Architecture
+diff -Nur linux-2.6.39.orig/drivers/watchdog/Makefile linux-2.6.39/drivers/watchdog/Makefile
+--- linux-2.6.39.orig/drivers/watchdog/Makefile 2011-05-19 06:06:34.000000000 +0200
++++ linux-2.6.39/drivers/watchdog/Makefile 2011-08-24 18:17:24.000000000 +0200
+@@ -119,6 +119,7 @@
+ obj-$(CONFIG_WDT_MTX1) += mtx-1_wdt.o
+ obj-$(CONFIG_PNX833X_WDT) += pnx833x_wdt.o
+ obj-$(CONFIG_SIBYTE_WDOG) += sb_wdog.o
++obj-$(CONFIG_AR71XX_WDT) += ar71xx_wdt.o
+ obj-$(CONFIG_AR7_WDT) += ar7_wdt.o
+ obj-$(CONFIG_TXX9_WDT) += txx9wdt.o
+ obj-$(CONFIG_OCTEON_WDT) += octeon-wdt.o
diff -Nur linux-2.6.39.orig/drivers/watchdog/ar71xx_wdt.c linux-2.6.39/drivers/watchdog/ar71xx_wdt.c
--- linux-2.6.39.orig/drivers/watchdog/ar71xx_wdt.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/drivers/watchdog/ar71xx_wdt.c 2011-08-06 09:32:37.118022037 +0200
++++ linux-2.6.39/drivers/watchdog/ar71xx_wdt.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,299 @@
+/*
+ * Driver for the Atheros AR71xx SoC's built-in hardware watchdog timer.
@@ -27431,37 +24418,9 @@ diff -Nur linux-2.6.39.orig/drivers/watchdog/ar71xx_wdt.c linux-2.6.39/drivers/w
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("platform:" DRV_NAME);
+MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);
-diff -Nur linux-2.6.39.orig/drivers/watchdog/Kconfig linux-2.6.39/drivers/watchdog/Kconfig
---- linux-2.6.39.orig/drivers/watchdog/Kconfig 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/watchdog/Kconfig 2011-08-22 16:22:00.627980889 +0200
-@@ -990,6 +990,13 @@
- To compile this driver as a loadable module, choose M here.
- The module will be called bcm63xx_wdt.
-
-+config AR71XX_WDT
-+ tristate "Atheros AR71xx Watchdog Timer"
-+ depends on ATHEROS_AR71XX
-+ help
-+ Hardware driver for the built-in watchdog timer on the Atheros
-+ AR71xx SoCs.
-+
- # PARISC Architecture
-
- # POWERPC Architecture
-diff -Nur linux-2.6.39.orig/drivers/watchdog/Makefile linux-2.6.39/drivers/watchdog/Makefile
---- linux-2.6.39.orig/drivers/watchdog/Makefile 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/drivers/watchdog/Makefile 2011-08-22 16:22:00.647986892 +0200
-@@ -119,6 +119,7 @@
- obj-$(CONFIG_WDT_MTX1) += mtx-1_wdt.o
- obj-$(CONFIG_PNX833X_WDT) += pnx833x_wdt.o
- obj-$(CONFIG_SIBYTE_WDOG) += sb_wdog.o
-+obj-$(CONFIG_AR71XX_WDT) += ar71xx_wdt.o
- obj-$(CONFIG_AR7_WDT) += ar7_wdt.o
- obj-$(CONFIG_TXX9_WDT) += txx9wdt.o
- obj-$(CONFIG_OCTEON_WDT) += octeon-wdt.o
diff -Nur linux-2.6.39.orig/include/linux/ath9k_platform.h linux-2.6.39/include/linux/ath9k_platform.h
--- linux-2.6.39.orig/include/linux/ath9k_platform.h 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/include/linux/ath9k_platform.h 2011-08-06 09:32:36.638021723 +0200
++++ linux-2.6.39/include/linux/ath9k_platform.h 2011-08-24 18:17:24.000000000 +0200
@@ -23,6 +23,15 @@
struct ath9k_platform_data {
@@ -27480,7 +24439,7 @@ diff -Nur linux-2.6.39.orig/include/linux/ath9k_platform.h linux-2.6.39/include/
#endif /* _LINUX_ATH9K_PLATFORM_H */
diff -Nur linux-2.6.39.orig/include/linux/ip.h linux-2.6.39/include/linux/ip.h
--- linux-2.6.39.orig/include/linux/ip.h 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/include/linux/ip.h 2011-08-24 05:53:21.239229027 +0200
++++ linux-2.6.39/include/linux/ip.h 2011-08-24 18:17:24.000000000 +0200
@@ -102,7 +102,7 @@
__be32 saddr;
__be32 daddr;
@@ -27492,7 +24451,7 @@ diff -Nur linux-2.6.39.orig/include/linux/ip.h linux-2.6.39/include/linux/ip.h
#include <linux/skbuff.h>
diff -Nur linux-2.6.39.orig/include/linux/ipv6.h linux-2.6.39/include/linux/ipv6.h
--- linux-2.6.39.orig/include/linux/ipv6.h 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/include/linux/ipv6.h 2011-08-24 05:53:21.289229059 +0200
++++ linux-2.6.39/include/linux/ipv6.h 2011-08-24 18:17:24.000000000 +0200
@@ -126,7 +126,7 @@
struct in6_addr saddr;
@@ -27504,7 +24463,7 @@ diff -Nur linux-2.6.39.orig/include/linux/ipv6.h linux-2.6.39/include/linux/ipv6
/*
diff -Nur linux-2.6.39.orig/include/linux/myloader.h linux-2.6.39/include/linux/myloader.h
--- linux-2.6.39.orig/include/linux/myloader.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/include/linux/myloader.h 2011-08-24 03:12:08.307985040 +0200
++++ linux-2.6.39/include/linux/myloader.h 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,120 @@
+/*
+ * Compex's MyLoader specific definitions
@@ -27628,7 +24587,7 @@ diff -Nur linux-2.6.39.orig/include/linux/myloader.h linux-2.6.39/include/linux/
+#endif /* _MYLOADER_H_*/
diff -Nur linux-2.6.39.orig/include/linux/netdevice.h linux-2.6.39/include/linux/netdevice.h
--- linux-2.6.39.orig/include/linux/netdevice.h 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/include/linux/netdevice.h 2011-08-22 22:00:06.937981400 +0200
++++ linux-2.6.39/include/linux/netdevice.h 2011-08-24 18:17:24.000000000 +0200
@@ -1182,6 +1182,7 @@
void *ax25_ptr; /* AX.25 specific data */
struct wireless_dev *ieee80211_ptr; /* IEEE 802.11 specific data,
@@ -27639,7 +24598,7 @@ diff -Nur linux-2.6.39.orig/include/linux/netdevice.h linux-2.6.39/include/linux
* Cache lines mostly used on receive path (including eth_type_trans())
diff -Nur linux-2.6.39.orig/include/linux/nxp_74hc153.h linux-2.6.39/include/linux/nxp_74hc153.h
--- linux-2.6.39.orig/include/linux/nxp_74hc153.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/include/linux/nxp_74hc153.h 2011-04-27 12:19:21.817661653 +0200
++++ linux-2.6.39/include/linux/nxp_74hc153.h 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,24 @@
+/*
+ * NXP 74HC153 - Dual 4-input multiplexer defines
@@ -27667,7 +24626,7 @@ diff -Nur linux-2.6.39.orig/include/linux/nxp_74hc153.h linux-2.6.39/include/lin
+#endif /* _NXP_74HC153_H */
diff -Nur linux-2.6.39.orig/include/linux/phy.h linux-2.6.39/include/linux/phy.h
--- linux-2.6.39.orig/include/linux/phy.h 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/include/linux/phy.h 2011-08-22 22:00:06.867980866 +0200
++++ linux-2.6.39/include/linux/phy.h 2011-08-24 18:17:24.000000000 +0200
@@ -332,6 +332,20 @@
void (*adjust_link)(struct net_device *dev);
@@ -27699,7 +24658,7 @@ diff -Nur linux-2.6.39.orig/include/linux/phy.h linux-2.6.39/include/linux/phy.h
int phy_start_interrupts(struct phy_device *phydev);
diff -Nur linux-2.6.39.orig/include/linux/spi/spi.h linux-2.6.39/include/linux/spi/spi.h
--- linux-2.6.39.orig/include/linux/spi/spi.h 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/include/linux/spi/spi.h 2011-08-23 15:10:37.559229523 +0200
++++ linux-2.6.39/include/linux/spi/spi.h 2011-08-24 18:17:24.000000000 +0200
@@ -441,6 +441,8 @@
dma_addr_t rx_dma;
@@ -27719,7 +24678,7 @@ diff -Nur linux-2.6.39.orig/include/linux/spi/spi.h linux-2.6.39/include/linux/s
* last transfer ... allowing things like "read 16 bit length L"
diff -Nur linux-2.6.39.orig/include/linux/spi/vsc7385.h linux-2.6.39/include/linux/spi/vsc7385.h
--- linux-2.6.39.orig/include/linux/spi/vsc7385.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/include/linux/spi/vsc7385.h 2011-04-27 12:19:21.817661653 +0200
++++ linux-2.6.39/include/linux/spi/vsc7385.h 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,19 @@
+/*
+ * Platform data definition for the Vitesse VSC7385 ethernet switch driver
@@ -27742,7 +24701,7 @@ diff -Nur linux-2.6.39.orig/include/linux/spi/vsc7385.h linux-2.6.39/include/lin
+};
diff -Nur linux-2.6.39.orig/include/linux/switch.h linux-2.6.39/include/linux/switch.h
--- linux-2.6.39.orig/include/linux/switch.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/include/linux/switch.h 2011-08-22 22:09:59.799231408 +0200
++++ linux-2.6.39/include/linux/switch.h 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,204 @@
+/*
+ * switch.h: Switch configuration API
@@ -27950,7 +24909,7 @@ diff -Nur linux-2.6.39.orig/include/linux/switch.h linux-2.6.39/include/linux/sw
+#endif
diff -Nur linux-2.6.39.orig/include/linux/tcp.h linux-2.6.39/include/linux/tcp.h
--- linux-2.6.39.orig/include/linux/tcp.h 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/include/linux/tcp.h 2011-08-24 05:53:21.379228748 +0200
++++ linux-2.6.39/include/linux/tcp.h 2011-08-24 18:17:24.000000000 +0200
@@ -54,7 +54,7 @@
__be16 window;
__sum16 check;
@@ -27962,7 +24921,7 @@ diff -Nur linux-2.6.39.orig/include/linux/tcp.h linux-2.6.39/include/linux/tcp.h
* The union cast uses a gcc extension to avoid aliasing problems
diff -Nur linux-2.6.39.orig/include/linux/udp.h linux-2.6.39/include/linux/udp.h
--- linux-2.6.39.orig/include/linux/udp.h 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/include/linux/udp.h 2011-08-24 05:53:21.428824967 +0200
++++ linux-2.6.39/include/linux/udp.h 2011-08-24 18:17:24.000000000 +0200
@@ -24,7 +24,7 @@
__be16 dest;
__be16 len;
@@ -27974,7 +24933,7 @@ diff -Nur linux-2.6.39.orig/include/linux/udp.h linux-2.6.39/include/linux/udp.h
#define UDP_CORK 1 /* Never send partially complete segments */
diff -Nur linux-2.6.39.orig/net/dsa/mv88e6063.c linux-2.6.39/net/dsa/mv88e6063.c
--- linux-2.6.39.orig/net/dsa/mv88e6063.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.39/net/dsa/mv88e6063.c 2011-04-27 12:19:21.827661792 +0200
++++ linux-2.6.39/net/dsa/mv88e6063.c 2011-08-24 18:17:24.000000000 +0200
@@ -0,0 +1,294 @@
+/*
+ * net/dsa/mv88e6063.c - Driver for Marvell 88e6063 switch chips
@@ -28272,7 +25231,7 @@ diff -Nur linux-2.6.39.orig/net/dsa/mv88e6063.c linux-2.6.39/net/dsa/mv88e6063.c
+module_exit(mv88e6063_cleanup);
diff -Nur linux-2.6.39.orig/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c linux-2.6.39/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
--- linux-2.6.39.orig/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c 2011-05-19 06:06:34.000000000 +0200
-+++ linux-2.6.39/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c 2011-08-24 05:53:21.549229118 +0200
++++ linux-2.6.39/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c 2011-08-24 18:17:24.000000000 +0200
@@ -14,6 +14,7 @@
#include <linux/skbuff.h>
#include <linux/icmp.h>
diff --git a/target/mips/Makefile b/target/mips/Makefile
index 00a3e8bdc..648e28c02 100644
--- a/target/mips/Makefile
+++ b/target/mips/Makefile
@@ -98,12 +98,14 @@ imageinstall: kernel-install $(BIN_DIR)/$(ROOTFSTARBALL)
endif
ifeq ($(ADK_TARGET_FS),archive)
imageinstall: $(BIN_DIR)/$(ROOTFSTARBALL)
+ @cp $(KERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
+ @echo 'The kernel file is: $(BIN_DIR)/${TARGET_KERNEL}'
@echo "The RootFS tarball is: $(BIN_DIR)/$(ROOTFSTARBALL)"
ifneq ($(ADK_HARDWARE_QEMU),)
@echo "Use following command to create a QEMU Image:"
@echo "sudo ./scripts/create-image.sh -f $(ADK_TARGET_ROOTFS) qemu-${CPU_ARCH}.img $(BIN_DIR)/$(ROOTFSTARBALL)"
@echo "Start qemu with following options:"
- @echo 'qemu-system-${CPU_ARCH} -nographic -M malta -kernel $(BIN_DIR)/$(TARGET_KERNEL) qemu-${CPU_ARCH}.img'
+ @echo 'qemu-system-${CPU_ARCH} -nographic -M malta -net user,hostfwd=tcp::2222-:22 -net nic,model=pcnet -kernel $(BIN_DIR)/$(TARGET_KERNEL) qemu-${CPU_ARCH}.img'
endif
endif
ifeq ($(ADK_TARGET_FS),initramfs)
@@ -113,7 +115,7 @@ imageinstall: $(BIN_DIR)/$(INITRAMFS)
@echo 'The initramfs image is: ${BIN_DIR}/${INITRAMFS}'
ifneq ($(ADK_HARDWARE_QEMU),)
@echo "Start qemu with following command line:"
- @echo 'qemu-system-${CPU_ARCH} -nographic -M malta -kernel $(BIN_DIR)/$(TARGET_KERNEL) -initrd ${BIN_DIR}/${INITRAMFS}'
+ @echo 'qemu-system-${CPU_ARCH} -nographic -M malta -net user,hostfwd=tcp::2222-:22 -net nic,model=pcnet -kernel $(BIN_DIR)/$(TARGET_KERNEL) -initrd ${BIN_DIR}/${INITRAMFS}'
endif
endif
ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
@@ -122,7 +124,7 @@ imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinitramfs
@echo 'The kernel+initramfs file is: $(BIN_DIR)/${TARGET_KERNEL}'
ifneq ($(ADK_HARDWARE_QEMU),)
@echo "Start qemu with following command line:"
- @echo 'qemu-system-${CPU_ARCH} -nographic -M malta -kernel $(BIN_DIR)/$(TARGET_KERNEL)'
+ @echo 'qemu-system-${CPU_ARCH} -nographic -M malta -net user,hostfwd=tcp::2222-:22 -net nic,model=pcnet -kernel $(BIN_DIR)/$(TARGET_KERNEL)'
endif
endif
ifeq ($(ADK_TARGET_FS),usb)
@@ -152,12 +154,12 @@ imageinstall: kernel-install ${BUILD_DIR}/${ROOTFSSQUASHFS}
echo The image file is $(ROOTFSSQUASHFS); \
fi
ifeq ($(ADK_TARGET_SYSTEM_FON_FON2100),y)
- echo The kernel file is $(TARGET_KERNEL)
+ echo The kernel file is $(TARGET_KERNEL)
endif
ifeq ($(ADK_TARGET_SYSTEM_BROADCOM_BCM47XX),y)
- echo 'You can flash the image via tftp:'
- echo 'tftp 192.168.1.1'
- echo 'tftp> binary'
- echo "tftp> put $(ROOTFSSQUASHFS) upgrade_code.bin"
+ echo 'You can flash the image via tftp:'
+ echo 'tftp 192.168.1.1'
+ echo 'tftp> binary'
+ echo "tftp> put $(ROOTFSSQUASHFS) upgrade_code.bin"
endif
endif
diff --git a/target/mips/sys-available/qemu-mipsel b/target/mips/sys-available/qemu-mipsel
index fe64a6db2..918ec223e 100644
--- a/target/mips/sys-available/qemu-mipsel
+++ b/target/mips/sys-available/qemu-mipsel
@@ -4,6 +4,7 @@ config ADK_TARGET_SYSTEM_QEMU_MIPSEL
select ADK_qemu_mipsel
select ADK_little
select ADK_KERNEL_MIPS_MALTA
+ select ADK_KERNEL_PAGE_SIZE_4KB
select ADK_KERNEL_CPU_LITTLE_ENDIAN
select ADK_HARDWARE_QEMU
select ADK_TARGET_WITH_VGA
diff --git a/target/sh/Config.in b/target/sh/Config.in
new file mode 100644
index 000000000..4dfe7ba09
--- /dev/null
+++ b/target/sh/Config.in
@@ -0,0 +1,9 @@
+choice
+depends on ADK_LINUX_SH && !ADK_CHOOSE_TARGET_ARCH
+prompt "Target system"
+
+config ADK_CHOOSE_TARGET_SYSTEM_SH
+ boolean "Choose target system"
+
+source "target/sh/Config.in.systems"
+endchoice
diff --git a/target/sh/Makefile b/target/sh/Makefile
new file mode 100644
index 000000000..63a237839
--- /dev/null
+++ b/target/sh/Makefile
@@ -0,0 +1,36 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(TOPDIR)/rules.mk
+include $(TOPDIR)/mk/kernel.mk
+include $(TOPDIR)/mk/modules.mk
+include $(TOPDIR)/mk/kernel-build.mk
+include $(TOPDIR)/mk/image.mk
+
+KERNEL:=$(LINUX_DIR)/arch/sh/boot/zImage
+
+ifeq ($(ADK_TARGET_FS),archive)
+imageinstall: $(BIN_DIR)/$(ROOTFSTARBALL)
+ @cp $(KERNEL) $(BIN_DIR)/${TARGET_KERNEL}
+ @echo 'The kernel file is: $(BIN_DIR)/${TARGET_KERNEL}'
+ @echo "The RootFS tarball is: $(BIN_DIR)/$(ROOTFSTARBALL)"
+endif
+ifeq ($(ADK_TARGET_FS),initramfs)
+imageinstall: $(BIN_DIR)/$(INITRAMFS)
+ @cp $(KERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
+ @echo 'The kernel file is: $(BIN_DIR)/${TARGET_KERNEL}'
+ @echo 'The initramfs image is: ${BIN_DIR}/${INITRAMFS}'
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_SH),y)
+ @echo "Start qemu with following command line:"
+ @echo 'qemu-system-sh4 -M r2d -kernel $(BIN_DIR)/$(TARGET_KERNEL) -initrd ${BIN_DIR}/${INITRAMFS}'
+endif
+endif
+ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
+imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinitramfs
+ @cp $(KERNEL) $(BIN_DIR)/${TARGET_KERNEL}
+ @echo 'The kernel+initramfs file is: $(BIN_DIR)/${TARGET_KERNEL}'
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_SH),y)
+ @echo "Start qemu with following command line:"
+ @echo 'qemu-system-sh4 -M r2d -kernel $(BIN_DIR)/$(TARGET_KERNEL)'
+endif
+endif
diff --git a/target/sh/kernel.config b/target/sh/kernel.config
new file mode 100644
index 000000000..a1578e62b
--- /dev/null
+++ b/target/sh/kernel.config
@@ -0,0 +1,1817 @@
+#
+# Automatically generated make config: don't edit
+# Linux/sh 2.6.39 Kernel Configuration
+# Fri Sep 2 16:00:15 2011
+#
+CONFIG_SUPERH=y
+CONFIG_SUPERH32=y
+# CONFIG_SUPERH64 is not set
+CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig"
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_FIND_BIT_LE=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_IRQ_PER_CPU=y
+# CONFIG_GENERIC_GPIO is not set
+CONFIG_GENERIC_CLOCKEVENTS=y
+# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_SYS_SUPPORTS_HUGETLBFS=y
+CONFIG_SYS_SUPPORTS_PCI=y
+CONFIG_SYS_SUPPORTS_TMU=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_ARCH_NO_VIRT_TO_BUS=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+# CONFIG_NO_IOPORT is not set
+CONFIG_IO_TRAPPED=y
+CONFIG_DMA_NONCOHERENT=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_XZ is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_FHANDLE is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_SPARSE_IRQ=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TINY_RCU=y
+# CONFIG_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+# CONFIG_TREE_RCU_TRACE is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_CGROUPS is not set
+# CONFIG_NAMESPACES is not set
+# CONFIG_SCHED_AUTOGROUP is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+# CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_EXPERT=y
+CONFIG_UID16=y
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_EMBEDDED=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_PERF_USE_VMALLOC=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# CONFIG_PERF_COUNTERS is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_COMPAT_BRK=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+CONFIG_PROFILING=y
+CONFIG_OPROFILE=y
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+# CONFIG_MODULE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+CONFIG_INLINE_SPIN_UNLOCK=y
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+CONFIG_INLINE_READ_UNLOCK=y
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+CONFIG_INLINE_WRITE_UNLOCK=y
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+# CONFIG_FREEZER is not set
+
+#
+# System type
+#
+CONFIG_CPU_SH4=y
+CONFIG_CPU_HAS_PMU=y
+# CONFIG_CPU_SUBTYPE_SH7619 is not set
+# CONFIG_CPU_SUBTYPE_SH7201 is not set
+# CONFIG_CPU_SUBTYPE_SH7203 is not set
+# CONFIG_CPU_SUBTYPE_SH7206 is not set
+# CONFIG_CPU_SUBTYPE_SH7263 is not set
+# CONFIG_CPU_SUBTYPE_MXG is not set
+# CONFIG_CPU_SUBTYPE_SH7705 is not set
+# CONFIG_CPU_SUBTYPE_SH7706 is not set
+# CONFIG_CPU_SUBTYPE_SH7707 is not set
+# CONFIG_CPU_SUBTYPE_SH7708 is not set
+# CONFIG_CPU_SUBTYPE_SH7709 is not set
+# CONFIG_CPU_SUBTYPE_SH7710 is not set
+# CONFIG_CPU_SUBTYPE_SH7712 is not set
+# CONFIG_CPU_SUBTYPE_SH7720 is not set
+# CONFIG_CPU_SUBTYPE_SH7721 is not set
+# CONFIG_CPU_SUBTYPE_SH7750 is not set
+# CONFIG_CPU_SUBTYPE_SH7091 is not set
+# CONFIG_CPU_SUBTYPE_SH7750R is not set
+# CONFIG_CPU_SUBTYPE_SH7750S is not set
+# CONFIG_CPU_SUBTYPE_SH7751 is not set
+CONFIG_CPU_SUBTYPE_SH7751R=y
+# CONFIG_CPU_SUBTYPE_SH7760 is not set
+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
+# CONFIG_CPU_SUBTYPE_SH7723 is not set
+# CONFIG_CPU_SUBTYPE_SH7724 is not set
+# CONFIG_CPU_SUBTYPE_SH7757 is not set
+# CONFIG_CPU_SUBTYPE_SH7763 is not set
+# CONFIG_CPU_SUBTYPE_SH7770 is not set
+# CONFIG_CPU_SUBTYPE_SH7780 is not set
+# CONFIG_CPU_SUBTYPE_SH7785 is not set
+# CONFIG_CPU_SUBTYPE_SH7786 is not set
+# CONFIG_CPU_SUBTYPE_SHX3 is not set
+# CONFIG_CPU_SUBTYPE_SH7343 is not set
+# CONFIG_CPU_SUBTYPE_SH7722 is not set
+# CONFIG_CPU_SUBTYPE_SH7366 is not set
+
+#
+# Memory management options
+#
+CONFIG_QUICKLIST=y
+CONFIG_MMU=y
+CONFIG_PAGE_OFFSET=0x80000000
+CONFIG_FORCE_MAX_ZONEORDER=11
+CONFIG_MEMORY_START=0x0c000000
+CONFIG_MEMORY_SIZE=0x04000000
+CONFIG_29BIT=y
+CONFIG_VSYSCALL=y
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_MAX_ACTIVE_REGIONS=1
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_UNCACHED_MAPPING=y
+CONFIG_PAGE_SIZE_4KB=y
+# CONFIG_PAGE_SIZE_64KB is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_SPARSEMEM_STATIC=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_COMPACTION is not set
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=0
+CONFIG_NR_QUICK=1
+# CONFIG_KSM is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_NEED_PER_CPU_KM=y
+
+#
+# Cache configuration
+#
+CONFIG_CACHE_WRITEBACK=y
+# CONFIG_CACHE_WRITETHROUGH is not set
+# CONFIG_CACHE_OFF is not set
+
+#
+# Processor features
+#
+CONFIG_CPU_LITTLE_ENDIAN=y
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_SH_FPU=y
+# CONFIG_SH_STORE_QUEUES is not set
+CONFIG_CPU_HAS_INTEVT=y
+CONFIG_CPU_HAS_SR_RB=y
+CONFIG_CPU_HAS_FPU=y
+
+#
+# Board support
+#
+# CONFIG_SH_SECUREEDGE5410 is not set
+CONFIG_SH_RTS7751R2D=y
+# CONFIG_SH_LANDISK is not set
+# CONFIG_SH_TITAN is not set
+# CONFIG_SH_LBOX_RE2 is not set
+
+#
+# RTS7751R2D Board Revision
+#
+CONFIG_RTS7751R2D_PLUS=y
+# CONFIG_RTS7751R2D_1 is not set
+
+#
+# Timer and clock configuration
+#
+CONFIG_SH_TIMER_TMU=y
+CONFIG_SH_PCLK_FREQ=60000000
+CONFIG_SH_CLK_CPG=y
+CONFIG_SH_CLK_CPG_LEGACY=y
+# CONFIG_NO_HZ is not set
+# CONFIG_HIGH_RES_TIMERS is not set
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+
+#
+# DMA support
+#
+# CONFIG_SH_DMA is not set
+
+#
+# Companion Chips
+#
+
+#
+# Additional SuperH Device Drivers
+#
+CONFIG_HEARTBEAT=y
+# CONFIG_PUSH_SWITCH is not set
+
+#
+# Kernel features
+#
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=250
+# CONFIG_SCHED_HRTICK is not set
+# CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+# CONFIG_SECCOMP is not set
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+CONFIG_GUSA=y
+# CONFIG_GUSA_RB is not set
+CONFIG_HW_PERF_EVENTS=y
+
+#
+# SuperH / SH-Mobile Driver Options
+#
+
+#
+# Interrupt controller options
+#
+# CONFIG_INTC_MAPPING_DEBUG is not set
+
+#
+# Boot options
+#
+CONFIG_ZERO_PAGE_OFFSET=0x00010000
+CONFIG_BOOT_LINK_OFFSET=0x00800000
+CONFIG_ENTRY_OFFSET=0x00001000
+CONFIG_CMDLINE_OVERWRITE=y
+# CONFIG_CMDLINE_EXTEND is not set
+CONFIG_CMDLINE="console=tty0"
+
+#
+# Bus options
+#
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCIEPORTBUS is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCI_STUB is not set
+# CONFIG_PCI_IOV is not set
+# CONFIG_PCCARD is not set
+CONFIG_HOTPLUG_PCI=y
+# CONFIG_HOTPLUG_PCI_FAKE is not set
+# CONFIG_HOTPLUG_PCI_CPCI is not set
+# CONFIG_HOTPLUG_PCI_SHPC is not set
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+# CONFIG_HAVE_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options (EXPERIMENTAL)
+#
+# CONFIG_HIBERNATION is not set
+# CONFIG_PM_RUNTIME is not set
+# CONFIG_CPU_IDLE is not set
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+# CONFIG_IP_PNP_BOOTP is not set
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE_DEMUX is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+# CONFIG_INET_LRO is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_L2TP is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_NET_DSA is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_PHONET is not set
+# CONFIG_IEEE802154 is not set
+# CONFIG_NET_SCHED is not set
+# CONFIG_DCB is not set
+# CONFIG_BATMAN_ADV is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+CONFIG_WIRELESS=y
+# CONFIG_CFG80211 is not set
+# CONFIG_LIB80211 is not set
+
+#
+# CFG80211 needs to be enabled for MAC80211
+#
+# CONFIG_WIMAX is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+# CONFIG_CEPH_LIB is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=m
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_ARCH_NO_SYSDEV_OPS=y
+# CONFIG_CONNECTOR is not set
+# CONFIG_MTD is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_CPQ_CISS_DA is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+# CONFIG_BLK_DEV_LOOP is not set
+
+#
+# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
+#
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+# CONFIG_BLK_DEV_XIP is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_BLK_DEV_HD is not set
+# CONFIG_BLK_DEV_RBD is not set
+# CONFIG_SENSORS_LIS3LV02D is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_PHANTOM is not set
+# CONFIG_SGI_IOC4 is not set
+# CONFIG_TIFM_CORE is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HP_ILO is not set
+# CONFIG_TI_DAC7512 is not set
+# CONFIG_PCH_PHUB is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_AT25 is not set
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_CB710_CORE is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+# CONFIG_SENSORS_LIS3_SPI is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+# CONFIG_SCSI_MULTI_LUN is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+# CONFIG_SCSI_SRP_ATTRS is not set
+CONFIG_SCSI_LOWLEVEL=y
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_ISCSI_BOOT_SYSFS is not set
+# CONFIG_SCSI_CXGB3_ISCSI is not set
+# CONFIG_SCSI_CXGB4_ISCSI is not set
+# CONFIG_SCSI_BNX2_ISCSI is not set
+# CONFIG_SCSI_BNX2X_FCOE is not set
+# CONFIG_BE2ISCSI is not set
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_HPSA is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_3W_SAS is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_AIC94XX is not set
+# CONFIG_SCSI_MVSAS is not set
+# CONFIG_SCSI_ARCMSR is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
+# CONFIG_MEGARAID_SAS is not set
+# CONFIG_SCSI_MPT2SAS is not set
+# CONFIG_SCSI_HPTIOP is not set
+# CONFIG_LIBFC is not set
+# CONFIG_LIBFCOE is not set
+# CONFIG_FCOE is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_STEX is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_IPR is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_QLA_FC is not set
+# CONFIG_SCSI_QLA_ISCSI is not set
+# CONFIG_SCSI_LPFC is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_NSP32 is not set
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_SCSI_PMCRAID is not set
+# CONFIG_SCSI_PM8001 is not set
+# CONFIG_SCSI_SRP is not set
+# CONFIG_SCSI_BFA_FC is not set
+# CONFIG_SCSI_DH is not set
+# CONFIG_SCSI_OSD_INITIATOR is not set
+CONFIG_ATA=y
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
+# CONFIG_SATA_AHCI is not set
+# CONFIG_SATA_AHCI_PLATFORM is not set
+# CONFIG_SATA_INIC162X is not set
+# CONFIG_SATA_ACARD_AHCI is not set
+# CONFIG_SATA_SIL24 is not set
+CONFIG_ATA_SFF=y
+
+#
+# SFF controllers with custom DMA interface
+#
+# CONFIG_PDC_ADMA is not set
+# CONFIG_SATA_QSTOR is not set
+# CONFIG_SATA_SX4 is not set
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
+# CONFIG_ATA_PIIX is not set
+# CONFIG_SATA_MV is not set
+# CONFIG_SATA_NV is not set
+# CONFIG_SATA_PROMISE is not set
+# CONFIG_SATA_SIL is not set
+# CONFIG_SATA_SIS is not set
+# CONFIG_SATA_SVW is not set
+# CONFIG_SATA_ULI is not set
+# CONFIG_SATA_VIA is not set
+# CONFIG_SATA_VITESSE is not set
+
+#
+# PATA SFF controllers with BMDMA
+#
+# CONFIG_PATA_ALI is not set
+# CONFIG_PATA_AMD is not set
+# CONFIG_PATA_ARASAN_CF is not set
+# CONFIG_PATA_ARTOP is not set
+# CONFIG_PATA_ATIIXP is not set
+# CONFIG_PATA_ATP867X is not set
+# CONFIG_PATA_CMD64X is not set
+# CONFIG_PATA_CS5520 is not set
+# CONFIG_PATA_CS5530 is not set
+# CONFIG_PATA_CS5536 is not set
+# CONFIG_PATA_CYPRESS is not set
+# CONFIG_PATA_EFAR is not set
+# CONFIG_PATA_HPT366 is not set
+# CONFIG_PATA_HPT37X is not set
+# CONFIG_PATA_HPT3X2N is not set
+# CONFIG_PATA_HPT3X3 is not set
+# CONFIG_PATA_IT8213 is not set
+# CONFIG_PATA_IT821X is not set
+# CONFIG_PATA_JMICRON is not set
+# CONFIG_PATA_MARVELL is not set
+# CONFIG_PATA_NETCELL is not set
+# CONFIG_PATA_NINJA32 is not set
+# CONFIG_PATA_NS87415 is not set
+# CONFIG_PATA_OLDPIIX is not set
+# CONFIG_PATA_OPTIDMA is not set
+# CONFIG_PATA_PDC2027X is not set
+# CONFIG_PATA_PDC_OLD is not set
+# CONFIG_PATA_RADISYS is not set
+# CONFIG_PATA_RDC is not set
+# CONFIG_PATA_SC1200 is not set
+# CONFIG_PATA_SCH is not set
+# CONFIG_PATA_SERVERWORKS is not set
+# CONFIG_PATA_SIL680 is not set
+# CONFIG_PATA_SIS is not set
+# CONFIG_PATA_TOSHIBA is not set
+# CONFIG_PATA_TRIFLEX is not set
+# CONFIG_PATA_VIA is not set
+# CONFIG_PATA_WINBOND is not set
+
+#
+# PIO-only SFF controllers
+#
+# CONFIG_PATA_CMD640_PCI is not set
+# CONFIG_PATA_MPIIX is not set
+# CONFIG_PATA_NS87410 is not set
+# CONFIG_PATA_OPTI is not set
+CONFIG_PATA_PLATFORM=y
+# CONFIG_PATA_RZ1000 is not set
+
+#
+# Generic fallback / legacy drivers
+#
+# CONFIG_ATA_GENERIC is not set
+# CONFIG_PATA_LEGACY is not set
+# CONFIG_MD is not set
+# CONFIG_TARGET_CORE is not set
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_FIREWIRE is not set
+# CONFIG_FIREWIRE_NOSY is not set
+# CONFIG_I2O is not set
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+# CONFIG_ARCNET is not set
+CONFIG_MII=y
+# CONFIG_PHYLIB is not set
+CONFIG_NET_ETHERNET=y
+# CONFIG_AX88796 is not set
+# CONFIG_STNIC is not set
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_CASSINI is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_SMC91X is not set
+# CONFIG_ENC28J60 is not set
+# CONFIG_ETHOC is not set
+# CONFIG_SMC911X is not set
+# CONFIG_SMSC911X is not set
+# CONFIG_DNET is not set
+# CONFIG_NET_TULIP is not set
+# CONFIG_HP100 is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+CONFIG_NET_PCI=y
+# CONFIG_PCNET32 is not set
+# CONFIG_AMD8111_ETH is not set
+# CONFIG_ADAPTEC_STARFIRE is not set
+# CONFIG_KSZ884X_PCI is not set
+# CONFIG_B44 is not set
+# CONFIG_FORCEDETH is not set
+# CONFIG_E100 is not set
+# CONFIG_FEALNX is not set
+# CONFIG_NATSEMI is not set
+# CONFIG_NE2K_PCI is not set
+CONFIG_8139CP=y
+CONFIG_8139TOO=y
+# CONFIG_8139TOO_PIO is not set
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+# CONFIG_8139TOO_8129 is not set
+# CONFIG_8139_OLD_RX_RESET is not set
+# CONFIG_R6040 is not set
+# CONFIG_SIS900 is not set
+# CONFIG_EPIC100 is not set
+# CONFIG_SMSC9420 is not set
+# CONFIG_SUNDANCE is not set
+# CONFIG_TLAN is not set
+# CONFIG_KS8851 is not set
+# CONFIG_KS8851_MLL is not set
+# CONFIG_VIA_RHINE is not set
+# CONFIG_SC92031 is not set
+# CONFIG_ATL2 is not set
+CONFIG_NETDEV_1000=y
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+# CONFIG_E1000 is not set
+# CONFIG_E1000E is not set
+# CONFIG_IP1000 is not set
+# CONFIG_IGB is not set
+# CONFIG_IGBVF is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_R8169 is not set
+# CONFIG_SIS190 is not set
+# CONFIG_SKGE is not set
+# CONFIG_SKY2 is not set
+# CONFIG_VIA_VELOCITY is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_BNX2 is not set
+# CONFIG_CNIC is not set
+# CONFIG_QLA3XXX is not set
+# CONFIG_ATL1 is not set
+# CONFIG_ATL1E is not set
+# CONFIG_ATL1C is not set
+# CONFIG_JME is not set
+# CONFIG_STMMAC_ETH is not set
+# CONFIG_PCH_GBE is not set
+CONFIG_NETDEV_10000=y
+# CONFIG_CHELSIO_T1 is not set
+# CONFIG_CHELSIO_T3 is not set
+# CONFIG_CHELSIO_T4 is not set
+# CONFIG_CHELSIO_T4VF is not set
+# CONFIG_ENIC is not set
+# CONFIG_IXGBE is not set
+# CONFIG_IXGB is not set
+# CONFIG_S2IO is not set
+# CONFIG_VXGE is not set
+# CONFIG_MYRI10GE is not set
+# CONFIG_NETXEN_NIC is not set
+# CONFIG_NIU is not set
+# CONFIG_MLX4_EN is not set
+# CONFIG_MLX4_CORE is not set
+# CONFIG_TEHUTI is not set
+# CONFIG_BNX2X is not set
+# CONFIG_QLCNIC is not set
+# CONFIG_QLGE is not set
+# CONFIG_BNA is not set
+# CONFIG_SFC is not set
+# CONFIG_BE2NET is not set
+# CONFIG_TR is not set
+CONFIG_WLAN=y
+# CONFIG_ATMEL is not set
+# CONFIG_PRISM54 is not set
+# CONFIG_USB_ZD1201 is not set
+# CONFIG_HOSTAP is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_USB_IPHETH is not set
+# CONFIG_WAN is not set
+
+#
+# CAIF transport drivers
+#
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_NET_FC is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_VMXNET3 is not set
+# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=m
+# CONFIG_INPUT_POLLDEV is not set
+# CONFIG_INPUT_SPARSEKMAP is not set
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_NOZOMI is not set
+# CONFIG_N_GSM is not set
+CONFIG_DEVKMEM=y
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+# CONFIG_SERIAL_8250_CONSOLE is not set
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_MAX3100 is not set
+# CONFIG_SERIAL_MAX3107 is not set
+# CONFIG_SERIAL_MFD_HSU is not set
+CONFIG_SERIAL_SH_SCI=y
+CONFIG_SERIAL_SH_SCI_NR_UARTS=1
+CONFIG_SERIAL_SH_SCI_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_JSM is not set
+# CONFIG_SERIAL_TIMBERDALE is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+# CONFIG_SERIAL_PCH_UART is not set
+# CONFIG_TTY_PRINTK is not set
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_DEVPORT=y
+# CONFIG_RAMOOPS is not set
+# CONFIG_I2C is not set
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_ALTERA is not set
+CONFIG_SPI_BITBANG=y
+# CONFIG_SPI_PXA2XX_PCI is not set
+# CONFIG_SPI_SH_MSIOF is not set
+# CONFIG_SPI_SH is not set
+CONFIG_SPI_SH_SCI=y
+# CONFIG_SPI_TOPCLIFF_PCH is not set
+# CONFIG_SPI_XILINX is not set
+# CONFIG_SPI_DESIGNWARE is not set
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_TLE62X0 is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
+
+#
+# PPS generators support
+#
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+CONFIG_HWMON=y
+# CONFIG_HWMON_VID is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+# CONFIG_SENSORS_ADCXX is not set
+# CONFIG_SENSORS_I5K_AMB is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_LM70 is not set
+# CONFIG_SENSORS_MAX1111 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_SCH5627 is not set
+# CONFIG_SENSORS_ADS7871 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_VT8231 is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+# CONFIG_THERMAL is not set
+# CONFIG_WATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+# CONFIG_SSB is not set
+CONFIG_MFD_SUPPORT=y
+# CONFIG_MFD_CORE is not set
+CONFIG_MFD_SM501=y
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_MFD_WM831X_SPI is not set
+# CONFIG_MFD_MC13XXX is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_LPC_SCH is not set
+# CONFIG_MFD_RDC321X is not set
+# CONFIG_MFD_JANZ_CMODIO is not set
+# CONFIG_MFD_VX855 is not set
+# CONFIG_REGULATOR is not set
+# CONFIG_MEDIA_SUPPORT is not set
+
+#
+# Graphics support
+#
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+# CONFIG_DRM is not set
+# CONFIG_STUB_POULSBO is not set
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_WMT_GE_ROPS is not set
+CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_BACKLIGHT=y
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+CONFIG_FB_SH_MOBILE_LCDC=m
+# CONFIG_FB_SH_MOBILE_HDMI is not set
+CONFIG_FB_SM501=y
+# CONFIG_FB_UDL is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+# CONFIG_LCD_LTV350QV is not set
+# CONFIG_LCD_TDO24M is not set
+# CONFIG_LCD_VGG2432A4 is not set
+# CONFIG_LCD_PLATFORM is not set
+# CONFIG_LCD_S6E63M0 is not set
+# CONFIG_LCD_LD9040 is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=y
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+# CONFIG_LOGO_LINUX_CLUT224 is not set
+# CONFIG_LOGO_SUPERH_MONO is not set
+# CONFIG_LOGO_SUPERH_VGA16 is not set
+CONFIG_LOGO_SUPERH_CLUT224=y
+CONFIG_SOUND=y
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+# CONFIG_SND_SEQUENCER is not set
+# CONFIG_SND_MIXER_OSS is not set
+# CONFIG_SND_PCM_OSS is not set
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_VMASTER=y
+# CONFIG_SND_RAWMIDI_SEQ is not set
+# CONFIG_SND_OPL3_LIB_SEQ is not set
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+# CONFIG_SND_EMU10K1_SEQ is not set
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_ALOOP is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+# CONFIG_SND_AC97_POWER_SAVE is not set
+CONFIG_SND_PCI=y
+# CONFIG_SND_AD1889 is not set
+# CONFIG_SND_ALS300 is not set
+# CONFIG_SND_ALI5451 is not set
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AW2 is not set
+# CONFIG_SND_AZT3328 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_OXYGEN is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CS5535AUDIO is not set
+# CONFIG_SND_CTXFI is not set
+# CONFIG_SND_DARLA20 is not set
+# CONFIG_SND_GINA20 is not set
+# CONFIG_SND_LAYLA20 is not set
+# CONFIG_SND_DARLA24 is not set
+# CONFIG_SND_GINA24 is not set
+# CONFIG_SND_LAYLA24 is not set
+# CONFIG_SND_MONA is not set
+# CONFIG_SND_MIA is not set
+# CONFIG_SND_ECHO3G is not set
+# CONFIG_SND_INDIGO is not set
+# CONFIG_SND_INDIGOIO is not set
+# CONFIG_SND_INDIGODJ is not set
+# CONFIG_SND_INDIGOIOX is not set
+# CONFIG_SND_INDIGODJX is not set
+# CONFIG_SND_EMU10K1 is not set
+# CONFIG_SND_EMU10K1X is not set
+# CONFIG_SND_ENS1370 is not set
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_ES1938 is not set
+# CONFIG_SND_ES1968 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_HDA_INTEL is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_HDSPM is not set
+# CONFIG_SND_ICE1712 is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_LX6464ES is not set
+# CONFIG_SND_MAESTRO3 is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_PCXHR is not set
+# CONFIG_SND_RIPTIDE is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_SONICVIBES is not set
+# CONFIG_SND_TRIDENT is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VIRTUOSO is not set
+# CONFIG_SND_VX222 is not set
+CONFIG_SND_YMFPCI=m
+CONFIG_SND_SPI=y
+CONFIG_SND_SUPERH=y
+CONFIG_SND_USB=y
+# CONFIG_SND_USB_AUDIO is not set
+# CONFIG_SND_USB_UA101 is not set
+# CONFIG_SND_USB_CAIAQ is not set
+# CONFIG_SND_USB_6FIRE is not set
+# CONFIG_SND_SOC is not set
+CONFIG_SOUND_PRIME=m
+CONFIG_AC97_BUS=m
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HIDRAW is not set
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=y
+# CONFIG_HID_PID is not set
+# CONFIG_USB_HIDDEV is not set
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_3M_PCT is not set
+CONFIG_HID_A4TECH=y
+# CONFIG_HID_ACRUX is not set
+CONFIG_HID_APPLE=y
+CONFIG_HID_BELKIN=y
+# CONFIG_HID_CANDO is not set
+CONFIG_HID_CHERRY=y
+CONFIG_HID_CHICONY=y
+# CONFIG_HID_PRODIKEYS is not set
+CONFIG_HID_CYPRESS=y
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+CONFIG_HID_EZKEY=y
+# CONFIG_HID_KEYTOUCH is not set
+# CONFIG_HID_KYE is not set
+# CONFIG_HID_UCLOGIC is not set
+# CONFIG_HID_WALTOP is not set
+CONFIG_HID_GYRATION=y
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LCPOWER is not set
+CONFIG_HID_LOGITECH=y
+# CONFIG_LOGITECH_FF is not set
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+# CONFIG_LOGIG940_FF is not set
+# CONFIG_LOGIWII_FF is not set
+CONFIG_HID_MICROSOFT=y
+# CONFIG_HID_MOSART is not set
+CONFIG_HID_MONTEREY=y
+# CONFIG_HID_MULTITOUCH is not set
+# CONFIG_HID_NTRIG is not set
+# CONFIG_HID_ORTEK is not set
+CONFIG_HID_PANTHERLORD=y
+# CONFIG_PANTHERLORD_FF is not set
+CONFIG_HID_PETALYNX=y
+# CONFIG_HID_PICOLCD is not set
+# CONFIG_HID_QUANTA is not set
+# CONFIG_HID_ROCCAT is not set
+# CONFIG_HID_ROCCAT_ARVO is not set
+# CONFIG_HID_ROCCAT_KONE is not set
+# CONFIG_HID_ROCCAT_KONEPLUS is not set
+# CONFIG_HID_ROCCAT_KOVAPLUS is not set
+# CONFIG_HID_ROCCAT_PYRA is not set
+CONFIG_HID_SAMSUNG=y
+CONFIG_HID_SONY=y
+# CONFIG_HID_STANTUM is not set
+CONFIG_HID_SUNPLUS=y
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+CONFIG_USB_DEVICE_CLASS=y
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_MON is not set
+# CONFIG_USB_WUSB is not set
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+# CONFIG_USB_XHCI_HCD is not set
+# CONFIG_USB_EHCI_HCD is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_SH is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_WHCI_HCD is not set
+# CONFIG_USB_HWA_HCD is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_REALTEK is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
+# CONFIG_USB_STORAGE_ENE_UB6250 is not set
+# CONFIG_USB_UAS is not set
+CONFIG_USB_LIBUSUAL=y
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_SEVSEG is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_YUREX is not set
+# CONFIG_USB_GADGET is not set
+
+#
+# OTG and related infrastructure
+#
+# CONFIG_NOP_USB_XCEIV is not set
+# CONFIG_UWB is not set
+# CONFIG_MMC is not set
+# CONFIG_MEMSTICK is not set
+# CONFIG_NEW_LEDS is not set
+# CONFIG_NFC_DEVICES is not set
+# CONFIG_ACCESSIBILITY is not set
+# CONFIG_INFINIBAND is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+CONFIG_RTC_DRV_R9701=y
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_DS3234 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_SH is not set
+# CONFIG_RTC_DRV_GENERIC is not set
+# CONFIG_DMADEVICES is not set
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_UIO is not set
+# CONFIG_STAGING is not set
+CONFIG_CLKDEV_LOOKUP=y
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_EXT4_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=y
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_FANOTIFY is not set
+# CONFIG_QUOTA is not set
+# CONFIG_QUOTACTL is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLBFS is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_LOGFS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_SQUASHFS is not set
+# CONFIG_VXFS_FS is not set
+CONFIG_MINIX_FS=y
+CONFIG_MINIX_FS_NATIVE_ENDIAN=y
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+# CONFIG_NFS_FS is not set
+# CONFIG_NFSD is not set
+# CONFIG_CEPH_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+# CONFIG_NLS_CODEPAGE_437 is not set
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+CONFIG_NLS_CODEPAGE_932=y
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+# CONFIG_NLS_ISO8859_1 is not set
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+# CONFIG_PRINTK_TIME is not set
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+# CONFIG_DEBUG_KERNEL is not set
+# CONFIG_HARDLOCKUP_DETECTOR is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_MEMORY_INIT is not set
+# CONFIG_LKDTM is not set
+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_RING_BUFFER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_FTRACE is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_SH_STANDARD_BIOS is not set
+# CONFIG_DWARF_UNWINDER is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+# CONFIG_CRYPTO_MANAGER is not set
+# CONFIG_CRYPTO_MANAGER2 is not set
+# CONFIG_CRYPTO_GF128MUL is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_CRYPTD is not set
+# CONFIG_CRYPTO_AUTHENC is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+# CONFIG_CRYPTO_CCM is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_SEQIV is not set
+
+#
+# Block modes
+#
+# CONFIG_CRYPTO_CBC is not set
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+# CONFIG_CRYPTO_ECB is not set
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_PCBC is not set
+# CONFIG_CRYPTO_XTS is not set
+
+#
+# Hash modes
+#
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_GHASH is not set
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+
+#
+# Compression
+#
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_ZLIB is not set
+# CONFIG_CRYPTO_LZO is not set
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+# CONFIG_CRYPTO_USER_API_HASH is not set
+# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
+CONFIG_CRYPTO_HW=y
+# CONFIG_CRYPTO_DEV_HIFN_795X is not set
+
+#
+# OCF Configuration
+#
+# CONFIG_OCF_OCF is not set
+# CONFIG_VIRTUALIZATION is not set
+# CONFIG_BINARY_PRINTF is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+# CONFIG_CRC_CCITT is not set
+# CONFIG_CRC16 is not set
+CONFIG_CRC_T10DIF=y
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC7 is not set
+# CONFIG_LIBCRC32C is not set
+# CONFIG_XZ_DEC is not set
+# CONFIG_XZ_DEC_BCJ is not set
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_NLATTR=y
+CONFIG_GENERIC_ATOMIC64=y
+# CONFIG_AVERAGE is not set
diff --git a/target/sh/sys-available/qemu-sh b/target/sh/sys-available/qemu-sh
new file mode 100644
index 000000000..70d5a4163
--- /dev/null
+++ b/target/sh/sys-available/qemu-sh
@@ -0,0 +1,10 @@
+config ADK_TARGET_SYSTEM_QEMU_SH
+ bool "Qemu Emulator"
+ select ADK_sh
+ select ADK_qemu_sh
+ select ADK_CPU_SH4
+ select ADK_HARDWARE_QEMU
+ select ADK_TARGET_WITH_VGA
+ help
+ Support for Qemu Emulator (superh).
+
diff --git a/target/sh/sys-available/toolchain-sh b/target/sh/sys-available/toolchain-sh
new file mode 100644
index 000000000..33fdfa446
--- /dev/null
+++ b/target/sh/sys-available/toolchain-sh
@@ -0,0 +1,9 @@
+config ADK_TARGET_SYSTEM_TOOLCHAIN_SH
+ bool "Toolchain only"
+ select ADK_sh
+ select ADK_toolchain_sh
+ select ADK_CPU_SH4
+ select ADK_TOOLCHAIN
+ help
+ Build a superh toolchain (sh4).
+
diff --git a/target/sh/target.mk b/target/sh/target.mk
new file mode 100644
index 000000000..b5630cced
--- /dev/null
+++ b/target/sh/target.mk
@@ -0,0 +1,5 @@
+include $(TOPDIR)/mk/kernel-ver.mk
+ARCH:= sh
+CPU_ARCH:= $(ADK_TARGET_CPU_ARCH)
+TARGET_OPTIMIZATION:= -Os -pipe
+TARGET_CFLAGS_ARCH:= $(ADK_TARGET_CFLAGS)
diff --git a/target/sh/uclibc.config b/target/sh/uclibc.config
new file mode 100644
index 000000000..b7886124a
--- /dev/null
+++ b/target/sh/uclibc.config
@@ -0,0 +1,247 @@
+#
+# Automatically generated make config: don't edit
+# Version: 0.9.32
+# Fri Sep 2 08:44:18 2011
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+TARGET_sh=y
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+# TARGET_xtensa is not set
+# TARGET_c6x is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="sh"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_SH2A is not set
+# CONFIG_SH2 is not set
+# CONFIG_SH3 is not set
+CONFIG_SH4=y
+ARCH_HAS_BWD_MEMCPY=y
+TARGET_SUBARCH="sh4"
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+# DO_XSI_MATH is not set
+UCLIBC_HAS_FENV=y
+UCLIBC_HAS_LONG_DOUBLE_MATH=y
+KERNEL_HEADERS=""
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+DOPIC=y
+# ARCH_HAS_NO_SHARED is not set
+# ARCH_HAS_NO_LDSO is not set
+HAVE_SHARED=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_ENV_SUPPORT is not set
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+# UCLIBC_STATIC_LDCONFIG is not set
+LDSO_RUNPATH=y
+LDSO_SEARCH_INTERP_PATH=y
+UCLIBC_CTOR_DTOR=y
+# LDSO_GNU_HASH_SUPPORT is not set
+# HAS_NO_THREADS is not set
+# LINUXTHREADS_OLD is not set
+# LINUXTHREADS_NEW is not set
+UCLIBC_HAS_THREADS_NATIVE=y
+UCLIBC_HAS_THREADS=y
+UCLIBC_HAS_TLS=y
+PTHREADS_DEBUG_SUPPORT=y
+UCLIBC_HAS_SYSLOG=y
+UCLIBC_HAS_LFS=y
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+MALLOC_GLIBC_COMPAT=y
+UCLIBC_DYNAMIC_ATEXIT=y
+COMPAT_ATEXIT=y
+UCLIBC_SUSV3_LEGACY=y
+# UCLIBC_SUSV3_LEGACY_MACROS is not set
+UCLIBC_SUSV4_LEGACY=y
+# UCLIBC_STRICT_HEADERS is not set
+# UCLIBC_HAS_STUBS is not set
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+UCLIBC_HAS___PROGNAME=y
+UCLIBC_HAS_PTY=y
+ASSUME_DEVPTS=y
+UNIX98PTY_ONLY=y
+UCLIBC_HAS_GETPT=y
+UCLIBC_HAS_LIBUTIL=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+
+#
+# Advanced Library Settings
+#
+UCLIBC_PWD_BUFFER_SIZE=256
+UCLIBC_GRP_BUFFER_SIZE=256
+
+#
+# Support various families of functions
+#
+# UCLIBC_LINUX_MODULE_24 is not set
+UCLIBC_LINUX_SPECIFIC=y
+UCLIBC_HAS_GNU_ERROR=y
+UCLIBC_BSD_SPECIFIC=y
+UCLIBC_HAS_BSD_ERR=y
+# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set
+# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
+# UCLIBC_NTP_LEGACY is not set
+# UCLIBC_SV4_DEPRECATED is not set
+UCLIBC_HAS_REALTIME=y
+UCLIBC_HAS_ADVANCED_REALTIME=y
+UCLIBC_HAS_EPOLL=y
+# UCLIBC_HAS_XATTR is not set
+# UCLIBC_HAS_PROFILING is not set
+UCLIBC_HAS_CRYPT_IMPL=y
+UCLIBC_HAS_CRYPT=y
+UCLIBC_HAS_NETWORK_SUPPORT=y
+UCLIBC_HAS_SOCKET=y
+UCLIBC_HAS_IPV4=y
+UCLIBC_HAS_IPV6=y
+UCLIBC_HAS_RPC=y
+UCLIBC_HAS_FULL_RPC=y
+UCLIBC_HAS_REENTRANT_RPC=y
+UCLIBC_USE_NETLINK=y
+UCLIBC_SUPPORT_AI_ADDRCONFIG=y
+UCLIBC_HAS_BSD_RES_CLOSE=y
+UCLIBC_HAS_COMPAT_RES_STATE=y
+# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
+UCLIBC_HAS_LIBRESOLV_STUB=y
+UCLIBC_HAS_LIBNSL_STUB=y
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+# UCLIBC_HAS_LOCALE is not set
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_4096=y
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_STDIO_FUTEXES=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+# UCLIBC_HAS_REGEX_OLD is not set
+UCLIBC_HAS_FNMATCH=y
+# UCLIBC_HAS_FNMATCH_OLD is not set
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_NFTW=y
+UCLIBC_HAS_FTW=y
+# UCLIBC_HAS_FTS is not set
+UCLIBC_HAS_GLOB=y
+UCLIBC_HAS_GNU_GLOB=y
+# UCLIBC_HAS_UTMPX is not set
+
+#
+# Library Installation Options
+#
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="/usr/"
+MULTILIB_DIR="lib"
+HARDWIRED_ABSPATH=y
+
+#
+# Security options
+#
+UCLIBC_HAS_ARC4RANDOM=y
+# HAVE_NO_SSP is not set
+# UCLIBC_HAS_SSP is not set
+UCLIBC_BUILD_RELRO=y
+# UCLIBC_BUILD_NOW is not set
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# uClibc development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+UCLIBC_EXTRA_CFLAGS=""
+# DODEBUG is not set
+DOSTRIP=y
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+# UCLIBC_HAS_BACKTRACE is not set
+WARNINGS="-Wall"
+EXTRA_WARNINGS=y
+# DOMULTI is not set
+# UCLIBC_MJN3_ONLY is not set
diff --git a/target/x86/Makefile b/target/x86/Makefile
index 436ca25ce..dc17f0756 100644
--- a/target/x86/Makefile
+++ b/target/x86/Makefile
@@ -23,7 +23,7 @@ endif
ifeq ($(ADK_TARGET_FS),archive)
imageinstall: $(BIN_DIR)/$(ROOTFSTARBALL)
@echo "The RootFS tarball is: $(BIN_DIR)/$(ROOTFSTARBALL)"
-ifeq ($(ADK_TARGET_SYSTEM_QEMU_X86),y)
+ifeq ($(ADK_HARDWARE_QEMU),y)
@cp $(KERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
@echo "Use following command to create a QEMU Image:"
@echo "sudo ./scripts/create-image.sh -f ${ADK_TARGET_ROOTFS} qemu-${CPU_ARCH}.img $(BIN_DIR)/$(ROOTFSTARBALL)"
@@ -41,7 +41,7 @@ imageinstall: $(BIN_DIR)/$(INITRAMFS)
@cp $(KERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
@echo 'The kernel file is: $(BIN_DIR)/${TARGET_KERNEL}'
@echo 'The initramfs image is: ${BIN_DIR}/${INITRAMFS}'
-ifeq ($(ADK_TARGET_SYSTEM_QEMU_X86),y)
+ifeq ($(ADK_HARDWARE_QEMU),y)
@echo "Start qemu with following command line:"
@echo 'qemu -nographic -net user,hostfwd=tcp::2222-:22 -net nic,model=e1000 -kernel $(BIN_DIR)/$(TARGET_KERNEL) -initrd ${BIN_DIR}/${INITRAMFS}'
endif
@@ -50,7 +50,7 @@ ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinitramfs
@cp $(KERNEL) $(BIN_DIR)/${TARGET_KERNEL}
@echo 'The kernel+initramfs file is: $(BIN_DIR)/${TARGET_KERNEL}'
-ifeq ($(ADK_TARGET_SYSTEM_QEMU_X86),y)
+ifeq ($(ADK_HARDWARE_QEMU),y)
@echo "Start qemu with following command line:"
@echo 'qemu -nographic -net user,hostfwd=tcp::2222-:22 -net nic,model=e1000 -kernel $(BIN_DIR)/$(TARGET_KERNEL)'
endif
diff --git a/target/x86/sys-available/intel-atom b/target/x86/sys-available/intel-atom
new file mode 100644
index 000000000..392a74d64
--- /dev/null
+++ b/target/x86/sys-available/intel-atom
@@ -0,0 +1,28 @@
+config ADK_TARGET_SYSTEM_INTEL_ATOM
+ bool "Intel Atom (NM10)"
+ select ADK_x86
+ select ADK_intel_atom
+ select ADK_CPU_ATOM
+ select ADK_KERNEL_MATOM
+ select ADK_KERNEL_MII
+ select ADK_TARGET_CPU_WITH_MMX
+ select ADK_TARGET_CPU_WITH_SSE
+ select ADK_TARGET_CPU_WITH_SSE2
+ select ADK_TARGET_CPU_WITH_SSE3
+ select ADK_TARGET_CPU_WITH_SSSE3
+ select ADK_TARGET_CPU_WITH_HT
+ select ADK_TARGET_CPU_WITH_MTRR
+ select ADK_TARGET_WITH_USB_BOOT
+ select ADK_TARGET_WITH_USB
+ select ADK_TARGET_WITH_VGA
+ select ADK_TARGET_WITH_INPUT
+ select ADK_TARGET_WITH_RTC
+ select ADK_TARGET_WITH_CF
+ select ADK_TARGET_WITH_INPUT
+ select ADK_TARGET_WITH_HDD
+ select ADK_TARGET_WITH_PCI
+ select ADK_TARGET_WITH_ACPI
+ select ADK_TARGET_WITH_SATA
+ help
+ System profile for Intel Atom.
+
diff --git a/target/x86/sys-available/qemu-x86 b/target/x86/sys-available/qemu-i686
index 378d9fb8e..d77d074e3 100644
--- a/target/x86/sys-available/qemu-x86
+++ b/target/x86/sys-available/qemu-i686
@@ -1,7 +1,7 @@
-config ADK_TARGET_SYSTEM_QEMU_X86
+config ADK_TARGET_SYSTEM_QEMU_I686
bool "Qemu Emulator"
select ADK_x86
- select ADK_qemu_x86
+ select ADK_qemu_i686
select ADK_CPU_I686
select ADK_HARDWARE_QEMU
select ADK_TARGET_WITH_VGA
@@ -9,5 +9,5 @@ config ADK_TARGET_SYSTEM_QEMU_X86
select ADK_TARGET_WITH_PCI
select ADK_TARGET_WITH_HDD
help
- Support for Qemu Emulator.
+ Support for Qemu Emulator (i686).
diff --git a/tests/adk.exp b/tests/adk.exp
deleted file mode 100644
index 537173234..000000000
--- a/tests/adk.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-load_generic_config "unix";
-set_board_info hostname 192.168.1.24
-set_board_info username root
-set_board_info rsh_prog /usr/bin/ssh
-set_board_info rcp_prog /usr/bin/scp
diff --git a/tests/adk.exp.in b/tests/adk.exp.in
index 7b35b775d..c5a7b8948 100644
--- a/tests/adk.exp.in
+++ b/tests/adk.exp.in
@@ -1,5 +1,5 @@
load_generic_config "unix";
set_board_info hostname @ADK_TARGET_IP@
set_board_info username root
-set_board_info rsh_prog /usr/bin/ssh
-set_board_info rcp_prog /usr/bin/scp
+set_board_info rsh_prog "/usr/bin/ssh -p @ADK_TARGET_PORT@"
+set_board_info rcp_prog "/usr/bin/scp -P @ADK_TARGET_PORT@"
diff --git a/tests/master.exp b/tests/master.exp
deleted file mode 100644
index 0617230d2..000000000
--- a/tests/master.exp
+++ /dev/null
@@ -1,4 +0,0 @@
-lappend boards_dir /home/wbx/openadk/tests
-lappend boards_dir /usr/share/dejagnu
-set myboard adk
-set target_list adk
diff --git a/tests/master.exp.in b/tests/master.exp.in
index 297c0ce5d..72d8ab9e6 100644
--- a/tests/master.exp.in
+++ b/tests/master.exp.in
@@ -2,3 +2,4 @@ lappend boards_dir @TOPDIR@/tests
lappend boards_dir /usr/share/dejagnu
set myboard adk
set target_list adk
+set verbose 1
diff --git a/toolchain/uClibc/Makefile b/toolchain/uClibc/Makefile
index bd1b6e8a3..d94bd982b 100644
--- a/toolchain/uClibc/Makefile
+++ b/toolchain/uClibc/Makefile
@@ -21,6 +21,9 @@ endif
ifeq ($(ADK_TARGET_ENDIAN),big)
UCLIBCCFG=uclibc.config.big
endif
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_CRIS),y)
+UCLIBCCFG=uclibc.config.v32
+endif
$(WRKBUILD)/.headers:
$(SED) 's,^CROSS=.*,CROSS=$(TARGET_CROSS),g' $(WRKBUILD)/Rules.mak
diff --git a/toolchain/uClibc/patches/uClibc-0.9.32-use-arch-pt-initfini_c.patch b/toolchain/uClibc/patches/uClibc-0.9.32-use-arch-pt-initfini_c.patch
new file mode 100644
index 000000000..3eb5b15c2
--- /dev/null
+++ b/toolchain/uClibc/patches/uClibc-0.9.32-use-arch-pt-initfini_c.patch
@@ -0,0 +1,39 @@
+SH provides a pt-initfini.c, so use that instead of
+libpthread/nptl/sysdeps/pthread/pt-initfini.c
+
+This prevents:
+ libpthread/nptl/sysdeps/pthread/crti.S: Assembler messages:
+ libpthread/nptl/sysdeps/pthread/crti.S:25: Error: pcrel too far
+ libpthread/nptl/sysdeps/pthread/crti.S:26: Error: pcrel too far
+ libpthread/nptl/sysdeps/pthread/crti.S:28: Error: pcrel too far
+ libpthread/nptl/sysdeps/pthread/crti.S:53: Error: pcrel too far
+ libpthread/nptl/sysdeps/pthread/crti.S:56: Error: pcrel too far
+ make[1]: *** [libpthread/nptl/sysdeps/pthread/crti.o] Error 1
+
+There is probably a better way to handle this... but since 9381d622e2411a35a5fd7
+I do not want to even try.
+
+--- uClibc-0.9.32/libpthread/nptl/sysdeps/pthread/Makefile.in 2011-06-11 00:58:59.539341382 -0400
++++ uClibc-0.9.32/libpthread/nptl/sysdeps/pthread/Makefile.in 2011-06-11 00:57:52.848172407 -0400
+@@ -76,12 +76,21 @@
+ ASFLAGS-crti.S = -g0
+ ASFLAGS-crtn.S = -g0
+
++ifneq ($(wildcard $(top_srcdir)libpthread/nptl/sysdeps/unix/sysv/linux/$(TARGET_ARCH)/pt-initfini.c),)
++$(libpthread_pthread_OUT)/pt-initfini.s: $(top_srcdir)libpthread/nptl/sysdeps/unix/sysv/linux/$(TARGET_ARCH)/pt-initfini.c
++ $(compile.c)
++$(libpthread_pthread_OUT)/defs.h: $(top_srcdir)libpthread/nptl/sysdeps/unix/sysv/linux/$(TARGET_ARCH)/pt-initfini.c
++ $(do_sed) -n -e '/@TESTS_BEGIN/,/@TESTS_END/p' $< | \
++ $(AWK) -f $(top_srcdir)extra/scripts/defs.awk > $@.tmp
++ $(Q)mv $@.tmp $@
++else
+ $(libpthread_pthread_OUT)/pt-initfini.s: $(libpthread_pthread_DIR)/pt-initfini.c
+ $(compile.c)
+ $(libpthread_pthread_OUT)/defs.h: $(libpthread_pthread_DIR)/pt-initfini.c
+ $(do_sed) -n -e '/@TESTS_BEGIN/,/@TESTS_END/p' $< | \
+ $(AWK) -f $(top_srcdir)extra/scripts/defs.awk > $@.tmp
+ $(Q)mv $@.tmp $@
++endif
+
+ $(libpthread_pthread_OUT)/crti.S: $(libpthread_pthread_OUT)/pt-initfini.s $(libpthread_pthread_OUT)/defs.h
+ $(do_sed) -n -e '/[ ]*\.file/d' \