resync with kamikaze

SVN-Revision: 3844
v19.07.3_mercusys_ac12_duma
Felix Fietkau 18 years ago
parent 5b05f4a5ee
commit aef3bd9e64

@ -61,3 +61,7 @@ config_get() {
config_set() {
export CONFIG_${1}_${2}="${3}"
}
load_modules() {
sed 's/^[^#]/insmod &/' $* | ash 2>&- || :
}

@ -1,4 +1,5 @@
#!/bin/sh
. /etc/functions.sh
[ -f /proc/jffs2_bbc ] && echo "S" > /proc/jffs2_bbc
vconfig set_name_type VLAN_PLUS_VID_NO_PAD
@ -16,7 +17,7 @@ for iface in $(/sbin/ifconfig -a | awk '{print $1}' | grep eth); do
/usr/bin/env -i ACTION=add INTERFACE="$iface" /sbin/hotplug net
done
sed 's/^[^#]/insmod &/' /etc/modules /etc/modules.d/* 2>&-|ash
load_modules /etc/modules /etc/modules.d/*
ifconfig lo 127.0.0.1 up
ifconfig eth0 promisc

@ -1,4 +1,5 @@
BEGIN {
print ". /etc/config/network"
print "proto=\"$wan_proto\""
print "[ -z \"$proto\" -o \"$proto\" = \"none\" ] && exit"
print "ifname=\"$wan_ifname\""

@ -7,6 +7,7 @@ config LINUX_2_6_ARUBA
select mips
select LINUX_2_6
select PCI_SUPPORT
select BIG_ENDIAN
help
Build firmware images for Aruba boards
@ -14,6 +15,7 @@ config LINUX_2_4_AR531X
bool "Atheros AR531x [2.4]"
select mips
select LINUX_2_4
select BIG_ENDIAN
help
Build firmware images for Atheros AR531x based boards
(e.g. Netgear WGT624, Linksys WRT55AG)
@ -84,6 +86,7 @@ config LINUX_2_6_ARM
config LINUX_2_6_ARMEB
bool "UNSUPPORTED big-endian arm platform"
select LINUX_2_6
select BIG_ENDIAN
select armeb
config LINUX_2_6_CRIS
@ -99,6 +102,7 @@ config LINUX_2_6_M68K
config LINUX_2_6_PPC
bool "UNSUPPORTED powerpc platform"
select LINUX_2_6
select BIG_ENDIAN
select powerpc
config LINUX_2_6_SH3
@ -109,6 +113,7 @@ config LINUX_2_6_SH3
config LINUX_2_6_SH3EB
bool "UNSUPPORTED big-endian sh3 platform"
select LINUX_2_6
select BIG_ENDIAN
select sh3eb
config LINUX_2_6_SH4
@ -119,11 +124,13 @@ config LINUX_2_6_SH4
config LINUX_2_6_SH4EB
bool "UNSUPPORTED big-endian sh4 platform"
select LINUX_2_6
select BIG_ENDIAN
select sh4eb
config LINUX_2_6_SPARC
bool "UNSUPPORTED sparc platform"
select LINUX_2_6
select BIG_ENDIAN
select sparc
endif
@ -145,6 +152,8 @@ config PCI_SUPPORT
config PCMCIA_SUPPORT
bool
config BIG_ENDIAN
bool
# Architecture selection

@ -10,6 +10,7 @@ menu "Target Root Filesystem"
bool "squashfs-lzma"
default y
depends !LINUX_2_6_ARUBA
depends !LINUX_2_6_XSCALE
help
Build a squashfs-lzma root filesystem
@ -53,6 +54,13 @@ config PACKAGE_KMOD_IMQ
help
Kernel support for the Intermediate Queueing device
config PACKAGE_KMOD_IPIP
prompt "kmod-ipip......................... IP in IP encapsulation support"
tristate
default m
help
Kernel module for IP in IP encapsulation
config PACKAGE_KMOD_IPV6
prompt "kmod-ipv6......................... IPv6 support"
tristate
@ -294,7 +302,7 @@ config PACKAGE_KMOD_IDE
- ide-core
- ide-detect
- ide-disk
- pdc202old
- pdc202xx_old
config PACKAGE_KMOD_LOOP
prompt "kmod-loop......................... Loop mount support"
@ -316,7 +324,7 @@ config PACKAGE_KMOD_CRYPTO
prompt "CryptoAPI modules"
tristate
default m
select BUSYBOX_FEATURE_CHECK_TAINTED_MODULE
select BUSYBOX_CONFIG_FEATURE_CHECK_TAINTED_MODULE
help
Kernel modules for cryptographic algorithms

@ -84,3 +84,5 @@ $(eval $(call kernel_template,2.6,x86,2_6_X86))
$(eval $(call kernel_template,2.4,ar531x,2_4_AR531X))
$(eval $(call kernel_template,2.6,aruba,2_6_ARUBA))
$(eval $(call kernel_template,2.6,au1000,2_6_AU1000))
$(eval $(call kernel_template,2.6,xscale,2_6_XSCALE))
$(eval $(call kernel_template,2.6,sibyte,2_6_SIBYTE))

@ -1,8 +1,8 @@
include $(TOPDIR)/rules.mk
LINUX_VERSION:=2.6.16.4
LINUX_VERSION:=2.6.16.7
LINUX_RELEASE:=1
LINUX_KERNEL_MD5SUM:=cb675279c9711237a06ebb8379a4da27
LINUX_KERNEL_MD5SUM:=9682b2bd6e02f3087982d7c3f5ba824e
include ../rules.mk
include ./config

@ -45,7 +45,7 @@ diff -Nur linux-2.6.16/arch/mips/aruba/Makefile linux-2.6.16-owrt/arch/mips/arub
+# .S.o:
+# $(CC) $(CFLAGS) -c $< -o $*.o
+
+obj-y := prom.o setup.o idtIRQ.o irq.o time.o flash_lock.o wdt_merlot.o
+obj-y := prom.o setup.o idtIRQ.o irq.o time.o flash_lock.o
+obj-$(CONFIG_SERIAL_8250) += serial.o
+
+subdir-y += nvram
@ -823,6 +823,7 @@ diff -Nur linux-2.6.16/arch/mips/aruba/setup.c linux-2.6.16-owrt/arch/mips/aruba
+ */
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/mm.h>
+#include <linux/sched.h>
+#include <linux/irq.h>
@ -872,7 +873,6 @@ diff -Nur linux-2.6.16/arch/mips/aruba/setup.c linux-2.6.16-owrt/arch/mips/aruba
+
+extern char * getenv(char *e);
+extern void unlock_ap60_70_flash(void);
+extern void wdt_merlot_disable(void);
+
+void __init plat_setup(void)
+{
@ -895,8 +895,6 @@ diff -Nur linux-2.6.16/arch/mips/aruba/setup.c linux-2.6.16-owrt/arch/mips/aruba
+
+ printk("BOARD - %s\n",getenv("boardname"));
+
+ wdt_merlot_disable();
+
+ return 0;
+}
+
@ -909,6 +907,8 @@ diff -Nur linux-2.6.16/arch/mips/aruba/setup.c linux-2.6.16-owrt/arch/mips/aruba
+{
+ return "MIPS IDT32434 - ARUBA";
+}
+
+EXPORT_SYMBOL(get_system_type);
diff -Nur linux-2.6.16/arch/mips/aruba/time.c linux-2.6.16-owrt/arch/mips/aruba/time.c
--- linux-2.6.16/arch/mips/aruba/time.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.16-owrt/arch/mips/aruba/time.c 2006-03-20 14:25:10.000000000 +0100
@ -1021,40 +1021,6 @@ diff -Nur linux-2.6.16/arch/mips/aruba/time.c linux-2.6.16-owrt/arch/mips/aruba/
+ timer_interrupt(irq, NULL, regs);
+ irq_exit();
+}
diff -Nur linux-2.6.16/arch/mips/aruba/wdt_merlot.c linux-2.6.16-owrt/arch/mips/aruba/wdt_merlot.c
--- linux-2.6.16/arch/mips/aruba/wdt_merlot.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.16-owrt/arch/mips/aruba/wdt_merlot.c 2006-03-20 14:25:10.000000000 +0100
@@ -0,0 +1,30 @@
+#include <linux/config.h>
+#include <linux/kernel.h>
+#include <asm/bootinfo.h>
+
+void wdt_merlot_disable()
+{
+ volatile __u32 *wdt_errcs;
+ volatile __u32 *wdt_wtc;
+ volatile __u32 *wdt_ctl;
+ volatile __u32 val;
+
+ switch (mips_machtype) {
+ case MACH_ARUBA_AP70:
+ wdt_errcs = (__u32 *) 0xb8030030;
+ wdt_wtc = (__u32 *) 0xb803003c;
+ val = *wdt_errcs;
+ val &= ~0x201;
+ *wdt_errcs = val;
+ val = *wdt_wtc;
+ val &= ~0x1;
+ *wdt_wtc = val;
+ break;
+ case MACH_ARUBA_AP65:
+ case MACH_ARUBA_AP60:
+ default:
+ wdt_ctl = (__u32 *) 0xbc003008;
+ *wdt_ctl = 0;
+ break;
+ }
+}
diff -Nur linux-2.6.16/arch/mips/Kconfig linux-2.6.16-owrt/arch/mips/Kconfig
--- linux-2.6.16/arch/mips/Kconfig 2006-03-20 06:53:29.000000000 +0100
+++ linux-2.6.16-owrt/arch/mips/Kconfig 2006-03-20 14:25:10.000000000 +0100

