ixp4xx: remove unmaintained target

This target is still on kernel 4.9, and it looks like there is no
active maintainer for this target anymore.
Remove the code and all the packages which are only used by this target.

To add this target to OpenWrt again port it to a recent and supported
kernel version.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This commit is contained in:
Adrian Schmutzler
2020-01-05 13:57:48 +01:00
parent 89f2deb372
commit 28fd4ac512
73 changed files with 0 additions and 11031 deletions

View File

@@ -1,62 +0,0 @@
#
# Copyright (C) 2006-2011 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=apex
PKG_VERSION:=1.6.9
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://downloads.openwrt.org/sources/
PKG_HASH:=1d2bc04c2c6bb3d2d6c1916b6dc559cda2b1ecb045d7801fd49af6af4234abeb
PKG_TARGETS:=bin
include $(INCLUDE_DIR)/package.mk
export GCC_HONOUR_COPTS=s
define Package/apex
SECTION:=boot
CATEGORY:=Boot Loaders
DEPENDS:=@TARGET_ixp4xx
DEFAULT:=y
TITLE:=Boot loader for NSLU2, FSG3, NAS100D and others
endef
define build_apex
$(MAKE) -C $(PKG_BUILD_DIR) \
ARCH=arm \
$(1)_config
$(MAKE) -C $(PKG_BUILD_DIR) \
$(TARGET_CONFIGURE_OPTS) \
KBUILD_HAVE_NLS=no \
ARCH=arm \
clean all
$(INSTALL_BIN) $(PKG_BUILD_DIR)/apex.bin $(PKG_BUILD_DIR)/out/apex-$(2).bin
endef
define Build/Compile
$(INSTALL_DIR) $(PKG_BUILD_DIR)/out
$(call build_apex,slugos-nslu2-armeb,nslu2-armeb)
$(call build_apex,slugos-nslu2-16mb-armeb,nslu2-16mb-armeb)
$(call build_apex,slugos-fsg3-armeb,fsg3-armeb)
$(call build_apex,slugos-nas100d-armeb,nas100d-armeb)
endef
define Package/apex/install
$(INSTALL_DIR) $(STAGING_DIR)/apex
$(CP) $(PKG_BUILD_DIR)/out/*.bin $(1)/
endef
define Build/InstallDev
$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
$(CP) $(PKG_BUILD_DIR)/out/*.bin $(STAGING_DIR_IMAGE)/
endef
$(eval $(call BuildPackage,apex))

View File

@@ -1,20 +0,0 @@
--- a/Makefile
+++ b/Makefile
@@ -444,7 +444,7 @@ ifeq ($(config-targets),1)
include $(srctree)/src/arch-$(SRCARCH)/Makefile
export KBUILD_DEFCONFIG
-config %config: scripts_basic outputmakefile FORCE
+%config: scripts_basic outputmakefile FORCE
$(Q)mkdir -p include/linux include/config
$(Q)$(MAKE) $(build)=scripts/kconfig $@
@@ -1585,7 +1585,7 @@ endif
$(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
# Modules
-/ %/: prepare scripts FORCE
+%/: prepare scripts FORCE
$(cmd_crmodverdir)
$(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
$(build)=$(build-dir)

View File

@@ -1,23 +0,0 @@
--- a/src/mach-ixp42x/slugos-nslu2-armeb_config
+++ b/src/mach-ixp42x/slugos-nslu2-armeb_config
@@ -19,7 +19,7 @@ CONFIG_EXPERIMENTAL=y
#
# General Setup
#
-CONFIG_TARGET_DESCRIPTION="SlugOS NSLU2 (bigendian)"
+CONFIG_TARGET_DESCRIPTION="OpenWrt NSLU2 (8MiB Flash)"
CONFIG_CROSS_COMPILE=""
CONFIG_AEABI=y
# CONFIG_DRIVER_LONG_LONG_SIZE is not set
@@ -163,9 +163,9 @@ CONFIG_ENV_REGION_KERNEL_ALT="fis://kern
# Overrides
#
CONFIG_ENV_DEFAULT_CMDLINE_OVERRIDE=y
-CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/mtdblock4 rootfstype=jffs2 console=ttyS0,115200 init=/linuxrc"
+CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/mtdblock4 rootfstype=squashfs,jffs2 console=ttyS0,115200 init=/etc/preinit noinitrd"
CONFIG_ENV_DEFAULT_CMDLINE_ALT_P=y
-CONFIG_ENV_DEFAULT_CMDLINE_ALT="root=/dev/mtdblock4 rootfstype=jffs2 console=ttyS0,115200 init=/linuxrc"
+CONFIG_ENV_DEFAULT_CMDLINE_ALT="root=/dev/mtdblock4 rootfstype=squashfs,jffs2 console=ttyS0,115200 init=/etc/preinit noinitrd"
# CONFIG_ENV_DEFAULT_STARTUP_OVERRIDE is not set
# CONFIG_ENV_DEFAULT_STARTUP_ALT_P is not set
CONFIG_USES_NOR_BOOTFLASH=y

View File

@@ -1,23 +0,0 @@
--- a/src/mach-ixp42x/slugos-nslu2-16mb-armeb_config
+++ b/src/mach-ixp42x/slugos-nslu2-16mb-armeb_config
@@ -19,7 +19,7 @@ CONFIG_EXPERIMENTAL=y
#
# General Setup
#
-CONFIG_TARGET_DESCRIPTION="SlugOS NSLU2/BE (16MiB Flash)"
+CONFIG_TARGET_DESCRIPTION="OpenWrt NSLU2 (16MiB Flash)"
CONFIG_CROSS_COMPILE=""
CONFIG_AEABI=y
# CONFIG_DRIVER_LONG_LONG_SIZE is not set
@@ -163,9 +163,9 @@ CONFIG_ENV_REGION_KERNEL_ALT="fis://kern
# Overrides
#
CONFIG_ENV_DEFAULT_CMDLINE_OVERRIDE=y
-CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/mtdblock4 rootfstype=jffs2 console=ttyS0,115200 init=/linuxrc"
+CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/mtdblock4 rootfstype=squashfs,jffs2 console=ttyS0,115200 init=/etc/preinit noinitrd"
CONFIG_ENV_DEFAULT_CMDLINE_ALT_P=y
-CONFIG_ENV_DEFAULT_CMDLINE_ALT="root=/dev/mtdblock4 rootfstype=jffs2 console=ttyS0,115200 init=/linuxrc"
+CONFIG_ENV_DEFAULT_CMDLINE_ALT="root=/dev/mtdblock4 rootfstype=squashfs,jffs2 console=ttyS0,115200 init=/etc/preinit noinitrd"
# CONFIG_ENV_DEFAULT_STARTUP_OVERRIDE is not set
# CONFIG_ENV_DEFAULT_STARTUP_ALT_P is not set
CONFIG_USES_NOR_BOOTFLASH=y

View File

@@ -1,23 +0,0 @@
--- a/src/mach-ixp42x/slugos-fsg3-armeb_config
+++ b/src/mach-ixp42x/slugos-fsg3-armeb_config
@@ -17,7 +17,7 @@ CONFIG_EXPERIMENTAL=y
#
# General Setup
#
-CONFIG_TARGET_DESCRIPTION="SlugOS FSG3/BE"
+CONFIG_TARGET_DESCRIPTION="OpenWrt FSG3"
CONFIG_CROSS_COMPILE=""
CONFIG_AEABI=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -148,9 +148,9 @@ CONFIG_ENV_REGION_KERNEL_ALT="fis://kern
# Overrides
#
CONFIG_ENV_DEFAULT_CMDLINE_OVERRIDE=y
-CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/sda1 rootdelay=10 console=ttyS0,115200"
+CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/sda1 rootdelay=10 console=ttyS0,115200 init=/etc/preinit noinitrd"
CONFIG_ENV_DEFAULT_CMDLINE_ALT_P=y
-CONFIG_ENV_DEFAULT_CMDLINE_ALT="root=/dev/sda2 rootdelay=10 console=ttyS0,115200"
+CONFIG_ENV_DEFAULT_CMDLINE_ALT="root=/dev/mtdblock2 rootfstype=squashfs console=ttyS0,115200 init=/etc/preinit noinitrd"
# CONFIG_ENV_DEFAULT_STARTUP_OVERRIDE is not set
# CONFIG_ENV_DEFAULT_STARTUP_ALT_P is not set
CONFIG_USES_NOR_BOOTFLASH=y

View File

@@ -1,22 +0,0 @@
--- a/src/mach-ixp42x/slugos-nslu2-armeb_config
+++ b/src/mach-ixp42x/slugos-nslu2-armeb_config
@@ -137,7 +137,7 @@ CONFIG_AUTOBOOT_DELAY=10
CONFIG_ENV_STARTUP_KERNEL_COPY=y
# CONFIG_ENV_REGION_KERNEL_SWAP is not set
CONFIG_ENV_STARTUP_PREFIX_P=y
-CONFIG_ENV_STARTUP_PREFIX="sdram-init; memscan -u 0+256m"
+CONFIG_ENV_STARTUP_PREFIX="sdram-init; memscan -u 0+64m"
#
# Regions
--- a/src/mach-ixp42x/slugos-nslu2-16mb-armeb_config
+++ b/src/mach-ixp42x/slugos-nslu2-16mb-armeb_config
@@ -137,7 +137,7 @@ CONFIG_AUTOBOOT_DELAY=10
CONFIG_ENV_STARTUP_KERNEL_COPY=y
# CONFIG_ENV_REGION_KERNEL_SWAP is not set
CONFIG_ENV_STARTUP_PREFIX_P=y
-CONFIG_ENV_STARTUP_PREFIX="sdram-init; memscan -u 0+256m"
+CONFIG_ENV_STARTUP_PREFIX="sdram-init; memscan -u 0+64m"
#
# Regions

View File

@@ -1,20 +0,0 @@
--- a/src/mach-ixp42x/slugos-nas100d-armeb_config
+++ b/src/mach-ixp42x/slugos-nas100d-armeb_config
@@ -19,7 +19,7 @@ CONFIG_EXPERIMENTAL=y
#
# General Setup
#
-CONFIG_TARGET_DESCRIPTION="SlugOS NAS100D/BE"
+CONFIG_TARGET_DESCRIPTION="OpenWrt NAS100D"
CONFIG_CROSS_COMPILE=""
CONFIG_AEABI=y
# CONFIG_DRIVER_LONG_LONG_SIZE is not set
@@ -158,7 +158,7 @@ CONFIG_ENV_REGION_KERNEL="fis://kernel"
# Overrides
#
CONFIG_ENV_DEFAULT_CMDLINE_OVERRIDE=y
-CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/mtdblock2 rootfstype=jffs2 console=ttyS0,115200 init=/linuxrc"
+CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/mtdblock2 rootfstype=squashfs,jffs2 console=ttyS0,115200 init=/etc/preinit noinitrd"
# CONFIG_ENV_DEFAULT_STARTUP_OVERRIDE is not set
CONFIG_USES_NOR_BOOTFLASH=y
CONFIG_RELOCATE_SIMPLE=y

View File

@@ -1,59 +0,0 @@
#
# Copyright (C) 2007 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:=ixp4xx-microcode
PKG_VERSION:=2.4
PKG_RELEASE:=2
PKG_SOURCE:=IPL_ixp400NpeLibraryWithCrypto-2_4.zip
PKG_SOURCE_URL:=http://downloads.openwrt.org/sources
PKG_HASH:=1b1170d0657847248589d946048c0aeaa9cd671966fc5bec5933283309485eaa
PKG_FLAGS:=nonshared
include $(INCLUDE_DIR)/package.mk
define Package/ixp4xx-microcode
SECTION:=net
CATEGORY:=Network
TITLE:=Microcode for the IXP4xx network engines
DEPENDS:=@TARGET_ixp4xx
endef
define Package/ixp4xx-microcode/description
This package contains the microcode needed to use the network engines in IXP4xx CPUs
endef
define Build/Prepare
rm -rf $(PKG_BUILD_DIR)
mkdir -p $(PKG_BUILD_DIR)
unzip -d $(PKG_BUILD_DIR)/ $(DL_DIR)/$(PKG_SOURCE)
mv $(PKG_BUILD_DIR)/ixp400_xscale_sw/src/npeDl/IxNpeMicrocode.c $(PKG_BUILD_DIR)/
rm -rf $(PKG_BUILD_DIR)/ixp400_xscale_sw
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
define Build/Compile
(cd $(PKG_BUILD_DIR); \
$(HOSTCC) -Wall -I$(STAGING_DIR_HOST)/include IxNpeMicrocode.c -o IxNpeMicrocode; \
./IxNpeMicrocode -be \
)
endef
define Package/ixp4xx-microcode/install
$(INSTALL_DIR) $(1)/lib/firmware
$(INSTALL_DIR) $(1)/usr/share/doc
$(INSTALL_BIN) $(PKG_BUILD_DIR)/NPE-A $(1)/lib/firmware/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/NPE-A-HSS $(1)/lib/firmware/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/NPE-B $(1)/lib/firmware/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/NPE-C $(1)/lib/firmware/
$(INSTALL_DATA) $(PKG_BUILD_DIR)/LICENSE.IPL $(1)/usr/share/doc/
endef
$(eval $(call BuildPackage,ixp4xx-microcode))

View File

@@ -1,148 +0,0 @@
/*
* IxNpeMicrocode.h - Headerfile for compiling the Intel microcode C file
*
* Copyright (C) 2006 Christian Hohnstaedt <chohnstaedt@innominate.com>
*
* This file is released under the GPLv2
*
*
* compile with
*
* gcc -Wall IxNpeMicrocode.c -o IxNpeMicrocode
*
* Executing the resulting binary on your build-host creates the
* "NPE-[ABC].xxxxxxxx" files containing the selected microcode
*
* fetch the IxNpeMicrocode.c from the Intel Access Library.
* It will include this header.
*
* select Images for every NPE from the following
* (used C++ comments for easy uncommenting ....)
*/
// #define IX_NPEDL_NPEIMAGE_NPEA_ETH_SPAN_MASK_FIREWALL_VLAN_QOS_HDR_CONV_EXTMIB
// #define IX_NPEDL_NPEIMAGE_NPEA_ETH_SPAN_VLAN_QOS_HDR_CONV_EXTMIB
// #define IX_NPEDL_NPEIMAGE_NPEA_ETH_LEARN_FILTER_SPAN_MASK_FIREWALL_VLAN_QOS_EXTMIB
// #define IX_NPEDL_NPEIMAGE_NPEA_HSS_TSLOT_SWITCH
#define IX_NPEDL_NPEIMAGE_NPEA_ETH_SPAN_FIREWALL_VLAN_QOS_HDR_CONV
// #define IX_NPEDL_NPEIMAGE_NPEA_ETH_LEARN_FILTER_SPAN_FIREWALL_VLAN_QOS
// #define IX_NPEDL_NPEIMAGE_NPEA_ETH_LEARN_FILTER_SPAN_FIREWALL
#define IX_NPEDL_NPEIMAGE_NPEA_HSS_2_PORT
// #define IX_NPEDL_NPEIMAGE_NPEA_DMA
// #define IX_NPEDL_NPEIMAGE_NPEA_ATM_MPHY_12_PORT
// #define IX_NPEDL_NPEIMAGE_NPEA_HSS0_ATM_MPHY_1_PORT
// #define IX_NPEDL_NPEIMAGE_NPEA_HSS0_ATM_SPHY_1_PORT
// #define IX_NPEDL_NPEIMAGE_NPEA_HSS0
// #define IX_NPEDL_NPEIMAGE_NPEA_WEP
// #define IX_NPEDL_NPEIMAGE_NPEB_ETH_SPAN_MASK_FIREWALL_VLAN_QOS_HDR_CONV_EXTMIB
// #define IX_NPEDL_NPEIMAGE_NPEB_ETH_SPAN_VLAN_QOS_HDR_CONV_EXTMIB
// #define IX_NPEDL_NPEIMAGE_NPEB_ETH_LEARN_FILTER_SPAN_MASK_FIREWALL_VLAN_QOS_EXTMIB
// #define IX_NPEDL_NPEIMAGE_NPEB_DMA
#define IX_NPEDL_NPEIMAGE_NPEB_ETH_SPAN_FIREWALL_VLAN_QOS_HDR_CONV
// #define IX_NPEDL_NPEIMAGE_NPEB_ETH_LEARN_FILTER_SPAN_FIREWALL_VLAN_QOS
// #define IX_NPEDL_NPEIMAGE_NPEB_ETH_LEARN_FILTER_SPAN_FIREWALL
// #define IX_NPEDL_NPEIMAGE_NPEC_ETH_SPAN_MASK_FIREWALL_VLAN_QOS_HDR_CONV_EXTMIB
// #define IX_NPEDL_NPEIMAGE_NPEC_ETH_SPAN_VLAN_QOS_HDR_CONV_EXTMIB
// #define IX_NPEDL_NPEIMAGE_NPEC_ETH_LEARN_FILTER_SPAN_MASK_FIREWALL_VLAN_QOS_EXTMIB
// #define IX_NPEDL_NPEIMAGE_NPEC_DMA
// #define IX_NPEDL_NPEIMAGE_NPEC_CRYPTO_AES_ETH_LEARN_FILTER_SPAN
// #define IX_NPEDL_NPEIMAGE_NPEC_CRYPTO_AES_ETH_LEARN_FILTER_FIREWALL
#define IX_NPEDL_NPEIMAGE_NPEC_CRYPTO_AES_CCM_ETH
// #define IX_NPEDL_NPEIMAGE_NPEC_CRYPTO_AES_CCM_EXTSHA_ETH
// #define IX_NPEDL_NPEIMAGE_NPEC_CRYPTO_ETH_LEARN_FILTER_SPAN_FIREWALL
// #define IX_NPEDL_NPEIMAGE_NPEC_ETH_SPAN_FIREWALL_VLAN_QOS_HDR_CONV
// #define IX_NPEDL_NPEIMAGE_NPEC_ETH_LEARN_FILTER_SPAN_FIREWALL_VLAN_QOS
// #define IX_NPEDL_NPEIMAGE_NPEC_ETH_LEARN_FILTER_SPAN_FIREWALL
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <endian.h>
#include <byteswap.h>
#include <string.h>
#if __BYTE_ORDER == __LITTLE_ENDIAN
#define to_le32(x) (x)
#define to_be32(x) bswap_32(x)
#else
#define to_be32(x) (x)
#define to_le32(x) bswap_32(x)
#endif
struct dl_image {
unsigned magic;
unsigned id;
unsigned size;
unsigned data[0];
};
const unsigned IxNpeMicrocode_array[];
int main(int argc, char *argv[])
{
struct dl_image *image = (struct dl_image *)IxNpeMicrocode_array;
int imgsiz, i, fd, cnt;
const unsigned *arrayptr = IxNpeMicrocode_array;
const char *names[] = { "IXP425", "IXP465", "unknown" };
int bigendian = 1;
if (argc > 1) {
if (!strcmp(argv[1], "-le"))
bigendian = 0;
else if (!strcmp(argv[1], "-be"))
bigendian = 1;
else {
printf("Usage: %s <-le|-be>\n", argv[0]);
return EXIT_FAILURE;
}
}
for (image = (struct dl_image *)arrayptr, cnt=0;
(image->id != 0xfeedf00d) && (image->magic == 0xfeedf00d);
image = (struct dl_image *)(arrayptr), cnt++)
{
unsigned char field[4];
imgsiz = image->size + 3;
*(unsigned*)field = to_be32(image->id);
char filename[40], slnk[10];
sprintf(filename, "NPE-%c.%08x", (field[0] & 0xf) + 'A',
image->id);
if (image->id == 0x00090000)
sprintf(slnk, "NPE-%c-HSS", (field[0] & 0xf) + 'A');
else
sprintf(slnk, "NPE-%c", (field[0] & 0xf) + 'A');
printf("Writing image: %s.NPE_%c Func: %2x Rev: %02x.%02x "
"Size: %5d to: '%s'\n",
names[field[0] >> 4], (field[0] & 0xf) + 'A',
field[1], field[2], field[3], imgsiz*4, filename);
fd = open(filename, O_CREAT | O_RDWR | O_TRUNC, 0644);
if (fd >= 0) {
for (i=0; i<imgsiz; i++) {
*(unsigned*)field = bigendian ?
to_be32(arrayptr[i]) :
to_le32(arrayptr[i]);
write(fd, field, sizeof(field));
}
close(fd);
unlink(slnk);
symlink(filename, slnk);
} else {
perror(filename);
}
arrayptr += imgsiz;
}
close(fd);
return 0;
}

