From 0402c407c99a0eb312899ed931489c7974fb110f Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Tue, 5 Apr 2011 22:06:59 +0200
Subject: add devel subpackage

---
 package/libmpc/Makefile | 11 ++++++++---
 package/mpfr/Makefile   | 16 ++++++++++++----
 2 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/package/libmpc/Makefile b/package/libmpc/Makefile
index 1d976b17e..4c92d1fb1 100644
--- a/package/libmpc/Makefile
+++ b/package/libmpc/Makefile
@@ -9,14 +9,19 @@ PKG_SECTION:=		libs
 PKG_BUILDDEP:=		gmp mpfr
 PKG_URL:=		http://www.multiprecision.org/
 
-PKG_SUBPKGS:=		LIBMPC
+PKG_SUBPKGS:=		LIBMPC LIBMPC_DEV
 
 include ${TOPDIR}/mk/package.mk
 
 $(eval $(call PKG_template,LIBMPC,libmpc,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,LIBMPC_DEV,libmpc-dev,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
 
-post-install:
+libmpc-install:
 	${INSTALL_DIR} ${IDIR_LIBMPC}/usr/lib
-	${CP} ${WRKINST}/usr/lib/libmpc.so* ${IDIR_LIBMPC}/usr/lib/
+	${CP} ${WRKINST}/usr/lib/libmpc.so* ${IDIR_LIBMPC}/usr/lib
+
+libmpc-dev-install:
+	${INSTALL_DIR} ${IDIR_LIBMPC_DEV}/usr/include
+	${CP} ${WRKINST}/usr/include/* ${IDIR_LIBMPC_DEV}/usr/include
 
 include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/mpfr/Makefile b/package/mpfr/Makefile
index 77f2c1d6a..a3d91b707 100644
--- a/package/mpfr/Makefile
+++ b/package/mpfr/Makefile
@@ -6,14 +6,22 @@ include ${TOPDIR}/toolchain/mpfr/Makefile.inc
 
 PKG_DESCR:=		multi precision library
 PKG_SECTION:=		libs
-PKG_URL:=		http://www.mpfr.org
+PKG_URL:=		http://www.mpfr.org/
+PKG_SUBPKGS:=		MPFR MPFR_DEV
+PKGSC_MPFR_DEV:=	devel
+PKGSD_MPFR_DEV:=	mpfr headers
 
 include ${TOPDIR}/mk/package.mk
 
-$(eval $(call PKG_template,MPFR,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,MPFR,mpfr,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,MPFR_DEV,mpfr-dev,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_MPFR_DEV},${PKGSC_MPFR_DEV}))
 
-post-install:
+mpfr-install:
 	${INSTALL_DIR} ${IDIR_MPFR}/usr/lib
-	${CP} ${WRKINST}/usr/lib/libmpfr.so* ${IDIR_MPFR}/usr/lib/
+	${CP} ${WRKINST}/usr/lib/libmpfr.so* ${IDIR_MPFR}/usr/lib
+
+mpfr-dev-install:
+	${INSTALL_DIR} ${IDIR_MPFR_DEV}/usr/include
+	$(CP) $(WRKINST)/usr/include/* ${IDIR_MPFR_DEV}/usr/include
 
 include ${TOPDIR}/mk/pkg-bottom.mk
-- 
cgit v1.2.3


From 4090002fc466e4319c95ab214c3f92ecc7b59184 Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Wed, 6 Apr 2011 14:03:06 +0200
Subject: new package zip

---
 package/zip/Makefile | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 package/zip/Makefile

diff --git a/package/zip/Makefile b/package/zip/Makefile
new file mode 100644
index 000000000..1cc0f8ec0
--- /dev/null
+++ b/package/zip/Makefile
@@ -0,0 +1,34 @@
+# 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:=		zip
+PKG_VERSION:=		3.0
+PKG_RELEASE:=		1
+PKG_MD5SUM:=		7b74551e63f8ee6aab6fbc86676c0d37
+PKG_DESCR:=		zip compression utility
+PKG_SECTION:=		archive
+PKG_URL:=		http://www.info-zip.org/Zip.html
+PKG_SITES:=		ftp://ftp.info-zip.org/pub/infozip/src/
+
+WRKDIST=		$(WRKDIR)/$(PKG_NAME)30
+DISTFILES:=		$(PKG_NAME)30.tgz
+
+include ${TOPDIR}/mk/package.mk
+
+$(eval $(call PKG_template,ZIP,zip,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+
+CONFIG_STYLE:=		minimal
+INSTALL_STYLE:=		manual
+
+XAKE_FLAGS+=		GCC_HONOUR_COPTS=s
+CONFIGURE_PROG:=	unix/configure
+MAKE_FILE:=		unix/Makefile
+ALL_TARGET:=		generic_gcc
+
+zip-install:
+	${INSTALL_DIR} ${IDIR_ZIP}/usr/bin
+	${CP} ${WRKBUILD}/zip ${IDIR_ZIP}/usr/bin
+
+include ${TOPDIR}/mk/pkg-bottom.mk
-- 
cgit v1.2.3


From 0c8fa8e61a481d2d25c55e20c0ebd5176375e623 Mon Sep 17 00:00:00 2001
From: wbx <wbx@openadk.org>
Date: Tue, 12 Apr 2011 19:21:40 +0200
Subject: refresh lemote yeelong support

---
 mk/build.mk                                        |   2 +-
 mk/rootfs.mk                                       |   2 +-
 package/openjdk/patches/disable-sizers.patch       |  14 --
 target/config/Config.in                            |   3 +
 target/linux/Config.in                             |   1 +
 target/linux/config/Config.in.block                |   1 +
 target/linux/config/Config.in.graphics             |  19 ++
 target/linux/config/Config.in.input                |   5 +
 target/linux/config/Config.in.mips                 |  16 ++
 target/linux/config/Config.in.netdevice            |  11 ++
 target/linux/config/Config.in.systems              |   7 +
 target/linux/config/Config.in.usb                  |   7 +
 target/linux/patches/2.6.37/usb-defaults-off.patch |  32 ++++
 .../patches/2.6.37/vga-cons-default-off.patch      |  12 ++
 target/mips64el/Makefile                           |  32 ++++
 target/mips64el/kernel.config                      | 207 +++++++++++++--------
 target/mips64el/sys-available/lemote-yeelong       |   2 +
 17 files changed, 280 insertions(+), 93 deletions(-)
 create mode 100644 target/linux/config/Config.in.mips
 create mode 100644 target/linux/patches/2.6.37/usb-defaults-off.patch
 create mode 100644 target/linux/patches/2.6.37/vga-cons-default-off.patch

diff --git a/mk/build.mk b/mk/build.mk
index 635d8bc63..4774106ee 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -186,7 +186,7 @@ switch:
 
 kernelconfig:
 	cp $(TOPDIR)/target/$(ADK_TARGET_ARCH)/kernel.config $(BUILD_DIR)/linux/.config
-	${KERNEL_MAKE_ENV} ${MAKE} ${KERNEL_MAKE_OPTS} -C $(BUILD_DIR)/linux menuconfig
+	${KERNEL_MAKE_ENV} ${MAKE} ARCH=$(ARCH) ${KERNEL_MAKE_OPTS} -C $(BUILD_DIR)/linux menuconfig
 	cp $(BUILD_DIR)/linux/.config $(TOPDIR)/target/$(ADK_TARGET_ARCH)/kernel.config
 
 # create a new package from package/.template
diff --git a/mk/rootfs.mk b/mk/rootfs.mk
index ee63d8c2d..2da69d017 100644
--- a/mk/rootfs.mk
+++ b/mk/rootfs.mk
@@ -27,7 +27,7 @@ endif
 
 $(eval $(call rootfs_template,cf,CF,$(ROOTFS)))
 $(eval $(call rootfs_template,mmc,MMC,$(ROOTFS)))
-$(eval $(call rootfs_template,usb,USB,rootdelay=3))
+$(eval $(call rootfs_template,usb,USB,rootwait))
 $(eval $(call rootfs_template,archive,ARCHIVE,$(ROOTFS)))
 $(eval $(call rootfs_template,initramfs,INITRAMFS))
 $(eval $(call rootfs_template,initramfs-piggyback,INITRAMFS_PIGGYBACK))
diff --git a/package/openjdk/patches/disable-sizers.patch b/package/openjdk/patches/disable-sizers.patch
index b80ee0e69..e69de29bb 100644
--- a/package/openjdk/patches/disable-sizers.patch
+++ b/package/openjdk/patches/disable-sizers.patch
@@ -1,14 +0,0 @@
-diff -Nur w-openjdk-6.orig//openjdk-6/jdk/make/sun/xawt/Makefile w-openjdk-6/openjdk-6/jdk/make/sun/xawt/Makefile
---- w-openjdk-6.orig//openjdk-6/jdk/make/sun/xawt/Makefile	2011-02-28 17:06:12.000000000 +0100
-+++ w-openjdk-6/openjdk-6/jdk/make/sun/xawt/Makefile	2011-04-11 19:50:34.000000000 +0200
-@@ -237,7 +237,9 @@
- 	$(BOOT_JAVA_CMD) -cp $(WRAPPER_GENERATOR_TEMPDIR) WrapperGenerator \
- 	    $(SIZER_DIR) $(XLIBTYPES) "sizer" $(subst .,,$(suffix $(basename $@)))
- 
--$(SIZES): $(SIZERS)
-+#$(SIZES): $(SIZERS)
-+$(SIZES):
-+	@$(prep-target)
- 	@if [ "$(DOHACK)$@" = "true$(PREDEFINED_SIZES)" ]; then \
- 	    $(ECHO) COPYING $(PREDEFINED_SIZES_TMPL) into $@; \
- 	    $(CP) $(PREDEFINED_SIZES_TMPL) $@; \
diff --git a/target/config/Config.in b/target/config/Config.in
index 7dd6c1947..6fee28c9e 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -180,6 +180,7 @@ config ADK_TARGET_CFLAGS
 
 config ADK_TARGET_CMDLINE
 	string
+	default "console=tty no_auto_cmd" if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
 	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
@@ -285,6 +286,7 @@ default ADK_TARGET_ROOTFS_ARCHIVE
 config ADK_TARGET_ROOTFS_INITRAMFS
 	bool "initramfs filesystem"
 	depends on \
+		ADK_LINUX_MIPS64EL || \
 		ADK_LINUX_PPC || \
 		ADK_LINUX_SPARC || \
 		ADK_LINUX_X86 || \
@@ -298,6 +300,7 @@ config ADK_TARGET_ROOTFS_INITRAMFS_PIGGYBACK
 	bool "initramfs filesystem included into kernel image"
 	select ADK_LINUX_INITRAMFS_BUILTIN
 	depends on \
+		ADK_LINUX_MIPS64EL || \
 		ADK_LINUX_PPC || \
 		ADK_LINUX_SPARC || \
 		ADK_LINUX_X86 || \
diff --git a/target/linux/Config.in b/target/linux/Config.in
index 6d482b1ab..cf4890059 100644
--- a/target/linux/Config.in
+++ b/target/linux/Config.in
@@ -17,6 +17,7 @@ source target/linux/config/Config.in.bluetooth
 source target/linux/config/Config.in.watchdog
 source target/linux/config/Config.in.leds
 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.kvm
diff --git a/target/linux/config/Config.in.block b/target/linux/config/Config.in.block
index 1019477c1..a6f26dc71 100644
--- a/target/linux/config/Config.in.block
+++ b/target/linux/config/Config.in.block
@@ -97,6 +97,7 @@ config ADK_KERNEL_PATA_AMD
 	default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D2
 	default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D13
 	default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
+	default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
 	default n
 
 config ADK_KERNEL_PATA_SC1200
diff --git a/target/linux/config/Config.in.graphics b/target/linux/config/Config.in.graphics
index b6834005f..1aafdf85f 100644
--- a/target/linux/config/Config.in.graphics
+++ b/target/linux/config/Config.in.graphics
@@ -10,6 +10,13 @@ config ADK_KERNEL_VT_CONSOLE
 	default y if ADK_TARGET_WITH_VGA
 	default n
 
+config ADK_KERNEL_FONTS
+	boolean
+
+config ADK_KERNEL_FONT_8x16
+	boolean
+	select ADK_KERNEL_FONTS
+
 config ADK_KERNEL_FB
  	boolean
  
@@ -48,6 +55,18 @@ config ADK_KERNEL_FB_GEODE_LX
  	help
 	 Framebuffer support for ALIX boards with VGA.
 
+config ADK_KERNEL_FB_SM7XX
+	prompt "................................ Framebuffer support for Lemote Yeelong"
+	tristate
+	select ADK_KERNEL_FB
+	select ADK_KERNEL_FRAMEBUFFER_CONSOLE
+	select ADK_KERNEL_FONT_8x16
+	default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
+ 	default n
+	depends on ADK_TARGET_SYSTEM_LEMOTE_YEELONG
+ 	help
+	 Framebuffer support for Lemote Yeelong.
+
 config ADK_HARDWARE_GRAPHICS_INTEL_I915
 	prompt "................................ Support for Intel graphic cards (AGP/DRM/KMS)"
 	boolean
diff --git a/target/linux/config/Config.in.input b/target/linux/config/Config.in.input
index 754cf7340..429c2ad73 100644
--- a/target/linux/config/Config.in.input
+++ b/target/linux/config/Config.in.input
@@ -5,6 +5,7 @@ config ADK_KERNEL_INPUT
 	boolean
 	default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
 	default y if ADK_TARGET_SYSTEM_IBM_X40
+	default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
 	default y if ADK_TARGET_SYSTEM_SHUTTLE_SA76G2
 	default n
 
@@ -12,6 +13,7 @@ config ADK_KERNEL_INPUT_KEYBOARD
 	boolean
 	default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
 	default y if ADK_TARGET_SYSTEM_IBM_X40
+	default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
 	default y if ADK_TARGET_SYSTEM_SHUTTLE_SA76G2
 	default n
 
@@ -19,6 +21,7 @@ config ADK_KERNEL_KEYBOARD_ATKBD
 	boolean
 	default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
 	default y if ADK_TARGET_SYSTEM_IBM_X40
+	default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
 	default y if ADK_TARGET_SYSTEM_SHUTTLE_SA76G2
 	default n
 
@@ -26,6 +29,7 @@ config ADK_KERNEL_INPUT_MOUSE
 	boolean
 	default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
 	default y if ADK_TARGET_SYSTEM_IBM_X40
+	default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
 	default y if ADK_TARGET_SYSTEM_SHUTTLE_SA76G2
 	default n
 
@@ -33,6 +37,7 @@ config ADK_KERNEL_INPUT_MOUSEDEV
 	boolean
 	default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX1C
 	default y if ADK_TARGET_SYSTEM_IBM_X40
+	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.mips b/target/linux/config/Config.in.mips
new file mode 100644
index 000000000..0b0d1ea4f
--- /dev/null
+++ b/target/linux/config/Config.in.mips
@@ -0,0 +1,16 @@
+menu "MIPS devices support"
+
+config ADK_KERNEL_MIPS_PLATFORM_DEVICES
+	boolean
+
+config ADK_KERNEL_LEMOTE_YEELOONG2F
+	prompt ".................................. RTC support for PC CMOS"
+	boolean
+	select ADK_KERNEL_MIPS_PLATFORM_DEVICES
+	default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
+ 	default n
+	depends on ADK_TARGET_SYSTEM_LEMOTE_YEELONG
+ 	help
+	  Embedded controller suppport.	
+
+endmenu
diff --git a/target/linux/config/Config.in.netdevice b/target/linux/config/Config.in.netdevice
index 6c30397a4..5a7dedd14 100644
--- a/target/linux/config/Config.in.netdevice
+++ b/target/linux/config/Config.in.netdevice
@@ -49,6 +49,17 @@ config ADK_KERNEL_NATSEMI
 	default n
 	help
 
+config ADK_KERNEL_8139TOO
+	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_LEMOTE_YEELONG
+	default n
+	help
+
+
 config ADK_KERNEL_VIA_RHINE
 	boolean
 	select ADK_KERNEL_NETDEVICES
diff --git a/target/linux/config/Config.in.systems b/target/linux/config/Config.in.systems
index 3d933c5ed..d744e45a1 100644
--- a/target/linux/config/Config.in.systems
+++ b/target/linux/config/Config.in.systems
@@ -20,6 +20,13 @@ config ADK_KERNEL_ATHEROS_AR71XX
 config ADK_KERNEL_AR71XX_MACH_RB4XX
 	boolean
 
+# mips64 systems
+config ADK_KERNEL_MACH_LOONGSON
+	boolean
+
+config ADK_KERNEL_LEMOTE_MACH2F
+	boolean
+
 # arm systems
 config ADK_KERNEL_ARCH_AT91
 	boolean
diff --git a/target/linux/config/Config.in.usb b/target/linux/config/Config.in.usb
index 52eb92864..e7905b531 100644
--- a/target/linux/config/Config.in.usb
+++ b/target/linux/config/Config.in.usb
@@ -21,6 +21,10 @@ config ADK_KERNEL_USB_UHCI_HCD
 	boolean
 	select ADK_PACKAGE_KMOD_USB_CONTROLLER
 
+config ADK_KERNEL_USB_OHCI_HCD
+	boolean
+	select ADK_PACKAGE_KMOD_USB_CONTROLLER
+
 config ADK_KPACKAGE_KMOD_USB
 	prompt "kmod-usb......................... USB support"
 	tristate
@@ -30,6 +34,7 @@ config ADK_KPACKAGE_KMOD_USB
 	default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D2
 	default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D13
 	default y if ADK_TARGET_SYSTEM_IBM_X40
+	default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
 	default y if ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
 	default n
 	help
@@ -69,6 +74,7 @@ config ADK_KPACKAGE_KMOD_USB_UHCI_HCD
 	depends on !ADK_KERNEL_USB_UHCI_HCD
 	depends on !ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
 	default y if ADK_TARGET_SYSTEM_IBM_X40
+	default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
 	default n
 	help
 	  The Universal Host Controller Interface is a standard by Intel for
@@ -138,6 +144,7 @@ config ADK_KPACKAGE_KMOD_USB_EHCI_HCD
 	default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D2
 	default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX2D13
 	default y if ADK_TARGET_SYSTEM_IBM_X40
+	default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
 	default n
 	help
 	  The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0
diff --git a/target/linux/patches/2.6.37/usb-defaults-off.patch b/target/linux/patches/2.6.37/usb-defaults-off.patch
new file mode 100644
index 000000000..31367108a
--- /dev/null
+++ b/target/linux/patches/2.6.37/usb-defaults-off.patch
@@ -0,0 +1,32 @@
+diff -Nur linux-2.6.37.orig//drivers/usb/core/Kconfig linux-2.6.37/drivers/usb/core/Kconfig
+--- linux-2.6.37.orig//drivers/usb/core/Kconfig	2011-01-05 01:50:19.000000000 +0100
++++ linux-2.6.37/drivers/usb/core/Kconfig	2011-04-12 19:04:23.000000000 +0200
+@@ -59,7 +59,7 @@
+ config USB_DEVICE_CLASS
+ 	bool "USB device class-devices (DEPRECATED)"
+ 	depends on USB
+-	default y
++	default n
+ 	---help---
+ 	  Userspace access to USB devices is granted by device-nodes exported
+ 	  directly from the usbdev in sysfs. Old versions of the driver
+diff -Nur linux-2.6.37.orig//drivers/usb/host/Kconfig linux-2.6.37/drivers/usb/host/Kconfig
+--- linux-2.6.37.orig//drivers/usb/host/Kconfig	2011-01-05 01:50:19.000000000 +0100
++++ linux-2.6.37/drivers/usb/host/Kconfig	2011-04-12 19:04:48.000000000 +0200
+@@ -62,6 +62,7 @@
+ config USB_EHCI_ROOT_HUB_TT
+ 	bool "Root Hub Transaction Translators"
+ 	depends on USB_EHCI_HCD
++	default n
+ 	---help---
+ 	  Some EHCI chips have vendor-specific extensions to integrate
+ 	  transaction translators, so that no OHCI or UHCI companion
+@@ -74,7 +75,7 @@
+ config USB_EHCI_TT_NEWSCHED
+ 	bool "Improved Transaction Translator scheduling"
+ 	depends on USB_EHCI_HCD
+-	default y
++	default n
+ 	---help---
+ 	  This changes the periodic scheduling code to fill more of the low
+ 	  and full speed bandwidth available from the Transaction Translator
diff --git a/target/linux/patches/2.6.37/vga-cons-default-off.patch b/target/linux/patches/2.6.37/vga-cons-default-off.patch
new file mode 100644
index 000000000..178aeeeb9
--- /dev/null
+++ b/target/linux/patches/2.6.37/vga-cons-default-off.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-2.6.37.orig//drivers/video/console/Kconfig linux-2.6.37/drivers/video/console/Kconfig
+--- linux-2.6.37.orig//drivers/video/console/Kconfig	2011-01-05 01:50:19.000000000 +0100
++++ linux-2.6.37/drivers/video/console/Kconfig	2011-04-12 16:29:34.000000000 +0200
+@@ -7,7 +7,7 @@
+ config VGA_CONSOLE
+ 	bool "VGA text console" if EMBEDDED || !X86
+ 	depends on !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && !SUPERH && !BLACKFIN && !AVR32 && !MN10300 && (!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER)
+-	default y
++	default n
+ 	help
+ 	  Saying Y here will allow you to use Linux in text mode through a
+ 	  display that complies with the generic VGA standard. Virtually
diff --git a/target/mips64el/Makefile b/target/mips64el/Makefile
index 3c4a08f64..fa160b1ff 100644
--- a/target/mips64el/Makefile
+++ b/target/mips64el/Makefile
@@ -7,7 +7,11 @@ include $(TOPDIR)/mk/modules.mk
 include $(TOPDIR)/mk/kernel-build.mk
 include $(TOPDIR)/mk/image.mk
 
+ifeq ($(ADK_TARGET_SYSTEM_LEMOTE_YEELONG),y)
+KERNEL:=$(LINUX_DIR)/vmlinuz
+else
 KERNEL:=$(LINUX_DIR)/vmlinux
+endif
 
 ifeq ($(ADK_TARGET_FS),nfsroot)
 imageinstall: $(BIN_DIR)/$(ROOTFSUSERTARBALL)
@@ -31,3 +35,31 @@ imageinstall: $(BIN_DIR)/$(INITRAMFS)
 	@echo 'The initramfs image is: ${BIN_DIR}/${INITRAMFS}'
 	@echo 'qemu-system-mips64el -nographic -M malta -kernel $(BIN_DIR)/${TARGET_KERNEL} -initrd ${BIN_DIR}/${INITRAMFS}'
 endif
+ifeq ($(ADK_TARGET_FS),usb)
+imageinstall: $(BIN_DIR)/$(ROOTFSTARBALL)
+	@echo "The RootFS tarball is: $(BIN_DIR)/$(ROOTFSTARBALL)"
+ifeq ($(ADK_TARGET_SYSTEM_LEMOTE_YEELONG),y)
+	@echo "Startup the netbook and type del to enter PMON:"
+	@echo "PMON> load /dev/fs/ext2@usb0/boot/kernel"
+	@echo "PMON> g console=tty no_auto_cmd"
+endif
+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_MIPS64EL),y)
+	@echo "Start qemu with following command line:"
+	@echo 'qemu-system-mips64el -nographic -net user,hostfwd=tcp::2222-:22 -net nic,model=e1000 -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_MIPS64EL),y)
+	@echo "Start qemu with following command line:"
+	@echo 'qemu-system-mips64el -nographic -net user,hostfwd=tcp::2222-:22 -net nic,model=e1000 -kernel $(BIN_DIR)/$(TARGET_KERNEL)'
+endif
+endif
diff --git a/target/mips64el/kernel.config b/target/mips64el/kernel.config
index 40a48f745..9803b4212 100644
--- a/target/mips64el/kernel.config
+++ b/target/mips64el/kernel.config
@@ -1,14 +1,13 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.36
-# Tue Jan  4 13:47:01 2011
+# Linux/mips 2.6.37 Kernel Configuration
+# Tue Apr 12 15:11:16 2011
 #
 CONFIG_MIPS=y
 
 #
 # Machine selection
 #
-CONFIG_ZONE_DMA=y
 # CONFIG_MIPS_ALCHEMY is not set
 # CONFIG_AR7 is not set
 # CONFIG_ATHEROS_AR71XX is not set
@@ -19,8 +18,8 @@ CONFIG_ZONE_DMA=y
 # CONFIG_MACH_JAZZ is not set
 # CONFIG_MACH_JZ4740 is not set
 # CONFIG_LASAT is not set
-# CONFIG_MACH_LOONGSON is not set
-CONFIG_MIPS_MALTA=y
+CONFIG_MACH_LOONGSON=y
+# CONFIG_MIPS_MALTA is not set
 # CONFIG_MIPS_SIM is not set
 # CONFIG_NEC_MARKEINS is not set
 # CONFIG_MACH_VR41XX is not set
@@ -51,9 +50,14 @@ CONFIG_MIPS_MALTA=y
 # CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
 # CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
 # CONFIG_ALCHEMY_GPIO_INDIRECT is not set
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
 CONFIG_CAVIUM_OCTEON_HELPER=y
+# CONFIG_LEMOTE_FULOONG2E is not set
+CONFIG_LEMOTE_MACH2F=y
+CONFIG_CS5536=y
+# CONFIG_CS5536_MFGPT is not set
 CONFIG_LOONGSON_UART_BASE=y
-# CONFIG_LOONGSON_MC146818 is not set
+CONFIG_LOONGSON_MC146818=y
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_ARCH_HAS_ILOG2_U32 is not set
 # CONFIG_ARCH_HAS_ILOG2_U64 is not set
@@ -65,8 +69,6 @@ CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_CMOS_UPDATE=y
 CONFIG_SCHED_OMIT_FRAME_POINTER=y
 CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
-CONFIG_ARCH_MAY_HAVE_PC_FDC=y
-CONFIG_BOOT_RAW=y
 CONFIG_CEVT_R4K_LIB=y
 CONFIG_CEVT_R4K=y
 CONFIG_CSRC_R4K_LIB=y
@@ -75,89 +77,68 @@ CONFIG_DMA_NONCOHERENT=y
 CONFIG_NEED_DMA_MAP_STATE=y
 CONFIG_SYS_HAS_EARLY_PRINTK=y
 CONFIG_I8259=y
-CONFIG_MIPS_BONITO64=y
-CONFIG_MIPS_MSC=y
 # CONFIG_MIPS_MACHINE is not set
 # CONFIG_NO_IOPORT is not set
 CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_ISA_DMA_SUPPORT_BROKEN=y
 CONFIG_ISA_DMA_API=y
-# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_GENERIC_GPIO=y
 CONFIG_CPU_LITTLE_ENDIAN=y
-CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
 CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
-CONFIG_SYS_SUPPORTS_HUGETLBFS=y
 CONFIG_IRQ_CPU=y
-CONFIG_IRQ_GIC=y
-CONFIG_MIPS_BOARDS_GEN=y
-CONFIG_PCI_GT64XXX_PCI0=y
-CONFIG_SWAP_IO_SPACE=y
 CONFIG_BOOT_ELF32=y
-CONFIG_MIPS_L1_CACHE_SHIFT=6
+CONFIG_MIPS_L1_CACHE_SHIFT=5
 
 #
 # CPU selection
 #
-# CONFIG_CPU_MIPS32_R1 is not set
-# CONFIG_CPU_MIPS32_R2 is not set
-CONFIG_CPU_MIPS64_R1=y
-# CONFIG_CPU_NEVADA is not set
-# CONFIG_CPU_RM7000 is not set
+CONFIG_CPU_LOONGSON2F=y
+CONFIG_CPU_NOP_WORKAROUNDS=y
+CONFIG_CPU_JUMP_WORKAROUNDS=y
+CONFIG_CPU_LOONGSON2F_WORKAROUNDS=y
 CONFIG_SYS_SUPPORTS_ZBOOT=y
-CONFIG_SYS_HAS_CPU_MIPS32_R1=y
-CONFIG_SYS_HAS_CPU_MIPS32_R2=y
-CONFIG_SYS_HAS_CPU_MIPS64_R1=y
-CONFIG_SYS_HAS_CPU_NEVADA=y
-CONFIG_SYS_HAS_CPU_RM7000=y
-CONFIG_CPU_MIPS64=y
-CONFIG_CPU_MIPSR1=y
+CONFIG_CPU_LOONGSON2=y
+CONFIG_SYS_HAS_CPU_LOONGSON2F=y
 CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
 CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
 CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
 CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
-CONFIG_CPU_SUPPORTS_HUGEPAGES=y
-CONFIG_HARDWARE_WATCHPOINTS=y
+CONFIG_CPU_SUPPORTS_CPUFREQ=y
+CONFIG_CPU_SUPPORTS_ADDRWINCFG=y
+CONFIG_CPU_SUPPORTS_UNCACHED_ACCELERATED=y
 
 #
 # Kernel type
 #
 # CONFIG_32BIT is not set
 CONFIG_64BIT=y
-CONFIG_PAGE_SIZE_4KB=y
-# CONFIG_PAGE_SIZE_16KB is not set
+CONFIG_PAGE_SIZE_16KB=y
 # CONFIG_PAGE_SIZE_64KB is not set
+CONFIG_FORCE_MAX_ZONEORDER=11
 CONFIG_BOARD_SCACHE=y
-CONFIG_MIPS_CPU_SCACHE=y
-CONFIG_CPU_HAS_PREFETCH=y
 CONFIG_MIPS_MT_DISABLED=y
-# CONFIG_MIPS_MT_SMP is not set
-CONFIG_SYS_SUPPORTS_MULTITHREADING=y
-# CONFIG_MIPS_VPE_LOADER is not set
-# CONFIG_MIPS_CMP is not set
 # CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
-# CONFIG_CPU_HAS_SMARTMIPS is not set
+CONFIG_CPU_HAS_WB=y
 CONFIG_CPU_HAS_SYNC=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_CPU_SUPPORTS_HIGHMEM=y
-CONFIG_SYS_SUPPORTS_SMARTMIPS=y
-CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_SYS_SUPPORTS_HIGHMEM=y
 CONFIG_ARCH_POPULATES_NODE_MAP=y
 CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_SPARSEMEM_STATIC=y
 CONFIG_PAGEFLAGS_EXTENDED=y
 CONFIG_SPLIT_PTLOCK_CPUS=4
 CONFIG_PHYS_ADDR_T_64BIT=y
-CONFIG_ZONE_DMA_FLAG=1
+CONFIG_ZONE_DMA_FLAG=0
 CONFIG_VIRT_TO_BUS=y
 # CONFIG_KSM is not set
 CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_SYS_SUPPORTS_MIPS_CMP=y
+CONFIG_NEED_PER_CPU_KM=y
 # CONFIG_NO_HZ is not set
 # CONFIG_HIGH_RES_TIMERS is not set
 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_CPU_SUPPORTS_HR_SCHED_CLOCK=y
 # CONFIG_HZ_48 is not set
 CONFIG_HZ_100=y
 # CONFIG_HZ_128 is not set
@@ -172,6 +153,7 @@ CONFIG_PREEMPT_NONE=y
 # CONFIG_PREEMPT is not set
 # CONFIG_KEXEC is not set
 # CONFIG_SECCOMP is not set
+# CONFIG_USE_OF is not set
 CONFIG_LOCKDEP_SUPPORT=y
 CONFIG_STACKTRACE_SUPPORT=y
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -201,22 +183,32 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
 # CONFIG_BSD_PROCESS_ACCT 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_GENERIC_HARDIRQS_NO_DEPRECATED is not set
+# CONFIG_HAVE_SPARSE_IRQ is not set
+CONFIG_GENERIC_IRQ_PROBE=y
+# CONFIG_GENERIC_PENDING_IRQ is not set
+# CONFIG_AUTO_IRQ_AFFINITY is not set
+# CONFIG_IRQ_PER_CPU is not set
+# CONFIG_HARDIRQS_SW_RESEND is not set
 
 #
 # RCU Subsystem
 #
-CONFIG_TREE_RCU=y
-# CONFIG_TINY_RCU is not set
-# CONFIG_RCU_TRACE is not set
-CONFIG_RCU_FANOUT=32
-# CONFIG_RCU_FANOUT_EXACT is not set
+CONFIG_TINY_RCU=y
+# CONFIG_PREEMPT_RCU is not set
 # CONFIG_TREE_RCU_TRACE is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_LOG_BUF_SHIFT=14
 # CONFIG_CGROUPS is not set
-# CONFIG_SYSFS_DEPRECATED_V2 is not set
-# CONFIG_RELAY is not set
 # CONFIG_NAMESPACES is not set
+# CONFIG_SYSFS_DEPRECATED is not set
+# CONFIG_RELAY is not set
 # CONFIG_BLK_DEV_INITRD is not set
 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 CONFIG_SYSCTL=y
@@ -238,10 +230,14 @@ CONFIG_TIMERFD=y
 CONFIG_EVENTFD=y
 CONFIG_SHMEM=y
 CONFIG_AIO=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_PERF_USE_VMALLOC=y
 
 #
 # Kernel Performance Events And Counters
 #
+# CONFIG_PERF_EVENTS is not set
+# CONFIG_PERF_COUNTERS is not set
 # CONFIG_VM_EVENT_COUNTERS is not set
 CONFIG_PCI_QUIRKS=y
 # CONFIG_COMPAT_BRK is not set
@@ -254,6 +250,8 @@ CONFIG_HAVE_OPROFILE=y
 CONFIG_HAVE_SYSCALL_WRAPPERS=y
 CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_DMA_API_DEBUG=y
 
 #
 # GCOV-based kernel profiling
@@ -269,7 +267,6 @@ CONFIG_MODULE_FORCE_UNLOAD=y
 # CONFIG_MODVERSIONS is not set
 # CONFIG_MODULE_SRCVERSION_ALL is not set
 # CONFIG_BLOCK is not set
-# CONFIG_DEFAULT_NOOP is not set
 # CONFIG_INLINE_SPIN_TRYLOCK is not set
 # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
 # CONFIG_INLINE_SPIN_LOCK is not set
@@ -310,8 +307,8 @@ CONFIG_PCI_DOMAINS=y
 # CONFIG_ARCH_SUPPORTS_MSI is not set
 # CONFIG_PCI_STUB is not set
 # CONFIG_PCI_IOV is not set
+CONFIG_ISA=y
 CONFIG_MMU=y
-CONFIG_I8253=y
 # CONFIG_PCCARD is not set
 # CONFIG_HOTPLUG_PCI is not set
 
@@ -329,7 +326,6 @@ CONFIG_BINFMT_ELF=y
 CONFIG_ARCH_HIBERNATION_POSSIBLE=y
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 # CONFIG_PM is not set
-CONFIG_MIPS_EXTERNAL_TIMER=y
 CONFIG_NET=y
 
 #
@@ -344,7 +340,7 @@ CONFIG_INET=y
 CONFIG_IP_FIB_HASH=y
 # CONFIG_IP_PNP is not set
 # CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE 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
@@ -400,6 +396,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
 # CONFIG_RFKILL is not set
 # CONFIG_NET_9P is not set
 # CONFIG_CAIF is not set
+# CONFIG_CEPH_LIB is not set
 
 #
 # Device Drivers
@@ -418,6 +415,7 @@ CONFIG_DEVTMPFS_MOUNT=y
 # CONFIG_CONNECTOR is not set
 # CONFIG_MTD is not set
 # CONFIG_PARPORT is not set
+# CONFIG_PNP is not set
 # CONFIG_MISC_DEVICES is not set
 CONFIG_HAVE_IDE=y
 
@@ -432,16 +430,7 @@ CONFIG_SCSI_MOD=y
 #
 # IEEE 1394 (FireWire) support
 #
-
-#
-# You can enable one or both FireWire driver stacks.
-#
-
-#
-# The newer stack is recommended.
-#
 # CONFIG_FIREWIRE is not set
-# CONFIG_IEEE1394 is not set
 # CONFIG_FIREWIRE_NOSY is not set
 # CONFIG_I2O is not set
 # CONFIG_NETDEVICES is not set
@@ -491,10 +480,14 @@ CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_UNIX98_PTYS=y
 # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
 # CONFIG_LEGACY_PTYS is not set
+# CONFIG_TTY_PRINTK is not set
 # CONFIG_IPMI_HANDLER is not set
 # CONFIG_HW_RANDOM is not set
+# CONFIG_RTC is not set
+# CONFIG_DTLK is not set
 # CONFIG_R3964 is not set
 # CONFIG_APPLICOM is not set
+# CONFIG_GPIO_DEVICE is not set
 # CONFIG_TCG_TPM is not set
 CONFIG_DEVPORT=y
 # CONFIG_RAMOOPS is not set
@@ -505,6 +498,42 @@ CONFIG_DEVPORT=y
 # PPS support
 #
 # CONFIG_PPS is not set
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_GPIO_SYSFS is not set
+
+#
+# Memory mapped GPIO expanders:
+#
+# CONFIG_GPIO_BASIC_MMIO is not set
+# CONFIG_GPIO_IT8761E is not set
+# CONFIG_GPIO_SCH is not set
+# CONFIG_GPIO_VX855 is not set
+
+#
+# I2C GPIO expanders:
+#
+
+#
+# PCI GPIO expanders:
+#
+# CONFIG_GPIO_CS5535 is not set
+# CONFIG_GPIO_BT8XX is not set
+# CONFIG_GPIO_LANGWELL is not set
+# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_RDC321X is not set
+
+#
+# SPI GPIO expanders:
+#
+
+#
+# AC97 GPIO expanders:
+#
+
+#
+# MODULbus GPIO expanders:
+#
 # CONFIG_W1 is not set
 # CONFIG_POWER_SUPPLY is not set
 # CONFIG_HWMON is not set
@@ -525,6 +554,7 @@ CONFIG_SSB_POSSIBLE=y
 #
 # CONFIG_VGA_ARB is not set
 # CONFIG_DRM is not set
+# CONFIG_STUB_POULSBO is not set
 # CONFIG_VGASTATE is not set
 # CONFIG_VIDEO_OUTPUT_CONTROL is not set
 # CONFIG_FB is not set
@@ -542,13 +572,31 @@ CONFIG_SSB_POSSIBLE=y
 # CONFIG_NEW_LEDS is not set
 # CONFIG_ACCESSIBILITY is not set
 # CONFIG_INFINIBAND is not set
-CONFIG_RTC_LIB=y
 # CONFIG_RTC_CLASS is not set
 # CONFIG_DMADEVICES is not set
 # CONFIG_AUXDISPLAY is not set
 # CONFIG_UIO is not set
-# CONFIG_STAGING is not set
-# CONFIG_MIPS_PLATFORM_DEVICES is not set
+CONFIG_STAGING=y
+# CONFIG_STAGING_EXCLUDE_BUILD is not set
+# CONFIG_ECHO is not set
+# CONFIG_COMEDI is not set
+# CONFIG_POHMELFS is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_VME_BUS is not set
+# CONFIG_IIO is not set
+# CONFIG_BATMAN_ADV is not set
+# CONFIG_CRYSTALHD is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+# CONFIG_SMB_FS is not set
+CONFIG_MACH_NO_WESTBRIDGE=y
+# CONFIG_FT1000 is not set
+
+#
+# Speakup console speech
+#
 
 #
 # File systems
@@ -557,8 +605,9 @@ CONFIG_FILE_LOCKING=y
 # CONFIG_FSNOTIFY is not set
 # CONFIG_DNOTIFY is not set
 # CONFIG_INOTIFY_USER is not set
+# CONFIG_FANOTIFY is not set
 # CONFIG_QUOTA is not set
-# CONFIG_AUTOFS_FS is not set
+# CONFIG_QUOTACTL is not set
 # CONFIG_AUTOFS4_FS is not set
 # CONFIG_FUSE_FS is not set
 
@@ -577,7 +626,6 @@ CONFIG_PROC_SYSCTL=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 is not set
@@ -600,16 +648,19 @@ CONFIG_MAGIC_SYSRQ=y
 # CONFIG_HEADERS_CHECK is not set
 # CONFIG_DEBUG_KERNEL is not set
 # CONFIG_HARDLOCKUP_DETECTOR is not set
+CONFIG_BKL=y
+# CONFIG_SPARSE_RCU_POINTER is not set
 # CONFIG_DEBUG_MEMORY_INIT is not set
-# CONFIG_RCU_CPU_STALL_DETECTOR 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_C_RECORDMCOUNT=y
 CONFIG_TRACING_SUPPORT=y
 # CONFIG_FTRACE 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
@@ -622,6 +673,7 @@ CONFIG_CMDLINE="init=/init"
 # 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
@@ -646,6 +698,7 @@ CONFIG_GENERIC_FIND_LAST_BIT=y
 CONFIG_CRC32=y
 # CONFIG_CRC7 is not set
 # CONFIG_LIBCRC32C is not set
+CONFIG_DECOMPRESS_LZMA=y
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
 CONFIG_HAS_DMA=y
diff --git a/target/mips64el/sys-available/lemote-yeelong b/target/mips64el/sys-available/lemote-yeelong
index b1a91491e..6eedb9ebc 100644
--- a/target/mips64el/sys-available/lemote-yeelong
+++ b/target/mips64el/sys-available/lemote-yeelong
@@ -3,6 +3,8 @@ config ADK_TARGET_SYSTEM_LEMOTE_YEELONG
 	select ADK_mips64el
 	select ADK_lemote_yeelong
 	select ADK_LINUX_64
+	select ADK_KERNEL_MACH_LOONGSON
+	select ADK_KERNEL_LEMOTE_MACH2F
 	select ADK_TARGET_WITH_USB_BOOT
 	select ADK_TARGET_WITH_USB
 	select ADK_TARGET_WITH_PCI
-- 
cgit v1.2.3


From 36e2dea8b335502fbbd367d7d09018bc58769a0e Mon Sep 17 00:00:00 2001
From: Phil Sutter <phil.sutter@viprinet.com>
Date: Tue, 12 Apr 2011 18:31:20 +0200
Subject: package/busybox: minor update, some fixes and comments

- update to 1.18.4
- introduce BB_MAKE_FLAGS, simplifying package/busybox/Makefile a bit
- document how the package/busybox/config may be updated
- document what needs to be done so one may drop 003-defaults.patch
- update package/busybox/config, a few busybox features were not
  selectable
---
 package/busybox/Makefile                          |  60 ++++-----
 package/busybox/config/Config.in                  | 140 ++++++++++++++++++--
 package/busybox/config/archival/Config.in         |  37 +++++-
 package/busybox/config/console-tools/Config.in    |  30 +++++
 package/busybox/config/coreutils/Config.in        |  24 ++++
 package/busybox/config/editors/Config.in          |  12 ++
 package/busybox/config/init/Config.in             |  12 ++
 package/busybox/config/libbb/Config.in            |   1 +
 package/busybox/config/loginutils/Config.in       |  12 ++
 package/busybox/config/miscutils/Config.in        |  97 +++++++++++---
 package/busybox/config/modutils/Config.in         |   7 +
 package/busybox/config/networking/Config.in       |  75 +++++++++--
 package/busybox/config/networking/udhcp/Config.in |   5 +-
 package/busybox/config/procps/Config.in           |  51 ++++---
 package/busybox/config/runit/Config.in            |   4 +
 package/busybox/config/shell/Config.in            | 108 ++++++++++-----
 package/busybox/config/sysklogd/Config.in         |  26 ++++
 package/busybox/config/util-linux/Config.in       |  75 ++++++++++-
 package/busybox/patches/003-defaults.patch        | 154 ++++++++++++++++++----
 19 files changed, 772 insertions(+), 158 deletions(-)

diff --git a/package/busybox/Makefile b/package/busybox/Makefile
index 9d85302d0..71c8c0e99 100644
--- a/package/busybox/Makefile
+++ b/package/busybox/Makefile
@@ -4,9 +4,9 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=		busybox
-PKG_VERSION:=		1.18.1
-PKG_RELEASE:=		4
-PKG_MD5SUM:=		f15fe752d8b7012aa5e59f83b88ccb1c
+PKG_VERSION:=		1.18.4
+PKG_RELEASE:=		1
+PKG_MD5SUM:=		b03c5b46ced732679e525a920a1a62f5
 PKG_DESCR:=		Core utilities for embedded systems
 PKG_SECTION:=		base
 PKG_URL:=		http://www.busybox.net/
@@ -23,47 +23,43 @@ include $(TOPDIR)/mk/package.mk
 $(eval $(call PKG_template,BUSYBOX,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
 $(eval $(call PKG_template,UDHCPD,udhcpd,${PKG_VERSION}-${PKG_RELEASE},busybox,${PKGSD_UDHCPD},${PKGSC_UDHCPD}))
 
+# This is how to extract the Config.in files from a _built_ busybox source tree:
+#|for c in $(find build_viprinux_arm_glibc/w-busybox-1.18.1-4/busybox-1.18.1/ -name Config.in); do
+#|	c=$(sed s,build_viprinux_arm_glibc/w-busybox-1.18.1-4/busybox-1.18.1/,, <<< $c)
+#|	mkdir -p package/busybox/config_new/$(dirname $c)
+#|	cp build_viprinux_arm_glibc/w-busybox-1.18.1-4/busybox-1.18.1/$c package/busybox/config_new/$c
+#|done
+
 CONFIG_STYLE:=		manual
 BUILD_STYLE:=		manual
 INSTALL_STYLE:=		manual
 
+BB_MAKE_FLAGS:=		V=1 IPKG_ARCH="${CPU_ARCH}" ARCH="${ARCH}" \
+			HOSTCC="${CC_FOR_BUILD}" HOSTCFLAGS="$(CFLAGS_FOR_BUILD)" \
+			-C ${WRKBUILD}
+ifneq (${ADK_NATIVE},y)
+BB_MAKE_FLAGS+=		EXTRA_CFLAGS="${TARGET_CFLAGS}" CROSS_COMPILE="$(TARGET_CROSS)"
+endif
+
+# XXX: Although this looks like all new symbols are enabled when 'make oldconfig' runs, they're not.
+#      In fact, you can pipe "yes ''" as well as "yes n", each time leading to the default value being
+#      chosen for each unknown symbol.
+#      A real solution for that task (disabling everything that's unknown, as we know better) is to
+#      upgrade ${TOPDIR}/config so it understands the oldnoconfig target, and using that to update
+#      the busybox config before compiling.
+#      The workaround for now is to patch all busybox symbols to default n inside the busybox source
+#      which do depend on non-existance of other packages outside the busybox source.
 do-configure:
 	grep BUSYBOX_ $(TOPDIR)/.config|sed -e 's/BUSYBOX_/CONFIG_/' > \
 		${WRKBUILD}/.config
 	$(SED) 's;@IDIR@;${WRKINST};' ${WRKBUILD}/.config
-ifeq ($(ADK_NATIVE),y)
-	yes '' | \
-	$(MAKE) V=1 \
-	    IPKG_ARCH="$(CPU_ARCH)" \
-	    ARCH="$(ARCH)" HOSTCC="$(CC_FOR_BUILD)" HOSTCFLAGS="$(CFLAGS_FOR_BUILD)" -C $(WRKBUILD) oldconfig $(MAKE_TRACE)
-else
-	yes '' | \
-	$(MAKE) V=1 CROSS_COMPILE="$(TARGET_CROSS)" \
-	    EXTRA_CFLAGS="$(TARGET_CFLAGS)" IPKG_ARCH="$(CPU_ARCH)" \
-	    ARCH="$(ARCH)" HOSTCC="$(CC_FOR_BUILD)" HOSTCFLAGS="$(CFLAGS_FOR_BUILD)" -C $(WRKBUILD) oldconfig $(MAKE_TRACE)
-endif
+	yes '' | $(MAKE) ${BB_MAKE_FLAGS} oldconfig $(MAKE_TRACE)
 
 do-build:
-ifeq ($(ADK_NATIVE),y)
-	$(MAKE) V=1 \
-	    IPKG_ARCH="$(CPU_ARCH)" ARCH="$(ARCH)" HOSTCC="$(CC_FOR_BUILD)" HOSTCFLAGS="$(CFLAGS_FOR_BUILD)" \
-		-C $(WRKBUILD) busybox
-else
-	$(MAKE) V=1 CROSS_COMPILE="$(TARGET_CROSS)" \
-	    IPKG_ARCH="$(CPU_ARCH)" ARCH="$(ARCH)" HOSTCC="$(CC_FOR_BUILD)" HOSTCFLAGS="$(CFLAGS_FOR_BUILD)" \
-		-C $(WRKBUILD) busybox
-endif
+	$(MAKE) ${BB_MAKE_FLAGS} busybox
 
 do-install:
-ifeq ($(ADK_NATIVE),y)
-	$(MAKE) V=1 \
-	    IPKG_ARCH="$(CPU_ARCH)" ARCH="$(ARCH)" HOSTCC="$(CC_FOR_BUILD)" HOSTCFLAGS="$(CFLAGS_FOR_BUILD)" \
-		-C $(WRKBUILD) install $(MAKE_TRACE)
-else
-	$(MAKE) V=1 CROSS_COMPILE="$(TARGET_CROSS)" \
-	    IPKG_ARCH="$(CPU_ARCH)" ARCH="$(ARCH)" HOSTCC="$(CC_FOR_BUILD)" HOSTCFLAGS="$(CFLAGS_FOR_BUILD)" \
-		-C $(WRKBUILD) install $(MAKE_TRACE)
-endif
+	$(MAKE) ${BB_MAKE_FLAGS} install $(MAKE_TRACE)
 	$(CP) $(WRKINST)/* $(IDIR_BUSYBOX)/
 ifeq ($(ADK_DEBUG),y)
 	${INSTALL_BIN} $(WRKBUILD)/busybox_unstripped \
diff --git a/package/busybox/config/Config.in b/package/busybox/config/Config.in
index bf0d9d8c0..5a0e5a285 100644
--- a/package/busybox/config/Config.in
+++ b/package/busybox/config/Config.in
@@ -47,6 +47,17 @@ config BUSYBOX_USE_PORTABLE_CODE
 	  compiler other than gcc.
 	  If you do use gcc, this option may needlessly increase code size.
 
+config BUSYBOX_PLATFORM_LINUX
+	bool "Enable Linux-specific applets and features"
+	default y
+	help
+	  For the most part, busybox requires only POSIX compatibility
+	  from the target system, but some applets and features use
+	  Linux-specific interfaces.
+
+	  Answering 'N' here will disable such applets and hide the
+	  corresponding configuration options.
+
 choice
 	prompt "Buffer allocation policy"
 	default FEATURE_BUFFERS_USE_MALLOC
@@ -131,6 +142,15 @@ config BUSYBOX_UNICODE_SUPPORT
 	  Probably by the time when busybox will be fully Unicode-clean,
 	  other encodings will be mainly of historic interest.
 
+config BUSYBOX_UNICODE_USING_LOCALE
+	bool "Use libc routines for Unicode (else uses internal ones)"
+	default n
+	depends on BUSYBOX_UNICODE_SUPPORT && BUSYBOX_LOCALE_SUPPORT
+	help
+	  With this option on, Unicode support is implemented using libc
+	  routines. Otherwise, internal implementation is used.
+	  Internal implementation is smaller.
+
 config BUSYBOX_FEATURE_CHECK_UNICODE_IN_ENV
 	bool "Check $LANG environment variable"
 	default y
@@ -141,6 +161,91 @@ config BUSYBOX_FEATURE_CHECK_UNICODE_IN_ENV
 
 	  Otherwise, Unicode support will be always enabled and active.
 
+config BUSYBOX_SUBST_WCHAR
+	int "Character code to substitute unprintable characters with"
+	depends on BUSYBOX_UNICODE_SUPPORT
+	default 63
+	help
+	  Typical values are 63 for '?' (works with any output device),
+	  30 for ASCII substitute control code,
+	  65533 (0xfffd) for Unicode replacement character.
+
+config BUSYBOX_LAST_SUPPORTED_WCHAR
+	int "Range of supported Unicode characters"
+	depends on BUSYBOX_UNICODE_SUPPORT
+	default 767
+	help
+	  Any character with Unicode value bigger than this is assumed
+	  to be non-printable on output device. Many applets replace
+	  such chars with substitution character.
+
+	  The idea is that many valid printable Unicode chars are
+	  nevertheless are not displayed correctly. Think about
+	  combining charachers, double-wide hieroglyphs, obscure
+	  characters in dozens of ancient scripts...
+	  Many terminals, terminal emulators, xterms etc will fail
+	  to handle them correctly. Choose the smallest value
+	  which suits your needs.
+
+	  Typical values are:
+	  126 - ASCII only
+	  767 (0x2ff) - there are no combining chars in [0..767] range
+			(the range includes Latin 1, Latin Ext. A and B),
+			code is ~700 bytes smaller for this case.
+	  4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
+			code is ~300 bytes smaller for this case.
+	  12799 (0x31ff) - nearly all non-ideographic characters are
+			available in [0..12799] range, including
+			East Asian scripts like katakana, hiragana, hangul,
+			bopomofo...
+	  0 - off, any valid printable Unicode character will be printed.
+
+config BUSYBOX_UNICODE_COMBINING_WCHARS
+	bool "Allow zero-width Unicode characters on output"
+	default n
+	depends on BUSYBOX_UNICODE_SUPPORT
+	help
+	  With this option off, any Unicode char with width of 0
+	  is substituted on output.
+
+config BUSYBOX_UNICODE_WIDE_WCHARS
+	bool "Allow wide Unicode characters on output"
+	default n
+	depends on BUSYBOX_UNICODE_SUPPORT
+	help
+	  With this option off, any Unicode char with width > 1
+	  is substituted on output.
+
+config BUSYBOX_UNICODE_BIDI_SUPPORT
+	bool "Bidirectional character-aware line input"
+	default n
+	depends on BUSYBOX_UNICODE_SUPPORT && !BUSYBOX_UNICODE_USING_LOCALE
+	help
+	  With this option on, right-to-left Unicode characters
+	  are treated differently on input (e.g. cursor movement).
+
+config BUSYBOX_UNICODE_NEUTRAL_TABLE
+	bool "In bidi input, support non-ASCII neutral chars too"
+	default n
+	depends on BUSYBOX_UNICODE_BIDI_SUPPORT
+	help
+	  In most cases it's enough to treat only ASCII non-letters
+	  (i.e. punctuation, numbers and space) as characters
+	  with neutral directionality.
+	  With this option on, more extensive (and bigger) table
+	  of neutral chars will be used.
+
+config BUSYBOX_UNICODE_PRESERVE_BROKEN
+	bool "Make it possible to enter sequences of chars which are not Unicode"
+	default n
+	depends on BUSYBOX_UNICODE_SUPPORT
+	help
+	  With this option on, invalid UTF-8 bytes are not substituted
+	  with the selected substitution character.
+	  For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
+	  at shell prompt will list file named 0xff (single char name
+	  with char value 255), not file named '?'.
+
 config BUSYBOX_LONG_OPTS
 	bool "Support for --long-options"
 	default y
@@ -182,21 +287,26 @@ config BUSYBOX_FEATURE_SUID
 	default n
 	help
 	  With this option you can install the busybox binary belonging
-	  to root with the suid bit set, and it will automatically drop
-	  priviledges for applets that don't need root access.
+	  to root with the suid bit set, enabling some applets to perform
+	  root-level operations even when run by ordinary users
+	  (for example, mounting of user mounts in fstab needs this).
+
+	  Busybox will automatically drop priviledges for applets
+	  that don't need root access.
 
 	  If you are really paranoid and don't want to do this, build two
 	  busybox binaries with different applets in them (and the appropriate
 	  symlinks pointing to each binary), and only set the suid bit on the
-	  one that needs it. The applets currently marked to need the suid bit
-	  are:
+	  one that needs it.
+
+	  The applets currently marked to need the suid bit are:
 
 	  crontab, dnsd, findfs, ipcrm, ipcs, login, passwd, ping, su,
 	  traceroute, vlock.
 
 config BUSYBOX_FEATURE_SUID_CONFIG
 	bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
-	default n if FEATURE_SUID
+	default n if BUSYBOX_FEATURE_SUID
 	depends on BUSYBOX_FEATURE_SUID
 	help
 	  Allow the SUID / SGID state of an applet to be determined at runtime
@@ -239,6 +349,7 @@ config BUSYBOX_FEATURE_SUID_CONFIG_QUIET
 config BUSYBOX_SELINUX
 	bool "Support NSA Security Enhanced Linux"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Enable support for SELinux in applets ls, ps, and id. Also provide
 	  the option of compiling in SELinux applets.
@@ -525,20 +636,22 @@ endchoice
 
 endmenu
 
-menu 'Installation Options'
+menu 'Installation Options ("make install" behavior)'
 
 config BUSYBOX_INSTALL_NO_USR
 	bool "Don't use /usr"
 	default n
+	depends on BUSYBOX_FEATURE_INSTALLER
 	help
-	  Disable use of /usr. Don't activate this option if you don't know
-	  that you really want this behaviour.
+	  Disable use of /usr. busybox --install and "make install"
+	  will install applets only to /bin and /sbin,
+	  never to /usr/bin or /usr/sbin.
 
 choice
-	prompt "Applets links"
-	default INSTALL_APPLET_SYMLINKS
+	prompt "What kind of applet links to install"
+	default BUSYBOX_INSTALL_APPLET_SYMLINKS
 	help
-	  Choose how you install applets links.
+	  Choose what kind of links to applets are created by "make install".
 
 config BUSYBOX_INSTALL_APPLET_SYMLINKS
 	bool "as soft-links"
@@ -562,8 +675,9 @@ config BUSYBOX_INSTALL_APPLET_DONT
 	bool "not installed"
 	depends on BUSYBOX_FEATURE_INSTALLER || BUSYBOX_FEATURE_SH_STANDALONE || BUSYBOX_FEATURE_PREFER_APPLETS
 	help
-	  Do not install applet links. Useful when using the -install feature
-	  or a standalone shell for rescue purposes.
+	  Do not install applet links. Useful when you plan to use
+	  busybox --install for installing links, or plan to use
+	  a standalone shell and thus don't need applet links.
 
 endchoice
 
diff --git a/package/busybox/config/archival/Config.in b/package/busybox/config/archival/Config.in
index 4bfba12c3..edeec98db 100644
--- a/package/busybox/config/archival/Config.in
+++ b/package/busybox/config/archival/Config.in
@@ -5,6 +5,12 @@
 
 menu "Archival Utilities"
 
+config BUSYBOX_FEATURE_SEAMLESS_XZ
+	bool "Make tar, rpm, modprobe etc understand .xz data"
+	default y
+	help
+	  Make tar, rpm, modprobe etc understand .xz data.
+
 config BUSYBOX_FEATURE_SEAMLESS_LZMA
 	bool "Make tar, rpm, modprobe etc understand .lzma data"
 	default y
@@ -31,7 +37,7 @@ config BUSYBOX_FEATURE_SEAMLESS_Z
 
 config BUSYBOX_AR
 	bool "ar"
-	default n
+	default y
 	depends on !ADK_PACKAGE_BINUTILS
 	help
 	  ar is an archival utility program used to create, modify, and
@@ -73,7 +79,7 @@ config BUSYBOX_FEATURE_AR_CREATE
 config BUSYBOX_BUNZIP2
 	bool "bunzip2"
 	depends on !ADK_PACKAGE_BZIP2
-	default n
+	default y
 	help
 	  bunzip2 is a compression utility using the Burrows-Wheeler block
 	  sorting text compression algorithm, and Huffman coding. Compression
@@ -87,7 +93,7 @@ config BUSYBOX_BUNZIP2
 config BUSYBOX_BZIP2
 	bool "bzip2"
 	depends on !ADK_PACKAGE_BZIP2
-	default n
+	default y
 	help
 	  bzip2 is a compression utility using the Burrows-Wheeler block
 	  sorting text compression algorithm, and Huffman coding. Compression
@@ -101,7 +107,7 @@ config BUSYBOX_BZIP2
 config BUSYBOX_CPIO
 	bool "cpio"
 	depends on !ADK_PACKAGE_CPIO
-	default n
+	default y
 	help
 	  cpio is an archival utility program used to create, modify, and
 	  extract contents from archives.
@@ -228,7 +234,7 @@ config BUSYBOX_TAR
 	  create compressed archives. It's probably the most widely used
 	  UNIX archive program.
 
-if TAR
+if BUSYBOX_TAR
 
 config BUSYBOX_FEATURE_TAR_CREATE
 	bool "Enable archive creation"
@@ -288,6 +294,15 @@ config BUSYBOX_FEATURE_TAR_LONG_OPTIONS
 	help
 	  Enable use of long options, increases size by about 400 Bytes
 
+config BUSYBOX_FEATURE_TAR_TO_COMMAND
+	bool "Support for writing to an external program"
+	default y
+	depends on BUSYBOX_TAR && BUSYBOX_FEATURE_TAR_LONG_OPTIONS
+	help
+	  If you enable this option you'll be able to instruct tar to send
+	  the contents of each extracted file to the standard input of an
+	  external program.
+
 config BUSYBOX_FEATURE_TAR_UNAME_GNAME
 	bool "Enable use of user and group names"
 	default y
@@ -305,6 +320,14 @@ config BUSYBOX_FEATURE_TAR_NOPRESERVE_TIME
 	  With this option busybox supports GNU tar -m
 	  (do not preserve time) option.
 
+config BUSYBOX_FEATURE_TAR_SELINUX
+	bool "Support for extracting SELinux labels"
+	default n
+	depends on BUSYBOX_TAR && BUSYBOX_SELINUX
+	help
+	  With this option busybox supports restoring SELinux labels
+	  when extracting files from tar archives.
+
 endif #tar
 
 config BUSYBOX_UNCOMPRESS
@@ -317,7 +340,7 @@ config BUSYBOX_UNCOMPRESS
 config BUSYBOX_UNLZMA
 	bool "unlzma"
 	depends on !ADK_PACKAGE_XZ
-	default n
+	default y
 	help
 	  unlzma is a compression utility using the Lempel-Ziv-Markov chain
 	  compression algorithm, and range coding. Compression
@@ -349,7 +372,7 @@ config BUSYBOX_LZMA
 config BUSYBOX_UNXZ
 	bool "unxz"
 	depends on !ADK_PACKAGE_XZ
-	default n
+	default y
 	help
 	  unxz is a unlzma successor.
 
diff --git a/package/busybox/config/console-tools/Config.in b/package/busybox/config/console-tools/Config.in
index 4a86ff740..03d277111 100644
--- a/package/busybox/config/console-tools/Config.in
+++ b/package/busybox/config/console-tools/Config.in
@@ -8,6 +8,7 @@ menu "Console Utilities"
 config BUSYBOX_CHVT
 	bool "chvt"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program is used to change to another terminal.
 	  Example: chvt 4 (change to terminal /dev/tty4)
@@ -15,6 +16,7 @@ config BUSYBOX_CHVT
 config BUSYBOX_FGCONSOLE
 	bool "fgconsole"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program prints active (foreground) console number.
 
@@ -27,12 +29,14 @@ config BUSYBOX_CLEAR
 config BUSYBOX_DEALLOCVT
 	bool "deallocvt"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program deallocates unused virtual consoles.
 
 config BUSYBOX_DUMPKMAP
 	bool "dumpkmap"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program dumps the kernel's keyboard translation table to
 	  stdout, in binary format. You can then use loadkmap to load it.
@@ -41,12 +45,14 @@ config BUSYBOX_KBD_MODE
 	bool "kbd_mode"
 	default y if ADK_TARGET_WITH_INPUT
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program reports and sets keyboard mode.
 
 config BUSYBOX_LOADFONT
 	bool "loadfont"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program loads a console font from standard input.
 
@@ -54,6 +60,7 @@ config BUSYBOX_LOADKMAP
 	bool "loadkmap"
 	default y if ADK_TARGET_WITH_INPUT
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program loads a keyboard translation table from
 	  standard input.
@@ -61,6 +68,7 @@ config BUSYBOX_LOADKMAP
 config BUSYBOX_OPENVT
 	bool "openvt"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program is used to start a command on an unused
 	  virtual terminal.
@@ -92,6 +100,7 @@ config BUSYBOX_FEATURE_RESIZE_PRINT
 config BUSYBOX_SETCONSOLE
 	bool "setconsole"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program redirects the system console to another device,
 	  like the current tty while logged in via telnet.
@@ -106,6 +115,7 @@ config BUSYBOX_FEATURE_SETCONSOLE_LONG_OPTIONS
 config BUSYBOX_SETFONT
 	bool "setfont"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Allows to load console screen map. Useful for i18n.
 
@@ -127,6 +137,7 @@ config BUSYBOX_DEFAULT_SETFONT_DIR
 config BUSYBOX_SETKEYCODES
 	bool "setkeycodes"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program loads entries into the kernel's scancode-to-keycode
 	  map, allowing unusual keyboards to generate usable keycodes.
@@ -134,13 +145,32 @@ config BUSYBOX_SETKEYCODES
 config BUSYBOX_SETLOGCONS
 	bool "setlogcons"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This program redirects the output console of kernel messages.
 
 config BUSYBOX_SHOWKEY
 	bool "showkey"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Shows keys pressed.
 
+comment "Common options for loadfont and setfont"
+	depends on BUSYBOX_LOADFONT || BUSYBOX_SETFONT
+
+config BUSYBOX_FEATURE_LOADFONT_PSF2
+	bool "Support for PSF2 console fonts"
+	default y
+	depends on BUSYBOX_LOADFONT || BUSYBOX_SETFONT
+	help
+	  Support PSF2 console fonts.
+
+config BUSYBOX_FEATURE_LOADFONT_RAW
+	bool "Support for old (raw) console fonts"
+	default y
+	depends on BUSYBOX_LOADFONT || BUSYBOX_SETFONT
+	help
+	  Support old (raw) console fonts.
+
 endmenu
diff --git a/package/busybox/config/coreutils/Config.in b/package/busybox/config/coreutils/Config.in
index 069eab70d..9c55d74aa 100644
--- a/package/busybox/config/coreutils/Config.in
+++ b/package/busybox/config/coreutils/Config.in
@@ -5,6 +5,12 @@
 
 menu "Coreutils"
 
+config BUSYBOX_BASE64
+	bool "base64"
+	default y
+	help
+	  Base64 encode and decode
+
 config BUSYBOX_BASENAME
 	bool "basename"
 	default y
@@ -115,6 +121,14 @@ config BUSYBOX_FEATURE_DATE_ISOFMT
 	  Enable option (-I) to output an ISO-8601 compliant
 	  date/time string.
 
+# defaults to "no": stat's nanosecond field is a bit non-portable
+config BUSYBOX_FEATURE_DATE_NANO
+	bool "Support %[num]N nanosecond format specifier"
+	default n
+	depends on BUSYBOX_DATE && BUSYBOX_PLATFORM_LINUX # syscall(__NR_clock_gettime)
+	help
+	  Support %[num]N format specifier. Adds ~250 bytes of code.
+
 config BUSYBOX_FEATURE_DATE_COMPAT
 	bool "Support weird 'date MMDDhhmm[[YY]YY][.ss]' format"
 	default y
@@ -183,6 +197,10 @@ config BUSYBOX_FEATURE_DF_FANCY
 	help
 	  This option enables -a, -i and -B.
 
+	    -a Show all filesystems
+	    -i Inodes
+	    -B <SIZE> Blocksize
+
 config BUSYBOX_DIRNAME
 	bool "dirname"
 	default y
@@ -631,6 +649,7 @@ config BUSYBOX_FEATURE_SPLIT_FANCY
 config BUSYBOX_STAT
 	bool "stat"
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX # statfs()
 	help
 	  display file or filesystem status.
 
@@ -682,6 +701,11 @@ config BUSYBOX_FEATURE_FANCY_TAIL
 	  The options (-q, -s, and -v) are provided by GNU tail, but
 	  are not specific in the SUSv3 standard.
 
+	    -q      Never output headers giving file names
+	    -s SEC  Wait SEC seconds between reads with -f
+	    -v      Always output headers giving file names
+
+
 config BUSYBOX_TEE
 	bool "tee"
 	default y
diff --git a/package/busybox/config/editors/Config.in b/package/busybox/config/editors/Config.in
index 52594b0ef..1a86ce9bd 100644
--- a/package/busybox/config/editors/Config.in
+++ b/package/busybox/config/editors/Config.in
@@ -171,6 +171,18 @@ config BUSYBOX_FEATURE_VI_WIN_RESIZE
 	help
 	  Make busybox vi behave nicely with terminals that get resized.
 
+config BUSYBOX_FEATURE_VI_ASK_TERMINAL
+	bool "Use 'tell me cursor position' ESC sequence to measure window"
+	default y
+	depends on BUSYBOX_VI
+	help
+	  If terminal size can't be retrieved and $LINES/$COLUMNS are not set,
+	  this option makes vi perform a last-ditch effort to find it:
+	  vi positions cursor to 999,999 and asks terminal to report real
+	  cursor position using "ESC [ 6 n" escape sequence, then reads stdin.
+
+	  This is not clean but helps a lot on serial lines and such.
+
 config BUSYBOX_FEATURE_VI_OPTIMIZE_CURSOR
 	bool "Optimize cursor movement"
 	default y
diff --git a/package/busybox/config/init/Config.in b/package/busybox/config/init/Config.in
index cabe6b046..3858d14c5 100644
--- a/package/busybox/config/init/Config.in
+++ b/package/busybox/config/init/Config.in
@@ -152,6 +152,18 @@ config BUSYBOX_TELINIT_PATH
 	  to facilitate proper shutdown, this path is to be used when
 	  locating telinit executable.
 
+config BUSYBOX_INIT_TERMINAL_TYPE
+	string "Initial terminal type"
+	default "linux"
+	depends on BUSYBOX_INIT
+	help
+	  This is the initial value set by init for the TERM environment
+	  variable. This variable is used by programs which make use of
+	  extended terminal capabilities.
+
+	  Note that on Linux, init attempts to detect serial terminal and
+	  sets TERM to "vt102" if one is found.
+
 config BUSYBOX_MESG
 	bool "mesg"
 	default n
diff --git a/package/busybox/config/libbb/Config.in b/package/busybox/config/libbb/Config.in
index 1fc888630..c42a93bbb 100644
--- a/package/busybox/config/libbb/Config.in
+++ b/package/busybox/config/libbb/Config.in
@@ -151,6 +151,7 @@ config BUSYBOX_FEATURE_COPYBUF_KB
 config BUSYBOX_MONOTONIC_SYSCALL
 	bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
 	  time intervals (time, ping, traceroute etc need this).
diff --git a/package/busybox/config/loginutils/Config.in b/package/busybox/config/loginutils/Config.in
index 174f192a2..ab0e578d8 100644
--- a/package/busybox/config/loginutils/Config.in
+++ b/package/busybox/config/loginutils/Config.in
@@ -5,6 +5,18 @@
 
 menu "Login/Password Management Utilities"
 
+config BUSYBOX_ADD_SHELL
+       bool "add-shell"
+       default y if BUSYBOX_DESKTOP
+       help
+         Add shells to /etc/shells.
+
+config BUSYBOX_REMOVE_SHELL
+       bool "remove-shell"
+       default y if BUSYBOX_DESKTOP
+       help
+         Remove shells from /etc/shells.
+
 config BUSYBOX_FEATURE_SHADOWPASSWDS
 	bool "Support for shadow passwords"
 	default y
diff --git a/package/busybox/config/miscutils/Config.in b/package/busybox/config/miscutils/Config.in
index bb7fb2aa7..cbdcca9ce 100644
--- a/package/busybox/config/miscutils/Config.in
+++ b/package/busybox/config/miscutils/Config.in
@@ -5,9 +5,52 @@
 
 menu "Miscellaneous Utilities"
 
+config BUSYBOX_CONSPY
+	bool "conspy"
+	default n
+	depends on BUSYBOX_PLATFORM_LINUX
+	help
+	  A text-mode VNC like program for Linux virtual terminals.
+	  example:  conspy NUM      shared access to console num
+	  or        conspy -nd NUM  screenshot of console num
+	  or        conspy -cs NUM  poor man's GNU screen like
+
+config BUSYBOX_NANDWRITE
+	bool "nandwrite"
+	default n
+	depends on BUSYBOX_PLATFORM_LINUX
+	depends on !ADK_PACKAGE_NAND
+	default y if ADK_TARGET_WITH_NAND
+	help
+	  Write to the specified MTD device, with bad blocks awareness
+
+config BUSYBOX_NANDDUMP
+	bool "nanddump"
+	default n
+	depends on BUSYBOX_PLATFORM_LINUX
+	depends on !ADK_PACKAGE_NAND
+	default y if ADK_TARGET_WITH_NAND
+	help
+	  Dump the content of raw NAND chip
+
+config BUSYBOX_UBIATTACH
+	bool "ubiattach"
+	default n
+	depends on BUSYBOX_PLATFORM_LINUX
+	help
+	  Attach MTD device to an UBI device.
+
+config BUSYBOX_UBIDETACH
+	bool "ubidetach"
+	default n
+	depends on BUSYBOX_PLATFORM_LINUX
+	help
+	  Detach MTD device from an UBI device.
+
 config BUSYBOX_ADJTIMEX
 	bool "adjtimex"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Adjtimex reads and optionally sets adjustment parameters for
 	  the Linux clock adjustment algorithm.
@@ -19,9 +62,24 @@ config BUSYBOX_BBCONFIG
 	  The bbconfig applet will print the config file with which
 	  busybox was built.
 
+config BUSYBOX_FEATURE_COMPRESS_BBCONFIG
+	bool "Compress bbconfig data"
+	default y
+	depends on BUSYBOX_BBCONFIG
+	help
+	  Store bbconfig data in compressed form, uncompress them on-the-fly
+	  before output.
+
+	  If you have a really tiny busybox with few applets enabled (and
+	  bunzip2 isn't one of them), the overhead of the decompressor might
+	  be noticeable. Also, if you run executables directly from ROM
+	  and have very little memory, this might not be a win. Otherwise,
+	  you probably want this.
+
 config BUSYBOX_BEEP
 	bool "beep"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  The beep applets beeps in a given freq/Hz.
 
@@ -178,6 +236,7 @@ config BUSYBOX_FEATURE_DC_LIBM
 config BUSYBOX_DEVFSD
 	bool "devfsd (obsolete)"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	select BUSYBOX_FEATURE_SYSLOG
 	help
 	  This is deprecated and should NOT be used anymore.
@@ -221,6 +280,7 @@ config BUSYBOX_DEVFSD_VERBOSE
 config BUSYBOX_FEATURE_DEVFS
 	bool "Use devfs names for all devices (obsolete)"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  This is obsolete and should NOT be used anymore.
 	  Use linux >= 2.6 (optionally with hotplug) and mdev instead!
@@ -240,6 +300,7 @@ config BUSYBOX_DEVMEM
 config BUSYBOX_EJECT
 	bool "eject"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Used to eject cdroms. (defaults to /dev/cdrom)
 
@@ -254,6 +315,7 @@ config BUSYBOX_FEATURE_EJECT_SCSI
 config BUSYBOX_FBSPLASH
 	bool "fbsplash"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Shows splash image and progress bar on framebuffer device.
 	  Can be used during boot phase of an embedded device. ~2kb.
@@ -267,7 +329,7 @@ config BUSYBOX_FBSPLASH
 	    -i path_to_cfg_file (can be "-" for stdin)
 	    -f path_to_fifo (can be "-" for stdin)
 	  - if you want to run it only in presence of kernel parameter:
-	    grep -q "fbsplash=on" </proc/cmdline && BUSYBOX_setsid fbsplash [params] &
+	    grep -q "fbsplash=on" </proc/cmdline && setsid fbsplash [params] &
 	  - commands for fifo:
 	    "NN" (ASCII decimal number) - percentage to show on progress bar
 	    "exit" - well you guessed it
@@ -303,6 +365,7 @@ config BUSYBOX_FLASH_ERASEALL
 config BUSYBOX_IONICE
 	bool "ionice"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Set/set program io scheduling class and priority
 	  Requires kernel >= 2.6.13
@@ -324,7 +387,7 @@ config BUSYBOX_LAST
 choice
 	prompt "Choose last implementation"
 	depends on BUSYBOX_LAST
-	default FEATURE_LAST_SMALL
+	default BUSYBOX_FEATURE_LAST_SMALL
 
 config BUSYBOX_FEATURE_LAST_SMALL
 	bool "small"
@@ -409,7 +472,8 @@ config BUSYBOX_FEATURE_LESS_LINENUMS
 config BUSYBOX_HDPARM
 	bool "hdparm"
 	depends on !ADK_PACKAGE_HDPARM
-	default n
+	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  Get/Set hard drive parameters. Primarily intended for ATA
 	  drives. Adds about 13k (or around 30k if you enable the
@@ -471,15 +535,15 @@ config BUSYBOX_MAKEDEVS
 	help
 	  'makedevs' is a utility used to create a batch of devices with
 	  one command.
-	  .
+
 	  There are two choices for command line behaviour, the interface
 	  as used by LEAF/Linux Router Project, or a device table file.
-	  .
+
 	  'leaf' is traditionally what busybox follows, it allows multiple
 	  devices of a particluar type to be created per command.
 	  e.g. /dev/hda[0-9]
 	  Device properties are passed as command line arguments.
-	  .
+
 	  'table' reads device properties from a file or stdin, allowing
 	  a batch of unrelated devices to be made with one command.
 	  User/group names are allowed as an alternative to uid/gid.
@@ -526,6 +590,7 @@ config BUSYBOX_MT
 config BUSYBOX_RAIDAUTORUN
 	bool "raidautorun"
 	default n
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  raidautorun tells the kernel md driver to
 	  search and start RAID arrays.
@@ -533,7 +598,7 @@ config BUSYBOX_RAIDAUTORUN
 config BUSYBOX_READAHEAD
 	bool "readahead"
 	default n
-	depends on BUSYBOX_LFS
+	depends on BUSYBOX_LFS && BUSYBOX_PLATFORM_LINUX
 	help
 	  Preload the files listed on the command line into RAM cache so that
 	  subsequent reads on these files will not block on disk I/O.
@@ -548,15 +613,16 @@ config BUSYBOX_READAHEAD
 	  run this applet as a background job.
 
 config BUSYBOX_RFKILL
-        bool "rfkill"
-        default y  # doesn't build on Ubuntu 9.04
-        help
-          Enable/disable wireless devices.
+	bool "rfkill"
+	default y  # doesn't build on Ubuntu 9.04
+	depends on BUSYBOX_PLATFORM_LINUX
+	help
+	  Enable/disable wireless devices.
 
-          rfkill list : list all wireless devices
-          rfkill list bluetooth : list all bluetooth devices
-          rfkill list 1 : list device corresponding to the given index
-          rfkill block|unblock wlan : block/unblock all wlan(wifi) devices
+	  rfkill list : list all wireless devices
+	  rfkill list bluetooth : list all bluetooth devices
+	  rfkill list 1 : list device corresponding to the given index
+	  rfkill block|unblock wlan : block/unblock all wlan(wifi) devices
 
 config BUSYBOX_RUNLEVEL
 	bool "runlevel"
@@ -642,6 +708,7 @@ config BUSYBOX_WATCHDOG
 	bool "watchdog"
 	depends on !ADK_PACKAGE_WATCHDOG
 	default y
+	depends on BUSYBOX_PLATFORM_LINUX
 	help
 	  The watchdog utility is used with hardware or software watchdog
 	  device drivers. It opens the specified watchdog device special file
diff --git a/package/busybox/config/modutils/Config.in b/package/busybox/config/modutils/Config.in
index 2e23c7b84..31ffe8156 100644