@ -0,0 +1,126 @@
diff -Nur linux-2.6.15.1/drivers/char/watchdog/wdt_merlot.c linux-2.6.15.1-openwrt/drivers/char/watchdog/wdt_merlot.c
--- linux-2.6.15.1/drivers/char/watchdog/wdt_merlot.c 2006-01-26 21:14:02.204626250 -0800
+++ linux-2.6.15.1-openwrt/drivers/char/watchdog/wdt_merlot.c 2006-02-02 20:31:43.000000000 -0800
@@ -0,0 +1,110 @@
+#include <linux/config.h>
+#include <linux/module.h>
+#include <linux/types.h>
+#include <linux/miscdevice.h>
+#include <linux/watchdog.h>
+#include <linux/fs.h>
+
+#include <asm/io.h>
+#include <asm/uaccess.h>
+#include <asm/system.h>
+#include <asm/bootinfo.h>
+
+extern unsigned long mips_machtype;
+
+static unsigned long wdt_is_open;
+static struct timer_list wdt_timer;
+
+static void wdt_merlot_refresh(void)
+{
+ volatile __u32 *wdt;
+ switch (mips_machtype) {
+ case MACH_ARUBA_AP70:
+ wdt = (__u32 *) 0xb8030034;
+ *wdt = 0x10000000;
+ break;
+ default:
+ wdt = (__u32 *) 0xbc00300c;
+ *wdt = 0x40000000;
+ break;
+ }
+}
+
+static void wdt_merlot_timer_fn(unsigned long data)
+{
+ wdt_merlot_refresh();
+ if (!test_bit(1, &wdt_is_open))
+ mod_timer(&wdt_timer, jiffies + HZ);
+}
+
+static int wdt_merlot_setup_timer(void)
+{
+
+ init_timer(&wdt_timer);
+ wdt_timer.function = wdt_merlot_timer_fn;
+ wdt_timer.data = 0;
+ wdt_timer.expires = jiffies + HZ;
+ add_timer(&wdt_timer);
+ return 0;
+}
+
+static int wdt_open(struct inode *inode, struct file *file)
+{
+ if (test_and_set_bit(0, &wdt_is_open))
+ return -EBUSY;
+ set_bit(1, &wdt_is_open);
+ return nonseekable_open(inode, file);
+}
+
+static ssize_t wdt_write(struct file *file, const char __user * buf, size_t count, loff_t * ppos)
+{
+ if (count) /* something was written */
+ wdt_merlot_refresh();
+ return count;
+}
+
+static int wdt_release(struct inode *inode, struct file *file)
+{
+ clear_bit(0, &wdt_is_open);
+ return 0;
+}
+
+static struct file_operations wdt_fops = {
+ .owner = THIS_MODULE,
+ .llseek = no_llseek,
+ .write = wdt_write,
+ .open = wdt_open,
+ .release = wdt_release,
+};
+
+static struct miscdevice wdt_miscdev = {
+ .minor = WATCHDOG_MINOR,
+ .name = "watchdog",
+ .fops = &wdt_fops,
+};
+
+static void __exit wdt_exit(void)
+{
+ misc_deregister(&wdt_miscdev);
+}
+
+static int __init wdt_init(void)
+{
+ int ret;
+ ret = misc_register(&wdt_miscdev);
+ if (ret) {
+ printk(KERN_ERR
+ "wdt: cannot register miscdev on minor=%d (err=%d)\n",
+ WATCHDOG_MINOR, ret);
+ misc_deregister(&wdt_miscdev);
+ goto out;
+ }
+ printk("wdt: registered with refresh\n");
+ wdt_merlot_refresh();
+ wdt_merlot_setup_timer();
+ out:
+ return ret;
+}
+
+module_init(wdt_init);
+module_exit(wdt_exit);
diff -Nur linux-2.6.15.3/drivers/char/watchdog/Makefile linux-2.6.15.3-openwrt/drivers/char/watchdog/Makefile
--- linux-2.6.15.3/drivers/char/watchdog/Makefile 2006-02-22 10:04:18.596278000 -0800
+++ linux-2.6.15.3-openwrt/drivers/char/watchdog/Makefile 2006-02-22 10:06:21.400960000 -0800
@@ -71,5 +71,8 @@
# SPARC64 Architecture
+# Aruba Architecture
+obj-$(CONFIG_MACH_ARUBA) += wdt_merlot.o
+
# Architecture Independant
obj-$(CONFIG_SOFT_WATCHDOG) += softdog.o

@ -1,8 +1,8 @@
include $(TOPDIR)/rules.mk
LINUX_VERSION:=2.6.16.4
LINUX_VERSION:=2.6.16.7
LINUX_RELEASE:=1
LINUX_KERNEL_MD5SUM:=cb675279c9711237a06ebb8379a4da27
LINUX_KERNEL_MD5SUM:=9682b2bd6e02f3087982d7c3f5ba824e
include ../rules.mk
include ./config
@ -17,9 +17,10 @@ $(LINUX_DIR)/.patched: $(LINUX_DIR)/.unpacked
@$(CP) config $(LINUX_DIR)/.config
touch $@
$(LINUX_BUILD_DIR)/bzImage: $(LINUX_DIR)/vmlinux
$(MAKE) -C $(LINUX_DIR) V=1 CROSS_COMPILE=$(TARGET_CROSS) ARCH=$(LINUX_KARCH) PATH=$(TARGET_PATH) bzImage
$(CP) $(LINUX_DIR)/vmlinux $@
$(LINUX_BUILD_DIR)/zImage.flash.srec: $(LINUX_DIR)/arch/mips/boot/compressed/images/zImage.flash.srec $(LINUX_DIR)/arch/mips/boot/compressed/images/zImage.srec
$(MAKE) -C $(LINUX_DIR) V=1 CROSS_COMPILE=$(TARGET_CROSS) ARCH=$(LINUX_KARCH) PATH=$(TARGET_PATH) zImage.flash
$(CP) $(LINUX_DIR)/arch/mips/boot/compressed/images/zImage.flash.srec $(LINUX_DIR)/zImage.flash.srec
$(CP) $(LINUX_DIR)/arch/mips/boot/compressed/images/zImage.srec $(LINUX_DIR)/zImage.srec
touch $@
compile: $(LINUX_DIR)/vmlinux

File diff suppressed because it is too large Load Diff

@ -0,0 +1,16 @@
diff -urN linux-2.6.16.7/drivers/mtd/maps/alchemy-flash.c linux-2.6.16.7.new/drivers/mtd/maps/alchemy-flash.c
--- linux-2.6.16.7/drivers/mtd/maps/alchemy-flash.c 2006-04-17 23:53:25.000000000 +0200
+++ linux-2.6.16.7.new/drivers/mtd/maps/alchemy-flash.c 2006-04-20 19:16:26.000000000 +0200
@@ -105,6 +105,12 @@
#define USE_LOCAL_ACCESSORS /* why? */
#endif
+#ifdef CONFIG_MIPS_MTX1
+#define BOARD_MAP_NAME "MTX-1 Flash"
+#define BOARD_FLASH_SIZE 0x04000000 /* 64MB */
+#define BOARD_FLASH_WIDTH 4 /* 32-bits */
+#endif
+
static struct map_info alchemy_map = {
.name = BOARD_MAP_NAME,
};

File diff suppressed because it is too large Load Diff