View File

@@ -1,27 +0,0 @@
INTEL(R) SOFTWARE LICENSE AGREEMENT
Copyright (c) 2007, Intel Corporation.
All rights reserved.
Redistribution. Redistribution and use in binary form, without modification, are permitted
provided that the following conditions are met:
o Redistributions must reproduce the above copyright notice and the following disclaimer in the
documentation and/or other materials provided with the distribution.
o Neither the name of Intel Corporation nor the names of its suppliers may be used to endorse
or promote products derived from this software without specific prior written permission.
o No reverse engineering, decompilation, or disassembly of this software is permitted.
Limited patent license. Intel Corporation grants a world-wide, royalty-free, non-exclusive
license under patents it now or hereafter owns or controls to make, have made, use, import,
offer to sell and sell (.Utilize.) this software, but solely to the extent that any such patent is
necessary to Utilize the software alone. The patent license shall not apply to any combinations
which include this software. No hardware per se is licensed hereunder.
DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
OF SUCH DAMAGE.

View File

@@ -1,34 +0,0 @@
#
# Copyright (C) 2008 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=avila-wdt
PKG_RELEASE:=1
include $(INCLUDE_DIR)/package.mk
define KernelPackage/avila-wdt
SUBMENU:=Other modules
TITLE:=GPIO hardware watchdog driver for modified Avila boards
DEPENDS:=@GPIO_SUPPORT @TARGET_ixp4xx
FILES:=$(PKG_BUILD_DIR)/avila-wdt.ko
AUTOLOAD:=$(call AutoLoad,10,avila-wdt)
endef
MAKE_OPTS:= \
$(KERNEL_MAKE_FLAGS) \
SUBDIRS="$(PKG_BUILD_DIR)"
define Build/Compile
$(MAKE) -C "$(LINUX_DIR)" \
$(MAKE_OPTS) \
modules
endef
$(eval $(call KernelPackage,avila-wdt))

