aboutsummaryrefslogtreecommitdiffstats
path: root/package/system/utils
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2013-06-21 16:54:37 +0000
committerJohn Crispin <john@openwrt.org>2013-06-21 16:54:37 +0000
commit4ebf19b48fafc8d94e14e4ba779969613b241a6a (patch)
tree9918f890a8915023b49ea30948beb5d048c333fa /package/system/utils
parent44b1688e6c7b4f16f7165fbd560e1183aef69090 (diff)
downloadupstream-4ebf19b48fafc8d94e14e4ba779969613b241a6a.tar.gz
upstream-4ebf19b48fafc8d94e14e4ba779969613b241a6a.tar.bz2
upstream-4ebf19b48fafc8d94e14e4ba779969613b241a6a.zip
packages: clean up the package folder
Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 37007
Diffstat (limited to 'package/system/utils')
-rw-r--r--package/system/utils/e2fsprogs/Makefile169
-rw-r--r--package/system/utils/e2fsprogs/files/e2fsck.conf3
-rw-r--r--package/system/utils/e2fsprogs/files/e2fsck.sh38
-rw-r--r--package/system/utils/e2fsprogs/patches/001-link-against-libuuid.patch38
-rw-r--r--package/system/utils/e2fsprogs/patches/002-no_malloc_h.patch10
-rw-r--r--package/system/utils/fbtest/Makefile44
-rw-r--r--package/system/utils/fbtest/src/Makefile14
-rw-r--r--package/system/utils/fbtest/src/fbtest.c448
-rw-r--r--package/system/utils/hostap-utils/Makefile44
-rw-r--r--package/system/utils/nvram/Makefile60
-rwxr-xr-xpackage/system/utils/nvram/files/nvram.init98
-rw-r--r--package/system/utils/nvram/src/Makefile33
-rw-r--r--package/system/utils/nvram/src/cli.c246
-rw-r--r--package/system/utils/nvram/src/crc.c69
-rw-r--r--package/system/utils/nvram/src/nvram.c556
-rw-r--r--package/system/utils/nvram/src/nvram.h123
-rw-r--r--package/system/utils/nvram/src/sdinitvals.h30
-rw-r--r--package/system/utils/robocfg/Makefile39
-rw-r--r--package/system/utils/robocfg/src/Makefile11
-rw-r--r--package/system/utils/robocfg/src/etc53xx.h619
-rw-r--r--package/system/utils/robocfg/src/robocfg.c581
-rw-r--r--package/system/utils/usbmode/Makefile57
-rw-r--r--package/system/utils/usbmode/files/usbmode.hotplug7
-rw-r--r--package/system/utils/usbreset/Makefile44
-rw-r--r--package/system/utils/usbreset/src/usbreset.c253
-rw-r--r--package/system/utils/usbutils/Makefile57
-rw-r--r--package/system/utils/util-linux/Makefile594
-rw-r--r--package/system/utils/util-linux/patches/000-compile.patch44
-rw-r--r--package/system/utils/util-linux/patches/001-no-printf-alloc.patch108
-rw-r--r--package/system/utils/util-linux/patches/002-fix-endianess.patch13
-rw-r--r--package/system/utils/xfsprogs/Makefile87
-rw-r--r--package/system/utils/xfsprogs/patches/001-automake-compat.patch84
-rw-r--r--package/system/utils/xfsprogs/patches/100-no_aio.patch21
-rw-r--r--package/system/utils/xfsprogs/patches/110-uclibc_no_ustat.patch36
-rw-r--r--package/system/utils/xfsprogs/patches/120-portability.patch47
-rw-r--r--package/system/utils/xfsprogs/patches/130-uclibc_no_xattr.patch36
-rw-r--r--package/system/utils/xfsprogs/patches/140-no_po.patch20
37 files changed, 0 insertions, 4781 deletions
diff --git a/package/system/utils/e2fsprogs/Makefile b/package/system/utils/e2fsprogs/Makefile
deleted file mode 100644
index ebc21c9067..0000000000
--- a/package/system/utils/e2fsprogs/Makefile
+++ /dev/null
@@ -1,169 +0,0 @@
-#
-# Copyright (C) 2006-2012 OpenWrt.org
-# Copyright 2010 Vertical Communications
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=e2fsprogs
-PKG_VERSION:=1.42.4
-PKG_MD5SUM:=b6e296f210d642361b7394437ff0f318
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=@SF/e2fsprogs
-
-PKG_BUILD_DEPENDS:=util-linux
-PKG_INSTALL:=1
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/e2fsprogs/Default
- URL:=http://e2fsprogs.sourceforge.net/
- SUBMENU:=Filesystem
-endef
-
-define Package/e2fsprogs
-$(call Package/e2fsprogs/Default)
- SECTION:=utils
- CATEGORY:=Utilities
- TITLE:=Ext2/3/4 filesystem utilities
- DEPENDS:=+libblkid +libuuid +libext2fs
-endef
-
-define Package/e2fsprogs/description
- This package contains essential ext2 filesystem utilities which consists of
- e2fsck, mke2fs, tune2fs, and most of the other core ext2
- filesystem utilities.
-endef
-
-define Package/libext2fs
-$(call Package/e2fsprogs/Default)
- DEPENDS:=+libcom_err
- SECTION:=libs
- CATEGORY:=Libraries
- TITLE:=ext2/3/4 filesystem library
-endef
-
-define Package/libext2fs/description
- libext2fs is a library which can access ext2, ext3 and ext4 filesystems.
-endef
-
-define Package/libcom_err
-$(call Package/e2fsprogs/Default)
- DEPENDS:=+libpthread
- SECTION:=libs
- CATEGORY:=Libraries
- TITLE:=Common error description library
-endef
-
-define Package/libcom_err/description
- libcom_err is a library providing common error descriptions
-endef
-
-define Package/tune2fs
-$(call Package/e2fsprogs)
- TITLE:=Ext2 Filesystem tune utility
- DEPENDS:= +e2fsprogs
-endef
-
-define Package/resize2fs
-$(call Package/e2fsprogs)
- TITLE:=Ext2 Filesystem resize utility
- DEPENDS:= +e2fsprogs
-endef
-
-define Package/badblocks
-$(call Package/e2fsprogs)
- TITLE:=Ext2 Filesystem badblocks utility
- DEPENDS:= +e2fsprogs
-endef
-
-TARGET_CFLAGS += $(FPIC)
-
-CONFIGURE_ARGS += \
- --enable-elf-shlibs \
- --disable-libuuid \
- --disable-libblkid \
- --disable-uuidd \
- --disable-tls \
- --disable-nls \
- --disable-rpath
-
-define Build/Prepare
- $(call Build/Prepare/Default)
- $(CP) $(SCRIPT_DIR)/config.{guess,sub} $(PKG_BUILD_DIR)/config/
-endef
-
-define Build/Compile
- $(MAKE) -C $(PKG_BUILD_DIR)/util \
- BUILDCC="$(HOSTCC)" \
- CFLAGS="" \
- CPPFLAGS="" \
- LDFLAGS="" \
- subst
- $(MAKE) -C $(PKG_BUILD_DIR) \
- BUILDCC="$(HOSTCC)" \
- DESTDIR="$(PKG_INSTALL_DIR)" \
- all
-endef
-
-define Build/InstallDev
- $(MAKE) -C $(PKG_BUILD_DIR) \
- BUILDCC="$(HOSTCC)" \
- DESTDIR="$(1)" \
- install-libs
- $(MAKE) -C $(PKG_BUILD_DIR)/lib/ext2fs \
- BUILDCC="$(HOSTCC)" \
- DESTDIR="$(1)" \
- install
-endef
-
-define Package/e2fsprogs/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/e2fsck $(1)/usr/sbin/
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/mke2fs $(1)/usr/sbin/
- ln -sf mke2fs $(1)/usr/sbin/mkfs.ext2
- ln -sf mke2fs $(1)/usr/sbin/mkfs.ext3
- ln -sf mke2fs $(1)/usr/sbin/mkfs.ext4
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libe2p.so.* $(1)/usr/lib/
- $(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_DIR) $(1)/lib/functions/fsck
- $(INSTALL_DATA) ./files/e2fsck.sh $(1)/lib/functions/fsck/
- $(INSTALL_DATA) ./files/e2fsck.conf $(1)/etc/e2fsck.conf
-endef
-
-define Package/libcom_err/install
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcom_err.so.* $(1)/usr/lib/
-endef
-
-define Package/libext2fs/install
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libext2fs.so.* $(1)/usr/lib/
-endef
-
-define Package/tune2fs/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/tune2fs $(1)/usr/sbin/
-endef
-
-define Package/resize2fs/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/resize2fs $(1)/usr/sbin/
-endef
-
-define Package/badblocks/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/badblocks $(1)/usr/sbin/
-endef
-
-$(eval $(call BuildPackage,e2fsprogs))
-$(eval $(call BuildPackage,libext2fs))
-$(eval $(call BuildPackage,libcom_err))
-$(eval $(call BuildPackage,tune2fs))
-$(eval $(call BuildPackage,resize2fs))
-$(eval $(call BuildPackage,badblocks))
diff --git a/package/system/utils/e2fsprogs/files/e2fsck.conf b/package/system/utils/e2fsprogs/files/e2fsck.conf
deleted file mode 100644
index 9c96b49585..0000000000
--- a/package/system/utils/e2fsprogs/files/e2fsck.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-[options]
-broken_system_clock = true
-
diff --git a/package/system/utils/e2fsprogs/files/e2fsck.sh b/package/system/utils/e2fsprogs/files/e2fsck.sh
deleted file mode 100644
index 22031edb67..0000000000
--- a/package/system/utils/e2fsprogs/files/e2fsck.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/sh
-# Copyright 2010 Vertical Communications
-# Copyright 2012 OpenWrt.org
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-fsck_e2fsck() {
- set -o pipefail
- e2fsck -p "$device" 2>&1 | logger -t "fstab: e2fsck ($device)"
- local status="$?"
- set +o pipefail
- case "$status" in
- 0|1) ;; #success
- 2) reboot;;
- 4) echo "e2fsck ($device): Warning! Uncorrected errors."| logger -t fstab
- return 1
- ;;
- *) echo "e2fsck ($device): Error $status. Check not complete."| logger -t fstab;;
- esac
- return 0
-}
-
-fsck_ext2() {
- fsck_e2fsck "$@"
-}
-
-fsck_ext3() {
- fsck_e2fsck "$@"
-}
-
-fsck_ext4() {
- fsck_e2fsck "$@"
-}
-
-append libmount_known_fsck "ext2"
-append libmount_known_fsck "ext3"
-append libmount_known_fsck "ext4"
diff --git a/package/system/utils/e2fsprogs/patches/001-link-against-libuuid.patch b/package/system/utils/e2fsprogs/patches/001-link-against-libuuid.patch
deleted file mode 100644
index e0564dc355..0000000000
--- a/package/system/utils/e2fsprogs/patches/001-link-against-libuuid.patch
+++ /dev/null
@@ -1,38 +0,0 @@
---- a/configure
-+++ b/configure
-@@ -5038,7 +5038,7 @@ if test "${ac_cv_lib_blkid_blkid_get_cac
- $as_echo_n "(cached) " >&6
- else
- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lblkid $LIBBLKID $LIBS"
-+LIBS="-lblkid $LIBBLKID $LIBUUID $LIBS"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
-
---- a/misc/Makefile.in
-+++ b/misc/Makefile.in
-@@ -146,10 +146,10 @@ partinfo: partinfo.o
- $(E) " LD $@"
- $(Q) $(CC) $(ALL_LDFLAGS) -o partinfo partinfo.o
-
--e2initrd_helper: e2initrd_helper.o $(DEPLIBS) $(DEPLIBBLKID) $(LIBEXT2FS)
-+e2initrd_helper: e2initrd_helper.o $(DEPLIBS) $(DEPLIBBLKID) $(DEPLIBUUID) $(LIBEXT2FS)
- $(E) " LD $@"
- $(Q) $(CC) $(ALL_LDFLAGS) -o e2initrd_helper e2initrd_helper.o $(LIBS) \
-- $(LIBBLKID) $(LIBEXT2FS) $(LIBINTL)
-+ $(LIBBLKID) $(LIBUUID) $(LIBEXT2FS) $(LIBINTL)
-
- tune2fs: $(TUNE2FS_OBJS) $(DEPLIBS) $(DEPLIBS_E2P) $(DEPLIBBLKID) \
- $(DEPLIBUUID) $(DEPLIBQUOTA) $(LIBEXT2FS)
-@@ -289,9 +289,9 @@ dumpe2fs.profiled: $(PROFILED_DUMPE2FS_O
- $(PROFILED_DUMPE2FS_OBJS) $(PROFILED_LIBS) \
- $(PROFILED_LIBE2P) $(PROFILED_LIBUUID) $(LIBINTL)
-
--fsck: $(FSCK_OBJS) $(DEPLIBBLKID)
-+fsck: $(FSCK_OBJS) $(DEPLIBBLKID) $(DEPLIBUUID)
- $(E) " LD $@"
-- $(Q) $(CC) $(ALL_LDFLAGS) -o fsck $(FSCK_OBJS) $(LIBBLKID) $(LIBINTL)
-+ $(Q) $(CC) $(ALL_LDFLAGS) -o fsck $(FSCK_OBJS) $(LIBBLKID) $(LIBUUID) $(LIBINTL)
-
- fsck.profiled: $(PROFILED_FSCK_OBJS) $(PROFILED_DEPLIBBLKID)
- $(E) " LD $@"
diff --git a/package/system/utils/e2fsprogs/patches/002-no_malloc_h.patch b/package/system/utils/e2fsprogs/patches/002-no_malloc_h.patch
deleted file mode 100644
index 209b47c1cc..0000000000
--- a/package/system/utils/e2fsprogs/patches/002-no_malloc_h.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/util/symlinks.c
-+++ b/util/symlinks.c
-@@ -8,7 +8,6 @@
- #endif
- #include <stdio.h>
- #include <stdlib.h>
--#include <malloc.h>
- #include <string.h>
- #include <fcntl.h>
- #include <sys/param.h>
diff --git a/package/system/utils/fbtest/Makefile b/package/system/utils/fbtest/Makefile
deleted file mode 100644
index 05e67cb63a..0000000000
--- a/package/system/utils/fbtest/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# Copyright (C) 2012 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=fbtest
-PKG_RELEASE:=1
-
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/fbtest
- SECTION:=utils
- CATEGORY:=Utilities
- TITLE:=Frame buffer device testing tool
- DEPENDS:=@DISPLAY_SUPPORT
-endef
-
-define Build/Prepare
- mkdir -p $(PKG_BUILD_DIR)
- $(CP) ./src/* $(PKG_BUILD_DIR)/
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
- $(MAKE) -C $(PKG_BUILD_DIR) \
- CC="$(TARGET_CC)" \
- CFLAGS="$(TARGET_CFLAGS) -Wall" \
- LDFLAGS="$(TARGET_LDFLAGS)"
-endef
-
-define Package/fbtest/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/fbtest $(1)/usr/sbin/
-endef
-
-$(eval $(call BuildPackage,fbtest))
diff --git a/package/system/utils/fbtest/src/Makefile b/package/system/utils/fbtest/src/Makefile
deleted file mode 100644
index 075bc0ecbf..0000000000
--- a/package/system/utils/fbtest/src/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-CC = gcc
-CFLAGS = -Wall
-OBJS = fbtest.o
-
-all: fbtest
-
-%.o: %.c
- $(CC) $(CFLAGS) -c -o $@ $<
-
-fbtest: $(OBJS)
- $(CC) -o $@ $(OBJS)
-
-clean:
- rm -f rbcfg *.o
diff --git a/package/system/utils/fbtest/src/fbtest.c b/package/system/utils/fbtest/src/fbtest.c
deleted file mode 100644
index 6e9c2f85fa..0000000000
--- a/package/system/utils/fbtest/src/fbtest.c
+++ /dev/null
@@ -1,448 +0,0 @@
-/******************************************************************************
- * fbtest - fbtest.c
- * test program for the tuxbox-framebuffer device
- * tests all GTX/eNX supported modes
- *
- * (c) 2003 Carsten Juttner (carjay@gmx.net)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * The Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- ******************************************************************************
- * $Id: fbtest.c,v 1.5 2005/01/14 23:14:41 carjay Exp $
- ******************************************************************************/
-
-// TODO: - should restore the colour map and mode to what it was before
-// - is colour map handled correctly?
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-#include <sys/mman.h>
-#include <fcntl.h>
-
-#include <linux/fb.h>
-
-#include <error.h>
-
-#define FBDEV "/dev/fb0"
-
-struct vidsize{
- int width;
- int height;
-};
-static
-const struct vidsize vidsizetable[]={ // all supported sizes
- {720,576},{720,480},{720,288},{720,240},
- {640,576},{640,480},{640,288},{640,240},
- {360,576},{360,480},{360,288},{360,240},
- {320,576},{320,480},{320,288},{320,240}
-};
-#define VIDSIZENUM (sizeof(vidsizetable)/sizeof(struct vidsize))
-
-enum pixenum{ // keep in sync with pixname !
- CLUT4=0,
- CLUT8,
- RGB565,
- ARGB1555,
- ARGB
-};
-const char *pixname[] = {
- "CLUT4",
- "CLUT8",
- "RGB565",
- "ARGB1555",
- "ARGB"
-};
-
-struct pixelformat{
- char *name;
- struct fb_bitfield red;
- struct fb_bitfield green;
- struct fb_bitfield blue;
- struct fb_bitfield transp;
- char bpp;
- char pixenum;
-};
-
-static // so far these are all modes supported by the eNX (only partially by GTX)
-const struct pixelformat pixelformattable[] = {
- { .name = "CLUT4 ARGB8888", // CLUT4 (ARGB8888)
- .bpp = 4, .pixenum = CLUT4,
- .red = { .offset = 0, .length=8, .msb_right =0 },
- .green = { .offset = 0, .length=8, .msb_right =0 },
- .blue = { .offset = 0, .length=8, .msb_right =0 },
- .transp= { .offset = 0, .length=8, .msb_right =0 }
- },
- { .name = "CLUT4 ARGB1555", // CLUT4 (ARGB1555)
- .bpp = 4, .pixenum = CLUT4,
- .red = { .offset = 0, .length=5, .msb_right =0 },
- .green = { .offset = 0, .length=5, .msb_right =0 },
- .blue = { .offset = 0, .length=5, .msb_right =0 },
- .transp= { .offset = 0, .length=1, .msb_right =0 }
- },
- { .name = "CLUT8 ARGB8888", // CLUT8 (ARGB8888)
- .bpp = 8, .pixenum = CLUT8,
- .red = { .offset = 0, .length=8, .msb_right =0 },
- .green = { .offset = 0, .length=8, .msb_right =0 },
- .blue = { .offset = 0, .length=8, .msb_right =0 },
- .transp= { .offset = 0, .length=8, .msb_right =0 }
- },
- { .name = "CLUT8 ARGB1555", // CLUT8 (ARGB1555)
- .bpp = 8, .pixenum = CLUT8,
- .red = { .offset = 0, .length=5, .msb_right =0 },
- .green = { .offset = 0, .length=5, .msb_right =0 },
- .blue = { .offset = 0, .length=5, .msb_right =0 },
- .transp= { .offset = 0, .length=1, .msb_right =0 }
- },
- { .name = "ARGB1555", // ARGB1555
- .bpp = 16, .pixenum = ARGB1555,
- .red = { .offset = 10, .length=5, .msb_right =0 },
- .green = { .offset = 5, .length=5, .msb_right =0 },
- .blue = { .offset = 0, .length=5, .msb_right =0 },
- .transp= { .offset = 15, .length=1, .msb_right =0 }
- },
- { .name = "RGB565", // RGB565
- .bpp = 16, .pixenum = RGB565,
- .red = { .offset = 11, .length=5, .msb_right =0 },
- .green = { .offset = 5, .length=6, .msb_right =0 },
- .blue = { .offset = 0, .length=5, .msb_right =0 },
- .transp= { .offset = 0, .length=0, .msb_right =0 }
- },
- { .name = "ARGB", // 32 f*cking bits, the real McCoy :)
- .bpp = 32, .pixenum = ARGB,
- .red = { .offset = 16, .length=8, .msb_right =0 },
- .green = { .offset = 8, .length=8, .msb_right =0 },
- .blue = { .offset = 0, .length=8, .msb_right =0 },
- .transp= { .offset = 24, .length=8, .msb_right =0 }
- }
-};
-#define PIXELFORMATNUM (sizeof(pixelformattable)/sizeof(struct pixelformat))
-
-struct colour {
- __u16 r;
- __u16 g;
- __u16 b;
- __u16 a;
-};
-static
-struct colour colourtable[] = {
- {.r =0xffff, .g = 0xffff, .b=0xffff, .a=0xffff}, // fully transparent white
- {.r =0xffff, .g = 0x0000, .b=0x0000, .a=0x0000}, // red
- {.r =0x0000, .g = 0xffff, .b=0x0000, .a=0x0000}, // green
- {.r =0x0000, .g = 0x0000, .b=0xffff, .a=0x0000}, // blue
- {.r =0x0000, .g = 0x0000, .b=0x0000, .a=0x0000} // black
-};
-#define COLOURNUM (sizeof(colourtable)/sizeof(struct colour))
-
-struct rect{
- int x;
- int y;
- int width;
- int height;
- const struct colour *col;
-};
-struct pixel{ // up to 32 bits of pixel information
- char byte[4];
-};
-
-void col2pixel (struct pixel *pix, const struct pixelformat *pixf, const struct colour *col){
- switch (pixf->pixenum){
- case RGB565:
- pix->byte[0]=(col->r&0xf8)|(col->g&0xfc)>>5;
- pix->byte[1]=(col->g&0xfc)<<3|(col->b&0xf8)>>3;
- break;
- case ARGB1555:
- pix->byte[0]=(col->a&0x80)|(col->r&0xf8)>>1|(col->g&0xf8)>>6;
- pix->byte[1]=(col->g&0xf8)<<2|(col->b&0xf8)>>3;
- break;
- case ARGB:
- pix->byte[0]=col->a;
- pix->byte[1]=col->r;
- pix->byte[2]=col->g;
- pix->byte[3]=col->b;
- break;
- default:
- printf ("unknown pixelformat\n");
- exit(1);
- }
-}
-
-int setmode(int fbd, const struct pixelformat *pixf,const struct vidsize *vids){
- struct fb_var_screeninfo var;
- int stat;
- stat = ioctl (fbd, FBIOGET_VSCREENINFO,&var);
- if (stat<0) return -2;
-
- var.xres= vids->width;
- var.xres_virtual = vids->width;
- var.yres= vids->height;
- var.yres_virtual = vids->height;
-
- var.bits_per_pixel = pixf->bpp;
- var.red = pixf->red;
- var.green = pixf->green;
- var.blue = pixf->blue;
- var.transp = pixf->transp;
-
- stat = ioctl (fbd, FBIOPUT_VSCREENINFO,&var);
- if (stat<0) return -1;
- return 0;
-}
-
-// unefficient implementation, do NOT use it for your next ego shooter, please :)
-// for 4-Bit only rectangles with even width are supported
-// CLUT-modes use value of red component as index
-void drawrect(void *videoram, struct rect *r, const struct pixelformat *pixf, const struct vidsize *vids){
- int x,y,corwidth, bpp = 0, tocopy = 1;
- struct pixel pix;
- unsigned char *pmem = videoram;
- corwidth = r->width; // actually only "corrected" for 4 Bit
-
- if (pixf->pixenum!=CLUT4&&pixf->pixenum!=CLUT8){
- switch (pixf->pixenum){
- case ARGB1555:
- case RGB565:
- bpp = 16;
- tocopy = 2;
- break;
- case ARGB:
- bpp = 32;
- tocopy = 4;
- break;
- default:
- printf ("drawrect: unknown pixelformat(%d) bpp:%d\n",pixf->pixenum,pixf->bpp);
- exit(1);
- }
- col2pixel(&pix,pixf,r->col);
- } else {
- switch (pixf->pixenum){ // CLUT = Colour LookUp Table (palette)
- case CLUT4: // take red value as index in this case
- pix.byte[0]=(r->col->r)<<4|(r->col->r&0xf); // slightly cryptic... "rect->colour->red"
- corwidth>>=1; // we copy bytes
- bpp=4;
- tocopy=1;
- break;
- case CLUT8:
- pix.byte[0]=(r->col->r&0xff);
- bpp=8;
- tocopy=1;
- break;
- }
- }
- pmem=videoram+((((r->y*vids->width)+r->x)*bpp)>>3);
- for (y=0;y<r->height;y++){
- int offset = 0;
- for (x=0;x<corwidth;x++){
- memcpy (pmem+offset,pix.byte,tocopy);
- offset+=tocopy;
- }
- pmem +=((vids->width*bpp)>>3); // skip one whole line, actually should be taken from "fix-info"
- }
-}
-
-// create quick little test image, 4 colours from table
-void draw4field(void *videoram, const struct pixelformat *pixf, const struct vidsize *vids){
- struct rect r;
- struct colour c;
- int height, width;
- c.r = 1; // only used for the indexed modes, r is taken as index
- height = vids->height;
- width = vids->width;
-
- r.height = height>>1;
- r.width = width>>1;
- r.x = 0; r.y = 0;
- if (pixf->pixenum==CLUT4||pixf->pixenum==CLUT8) r.col = &c;
- else r.col = &colourtable[1];
- drawrect (videoram, &r, pixf, vids);
-
- r.x = width/2; r.y = 0;
- if (pixf->pixenum==CLUT4||pixf->pixenum==CLUT8) c.r = 2;
- else r.col = &colourtable[2];
- drawrect (videoram, &r, pixf, vids);
-
- r.x = 0; r.y = height/2;
- if (pixf->pixenum==CLUT4||pixf->pixenum==CLUT8) c.r = 3;
- else r.col = &colourtable[3];
- drawrect (videoram, &r, pixf, vids);
-
- r.x = width/2; r.y = height/2;
- if (pixf->pixenum==CLUT4||pixf->pixenum==CLUT8) c.r = 0;
- else r.col = &colourtable[0];
- drawrect (videoram, &r, pixf, vids);
-}
-
-void usage(char *name){
- printf ("Usage: %s [options]\n"
- "Options: -f<pixelformat>\n"
- " where format is one of:\n"
- " CLUT4,CLUT8,ARGB1555,RGB565,ARGB\n"
- " -s<width>x<heigth>\n"
- " where width is either 720,640,360,320\n"
- " and height is either 288,240,480,576\n"
- " -n\n"
- " disables clearing the framebuffer after drawing\n"
- " the testimage. This can be useful to keep the last\n"
- " drawn image onscreen.\n"
- "\nExample: %s -fRGB322\n",name,name);
- exit(0);
-}
-
-int main (int argc,char **argv){
- struct fb_fix_screeninfo fix;
- struct fb_var_screeninfo var;
- struct fb_cmap cmap;
- struct rect r;
- int fbd;
- unsigned char *pfb;
- int stat;
- int optchar,fmode=-1,smode=-1,clear=1;
- int i_cmap,i_size,i_pix;
- extern char *optarg;
-
- if (argc!=0&&argc>4) usage(argv[0]);
- while ( (optchar = getopt (argc,argv,"f:s:n"))!= -1){
- int i,height,width;
- switch (optchar){
- case 'f':
- for (i=0;i<(sizeof(pixname)/sizeof(char*));i++){
- if (!strncmp (optarg,pixname[i],strlen(pixname[i]))){
- fmode=i;
- printf ("displaying only %s-modes\n",pixname[i]);
- break;
- }
- }
- if (fmode==-1){
- printf ("unknown pixelformat\n");
- exit(0);
- }
- break;
- case 's':
- if (sscanf (optarg,"%dx%d",&width,&height)!=2){
- printf ("parsing size failed\n");
- exit(0);
- } else {
- printf ("requested size %dx%d\n",width,height);
- for (i=0;i<VIDSIZENUM;i++){
- if (vidsizetable[i].width == width &&
- vidsizetable[i].height == height){
- smode = i;
- break;
- }
- }
- if (smode==-1){
- printf ("this size is not supported\n");
- exit(0);
- }
- }
- break;
- case 'n':
- clear = 0;
- printf ("clearing framebuffer after drawing is disabled\n");
- break;
- case '?':
- usage (argv[0]);
- }
- }
-
- fbd = open (FBDEV, O_RDWR);
- if (fbd<0){
- perror ("Error opening framebuffer device");
- return 1;
- }
- stat = ioctl (fbd, FBIOGET_FSCREENINFO,&fix);
- if (stat<0){
- perror ("Error getting fix screeninfo");
- return 1;
- }
- stat = ioctl (fbd, FBIOGET_VSCREENINFO,&var);
- if (stat<0){
- perror ("Error getting var screeninfo");
- return 1;
- }
- stat = ioctl (fbd, FBIOPUT_VSCREENINFO,&var);
- if (stat<0){
- perror ("Error setting mode");
- return 1;
- }
- pfb = mmap (0, fix.smem_len, PROT_READ|PROT_WRITE, MAP_SHARED, fbd, 0);
- if (pfb == MAP_FAILED){
- perror ("Error mmap'ing framebuffer device");
- return 1;
- }
-
- // iterate over all modes
- for (i_pix=0;i_pix<PIXELFORMATNUM;i_pix++){
- if (fmode!=-1 && pixelformattable[i_pix].pixenum != fmode) continue;
- printf ("testing: %s",pixelformattable[i_pix].name);
- printf (" for sizes: \n");
- for (i_size=0;i_size<VIDSIZENUM;i_size++){
- if (smode!=-1 && i_size!=smode) continue;
- printf ("%dx%d ",vidsizetable[i_size].width,vidsizetable[i_size].height);
- fflush(stdout);
- if ((i_size%4)==3) printf ("\n");
-
- // try to set mode
- stat = setmode(fbd,&pixelformattable[i_pix],&vidsizetable[i_size]);
- if (stat==-2) perror ("fbtest: could not get fb_var-screeninfo from fb-device");
- else if (stat==-1){
- printf ("\nCould not set mode %s (%dx%d), possible reasons:\n"
- "- you have a GTX (soz m8)\n"
- "- your configuration does not have enough graphics RAM\n"
- "- you found a bug\n"
- "choose your poison accordingly...\n",
- pixelformattable[i_pix].name,vidsizetable[i_size].width,vidsizetable[i_size].height);
- continue;
- }
- // fill cmap;
- cmap.len = 1;
- if ((pixelformattable[i_pix].bpp==4)||
- ((pixelformattable[i_pix].bpp==8)&&(pixelformattable[i_pix].red.length!=3))){
- for (i_cmap=0;i_cmap<COLOURNUM;i_cmap++){
- cmap.start=i_cmap;
- cmap.red=&colourtable[i_cmap].r;
- cmap.green=&colourtable[i_cmap].g;
- cmap.blue=&colourtable[i_cmap].b;
- cmap.transp=&colourtable[i_cmap].a;
- stat = ioctl (fbd, FBIOPUTCMAP, &cmap);
- if (stat<0) printf ("setting colourmap failed\n");
- }
- }
- // create the test image
- draw4field(pfb,&pixelformattable[i_pix],&vidsizetable[i_size]);
- usleep (500000);
- // clear screen
- if (clear){
- r.x=r.y=0;r.width = vidsizetable[i_size].width; r.height = vidsizetable[i_size].height;
- r.col = &colourtable[4];
- drawrect(pfb,&r,&pixelformattable[i_pix],&vidsizetable[i_size]);
- }
- }
- printf ("\n");
- }
-
- stat = munmap (pfb,fix.smem_len);
- if (stat<0){
- perror ("Error munmap'ing framebuffer device");
- return 1;
- }
- close (fbd);
- return 0;
-}
diff --git a/package/system/utils/hostap-utils/Makefile b/package/system/utils/hostap-utils/Makefile
deleted file mode 100644
index 1d7b22122e..0000000000
--- a/package/system/utils/hostap-utils/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright (C) 2006 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=hostap-utils
-PKG_VERSION:=0.4.7
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://hostap.epitest.fi/releases/
-PKG_MD5SUM:=afe041581b8f01666e353bec20917c85
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/hostap-utils
- SECTION:=net
- CATEGORY:=Network
- DEPENDS:=kmod-hostap
- TITLE:=Host AP driver utility programs
- URL:=http://hostap.epitest.fi/
-endef
-
-define Build/Compile
- $(MAKE) -C $(PKG_BUILD_DIR) \
- $(TARGET_CONFIGURE_OPTS) \
- CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) -Wall" \
- all
-endef
-
-define Package/hostap-utils/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/hostap_crypt_conf $(1)/usr/sbin/
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/hostap_diag $(1)/usr/sbin/
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/hostap_io_debug $(1)/usr/sbin/
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/hostap_rid $(1)/usr/sbin/
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/prism2_srec $(1)/usr/sbin/
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/split_combined_hex $(1)/usr/sbin/
-endef
-
-$(eval $(call BuildPackage,hostap-utils))
diff --git a/package/system/utils/nvram/Makefile b/package/system/utils/nvram/Makefile
deleted file mode 100644
index 81cff034c4..0000000000
--- a/package/system/utils/nvram/Makefile
+++ /dev/null
@@ -1,60 +0,0 @@
-#
-# Copyright (C) 2009-2010 Jo-Philipp Wich <xm@subsignal.org>
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=nvram
-PKG_RELEASE:=9
-
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/nvram
- SECTION:=utils
- CATEGORY:=Base system
- TITLE:=Userspace port of the Broadcom NVRAM manipulation tool
- MAINTAINER:=Jo-Philipp Wich <xm@subsignal.org>
- DEPENDS:=@TARGET_brcm47xx||@TARGET_ar71xx
-endef
-
-define Package/nvram/description
- This package contains an utility to manipulate NVRAM on Broadcom based devices.
- It works on bcm47xx (Linux 2.6) without using the kernel api.
-endef
-
-define Build/Prepare
- mkdir -p $(PKG_BUILD_DIR)
- $(CP) ./src/* $(PKG_BUILD_DIR)/
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
- $(MAKE) -C $(PKG_BUILD_DIR) \
- CC="$(TARGET_CC)" \
- CFLAGS="$(TARGET_CFLAGS) -Wall" \
- LDFLAGS="$(TARGET_LDFLAGS)"
-endef
-
-define Build/InstallDev
- $(INSTALL_DIR) $(1)/usr/lib
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/libnvram.so.0.1 $(1)/usr/lib/
- ln -s libnvram.so.0.1 $(1)/usr/lib/libnvram.so
-endef
-
-define Package/nvram/install
- $(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_BIN) ./files/nvram.init $(1)/etc/init.d/nvram
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/nvram $(1)/usr/sbin/
- $(INSTALL_DIR) $(1)/usr/lib
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/libnvram.so.0.1 $(1)/usr/lib/
-endef
-
-$(eval $(call BuildPackage,nvram))
diff --git a/package/system/utils/nvram/files/nvram.init b/package/system/utils/nvram/files/nvram.init
deleted file mode 100755
index 467ab28195..0000000000
--- a/package/system/utils/nvram/files/nvram.init
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/bin/sh /etc/rc.common
-# NVRAM setup
-#
-# This file handles the NVRAM quirks of various hardware.
-
-START=02
-alias debug=${DEBUG:-:}
-
-nvram_default() {
- [ -z "$(nvram get $1)" ] && nvram set "$1=$2"
-}
-
-nvram_set() { # for the linksys fixup part
- [ "$(nvram get "$1")" = "$2" -a "$2" != "" ] || {
- COMMIT=1
- /usr/sbin/nvram set "$1=$2"
- }
-}
-
-fixup_linksys() {
- # work around braindead CFE defaults in linksys routers
- boardtype=$(nvram get boardtype)
- boardnum=$(nvram get boardnum)
- boardflags=$(($(nvram get boardflags)))
- adm_switch="$(( ($boardflags & 0x80) >> 7 ))"
-
- [ -n "$(nvram get vxkilled)" ] && boardtype=0 # don't mess with the ram settings on the hacked cfe
- case "$(( $boardtype ))" in
- "1800") #0x708
- if [ "$adm_switch" = 0 ]; then
- nvram_set sdram_init "$(printf 0x%04x $(( $(/usr/sbin/nvram get sdram_init) | 0x0100 )))"
- [ "$COMMIT" = 1 ] && {
- nvram_set clkfreq 216
- nvram_set sdram_ncdl 0x0
- nvram_set pa0itssit 62
- nvram_set pa0b0 0x15eb
- nvram_set pa0b1 0xfa82
- nvram_set pa0b2 0xfe66
- nvram_set pa0maxpwr 0x4e
- }
- fi
- ;;
- "1127") #0x467
- nvram_set sdram_init "$(printf 0x%04x $(( $(/usr/sbin/nvram get sdram_init) | 0x0100 )))"
- [ "$COMMIT" = 1 ] && {
- nvram_set sdram_ncdl 0x0
- nvram_set pa0itssit 62
- nvram_set pa0b0 0x168b
- nvram_set pa0b1 0xfabf
- nvram_set pa0b2 0xfeaf
- nvram_set pa0maxpwr 0x4e
- }
- ;;
- "1071") #0x042f
- # do sanity check first! max 0x0011 = 128mb
- SDRAM_INIT=$(printf %d $(/usr/sbin/nvram get sdram_init))
- [ "$SDRAM_INIT" -lt "9" -o "$SDRAM_INIT" -gt "17" ] && {
- # set this to default: 0x09 only if value is invaild like 16MB on Asus WL-500GP
- echo "sdram_init is invaild: $(printf 0x%04x $SDRAM_INIT), force to default!"
- nvram_set sdram_init 0x0009
- }
- # on WRT54G3GV2 set flag, so checksum errors of firmware image 2 don't stop the boot process
- noset_try_flag=$(nvram get noset_try_flag)
- [ "$noset_try_flag" = 0 ] && {
- echo "setting noset_try_flag to 1."
- nvram_set noset_try_flag 1
- }
- [ "$COMMIT" = 1 ] && {
- nvram_set sdram_ncdl 0x0
- }
- esac
-}
-
-start() {
- # Don't do any fixups on the WGT634U
- [ "$(cat /proc/diag/model)" = "Netgear WGT634U" ] && return
-
- fixup_linksys
-
- # OFDM Power Offset is set incorrectly on many boards.
- # Setting it to 0 will increase the tx power to normal levels.
- nvram_set opo 0x0
-
- [ "$(nvram get il0macaddr)" = "00:90:4c:5f:00:2a" ] && {
- # if default wifi mac, set two higher than the lan mac
- nvram set il0macaddr=$(nvram get et0macaddr|
- awk '{OFS=FS=":";for(x=7,y=2;--x;){$x=sprintf("%02x",(y+="0x"$x)%256);y/=256}print}')
- }
-
- [ "$(nvram get et0macaddr)" = "00:90:4c:c0:00:08" ] && {
- # OvisLink WL-1600GL mac workaround
- nvram set et0macaddr=$(hexdump -n 6 -s 130976 -e '5/1 "%02x:" "%02x" ' /dev/mtd/0)
- nvram set il0macaddr=$(nvram get et0macaddr|
- awk '{OFS=FS=":";for(x=7,y=2;--x;){$x=sprintf("%02x",(y+="0x"$x)%256);y/=256}print}')
- }
-
- [ "$COMMIT" = "1" ] && nvram commit
-}
diff --git a/package/system/utils/nvram/src/Makefile b/package/system/utils/nvram/src/Makefile
deleted file mode 100644
index 4872728baf..0000000000
--- a/package/system/utils/nvram/src/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-CLI_FILENAME = nvram
-
-LIB_VERMAJOR = 0
-LIB_VERMINOR = 1
-LIB_FILENAME = libnvram.so
-
-LIB_CFLAGS = $(CFLAGS) -shared -fPIC
-LIB_LDFLAGS = $(LDFLAGS) -Wl,-soname,$(LIB_FILENAME).$(LIB_VERMAJOR).$(LIB_VERMINOR)
-
-CLI_CFLAGS = $(CFLAGS)
-CLI_LDFLAGS = $(LDFLAGS)
-
-CLI_OBJ = cli.o
-LIB_OBJ = crc.o nvram.o
-
-all: cli libnvram
-
-cli: libnvram
- $(CC) $(CLI_CFLAGS) -c -o cli.o cli.c
- $(CC) -o $(CLI_FILENAME) $(CLI_LDFLAGS) $(CLI_OBJ) \
- $(LIB_FILENAME).$(LIB_VERMAJOR).$(LIB_VERMINOR)
-
-cli.o: cli.c
- $(CC) $(CLI_CFLAGS) -c -o $@ $<
-
-libnvram:
- $(CC) $(LIB_CFLAGS) -c -o crc.o crc.c
- $(CC) $(LIB_CFLAGS) -c -o nvram.o nvram.c
- $(CC) $(LIB_CFLAGS) $(LIB_LDFLAGS) \
- -o $(LIB_FILENAME).$(LIB_VERMAJOR).$(LIB_VERMINOR) $(LIB_OBJ)
-
-clean:
- rm -f $(CLI_FILENAME) $(LIB_FILENAME)* *.o
diff --git a/package/system/utils/nvram/src/cli.c b/package/system/utils/nvram/src/cli.c
deleted file mode 100644
index 66ef904885..0000000000
--- a/package/system/utils/nvram/src/cli.c
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Command line interface for libnvram
- *
- * Copyright 2009, Jo-Philipp Wich <xm@subsignal.org>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- *
- * The libnvram code is based on Broadcom code for Linux 2.4.x .
- *
- */
-
-#include "nvram.h"
-
-
-static nvram_handle_t * nvram_open_rdonly(void)
-{
- const char *file = nvram_find_staging();
-
- if( file == NULL )
- file = nvram_find_mtd();
-
- if( file != NULL )
- return nvram_open(file, NVRAM_RO);
-
- return NULL;
-}
-
-static nvram_handle_t * nvram_open_staging(void)
-{
- if( nvram_find_staging() != NULL || nvram_to_staging() == 0 )
- return nvram_open(NVRAM_STAGING, NVRAM_RW);
-
- return NULL;
-}
-
-static int do_show(nvram_handle_t *nvram)
-{
- nvram_tuple_t *t;
- int stat = 1;
-
- if( (t = nvram_getall(nvram)) != NULL )
- {
- while( t )
- {
- printf("%s=%s\n", t->name, t->value);
- t = t->next;
- }
-
- stat = 0;
- }
-
- return stat;
-}
-
-static int do_get(nvram_handle_t *nvram, const char *var)
-{
- const char *val;
- int stat = 1;
-
- if( (val = nvram_get(nvram, var)) != NULL )
- {
- printf("%s\n", val);
- stat = 0;
- }
-
- return stat;
-}
-
-static int do_unset(nvram_handle_t *nvram, const char *var)
-{
- return nvram_unset(nvram, var);
-}
-
-static int do_set(nvram_handle_t *nvram, const char *pair)
-{
- char *val = strstr(pair, "=");
- char var[strlen(pair)];
- int stat = 1;
-
- if( val != NULL )
- {
- memset(var, 0, sizeof(var));
- strncpy(var, pair, (int)(val-pair));
- stat = nvram_set(nvram, var, (char *)(val + 1));
- }
-
- return stat;
-}
-
-static int do_info(nvram_handle_t *nvram)
-{
- nvram_header_t *hdr = nvram_header(nvram);
-
- /* CRC8 over the last 11 bytes of the header and data bytes */
- uint8_t crc = hndcrc8((unsigned char *) &hdr[0] + NVRAM_CRC_START_POSITION,
- hdr->len - NVRAM_CRC_START_POSITION, 0xff);
-
- /* Show info */
- printf("Magic: 0x%08X\n", hdr->magic);
- printf("Length: 0x%08X\n", hdr->len);
- printf("Offset: 0x%08X\n", nvram->offset);
-
- printf("CRC8: 0x%02X (calculated: 0x%02X)\n",
- hdr->crc_ver_init & 0xFF, crc);
-
- printf("Version: 0x%02X\n", (hdr->crc_ver_init >> 8) & 0xFF);
- printf("SDRAM init: 0x%04X\n", (hdr->crc_ver_init >> 16) & 0xFFFF);
- printf("SDRAM config: 0x%04X\n", hdr->config_refresh & 0xFFFF);
- printf("SDRAM refresh: 0x%04X\n", (hdr->config_refresh >> 16) & 0xFFFF);
- printf("NCDL values: 0x%08X\n\n", hdr->config_ncdl);
-
- printf("%i bytes used / %i bytes available (%.2f%%)\n",
- hdr->len, NVRAM_SPACE - hdr->len,
- (100.00 / (double)NVRAM_SPACE) * (double)hdr->len);
-
- return 0;
-}
-
-
-int main( int argc, const char *argv[] )
-{
- nvram_handle_t *nvram;
- int commit = 0;
- int write = 0;
- int stat = 1;
- int done = 0;
- int i;
-
- /* Ugly... iterate over arguments to see whether we can expect a write */
- for( i = 1; i < argc; i++ )
- if( ( !strcmp(argv[i], "set") && ++i < argc ) ||
- ( !strcmp(argv[i], "unset") && ++i < argc ) ||
- !strcmp(argv[i], "commit") )
- {
- write = 1;
- break;
- }
-
-
- nvram = write ? nvram_open_staging() : nvram_open_rdonly();
-
- if( nvram != NULL && argc > 1 )
- {
- for( i = 1; i < argc; i++ )
- {
- if( !strcmp(argv[i], "show") )
- {
- stat = do_show(nvram);
- done++;
- }
- else if( !strcmp(argv[i], "info") )
- {
- stat = do_info(nvram);
- done++;
- }
- else if( !strcmp(argv[i], "get") || !strcmp(argv[i], "unset") || !strcmp(argv[i], "set") )
- {
- if( (i+1) < argc )
- {
- switch(argv[i++][0])
- {
- case 'g':
- stat = do_get(nvram, argv[i]);
- break;
-
- case 'u':
- stat = do_unset(nvram, argv[i]);
- break;
-
- case 's':
- stat = do_set(nvram, argv[i]);
- break;
- }
- done++;
- }
- else
- {
- fprintf(stderr, "Command '%s' requires an argument!\n", argv[i]);
- done = 0;
- break;
- }
- }
- else if( !strcmp(argv[i], "commit") )
- {
- commit = 1;
- done++;
- }
- else
- {
- fprintf(stderr, "Unknown option '%s' !\n", argv[i]);
- done = 0;
- break;
- }
- }
-
- if( write )
- stat = nvram_commit(nvram);
-
- nvram_close(nvram);
-
- if( commit )
- stat = staging_to_nvram();
- }
-
- if( !nvram )
- {
- fprintf(stderr,
- "Could not open nvram! Possible reasons are:\n"
- " - No device found (/proc not mounted or no nvram present)\n"
- " - Insufficient permissions to open mtd device\n"
- " - Insufficient memory to complete operation\n"
- " - Memory mapping failed or not supported\n"
- );
-
- stat = 1;
- }
- else if( !done )
- {
- fprintf(stderr,
- "Usage:\n"
- " nvram show\n"
- " nvram info\n"
- " nvram get variable\n"
- " nvram set variable=value [set ...]\n"
- " nvram unset variable [unset ...]\n"
- " nvram commit\n"
- );
-
- stat = 1;
- }
-
- return stat;
-}
diff --git a/package/system/utils/nvram/src/crc.c b/package/system/utils/nvram/src/crc.c
deleted file mode 100644
index 22a36652aa..0000000000
--- a/package/system/utils/nvram/src/crc.c
+++ /dev/null
@@ -1,69 +0,0 @@
-#include "nvram.h"
-
-/*******************************************************************************
- * crc8
- *
- * Computes a crc8 over the input data using the polynomial:
- *
- * x^8 + x^7 +x^6 + x^4 + x^2 + 1
- *
- * The caller provides the initial value (either CRC8_INIT_VALUE
- * or the previous returned value) to allow for processing of
- * discontiguous blocks of data. When generating the CRC the
- * caller is responsible for complementing the final return value
- * and inserting it into the byte stream. When checking, a final
- * return value of CRC8_GOOD_VALUE indicates a valid CRC.
- *
- * Reference: Dallas Semiconductor Application Note 27
- * Williams, Ross N., "A Painless Guide to CRC Error Detection Algorithms",
- * ver 3, Aug 1993, ross@guest.adelaide.edu.au, Rocksoft Pty Ltd.,
- * ftp://ftp.rocksoft.com/clients/rocksoft/papers/crc_v3.txt
- *
- * ****************************************************************************
- */
-
-static const uint8_t crc8_table[256] = {
- 0x00, 0xF7, 0xB9, 0x4E, 0x25, 0xD2, 0x9C, 0x6B,
- 0x4A, 0xBD, 0xF3, 0x04, 0x6F, 0x98, 0xD6, 0x21,
- 0x94, 0x63, 0x2D, 0xDA, 0xB1, 0x46, 0x08, 0xFF,
- 0xDE, 0x29, 0x67, 0x90, 0xFB, 0x0C, 0x42, 0xB5,
- 0x7F, 0x88, 0xC6, 0x31, 0x5A, 0xAD, 0xE3, 0x14,
- 0x35, 0xC2, 0x8C, 0x7B, 0x10, 0xE7, 0xA9, 0x5E,
- 0xEB, 0x1C, 0x52, 0xA5, 0xCE, 0x39, 0x77, 0x80,
- 0xA1, 0x56, 0x18, 0xEF, 0x84, 0x73, 0x3D, 0xCA,
- 0xFE, 0x09, 0x47, 0xB0, 0xDB, 0x2C, 0x62, 0x95,
- 0xB4, 0x43, 0x0D, 0xFA, 0x91, 0x66, 0x28, 0xDF,
- 0x6A, 0x9D, 0xD3, 0x24, 0x4F, 0xB8, 0xF6, 0x01,
- 0x20, 0xD7, 0x99, 0x6E, 0x05, 0xF2, 0xBC, 0x4B,
- 0x81, 0x76, 0x38, 0xCF, 0xA4, 0x53, 0x1D, 0xEA,
- 0xCB, 0x3C, 0x72, 0x85, 0xEE, 0x19, 0x57, 0xA0,
- 0x15, 0xE2, 0xAC, 0x5B, 0x30, 0xC7, 0x89, 0x7E,
- 0x5F, 0xA8, 0xE6, 0x11, 0x7A, 0x8D, 0xC3, 0x34,
- 0xAB, 0x5C, 0x12, 0xE5, 0x8E, 0x79, 0x37, 0xC0,
- 0xE1, 0x16, 0x58, 0xAF, 0xC4, 0x33, 0x7D, 0x8A,
- 0x3F, 0xC8, 0x86, 0x71, 0x1A, 0xED, 0xA3, 0x54,
- 0x75, 0x82, 0xCC, 0x3B, 0x50, 0xA7, 0xE9, 0x1E,
- 0xD4, 0x23, 0x6D, 0x9A, 0xF1, 0x06, 0x48, 0xBF,
- 0x9E, 0x69, 0x27, 0xD0, 0xBB, 0x4C, 0x02, 0xF5,
- 0x40, 0xB7, 0xF9, 0x0E, 0x65, 0x92, 0xDC, 0x2B,
- 0x0A, 0xFD, 0xB3, 0x44, 0x2F, 0xD8, 0x96, 0x61,
- 0x55, 0xA2, 0xEC, 0x1B, 0x70, 0x87, 0xC9, 0x3E,
- 0x1F, 0xE8, 0xA6, 0x51, 0x3A, 0xCD, 0x83, 0x74,
- 0xC1, 0x36, 0x78, 0x8F, 0xE4, 0x13, 0x5D, 0xAA,
- 0x8B, 0x7C, 0x32, 0xC5, 0xAE, 0x59, 0x17, 0xE0,
- 0x2A, 0xDD, 0x93, 0x64, 0x0F, 0xF8, 0xB6, 0x41,
- 0x60, 0x97, 0xD9, 0x2E, 0x45, 0xB2, 0xFC, 0x0B,
- 0xBE, 0x49, 0x07, 0xF0, 0x9B, 0x6C, 0x22, 0xD5,
- 0xF4, 0x03, 0x4D, 0xBA, 0xD1, 0x26, 0x68, 0x9F
-};
-
-uint8_t hndcrc8 (
- uint8_t * pdata, /* pointer to array of data to process */
- uint32_t nbytes, /* number of input data bytes to process */
- uint8_t crc /* either CRC8_INIT_VALUE or previous return value */
-) {
- while (nbytes-- > 0)
- crc = crc8_table[(crc ^ *pdata++) & 0xff];
-
- return crc;
-}
diff --git a/package/system/utils/nvram/src/nvram.c b/package/system/utils/nvram/src/nvram.c
deleted file mode 100644
index a0bc006d15..0000000000
--- a/package/system/utils/nvram/src/nvram.c
+++ /dev/null
@@ -1,556 +0,0 @@
-/*
- * NVRAM variable manipulation (common)
- *
- * Copyright 2004, Broadcom Corporation
- * Copyright 2009-2010, OpenWrt.org
- * All Rights Reserved.
- *
- * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
- * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
- * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
- *
- */
-
-#include "nvram.h"
-
-#define TRACE(msg) \
- printf("%s(%i) in %s(): %s\n", \
- __FILE__, __LINE__, __FUNCTION__, msg ? msg : "?")
-
-size_t nvram_erase_size = 0;
-
-
-/*
- * -- Helper functions --
- */
-
-/* String hash */
-static uint32_t hash(const char *s)
-{
- uint32_t hash = 0;
-
- while (*s)
- hash = 31 * hash + *s++;
-
- return hash;
-}
-
-/* Free all tuples. */
-static void _nvram_free(nvram_handle_t *h)
-{
- uint32_t i;
- nvram_tuple_t *t, *next;
-
- /* Free hash table */
- for (i = 0; i < NVRAM_ARRAYSIZE(h->nvram_hash); i++) {
- for (t = h->nvram_hash[i]; t; t = next) {
- next = t->next;
- free(t);
- }
- h->nvram_hash[i] = NULL;
- }
-
- /* Free dead table */
- for (t = h->nvram_dead; t; t = next) {
- next = t->next;
- free(t);
- }
-
- h->nvram_dead = NULL;
-}
-
-/* (Re)allocate NVRAM tuples. */
-static nvram_tuple_t * _nvram_realloc( nvram_handle_t *h, nvram_tuple_t *t,
- const char *name, const char *value )
-{
- if ((strlen(value) + 1) > NVRAM_SPACE)
- return NULL;
-
- if (!t) {
- if (!(t = malloc(sizeof(nvram_tuple_t) + strlen(name) + 1)))
- return NULL;
-
- /* Copy name */
- t->name = (char *) &t[1];
- strcpy(t->name, name);
-
- t->value = NULL;
- }
-
- /* Copy value */
- if (!t->value || strcmp(t->value, value))
- {
- if(!(t->value = (char *) realloc(t->value, strlen(value)+1)))
- return NULL;
-
- strcpy(t->value, value);
- t->value[strlen(value)] = '\0';
- }
-
- return t;
-}
-
-/* (Re)initialize the hash table. */
-static int _nvram_rehash(nvram_handle_t *h)
-{
- nvram_header_t *header = nvram_header(h);
- char buf[] = "0xXXXXXXXX", *name, *value, *eq;
-
- /* (Re)initialize hash table */
- _nvram_free(h);
-
- /* Parse and set "name=value\0 ... \0\0" */
- name = (char *) &header[1];
-
- for (; *name; name = value + strlen(value) + 1) {
- if (!(eq = strchr(name, '=')))
- break;
- *eq = '\0';
- value = eq + 1;
- nvram_set(h, name, value);
- *eq = '=';
- }
-
- /* Set special SDRAM parameters */
- if (!nvram_get(h, "sdram_init")) {
- sprintf(buf, "0x%04X", (uint16_t)(header->crc_ver_init >> 16));
- nvram_set(h, "sdram_init", buf);
- }
- if (!nvram_get(h, "sdram_config")) {
- sprintf(buf, "0x%04X", (uint16_t)(header->config_refresh & 0xffff));
- nvram_set(h, "sdram_config", buf);
- }
- if (!nvram_get(h, "sdram_refresh")) {
- sprintf(buf, "0x%04X",
- (uint16_t)((header->config_refresh >> 16) & 0xffff));
- nvram_set(h, "sdram_refresh", buf);
- }
- if (!nvram_get(h, "sdram_ncdl")) {
- sprintf(buf, "0x%08X", header->config_ncdl);
- nvram_set(h, "sdram_ncdl", buf);
- }
-
- return 0;
-}
-
-
-/*
- * -- Public functions --
- */
-
-/* Get nvram header. */
-nvram_header_t * nvram_header(nvram_handle_t *h)
-{
- return (nvram_header_t *) &h->mmap[h->offset];
-}
-
-/* Get the value of an NVRAM variable. */
-char * nvram_get(nvram_handle_t *h, const char *name)
-{
- uint32_t i;
- nvram_tuple_t *t;
- char *value;
-
- if (!name)
- return NULL;
-
- /* Hash the name */
- i = hash(name) % NVRAM_ARRAYSIZE(h->nvram_hash);
-
- /* Find the associated tuple in the hash table */
- for (t = h->nvram_hash[i]; t && strcmp(t->name, name); t = t->next);
-
- value = t ? t->value : NULL;
-
- return value;
-}
-
-/* Set the value of an NVRAM variable. */
-int nvram_set(nvram_handle_t *h, const char *name, const char *value)
-{
- uint32_t i;
- nvram_tuple_t *t, *u, **prev;
-
- /* Hash the name */
- i = hash(name) % NVRAM_ARRAYSIZE(h->nvram_hash);
-
- /* Find the associated tuple in the hash table */
- for (prev = &h->nvram_hash[i], t = *prev;
- t && strcmp(t->name, name); prev = &t->next, t = *prev);
-
- /* (Re)allocate tuple */
- if (!(u = _nvram_realloc(h, t, name, value)))
- return -12; /* -ENOMEM */
-
- /* Value reallocated */
- if (t && t == u)
- return 0;
-
- /* Move old tuple to the dead table */
- if (t) {
- *prev = t->next;
- t->next = h->nvram_dead;
- h->nvram_dead = t;
- }
-
- /* Add new tuple to the hash table */
- u->next = h->nvram_hash[i];
- h->nvram_hash[i] = u;
-
- return 0;
-}
-
-/* Unset the value of an NVRAM variable. */
-int nvram_unset(nvram_handle_t *h, const char *name)
-{
- uint32_t i;
- nvram_tuple_t *t, **prev;
-
- if (!name)
- return 0;
-
- /* Hash the name */
- i = hash(name) % NVRAM_ARRAYSIZE(h->nvram_hash);
-
- /* Find the associated tuple in the hash table */
- for (prev = &h->nvram_hash[i], t = *prev;
- t && strcmp(t->name, name); prev = &t->next, t = *prev);
-
- /* Move it to the dead table */
- if (t) {
- *prev = t->next;
- t->next = h->nvram_dead;
- h->nvram_dead = t;
- }
-
- return 0;
-}
-
-/* Get all NVRAM variables. */
-nvram_tuple_t * nvram_getall(nvram_handle_t *h)
-{
- int i;
- nvram_tuple_t *t, *l, *x;
-
- l = NULL;
-
- for (i = 0; i < NVRAM_ARRAYSIZE(h->nvram_hash); i++) {
- for (t = h->nvram_hash[i]; t; t = t->next) {
- if( (x = (nvram_tuple_t *) malloc(sizeof(nvram_tuple_t))) != NULL )
- {
- x->name = t->name;
- x->value = t->value;
- x->next = l;
- l = x;
- }
- else
- {
- break;
- }
- }
- }
-
- return l;
-}
-
-/* Regenerate NVRAM. */
-int nvram_commit(nvram_handle_t *h)
-{
- nvram_header_t *header = nvram_header(h);
- char *init, *config, *refresh, *ncdl;
- char *ptr, *end;
- int i;
- nvram_tuple_t *t;
- nvram_header_t tmp;
- uint8_t crc;
-
- /* Regenerate header */
- header->magic = NVRAM_MAGIC;
- header->crc_ver_init = (NVRAM_VERSION << 8);
- if (!(init = nvram_get(h, "sdram_init")) ||
- !(config = nvram_get(h, "sdram_config")) ||
- !(refresh = nvram_get(h, "sdram_refresh")) ||
- !(ncdl = nvram_get(h, "sdram_ncdl"))) {
- header->crc_ver_init |= SDRAM_INIT << 16;
- header->config_refresh = SDRAM_CONFIG;
- header->config_refresh |= SDRAM_REFRESH << 16;
- header->config_ncdl = 0;
- } else {
- header->crc_ver_init |= (strtoul(init, NULL, 0) & 0xffff) << 16;
- header->config_refresh = strtoul(config, NULL, 0) & 0xffff;
- header->config_refresh |= (strtoul(refresh, NULL, 0) & 0xffff) << 16;
- header->config_ncdl = strtoul(ncdl, NULL, 0);
- }
-
- /* Clear data area */
- ptr = (char *) header + sizeof(nvram_header_t);
- memset(ptr, 0xFF, NVRAM_SPACE - sizeof(nvram_header_t));
- memset(&tmp, 0, sizeof(nvram_header_t));
-
- /* Leave space for a double NUL at the end */
- end = (char *) header + NVRAM_SPACE - 2;
-
- /* Write out all tuples */
- for (i = 0; i < NVRAM_ARRAYSIZE(h->nvram_hash); i++) {
- for (t = h->nvram_hash[i]; t; t = t->next) {
- if ((ptr + strlen(t->name) + 1 + strlen(t->value) + 1) > end)
- break;
- ptr += sprintf(ptr, "%s=%s", t->name, t->value) + 1;
- }
- }
-
- /* End with a double NULL and pad to 4 bytes */
- *ptr = '\0';
- ptr++;
-
- if( (int)ptr % 4 )
- memset(ptr, 0, 4 - ((int)ptr % 4));
-
- ptr++;
-
- /* Set new length */
- header->len = NVRAM_ROUNDUP(ptr - (char *) header, 4);
-
- /* Little-endian CRC8 over the last 11 bytes of the header */
- tmp.crc_ver_init = header->crc_ver_init;
- tmp.config_refresh = header->config_refresh;
- tmp.config_ncdl = header->config_ncdl;
- crc = hndcrc8((unsigned char *) &tmp + NVRAM_CRC_START_POSITION,
- sizeof(nvram_header_t) - NVRAM_CRC_START_POSITION, 0xff);
-
- /* Continue CRC8 over data bytes */
- crc = hndcrc8((unsigned char *) &header[0] + sizeof(nvram_header_t),
- header->len - sizeof(nvram_header_t), crc);
-
- /* Set new CRC8 */
- header->crc_ver_init |= crc;
-
- /* Write out */
- msync(h->mmap, h->length, MS_SYNC);
- fsync(h->fd);
-
- /* Reinitialize hash table */
- return _nvram_rehash(h);
-}
-
-/* Open NVRAM and obtain a handle. */
-nvram_handle_t * nvram_open(const char *file, int rdonly)
-{
- int i;
- int fd;
- char *mtd = NULL;
- nvram_handle_t *h;
- nvram_header_t *header;
- int offset = -1;
-
- /* If erase size or file are undefined then try to define them */
- if( (nvram_erase_size == 0) || (file == NULL) )
- {
- /* Finding the mtd will set the appropriate erase size */
- if( (mtd = nvram_find_mtd()) == NULL || nvram_erase_size == 0 )
- {
- free(mtd);
- return NULL;
- }
- }
-
- if( (fd = open(file ? file : mtd, O_RDWR)) > -1 )
- {
- char *mmap_area = (char *) mmap(
- NULL, nvram_erase_size, PROT_READ | PROT_WRITE,
- (( rdonly == NVRAM_RO ) ? MAP_PRIVATE : MAP_SHARED) | MAP_LOCKED, fd, 0);
-
- if( mmap_area != MAP_FAILED )
- {
- for( i = 0; i <= ((nvram_erase_size - NVRAM_SPACE) / sizeof(uint32_t)); i++ )
- {
- if( ((uint32_t *)mmap_area)[i] == NVRAM_MAGIC )
- {
- offset = i * sizeof(uint32_t);
- break;
- }
- }
-
- if( offset < 0 )
- {
- free(mtd);
- return NULL;
- }
- else if( (h = malloc(sizeof(nvram_handle_t))) != NULL )
- {
- memset(h, 0, sizeof(nvram_handle_t));
-
- h->fd = fd;
- h->mmap = mmap_area;
- h->length = nvram_erase_size;
- h->offset = offset;
-
- header = nvram_header(h);
-
- if( header->magic == NVRAM_MAGIC )
- {
- _nvram_rehash(h);
- free(mtd);
- return h;
- }
- else
- {
- munmap(h->mmap, h->length);
- free(h);
- }
- }
- }
- }
-
- free(mtd);
- return NULL;
-}
-
-/* Close NVRAM and free memory. */
-int nvram_close(nvram_handle_t *h)
-{
- _nvram_free(h);
- munmap(h->mmap, h->length);
- close(h->fd);
- free(h);
-
- return 0;
-}
-
-/* Determine NVRAM device node. */
-char * nvram_find_mtd(void)
-{
- FILE *fp;
- int i, esz;
- char dev[PATH_MAX];
- char *path = NULL;
- struct stat s;
- int supported = 1;
-
- /* Refuse any operation on the WGT634U */
- if( (fp = fopen("/proc/diag/model", "r")) )
- {
- if( fgets(dev, sizeof(dev), fp) && !strncmp(dev, "Netgear WGT634U", 15) )
- supported = 0;
-
- fclose(fp);
- }
-
- if( supported && (fp = fopen("/proc/mtd", "r")) )
- {
- while( fgets(dev, sizeof(dev), fp) )
- {
- if( strstr(dev, "nvram") && sscanf(dev, "mtd%d: %08x", &i, &esz) )
- {
- nvram_erase_size = esz;
-
- sprintf(dev, "/dev/mtdblock/%d", i);
- if( stat(dev, &s) > -1 && (s.st_mode & S_IFBLK) )
- {
- if( (path = (char *) malloc(strlen(dev)+1)) != NULL )
- {
- strncpy(path, dev, strlen(dev)+1);
- break;
- }
- }
- else
- {
- sprintf(dev, "/dev/mtdblock%d", i);
- if( stat(dev, &s) > -1 && (s.st_mode & S_IFBLK) )
- {
- if( (path = (char *) malloc(strlen(dev)+1)) != NULL )
- {
- strncpy(path, dev, strlen(dev)+1);
- break;
- }
- }
- }
- }
- }
- fclose(fp);
- }
-
- return path;
-}
-
-/* Check NVRAM staging file. */
-char * nvram_find_staging(void)
-{
- struct stat s;
-
- if( (stat(NVRAM_STAGING, &s) > -1) && (s.st_mode & S_IFREG) )
- {
- return NVRAM_STAGING;
- }
-
- return NULL;
-}
-
-/* Copy NVRAM contents to staging file. */
-int nvram_to_staging(void)
-{
- int fdmtd, fdstg, stat;
- char *mtd = nvram_find_mtd();
- char buf[nvram_erase_size];
-
- stat = -1;
-
- if( (mtd != NULL) && (nvram_erase_size > 0) )
- {
- if( (fdmtd = open(mtd, O_RDONLY)) > -1 )
- {
- if( read(fdmtd, buf, sizeof(buf)) == sizeof(buf) )
- {
- if((fdstg = open(NVRAM_STAGING, O_WRONLY | O_CREAT, 0600)) > -1)
- {
- write(fdstg, buf, sizeof(buf));
- fsync(fdstg);
- close(fdstg);
-
- stat = 0;
- }
- }
-
- close(fdmtd);
- }
- }
-
- free(mtd);
- return stat;
-}
-
-/* Copy staging file to NVRAM device. */
-int staging_to_nvram(void)
-{
- int fdmtd, fdstg, stat;
- char *mtd = nvram_find_mtd();
- char buf[nvram_erase_size];
-
- stat = -1;
-
- if( (mtd != NULL) && (nvram_erase_size > 0) )
- {
- if( (fdstg = open(NVRAM_STAGING, O_RDONLY)) > -1 )
- {
- if( read(fdstg, buf, sizeof(buf)) == sizeof(buf) )
- {
- if( (fdmtd = open(mtd, O_WRONLY | O_SYNC)) > -1 )
- {
- write(fdmtd, buf, sizeof(buf));
- fsync(fdmtd);
- close(fdmtd);
- stat = 0;
- }
- }
-
- close(fdstg);
-
- if( !stat )
- stat = unlink(NVRAM_STAGING) ? 1 : 0;
- }
- }
-
- free(mtd);
- return stat;
-}
diff --git a/package/system/utils/nvram/src/nvram.h b/package/system/utils/nvram/src/nvram.h
deleted file mode 100644
index c72f67e9a8..0000000000
--- a/package/system/utils/nvram/src/nvram.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * NVRAM variable manipulation
- *
- * Copyright 2007, Broadcom Corporation
- * Copyright 2009, OpenWrt.org
- * All Rights Reserved.
- *
- * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
- * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
- * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
- *
- */
-
-#ifndef _nvram_h_
-#define _nvram_h_
-
-#include <stdint.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <errno.h>
-#include <sys/mman.h>
-#include <sys/stat.h>
-#include <linux/limits.h>
-
-#include "sdinitvals.h"
-
-
-struct nvram_header {
- uint32_t magic;
- uint32_t len;
- uint32_t crc_ver_init; /* 0:7 crc, 8:15 ver, 16:31 sdram_init */
- uint32_t config_refresh; /* 0:15 sdram_config, 16:31 sdram_refresh */
- uint32_t config_ncdl; /* ncdl values for memc */
-} __attribute__((__packed__));
-
-struct nvram_tuple {
- char *name;
- char *value;
- struct nvram_tuple *next;
-};
-
-struct nvram_handle {
- int fd;
- char *mmap;
- unsigned int length;
- unsigned int offset;
- struct nvram_tuple *nvram_hash[257];
- struct nvram_tuple *nvram_dead;
-};
-
-typedef struct nvram_handle nvram_handle_t;
-typedef struct nvram_header nvram_header_t;
-typedef struct nvram_tuple nvram_tuple_t;
-
-
-/* Get nvram header. */
-nvram_header_t * nvram_header(nvram_handle_t *h);
-
-/* Set the value of an NVRAM variable */
-int nvram_set(nvram_handle_t *h, const char *name, const char *value);
-
-/* Get the value of an NVRAM variable. */
-char * nvram_get(nvram_handle_t *h, const char *name);
-
-/* Unset the value of an NVRAM variable. */
-int nvram_unset(nvram_handle_t *h, const char *name);
-
-/* Get all NVRAM variables. */
-nvram_tuple_t * nvram_getall(nvram_handle_t *h);
-
-/* Regenerate NVRAM. */
-int nvram_commit(nvram_handle_t *h);
-
-/* Open NVRAM and obtain a handle. */
-nvram_handle_t * nvram_open(const char *file, int rdonly);
-
-/* Close NVRAM and free memory. */
-int nvram_close(nvram_handle_t *h);
-
-/* Get the value of an NVRAM variable in a safe way, use "" instead of NULL. */
-#define nvram_safe_get(h, name) (nvram_get(h, name) ? : "")
-
-/* Computes a crc8 over the input data. */
-uint8_t hndcrc8 (uint8_t * pdata, uint32_t nbytes, uint8_t crc);
-
-/* Returns the crc value of the nvram. */
-uint8_t nvram_calc_crc(nvram_header_t * nvh);
-
-/* Determine NVRAM device node. */
-char * nvram_find_mtd(void);
-
-/* Copy NVRAM contents to staging file. */
-int nvram_to_staging(void);
-
-/* Copy staging file to NVRAM device. */
-int staging_to_nvram(void);
-
-/* Check NVRAM staging file. */
-char * nvram_find_staging(void);
-
-
-/* Staging file for NVRAM */
-#define NVRAM_STAGING "/tmp/.nvram"
-#define NVRAM_RO 1
-#define NVRAM_RW 0
-
-/* Helper macros */
-#define NVRAM_ARRAYSIZE(a) sizeof(a)/sizeof(a[0])
-#define NVRAM_ROUNDUP(x, y) ((((x)+((y)-1))/(y))*(y))
-
-/* NVRAM constants */
-#define NVRAM_SPACE 0x8000
-#define NVRAM_MAGIC 0x48534C46 /* 'FLSH' */
-#define NVRAM_VERSION 1
-
-#define NVRAM_CRC_START_POSITION 9 /* magic, len, crc8 to be skipped */
-
-
-#endif /* _nvram_h_ */
diff --git a/package/system/utils/nvram/src/sdinitvals.h b/package/system/utils/nvram/src/sdinitvals.h
deleted file mode 100644
index 5a289adece..0000000000
--- a/package/system/utils/nvram/src/sdinitvals.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * SDRAM init values
- *
- * Copyright 2007, Broadcom Corporation
- * Copyright 2009, OpenWrt.org
- * All Rights Reserved.
- *
- * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
- * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
- * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
- *
- */
-
-#ifndef _sdinitvals_h_
-#define _sdinitvals_h_
-
-/* SDRAM refresh control (refresh) register bits */
-#define SDRAM_REF(p) (((p)&0xff) | SDRAM_REF_EN) /* Refresh period */
-#define SDRAM_REF_EN 0x8000 /* Writing 1 enables periodic refresh */
-
-/* SDRAM Core default Init values (OCP ID 0x803) */
-#define MEM4MX16X2 0x419 /* 16 MB */
-
-#define SDRAM_INIT MEM4MX16X2
-#define SDRAM_BURSTFULL 0x0000 /* Use full page bursts */
-#define SDRAM_CONFIG SDRAM_BURSTFULL
-#define SDRAM_REFRESH SDRAM_REF(0x40)
-
-#endif /* _sdinitvals_h_ */
diff --git a/package/system/utils/robocfg/Makefile b/package/system/utils/robocfg/Makefile
deleted file mode 100644
index 4bc72f51db..0000000000
--- a/package/system/utils/robocfg/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-#
-# Copyright (C) 2006 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=robocfg
-PKG_VERSION:=0.01
-PKG_RELEASE:=1
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/robocfg
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/robocfg
- SECTION:=utils
- CATEGORY:=Utilities
- TITLE:=BCM5325E/536x switch configuration utility
-endef
-
-define Package/robocfg/description
- This package contains an utility for configuring the Broadcom BCM5325E/536x
- based switches.
-endef
-
-define Build/Prepare
- mkdir -p $(PKG_BUILD_DIR)
- $(CP) ./src/* $(PKG_BUILD_DIR)/
-endef
-
-define Package/robocfg/install
- $(INSTALL_DIR) $(1)/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/robocfg $(1)/sbin/
-endef
-
-$(eval $(call BuildPackage,robocfg))
diff --git a/package/system/utils/robocfg/src/Makefile b/package/system/utils/robocfg/src/Makefile
deleted file mode 100644
index e11acb020a..0000000000
--- a/package/system/utils/robocfg/src/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-
-all: robocfg
-
-%.o: %.c
- $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $^
-
-robocfg: robocfg.o
- $(CC) -o $@ $^
-
-clean:
- rm -f *.o robocfg
diff --git a/package/system/utils/robocfg/src/etc53xx.h b/package/system/utils/robocfg/src/etc53xx.h
deleted file mode 100644
index d5b1310cb6..0000000000
--- a/package/system/utils/robocfg/src/etc53xx.h
+++ /dev/null
@@ -1,619 +0,0 @@
-/*
- * Broadcom Home Gateway Reference Design
- * BCM53xx Register definitions
- *
- * Copyright 2004, Broadcom Corporation
- * All Rights Reserved.
- *
- * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
- * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
- * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
- * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
- */
-
-#ifndef __BCM535M_H_
-#define __BCM535M_H_
-
-/* ROBO embedded device type */
-#define ROBO_DEV_5380 1
-#define ROBO_DEV_5365 2
-#define ROBO_DEV_5350 3
-
-/* BCM5325m GLOBAL PAGE REGISTER MAP */
-#ifndef _CFE_
-#pragma pack(1)
-#endif
-
-/* BCM5325m Serial Management Port (SMP) Page offsets */
-#define ROBO_CTRL_PAGE 0x00 /* Control registers */
-#define ROBO_STAT_PAGE 0x01 /* Status register */
-#define ROBO_MGMT_PAGE 0x02 /* Management Mode registers */
-#define ROBO_MIB_AC_PAGE 0x03 /* MIB Autocast registers */
-#define ROBO_ARLCTRL_PAGE 0x04 /* ARL Control Registers */
-#define ROBO_ARLIO_PAGE 0x05 /* ARL Access Registers */
-#define ROBO_FRAMEBUF_PAGE 0x06 /* Management frame access registers */
-#define ROBO_MEM_ACCESS_PAGE 0x08 /* Memory access registers */
-
-/* PHY Registers */
-#define ROBO_PORT0_MII_PAGE 0x10 /* Port 0 MII Registers */
-#define ROBO_PORT1_MII_PAGE 0x11 /* Port 1 MII Registers */
-#define ROBO_PORT2_MII_PAGE 0x12 /* Port 2 MII Registers */
-#define ROBO_PORT3_MII_PAGE 0x13 /* Port 3 MII Registers */
-#define ROBO_PORT4_MII_PAGE 0x14 /* Port 4 MII Registers */
-/* (start) registers only for BCM5380 */
-#define ROBO_PORT5_MII_PAGE 0x15 /* Port 5 MII Registers */
-#define ROBO_PORT6_MII_PAGE 0x16 /* Port 6 MII Registers */
-#define ROBO_PORT7_MII_PAGE 0x17 /* Port 7 MII Registers */
-/* (end) registers only for BCM5380 */
-#define ROBO_IM_PORT_PAGE 0x18 /* Inverse MII Port (to EMAC) */
-#define ROBO_ALL_PORT_PAGE 0x19 /* All ports MII Registers (broadcast)*/
-
-/* MAC Statistics registers */
-#define ROBO_PORT0_MIB_PAGE 0x20 /* Port 0 10/100 MIB Statistics */
-#define ROBO_PORT1_MIB_PAGE 0x21 /* Port 1 10/100 MIB Statistics */
-#define ROBO_PORT2_MIB_PAGE 0x22 /* Port 2 10/100 MIB Statistics */
-#define ROBO_PORT3_MIB_PAGE 0x23 /* Port 3 10/100 MIB Statistics */
-#define ROBO_PORT4_MIB_PAGE 0x24 /* Port 4 10/100 MIB Statistics */
-/* (start) registers only for BCM5380 */
-#define ROBO_PORT5_MIB_PAGE 0x25 /* Port 5 10/100 MIB Statistics */
-#define ROBO_PORT6_MIB_PAGE 0x26 /* Port 6 10/100 MIB Statistics */
-#define ROBO_PORT7_MIB_PAGE 0x27 /* Port 7 10/100 MIB Statistics */
-/* (end) registers only for BCM5380 */
-#define ROBO_IM_PORT_MIB_PAGE 0x28 /* Inverse MII Port MIB Statistics */
-
-/* Quality of Service (QoS) Registers */
-#define ROBO_QOS_PAGE 0x30 /* QoS Registers */
-
-/* VLAN Registers */
-#define ROBO_VLAN_PAGE 0x34 /* VLAN Registers */
-
-/* Note SPI Data/IO Registers not used */
-#define ROBO_SPI_DATA_IO_0_PAGE 0xf0 /* SPI Data I/O 0 */
-#define ROBO_SPI_DATA_IO_1_PAGE 0xf1 /* SPI Data I/O 1 */
-#define ROBO_SPI_DATA_IO_2_PAGE 0xf2 /* SPI Data I/O 2 */
-#define ROBO_SPI_DATA_IO_3_PAGE 0xf3 /* SPI Data I/O 3 */
-#define ROBO_SPI_DATA_IO_4_PAGE 0xf4 /* SPI Data I/O 4 */
-#define ROBO_SPI_DATA_IO_5_PAGE 0xf5 /* SPI Data I/O 5 */
-#define ROBO_SPI_DATA_IO_6_PAGE 0xf6 /* SPI Data I/O 6 */
-#define ROBO_SPI_DATA_IO_7_PAGE 0xf7 /* SPI Data I/O 7 */
-
-#define ROBO_SPI_STATUS_PAGE 0xfe /* SPI Status Registers */
-#define ROBO_PAGE_PAGE 0xff /* Page Registers */
-
-
-/* BCM5325m CONTROL PAGE (0x00) REGISTER MAP : 8bit (byte) registers */
-typedef struct _ROBO_PORT_CTRL_STRUC
-{
- unsigned char rx_disable:1; /* rx disable */
- unsigned char tx_disable:1; /* tx disable */
- unsigned char rsvd:3; /* reserved */
- unsigned char stp_state:3; /* spanning tree state */
-} ROBO_PORT_CTRL_STRUC;
-
-#define ROBO_PORT0_CTRL 0x00 /* 10/100 Port 0 Control */
-#define ROBO_PORT1_CTRL 0x01 /* 10/100 Port 1 Control */
-#define ROBO_PORT2_CTRL 0x02 /* 10/100 Port 2 Control */
-#define ROBO_PORT3_CTRL 0x03 /* 10/100 Port 3 Control */
-#define ROBO_PORT4_CTRL 0x04 /* 10/100 Port 4 Control */
-/* (start) registers only for BCM5380 */
-#define ROBO_PORT5_CTRL 0x05 /* 10/100 Port 5 Control */
-#define ROBO_PORT6_CTRL 0x06 /* 10/100 Port 6 Control */
-#define ROBO_PORT7_CTRL 0x07 /* 10/100 Port 7 Control */
-/* (end) registers only for BCM5380 */
-#define ROBO_IM_PORT_CTRL 0x08 /* 10/100 Port 8 Control */
-#define ROBO_SMP_CTRL 0x0a /* SMP Control register */
-#define ROBO_SWITCH_MODE 0x0b /* Switch Mode Control */
-#define ROBO_PORT_OVERRIDE_CTRL 0x0e /* Port state override */
-#define ROBO_PORT_OVERRIDE_RVMII (1<<4) /* Bit 4 enables RvMII */
-#define ROBO_PD_MODE_CTRL 0x0f /* Power-down mode control */
-#define ROBO_IP_MULTICAST_CTRL 0x21 /* IP Multicast control */
-
-/* BCM5325m STATUS PAGE (0x01) REGISTER MAP : 16bit/48bit registers */
-#define ROBO_HALF_DUPLEX 0
-#define ROBO_FULL_DUPLEX 1
-
-#define ROBO_LINK_STAT_SUMMARY 0x00 /* Link Status Summary: 16bit */
-#define ROBO_LINK_STAT_CHANGE 0x02 /* Link Status Change: 16bit */
-#define ROBO_SPEED_STAT_SUMMARY 0x04 /* Port Speed Summary: 16bit*/
-#define ROBO_DUPLEX_STAT_SUMMARY 0x06 /* Duplex Status Summary: 16bit */
-#define ROBO_PAUSE_STAT_SUMMARY 0x08 /* PAUSE Status Summary: 16bit */
-#define ROBO_SOURCE_ADDR_CHANGE 0x0C /* Source Address Change: 16bit */
-#define ROBO_LSA_PORT0 0x10 /* Last Source Addr, Port 0: 48bits*/
-#define ROBO_LSA_PORT1 0x16 /* Last Source Addr, Port 1: 48bits*/
-#define ROBO_LSA_PORT2 0x1c /* Last Source Addr, Port 2: 48bits*/
-#define ROBO_LSA_PORT3 0x22 /* Last Source Addr, Port 3: 48bits*/
-#define ROBO_LSA_PORT4 0x28 /* Last Source Addr, Port 4: 48bits*/
-#define ROBO_LSA_IM_PORT 0x40 /* Last Source Addr, IM Port: 48bits*/
-
-/* BCM5325m MANAGEMENT MODE REGISTERS (0x02) REGISTER MAP: 8/48 bit regs*/
-typedef struct _ROBO_GLOBAL_CONFIG_STRUC
-{
- unsigned char resetMIB:1; /* reset MIB counters */
- unsigned char rxBPDU:1; /* receive BDPU enable */
- unsigned char rsvd1:2; /* reserved */
- unsigned char MIBacHdrCtrl:1; /* MIB autocast header control */
- unsigned char MIBac:1; /* MIB autocast enable */
- unsigned char frameMgmtPort:2; /* frame management port */
-} ROBO_GLOBAL_CONFIG_STRUC;
-#define ROBO_GLOBAL_CONFIG 0x00 /* Global Management Config: 8bit*/
-#define ROBO_MGMT_PORT_ID 0x02 /* Management Port ID: 8bit*/
-#define ROBO_RMON_MIB_STEER 0x04 /* RMON Mib Steering: 16bit */
-#define ROBO_MIB_MODE_SELECT 0x04 /* MIB Mode select: 16bit (BCM5350) */
-#define ROBO_AGE_TIMER_CTRL 0x06 /* Age time control: 32bit */
-#define ROBO_MIRROR_CAP_CTRL 0x10 /* Mirror Capture : 16bit */
-#define ROBO_MIRROR_ING_CTRL 0x12 /* Mirror Ingress Control: 16bit */
-#define ROBO_MIRROR_ING_DIV_CTRL 0x14 /* Mirror Ingress Divider: 16bit */
-#define ROBO_MIRROR_ING_MAC_ADDR 0x16 /* Ingress Mirror MAC Addr: 48bit*/
-#define ROBO_MIRROR_EGR_CTRL 0x1c /* Mirror Egress Control: 16bit */
-#define ROBO_MIRROR_EGR_DIV_CTRL 0x1e /* Mirror Egress Divider: 16bit */
-#define ROBO_MIRROR_EGR_MAC_ADDR 0x20 /* Egress Mirror MAC Addr: 48bit*/
-
-/* BCM5325m MIB AUTOCAST REGISTERS (0x03) REGISTER MAP: 8/16/48 bit regs */
-#define ROBO_MIB_AC_PORT 0x00 /* MIB Autocast Port: 16bit */
-#define ROBO_MIB_AC_HDR_PTR 0x02 /* MIB Autocast Header pointer:16bit*/
-#define ROBO_MIB_AC_HDR_LEN 0x04 /* MIB Autocast Header Len: 16bit */
-#define ROBO_MIB_AC_DA 0x06 /* MIB Autocast DA: 48bit */
-#define ROBO_MIB_AC_SA 0x0c /* MIB Autocast SA: 48bit */
-#define ROBO_MIB_AC_TYPE 0x12 /* MIB Autocast Type: 16bit */
-#define ROBO_MIB_AC_RATE 0x14 /* MIB Autocast Rate: 8bit */
-#define ROBO_GET_AC_RATE(secs) ((secs)*10)
-#define ROBO_AC_RATE_MAX 0xff
-#define ROBO_AC_RATE_DEFAULT 0x64 /* 10 secs */
-typedef struct _ROBO_MIB_AC_STRUCT
-{
- unsigned char opcode:4; /* Tx MIB Autocast opcode */
- unsigned char portno:4; /* zero-based port no. */
- unsigned char portstate:8; /* port state */
- unsigned long long TxOctets;
- unsigned int TxDropPkts;
- unsigned int rsvd;
- unsigned int TxBroadcastPkts;
- unsigned int TxMulticastPkts;
- unsigned int TxUnicastPkts;
- unsigned int TxCollisions;
- unsigned int TxSingleCollision;
- unsigned int TxMultiCollision;
- unsigned int TxDeferredTransmit;
- unsigned int TxLateCollision;
- unsigned int TxExcessiveCollision;
- unsigned int TxFrameInDiscards;
- unsigned int TxPausePkts;
- unsigned int rsvd1[2];
- unsigned long long RxOctets;
- unsigned int RxUndersizePkts;
- unsigned int RxPausePkts;
- unsigned int RxPkts64Octets;
- unsigned int RxPkts64to127Octets;
- unsigned int RxPkts128to255Octets;
- unsigned int RxPkts256to511Octets;
- unsigned int RxPkts512to1023Octets;
- unsigned int RxPkts1024to1522Octets;
- unsigned int RxOversizePkts;
- unsigned int RxJabbers;
- unsigned int RxAlignmentErrors;
- unsigned int RxFCSErrors;
- unsigned long long RxGoodOctets;
- unsigned int RxDropPkts;
- unsigned int RxUnicastPkts;
- unsigned int RxMulticastPkts;
- unsigned int RxBroadcastPkts;
- unsigned int RxSAChanges;
- unsigned int RxFragments;
- unsigned int RxExcessSizeDisc;
- unsigned int RxSymbolError;
-} ROBO_MIB_AC_STRUCT;
-
-/* BCM5325m ARL CONTROL REGISTERS (0x04) REGISTER MAP: 8/16/48/64 bit regs */
-#define ROBO_ARL_CONFIG 0x00 /* ARL Global Configuration: 8bit*/
-#define ROBO_BPDU_MC_ADDR_REG 0x04 /* BPDU Multicast Address Reg:64bit*/
-#define ROBO_MULTIPORT_ADDR_1 0x10 /* Multiport Address 1: 48 bits*/
-#define ROBO_MULTIPORT_VECTOR_1 0x16 /* Multiport Vector 1: 16 bits */
-#define ROBO_MULTIPORT_ADDR_2 0x20 /* Multiport Address 2: 48 bits*/
-#define ROBO_MULTIPORT_VECTOR_2 0x26 /* Multiport Vector 2: 16 bits */
-#define ROBO_SECURE_SRC_PORT_MASK 0x30 /* Secure Source Port Mask: 16 bits*/
-#define ROBO_SECURE_DST_PORT_MASK 0x32 /* Secure Dest Port Mask: 16 bits */
-
-
-/* BCM5325m ARL IO REGISTERS (0x05) REGISTER MAP: 8/16/48/64 bit regs */
-#define ARL_TABLE_WRITE 0 /* for read/write state in control reg */
-#define ARL_TABLE_READ 1 /* for read/write state in control reg */
-#ifdef BCM5380
-#define ARL_VID_BYTES 2 /* number of bytes for VID */
-#else
-#define ARL_VID_BYTES 1 /* number of bytes for VID */
-#endif
-typedef struct _ROBO_ARL_RW_CTRL_STRUC
-{
- unsigned char ARLrw:1; /* ARL read/write (1=read) */
- unsigned char rsvd:6; /* reserved */
- unsigned char ARLStart:1; /* ARL start/done (1=start) */
-} ROBO_ARL_RW_CTRL_STRUC;
-typedef struct _ROBO_ARL_SEARCH_CTRL_STRUC
-{
- unsigned char valid:1; /* ARL search result valid */
- unsigned char rsvd:6; /* reserved */
- unsigned char ARLStart:1; /* ARL start/done (1=start) */
-} ROBO_ARL_SEARCH_CTRL_STRUC;
-typedef struct _ROBO_ARL_ENTRY_CTRL_STRUC
-{
- unsigned char portID:4; /* port id */
- unsigned char chipID:2; /* chip id */
- unsigned char rsvd:5; /* reserved */
- unsigned char prio:2; /* priority */
- unsigned char age:1; /* age */
- unsigned char staticEn:1; /* static */
- unsigned char valid:1; /* valid */
-} ROBO_ARL_ENTRY_CTRL_STRUC;
-typedef struct _ROBO_ARL_SEARCH_RESULT_CTRL_STRUC
-{
- unsigned char portID:4; /* port id */
- unsigned char rsvd:1; /* reserved */
- unsigned char vid:8; /* vlan id */
- unsigned char age:1; /* age */
- unsigned char staticEn:1; /* static */
- unsigned char valid:1; /* valid */
-} ROBO_ARL_SEARCH_RESULT_CTRL_STRUC;
-typedef struct _ROBO_ARL_ENTRY_MAC_STRUC
-{
- unsigned char macBytes[6]; /* MAC address */
-} ROBO_ARL_ENTRY_MAC_STRUC;
-
-typedef struct _ROBO_ARL_ENTRY_STRUC
-{
- ROBO_ARL_ENTRY_MAC_STRUC mac; /* MAC address */
- ROBO_ARL_ENTRY_CTRL_STRUC ctrl; /* control bits */
-} ROBO_ARL_ENTRY_STRUC;
-
-typedef struct _ROBO_ARL_SEARCH_RESULT_STRUC
-{
- ROBO_ARL_ENTRY_MAC_STRUC mac; /* MAC address */
- ROBO_ARL_SEARCH_RESULT_CTRL_STRUC ctrl; /* control bits */
-} ROBO_ARL_SEARCH_RESULT_STRUC;
-
-/* multicast versions of ARL entry structs */
-typedef struct _ROBO_ARL_ENTRY_MCAST_CTRL_STRUC
-{
- unsigned int portMask:12;/* multicast port mask */
- unsigned char prio:1; /* priority */
- unsigned char gigPort:1; /* gigabit port 1 mask */
- unsigned char staticEn:1; /* static */
- unsigned char valid:1; /* valid */
-} ROBO_ARL_ENTRY_MCAST_CTRL_STRUC;
-typedef struct _ROBO_ARL_SEARCH_RESULT_MCAST_CTRL_STRUC
-{
- unsigned int portMask:13; /* multicast port mask */
- unsigned char age:1; /* age */
- unsigned char staticEn:1; /* static */
- unsigned char valid:1; /* valid */
-} ROBO_ARL_SEARCH_RESULT_MCAST_CTRL_STRUC;
-/* BCM5350 extension register */
-typedef struct _ROBO_ARL_SEARCH_RESULT_EXTENSION
-{
- unsigned int prio:2; /* priority */
- unsigned int portMask:1; /* MSB (MII) of port mask for multicast */
- unsigned int reserved:5;
-} ROBO_ARL_SEARCH_RESULT_EXTENSION;
-
-typedef struct _ROBO_ARL_ENTRY_MCAST_STRUC
-{
- ROBO_ARL_ENTRY_MAC_STRUC mac; /* MAC address */
- ROBO_ARL_ENTRY_MCAST_CTRL_STRUC ctrl; /* control bits */
-} ROBO_ARL_ENTRY_MCAST_STRUC;
-typedef struct _ROBO_ARL_SEARCH_RESULT_MCAST_STRUC
-{
- ROBO_ARL_ENTRY_MAC_STRUC mac; /* MAC address */
- ROBO_ARL_SEARCH_RESULT_MCAST_CTRL_STRUC ctrl; /* control bits */
-} ROBO_ARL_SEARCH_RESULT_MCAST_STRUC;
-
-#define ROBO_ARL_RW_CTRL 0x00 /* ARL Read/Write Control : 8bit */
-#define ROBO_ARL_MAC_ADDR_IDX 0x02 /* MAC Address Index: 48bit */
-#define ROBO_ARL_VID_TABLE_IDX 0x08 /* VID Table Address Index: 8bit */
-#define ROBO_ARL_ENTRY0 0x10 /* ARL Entry 0 : 64 bit */
-#define ROBO_ARL_ENTRY1 0x18 /* ARL Entry 1 : 64 bit */
-#define ROBO_ARL_SEARCH_CTRL 0x20 /* ARL Search Control: 8bit */
-#define ROBO_ARL_SEARCH_ADDR 0x22 /* ARL Search Address: 16bit */
-#define ROBO_ARL_SEARCH_RESULT 0x24 /* ARL Search Result: 64bit */
-#define ROBO_ARL_SEARCH_RESULT_EXT 0x2c /* ARL Search Result Extension (5350): 8bit */
-#define ROBO_ARL_VID_ENTRY0 0x30 /* ARL VID Entry 0: 64bit */
-#define ROBO_ARL_VID_ENTRY1 0x32 /* ARL VID Entry 1: 64bit */
-
-/* BCM5325m MANAGEMENT FRAME REGISTERS (0x6) REGISTER MAP: 8/16 bit regs */
-#define ROBO_MGMT_FRAME_RD_DATA 0x00 /* Management Frame Read Data :8bit*/
-#define ROBO_MGMT_FRAME_WR_DATA 0x01 /* Management Frame Write Data:8bit*/
-#define ROBO_MGMT_FRAME_WR_CTRL 0x02 /* Write Control: 16bit */
-#define ROBO_MGMT_FRAME_RD_STAT 0x04 /* Read Status: 16bit */
-
-/* BCM5325m MEMORY ACCESS REGISTERS (Page 0x08) REGISTER MAP: 32 bit regs */
-#define MEM_TABLE_READ 1 /* for read/write state in mem access reg */
-#define MEM_TABLE_WRITE 0 /* for read/write state in mem access reg */
-#define MEM_TABLE_ACCESS_START 1 /* for mem access read/write start */
-#define MEM_TABLE_ACCESS_DONE 0 /* for mem access read/write done */
-#define VLAN_TABLE_ADDR 0x3800 /* BCM5380 only */
-#ifdef BCM5380
-#define NUM_ARL_TABLE_ENTRIES 4096 /* number of entries in ARL table */
-#define NUM_VLAN_TABLE_ENTRIES 2048 /* number of entries in VLAN table */
-#define ARL_TABLE_ADDR 0 /* offset of ARL table start */
-#else
-#define NUM_ARL_TABLE_ENTRIES 2048 /* number of entries in ARL table */
-#define NUM_VLAN_TABLE_ENTRIES 256 /* number of entries in VLAN table */
-#define ARL_TABLE_ADDR 0x3800 /* offset of ARL table start */
-/* corresponding values for 5350 */
-#define NUM_ARL_TABLE_ENTRIES_5350 1024 /* number of entries in ARL table (5350) */
-#define NUM_VLAN_TABLE_ENTRIES_5350 16 /* number of entries in VLAN table */
-#define ARL_TABLE_ADDR_5350 0x1c00 /* offset of ARL table start (5350) */
-#endif
-typedef struct _ROBO_MEM_ACCESS_CTRL_STRUC
-{
- unsigned int memAddr:14; /* 64-bit memory address */
- unsigned char rsvd:4; /* reserved */
- unsigned char readEn:1; /* read enable (0 == write) */
- unsigned char startDone:1;/* memory access start/done */
- unsigned int rsvd1:12; /* reserved */
-} ROBO_MEM_ACCESS_CTRL_STRUC;
-typedef struct _ROBO_MEM_ACCESS_DATA_STRUC
-{
- unsigned int memData[2]; /* 64-bit data */
- unsigned short rsvd; /* reserved */
-} ROBO_MEM_ACCESS_DATA_STRUC;
-
-#ifdef BCM5380
-typedef struct _ROBO_ARL_TABLE_DATA_STRUC
-{
- unsigned char MACaddr[6]; /* MAC addr */
- unsigned int portID:4; /* port ID */
- unsigned int chipID:2; /* chip ID */
- unsigned int rsvd:6; /* reserved */
- unsigned int highPrio:1; /* high priority address */
- unsigned int age:1; /* entry accessed/learned since ageing process */
- unsigned int staticAddr:1;/* entry is static */
- unsigned int valid:1; /* entry is valid */
- unsigned int vid:12; /* vlan id */
- unsigned int rsvd2:4; /* reserved */
-} ROBO_ARL_TABLE_DATA_STRUC;
-#else
-typedef struct _ROBO_ARL_TABLE_DATA_STRUC
-{
- unsigned char MACaddr[6]; /* MAC addr */
- unsigned int portID:4; /* port ID */
- unsigned int chipID:2; /* chip ID */
- unsigned int rsvd:7; /* reserved */
- unsigned int age:1; /* entry accessed/learned since ageing process */
- unsigned int staticAddr:1;/* entry is static */
- unsigned int valid:1; /* entry is valid */
-} ROBO_ARL_TABLE_DATA_STRUC;
-#endif
-
-/* multicast format*/
-typedef struct _ROBO_ARL_TABLE_MCAST_DATA_STRUC
-{
- unsigned char MACaddr[6]; /* MAC addr */
- unsigned int portMask:12;/* multicast port mask */
- unsigned char prio:1; /* priority */
- unsigned char gigPort:1; /* gigabit port 1 mask */
- unsigned char staticEn:1; /* static */
- unsigned char valid:1; /* valid */
- unsigned int vid:12; /* vlan id */
- unsigned int rsvd2:4; /* reserved */
-} ROBO_ARL_TABLE_MCAST_DATA_STRUC;
-#define ROBO_MEM_ACCESS_CTRL 0x00 /* Memory Read/Write Control :32bit*/
-#define ROBO_MEM_ACCESS_DATA 0x04 /* Memory Read/Write Data:64bit*/
-
-/* BCM5325m SWITCH PORT (0x10-18) REGISTER MAP: 8/16 bit regs */
-typedef struct _ROBO_MII_CTRL_STRUC
-{
- unsigned char rsvd:8; /* reserved */
- unsigned char duplex:1; /* duplex mode */
- unsigned char restartAN:1;/* restart auto-negotiation */
- unsigned char rsvd1:1; /* reserved */
- unsigned char powerDown:1;/* power down */
- unsigned char ANenable:1; /* auto-negotiation enable */
- unsigned char speed:1; /* forced speed selection */
- unsigned char loopback:1; /* loopback */
- unsigned char reset:1; /* reset */
-} ROBO_MII_CTRL_STRUC;
-typedef struct _ROBO_MII_AN_ADVERT_STRUC
-{
- unsigned char selector:5; /* advertise selector field */
- unsigned char T10BaseT:1; /* advertise 10BaseT */
- unsigned char T10BaseTFull:1; /* advertise 10BaseT, full duplex */
- unsigned char T100BaseX:1; /* advertise 100BaseX */
- unsigned char T100BaseXFull:1;/* advertise 100BaseX full duplex */
- unsigned char noT4:1; /* do not advertise T4 */
- unsigned char pause:1; /* advertise pause for full duplex */
- unsigned char rsvd:2; /* reserved */
- unsigned char remoteFault:1; /* transmit remote fault */
- unsigned char rsvd1:1; /* reserved */
- unsigned char nextPage:1; /* nex page operation supported */
-} ROBO_MII_AN_ADVERT_STRUC;
-#define ROBO_MII_CTRL 0x00 /* Port MII Control */
-#define ROBO_MII_STAT 0x02 /* Port MII Status */
-/* Fields of link status register */
-#define ROBO_MII_STAT_JABBER (1<<1) /* Jabber detected */
-#define ROBO_MII_STAT_LINK (1<<2) /* Link status */
-
-#define ROBO_MII_PHYID_HI 0x04 /* Port PHY ID High */
-#define ROBO_MII_PHYID_LO 0x06 /* Port PHY ID Low */
-#define ROBO_MII_ANA_REG 0x08 /* MII Auto-Neg Advertisement */
-#define ROBO_MII_ANP_REG 0x0a /* MII Auto-Neg Partner Ability */
-#define ROBO_MII_AN_EXP_REG 0x0c /* MII Auto-Neg Expansion */
-#define ROBO_MII_AN_NP_REG 0x0e /* MII next page */
-#define ROBO_MII_ANP_NP_REG 0x10 /* MII Partner next page */
-#define ROBO_MII_100BX_AUX_CTRL 0x20 /* 100BASE-X Auxiliary Control */
-#define ROBO_MII_100BX_AUX_STAT 0x22 /* 100BASE-X Auxiliary Status */
-#define ROBO_MII_100BX_RCV_ERR_CTR 0x24 /* 100BASE-X Receive Error Ctr */
-#define ROBO_MII_100BX_RCV_FS_ERR 0x26 /* 100BASE-X Rcv False Sense Ctr */
-#define ROBO_MII_AUX_CTRL 0x30 /* Auxiliary Control/Status */
-/* Fields of Auxiliary control register */
-#define ROBO_MII_AUX_CTRL_FD (1<<0) /* Full duplex link detected*/
-#define ROBO_MII_AUX_CTRL_SP100 (1<<1) /* Speed 100 indication */
-#define ROBO_MII_AUX_STATUS 0x32 /* Aux Status Summary */
-#define ROBO_MII_CONN_STATUS 0x34 /* Aux Connection Status */
-#define ROBO_MII_AUX_MODE2 0x36 /* Aux Mode 2 */
-#define ROBO_MII_AUX_ERR_STATUS 0x38 /* Aux Error and General Status */
-#define ROBO_MII_AUX_MULTI_PHY 0x3c /* Aux Multiple PHY Register*/
-#define ROBO_MII_BROADCOM_TEST 0x3e /* Broadcom Test Register */
-
-
-/* BCM5325m PORT MIB REGISTERS (Pages 0x20-0x24,0x28) REGISTER MAP: 64/32 */
-/* Tranmit Statistics */
-#define ROBO_MIB_TX_OCTETS 0x00 /* 64b: TxOctets */
-#define ROBO_MIB_TX_DROP_PKTS 0x08 /* 32b: TxDropPkts */
-#define ROBO_MIB_TX_BC_PKTS 0x10 /* 32b: TxBroadcastPkts */
-#define ROBO_MIB_TX_MC_PKTS 0x14 /* 32b: TxMulticastPkts */
-#define ROBO_MIB_TX_UC_PKTS 0x18 /* 32b: TxUnicastPkts */
-#define ROBO_MIB_TX_COLLISIONS 0x1c /* 32b: TxCollisions */
-#define ROBO_MIB_TX_SINGLE_COLLISIONS 0x20 /* 32b: TxSingleCollision */
-#define ROBO_MIB_TX_MULTI_COLLISIONS 0x24 /* 32b: TxMultiCollision */
-#define ROBO_MIB_TX_DEFER_TX 0x28 /* 32b: TxDeferred Transmit */
-#define ROBO_MIB_TX_LATE_COLLISIONS 0x2c /* 32b: TxLateCollision */
-#define ROBO_MIB_EXCESS_COLLISIONS 0x30 /* 32b: TxExcessiveCollision*/
-#define ROBO_MIB_FRAME_IN_DISCARDS 0x34 /* 32b: TxFrameInDiscards */
-#define ROBO_MIB_TX_PAUSE_PKTS 0x38 /* 32b: TxPausePkts */
-
-/* Receive Statistics */
-#define ROBO_MIB_RX_OCTETS 0x44 /* 64b: RxOctets */
-#define ROBO_MIB_RX_UNDER_SIZE_PKTS 0x4c /* 32b: RxUndersizePkts(runts)*/
-#define ROBO_MIB_RX_PAUSE_PKTS 0x50 /* 32b: RxPausePkts */
-#define ROBO_MIB_RX_PKTS_64 0x54 /* 32b: RxPkts64Octets */
-#define ROBO_MIB_RX_PKTS_65_TO_127 0x58 /* 32b: RxPkts64to127Octets*/
-#define ROBO_MIB_RX_PKTS_128_TO_255 0x5c /* 32b: RxPkts128to255Octets*/
-#define ROBO_MIB_RX_PKTS_256_TO_511 0x60 /* 32b: RxPkts256to511Octets*/
-#define ROBO_MIB_RX_PKTS_512_TO_1023 0x64 /* 32b: RxPkts512to1023Octets*/
-#define ROBO_MIB_RX_PKTS_1024_TO_1522 0x68 /* 32b: RxPkts1024to1522Octets*/
-#define ROBO_MIB_RX_OVER_SIZE_PKTS 0x6c /* 32b: RxOversizePkts*/
-#define ROBO_MIB_RX_JABBERS 0x70 /* 32b: RxJabbers*/
-#define ROBO_MIB_RX_ALIGNMENT_ERRORS 0x74 /* 32b: RxAlignmentErrors*/
-#define ROBO_MIB_RX_FCS_ERRORS 0x78 /* 32b: RxFCSErrors */
-#define ROBO_MIB_RX_GOOD_OCTETS 0x7c /* 32b: RxGoodOctets */
-#define ROBO_MIB_RX_DROP_PKTS 0x84 /* 32b: RxDropPkts */
-#define ROBO_MIB_RX_UC_PKTS 0x88 /* 32b: RxUnicastPkts */
-#define ROBO_MIB_RX_MC_PKTS 0x8c /* 32b: RxMulticastPkts */
-#define ROBO_MIB_RX_BC_PKTS 0x90 /* 32b: RxBroadcastPkts */
-#define ROBO_MIB_RX_SA_CHANGES 0x94 /* 32b: RxSAChanges */
-#define ROBO_MIB_RX_FRAGMENTS 0x98 /* 32b: RxFragments */
-#define ROBO_MIB_RX_EXCESS_SZ_DISC 0x9c /* 32b: RxExcessSizeDisc*/
-#define ROBO_MIB_RX_SYMBOL_ERROR 0xa0 /* 32b: RxSymbolError */
-
-/* BCM5350 MIB Statistics */
-/* Group 0 */
-#define ROBO_MIB_TX_GOOD_PKTS 0x00 /* 16b: TxGoodPkts */
-#define ROBO_MIB_TX_UNICAST_PKTS 0x02 /* 16b: TxUnicastPkts */
-#define ROBO_MIB_RX_GOOD_PKTS 0x04 /* 16b: RxGoodPkts */
-#define ROBO_MIB_RX_GOOD_UNICAST_PKTS 0x06 /* 16b: RxGoodUnicastPkts */
-/* Group 1 */
-#define ROBO_MIB_TX_COLLISION 0x00 /* 16b: TxCollision */
-#define ROBO_MIB_TX_OCTETS_5350 0x02 /* 16b: TxOctets */
-#define ROBO_MIB_RX_FCS_ERRORS_5350 0x04 /* 16b: RxFCSErrors */
-#define ROBO_MIB_RX_GOOD_OCTETS_5350 0x06 /* 16b: RxGoodOctets */
-
-/* BCM5325m QoS REGISTERS (Page 0x30) REGISTER MAP: 8/16 */
-#define ROBO_QOS_CTRL 0x00 /* 16b: QoS Control Register */
-#define ROBO_QOS_LOCAL_WEIGHT_CTRL 0x10 /* 8b: Local HQ/LQ Weight Register*/
-#define ROBO_QOS_CPU_WEIGHT_CTRL 0x12 /* 8b: CPU HQ/LQ Weight Register*/
-#define ROBO_QOS_PAUSE_ENA 0x13 /* 16b: Qos Pause Enable Register*/
-#define ROBO_QOS_PRIO_THRESHOLD 0x15 /* 8b: Priority Threshold Register*/
-#define ROBO_QOS_RESERVED 0x16 /* 8b: Qos Reserved Register */
-
-/* BCM5325m VLAN REGISTERS (Page 0x34) REGISTER MAP: 8/16bit */
-typedef struct _ROBO_VLAN_CTRL0_STRUC
-{
- unsigned char frameControlP:2; /* 802.1P frame control */
- unsigned char frameControlQ:2; /* 802.1Q frame control */
- unsigned char dropMissedVID:1; /* enable drop missed VID packet */
- unsigned char vidMacHash:1; /* VID_MAC hash enable */
- unsigned char vidMacCheck:1; /* VID_MAC check enable */
- unsigned char VLANen:1; /* 802.1Q VLAN enable */
-} ROBO_VLAN_CTRL0_STRUC;
-#define VLAN_TABLE_WRITE 1 /* for read/write state in table access reg */
-#define VLAN_TABLE_READ 0 /* for read/write state in table access reg */
-#define VLAN_ID_HIGH_BITS 0 /* static high bits in table access reg */
-#define VLAN_ID_MAX 255 /* max VLAN id */
-#define VLAN_ID_MAX5350 15 /* max VLAN id (5350) */
-#define VLAN_ID_MASK VLAN_ID_MAX /* VLAN id mask */
-#ifdef BCM5380
-#define VLAN_UNTAG_SHIFT 13 /* for postioning untag bits in write reg */
-#define VLAN_VALID 0x4000000 /* valid bit in write reg */
-#else
-#define VLAN_UNTAG_SHIFT 7 /* for postioning untag bits in write reg */
-#define VLAN_VALID 0x4000 /* valid bit in write reg */
-/* corresponding values for 5350 */
-#define VLAN_UNTAG_SHIFT_5350 6 /* for postioning untag bits in write reg */
-#define VLAN_VALID_5350 0x00100000 /* valid bit in write reg */
-#endif
-typedef struct _ROBO_VLAN_TABLE_ACCESS_STRUC
-{
- unsigned char VLANid:8; /* VLAN ID (low 8 bits) */
- unsigned char VLANidHi:4; /* VLAN ID (fixed upper portion) */
- unsigned char readWriteState:1; /* read/write state (write = 1) */
- volatile unsigned char readWriteEnable:1; /* table read/write enable */
- unsigned char rsvd:2; /* reserved */
-} ROBO_VLAN_TABLE_ACCESS_STRUC;
-#ifdef BCM5380
-typedef struct _ROBO_VLAN_READ_WRITE_STRUC
-{
- unsigned int VLANgroup:13;/* VLAN group mask */
- unsigned int VLANuntag:13;/* VLAN untag enable mask */
- unsigned char valid:1; /* valid */
- unsigned char rsvd:5; /* reserved */
-} ROBO_VLAN_READ_WRITE_STRUC;
-#else
-typedef struct _ROBO_VLAN_READ_WRITE_STRUC
-{
- unsigned char VLANgroup:7; /* VLAN group mask */
- unsigned char VLANuntag:7; /* VLAN untag enable mask */
- unsigned char valid:1; /* valid */
- unsigned char rsvd:1; /* reserved */
-} ROBO_VLAN_READ_WRITE_STRUC;
-typedef struct _ROBO_VLAN_READ_WRITE_STRUC_5350
-{
- unsigned char VLANgroup:6; /* VLAN group mask */
- unsigned char VLANuntag:6; /* VLAN untag enable mask */
- unsigned char highVID:8; /* upper bits of vid */
- unsigned char valid:1; /* valid */
- unsigned int rsvd:11; /* reserved */
-} ROBO_VLAN_READ_WRITE_STRUC_5350;
-#endif
-#define ROBO_VLAN_CTRL0 0x00 /* 8b: VLAN Control 0 Register */
-#define ROBO_VLAN_CTRL1 0x01 /* 8b: VLAN Control 1 Register */
-#define ROBO_VLAN_CTRL2 0x02 /* 8b: VLAN Control 2 Register */
-#define ROBO_VLAN_CTRL3 0x03 /* 8b: VLAN Control 3 Register */
-#define ROBO_VLAN_CTRL4 0x04 /* 8b: VLAN Control 4 Register */
-#define ROBO_VLAN_CTRL5 0x05 /* 8b: VLAN Control 5 Register */
-#define ROBO_VLAN_TABLE_ACCESS 0x08 /* 14b: VLAN Table Access Register */
-#define ROBO_VLAN_TABLE_ACCESS_5350 0x06 /* 14b: VLAN Table Access Register (5350) */
-#define ROBO_VLAN_WRITE 0x0a /* 15b: VLAN Write Register */
-#define ROBO_VLAN_WRITE_5350 0x08 /* 15b: VLAN Write Register (5350) */
-#define ROBO_VLAN_READ 0x0c /* 15b: VLAN Read Register */
-#define ROBO_VLAN_PORT0_DEF_TAG 0x10 /* 16b: VLAN Port 0 Default Tag Register */
-#define ROBO_VLAN_PORT1_DEF_TAG 0x12 /* 16b: VLAN Port 1 Default Tag Register */
-#define ROBO_VLAN_PORT2_DEF_TAG 0x14 /* 16b: VLAN Port 2 Default Tag Register */
-#define ROBO_VLAN_PORT3_DEF_TAG 0x16 /* 16b: VLAN Port 3 Default Tag Register */
-#define ROBO_VLAN_PORT4_DEF_TAG 0x18 /* 16b: VLAN Port 4 Default Tag Register */
-#define ROBO_VLAN_PORTMII_DEF_TAG 0x1a /* 16b: VLAN Port MII Default Tag Register */
-/* 5380 only */
-#define ROBO_VLAN_PORT5_DEF_TAG 0x1a /* 16b: VLAN Port 5 Default Tag Register */
-#define ROBO_VLAN_PORT6_DEF_TAG 0x1c /* 16b: VLAN Port 6 Default Tag Register */
-#define ROBO_VLAN_PORT7_DEF_TAG 0x1e /* 16b: VLAN Port 7 Default Tag Register */
-
-/* obsolete */
-#define ROBO_VLAN_PORT0_CTRL 0x00 /* 16b: Port 0 VLAN Register */
-#define ROBO_VLAN_PORT1_CTRL 0x02 /* 16b: Port 1 VLAN Register */
-#define ROBO_VLAN_PORT2_CTRL 0x04 /* 16b: Port 2 VLAN Register */
-#define ROBO_VLAN_PORT3_CTRL 0x06 /* 16b: Port 3 VLAN Register */
-#define ROBO_VLAN_PORT4_CTRL 0x08 /* 16b: Port 4 VLAN Register */
-#define ROBO_VLAN_IM_PORT_CTRL 0x10 /* 16b: Inverse MII Port VLAN Reg */
-#define ROBO_VLAN_SMP_PORT_CTRL 0x12 /* 16b: Serial Port VLAN Register */
-#define ROBO_VLAN_PORTSPI_DEF_TAG 0x1c /* 16b: VLAN Port SPI Default Tag Register */
-#define ROBO_VLAN_PRIORITY_REMAP 0x20 /* 24b: VLAN Priority Re-Map Register */
-
-#ifndef _CFE_
-#pragma pack()
-#endif
-
-
-#endif /* !__BCM535M_H_ */
-
-
-
-
-
diff --git a/package/system/utils/robocfg/src/robocfg.c b/package/system/utils/robocfg/src/robocfg.c
deleted file mode 100644
index 7a4094dd41..0000000000
--- a/package/system/utils/robocfg/src/robocfg.c
+++ /dev/null
@@ -1,581 +0,0 @@
-/*
- * Broadcom BCM5325E/536x switch configuration utility
- *
- * Copyright (C) 2005 Oleg I. Vdovikin
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/param.h>
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-
-/* linux stuff */
-typedef u_int64_t u64;
-typedef u_int32_t u32;
-typedef u_int16_t u16;
-typedef u_int8_t u8;
-
-#include <linux/if.h>
-#include <linux/sockios.h>
-#include <linux/ethtool.h>
-#include <linux/mii.h>
-
-#include "etc53xx.h"
-#define ROBO_PHY_ADDR 0x1E /* robo switch phy address */
-
-/* MII registers */
-#define REG_MII_PAGE 0x10 /* MII Page register */
-#define REG_MII_ADDR 0x11 /* MII Address register */
-#define REG_MII_DATA0 0x18 /* MII Data register 0 */
-
-#define REG_MII_PAGE_ENABLE 1
-#define REG_MII_ADDR_WRITE 1
-#define REG_MII_ADDR_READ 2
-
-/* Private et.o ioctls */
-#define SIOCGETCPHYRD (SIOCDEVPRIVATE + 9)
-#define SIOCSETCPHYWR (SIOCDEVPRIVATE + 10)
-
-typedef struct {
- struct ifreq ifr;
- int fd;
- int et; /* use private ioctls */
-} robo_t;
-
-static u16 mdio_read(robo_t *robo, u16 phy_id, u8 reg)
-{
- if (robo->et) {
- int args[2] = { reg };
-
- if (phy_id != ROBO_PHY_ADDR) {
- fprintf(stderr,
- "Access to real 'phy' registers unavaliable.\n"
- "Upgrade kernel driver.\n");
-
- return 0xffff;
- }
-
- robo->ifr.ifr_data = (caddr_t) args;
- if (ioctl(robo->fd, SIOCGETCPHYRD, (caddr_t)&robo->ifr) < 0) {
- perror("SIOCGETCPHYRD");
- exit(1);
- }
-
- return args[1];
- } else {
- struct mii_ioctl_data *mii = (struct mii_ioctl_data *)&robo->ifr.ifr_data;
- mii->phy_id = phy_id;
- mii->reg_num = reg;
- if (ioctl(robo->fd, SIOCGMIIREG, &robo->ifr) < 0) {
- perror("SIOCGMIIREG");
- exit(1);
- }
- return mii->val_out;
- }
-}
-
-static void mdio_write(robo_t *robo, u16 phy_id, u8 reg, u16 val)
-{
- if (robo->et) {
- int args[2] = { reg, val };
-
- if (phy_id != ROBO_PHY_ADDR) {
- fprintf(stderr,
- "Access to real 'phy' registers unavaliable.\n"
- "Upgrade kernel driver.\n");
- return;
- }
-
- robo->ifr.ifr_data = (caddr_t) args;
- if (ioctl(robo->fd, SIOCSETCPHYWR, (caddr_t)&robo->ifr) < 0) {
- perror("SIOCGETCPHYWR");
- exit(1);
- }
- } else {
- struct mii_ioctl_data *mii = (struct mii_ioctl_data *)&robo->ifr.ifr_data;
- mii->phy_id = phy_id;
- mii->reg_num = reg;
- mii->val_in = val;
- if (ioctl(robo->fd, SIOCSMIIREG, &robo->ifr) < 0) {
- perror("SIOCSMIIREG");
- exit(1);
- }
- }
-}
-
-static int robo_reg(robo_t *robo, u8 page, u8 reg, u8 op)
-{
- int i = 3;
-
- /* set page number */
- mdio_write(robo, ROBO_PHY_ADDR, REG_MII_PAGE,
- (page << 8) | REG_MII_PAGE_ENABLE);
-
- /* set register address */
- mdio_write(robo, ROBO_PHY_ADDR, REG_MII_ADDR,
- (reg << 8) | op);
-
- /* check if operation completed */
- while (i--) {
- if ((mdio_read(robo, ROBO_PHY_ADDR, REG_MII_ADDR) & 3) == 0)
- return 0;
- }
-
- fprintf(stderr, "robo_reg: timeout\n");
- exit(1);
-
- return 0;
-}
-
-static void robo_read(robo_t *robo, u8 page, u8 reg, u16 *val, int count)
-{
- int i;
-
- robo_reg(robo, page, reg, REG_MII_ADDR_READ);
-
- for (i = 0; i < count; i++)
- val[i] = mdio_read(robo, ROBO_PHY_ADDR, REG_MII_DATA0 + i);
-}
-
-static u16 robo_read16(robo_t *robo, u8 page, u8 reg)
-{
- robo_reg(robo, page, reg, REG_MII_ADDR_READ);
-
- return mdio_read(robo, ROBO_PHY_ADDR, REG_MII_DATA0);
-}
-
-static u32 robo_read32(robo_t *robo, u8 page, u8 reg)
-{
- robo_reg(robo, page, reg, REG_MII_ADDR_READ);
-
- return mdio_read(robo, ROBO_PHY_ADDR, REG_MII_DATA0) +
- (mdio_read(robo, ROBO_PHY_ADDR, REG_MII_DATA0 + 1) << 16);
-}
-
-static void robo_write16(robo_t *robo, u8 page, u8 reg, u16 val16)
-{
- /* write data */
- mdio_write(robo, ROBO_PHY_ADDR, REG_MII_DATA0, val16);
-
- robo_reg(robo, page, reg, REG_MII_ADDR_WRITE);
-}
-
-static void robo_write32(robo_t *robo, u8 page, u8 reg, u32 val32)
-{
- /* write data */
- mdio_write(robo, ROBO_PHY_ADDR, REG_MII_DATA0, val32 & 65535);
- mdio_write(robo, ROBO_PHY_ADDR, REG_MII_DATA0 + 1, val32 >> 16);
-
- robo_reg(robo, page, reg, REG_MII_ADDR_WRITE);
-}
-
-/* checks that attached switch is 5325E/5350 */
-static int robo_vlan5350(robo_t *robo)
-{
- /* set vlan access id to 15 and read it back */
- u16 val16 = 15;
- robo_write16(robo, ROBO_VLAN_PAGE, ROBO_VLAN_TABLE_ACCESS_5350, val16);
-
- /* 5365 will refuse this as it does not have this reg */
- return (robo_read16(robo, ROBO_VLAN_PAGE, ROBO_VLAN_TABLE_ACCESS_5350) == val16);
-}
-
-u8 port[6] = { 0, 1, 2, 3, 4, 8 };
-char ports[6] = { 'W', '4', '3', '2', '1', 'C' };
-char *rxtx[4] = { "enabled", "rx_disabled", "tx_disabled", "disabled" };
-char *stp[8] = { "none", "disable", "block", "listen", "learn", "forward", "6", "7" };
-
-struct {
- char *name;
- u16 bmcr;
-} media[5] = { { "auto", BMCR_ANENABLE | BMCR_ANRESTART },
- { "10HD", 0 }, { "10FD", BMCR_FULLDPLX },
- { "100HD", BMCR_SPEED100 }, { "100FD", BMCR_SPEED100 | BMCR_FULLDPLX } };
-
-struct {
- char *name;
- u16 value;
-} mdix[3] = { { "auto", 0x0000 }, { "on", 0x1800 }, { "off", 0x0800 } };
-
-void usage()
-{
- fprintf(stderr, "Broadcom BCM5325E/536x switch configuration utility\n"
- "Copyright (C) 2005 Oleg I. Vdovikin\n\n"
- "This program is distributed in the hope that it will be useful,\n"
- "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
- "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
- "GNU General Public License for more details.\n\n");
-
- fprintf(stderr, "Usage: robocfg <op> ... <op>\n"
- "Operations are as below:\n"
- "\tshow\n"
- "\tswitch <enable|disable>\n"
- "\tport <port_number> [state <%s|%s|%s|%s>]\n\t\t[stp %s|%s|%s|%s|%s|%s] [tag <vlan_tag>]\n"
- "\t\t[media %s|%s|%s|%s|%s] [mdi-x %s|%s|%s]\n"
- "\tvlan <vlan_number> [ports <ports_list>]\n"
- "\tvlans <enable|disable|reset>\n\n"
- "\tports_list should be one argument, space separated, quoted if needed,\n"
- "\tport number could be followed by 't' to leave packet vlan tagged (CPU \n"
- "\tport default) or by 'u' to untag packet (other ports default) before \n"
- "\tbringing it to the port, '*' is ignored\n"
- "\nSamples:\n"
- "1) ASUS WL-500g Deluxe stock config (eth0 is WAN, eth0.1 is LAN):\n"
- "robocfg switch disable vlans enable reset vlan 0 ports \"0 5u\" vlan 1 ports \"1 2 3 4 5t\""
- " port 0 state enabled stp none switch enable\n"
- "2) WRT54g, WL-500g Deluxe OpenWRT config (vlan0 is LAN, vlan1 is WAN):\n"
- "robocfg switch disable vlans enable reset vlan 0 ports \"1 2 3 4 5t\" vlan 1 ports \"0 5t\""
- " port 0 state enabled stp none switch enable\n",
- rxtx[0], rxtx[1], rxtx[2], rxtx[3], stp[0], stp[1], stp[2], stp[3], stp[4], stp[5],
- media[0].name, media[1].name, media[2].name, media[3].name, media[4].name,
- mdix[0].name, mdix[1].name, mdix[2].name);
-}
-
-static robo_t robo;
-int bcm53xx_probe(const char *dev)
-{
- struct ethtool_drvinfo info;
- unsigned int phyid;
- int ret;
-
- fprintf(stderr, "probing %s\n", dev);
-
- strcpy(robo.ifr.ifr_name, dev);
- memset(&info, 0, sizeof(info));
- info.cmd = ETHTOOL_GDRVINFO;
- robo.ifr.ifr_data = (caddr_t)&info;
- ret = ioctl(robo.fd, SIOCETHTOOL, (caddr_t)&robo.ifr);
- if (ret < 0) {
- perror("SIOCETHTOOL");
- return ret;
- }
-
- if ( strcmp(info.driver, "et0") &&
- strcmp(info.driver, "b44") &&
- strcmp(info.driver, "bcm63xx_enet") ) {
- fprintf(stderr, "driver not supported %s\n", info.driver);
- return -ENOSYS;
- }
-
- /* try access using MII ioctls - get phy address */
- robo.et = 0;
- if (ioctl(robo.fd, SIOCGMIIPHY, &robo.ifr) < 0)
- robo.et = 1;
-
- if (robo.et) {
- unsigned int args[2] = { 2 };
-
- robo.ifr.ifr_data = (caddr_t) args;
- ret = ioctl(robo.fd, SIOCGETCPHYRD, (caddr_t)&robo.ifr);
- if (ret < 0) {
- perror("SIOCGETCPHYRD");
- return ret;
- }
- phyid = args[1] & 0xffff;
-
- args[0] = 3;
- robo.ifr.ifr_data = (caddr_t) args;
- ret = ioctl(robo.fd, SIOCGETCPHYRD, (caddr_t)&robo.ifr);
- if (ret < 0) {
- perror("SIOCGETCPHYRD");
- return ret;
- }
- phyid |= args[1] << 16;
- } else {
- struct mii_ioctl_data *mii = (struct mii_ioctl_data *)&robo.ifr.ifr_data;
- mii->phy_id = ROBO_PHY_ADDR;
- mii->reg_num = 2;
- ret = ioctl(robo.fd, SIOCGMIIREG, &robo.ifr);
- if (ret < 0) {
- perror("SIOCGMIIREG");
- return ret;
- }
- phyid = mii->val_out & 0xffff;
-
- mii->phy_id = ROBO_PHY_ADDR;
- mii->reg_num = 3;
- ret = ioctl(robo.fd, SIOCGMIIREG, &robo.ifr);
- if (ret < 0) {
- perror("SIOCGMIIREG");
- return ret;
- }
- phyid |= mii->val_out << 16;
- }
-
- if (phyid == 0xffffffff || phyid == 0x55210022) {
- perror("phyid");
- return -EIO;
- }
-
- return 0;
-}
-
-int
-main(int argc, char *argv[])
-{
- u16 val16;
- u16 mac[3];
- int i = 0, j;
- int robo5350 = 0;
- u32 phyid;
-
- if ((robo.fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
- perror("socket");
- exit(1);
- }
-
- if (bcm53xx_probe("eth1")) {
- if (bcm53xx_probe("eth0")) {
- perror("bcm53xx_probe");
- exit(1);
- }
- }
-
- robo5350 = robo_vlan5350(&robo);
-
- for (i = 1; i < argc;) {
- if (strcasecmp(argv[i], "port") == 0 && (i + 1) < argc)
- {
- int index = atoi(argv[++i]);
- /* read port specs */
- while (++i < argc) {
- if (strcasecmp(argv[i], "state") == 0 && ++i < argc) {
- for (j = 0; j < 4 && strcasecmp(argv[i], rxtx[j]); j++);
- if (j < 4) {
- /* change state */
- robo_write16(&robo,ROBO_CTRL_PAGE, port[index],
- (robo_read16(&robo, ROBO_CTRL_PAGE, port[index]) & ~(3 << 0)) | (j << 0));
- } else {
- fprintf(stderr, "Invalid state '%s'.\n", argv[i]);
- exit(1);
- }
- } else
- if (strcasecmp(argv[i], "stp") == 0 && ++i < argc) {
- for (j = 0; j < 8 && strcasecmp(argv[i], stp[j]); j++);
- if (j < 8) {
- /* change stp */
- robo_write16(&robo,ROBO_CTRL_PAGE, port[index],
- (robo_read16(&robo, ROBO_CTRL_PAGE, port[index]) & ~(7 << 5)) | (j << 5));
- } else {
- fprintf(stderr, "Invalid stp '%s'.\n", argv[i]);
- exit(1);
- }
- } else
- if (strcasecmp(argv[i], "media") == 0 && ++i < argc) {
- for (j = 0; j < 5 && strcasecmp(argv[i], media[j].name); j++);
- if (j < 5) {
- mdio_write(&robo, port[index], MII_BMCR, media[j].bmcr);
- } else {
- fprintf(stderr, "Invalid media '%s'.\n", argv[i]);
- exit(1);
- }
- } else
- if (strcasecmp(argv[i], "mdi-x") == 0 && ++i < argc) {
- for (j = 0; j < 3 && strcasecmp(argv[i], mdix[j].name); j++);
- if (j < 3) {
- mdio_write(&robo, port[index], 0x1c, mdix[j].value |
- (mdio_read(&robo, port[index], 0x1c) & ~0x1800));
- } else {
- fprintf(stderr, "Invalid mdi-x '%s'.\n", argv[i]);
- exit(1);
- }
- } else
- if (strcasecmp(argv[i], "tag") == 0 && ++i < argc) {
- j = atoi(argv[i]);
- /* change vlan tag */
- robo_write16(&robo, ROBO_VLAN_PAGE, ROBO_VLAN_PORT0_DEF_TAG + (index << 1), j);
- } else break;
- }
- } else
- if (strcasecmp(argv[i], "vlan") == 0 && (i + 1) < argc)
- {
- int index = atoi(argv[++i]);
- while (++i < argc) {
- if (strcasecmp(argv[i], "ports") == 0 && ++i < argc) {
- char *ports = argv[i];
- int untag = 0;
- int member = 0;
-
- while (*ports >= '0' && *ports <= '9') {
- j = *ports++ - '0';
- member |= 1 << j;
-
- /* untag if needed, CPU port requires special handling */
- if (*ports == 'u' || (j != 5 && (*ports == ' ' || *ports == 0)))
- {
- untag |= 1 << j;
- if (*ports) ports++;
- /* change default vlan tag */
- robo_write16(&robo, ROBO_VLAN_PAGE,
- ROBO_VLAN_PORT0_DEF_TAG + (j << 1), index);
- } else
- if (*ports == '*' || *ports == 't' || *ports == ' ') ports++;
- else break;
-
- while (*ports == ' ') ports++;
- }
-
- if (*ports) {
- fprintf(stderr, "Invalid ports '%s'.\n", argv[i]);
- exit(1);
- } else {
- /* write config now */
- val16 = (index) /* vlan */ | (1 << 12) /* write */ | (1 << 13) /* enable */;
- if (robo5350) {
- robo_write32(&robo, ROBO_VLAN_PAGE, ROBO_VLAN_WRITE_5350,
- (1 << 20) /* valid */ | (untag << 6) | member);
- robo_write16(&robo, ROBO_VLAN_PAGE, ROBO_VLAN_TABLE_ACCESS_5350, val16);
- } else {
- robo_write16(&robo, ROBO_VLAN_PAGE, ROBO_VLAN_WRITE,
- (1 << 14) /* valid */ | (untag << 7) | member);
- robo_write16(&robo, ROBO_VLAN_PAGE, ROBO_VLAN_TABLE_ACCESS, val16);
- }
- }
- } else break;
- }
- } else
- if (strcasecmp(argv[i], "switch") == 0 && (i + 1) < argc)
- {
- /* enable/disable switching */
- robo_write16(&robo, ROBO_CTRL_PAGE, ROBO_SWITCH_MODE,
- (robo_read16(&robo, ROBO_CTRL_PAGE, ROBO_SWITCH_MODE) & ~2) |
- (*argv[++i] == 'e' ? 2 : 0));
- i++;
- } else
- if (strcasecmp(argv[i], "vlans") == 0 && (i + 1) < argc)
- {
- while (++i < argc) {
- if (strcasecmp(argv[i], "reset") == 0) {
- /* reset vlan validity bit */
- for (j = 0; j <= (robo5350 ? VLAN_ID_MAX5350 : VLAN_ID_MAX); j++)
- {
- /* write config now */
- val16 = (j) /* vlan */ | (1 << 12) /* write */ | (1 << 13) /* enable */;
- if (robo5350) {
- robo_write32(&robo, ROBO_VLAN_PAGE, ROBO_VLAN_WRITE_5350, 0);
- robo_write16(&robo, ROBO_VLAN_PAGE, ROBO_VLAN_TABLE_ACCESS_5350, val16);
- } else {
- robo_write16(&robo, ROBO_VLAN_PAGE, ROBO_VLAN_WRITE, 0);
- robo_write16(&robo, ROBO_VLAN_PAGE, ROBO_VLAN_TABLE_ACCESS, val16);
- }
- }
- } else
- if (strcasecmp(argv[i], "enable") == 0 || strcasecmp(argv[i], "disable") == 0)
- {
- int disable = (*argv[i] == 'd') || (*argv[i] == 'D');
- /* enable/disable vlans */
- robo_write16(&robo, ROBO_VLAN_PAGE, ROBO_VLAN_CTRL0, disable ? 0 :
- (1 << 7) /* 802.1Q VLAN */ | (3 << 5) /* mac check and hash */);
-
- robo_write16(&robo, ROBO_VLAN_PAGE, ROBO_VLAN_CTRL1, disable ? 0 :
- (1 << 1) | (1 << 2) | (1 << 3) /* RSV multicast */);
-
- robo_write16(&robo, ROBO_VLAN_PAGE, ROBO_VLAN_CTRL4, disable ? 0 :
- (1 << 6) /* drop invalid VID frames */);
-
- robo_write16(&robo, ROBO_VLAN_PAGE, ROBO_VLAN_CTRL5, disable ? 0 :
- (1 << 3) /* drop miss V table frames */);
-
- } else break;
- }
- } else
- if (strcasecmp(argv[i], "show") == 0)
- {
- break;
- } else {
- fprintf(stderr, "Invalid option %s\n", argv[i]);
- usage();
- exit(1);
- }
- }
-
- if (i == argc) {
- if (argc == 1) usage();
- return 0;
- }
-
- /* show config */
-
- printf("Switch: %sabled\n", robo_read16(&robo, ROBO_CTRL_PAGE, ROBO_SWITCH_MODE) & 2 ? "en" : "dis");
-
- for (i = 0; i < 6; i++) {
- printf(robo_read16(&robo, ROBO_STAT_PAGE, ROBO_LINK_STAT_SUMMARY) & (1 << port[i]) ?
- "Port %d(%c): %s%s " : "Port %d(%c): DOWN ", i, ports[i],
- robo_read16(&robo, ROBO_STAT_PAGE, ROBO_SPEED_STAT_SUMMARY) & (1 << port[i]) ? "100" : " 10",
- robo_read16(&robo, ROBO_STAT_PAGE, ROBO_DUPLEX_STAT_SUMMARY) & (1 << port[i]) ? "FD" : "HD");
-
- val16 = robo_read16(&robo, ROBO_CTRL_PAGE, port[i]);
-
- printf("%s stp: %s vlan: %d ", rxtx[val16 & 3], stp[(val16 >> 5) & 7],
- robo_read16(&robo, ROBO_VLAN_PAGE, ROBO_VLAN_PORT0_DEF_TAG + (i << 1)));
-
- robo_read(&robo, ROBO_STAT_PAGE, ROBO_LSA_PORT0 + port[i] * 6, mac, 3);
-
- printf("mac: %02x:%02x:%02x:%02x:%02x:%02x\n",
- mac[2] >> 8, mac[2] & 255, mac[1] >> 8, mac[1] & 255, mac[0] >> 8, mac[0] & 255);
- }
-
- val16 = robo_read16(&robo, ROBO_VLAN_PAGE, ROBO_VLAN_CTRL0);
-
- printf("VLANs: %s %sabled%s%s\n",
- robo5350 ? "BCM5325/535x" : "BCM536x",
- (val16 & (1 << 7)) ? "en" : "dis",
- (val16 & (1 << 6)) ? " mac_check" : "",
- (val16 & (1 << 5)) ? " mac_hash" : "");
-
- /* scan VLANs */
- for (i = 0; i <= (robo5350 ? VLAN_ID_MAX5350 : VLAN_ID_MAX); i++) {
- /* issue read */
- val16 = (i) /* vlan */ | (0 << 12) /* read */ | (1 << 13) /* enable */;
-
- if (robo5350) {
- u32 val32;
- robo_write16(&robo, ROBO_VLAN_PAGE, ROBO_VLAN_TABLE_ACCESS_5350, val16);
- /* actual read */
- val32 = robo_read32(&robo, ROBO_VLAN_PAGE, ROBO_VLAN_READ);
- if ((val32 & (1 << 20)) /* valid */) {
- printf("vlan%d:", i);
- for (j = 0; j < 6; j++) {
- if (val32 & (1 << j)) {
- printf(" %d%s", j, (val32 & (1 << (j + 6))) ?
- (j == 5 ? "u" : "") : "t");
- }
- }
- printf("\n");
- }
- } else {
- robo_write16(&robo, ROBO_VLAN_PAGE, ROBO_VLAN_TABLE_ACCESS, val16);
- /* actual read */
- val16 = robo_read16(&robo, ROBO_VLAN_PAGE, ROBO_VLAN_READ);
- if ((val16 & (1 << 14)) /* valid */) {
- printf("vlan%d:", i);
- for (j = 0; j < 6; j++) {
- if (val16 & (1 << j)) {
- printf(" %d%s", j, (val16 & (1 << (j + 7))) ?
- (j == 5 ? "u" : "") : "t");
- }
- }
- printf("\n");
- }
- }
- }
-
- return (0);
-}
diff --git a/package/system/utils/usbmode/Makefile b/package/system/utils/usbmode/Makefile
deleted file mode 100644
index 491f3e572f..0000000000
--- a/package/system/utils/usbmode/Makefile
+++ /dev/null
@@ -1,57 +0,0 @@
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=usbmode
-PKG_VERSION:=2013-05-31
-PKG_RELEASE=$(PKG_SOURCE_VERSION)
-
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=git://git.openwrt.org/project/usbmode.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=b62a33af03c39a8970249ce7afe7baec7ea9b91b
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-CMAKE_INSTALL:=1
-
-PKG_LICENSE:=GPLv2
-PKG_LICENSE_FILES:=
-
-PKG_MAINTAINER:=Felix Fietkau <nbd@openwrt.org>
-
-PKG_DATA_VERSION:=20121109
-PKG_DATA_URL:=http://www.draisberghof.de/usb_modeswitch
-PKG_DATA_PATH:=usb-modeswitch-data-$(PKG_DATA_VERSION)
-PKG_DATA_FILENAME:=$(PKG_DATA_PATH).tar.bz2
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/cmake.mk
-
-define Download/data
- FILE:=$(PKG_DATA_FILENAME)
- URL:=$(PKG_DATA_URL)
- MD5SUM:=a7d23a03157871013a0d708ab2b1b6df
-endef
-$(eval $(call Download,data))
-
-define Package/usb-modeswitch
- SECTION:=utils
- CATEGORY:=Utilities
- DEPENDS:=+libubox +libblobmsg-json +libusb-1.0
- TITLE:=USB mode switching utility
-endef
-
-define Build/Prepare
- $(Build/Prepare/Default)
- tar xvfj $(DL_DIR)/$(PKG_DATA_FILENAME) -C $(PKG_BUILD_DIR)
- rm -f \
- $(PKG_BUILD_DIR)/$(PKG_DATA_PATH)/usb_modeswitch.d/05c6:1000:sVe=GT
-endef
-
-define Package/usb-modeswitch/install
- $(INSTALL_DIR) $(1)/etc/hotplug.d/usb $(1)/sbin
- perl $(PKG_BUILD_DIR)/convert-modeswitch.pl \
- $(PKG_BUILD_DIR)/$(PKG_DATA_PATH)/usb_modeswitch.d/* \
- > $(1)/etc/usb-mode.json
- $(CP) ./files/usbmode.hotplug $(1)/etc/hotplug.d/usb/20-usb_mode
- $(CP) $(PKG_INSTALL_DIR)/usr/sbin/usbmode $(1)/sbin/
-endef
-
-$(eval $(call BuildPackage,usb-modeswitch))
diff --git a/package/system/utils/usbmode/files/usbmode.hotplug b/package/system/utils/usbmode/files/usbmode.hotplug
deleted file mode 100644
index 4ef2bd8daa..0000000000
--- a/package/system/utils/usbmode/files/usbmode.hotplug
+++ /dev/null
@@ -1,7 +0,0 @@
-. /lib/functions/procd.sh
-
-procd_open_service "usbmode"
-procd_open_instance
-procd_set_param command "/sbin/usbmode" -s
-procd_close_instance
-procd_close_service
diff --git a/package/system/utils/usbreset/Makefile b/package/system/utils/usbreset/Makefile
deleted file mode 100644
index 75bfd85138..0000000000
--- a/package/system/utils/usbreset/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# Copyright (C) 2011-2012 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=usbreset
-PKG_RELEASE:=2
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/usbreset
- SECTION:=utils
- CATEGORY:=Utilities
- TITLE:=Utility to send a USB port reset to a USB device
- MAINTAINER:=Jo-Philipp Wich <xm@subsignal.org>
-endef
-
-define Package/usbreset/description
- This package contains the small usbreset utility which
- can be used to send a USB port reset to a USB device -
- useful for debugging or to force re-detection of particular
- devices.
-endef
-
-define Build/Prepare
- $(INSTALL_DIR) $(PKG_BUILD_DIR)
- $(INSTALL_DATA) ./src/usbreset.c $(PKG_BUILD_DIR)/
-endef
-
-define Build/Compile
- $(TARGET_CC) $(TARGET_CFLAGS) -Wall \
- -o $(PKG_BUILD_DIR)/usbreset $(PKG_BUILD_DIR)/usbreset.c
-endef
-
-define Package/usbreset/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/usbreset $(1)/usr/bin/
-endef
-
-$(eval $(call BuildPackage,usbreset))
diff --git a/package/system/utils/usbreset/src/usbreset.c b/package/system/utils/usbreset/src/usbreset.c
deleted file mode 100644
index 087a14cfa4..0000000000
--- a/package/system/utils/usbreset/src/usbreset.c
+++ /dev/null
@@ -1,253 +0,0 @@
-/* usbreset -- send a USB port reset to a USB device */
-
-/*
-
-http://marc.info/?l=linux-usb-users&m=116827193506484&w=2
-
-and needs mounted usbfs filesystem
-
- sudo mount -t usbfs none /proc/bus/usb
-
-There is a way to suspend a USB device. In order to use it,
-you must have a kernel with CONFIG_PM_SYSFS_DEPRECATED turned on. To
-suspend a device, do (as root):
-
- echo -n 2 >/sys/bus/usb/devices/.../power/state
-
-where the "..." is the ID for your device. To unsuspend, do the same
-thing but with a "0" instead of the "2" above.
-
-Note that this mechanism is slated to be removed from the kernel within
-the next year. Hopefully some other mechanism will take its place.
-
-> To reset a
-> device?
-
-Here's a program to do it. You invoke it as either
-
- usbreset /proc/bus/usb/BBB/DDD
-or
- usbreset /dev/usbB.D
-
-depending on how your system is set up, where BBB and DDD are the bus and
-device address numbers.
-
-Alan Stern
-
-*/
-
-#include <stdio.h>
-#include <stdbool.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <string.h>
-#include <sys/ioctl.h>
-
-#include <linux/usbdevice_fs.h>
-
-
-static char *usbfs = NULL;
-
-struct usbentry {
- int bus_num;
- int dev_num;
- int vendor_id;
- int product_id;
- char vendor_name[128];
- char product_name[128];
-};
-
-
-static bool find_usbfs(void)
-{
- FILE *mtab;
-
- char buf[1024], type[32];
- static char path[1024];
-
- if ((mtab = fopen("/proc/mounts", "r")) != NULL)
- {
- while (fgets(buf, sizeof(buf), mtab))
- {
- if (sscanf(buf, "%*s %1023s %31s ", path, type) == 2 &&
- !strncmp(type, "usbfs", 5))
- {
- usbfs = path;
- break;
- }
- }
-
- fclose(mtab);
- }
-
- return !!usbfs;
-}
-
-static FILE * open_devlist(void)
-{
- char buf[1024];
- snprintf(buf, sizeof(buf), "%s/devices", usbfs);
- return fopen(buf, "r");
-}
-
-static void close_devlist(FILE *devs)
-{
- fclose(devs);
-}
-
-static struct usbentry * parse_devlist(FILE *devs)
-{
- char buf[1024];
- static struct usbentry dev;
-
- memset(&dev, 0, sizeof(dev));
-
- while (fgets(buf, sizeof(buf), devs))
- {
- buf[strlen(buf)-1] = 0;
-
- switch (buf[0])
- {
- case 'T':
- sscanf(buf, "T: Bus=%d Lev=%*d Prnt=%*d Port=%*d Cnt=%*d Dev#=%d",
- &dev.bus_num, &dev.dev_num);
- break;
-
- case 'P':
- sscanf(buf, "P: Vendor=%x ProdID=%x",
- &dev.vendor_id, &dev.product_id);
- break;
-
- case 'S':
- if (!strncmp(buf, "S: Manufacturer=", 17))
- snprintf(dev.vendor_name, sizeof(dev.vendor_name),
- "%s", buf+17);
- else if (!strncmp(buf, "S: Product=", 12))
- snprintf(dev.product_name, sizeof(dev.product_name),
- "%s", buf+12);
- break;
- }
-
- if (dev.product_name[0])
- return &dev;
- }
-
- return NULL;
-}
-
-static void list_devices(void)
-{
- FILE *devs = open_devlist();
- struct usbentry *dev;
-
- if (!devs)
- return;
-
- while ((dev = parse_devlist(devs)) != NULL)
- {
- printf(" Number %03d/%03d ID %04x:%04x %s\n",
- dev->bus_num, dev->dev_num,
- dev->vendor_id, dev->product_id,
- dev->product_name);
- }
-
- close_devlist(devs);
-}
-
-struct usbentry * find_device(int *bus, int *dev,
- int *vid, int *pid,
- const char *product)
-{
- FILE *devs = open_devlist();
-
- struct usbentry *e, *match = NULL;
-
- if (!devs)
- return NULL;
-
- while ((e = parse_devlist(devs)) != NULL)
- {
- if ((bus && (e->bus_num == *bus) && (e->dev_num == *dev)) ||
- (vid && (e->vendor_id == *vid) && (e->product_id == *pid)) ||
- (product && !strcasecmp(e->product_name, product)))
- {
- match = e;
- break;
- }
- }
-
- close_devlist(devs);
-
- return match;
-}
-
-static void reset_device(struct usbentry *dev)
-{
- int fd;
- char path[1024];
-
- snprintf(path, sizeof(path), "%s/%03d/%03d",
- usbfs, dev->bus_num, dev->dev_num);
-
- printf("Resetting %s ... ", dev->product_name);
-
- if ((fd = open(path, O_WRONLY)) > -1)
- {
- if (ioctl(fd, USBDEVFS_RESET, 0) < 0)
- printf("failed [%s]\n", strerror(errno));
- else
- printf("ok\n");
-
- close(fd);
- }
- else
- {
- printf("can't open [%s]\n", strerror(errno));
- }
-}
-
-
-int main(int argc, char **argv)
-{
- int id1, id2;
- struct usbentry *dev;
-
- if (!find_usbfs())
- {
- fprintf(stderr, "Unable to find usbfs, is it mounted?\n");
- return 1;
- }
-
- if ((argc == 2) && (sscanf(argv[1], "%3d/%3d", &id1, &id2) == 2))
- {
- dev = find_device(&id1, &id2, NULL, NULL, NULL);
- }
- else if ((argc == 2) && (sscanf(argv[1], "%4x:%4x", &id1, &id2) == 2))
- {
- dev = find_device(NULL, NULL, &id1, &id2, NULL);
- }
- else if ((argc == 2) && strlen(argv[1]) < 128)
- {
- dev = find_device(NULL, NULL, NULL, NULL, argv[1]);
- }
- else
- {
- printf("Usage:\n"
- " usbreset PPPP:VVVV - reset by product and vendor id\n"
- " usbreset BBB/DDD - reset by bus and device number\n"
- " usbreset \"Product\" - reset by product name\n\n"
- "Devices:\n");
- list_devices();
- return 1;
- }
-
- if (!dev)
- {
- fprintf(stderr, "No such device found\n");
- return 1;
- }
-
- reset_device(dev);
- return 0;
-}
diff --git a/package/system/utils/usbutils/Makefile b/package/system/utils/usbutils/Makefile
deleted file mode 100644
index 2cd59ae74c..0000000000
--- a/package/system/utils/usbutils/Makefile
+++ /dev/null
@@ -1,57 +0,0 @@
-#
-# Copyright (C) 2007-2013 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=usbutils
-PKG_VERSION:=006
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=@KERNEL/linux/utils/usb/usbutils
-PKG_MD5SUM:=9d13954981f4adbe3fd02aae6dbfafa9
-
-USB_IDS_VERSION:=2013-01-16
-USB_IDS_MD5SUM:=2a2344907b6344f0935c86efaf9de620
-USB_IDS_FILE:=usb.ids.$(USB_IDS_VERSION).gz
-
-PKG_BUILD_PARALLEL:=1
-PKG_INSTALL:=1
-
-PKG_MAINTAINER := Felix Fietkau <nbd@openwrt.org>
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/usbutils
- SECTION:=utils
- CATEGORY:=Utilities
- DEPENDS:=+libusb-1.0 +zlib +librt +libpthread
- TITLE:=USB devices listing utilities
- URL:=http://www.linux-usb.org/
-endef
-
-define Download/usb_ids
- FILE:=$(USB_IDS_FILE)
- URL:=http://mirror2.openwrt.org/sources
- MD5SUM:=$(USB_IDS_MD5SUM)
-endef
-$(eval $(call Download,usb_ids))
-
-define Build/Prepare
- $(Build/Prepare/Default)
- echo '#!/bin/sh' > $(PKG_BUILD_DIR)/update-usbids.sh.in
- echo 'cp $(DL_DIR)/$(USB_IDS_FILE) usb.ids.gz' >> $(PKG_BUILD_DIR)/update-usbids.sh.in
-endef
-
-define Package/usbutils/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/lsusb $(1)/usr/bin/
- $(INSTALL_DIR) $(1)/usr/share
- $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/usb.ids.gz $(1)/usr/share/
-endef
-
-$(eval $(call BuildPackage,usbutils))
diff --git a/package/system/utils/util-linux/Makefile b/package/system/utils/util-linux/Makefile
deleted file mode 100644
index ed2c10f172..0000000000
--- a/package/system/utils/util-linux/Makefile
+++ /dev/null
@@ -1,594 +0,0 @@
-#
-# Copyright (C) 2007-2012 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=util-linux
-PKG_VERSION:=2.21.2
-PKG_RELEASE:=2
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=@KERNEL/linux/utils/$(PKG_NAME)/v2.21
-PKG_MD5SUM:=54ba880f1d66782c2287ee2c898520e9
-
-PKG_LICENSE:=GPLv2 LGPLv2.1 BSD-3c
-PKG_LICENSE_FILES:=COPYING getopt/COPYING libblkid/COPYING libmount/COPYING Documentation/licenses/COPYING.GPLv2 Documentation/licenses/COPYING.LGPLv2.1 libuuid/COPYING Documentation/licenses/COPYING.BSD-3
-
-PKG_BUILD_PARALLEL:=1
-PKG_BUILD_DEPENDS:=libncurses
-PKG_FIXUP:=autoreconf
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/util-linux/Default
- SECTION:=utils
- CATEGORY:=Utilities
- URL:=http://www.kernel.org/pub/linux/utils/util-linux/
-endef
-
-CONFIGURE_ARGS += \
- --enable-new-mount \
- --with-ncurses \
- --disable-nls \
- --disable-tls \
- --without-udev
-
-TARGET_CFLAGS += $(FPIC)
-
-define Build/InstallDev
- $(MAKE) -C $(PKG_BUILD_DIR) \
- BUILDCC="$(HOSTCC)" \
- DESTDIR="$(1)" \
- installdirs install-data
-
- $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
- $(CP) $(PKG_BUILD_DIR)/libblkid/blkid.pc $(1)/usr/lib/pkgconfig
- $(CP) $(PKG_BUILD_DIR)/libmount/mount.pc $(1)/usr/lib/pkgconfig
- $(CP) $(PKG_BUILD_DIR)/libuuid/uuid.pc $(1)/usr/lib/pkgconfig
-
- $(INSTALL_DIR) $(1)/usr/include/blkid
- $(CP) $(PKG_BUILD_DIR)/libblkid/src/blkid.h $(1)/usr/include/blkid
- $(INSTALL_DIR) $(1)/usr/include/libmount
- $(CP) $(PKG_BUILD_DIR)/libmount/src/libmount.h $(1)/usr/include/libmount
- $(INSTALL_DIR) $(1)/usr/include/uuid
- $(CP) $(PKG_BUILD_DIR)/libuuid/src/uuid.h $(1)/usr/include/uuid
-
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_BUILD_DIR)/libblkid/src/.libs/libblkid.{a,so*} $(1)/usr/lib
- $(CP) $(PKG_BUILD_DIR)/libmount/src/.libs/libmount.{a,so*} $(1)/usr/lib
- $(CP) $(PKG_BUILD_DIR)/libuuid/src/.libs/libuuid.{a,so*} $(1)/usr/lib
-endef
-
-define Package/libblkid
-$(call Package/util-linux/Default)
- DEPENDS:=+libuuid
- TITLE:=block device id library
- SECTION:=libs
- CATEGORY:=Libraries
-endef
-
-define Package/libblkid/description
- The libblkid library is used to identify block devices (disks) as to their
- content (e.g. filesystem type, partitions) as well as extracting additional
- information such as filesystem labels/volume names, partitions, unique
- identifiers/serial numbers...
-endef
-
-define Package/libmount
-$(call Package/util-linux/Default)
- DEPENDS:=+libblkid
- TITLE:=mount library
- SECTION:=libs
- CATEGORY:=Libraries
-endef
-
-define Package/libmount/description
- The libmount library is used to parse /etc/fstab, /etc/mtab and
- /proc/self/mountinfo files, manage the mtab file, evaluate mount options...
-endef
-
-define Package/libuuid
-$(call Package/util-linux/Default)
- TITLE:=DCE compatible Universally Unique Identifier library
- SECTION:=libs
- CATEGORY:=Libraries
-endef
-
-define Package/libuuid/description
- The UUID library is used to generate unique identifiers for objects
- that may be accessible beyond the local system. This library
- generates UUIDs compatible with those created by the Open Software
- Foundation (OSF) Distributed Computing Environment (DCE) utility.
-endef
-
-define Package/agetty
-$(call Package/util-linux/Default)
- TITLE:=alternative Linux getty
- SUBMENU=Terminal
-endef
-
-define Package/agetty/description
- agetty opens a tty port, prompts for a login name and invokes the
- /bin/login command
-endef
-
-define Package/blkid
-$(call Package/util-linux/Default)
- TITLE:=locate/print block device attributes
- DEPENDS:= +libblkid
- SUBMENU=disc
-endef
-
-define Package/blkid/description
- The blkid program is the command-line interface to working with the libblkid
- library.
-endef
-
-define Package/cal
-$(call Package/util-linux/Default)
- TITLE:=display a calendar
- DEPENDS:= +libncurses
-endef
-
-define Package/cal/description
- cal displays a simple calendar
-endef
-
-define Package/cfdisk
-$(call Package/util-linux/Default)
- TITLE:=display or manipulate disk partition table
- DEPENDS:= +libblkid +libncurses
- SUBMENU:=disc
-endef
-
-define Package/cfdisk/description
- cfdisk is a curses-based program for partitioning any hard disk drive
-endef
-
-define Package/dmesg
-$(call Package/util-linux/Default)
- TITLE:=print or control the kernel ring buffer
-endef
-
-define Package/dmesg/description
- dmesg is used to examine or control the kernel ring buffer
-endef
-
-define Package/fdisk
-$(call Package/util-linux/Default)
- TITLE:=manipulate disk partition table
- DEPENDS:= +libblkid
- SUBMENU=disc
-endef
-
-define Package/fdisk/description
- a menu-driven program for creation and manipulation of partition tables
-endef
-
-define Package/findfs
-$(call Package/util-linux/Default)
- TITLE:=find a filesystem by label or UUID
- DEPENDS:= +libblkid
- SUBMENU=disc
-endef
-
-define Package/findfs/description
- findfs will search the disks in the system looking for a filesystem which has
- a label matching label or a UUID equal to uuid
-endef
-
-define Package/flock
-$(call Package/util-linux/Default)
- TITLE:=manage locks from shell scripts
-endef
-
-define Package/flock/description
- manages flock locks from within shell scripts or the command line
-endef
-
-define Package/getopt
-$(call Package/util-linux/Default)
- TITLE:=parse command options (enhanced)
-endef
-
-define Package/getopt/description
- getopt is used to break up (parse) options in command lines for easy parsing
- by shell procedures, and to check for legal options
-endef
-
-define Package/hwclock
-$(call Package/util-linux/Default)
- TITLE:=query or set the hardware clock
-endef
-
-define Package/hwclock/description
- hwclock is a tool for accessing the Hardware Clock
-endef
-
-define Package/logger
-$(call Package/util-linux/Default)
- TITLE:=a shell command interface to the syslog system log module
-endef
-
-define Package/logger/description
- logger makes entries in the system log, it provides a shell command interface
- to the syslog system log module
-endef
-
-define Package/look
-$(call Package/util-linux/Default)
- TITLE:=display lines beginning with a given string
-endef
-
-define Package/look/description
- look utility displays any lines in file which contain string
-endef
-
-define Package/losetup
-$(call Package/util-linux/Default)
- TITLE:=set up and control loop devices
-endef
-
-define Package/losetup/description
- losetup is used to associate loop devices with regular files or block devices,
- to detach loop devices and to query the status of a loop device
-endef
-
-define Package/lsblk
-$(call Package/util-linux/Default)
- TITLE:=list block devices
- DEPENDS:= +libblkid
- SUBMENU=disc
-endef
-
-define Package/lsblk/description
- lsblk lists information about all or the specified block devices
-endef
-
-define Package/mcookie
-$(call Package/util-linux/Default)
- TITLE:=generate magic cookies for xauth
-endef
-
-define Package/mcookie/description
- mcookie generates a 128-bit random hexadecimal number for use with the X
- authority system
-endef
-
-define Package/mount-utils
-$(call Package/util-linux/Default)
- TITLE:=related (u)mount utilities
- DEPENDS+= +libmount
-endef
-
-define Package/mount-utils/description
- contains: mount, umount, findmnt
-endef
-
-define Package/namei
-$(call Package/util-linux/Default)
- TITLE:=follow a pathname until a terminal point is found
-endef
-
-define Package/namei/description
- namei uses its arguments as pathnames to any type of Unix file (symlinks,
- files, directories, and so forth)
-endef
-
-define Package/rename
-$(call Package/util-linux/Default)
- TITLE:=rename files
-endef
-
-define Package/rename/description
- rename will rename the specified files by replacing the first occurrence of
- expression in their name by replacement
-endef
-
-define Package/partx-utils
-$(call Package/util-linux/Default)
- TITLE:=inform kernel about the presence and numbering of on-disk partitions
- DEPENDS:= +libblkid
- SUBMENU=disc
-endef
-
-define Package/partx-utils/description
- contains partx, addpart, delpart
-endef
-
-define Package/script-utils
-$(call Package/util-linux/Default)
- TITLE:=make and replay typescript of terminal session
- SUBMENU=Terminal
-endef
-
-define Package/script-utils/description
- contains: script, scriptreplay
-endef
-
-define Package/setterm
-$(call Package/util-linux/Default)
- TITLE:=set terminal attributes
- DEPENDS:= +libncurses
- SUBMENU:=Terminal
-endef
-
-define Package/setterm/description
- setterm writes to standard output a character string that will invoke the
- specified terminal capabilities
-endef
-
-define Package/sfdisk
-$(call Package/util-linux/Default)
- TITLE:=partition table manipulator for Linux
- SUBMENU=disc
-endef
-
-define Package/sfdisk/description
- list the size of a partition, list the partitions on a device, check the
- partitions on a device and repartition a device
-endef
-
-define Package/swap-utils
-$(call Package/util-linux/Default)
- TITLE:=swap space management utilities
- DEPENDS+= +libblkid
- SUBMENU:=disc
-endef
-
-define Package/swap-utils/description
- contains: mkswap, swaplabel, swapon, swapoff
-endef
-
-define Package/uuidd
-$(call Package/util-linux/Default)
- TITLE:=UUID generation daemon
- DEPENDS:= +libuuid
-endef
-
-define Package/uuidd/description
- The uuidd daemon is used by the UUID library to generate universally unique
- identifiers (UUIDs), especially time-based UUIDs, in a secure and
- guaranteed-unique fashion, even in the face of large numbers of threads
- running on different CPUs trying to grab UUIDs.
-endef
-
-define Package/uuidgen
-$(call Package/util-linux/Default)
- TITLE:=create a new UUID value
- DEPENDS:= +libuuid
-endef
-
-define Package/uuidgen/description
- The uuidgen program creates (and prints) a new universally unique identifier
- (UUID) using the libuuid library. The new UUID can reasonably be considered
- unique among all UUIDs created on the local system, and among UUIDs created on
- other systems in the past and in the future.
-endef
-
-define Package/wall
-$(call Package/util-linux/Default)
- TITLE:=send a message to everybody's terminal
- SUBMENU=Terminal
-endef
-
-define Package/wall/description
- wall sends a message to everybody logged in with their mesg permission
- set to yes
-endef
-
-define Package/whereis
-$(call Package/util-linux/Default)
- TITLE:=locate the binary, source, and manual page files for a command
-endef
-
-define Package/whereis/description
- whereis locates source/binary and manuals sections for specified files
-endef
-
-define Package/wipefs
-$(call Package/util-linux/Default)
- TITLE:=wipe a signature from a device
- DEPENDS:= +libblkid
- SUBMENU:=disc
-endef
-
-define Package/wipefs/description
- wipefs can erase filesystem, raid or partition table signatures (magic
- strings) from the specified device to make the signature invisible for
- libblkid.
-endef
-
-define Package/libblkid/install
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_BUILD_DIR)/libblkid/src/.libs/libblkid.so.* $(1)/usr/lib/
-endef
-
-define Package/libmount/install
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_BUILD_DIR)/libmount/src/.libs/libmount.so.* $(1)/usr/lib/
-endef
-
-define Package/libuuid/install
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_BUILD_DIR)/libuuid/src/.libs/libuuid.so.* $(1)/usr/lib/
-endef
-
-define Package/agetty/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/term-utils/agetty $(1)/usr/sbin/
-endef
-
-define Package/blkid/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/misc-utils/.libs/blkid $(1)/usr/sbin/
-endef
-
-define Package/cal/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/misc-utils/cal $(1)/usr/bin/
-endef
-
-define Package/cfdisk/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/fdisk/.libs/cfdisk $(1)/usr/sbin/
-endef
-
-define Package/fdisk/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/fdisk/.libs/fdisk $(1)/usr/sbin/
-endef
-
-define Package/findfs/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/misc-utils/.libs/findfs $(1)/usr/sbin/
-endef
-
-define Package/flock/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/sys-utils/flock $(1)/usr/bin/
-endef
-
-define Package/getopt/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/getopt/getopt $(1)/usr/bin/
-endef
-
-define Package/hwclock/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/hwclock/hwclock $(1)/usr/sbin/
-endef
-
-define Package/logger/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/misc-utils/logger $(1)/usr/bin/
-endef
-
-define Package/look/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/misc-utils/look $(1)/usr/bin/
-endef
-
-define Package/losetup/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/sys-utils/losetup $(1)/usr/sbin/
-endef
-
-define Package/lsblk/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/misc-utils/.libs/lsblk $(1)/usr/bin/
-endef
-
-define Package/mcookie/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/misc-utils/mcookie $(1)/usr/bin/
-endef
-
-define Package/mount-utils/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/sys-utils/.libs/{u,}mount $(1)/usr/bin/
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/sys-utils/.libs/mountpoint $(1)/usr/bin/
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/misc-utils/.libs/findmnt $(1)/usr/bin/
-endef
-
-define Package/namei/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/misc-utils/namei $(1)/usr/bin/
-endef
-
-define Package/rename/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/misc-utils/rename $(1)/usr/bin/
-endef
-
-define Package/partx-utils/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/partx/.libs/partx $(1)/usr/sbin/
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/partx/addpart $(1)/usr/sbin/
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/partx/delpart $(1)/usr/sbin/
-endef
-
-define Package/script-utils/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/term-utils/script $(1)/usr/bin/
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/term-utils/scriptreplay $(1)/usr/bin/
-endef
-
-define Package/setterm/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/term-utils/setterm $(1)/usr/bin/
-endef
-
-define Package/sfdisk/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/fdisk/sfdisk $(1)/usr/sbin/
-endef
-
-define Package/swap-utils/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/disk-utils/.libs/mkswap $(1)/usr/sbin/
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/disk-utils/.libs/swaplabel $(1)/usr/sbin/
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/sys-utils/.libs/swapon $(1)/usr/sbin/
- ln -sf swapon $(1)/usr/sbin/swapoff
-endef
-
-define Package/uuidd/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/misc-utils/.libs/uuidd $(1)/usr/sbin/
-endef
-
-define Package/uuidgen/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/misc-utils/.libs/uuidgen $(1)/usr/bin/
-endef
-
-define Package/wall/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/term-utils/wall $(1)/usr/bin/
-endef
-
-define Package/whereis/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/misc-utils/whereis $(1)/usr/bin/
-endef
-
-define Package/wipefs/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/misc-utils/.libs/wipefs $(1)/usr/sbin/
-endef
-
-$(eval $(call BuildPackage,libblkid))
-$(eval $(call BuildPackage,libmount))
-$(eval $(call BuildPackage,libuuid))
-$(eval $(call BuildPackage,agetty))
-$(eval $(call BuildPackage,blkid))
-$(eval $(call BuildPackage,cal))
-$(eval $(call BuildPackage,cfdisk))
-$(eval $(call BuildPackage,dmesg))
-$(eval $(call BuildPackage,fdisk))
-$(eval $(call BuildPackage,findfs))
-$(eval $(call BuildPackage,flock))
-$(eval $(call BuildPackage,getopt))
-$(eval $(call BuildPackage,hwclock))
-$(eval $(call BuildPackage,logger))
-$(eval $(call BuildPackage,look))
-$(eval $(call BuildPackage,losetup))
-$(eval $(call BuildPackage,lsblk))
-$(eval $(call BuildPackage,mcookie))
-$(eval $(call BuildPackage,mount-utils))
-$(eval $(call BuildPackage,namei))
-$(eval $(call BuildPackage,rename))
-$(eval $(call BuildPackage,partx-utils))
-$(eval $(call BuildPackage,script-utils))
-$(eval $(call BuildPackage,setterm))
-$(eval $(call BuildPackage,sfdisk))
-$(eval $(call BuildPackage,swap-utils))
-$(eval $(call BuildPackage,uuidd))
-$(eval $(call BuildPackage,uuidgen))
-$(eval $(call BuildPackage,wall))
-$(eval $(call BuildPackage,whereis))
-$(eval $(call BuildPackage,wipefs))
diff --git a/package/system/utils/util-linux/patches/000-compile.patch b/package/system/utils/util-linux/patches/000-compile.patch
deleted file mode 100644
index b7cc18b40c..0000000000
--- a/package/system/utils/util-linux/patches/000-compile.patch
+++ /dev/null
@@ -1,44 +0,0 @@
---- a/misc-utils/cal.c
-+++ b/misc-utils/cal.c
-@@ -291,41 +291,6 @@ main(int argc, char **argv) {
- }
- #endif
-
--/*
-- * The traditional Unix cal utility starts the week at Sunday,
-- * while ISO 8601 starts at Monday. We read the start day from
-- * the locale database, which can be overridden with the
-- * -s (Sunday) or -m (Monday) options.
-- */
--#if HAVE_DECL__NL_TIME_WEEK_1STDAY
-- /*
-- * You need to use 2 locale variables to get the first day of the week.
-- * This is needed to support first_weekday=2 and first_workday=1 for
-- * the rare case where working days span across 2 weeks.
-- * This shell script shows the combinations and calculations involved:
-- *
-- * for LANG in en_US ru_RU fr_FR csb_PL POSIX; do
-- * printf "%s:\t%s + %s -1 = " $LANG $(locale week-1stday first_weekday)
-- * date -d"$(locale week-1stday) +$(($(locale first_weekday)-1))day" +%w
-- * done
-- *
-- * en_US: 19971130 + 1 -1 = 0 #0 = sunday
-- * ru_RU: 19971130 + 2 -1 = 1
-- * fr_FR: 19971201 + 1 -1 = 1
-- * csb_PL: 19971201 + 2 -1 = 2
-- * POSIX: 19971201 + 7 -1 = 0
-- */
-- {
-- int wfd;
-- union { unsigned int word; char *string; } val;
-- val.string = nl_langinfo(_NL_TIME_WEEK_1STDAY);
--
-- wfd = val.word;
-- wfd = day_in_week(wfd % 100, (wfd / 100) % 100, wfd / (100 * 100));
-- weekstart = (wfd + *nl_langinfo(_NL_TIME_FIRST_WEEKDAY) - 1) % 7;
-- }
--#endif
--
- yflag = 0;
- while ((ch = getopt_long(argc, argv, "13mjsyVh", longopts, NULL)) != -1)
- switch(ch) {
diff --git a/package/system/utils/util-linux/patches/001-no-printf-alloc.patch b/package/system/utils/util-linux/patches/001-no-printf-alloc.patch
deleted file mode 100644
index e3f048ab3c..0000000000
--- a/package/system/utils/util-linux/patches/001-no-printf-alloc.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-for systems that don't support latest POSIX standard: %as
-
-https://bugs.gentoo.org/406303
-
---- a/configure.ac
-+++ b/configure.ac
-@@ -688,7 +688,6 @@ AC_ARG_ENABLE([libmount],
- UL_BUILD_INIT([libmount])
- UL_REQUIRES_LINUX([libmount])
- UL_REQUIRES_BUILD([libmount], [libblkid])
--UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier])
- AM_CONDITIONAL(BUILD_LIBMOUNT, test "x$build_libmount" = xyes)
-
- AC_SUBST([LIBMOUNT_VERSION])
---- a/libmount/src/tab_parse.c
-+++ b/libmount/src/tab_parse.c
-@@ -22,6 +22,10 @@
- #include "pathnames.h"
- #include "strutils.h"
-
-+#ifndef HAVE_SCANF_MS_MODIFIER
-+# define UL_SCNsA "%s"
-+#endif
-+
- static inline char *skip_spaces(char *s)
- {
- assert(s);
-@@ -61,16 +65,31 @@ static int mnt_parse_table_line(struct l
- int rc, n = 0, xrc;
- char *src = NULL, *fstype = NULL, *optstr = NULL;
-
-+#ifndef HAVE_SCANF_MS_MODIFIER
-+ size_t len = strlen(s) + 1;
-+ src = malloc(len);
-+ fstype = malloc(len);
-+ fs->target = malloc(len);
-+ optstr = malloc(len);
-+#endif
-+
- rc = sscanf(s, UL_SCNsA" " /* (1) source */
- UL_SCNsA" " /* (2) target */
- UL_SCNsA" " /* (3) FS type */
- UL_SCNsA" " /* (4) options */
- "%n", /* byte count */
-
-+#ifdef HAVE_SCANF_MS_MODIFIER
- &src,
- &fs->target,
- &fstype,
- &optstr,
-+#else
-+ src,
-+ fs->target,
-+ fstype,
-+ optstr,
-+#endif
- &n);
- xrc = rc;
-
-@@ -136,6 +155,16 @@ static int mnt_parse_mountinfo_line(stru
- unsigned int maj, min;
- char *fstype = NULL, *src = NULL, *p;
-
-+#ifndef HAVE_SCANF_MS_MODIFIER
-+ size_t len = strlen(s) + 1;
-+ fs->root = malloc(len);
-+ fs->target = malloc(len);
-+ fs->vfs_optstr = malloc(len);
-+ fs->fs_optstr = malloc(len);
-+ fstype = malloc(len);
-+ src = malloc(len);
-+#endif
-+
- rc = sscanf(s, "%u " /* (1) id */
- "%u " /* (2) parent */
- "%u:%u " /* (3) maj:min */
-@@ -147,9 +176,15 @@ static int mnt_parse_mountinfo_line(stru
- &fs->id,
- &fs->parent,
- &maj, &min,
-+#ifdef HAVE_SCANF_MS_MODIFIER
- &fs->root,
- &fs->target,
- &fs->vfs_optstr,
-+#else
-+ fs->root,
-+ fs->target,
-+ fs->vfs_optstr,
-+#endif
- &end);
-
- if (rc >= 7 && end > 0)
-@@ -167,9 +202,15 @@ static int mnt_parse_mountinfo_line(stru
- UL_SCNsA" " /* (9) source */
- UL_SCNsA, /* (10) fs options (fs specific) */
-
-+#ifdef HAVE_SCANF_MS_MODIFIER
- &fstype,
- &src,
- &fs->fs_optstr);
-+#else
-+ fstype,
-+ src,
-+ fs->fs_optstr);
-+#endif
-
- if (rc >= 10) {
- fs->flags |= MNT_FS_KERNEL;
diff --git a/package/system/utils/util-linux/patches/002-fix-endianess.patch b/package/system/utils/util-linux/patches/002-fix-endianess.patch
deleted file mode 100644
index 4c59932cda..0000000000
--- a/package/system/utils/util-linux/patches/002-fix-endianess.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: util-linux-2.21.2/libblkid/src/superblocks/swap.c
-===================================================================
---- util-linux-2.21.2.orig/libblkid/src/superblocks/swap.c 2012-05-15 13:51:45.814410455 +0200
-+++ util-linux-2.21.2/libblkid/src/superblocks/swap.c 2013-06-12 23:23:03.270742199 +0200
-@@ -48,7 +48,7 @@
-
- /* SWAPSPACE2 - check for wrong version or zeroed pagecount */
- if (strcmp(version, "2") == 0 &&
-- (hdr->version != 1 || hdr->lastpage == 0))
-+ ((hdr->version != 1 && swab32(hdr->version) != 1) || hdr->lastpage == 0))
- return -1;
-
- /* arbitrary sanity check.. is there any garbage down there? */
diff --git a/package/system/utils/xfsprogs/Makefile b/package/system/utils/xfsprogs/Makefile
deleted file mode 100644
index a7a865a0eb..0000000000
--- a/package/system/utils/xfsprogs/Makefile
+++ /dev/null
@@ -1,87 +0,0 @@
-#
-# Copyright (C) 2006-2012 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=xfsprogs
-PKG_RELEASE:=1
-PKG_VERSION:=3.1.7
-PKG_SOURCE_URL:=ftp://oss.sgi.com/projects/xfs/previous/
-PKG_MD5SUM:=049cf9873794ea49d0bb3f12d45748a4
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_INSTALL:=1
-PKG_FIXUP:=autoreconf
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/nls.mk
-
-define Package/xfsprogs/default
- SECTION:=utils
- CATEGORY:=Utilities
- DEPENDS:=+libuuid +libpthread +librt
- URL:=http://oss.sgi.com/projects/xfs
-endef
-
-define Package/xfs-mkfs
-$(call Package/xfsprogs/default)
- TITLE:=Utility for creating XFS filesystems
-endef
-
-define Package/xfs-fsck
-$(call Package/xfsprogs/default)
- TITLE:=Utilities for checking and repairing XFS filesystems
-endef
-
-define Package/xfs-growfs
-$(call Package/xfsprogs/default)
- TITLE:=Utility for increasing the size of XFS filesystems
-endef
-
-CONFIGURE_ARGS += \
- --enable-gettext=no \
- --enable-lib64=no
-
-TARGET_CFLAGS += \
- -I$(STAGING_DIR)/usr/include \
- -D_LARGEFILE64_SOURCE \
- -D_FILE_OFFSET_BITS=64 \
- -D_GNU_SOURCE
-
-MAKE_FLAGS += \
- DEBUG= Q= \
- PCFLAGS="-Wall" \
- PKG_PLATFORM=linux \
- ENABLE_GETTEXT=no \
- prefix=$(PKG_INSTALL_DIR)/usr \
- exec_prefix=$(PKG_INSTALL_DIR)/usr \
- PKG_SBIN_DIR=$(PKG_INSTALL_DIR)/usr/sbin \
- PKG_ROOT_SBIN_DIR=$(PKG_INSTALL_DIR)/sbin \
- PKG_MAN_DIR=$(PKG_INSTALL_DIR)/usr/man \
- PKG_LOCALE_DIR=$(PKG_INSTALL_DIR)/usr/share/locale \
- PKG_ROOT_LIB_DIR=$(PKG_INSTALL_DIR)/lib \
- PKG_DOC_DIR=$(PKG_INSTALL_DIR)/usr/share/doc/xfsprogs
-
-define Package/xfs-mkfs/install
- mkdir -p $(1)/sbin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/mkfs.xfs $(1)/sbin
-endef
-
-define Package/xfs-fsck/install
- mkdir -p $(1)/sbin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/xfs_repair $(1)/sbin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/xfs_db $(1)/sbin
-endef
-
-define Package/xfs-growfs/install
- mkdir -p $(1)/sbin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/xfs_growfs $(1)/sbin
-endef
-
-$(eval $(call BuildPackage,xfs-mkfs))
-$(eval $(call BuildPackage,xfs-fsck))
-$(eval $(call BuildPackage,xfs-growfs))
diff --git a/package/system/utils/xfsprogs/patches/001-automake-compat.patch b/package/system/utils/xfsprogs/patches/001-automake-compat.patch
deleted file mode 100644
index 3003d6d210..0000000000
--- a/package/system/utils/xfsprogs/patches/001-automake-compat.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-commit 2222aa77e11b959e0e5a0ded3482e56799593bc2
-Author: Jens Muecke <jens@nons.de>
-Date: Thu Jan 26 00:34:15 2012 +0100
-
- 001-automake-compat
-
-diff --git a/configure.in b/configure.in
-index 664c0e9..d91b6ec 100644
---- a/configure.in
-+++ b/configure.in
-@@ -2,7 +2,8 @@ AC_INIT(include/libxfs.h)
- AC_PREREQ(2.50)
- AC_CONFIG_AUX_DIR([.])
- AC_CONFIG_MACRO_DIR([m4])
--AC_CONFIG_HEADER(include/platform_defs.h)
-+# Put a dummy here (http://www.mail-archive.com/automake@gnu.org/msg09241.html)
-+AC_CONFIG_HEADERS([doesnotexist.h include/platform_defs.h])
- AC_PREFIX_DEFAULT(/usr)
-
- AC_PROG_LIBTOOL
-diff --git a/include/builddefs.in b/include/builddefs.in
-index 81ebfcd..5a4a0e8 100644
---- a/include/builddefs.in
-+++ b/include/builddefs.in
-@@ -20,6 +20,8 @@
- ifndef _BUILDDEFS_INCLUDED_
- _BUILDDEFS_INCLUDED_ = 1
-
-+SHELL = @SHELL@
-+
- DEBUG = @debug_build@
- OPTIMIZER = @opt_build@
- MALLOCLIB = @malloc_lib@
-diff --git a/m4/package_types.m4 b/m4/package_types.m4
-index 0a0e087..66a136a 100644
---- a/m4/package_types.m4
-+++ b/m4/package_types.m4
-@@ -9,7 +9,7 @@ AC_DEFUN([AC_TYPE_PSINT],
- #include <stddef.h>
- ], [
- __psint_t psint;
-- ], AC_DEFINE(HAVE___PSINT_T) AC_MSG_RESULT(yes) , AC_MSG_RESULT(no))
-+ ], AC_DEFINE([HAVE___PSINT_T], [1], [Define if __psint_t exists]) AC_MSG_RESULT(yes) , AC_MSG_RESULT(no))
- ])
-
- #
-@@ -23,7 +23,7 @@ AC_DEFUN([AC_TYPE_PSUNSIGNED],
- #include <stddef.h>
- ], [
- __psunsigned_t psuint;
-- ], AC_DEFINE(HAVE___PSUNSIGNED_T) AC_MSG_RESULT(yes) , AC_MSG_RESULT(no))
-+ ], AC_DEFINE([HAVE___PSUNSIGNED_T], [1], [Define if __psunsigned_t exists]) AC_MSG_RESULT(yes) , AC_MSG_RESULT(no))
- ])
-
- #
-@@ -37,7 +37,7 @@ AC_DEFUN([AC_TYPE_U32],
- #include <stddef.h>
- ], [
- __u32 u32;
-- ], AC_DEFINE(HAVE___U32) AC_MSG_RESULT(yes) , AC_MSG_RESULT(no))
-+ ], AC_DEFINE([HAVE___U32], [1], [Define if __u32 exists]) AC_MSG_RESULT(yes) , AC_MSG_RESULT(no))
- ])
-
- #
-@@ -50,15 +50,15 @@ AC_DEFUN([AC_SIZEOF_POINTERS_AND_LONG],
- AC_CHECK_SIZEOF(long, 4)
- AC_CHECK_SIZEOF(char *, 4)
- if test $ac_cv_sizeof_long -eq 4 -o $ac_cv_sizeof_long -eq 0; then
-- AC_DEFINE(HAVE_32BIT_LONG)
-+ AC_DEFINE([HAVE_32BIT_LONG], [1], [Define if long is 32bit])
- fi
- if test $ac_cv_sizeof_long -eq 8; then
-- AC_DEFINE(HAVE_64BIT_LONG)
-+ AC_DEFINE([HAVE_64BIT_LONG], [1], [Define if long is 64bit])
- fi
- if test $ac_cv_sizeof_char_p -eq 4 -o $ac_cv_sizeof_char_p -eq 0; then
-- AC_DEFINE(HAVE_32BIT_PTR)
-+ AC_DEFINE([HAVE_32BIT_PTR], [1], [Define if char* is 32bit])
- fi
- if test $ac_cv_sizeof_char_p -eq 8; then
-- AC_DEFINE(HAVE_64BIT_PTR)
-+ AC_DEFINE([HAVE_64BIT_PTR], [1], [Define if char* is 64bit])
- fi
- ])
diff --git a/package/system/utils/xfsprogs/patches/100-no_aio.patch b/package/system/utils/xfsprogs/patches/100-no_aio.patch
deleted file mode 100644
index 30d36b4da8..0000000000
--- a/package/system/utils/xfsprogs/patches/100-no_aio.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-commit e72b7bd12fdef06c3494b919376bfe886aa8bb4d
-Author: Jens Muecke <jens@nons.de>
-Date: Thu Jan 26 00:35:43 2012 +0100
-
- 100-no_aio
-
-diff --git a/configure.in b/configure.in
-index d91b6ec..8dc8b4a 100644
---- a/configure.in
-+++ b/configure.in
-@@ -92,8 +92,8 @@ AC_PACKAGE_GLOBALS(xfsprogs)
- AC_PACKAGE_UTILITIES(xfsprogs)
- AC_MULTILIB($enable_lib64)
-
--AC_PACKAGE_NEED_AIO_H
--AC_PACKAGE_NEED_LIO_LISTIO
-+librt="-lrt"
-+AC_SUBST(librt)
-
- AC_PACKAGE_NEED_UUID_H
- AC_PACKAGE_NEED_UUIDCOMPARE
diff --git a/package/system/utils/xfsprogs/patches/110-uclibc_no_ustat.patch b/package/system/utils/xfsprogs/patches/110-uclibc_no_ustat.patch
deleted file mode 100644
index c46e8025cd..0000000000
--- a/package/system/utils/xfsprogs/patches/110-uclibc_no_ustat.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-commit 7b1d0a98e779170232c0a81b4749ab934ec67a7e
-Author: Jens Muecke <jens@nons.de>
-Date: Thu Jan 26 00:36:42 2012 +0100
-
- 110-uclibc_no_ustat
-
-diff --git a/libxfs/linux.c b/libxfs/linux.c
-index 2e07d54..6a6c905 100644
---- a/libxfs/linux.c
-+++ b/libxfs/linux.c
-@@ -21,7 +21,9 @@
- #include <mntent.h>
- #include <sys/stat.h>
- #undef ustat
-+#ifndef __UCLIBC__
- #include <sys/ustat.h>
-+#endif
- #include <sys/mount.h>
- #include <sys/ioctl.h>
- #include <sys/sysinfo.h>
-@@ -49,6 +51,7 @@ static int max_block_alignment;
- int
- platform_check_ismounted(char *name, char *block, struct stat64 *s, int verbose)
- {
-+#ifndef __UCLIBC__
- /* Pad ust; pre-2.6.28 linux copies out too much in 32bit compat mode */
- struct ustat ust[2];
- struct stat64 st;
-@@ -68,6 +71,7 @@ platform_check_ismounted(char *name, char *block, struct stat64 *s, int verbose)
- progname, name);
- return 1;
- }
-+#endif
- return 0;
- }
-
diff --git a/package/system/utils/xfsprogs/patches/120-portability.patch b/package/system/utils/xfsprogs/patches/120-portability.patch
deleted file mode 100644
index 1e9b533654..0000000000
--- a/package/system/utils/xfsprogs/patches/120-portability.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-commit d2aef8b3967e53fe58178f5af50fef488ee0faed
-Author: Jens Muecke <jens@nons.de>
-Date: Thu Jan 26 00:37:52 2012 +0100
-
- 120-portability
-
-diff --git a/copy/xfs_copy.c b/copy/xfs_copy.c
-index c01e0b9..2e2f320 100644
---- a/copy/xfs_copy.c
-+++ b/copy/xfs_copy.c
-@@ -463,6 +463,15 @@ read_ag_header(int fd, xfs_agnumber_t agno, wbuf *buf, ag_header_t *ag,
- }
-
-
-+static void sig_mask(int type)
-+{
-+ sigset_t mask;
-+ sigemptyset(&mask);
-+ sigaddset(&mask, SIGCHLD);
-+ sigprocmask(type, &mask, NULL);
-+}
-+
-+
- void
- write_wbuf(void)
- {
-@@ -478,9 +487,9 @@ write_wbuf(void)
- if (target[i].state != INACTIVE)
- pthread_mutex_unlock(&targ[i].wait); /* wake up */
-
-- sigrelse(SIGCHLD);
-+ sig_mask(SIG_UNBLOCK);
- pthread_mutex_lock(&mainwait);
-- sighold(SIGCHLD);
-+ sig_mask(SIG_BLOCK);
- }
-
-
-@@ -847,7 +856,7 @@ main(int argc, char **argv)
- /* set up sigchild signal handler */
-
- signal(SIGCHLD, handler);
-- sighold(SIGCHLD);
-+ sig_mask(SIG_BLOCK);
-
- /* make children */
-
diff --git a/package/system/utils/xfsprogs/patches/130-uclibc_no_xattr.patch b/package/system/utils/xfsprogs/patches/130-uclibc_no_xattr.patch
deleted file mode 100644
index b1ecda71e5..0000000000
--- a/package/system/utils/xfsprogs/patches/130-uclibc_no_xattr.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-commit 10d6058b24f18cb31889154f830b191849f45106
-Author: Jens Muecke <jens@nons.de>
-Date: Thu Jan 26 00:38:27 2012 +0100
-
- 130-uclibc_no_xattr
-
-diff --git a/fsr/xfs_fsr.c b/fsr/xfs_fsr.c
-index 40c2e6f..4f54059 100644
---- a/fsr/xfs_fsr.c
-+++ b/fsr/xfs_fsr.c
-@@ -35,7 +35,9 @@
- #include <sys/wait.h>
- #include <sys/vfs.h>
- #include <sys/statvfs.h>
-+#ifndef __UCLIBC__
- #include <sys/xattr.h>
-+#endif
-
-
- #ifndef XFS_XFLAG_NODEFRAG
-@@ -990,6 +992,7 @@ fsr_setup_attr_fork(
- int tfd,
- xfs_bstat_t *bstatp)
- {
-+#ifndef __UCLIBC__
- struct stat64 tstatbuf;
- int i;
- int last_forkoff = 0;
-@@ -1108,6 +1111,7 @@ fsr_setup_attr_fork(
- out:
- if (dflag)
- fsrprintf(_("set temp attr\n"));
-+#endif
- return 0;
- }
-
diff --git a/package/system/utils/xfsprogs/patches/140-no_po.patch b/package/system/utils/xfsprogs/patches/140-no_po.patch
deleted file mode 100644
index f915a9cf27..0000000000
--- a/package/system/utils/xfsprogs/patches/140-no_po.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -urN xfsprogs-3.1.7/Makefile xfsprogs-3.1.7.new/Makefile
---- xfsprogs-3.1.7/Makefile 2011-11-18 00:30:24.000000000 +0100
-+++ xfsprogs-3.1.7.new/Makefile 2012-04-20 14:15:48.641722955 +0200
-@@ -41,7 +41,7 @@
-
- LIB_SUBDIRS = libxfs libxlog libxcmd libhandle libdisk
- TOOL_SUBDIRS = copy db estimate fsck fsr growfs io logprint mkfs quota \
-- mdrestore repair rtcp m4 man doc po debian
-+ mdrestore repair rtcp m4 man doc debian
-
- SUBDIRS = include $(LIB_SUBDIRS) $(TOOL_SUBDIRS)
-
-@@ -135,7 +135,6 @@
- $(Q)$(MAKE) $(MAKEOPTS) -C . $@
- else
- $(Q)$(MAKE) $(MAKEOPTS) $(SRCDIR)
-- $(Q)$(MAKE) $(MAKEOPTS) -C po
- $(Q)$(MAKE) $(MAKEOPTS) source-link
- $(Q)cd $(SRCDIR) && dpkg-buildpackage
- endif