@ -0,0 +1,279 @@
diff -urN linux-2.6.16.7/drivers/char/watchdog/Kconfig linux-2.6.16.7.new/drivers/char/watchdog/Kconfig
--- linux-2.6.16.7/drivers/char/watchdog/Kconfig 2006-04-17 23:53:25.000000000 +0200
+++ linux-2.6.16.7.new/drivers/char/watchdog/Kconfig 2006-04-22 23:23:53.000000000 +0200
@@ -460,6 +460,14 @@
timer expired and no process has written to /dev/watchdog during
that time.
+config MTX1_WATCHDOG
+ tristate "MTX-1 Hardware Watchdog"
+ depends on WATCHDOG && MIPS_MTX1
+ help
+ Hardware driver for the AccessCube MTX-1 watchdog. This is a
+ watchdog timer that will reboot the machine after a 100 seconds
+ timer expired.
+
# S390 Architecture
config ZVM_WATCHDOG
diff -urN linux-2.6.16.7/drivers/char/watchdog/Makefile linux-2.6.16.7.new/drivers/char/watchdog/Makefile
--- linux-2.6.16.7/drivers/char/watchdog/Makefile 2006-04-17 23:53:25.000000000 +0200
+++ linux-2.6.16.7.new/drivers/char/watchdog/Makefile 2006-04-22 23:21:18.000000000 +0200
@@ -65,6 +65,7 @@
# MIPS Architecture
obj-$(CONFIG_INDYDOG) += indydog.o
+obj-$(CONFIG_MTX1_WATCHDOG) += mtx-1_watchdog.o
# S390 Architecture
diff -urN linux-2.6.16.7/drivers/char/watchdog/mtx-1_watchdog.c linux-2.6.16.7.new/drivers/char/watchdog/mtx-1_watchdog.c
--- linux-2.6.16.7/drivers/char/watchdog/mtx-1_watchdog.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.16.7.new/drivers/char/watchdog/mtx-1_watchdog.c 2006-04-22 23:20:53.000000000 +0200
@@ -0,0 +1,246 @@
+/*
+ * Driver for the MTX-1 Watchdog.
+ *
+ * (c) Copyright 2005 4G Systems <info@4g-systems.biz>, All Rights Reserved.
+ * http://www.4g-systems.biz
+ *
+ * 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.
+ *
+ * Neither Michael Stickel nor 4G Systems admit liability nor provide
+ * warranty for any of this software. This material is provided
+ * "AS-IS" and at no charge.
+ *
+ * (c) Copyright 2005 4G Systems <info@4g-systems.biz>
+ *
+ * Release 0.01.
+ *
+ * Author: Michael Stickel michael.stickel@4g-systems.biz
+ *
+ *
+ * The Watchdog is configured to reset the MTX-1
+ * if it is not triggered for 100 seconds.
+ * It should not be triggered more often than 1.6 seconds.
+ *
+ * A timer triggers the watchdog every 5 seconds, until
+ * it is opened for the first time. After the first open
+ * it MUST be triggered every 2..95 seconds.
+ */
+#include <linux/config.h>
+#include <linux/module.h>
+#include <linux/version.h>
+#include <linux/types.h>
+#include <linux/errno.h>
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/miscdevice.h>
+#include <linux/watchdog.h>
+#include <linux/slab.h>
+#include <linux/init.h>
+#include <asm/uaccess.h>
+#include <linux/fs.h>
+
+#include <asm/mach-au1x00/au1000.h>
+
+#ifndef FALSE
+# define FALSE (0)
+#endif
+
+#ifndef TRUE
+# define TRUE (!FALSE)
+#endif
+
+
+//---------[ Hardware Functions ]-----------------
+
+static void mtx1_trigger_wd (void)
+{
+ /*
+ * toggle GPIO2_15
+ */
+
+ u32 tmp = au_readl(GPIO2_DIR);
+ tmp = (tmp & ~(1<<15)) | ((~tmp) & (1<<15));
+ au_writel (tmp, GPIO2_DIR);
+}
+
+static void mtx1_enable_wd (void)
+{
+ au_writel (au_readl(GPIO2_DIR) | (u32)(1<<15), GPIO2_DIR);
+}
+
+static void mtx1_disable_wd (void)
+{
+ au_writel (au_readl(GPIO2_DIR) & ~((u32)(1<<15)), GPIO2_DIR);
+}
+
+
+//---------[ Timer Functions ]-----------------
+
+static struct timer_list wd_trigger_timer;
+static char timer_is_running = FALSE;
+
+static void wd_timer_callback (unsigned long data)
+{
+ if (timer_is_running)
+ mod_timer (&wd_trigger_timer, jiffies + 5 * HZ);
+ mtx1_trigger_wd();
+}
+
+static void start_wd_timer (void)
+{
+ if (!timer_is_running) {
+ struct timer_list *t = &wd_trigger_timer;
+
+ init_timer (t);
+ t->function = wd_timer_callback;
+ t->data = (unsigned long)0L;
+ t->expires = jiffies + 5 * HZ; // 5 seconds.
+ add_timer (t);
+ timer_is_running = TRUE;
+ }
+}
+
+
+
+static void stop_wd_timer (void)
+{
+ if (timer_is_running) {
+ del_timer(&wd_trigger_timer);
+ timer_is_running = FALSE;
+ }
+}
+
+
+//---------[ File Functions ]-----------------
+
+static char restart_after_close;
+
+static int mtx1wd_open (struct inode *inode, struct file *file)
+{
+ if (MINOR(inode->i_rdev) != WATCHDOG_MINOR) return -ENODEV;
+ //MOD_INC_USE_COUNT;
+
+ // stop the timer, if it is running. It will not be
+ // started again, until the module is loaded again.
+ stop_wd_timer();
+
+ // sleep for 2 seconds, to ensure, that the wd is
+ // not triggered more often than every 2 seconds.
+ schedule_timeout (2 * HZ);
+
+ return 0;
+}
+
+
+static int mtx1wd_release (struct inode *inode, struct file *file) {
+ if (MINOR(inode->i_rdev)==WATCHDOG_MINOR) {
+ }
+ if (restart_after_close)
+ start_wd_timer();
+ //MOD_DEC_USE_COUNT;
+ return 0;
+}
+
+
+static ssize_t mtx1wd_write (struct file *file, const char *buf, size_t count, loff_t *ppos) {
+
+ mtx1_trigger_wd ();
+
+ if (count > 0) {
+ char buffer[10];
+ int n = (count>9)?9:count;
+
+ if (copy_from_user (&buffer, buf, n))
+ return -EFAULT;
+ buffer[n]=0;
+
+ if (count >= 4 && strncmp("auto", buffer, 4)==0)
+ restart_after_close = 1;
+
+ else if (count >= 6 && strncmp("manual", buffer, 6)==0)
+ restart_after_close = 0;
+
+ return n;
+ }
+
+ return 0;
+}
+
+static ssize_t mtx1wd_read (struct file *file, char *buf, size_t count, loff_t *ppos)
+{
+ char * state = restart_after_close ? "auto\n" : "manual\n";
+ int n = strlen(state)+1;
+
+ if (file->f_pos >= n)
+ return 0;
+
+ if (count < n)
+ return -EINVAL;
+
+ if(copy_to_user(buf, state, n))
+ return -EFAULT;
+
+ file->f_pos += n;
+
+ return n;
+}
+
+static struct file_operations mtx1wd_fops = {
+ .owner = THIS_MODULE,
+ .read = mtx1wd_read,
+ .write = mtx1wd_write,
+ .open = mtx1wd_open,
+ .release = mtx1wd_release
+};
+
+
+static struct miscdevice mtx1wd_miscdev = {
+ WATCHDOG_MINOR,
+ "watchdog",
+ &mtx1wd_fops
+};
+
+
+
+//---------[ Module Functions ]-----------------
+
+
+static int __init init_mtx1_watchdog(void)
+{
+ printk("MTX-1 watchdog driver\n");
+
+ misc_register(&mtx1wd_miscdev);
+
+ restart_after_close = 0;
+
+ mtx1_enable_wd ();
+
+ //-- trigger it for the first time.
+ //-- We do not exactly know how long it has not been triggered.
+ mtx1_trigger_wd ();
+
+ // start a timer, that calls mtx1_trigger_wd every 5 seconds.
+ start_wd_timer();
+
+ return 0;
+}
+
+static void __exit exit_mtx1_watchdog(void) {
+
+ // stop the timer, if it is running.
+ stop_wd_timer();
+
+ misc_deregister(&mtx1wd_miscdev);
+
+ mtx1_disable_wd();
+}
+
+module_init(init_mtx1_watchdog);
+module_exit(exit_mtx1_watchdog);
+
+MODULE_AUTHOR("Michael Stickel");
+MODULE_DESCRIPTION("Driver for the MTX-1 watchdog");
+MODULE_LICENSE("GPL");