View File

@@ -1 +0,0 @@
obj-m := avila-wdt.o

View File

@@ -1,231 +0,0 @@
/*
* avila-wdt.c
* Copyright (C) 2009 Felix Fietkau <nbd@nbd.name>
*
* based on:
* drivers/char/watchdog/ixp4xx_wdt.c
*
* Watchdog driver for Intel IXP4xx network processors
*
* Author: Deepak Saxena <dsaxena@plexity.net>
*
* Copyright 2004 (c) MontaVista, Software, Inc.
* Based on sa1100 driver, Copyright (C) 2000 Oleg Drokin <green@crimea.edu>
*
* This file is licensed under the terms of the GNU General Public
* License version 2. This program is licensed "as is" without any
* warranty of any kind, whether express or implied.
*/
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/jiffies.h>
#include <linux/timer.h>
#include <linux/fs.h>
#include <linux/miscdevice.h>
#include <linux/watchdog.h>
#include <linux/init.h>
#include <linux/bitops.h>
#include <linux/uaccess.h>
#include <mach/hardware.h>
static int nowayout = WATCHDOG_NOWAYOUT;
static int heartbeat = 20; /* (secs) Default is 20 seconds */
static unsigned long wdt_status;
static atomic_t wdt_counter;
struct timer_list wdt_timer;
#define WDT_IN_USE 0
#define WDT_OK_TO_CLOSE 1
#define WDT_RUNNING 2
static void wdt_refresh(unsigned long data)
{
if (test_bit(WDT_RUNNING, &wdt_status)) {
if (atomic_dec_and_test(&wdt_counter)) {
printk(KERN_WARNING "Avila watchdog expired, expect a reboot soon!\n");
clear_bit(WDT_RUNNING, &wdt_status);
return;
}
}
/* strobe to the watchdog */
gpio_line_set(14, IXP4XX_GPIO_HIGH);
gpio_line_set(14, IXP4XX_GPIO_LOW);
mod_timer(&wdt_timer, jiffies + msecs_to_jiffies(500));
}
static void wdt_enable(void)
{
atomic_set(&wdt_counter, heartbeat * 2);
/* Disable clock generator output on GPIO 14/15 */
*IXP4XX_GPIO_GPCLKR &= ~(1 << 8);
/* activate GPIO 14 out */
gpio_line_config(14, IXP4XX_GPIO_OUT);
gpio_line_set(14, IXP4XX_GPIO_LOW);
if (!test_bit(WDT_RUNNING, &wdt_status))
wdt_refresh(0);
set_bit(WDT_RUNNING, &wdt_status);
}
static void wdt_disable(void)
{
/* Re-enable clock generator output on GPIO 14/15 */
*IXP4XX_GPIO_GPCLKR |= (1 << 8);
}
static int avila_wdt_open(struct inode *inode, struct file *file)
{
if (test_and_set_bit(WDT_IN_USE, &wdt_status))
return -EBUSY;
clear_bit(WDT_OK_TO_CLOSE, &wdt_status);
wdt_enable();
return nonseekable_open(inode, file);
}
static ssize_t
avila_wdt_write(struct file *file, const char *data, size_t len, loff_t *ppos)
{
if (len) {
if (!nowayout) {
size_t i;
clear_bit(WDT_OK_TO_CLOSE, &wdt_status);
for (i = 0; i != len; i++) {
char c;
if (get_user(c, data + i))
return -EFAULT;
if (c == 'V')
set_bit(WDT_OK_TO_CLOSE, &wdt_status);
}
}
wdt_enable();
}
return len;
}
static struct watchdog_info ident = {
.options = WDIOF_CARDRESET | WDIOF_MAGICCLOSE |
WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING,
.identity = "Avila Watchdog",
};
static long avila_wdt_ioctl(struct file *file, unsigned int cmd,
unsigned long arg)
{
int ret = -ENOTTY;
int time;
switch (cmd) {
case WDIOC_GETSUPPORT:
ret = copy_to_user((struct watchdog_info *)arg, &ident,
sizeof(ident)) ? -EFAULT : 0;
break;
case WDIOC_GETSTATUS:
ret = put_user(0, (int *)arg);
break;
case WDIOC_KEEPALIVE:
wdt_enable();
ret = 0;
break;
case WDIOC_SETTIMEOUT:
ret = get_user(time, (int *)arg);
if (ret)
break;
if (time <= 0 || time > 60) {
ret = -EINVAL;
break;
}
heartbeat = time;
wdt_enable();
/* Fall through */
case WDIOC_GETTIMEOUT:
ret = put_user(heartbeat, (int *)arg);
break;
}
return ret;
}
static int avila_wdt_release(struct inode *inode, struct file *file)
{
if (test_bit(WDT_OK_TO_CLOSE, &wdt_status))
wdt_disable();
else
printk(KERN_CRIT "WATCHDOG: Device closed unexpectedly - "
"timer will not stop\n");
clear_bit(WDT_IN_USE, &wdt_status);
clear_bit(WDT_OK_TO_CLOSE, &wdt_status);
return 0;
}
static const struct file_operations avila_wdt_fops = {
.owner = THIS_MODULE,
.llseek = no_llseek,
.write = avila_wdt_write,
.unlocked_ioctl = avila_wdt_ioctl,
.open = avila_wdt_open,
.release = avila_wdt_release,
};
static struct miscdevice avila_wdt_miscdev = {
.minor = WATCHDOG_MINOR + 1,
.name = "avila_watchdog",
.fops = &avila_wdt_fops,
};
static int __init avila_wdt_init(void)
{
int ret;
init_timer(&wdt_timer);
wdt_timer.expires = 0;
wdt_timer.data = 0;
wdt_timer.function = wdt_refresh;
ret = misc_register(&avila_wdt_miscdev);
if (ret == 0)
printk(KERN_INFO "Avila Watchdog Timer: heartbeat %d sec\n",
heartbeat);
return ret;
}
static void __exit avila_wdt_exit(void)
{
misc_deregister(&avila_wdt_miscdev);
del_timer(&wdt_timer);
wdt_disable();
}
module_init(avila_wdt_init);
module_exit(avila_wdt_exit);
MODULE_AUTHOR("Felix Fietkau <nbd@nbd.name>");
MODULE_DESCRIPTION("Gateworks Avila Hardware Watchdog");
module_param(heartbeat, int, 0);
MODULE_PARM_DESC(heartbeat, "Watchdog heartbeat in seconds (default 20s)");
module_param(nowayout, int, 0);
MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started");
MODULE_LICENSE("GPL");
MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);