@ -0,0 +1,24 @@
diff -urN linux-2.6.16.7/drivers/net/au1000_eth.c linux-2.6.16.7.new/drivers/net/au1000_eth.c
--- linux-2.6.16.7/drivers/net/au1000_eth.c 2006-04-17 23:53:25.000000000 +0200
+++ linux-2.6.16.7.new/drivers/net/au1000_eth.c 2006-04-23 01:42:48.000000000 +0200
@@ -12,6 +12,9 @@
* Author: MontaVista Software, Inc.
* ppopov@mvista.com or source@mvista.com
*
+ * Bjoern Riemer 2004
+ * riemer@fokus.fraunhofer.de or riemer@riemer-nt.de
+ * // fixed the link beat detection with ioctls (SIOCGMIIPHY)
* ########################################################################
*
* This program is free software; you can distribute it and/or modify it
@@ -1672,6 +1675,10 @@
aup->phy_ops->phy_status(dev, aup->phy_addr, &link, &speed);
control = MAC_DISABLE_RX_OWN | MAC_RX_ENABLE | MAC_TX_ENABLE;
#ifndef CONFIG_CPU_LITTLE_ENDIAN
+ /*riemer: fix for startup without cable */
+ if (!link)
+ dev->flags &= ~IFF_RUNNING;
+
control |= MAC_BIG_ENDIAN;
#endif
if (link && (dev->if_port == IF_PORT_100BASEFX)) {

@ -0,0 +1,241 @@
diff -urN linux-2.6.16.7/arch/mips/au1000/mtx-1/irqmap.c linux-2.6.16.7.new/arch/mips/au1000/mtx-1/irqmap.c
--- linux-2.6.16.7/arch/mips/au1000/mtx-1/irqmap.c 2006-04-17 23:53:25.000000000 +0200
+++ linux-2.6.16.7.new/arch/mips/au1000/mtx-1/irqmap.c 2006-04-23 11:54:31.000000000 +0200
@@ -64,6 +64,7 @@
{ AU1500_GPIO_202, INTC_INT_LOW_LEVEL, 0 },
{ AU1500_GPIO_203, INTC_INT_LOW_LEVEL, 0 },
{ AU1500_GPIO_205, INTC_INT_LOW_LEVEL, 0 },
+ { AU1500_GPIO_207, INTC_INT_RISE_AND_FALL_EDGE, 0 },
};
int au1xxx_nr_irqs = sizeof(au1xxx_irq_map)/sizeof(au1xxx_irq_map_t);
diff -urN linux-2.6.16.7/arch/mips/au1000/mtx-1/Makefile linux-2.6.16.7.new/arch/mips/au1000/mtx-1/Makefile
--- linux-2.6.16.7/arch/mips/au1000/mtx-1/Makefile 2006-04-17 23:53:25.000000000 +0200
+++ linux-2.6.16.7.new/arch/mips/au1000/mtx-1/Makefile 2006-04-23 14:01:36.000000000 +0200
@@ -8,3 +8,4 @@
#
lib-y := init.o board_setup.o irqmap.o
+obj-y := mtx-1_sysbtn.o
diff -urN linux-2.6.16.7/arch/mips/au1000/mtx-1/mtx-1_sysbtn.c linux-2.6.16.7.new/arch/mips/au1000/mtx-1/mtx-1_sysbtn.c
--- linux-2.6.16.7/arch/mips/au1000/mtx-1/mtx-1_sysbtn.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.16.7.new/arch/mips/au1000/mtx-1/mtx-1_sysbtn.c 2006-04-23 14:01:17.000000000 +0200
@@ -0,0 +1,218 @@
+/*
+ * Driver for the MTX-1 System Button.
+ *
+ * (c) Copyright 2005 4G Systems <info@4g-systems.biz>, All Rights Reserved.
+ * http://www.4g-systems.biz
+ *
+ * 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.
+ *
+ * Neither Michael Stickel nor 4G Systeme GmbH admit liability nor provide
+ * warranty for any of this software. This material is provided
+ * "AS-IS" and at no charge.
+ *
+ * (c) Copyright 2005 4G Systems <info@4g-systems.biz>
+ *
+ * Release 0.01.
+ *
+ * Author: Michael Stickel michael.stickel@4g-systems.biz
+ *
+ *
+ * After the module is loaded there is a device /dev/misc/btn
+ * that can be read. It returns one char '1' if the button
+ * has been pressed an '0' if it has been released.
+ */
+#include <linux/config.h>
+#include <linux/module.h>
+#include <linux/version.h>
+#include <linux/types.h>
+#include <linux/errno.h>
+#include <linux/kernel.h>
+#include <linux/poll.h>
+#include <linux/sched.h>
+#include <linux/miscdevice.h>
+#include <linux/slab.h>
+#include <linux/init.h>
+#include <linux/irq.h>
+#include <linux/interrupt.h>
+
+#include <asm/uaccess.h>
+
+#include <asm/mach-au1x00/au1000.h>
+
+
+#ifndef FALSE
+# define FALSE (0)
+#endif
+
+#ifndef TRUE
+# define TRUE (!FALSE)
+#endif
+
+
+//---------[ declarations ]-----------------
+
+
+static DECLARE_WAIT_QUEUE_HEAD(mtx1btn_wait_queue);
+static char state_changed;
+static char last_value;
+static char is_inuse;
+
+
+//---------[ Hardware Functions ]-----------------
+
+// The MTX-1 Button is attached to GPIO207.
+#define MTX1_GPIO2_SYSBTN (7)
+#define MTX1_SYSBTN_IRQ (AU1500_GPIO_207)
+
+
+static char mtx1_getbtn (int btnno)
+{
+ if (btnno==0) {
+ return (au_readl(GPIO2_PINSTATE) & (1<<MTX1_GPIO2_SYSBTN)) ? 0 : 1;
+ }
+ return 0;
+}
+
+static void mtx1_initbuttons (void)
+{
+ au_writel (au_readl(GPIO2_DIR) & ~(1<<MTX1_GPIO2_SYSBTN), GPIO2_DIR);
+}
+
+
+//---------[ Interrupt handling ]-----------------
+
+
+static void mtx1_btn_interrupt (int irq, void *private, struct pt_regs *regs)
+{
+ char value = mtx1_getbtn(0);
+ if (last_value != value)
+ {
+ last_value = value;
+ state_changed = 1;
+ wake_up (&mtx1btn_wait_queue);
+ }
+// kill_fasync(&async_queue, SIGIO, POLL_OUT);
+}
+
+
+static int mtx1_btn_startirq (void)
+{
+ if (!request_irq (MTX1_SYSBTN_IRQ, mtx1_btn_interrupt, 0 /* | SA_INTERRUPT */, "mtx1btn", (void *)&state_changed)) {
+ return 0;
+ }
+ return -1;
+}
+
+static int mtx1_btn_stopirq (void)
+{
+ free_irq(MTX1_SYSBTN_IRQ, (void *)&state_changed);
+ return 0;
+}
+
+
+
+//---------[ File Functions ]-----------------
+
+
+static int mtx1sysbtn_minor = -1;
+
+
+static int mtx1sysbtn_open (struct inode *inode, struct file *file)
+{
+ if (MINOR(inode->i_rdev)!=mtx1sysbtn_minor) return -ENODEV;
+ if (is_inuse) return -EBUSY;
+ is_inuse=1;
+ last_value = mtx1_getbtn(0);
+ state_changed = 0;
+ return 0;
+}
+
+
+static int mtx1sysbtn_release (struct inode *inode, struct file *file) {
+ if (MINOR(inode->i_rdev)==mtx1sysbtn_minor) {
+ is_inuse=0;
+ }
+ return 0;
+}
+
+
+static ssize_t mtx1sysbtn_read (struct file *file, char *buf, size_t count, loff_t *ppos)
+{
+ if (count < 1)
+ return -EINVAL;
+ if (!state_changed)
+ interruptible_sleep_on (&mtx1btn_wait_queue);
+ state_changed = 0;
+ char c = last_value ? '1' : '0'; /* mtx1_getbtn(0) */
+ if(copy_to_user(buf, &c, 1))
+ return -EFAULT;
+ return 1;
+}
+
+
+static unsigned int mtx1sysbtn_poll (struct file *file, poll_table * wait)
+{
+ unsigned int mask = 0;
+
+ poll_wait (file, &mtx1btn_wait_queue, wait);
+
+ if (state_changed) // state changed since last time.
+ mask |= POLLIN | POLLRDNORM;
+
+ return mask;
+}
+
+
+static struct file_operations mtx1sysbtn_fops = {
+ .owner = THIS_MODULE,
+ .read = mtx1sysbtn_read,
+ .poll = mtx1sysbtn_poll,
+ .open = mtx1sysbtn_open,
+ .release = mtx1sysbtn_release
+};
+
+
+static struct miscdevice mtx1sysbtn_miscdev = {
+ MISC_DYNAMIC_MINOR /* SYSBTN_MINOR */ ,
+ "btn",
+ &mtx1sysbtn_fops
+};
+
+
+
+//---------[ Module Functions ]-----------------
+
+
+void __exit exit_mtx1_sysbtn (void)
+{
+ is_inuse = 1;
+ mtx1_btn_stopirq ();
+ misc_deregister(&mtx1sysbtn_miscdev);
+}
+
+
+static int __init init_mtx1_sysbtn (void)
+{
+ printk("MTX-1 System Button driver\n");
+ is_inuse = 1;
+ mtx1_initbuttons ();
+ if (misc_register (&mtx1sysbtn_miscdev) >= 0) {
+ mtx1sysbtn_minor = mtx1sysbtn_miscdev.minor;
+ if (mtx1_btn_startirq () == 0) {
+ is_inuse=0;
+ return 0;
+ }
+ misc_deregister(&mtx1sysbtn_miscdev);
+ }
+ return 1;
+}
+
+module_init(init_mtx1_sysbtn);
+module_exit(exit_mtx1_sysbtn);
+
+MODULE_AUTHOR("Michael Stickel");
+MODULE_DESCRIPTION("Driver for the MTX-1 system button");
+MODULE_LICENSE("GPL");

@ -0,0 +1,13 @@
--- linux-2.6.16.7/arch/mips/au1000/mtx-1/board_setup.c 2006-04-17 23:53:25.000000000 +0200
+++ linux-2.6.16.7.new/arch/mips/au1000/mtx-1/board_setup.c 2006-04-23 14:35:42.000000000 +0200
@@ -71,9 +71,7 @@
#endif
// initialize sys_pinfunc:
- // disable second ethernet port (SYS_PF_NI2)
- // set U3/GPIO23 to GPIO23 (SYS_PF_U3)
- au_writel( SYS_PF_NI2 | SYS_PF_U3, SYS_PINFUNC );
+ au_writel( SYS_PF_NI2, SYS_PINFUNC );
// initialize GPIO
au_writel( 0xFFFFFFFF, SYS_TRIOUTCLR );

@ -0,0 +1,63 @@
diff -urN linux-2.6.16.7/arch/mips/au1000/mtx-1/board_setup.c linux-2.6.16.7.new/arch/mips/au1000/mtx-1/board_setup.c
--- linux-2.6.16.7/arch/mips/au1000/mtx-1/board_setup.c 2006-04-23 14:39:21.000000000 +0200
+++ linux-2.6.16.7.new/arch/mips/au1000/mtx-1/board_setup.c 2006-04-23 14:39:03.000000000 +0200
@@ -44,6 +44,9 @@
#include <asm/pgtable.h>
#include <asm/mach-au1x00/au1000.h>
+extern int (*board_pci_idsel)(unsigned int devsel, int assert);
+int mtx1_pci_idsel(unsigned int devsel, int assert);
+
void board_reset (void)
{
/* Hit BCSR.SYSTEM_CONTROL[SW_RST] */
@@ -77,11 +80,37 @@
au_writel( 0xFFFFFFFF, SYS_TRIOUTCLR );
au_writel( 0x00000001, SYS_OUTPUTCLR ); // set M66EN (PCI 66MHz) to OFF
au_writel( 0x00000008, SYS_OUTPUTSET ); // set PCI CLKRUN# to OFF
+ au_writel( 0x00000002, SYS_OUTPUTSET ); // set EXT_IO3 ON
au_writel( 0x00000020, SYS_OUTPUTCLR ); // set eth PHY TX_ER to OFF
// enable LED and set it to green
au_writel( au_readl(GPIO2_DIR) | 0x1800, GPIO2_DIR );
au_writel( 0x18000800, GPIO2_OUTPUT );
+ board_pci_idsel = mtx1_pci_idsel;
+
printk("4G Systems MTX-1 Board\n");
}
+
+int
+mtx1_pci_idsel(unsigned int devsel, int assert)
+{
+#define MTX_IDSEL_ONLY_0_AND_3 0
+#if MTX_IDSEL_ONLY_0_AND_3
+ if (devsel != 0 && devsel != 3) {
+ printk("*** not 0 or 3\n");
+ return 0;
+ }
+#endif
+
+ if (assert && devsel != 0) {
+ // supress signal to cardbus
+ au_writel( 0x00000002, SYS_OUTPUTCLR ); // set EXT_IO3 OFF
+ }
+ else {
+ au_writel( 0x00000002, SYS_OUTPUTSET ); // set EXT_IO3 ON
+ }
+ au_sync_udelay(1);
+ return 1;
+}
+
diff -urN linux-2.6.16.7/arch/mips/au1000/mtx-1/irqmap.c linux-2.6.16.7.new/arch/mips/au1000/mtx-1/irqmap.c
--- linux-2.6.16.7/arch/mips/au1000/mtx-1/irqmap.c 2006-04-23 14:40:54.000000000 +0200
+++ linux-2.6.16.7.new/arch/mips/au1000/mtx-1/irqmap.c 2006-04-23 14:40:12.000000000 +0200
@@ -48,7 +48,7 @@
#include <asm/mach-au1x00/au1000.h>
char irq_tab_alchemy[][5] __initdata = {
- [0] = { -1, INTA, INTB, INTX, INTX}, /* IDSEL 00 - AdapterA-Slot0 (top) */
+ [0] = { -1, INTA, INTA, INTX, INTX}, /* IDSEL 00 - AdapterA-Slot0 (top) */
[1] = { -1, INTB, INTA, INTX, INTX}, /* IDSEL 01 - AdapterA-Slot1 (bottom) */
[2] = { -1, INTC, INTD, INTX, INTX}, /* IDSEL 02 - AdapterB-Slot0 (top) */
[3] = { -1, INTD, INTC, INTX, INTX}, /* IDSEL 03 - AdapterB-Slot1 (bottom) */

@ -0,0 +1,15 @@
diff -Nur linux-cvs/arch/mips/kernel/head.S linux-aruba/arch/mips/kernel/head.S
--- linux-cvs/arch/mips/kernel/head.S 2004-12-23 00:21:39.000000000 -0800
+++ linux-aruba/arch/mips/kernel/head.S 2005-10-20 09:16:08.000000000 -0700
@@ -122,6 +122,10 @@
#endif
.endm
+
+ j kernel_entry
+ nop
+
/*
* Reserved space for exception handlers.
* Necessary for machines which link their kernels at KSEG0.

@ -6,13 +6,3 @@ config PACKAGE_KMOD_BRCM_WL
help
Proprietary driver for Broadcom Wireless chipsets
config PACKAGE_KMOD_BRCM_WL2
prompt "kmod-brcm-wl2..................... Broadcom Wireless Network Driver (new)"
tristate
depends LINUX_2_4_BRCM
default m
help
Proprietary driver for Broadcom Wireless chipsets
New version with Multi-BSS capability

@ -12,10 +12,6 @@ $(eval $(call KMOD_template,BRCM_WL,brcm-wl,\
$(MODULES_DIR)/kernel/drivers/net/wl/wl.o \
,CONFIG_WL,,20,wl))
$(eval $(call KMOD_template,BRCM_WL2,brcm-wl2,\
$(MODULES_DIR)/kernel/drivers/net/wl2/wl.o \
,CONFIG_WL,,20,wl))
$(eval $(call KMOD_template,LP,lp,\
$(MODULES_DIR)/kernel/drivers/parport/parport.o \
$(MODULES_DIR)/kernel/drivers/parport/parport_splink.o \
@ -38,10 +34,10 @@ $(LINUX_DIR)/.patched: $(LINUX_DIR)/.unpacked
# Proprietary driver for BCM43xx
###############################################
LINUX_BINARY_DRIVER_SITE=http://openwrt.org/downloads/sources
LINUX_BINARY_DRIVER_SITE=http://downloads.openwrt.org/sources
# proprietary driver, extracted from Linksys GPL sourcetree WRT54GS 4.70.6
LINUX_BINARY_WL_DRIVER=kernel-binary-wl-0.6.tar.gz
LINUX_BINARY_WL_MD5SUM=4fc1d5b46bcb7a17d6d5dd31da9c8d7f
LINUX_BINARY_WL_DRIVER=kernel-binary-wl-0.7.tar.gz
LINUX_BINARY_WL_MD5SUM=ff50130914790cbae9b73a13513da5ee
$(DL_DIR)/$(LINUX_BINARY_WL_DRIVER):
$(SCRIPT_DIR)/download.pl $(DL_DIR) $(LINUX_BINARY_WL_DRIVER) $(LINUX_BINARY_WL_MD5SUM) $(LINUX_BINARY_DRIVER_SITE)
@ -56,18 +52,15 @@ $(LINUX_DIR)/.drivers-unpacked: $(LINUX_DIR)/.unpacked
zcat $(DL_DIR)/$(LINUX_BINARY_WL_DRIVER) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
# copy binary wlan driver
mkdir -p $(LINUX_DIR)/drivers/net/wl
$(CP) $(BUILD_DIR)/kernel-binary-wl/old/*.o $(LINUX_DIR)/drivers/net/wl
$(CP) $(BUILD_DIR)/kernel-binary-wl/new/*.o $(LINUX_DIR)/drivers/net/wl2
$(CP) $(BUILD_DIR)/kernel-binary-wl/*.o $(LINUX_DIR)/drivers/net/wl
touch $@
$(LINUX_DIR)/.drivers-installed: $(LINUX_DIR)/.modules_done
mkdir -p $(LINUX_BUILD_DIR)/modules/lib/modules/2.4.32/kernel/drivers/net/wl
mkdir -p $(LINUX_BUILD_DIR)/modules/lib/modules/2.4.32/kernel/drivers/net/wl2
@-[ -f $(LINUX_BUILD_DIR)/modules/lib/modules/2.4.32/kernel/drivers/net/wl/wl.o ] || $(CP) $(LINUX_DIR)/drivers/net/wl/wl.o $(LINUX_BUILD_DIR)/modules/lib/modules/2.4.32/kernel/drivers/net/wl/
@-[ -f $(LINUX_BUILD_DIR)/modules/lib/modules/2.4.32/kernel/drivers/net/wl2/wl.o ] || $(CP) $(LINUX_DIR)/drivers/net/wl2/wl.o $(LINUX_BUILD_DIR)/modules/lib/modules/2.4.32/kernel/drivers/net/wl2/
touch $@
linux-dirclean: drivers-clean
drivers-clean:
rm -rf $(BUILD_DIR)/wl
rm -rf $(BUILD_DIR)/kernel-binary-wl

@ -833,7 +833,6 @@ CONFIG_NET_RADIO=y
# CONFIG_AIRO is not set
# CONFIG_HERMES is not set
CONFIG_WL=m
CONFIG_WL2=m
# CONFIG_PLX_HERMES is not set
# CONFIG_TMD_HERMES is not set
# CONFIG_PCI_HERMES is not set

File diff suppressed because it is too large Load Diff

@ -0,0 +1,119 @@
diff -urN linux.old/arch/mips/bcm947xx/pcibios.c linux.dev/arch/mips/bcm947xx/pcibios.c
--- linux.old/arch/mips/bcm947xx/pcibios.c 2006-04-07 21:20:59.000000000 +0200
+++ linux.dev/arch/mips/bcm947xx/pcibios.c 2006-04-08 03:17:59.000000000 +0200
@@ -157,6 +157,7 @@
static u32 pci_iobase = 0x100;
static u32 pci_membase = SB_PCI_DMA;
+static u32 pcmcia_membase = 0x40004000;
void __init
pcibios_fixup_bus(struct pci_bus *b)
@@ -188,7 +189,7 @@
/* Fix up resource bases */
for (pos = 0; pos < 6; pos++) {
res = &d->resource[pos];
- base = (res->flags & IORESOURCE_IO) ? &pci_iobase : &pci_membase;
+ base = (res->flags & IORESOURCE_IO) ? &pci_iobase : ((b->number == 2) ? &pcmcia_membase : &pci_membase);
if (res->end) {
size = res->end - res->start + 1;
if (*base & (size - 1))
@@ -308,7 +309,12 @@
where = PCI_BASE_ADDRESS_0 + (resource * 4);
size = res->end - res->start;
pci_read_config_dword(dev, where, &reg);
- reg = (reg & size) | (((u32)(res->start - root->start)) & ~size);
+
+ if (dev->bus->number == 1)
+ reg = (reg & size) | (((u32)(res->start - root->start)) & ~size);
+ else
+ reg = res->start;
+
pci_write_config_dword(dev, where, reg);
}
diff -urN linux.old/drivers/pcmcia/yenta.c linux.dev/drivers/pcmcia/yenta.c
--- linux.old/drivers/pcmcia/yenta.c 2004-11-17 12:54:21.000000000 +0100
+++ linux.dev/drivers/pcmcia/yenta.c 2006-04-11 17:47:45.000000000 +0200
@@ -543,6 +543,9 @@
* Probe for usable interrupts using the force
* register to generate bogus card status events.
*/
+
+#ifndef CONFIG_BCM947XX
+ /* WRT54G3G does not like this */
cb_writel(socket, CB_SOCKET_EVENT, -1);
cb_writel(socket, CB_SOCKET_MASK, CB_CSTSMASK);
exca_writeb(socket, I365_CSCINT, 0);
@@ -557,7 +560,8 @@
}
cb_writel(socket, CB_SOCKET_MASK, 0);
exca_writeb(socket, I365_CSCINT, 0);
-
+#endif
+
mask = probe_irq_mask(val) & 0xffff;
bridge_ctrl &= ~CB_BRIDGE_INTR;
@@ -578,6 +582,12 @@
socket->cap.cb_dev = socket->dev;
socket->cap.bus = NULL;
+#ifdef CONFIG_BCM947XX
+ /* irq mask probing is broken for the WRT54G3G */
+ if (socket->cap.irq_mask == 0)
+ socket->cap.irq_mask = 0x6f8;
+#endif
+
printk(KERN_INFO "Yenta ISA IRQ mask 0x%04x, PCI irq %d\n",
socket->cap.irq_mask, socket->cb_irq);
}
@@ -609,6 +619,15 @@
printk(KERN_INFO "Socket status: %08x\n",
cb_readl(socket, CB_SOCKET_STATE));
+ /* Generate an interrupt on card insert/remove */
+ config_writew(socket, CB_SOCKET_MASK, CB_CSTSMASK | CB_CDMASK);
+
+ /* Set up Multifunction Routing Status Register */
+ config_writew(socket, 0x8C, 0x1000 /* MFUNC3 to GPIO3 */ | 0x2 /* MFUNC0 to INTA */);
+
+ /* Switch interrupts to parallelized */
+ config_writeb(socket, 0x92, 0x64);
+
/* Register it with the pcmcia layer.. */
cardbus_register(socket);
@@ -731,7 +750,7 @@
{
struct pci_bus *bus;
struct resource *root, *res;
- u32 start, end;
+ u32 start = 0, end = 0;
u32 align, size, min, max;
unsigned offset;
unsigned mask;
@@ -750,6 +769,15 @@
res->end = 0;
root = pci_find_parent_resource(socket->dev, res);
+#ifdef CONFIG_BCM947XX
+ /* default mem resources are completely fscked up on the wrt54g3g */
+ /* bypass the entire resource allocation stuff below and just set it statically */
+ if (type & IORESOURCE_MEM) {
+ res->start = 0x40004000;
+ res->end = res->start + 0x3fff;
+ }
+
+#else
if (!root)
return;
@@ -794,6 +822,7 @@
res->start = res->end = 0;
return;
}
+#endif
config_writel(socket, offset, res->start);
config_writel(socket, offset+4, res->end);