View File

@@ -255,25 +255,6 @@ endef
$(eval $(call KernelPackage,sound-soc-imx-sgtl5000))
define KernelPackage/sound-soc-gw_avila
TITLE:=Gateworks Avila SoC sound support
KCONFIG:= \
CONFIG_SND_GW_AVILA_SOC \
CONFIG_SND_GW_AVILA_SOC_PCM \
CONFIG_SND_GW_AVILA_SOC_HSS
FILES:= \
$(LINUX_DIR)/sound/soc/codecs/snd-soc-tlv320aic3x.ko \
$(LINUX_DIR)/sound/soc/gw-avila/snd-soc-gw-avila.ko \
$(LINUX_DIR)/sound/soc/gw-avila/snd-soc-gw-avila-pcm.ko \
$(LINUX_DIR)/sound/soc/gw-avila/snd-soc-gw-avila-hss.ko
AUTOLOAD:=$(call AutoLoad,65,snd-soc-tlv320aic3x snd-soc-gw-avila snd-soc-gw-avila-pcm snd-soc-gw-avila-hss)
DEPENDS:=@TARGET_ixp4xx +kmod-sound-soc-core
$(call AddDepends/sound)
endef
$(eval $(call KernelPackage,sound-soc-gw_avila))
define KernelPackage/pcspkr
DEPENDS:=@TARGET_x86 +kmod-input-core
TITLE:=PC speaker support