@ -1,8 +1,8 @@
include $(TOPDIR)/rules.mk
LINUX_VERSION:=2.6.16.4
LINUX_VERSION:=2.6.16.7
LINUX_RELEASE:=1
LINUX_KERNEL_MD5SUM:=cb675279c9711237a06ebb8379a4da27
LINUX_KERNEL_MD5SUM:=9682b2bd6e02f3087982d7c3f5ba824e
include ../rules.mk
include ./config

@ -1,6 +1,4 @@
Package: kernel
Priority: optional
Section: sys
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: Virtual package for the Kernel

@ -1,6 +1,4 @@
Package: kmod-arptables
Priority: optional
Section: net
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: ARP firewalling kernel modules

@ -1,6 +1,4 @@
Package: kmod-atm
Priority: optional
Section: sys
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: ATM/ADSL support

@ -1,6 +1,4 @@
Package: kmod-ax25
Priority: optional
Section: net
Maintainer: Michael Conrad <openwrt@friggleware.net>
Source: buildroot internal
Description: Kernel AX25 driver

@ -1,6 +1,4 @@
Package: kmod-bluetooth
Priority: optional
Section: sys
Maintainer: Markus Becker <mab@comnets.uni-bremen.de>
Source: http://bluez.org
Description: Bluetooth support

@ -1,6 +1,4 @@
Package: kmod-brcm-et
Priority: optional
Section: sys
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: Proprietary driver for Broadcom Ethernet chipsets

@ -1,6 +1,4 @@
Package: kmod-brcm-wl
Priority: optional
Section: sys
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: Proprietary driver for Broadcom Wireless chipsets

@ -1,7 +1,5 @@
Package: kmod-brcm-wl2
Priority: optional
Section: sys
Maintainer: Felix Fietkau <nbd@openwrt.org>
Source: buildroot internal
Description: Proprietary driver for Broadcom Wireless chipsets
New version with multi-BSS support

@ -1,6 +1,4 @@
Package: kmod-cpmac
Priority: optional
Section: sys
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: AR7 CPMAC ethernet driver

@ -1,6 +1,4 @@
Package: kmod-crypto
Priority: optional
Section: sys
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: CryptoAPI kernel modules

@ -1,6 +1,4 @@
Package: kmod-ebtables
Priority: optional
Section: net
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: Ethernet bridge firewalling kernel modules

@ -1,6 +1,4 @@
Package: kmod-gre
Priority: optional
Section: sys
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: Kernel GRE tunneling support

@ -1,6 +1,4 @@
Package: kmod-ide
Priority: optional
Section: sys
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: Kernel modules IDE support

@ -1,6 +1,4 @@
Package: kmod-ip6tables
Priority: optional
Section: net
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: Kernel modules for ip6tables

@ -0,0 +1,4 @@
Package: kmod-ipip
Section: sys
Priority: optional
Description: IP in IP encapsulation support

@ -1,6 +1,4 @@
Package: kmod-iptables-extra
Priority: optional
Section: net
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: Extra kernel modules for iptables

@ -1,6 +1,4 @@
Package: kmod-iptables
Priority: optional
Section: net
Maintainer: OpenWrt Development Team <bugs@openwrt.org>
Source: buildroot internal
Description: kernel modules for iptables

@ -1,6 +1,4 @@
Package: kmod-ipv6
Priority: optional
Section: net
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: Kernel modules for the IPv6 protocol

@ -1,6 +1,4 @@
Package: kmod-loop
Priority: optional
Section: sys
Maintainer: Waldemar Brodkorb <wbx@dass-it.de>
Source: buildroot internal
Description: Kernel module for mount loopback support

@ -1,6 +1,4 @@
Package: kmod-lp
Priority: optional
Section: sys
Maintainer: Waldemar Brodkorb <wbx@dass-it.de>
Source: buildroot internal
Description: Kernel modules for parallel port support and line printer

@ -1,6 +1,4 @@
Package: kmod-mppe
Priority: optional
Section: net
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: Microsoft PPP Encryption/Compression support

@ -1,6 +1,4 @@
Package: kmod-nbd
Priority: optional
Section: sys
Maintainer: Waldemar Brodkorb <wbx@dass-it.de>
Source: buildroot internal
Description: Kernel module for network block device

@ -1,6 +1,4 @@
Package: kmod-nls-base
Priority: optional
Section: sys
Maintainer: Waldemar Brodkorb <wbx@openwrt.org>
Source: buildroot internal
Description: Kernel modules for basic native language support

@ -1,6 +1,4 @@
Package: kmod-nls-cp437
Priority: optional
Section: sys
Maintainer: Waldemar Brodkorb <wbx@openwrt.org>
Source: buildroot internal
Description: Kernel module for codepage 437

@ -1,6 +1,4 @@
Package: kmod-nls-cp850
Priority: optional
Section: sys
Maintainer: Waldemar Brodkorb <wbx@openwrt.org>
Source: buildroot internal
Description: Kernel module for codepage 850

@ -1,6 +1,4 @@
Package: kmod-nls-iso8859-1
Priority: optional
Section: sys
Maintainer: Waldemar Brodkorb <wbx@openwrt.org>
Source: buildroot internal
Description: Kernel module for iso8859-1 charset support

@ -1,6 +1,4 @@
Package: kmod-nls-iso8859-15
Priority: optional
Section: sys
Maintainer: Waldemar Brodkorb <wbx@openwrt.org>
Source: buildroot internal
Description: Kernel module for iso8859-15 charset support

@ -1,6 +1,4 @@
Package: kmod-nls-utf8
Priority: optional
Section: sys
Maintainer: Waldemar Brodkorb <wbx@openwrt.org>
Source: buildroot internal
Description: Kernel module for utf8 support

@ -1,6 +1,4 @@
Package: kmod-ppp
Priority: optional
Section: net
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: PPP support

@ -1,6 +1,4 @@
Package: kmod-pppoatm
Priority: optional
Section: net
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: PPP over ATM support

@ -1,6 +1,4 @@
Package: kmod-pppoe
Priority: optional
Section: net
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: PPP over Ethernet support

@ -1,6 +1,4 @@
Package: kmod-pwc
Priority: optional
Section: sys
Maintainer: Nicolas Thill <nico@openwrt.org>
Source: http://openwrt.org/cgi-bin/viewcvs.cgi/openwrt/target/linux/linux-2.4/
Description: Kernel driver for USB Philips Cameras

@ -1,6 +1,4 @@
Package: kmod-sangam-atm-annex-a
Priority: optional
Section: sys
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: AR7 Sangam ATM/ADSL driver (Annex A version)

@ -1,6 +1,4 @@
Package: kmod-sangam-atm-annex-b
Priority: optional
Section: sys
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: AR7 Sangam ATM/ADSL driver (Annex B version)

@ -1,6 +1,4 @@
Package: kmod-sched
Priority: optional
Section: sys
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: Kernel schedulers for IP traffic

@ -1,6 +1,4 @@
Package: kmod-softdog
Priority: optional
Section: sys
Maintainer: OpenWrt Developers Team <openwrt-devel@openwrt.org>
Source: buildroot internal
Description: Kernel software watchdog driver

@ -1,6 +1,4 @@
Package: kmod-soundcore
Priority: optional
Section: sys
Maintainer: OpenWrt Developers Team <openwrt-devel@openwrt.org>, David Collett <daveco@users.sourceforge.net>
Source: buildroot internal
Description: Kernel support for audio soundcards

@ -1,6 +1,4 @@
Package: kmod-tun
Priority: optional
Section: sys
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: Kernel TUN/TAP extension

@ -1,6 +1,4 @@
Package: kmod-usb-acm
Priority: optional
Section: sys
Maintainer: Waldemar Brodkorb <wbx@openwrt.org>
Source: buildroot internal
Description: Kernel modules for USB modems and ISDN

@ -1,6 +1,4 @@
Package: kmod-usb-atm-speedtouch
Priority: optional
Section: sys
Maintainer: Jonathan McDowell <noodles@earth.li>
Source: buildroot internal
Description: Kernel driver for USB Speedtouch ADSL modem

@ -1,7 +1,5 @@
Package: kmod-usb-audio
Priority: optional
Section: sys
Maintainer: David Collett <daveco@users.sourceforge.net>
Source: buildroot internal
Depends: kmod-soundcore
Description: Kernel Support for USB Soundcards

@ -1,6 +1,4 @@
Package: kmod-usb-core
Priority: optional
Section: sys
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: Kernel Support for USB

@ -1,6 +1,4 @@
Package: kmod-usb-ohci
Priority: optional
Section: sys
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: Kernel driver for OHCI USB controllers

@ -1,6 +1,4 @@
Package: kmod-usb-printer
Priority: optional
Section: sys
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: Kernel modules for USB Printer support

@ -1,6 +1,4 @@
Package: kmod-usb-serial-belkin
Priority: optional
Section: sys
Maintainer: OpenWrt Developers Team <openwrt-devel@openwrt.org>
Source: buildroot internal
Description: Kernel Support for Belkin USB-to-Serial converters

@ -1,6 +1,4 @@
Package: kmod-usb-serial-ftdi
Priority: optional
Section: sys
Maintainer: OpenWrt Developers Team <openwrt-devel@openwrt.org>
Source: buildroot internal
Description: Kernel Support for FTDI USB-to-Serial converters

@ -1,6 +1,4 @@
Package: kmod-usb-serial-mct-u232
Priority: optional
Section: sys
Maintainer: OpenWrt Developers Team <openwrt-devel@openwrt.org>
Source: buildroot internal
Description: Kernel Support for Magic Control Technology USB-to-Serial converters

@ -1,6 +1,4 @@
Package: kmod-usb-serial-pl2303
Priority: optional
Section: sys
Maintainer: OpenWrt Developers Team <openwrt-devel@openwrt.org>
Source: buildroot internal
Description: Kernel Support for Prolific PL2303 USB-to-Serial converters

@ -1,7 +1,4 @@
Package: kmod-usb-serial-visor
Priority: optional
Section: sys
Maintainer: OpenWrt Developers Team <openwrt-devel@openwrt.org>
Source: buildroot internal
Description: Kernel Support for Handspring Visor / Palm m50x / Sony Clie
Driver
Description: Kernel Support for Handspring Visor / Palm m50x / Sony Clie Driver

@ -1,6 +1,4 @@
Package: kmod-usb-serial
Priority: optional
Section: sys
Maintainer: OpenWrt Developers Team <openwrt-devel@openwrt.org>
Source: buildroot internal
Description: Kernel Support for USB-to-Serial converters

@ -1,6 +1,4 @@
Package: kmod-usb-storage
Priority: optional
Section: sys
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: Kernel modules for USB storage support

@ -1,6 +1,4 @@
Package: kmod-usb-uhci
Priority: optional
Section: sys
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: Kernel driver for UHCI USB controllers

@ -1,6 +1,4 @@
Package: kmod-usb2
Priority: optional
Section: sys
Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
Source: buildroot internal
Description: Kernel driver for USB2 controllers

@ -1,6 +1,4 @@
Package: kmod-videodev
Priority: optional
Section: sys
Maintainer: Nicolas Thill <nico@openwrt.org>
Source: http://openwrt.org/cgi-bin/viewcvs.cgi/openwrt/target/linux/linux-2.4/
Description: Video For Linux kernel support

@ -1,6 +1,4 @@
Package: kmod-wd1100
Priority: optional
Section: sys
Maintainer: OpenWrt Developers Team <bugs@openwrt.org>
Source: http://openwrt.org/cgi-bin/viewcvs.cgi/openwrt/target/linux/
Description: NatSemi SC1x00 series Watchdog kernel support

@ -12,9 +12,12 @@ $(eval $(call KMOD_template,GRE,gre,\
,CONFIG_NET_IPGRE))
$(eval $(call KMOD_template,IMQ,imq,\
$(MODULES_DIR)/kernel/net/*/netfilter/*IMQ*.o \
$(MODULES_DIR)/kernel/net/ipv4/netfilter/*IMQ*.o \
$(MODULES_DIR)/kernel/drivers/net/imq.o \
))
$(eval $(call KMOD_template,IPIP,ipip,\
$(MODULES_DIR)/kernel/net/ipv4/ipip.o \
,CONFIG_NET_IPIP,,60,ipip))
$(eval $(call KMOD_template,IPV6,ipv6,\
$(MODULES_DIR)/kernel/net/ipv6/ipv6.o \
@ -39,12 +42,9 @@ $(eval $(call KMOD_template,PPPOE,pppoe,\
$(MODULES_DIR)/kernel/drivers/net/pppoe.o \
,CONFIG_PPPOE))
ifneq ($(wildcard $(MODULES_DIR)/kernel/net/sched/*.o),)
CONFIG_SCHED:=m
endif
$(eval $(call KMOD_template,SCHED,sched,\
$(MODULES_DIR)/kernel/net/sched/*.o \
,CONFIG_SCHED))
))
$(eval $(call KMOD_template,TUN,tun,\
$(MODULES_DIR)/kernel/drivers/net/tun.o \

@ -14,10 +14,14 @@ $(eval $(call KMOD_template,GRE,gre,\
,CONFIG_NET_IPGRE))
$(eval $(call KMOD_template,IMQ,imq,\
$(MODULES_DIR)/kernel/net/*/netfilter/*IMQ*.ko \
$(MODULES_DIR)/kernel/net/ipv4/netfilter/*IMQ*.ko \
$(MODULES_DIR)/kernel/drivers/net/imq.ko \
))
$(eval $(call KMOD_template,IPIP,ipip,\
$(MODULES_DIR)/kernel/net/ipv4/ipip.ko \
,CONFIG_NET_IPIP,,60,ipip))
$(eval $(call KMOD_template,IPV6,ipv6,\
$(MODULES_DIR)/kernel/net/ipv6/ipv6.ko \
,CONFIG_IPV6,,20,ipv6))

@ -179,7 +179,19 @@ diff -Nur linux-2.6.15.1/lib/Makefile linux-2.6.15.1-openwrt/lib/Makefile
sha1.o
lib-y += kobject.o kref.o kobject_uevent.o klist.o
+lib-y += ashldi3.o ashrdi3.o lshrdi3.o
+obj-y += ashldi3.o ashrdi3.o lshrdi3.o
obj-y += sort.o parser.o halfmd4.o
diff -Nur linux-2.6.15.1/include/asm-arm/libgcc.h linux-2.6.15.1-openwrt/include/asm-arm/libgcc.h
--- linux-2.6.15.1/include/asm-arm/libgcc.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.15.1-openwrt/include/asm-arm/libgcc.h 2006-04-12 23:01:18.000000000 +0200
@@ -0,0 +1,8 @@
+#ifndef __ASM_LIBGCC_H
+#define __ASM_LIBGCC_H
+
+#undef ARCH_NEEDS_ashldi3
+#undef ARCH_NEEDS_ashrdi3
+#undef ARCH_NEEDS_lshrdi3
+
+#endif /* __ASM_LIBGCC_H */

@ -1,17 +1,42 @@
include $(TOPDIR)/rules.mk
KDIR:=$(BUILD_DIR)/linux-$(KERNEL)-$(BOARD)
LOADADDR = 0x8108c8f4 # RAM start + 16M
KERNEL_ENTRY = 0x80100000 # Default kernel entry in arch/mips/Makefile
RAMSIZE = 0x04000000 # 64MB
LOADER_MAKEOPTS= \
KDIR=$(KDIR) \
LOADADDR=$(LOADADDR) \
KERNEL_ENTRY=$(KERNEL_ENTRY) \
RAMSIZE=$(RAMSIZE)
ifeq ($(FS),jffs2-8MB)
KDIR:=$(BUILD_DIR)/linux-$(KERNEL)-$(BOARD)
$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).img: $(KDIR)/root.$(FS)
$(CP) $^ $@
lzma-loader-clean:
$(MAKE) -C ../generic/lzma-loader $(LOADER_MAKEOPTS) clean
install: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).img
lzma-loader-prepare:
$(MAKE) -C ../generic/lzma-loader $(LOADER_MAKEOPTS) prepare
lzma-loader-compile: $(KDIR)/vmlinux.lzma lzma-loader-prepare
$(MAKE) -C ../generic/lzma-loader $(LOADER_MAKEOPTS) compile
ifeq ($(IB),)
$(KDIR)/vmlinux.lzma: $(KDIR)/vmlinux
cat $^ | $(STAGING_DIR)/bin/lzma e -si -so -eos -lc1 -lp2 -pb2 > $@ || (rm -f $@ && false)
install: $(KDIR)/vmlinux.lzma
endif
ifeq ($(FS),jffs2-8MB)
$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FSNAME).bin: $(KDIR)/root.$(FS)
$(TARGET_CROSS)objcopy -O srec -I binary --adjust-vma 0xbe000000 $(KDIR)/root.$(FS) $(KDIR)/root.srec
grep -v S7 $(KDIR)/root.srec > $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).img
grep -v S0 $(LINUX_DIR)/arch/mips/boot/compressed/images/zImage.flash.srec >> $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).img
install: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FSNAME).bin
endif
ifeq ($(FS),tgz)
@ -22,15 +47,30 @@ install: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-rootfs.tar.gz
endif
ifeq ($(FS),squashfs)
$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FSNAME).bin: $(KDIR)/root.$(FS)
$(TARGET_CROSS)objcopy -O srec -I binary --adjust-vma 0xbe000000 $(KDIR)/root.$(FS) $(KDIR)/root.srec
grep -v S7 $(KDIR)/root.srec > $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).img
grep -v S0 $(LINUX_DIR)/arch/mips/boot/compressed/images/zImage.flash.srec >> $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).img
$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-vmlinuz: $(KDIR)/vmlinux
$(CP) $^ $@
endif
$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-vmlinuz: $(KDIR)/zImage.flash
$(CP) $^ $@
ifeq ($(IB),)
clean: lzma-loader-clean
prepare: lzma-loader-prepare
compile: lzma-loader-compile
else
clean:
prepare:
compile:
install: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-vmlinuz
endif
install-ib:
mkdir -p $(IB_DIR)/staging_dir_$(ARCH)/bin
mkdir -p $(IB_DIR)/build_$(ARCH)/linux-$(KERNEL)-$(BOARD)
$(CP) $(KDIR)/bzImage $(IB_DIR)/build_$(ARCH)/linux-$(KERNEL)-$(BOARD)/
$(CP) $(KDIR)/loader.elf $(IB_DIR)/build_$(ARCH)/
$(CP) $(KDIR)/vmlinux.lzma $(IB_DIR)/build_$(ARCH)/linux-$(KERNEL)-$(BOARD)/
$(TARGET_CROSS)objcopy -O srec -I binary --adjust-vma 0xbe000000 $(KDIR)/loader.elf $(KDIR)/loader.srec
grep -v S0 $(KDIR)/loader.srec > $(KDIR)/kernel.srec

@ -1,4 +1,4 @@
ifneq ($(CONFIG_mips),y)
ifneq ($(CONFIG_BIG_ENDIAN),y)
JFFS2OPTS := --pad --little-endian --squash
else
JFFS2OPTS := --pad --big-endian --squash

@ -1,7 +1,7 @@
ifneq ($(CONFIG_BIG_ENDIAN),y)
endian := le
ifeq ($(ARCH),mips)
endian := be
else
endian := be
endif
squashfs-prepare:

@ -0,0 +1,36 @@
include $(TOPDIR)/rules.mk
KDIR:=$(BUILD_DIR)/linux-$(KERNEL)-$(BOARD)
ifeq ($(FS),jffs2-8MB)
$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).img: $(KDIR)/root.$(FS)
$(CP) $^ $@
install: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-$(FS).img
endif
ifeq ($(FS),tgz)
$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-rootfs.tar.gz: $(KDIR)/root.tar.gz
$(CP) $^ $@
install: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-rootfs.tar.gz
endif
$(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-vmlinuz: $(KDIR)/vmlinux
$(CP) $^ $@
clean:
prepare:
compile:
install: $(BIN_DIR)/openwrt-$(BOARD)-$(KERNEL)-vmlinuz
install-ib:
mkdir -p $(IB_DIR)/build_$(ARCH)/linux-$(KERNEL)-$(BOARD)
$(CP) $(KDIR)/bzImage $(IB_DIR)/build_$(ARCH)/linux-$(KERNEL)-$(BOARD)/

@ -103,8 +103,10 @@ mostlyclean:
rebuild:
-$(MAKE) mostlyclean
@[ -f $(LINUX_KERNEL) ] && $(MAKE) clean
$(MAKE) compile
if [ -f $(LINUX_KERNEL) ]; then \
$(MAKE) clean; \
fi
$(MAKE) compile $(MAKE_TRACE)
clean:
rm -f $(STAMP_DIR)/.linux-compile

@ -6,8 +6,6 @@ package-y += base-files
package-$(CONFIG_PACKAGE_KMOD_ALSA) += alsa
package-$(CONFIG_PACKAGE_KMOD_FUSE) += fuse
package-$(CONFIG_PACKAGE_KMOD_HOSTAP) += hostap
package-$(CONFIG_PACKAGE_KMOD_BCM43XX_STANDALONE) += bcm43xx-standalone
package-$(CONFIG_PACKAGE_KMOD_IEEE80211_DSCAPE) += ieee80211-dscape
package-$(CONFIG_PACKAGE_KMOD_MADWIFI) += madwifi
package-$(CONFIG_PACKAGE_KMOD_MADWIFI_OLD) += madwifi-old
package-$(CONFIG_PACKAGE_KMOD_MINI_FO) += mini_fo
@ -20,7 +18,6 @@ package-$(CONFIG_PACKAGE_KMOD_DIAG) += diag
package-$(CONFIG_PACKAGE_KMOD_WLCOMPAT) += wlcompat
package-$(CONFIG_PACKAGE_KMOD_ZD1211) += zd1211
bcm43xx-standalone-compile: ieee80211-dscape-compile
wlcompat-compile: base-files-compile
all: compile install

@ -0,0 +1,23 @@
#!/bin/sh
size=$(awk '/Mem:/ {l=5242880;print((s=$2/2)<l)?$2-l:s}' /proc/meminfo)
mount none /tmp -t tmpfs -o size=$size
if [ "$1" != "failsafe" ]; then
mtd unlock filesystem
mount | grep jffs2 >&-
if [ $? = 0 ] ; then
if [ $(cat /proc/mtd | wc -l) = 6 ]; then
mtd erase filesystem
jffs2root --move
else
mount -o remount,rw /dev/root /
fi
else
. /bin/firstboot
fi
fi
mount none /tmp -t tmpfs -o remount,nosuid,nodev,mode=1777
mkdir -p /dev/pts
mount none /dev/pts -t devpts
mount -t sysfs none /sys 2>&-

@ -1,5 +1,5 @@
#!/bin/sh
setup_eth()
setup_wl()
{
[ -f /proc/net/wl0 ] && {
lsmod | grep wlcompat >&- || insmod wlcompat
@ -7,6 +7,9 @@ setup_eth()
iwconfig "$INTERFACE" 2>&- | grep -v 'no wireless' >&- && {
/sbin/wifi
}
}
setup_eth()
{
[ -d /proc/switch ] || {
insmod switch-core
insmod switch-robo || insmod switch-adm
@ -30,6 +33,7 @@ do_register()
{
case "${INTERFACE%%[0-9]*}" in
eth) setup_eth;;
wl) setup_wl;;
esac
}

@ -0,0 +1,12 @@
# Network configuration file
## LAN configuration
lan_ifname="br0"
lan_ifnames="eth0 ath0"
lan_proto="static"
lan_ipaddr="192.168.1.1"
lan_netmask="255.255.255.0"
## WAN configuration
wan_ifname=""
wan_proto="none"

@ -0,0 +1,3 @@
::sysinit:/etc/init.d/rcS
duart/0::askfirst:/bin/ash --login
#tts/1::askfirst:/bin/ash --login

@ -0,0 +1,6 @@
#!/bin/ash
mount none /dev -t devfs
mount none /proc -t proc
mount_root failsafe
mount -o remount,rw /dev/root /
exec /bin/busybox init

@ -0,0 +1,5 @@
# Network configuration file
## LAN configuration
lan_ifname="eth0"
lan_proto="dhcp"

@ -0,0 +1,4 @@
#!/bin/sh
mount none /proc -t proc
mount_root failsafe
mount -o remount,rw /dev/root /

@ -0,0 +1,3 @@
#!/bin/ash
mount none /dev -t devfs
exec /bin/busybox init

@ -1,12 +0,0 @@
config PACKAGE_KMOD_BCM43XX_STANDALONE
prompt "kmod-bcm43xx-standalone............... Free Broadcom 43xx wireless driver (devicescape stack)"
tristate
depends LINUX_2_6_BRCM
select PACKAGE_KMOD_IEEE80211_DSCAPE
default n
help
Free driver for the Broadcom 43xx wireless chipset
This driver uses the DeviceScape 802.11 stack
http://bcm43xx.berlios.de

@ -1,57 +0,0 @@
# $Id$
include $(TOPDIR)/rules.mk
include ../../rules.mk
PKG_NAME := bcm43xx-standalone
PKG_VERSION := 060313
PKG_RELEASE := 1
PKG_MD%SUM := 773b26a164a54f0da544764969ca019b
PKG_SOURCE_URL := ftp://bu3sch.de/bcm43xx-snapshots/standalone/bcm43xx/
PKG_SOURCE := $(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_CAT := bzcat
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
FIRMWARE_BLOB := wl_apsta-3.130.20.0.o
FIRMWARE_BLOB_URL := http://downloads.openwrt.org/sources
FIRMWARE_BLOB_MD5SUM := e08665c5c5b66beb9c3b2dd54aa80cb3
include $(TOPDIR)/package/rules.mk
$(eval $(call PKG_template,KMOD_BCM43XX_DSCAPE,kmod-$(PKG_NAME),$(LINUX_VERSION)-$(BOARD)+0.$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH),kernel ($(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE))))
$(PKG_BUILD_DIR)/.configured:
touch $@
$(PKG_BUILD_DIR)/fwcutter/.built:
mkdir -p $(PKG_BUILD_DIR)/fwcutter
$(CP) ./fwcutter/* $(PKG_BUILD_DIR)/fwcutter/
$(SCRIPT_DIR)/download.pl "$(PKG_BUILD_DIR)/fwcutter" "$(FIRMWARE_BLOB)" "$(FIRMWARE_BLOB_MD5SUM)" $(FIRMWARE_BLOB_URL)
$(MAKE) -C $(PKG_BUILD_DIR)/fwcutter
$(PKG_BUILD_DIR)/fwcutter/fwcutter -w $(PKG_BUILD_DIR)/fwcutter $(PKG_BUILD_DIR)/fwcutter/$(FIRMWARE_BLOB)
touch $@
$(PKG_BUILD_DIR)/.built: $(PKG_BUILD_DIR)/fwcutter/.built
$(MAKE) -C "$(LINUX_DIR)" \
CROSS_COMPILE="$(TARGET_CROSS)" \
ARCH="$(LINUX_KARCH)" \
PATH="$(TARGET_PATH)" \
SUBDIRS="$(PKG_BUILD_DIR)" \
LINUXINCLUDE="-I$(STAGING_DIR)/usr/include/ieee80211-dscape -I$(LINUX_DIR)/include -DBCM47XX=1" \
modules
touch $@
$(IPKG_KMOD_BCM43XX_DSCAPE):
install -m0755 -d $(IDIR_KMOD_BCM43XX_DSCAPE)/lib/modules/$(LINUX_VERSION)
install -m0755 -d $(IDIR_KMOD_BCM43XX_DSCAPE)/etc/modules.d
( \
echo 80211; \
echo rate_control; \
echo bcm43xx; \
) >& $(IDIR_KMOD_BCM43XX_DSCAPE)/etc/modules.d/50-bcm43xx
$(CP) $(PKG_BUILD_DIR)/*.ko $(IDIR_KMOD_BCM43XX_DSCAPE)/lib/modules/$(LINUX_VERSION)
install -m0755 -d $(IDIR_KMOD_BCM43XX_DSCAPE)/lib/firmware
$(CP) $(PKG_BUILD_DIR)/fwcutter/*.fw $(IDIR_KMOD_BCM43XX_DSCAPE)/lib/firmware/
$(IPKG_BUILD) $(IDIR_KMOD_BCM43XX_DSCAPE) $(PACKAGE_DIR)

@ -1,32 +0,0 @@
VERSION = 0.0.1
FIRMWARE_INSTALL_DIR ?= /lib/firmware
CC = cc
PREFIX = /usr/local
CFLAGS = -std=c99 -O2 -fomit-frame-pointer -Wall -pedantic -D_BSD_SOURCE
LDFLAGS =
OBJECTS = fwcutter.o md5.o
CFLAGS += -DFWCUTTER_VERSION_=$(VERSION)
all: fwcutter
fwcutter: $(OBJECTS)
$(CC) $(CFLAGS) -o fwcutter $(OBJECTS) $(LDFLAGS)
install: all
-install -o 0 -g 0 -m 755 fwcutter $(PREFIX)/bin/
clean:
-rm -f *~ *.o *.orig *.rej *.fw fwcutter
installfw:
-if ! [ -d $(FIRMWARE_INSTALL_DIR) ]; then mkdir $(FIRMWARE_INSTALL_DIR); fi
-install -o 0 -g 0 -m 600 bcm43xx_*.fw $(FIRMWARE_INSTALL_DIR)
# dependencies
fwcutter.o: md5.h fwcutter_list.h
md5.o: md5.h

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save