summaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
Diffstat (limited to 'target')
-rw-r--r--target/linux/etrax/Makefile4
-rw-r--r--target/linux/etrax/config-2.6.2555
-rw-r--r--target/linux/etrax/config-2.6.29 (renamed from target/linux/etrax/config-2.6.28)139
-rw-r--r--target/linux/etrax/image/Makefile4
-rw-r--r--target/linux/etrax/patches-2.6.28/600-fix_serial_cris.patch29
-rw-r--r--target/linux/etrax/patches-2.6.29/100-cris-makefiles.patch (renamed from target/linux/etrax/patches-2.6.28/100-cris-makefiles.patch)0
-rw-r--r--target/linux/etrax/patches-2.6.29/200-samsung_flash.patch (renamed from target/linux/etrax/patches-2.6.28/200-samsung_flash.patch)0
-rw-r--r--target/linux/etrax/patches-2.6.29/201-flashsize.patch (renamed from target/linux/etrax/patches-2.6.28/201-flashsize.patch)0
-rw-r--r--target/linux/etrax/patches-2.6.29/300-sysfs.patch (renamed from target/linux/etrax/patches-2.6.28/300-sysfs.patch)0
-rw-r--r--target/linux/etrax/patches-2.6.29/400-Kconfig_source.patch (renamed from target/linux/etrax/patches-2.6.28/400-Kconfig_source.patch)0
-rw-r--r--target/linux/etrax/patches-2.6.29/500-i2c_gvc.patch (renamed from target/linux/etrax/patches-2.6.28/500-i2c_gvc.patch)0
-rw-r--r--target/linux/etrax/patches-2.6.29/600-fix_serial_cris.patch265
12 files changed, 291 insertions, 205 deletions
diff --git a/target/linux/etrax/Makefile b/target/linux/etrax/Makefile
index fbb3ae41f..40f04fa2e 100644
--- a/target/linux/etrax/Makefile
+++ b/target/linux/etrax/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2006-2009 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@@ -10,7 +10,7 @@ ARCH:=cris
BOARD:=etrax
BOARDNAME:=Foxboard (ETRAX 100LX)
FEATURES:=squashfs jffs2
-LINUX_VERSION:=2.6.25.20
+LINUX_VERSION:=2.6.29.1
include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/etrax/config-2.6.25 b/target/linux/etrax/config-2.6.25
index 9027479d6..e56a9cfc2 100644
--- a/target/linux/etrax/config-2.6.25
+++ b/target/linux/etrax/config-2.6.25
@@ -2,42 +2,12 @@
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_BASE_SMALL=0
CONFIG_BITREVERSE=y
-# CONFIG_BLK_DEV_LOOP is not set
-# CONFIG_BLK_DEV_NBD is not set
CONFIG_BLK_DEV_SD=y
-# CONFIG_BONDING is not set
CONFIG_BOUNCE=y
# CONFIG_BRIDGE is not set
-# CONFIG_BT is not set
-# CONFIG_CIFS is not set
CONFIG_CLASSIC_RCU=y
CONFIG_CRIS=y
# CONFIG_CRIS_MACH_ARTPEC3 is not set
-# CONFIG_CRYPTO_AEAD is not set
-# CONFIG_CRYPTO_ANUBIS is not set
-# CONFIG_CRYPTO_AUTHENC is not set
-# CONFIG_CRYPTO_BLOWFISH is not set
-# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-# CONFIG_CRYPTO_CCM is not set
-# CONFIG_CRYPTO_CRC32C is not set
-# CONFIG_CRYPTO_CTR is not set
-# CONFIG_CRYPTO_GCM is not set
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_LZO is not set
-# CONFIG_CRYPTO_MD4 is not set
-# CONFIG_CRYPTO_NULL is not set
-# CONFIG_CRYPTO_SALSA20 is not set
-# CONFIG_CRYPTO_SEQIV is not set
-# CONFIG_CRYPTO_SERPENT is not set
-# CONFIG_CRYPTO_SHA256 is not set
-# CONFIG_CRYPTO_SHA512 is not set
-# CONFIG_CRYPTO_TEA is not set
-# CONFIG_CRYPTO_TEST is not set
-# CONFIG_CRYPTO_TGR192 is not set
-# CONFIG_CRYPTO_TWOFISH is not set
-# CONFIG_CRYPTO_WP512 is not set
# CONFIG_ETRAX100LX is not set
CONFIG_ETRAX100LX_V2=y
# CONFIG_ETRAXFS is not set
@@ -68,6 +38,7 @@ CONFIG_ETRAX_FLASH1_SIZE=0
CONFIG_ETRAX_FLASH_BUSWIDTH=2
CONFIG_ETRAX_GPIO=y
# CONFIG_ETRAX_I2C is not set
+# CONFIG_ETRAX_I2C_GVC is not set
# CONFIG_ETRAX_KMALLOCED_MODULES is not set
CONFIG_ETRAX_LED1G=2
CONFIG_ETRAX_LED1R=2
@@ -165,7 +136,6 @@ CONFIG_ETRAX_USB_HOST_PORT2=y
# CONFIG_ETRAX_VCS_SIM is not set
# CONFIG_ETRAX_WATCHDOG is not set
CONFIG_EXT2_FS=y
-# CONFIG_EXT3_FS is not set
CONFIG_FORCE_MAX_ZONEORDER=6
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_IOMAP=y
@@ -177,8 +147,6 @@ CONFIG_HAVE_IDE=y
# CONFIG_HAVE_KPROBES is not set
# CONFIG_HAVE_KRETPROBES is not set
# CONFIG_HAVE_OPROFILE is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_HFS_FS is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_I2C is not set
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
@@ -186,14 +154,7 @@ CONFIG_HAVE_IDE=y
# CONFIG_IBM_NEW_EMAC_TAH is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IDE is not set
-# CONFIG_IEEE80211 is not set
-# CONFIG_IFB is not set
-# CONFIG_IMQ is not set
CONFIG_INITRAMFS_SOURCE=""
-# CONFIG_ISO9660_FS is not set
-# CONFIG_LLC is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_MSDOS_FS is not set
CONFIG_MTD=y
CONFIG_MTDRAM_ABS_POS=0x0
CONFIG_MTDRAM_ERASE_SIZE=128
@@ -244,19 +205,16 @@ CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_NETDEV_1000 is not set
-# CONFIG_NFSD is not set
-# CONFIG_NFS_FS is not set
CONFIG_NLS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NO_IOPORT=y
# CONFIG_OOM_REBOOT is not set
-# CONFIG_PPP is not set
# CONFIG_RTC is not set
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_SCSI=y
# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
-# CONFIG_SCSI_WAIT_SCAN is not set
+CONFIG_SCSI_WAIT_SCAN=m
# CONFIG_SERIAL_8250 is not set
CONFIG_SLABINFO=y
# CONFIG_SPARSEMEM_STATIC is not set
@@ -264,21 +222,12 @@ CONFIG_SLABINFO=y
# CONFIG_SVINTO_SIM is not set
# CONFIG_SYSTEM_PROFILER is not set
CONFIG_SYSVIPC_SYSCTL=y
-# CONFIG_TUN is not set
-# CONFIG_UDF_FS is not set
CONFIG_UID16=y
CONFIG_USB=y
-# CONFIG_USB_ACM is not set
# CONFIG_USB_ARCH_HAS_EHCI is not set
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
-# CONFIG_USB_PRINTER is not set
-# CONFIG_USB_R8A66597_HCD is not set
-# CONFIG_USB_SERIAL is not set
CONFIG_USB_STORAGE=y
CONFIG_USB_SUPPORT=y
-# CONFIG_VFAT_FS is not set
-# CONFIG_VIDEO_V4L2_COMMON is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_WLAN_80211 is not set
-# CONFIG_XFS_FS is not set
diff --git a/target/linux/etrax/config-2.6.28 b/target/linux/etrax/config-2.6.29
index c9b464f9c..872a110d2 100644
--- a/target/linux/etrax/config-2.6.28
+++ b/target/linux/etrax/config-2.6.29
@@ -2,38 +2,17 @@
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_BASE_SMALL=0
CONFIG_BITREVERSE=y
-# CONFIG_BLK_DEV_LOOP is not set
-# CONFIG_BONDING is not set
+# CONFIG_BLK_DEV_INITRD is not set
CONFIG_BOUNCE=y
# CONFIG_BRIDGE is not set
-# CONFIG_BT is not set
-# CONFIG_CIFS is not set
-CONFIG_CLASSIC_RCU=y
+# CONFIG_CFG80211 is not set
+CONFIG_COMPAT_NET_DEV_OPS=y
CONFIG_CRIS=y
# CONFIG_CRIS_MACH_ARTPEC3 is not set
-# CONFIG_CRYPTO_AEAD2 is not set
-# CONFIG_CRYPTO_ALGAPI2 is not set
-# CONFIG_CRYPTO_ANUBIS is not set
-# CONFIG_CRYPTO_BLKCIPHER2 is not set
-# CONFIG_CRYPTO_BLOWFISH is not set
-# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-# CONFIG_CRYPTO_CRC32C is not set
-# CONFIG_CRYPTO_HASH2 is not set
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_MANAGER2 is not set
-# CONFIG_CRYPTO_MD4 is not set
-# CONFIG_CRYPTO_NULL is not set
-# CONFIG_CRYPTO_RNG2 is not set
-# CONFIG_CRYPTO_SERPENT is not set
-# CONFIG_CRYPTO_SHA256 is not set
-# CONFIG_CRYPTO_SHA512 is not set
-# CONFIG_CRYPTO_TEA is not set
-# CONFIG_CRYPTO_TEST is not set
-# CONFIG_CRYPTO_TGR192 is not set
-# CONFIG_CRYPTO_TWOFISH is not set
-# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_DCB is not set
+CONFIG_DEFAULT_VEGAS=y
+# CONFIG_DEFAULT_WESTWOOD is not set
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
# CONFIG_ETRAX100LX is not set
CONFIG_ETRAX100LX_V2=y
# CONFIG_ETRAXFS is not set
@@ -64,6 +43,7 @@ CONFIG_ETRAX_FLASH1_SIZE=0
CONFIG_ETRAX_FLASH_BUSWIDTH=2
CONFIG_ETRAX_GPIO=y
# CONFIG_ETRAX_I2C is not set
+# CONFIG_ETRAX_I2C_GVC is not set
# CONFIG_ETRAX_KMALLOCED_MODULES is not set
CONFIG_ETRAX_LED1G=2
CONFIG_ETRAX_LED1R=2
@@ -87,72 +67,8 @@ CONFIG_ETRAX_RESCUE_SER0=y
# CONFIG_ETRAX_RESCUE_SER1 is not set
# CONFIG_ETRAX_RESCUE_SER2 is not set
# CONFIG_ETRAX_RESCUE_SER3 is not set
-# CONFIG_ETRAX_RS485 is not set
CONFIG_ETRAX_SDRAM=y
-CONFIG_ETRAX_SER0_CD_ON_PA_BIT=-1
-CONFIG_ETRAX_SER0_CD_ON_PB_BIT=-1
-CONFIG_ETRAX_SER0_DSR_ON_PA_BIT=-1
-CONFIG_ETRAX_SER0_DSR_ON_PB_BIT=-1
-CONFIG_ETRAX_SER0_DTR_ON_PA_BIT=-1
-CONFIG_ETRAX_SER0_DTR_ON_PB_BIT=-1
-# CONFIG_ETRAX_SER0_DTR_RI_DSR_CD_MIXED is not set
-CONFIG_ETRAX_SER0_DTR_RI_DSR_CD_ON_NONE=y
-# CONFIG_ETRAX_SER0_DTR_RI_DSR_CD_ON_PA is not set
-# CONFIG_ETRAX_SER0_DTR_RI_DSR_CD_ON_PB is not set
-CONFIG_ETRAX_SER0_RI_ON_PA_BIT=-1
-CONFIG_ETRAX_SER0_RI_ON_PB_BIT=-1
-CONFIG_ETRAX_SER2_CD_ON_PA_BIT=-1
-CONFIG_ETRAX_SER2_CD_ON_PB_BIT=-1
-CONFIG_ETRAX_SER2_DSR_ON_PA_BIT=-1
-CONFIG_ETRAX_SER2_DSR_ON_PB_BIT=-1
-CONFIG_ETRAX_SER2_DTR_ON_PA_BIT=-1
-CONFIG_ETRAX_SER2_DTR_ON_PB_BIT=-1
-# CONFIG_ETRAX_SER2_DTR_RI_DSR_CD_MIXED is not set
-CONFIG_ETRAX_SER2_DTR_RI_DSR_CD_ON_NONE=y
-# CONFIG_ETRAX_SER2_DTR_RI_DSR_CD_ON_PA is not set
-# CONFIG_ETRAX_SER2_DTR_RI_DSR_CD_ON_PB is not set
-CONFIG_ETRAX_SER2_RI_ON_PA_BIT=-1
-CONFIG_ETRAX_SER2_RI_ON_PB_BIT=-1
-CONFIG_ETRAX_SER3_CD_ON_PA_BIT=-1
-CONFIG_ETRAX_SER3_CD_ON_PB_BIT=-1
-CONFIG_ETRAX_SER3_DSR_ON_PA_BIT=-1
-CONFIG_ETRAX_SER3_DSR_ON_PB_BIT=-1
-CONFIG_ETRAX_SER3_DTR_ON_PA_BIT=-1
-CONFIG_ETRAX_SER3_DTR_ON_PB_BIT=-1
-# CONFIG_ETRAX_SER3_DTR_RI_DSR_CD_MIXED is not set
-CONFIG_ETRAX_SER3_DTR_RI_DSR_CD_ON_NONE=y
-# CONFIG_ETRAX_SER3_DTR_RI_DSR_CD_ON_PA is not set
-# CONFIG_ETRAX_SER3_DTR_RI_DSR_CD_ON_PB is not set
-CONFIG_ETRAX_SER3_RI_ON_PA_BIT=-1
-CONFIG_ETRAX_SER3_RI_ON_PB_BIT=-1
-CONFIG_ETRAX_SERIAL=y
-# CONFIG_ETRAX_SERIAL_FAST_TIMER is not set
-# CONFIG_ETRAX_SERIAL_FLUSH_DMA_FAST is not set
-CONFIG_ETRAX_SERIAL_PORT0=y
-# CONFIG_ETRAX_SERIAL_PORT0_DMA0_OUT is not set
-# CONFIG_ETRAX_SERIAL_PORT0_DMA1_IN is not set
-# CONFIG_ETRAX_SERIAL_PORT0_DMA6_OUT is not set
-# CONFIG_ETRAX_SERIAL_PORT0_DMA7_IN is not set
-CONFIG_ETRAX_SERIAL_PORT0_NO_DMA_IN=y
-CONFIG_ETRAX_SERIAL_PORT0_NO_DMA_OUT=y
-# CONFIG_ETRAX_SERIAL_PORT1 is not set
-CONFIG_ETRAX_SERIAL_PORT2=y
-CONFIG_ETRAX_SERIAL_PORT2_DMA2_OUT=y
-CONFIG_ETRAX_SERIAL_PORT2_DMA3_IN=y
-# CONFIG_ETRAX_SERIAL_PORT2_DMA6_OUT is not set
-# CONFIG_ETRAX_SERIAL_PORT2_DMA7_IN is not set
-# CONFIG_ETRAX_SERIAL_PORT2_NO_DMA_IN is not set
-# CONFIG_ETRAX_SERIAL_PORT2_NO_DMA_OUT is not set
-CONFIG_ETRAX_SERIAL_PORT3=y
-# CONFIG_ETRAX_SERIAL_PORT3_DMA2_OUT is not set
-# CONFIG_ETRAX_SERIAL_PORT3_DMA3_IN is not set
-CONFIG_ETRAX_SERIAL_PORT3_DMA4_OUT=y
-CONFIG_ETRAX_SERIAL_PORT3_DMA5_IN=y
-# CONFIG_ETRAX_SERIAL_PORT3_DMA8_OUT is not set
-# CONFIG_ETRAX_SERIAL_PORT3_DMA9_IN is not set
-# CONFIG_ETRAX_SERIAL_PORT3_NO_DMA_IN is not set
-# CONFIG_ETRAX_SERIAL_PORT3_NO_DMA_OUT is not set
-CONFIG_ETRAX_SERIAL_RX_TIMEOUT_TICKS=1
+# CONFIG_ETRAX_SERIAL is not set
# CONFIG_ETRAX_SOFT_SHUTDOWN is not set
# CONFIG_ETRAX_SYNCHRONOUS_SERIAL is not set
CONFIG_ETRAX_USB_HOST=y
@@ -161,9 +77,9 @@ CONFIG_ETRAX_USB_HOST_PORT2=y
# CONFIG_ETRAX_VCS_SIM is not set
# CONFIG_ETRAX_WATCHDOG is not set
CONFIG_EXT2_FS=y
-# CONFIG_EXT3_FS is not set
CONFIG_FORCE_MAX_ZONEORDER=6
# CONFIG_FREEZER is not set
+CONFIG_GENERIC_FIND_LAST_BIT=y
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_IOMAP=y
# CONFIG_GEN_RTC is not set
@@ -173,22 +89,11 @@ CONFIG_HAS_IOMEM=y
# CONFIG_HAVE_AOUT is not set
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
CONFIG_HAVE_IDE=y
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_HFS_FS is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_I2C is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IDE is not set
-# CONFIG_IEEE80211 is not set
-# CONFIG_IFB is not set
-CONFIG_INITRAMFS_SOURCE=""
-# CONFIG_ISO9660_FS is not set
-CONFIG_KMOD=y
-# CONFIG_LLC is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_MSDOS_FS is not set
+# CONFIG_LIB80211 is not set
+# CONFIG_MAC80211 is not set
+CONFIG_MISC_FILESYSTEMS=y
CONFIG_MTD=y
CONFIG_MTDRAM_ABS_POS=0x0
CONFIG_MTDRAM_ERASE_SIZE=128
@@ -217,6 +122,7 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
CONFIG_MTD_CONCAT=y
CONFIG_MTD_GEN_PROBE=y
CONFIG_MTD_JEDECPROBE=y
+# CONFIG_MTD_LPDDR is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
CONFIG_MTD_MAP_BANK_WIDTH_2=y
@@ -234,10 +140,9 @@ CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_REDBOOT_PARTS is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_TESTS is not set
# CONFIG_NETDEV_1000 is not set
-# CONFIG_NFSD is not set
-# CONFIG_NFS_FS is not set
-CONFIG_NF_CT_ACCT=y
+# CONFIG_NET_SCH_DRR is not set
# CONFIG_NF_DEFRAG_IPV4 is not set
CONFIG_NLS=y
CONFIG_NLS_CODEPAGE_437=y
@@ -246,26 +151,22 @@ CONFIG_NO_IOPORT=y
# CONFIG_OOM_REBOOT is not set
CONFIG_PAGEFLAGS_EXTENDED=y
# CONFIG_PHYS_ADDR_T_64BIT is not set
-# CONFIG_PPP is not set
CONFIG_ROMFS_FS=y
# CONFIG_RTC is not set
CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_SCSI_DMA is not set
# CONFIG_SERIAL_8250 is not set
-# CONFIG_STP is not set
# CONFIG_SVINTO_SIM is not set
# CONFIG_SYSTEM_PROFILER is not set
CONFIG_SYSVIPC_SYSCTL=y
-# CONFIG_TUN is not set
-# CONFIG_UDF_FS is not set
CONFIG_UID16=y
CONFIG_USB=y
-# CONFIG_USB_ACM is not set
# CONFIG_USB_ARCH_HAS_EHCI is not set
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
-# CONFIG_USB_PRINTER is not set
-# CONFIG_USB_SERIAL is not set
+# CONFIG_USB_OXU210HP_HCD is not set
CONFIG_USB_SUPPORT=y
-# CONFIG_VFAT_FS is not set
# CONFIG_VLAN_8021Q is not set
+# CONFIG_WIRELESS_EXT_SYSFS is not set
+# CONFIG_WIRELESS_OLD_REGULATORY is not set
# CONFIG_WLAN_80211 is not set
diff --git a/target/linux/etrax/image/Makefile b/target/linux/etrax/image/Makefile
index 9f716202c..44856ca4d 100644
--- a/target/linux/etrax/image/Makefile
+++ b/target/linux/etrax/image/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2006-2009 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@@ -13,7 +13,7 @@ define Image/BuildKernel
endef
define Image/Prepare
- cp $(LINUX_DIR)/arch/cris/boot/zImage $(KDIR)/vmlinuz
+ cp $(LINUX_DIR)/arch/cris/arch-v10/boot/zImage $(KDIR)/vmlinuz
$(MAKE) -C e100boot compile
$(MAKE) -C mkfimage compile
$(INSTALL_BIN) ./boot_linux $(BIN_DIR)
diff --git a/target/linux/etrax/patches-2.6.28/600-fix_serial_cris.patch b/target/linux/etrax/patches-2.6.28/600-fix_serial_cris.patch
deleted file mode 100644
index 0c54b7b88..000000000
--- a/target/linux/etrax/patches-2.6.28/600-fix_serial_cris.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Index: linux-2.6.28.9/drivers/serial/crisv10.c
-===================================================================
---- linux-2.6.28.9.orig/drivers/serial/crisv10.c 2009-04-08 16:47:06.000000000 +0200
-+++ linux-2.6.28.9/drivers/serial/crisv10.c 2009-04-08 16:47:27.000000000 +0200
-@@ -28,6 +28,7 @@
- #include <linux/mutex.h>
- #include <linux/bitops.h>
- #include <linux/device.h>
-+#include <linux/proc_fs.h>
-
- #include <asm/io.h>
- #include <asm/irq.h>
-@@ -4389,7 +4390,6 @@
- .break_ctl = rs_break,
- .send_xchar = rs_send_xchar,
- .wait_until_sent = rs_wait_until_sent,
-- .read_proc = rs_read_proc,
- .tiocmget = rs_tiocmget,
- .tiocmset = rs_tiocmset
- };
-@@ -4455,7 +4455,7 @@
- if (tty_register_driver(driver))
- panic("Couldn't register serial driver\n");
- /* do some initializing for the separate ports */
--
-+ driver->proc_entry->read_proc = rs_read_proc;
- for (i = 0, info = rs_table; i < NR_PORTS; i++,info++) {
- if (info->enabled) {
- if (cris_request_io_interface(info->io_if,
diff --git a/target/linux/etrax/patches-2.6.28/100-cris-makefiles.patch b/target/linux/etrax/patches-2.6.29/100-cris-makefiles.patch
index 6495c4957..6495c4957 100644
--- a/target/linux/etrax/patches-2.6.28/100-cris-makefiles.patch
+++ b/target/linux/etrax/patches-2.6.29/100-cris-makefiles.patch
diff --git a/target/linux/etrax/patches-2.6.28/200-samsung_flash.patch b/target/linux/etrax/patches-2.6.29/200-samsung_flash.patch
index 5df6590fa..5df6590fa 100644
--- a/target/linux/etrax/patches-2.6.28/200-samsung_flash.patch
+++ b/target/linux/etrax/patches-2.6.29/200-samsung_flash.patch
diff --git a/target/linux/etrax/patches-2.6.28/201-flashsize.patch b/target/linux/etrax/patches-2.6.29/201-flashsize.patch
index e825acf1f..e825acf1f 100644
--- a/target/linux/etrax/patches-2.6.28/201-flashsize.patch
+++ b/target/linux/etrax/patches-2.6.29/201-flashsize.patch
diff --git a/target/linux/etrax/patches-2.6.28/300-sysfs.patch b/target/linux/etrax/patches-2.6.29/300-sysfs.patch
index 9f415b4a8..9f415b4a8 100644
--- a/target/linux/etrax/patches-2.6.28/300-sysfs.patch
+++ b/target/linux/etrax/patches-2.6.29/300-sysfs.patch
diff --git a/target/linux/etrax/patches-2.6.28/400-Kconfig_source.patch b/target/linux/etrax/patches-2.6.29/400-Kconfig_source.patch
index d0fdbf589..d0fdbf589 100644
--- a/target/linux/etrax/patches-2.6.28/400-Kconfig_source.patch
+++ b/target/linux/etrax/patches-2.6.29/400-Kconfig_source.patch
diff --git a/target/linux/etrax/patches-2.6.28/500-i2c_gvc.patch b/target/linux/etrax/patches-2.6.29/500-i2c_gvc.patch
index 7eed8b2a7..7eed8b2a7 100644
--- a/target/linux/etrax/patches-2.6.28/500-i2c_gvc.patch
+++ b/target/linux/etrax/patches-2.6.29/500-i2c_gvc.patch
diff --git a/target/linux/etrax/patches-2.6.29/600-fix_serial_cris.patch b/target/linux/etrax/patches-2.6.29/600-fix_serial_cris.patch
new file mode 100644
index 000000000..7ac24a474
--- /dev/null
+++ b/target/linux/etrax/patches-2.6.29/600-fix_serial_cris.patch
@@ -0,0 +1,265 @@
+Index: linux-2.6.28.9/drivers/serial/crisv10.c
+===================================================================
+--- linux-2.6.28.9.orig/drivers/serial/crisv10.c 2009-04-10 12:58:18.000000000 +0200
++++ linux-2.6.28.9/drivers/serial/crisv10.c 2009-04-10 12:58:22.000000000 +0200
+@@ -28,12 +28,15 @@
+ #include <linux/mutex.h>
+ #include <linux/bitops.h>
+ #include <linux/device.h>
++#include <linux/seq_file.h>
++#include <linux/delay.h>
++#include <linux/module.h>
++#include <linux/uaccess.h>
++#include <linux/io.h>
+
+-#include <asm/io.h>
+ #include <asm/irq.h>
+ #include <asm/dma.h>
+ #include <asm/system.h>
+-#include <linux/delay.h>
+
+ #include <arch/svinto.h>
+
+@@ -457,7 +460,6 @@
+
+ #define NR_PORTS (sizeof(rs_table)/sizeof(struct e100_serial))
+
+-static struct ktermios *serial_termios[NR_PORTS];
+ #ifdef CONFIG_ETRAX_SERIAL_FAST_TIMER
+ static struct fast_timer fast_timers[NR_PORTS];
+ #endif
+@@ -4221,151 +4223,132 @@
+ return 0;
+ }
+
++#ifdef CONFIG_PROC_FS
+ /*
+ * /proc fs routines....
+ */
+
+-static int line_info(char *buf, struct e100_serial *info)
++static void seq_line_info(struct seq_file *m, struct e100_serial *info)
+ {
+- char stat_buf[30];
+- int ret;
+ unsigned long tmp;
+
+- ret = sprintf(buf, "%d: uart:E100 port:%lX irq:%d",
+- info->line, (unsigned long)info->ioport, info->irq);
++ seq_printf(m, "%d: uart:E100 port:%lX irq:%d",
++ info->line, (unsigned long)info->ioport, info->irq);
+
+ if (!info->ioport || (info->type == PORT_UNKNOWN)) {
+- ret += sprintf(buf+ret, "\n");
+- return ret;
++ seq_printf(m, "\n");
++ return;
+ }
+
+- stat_buf[0] = 0;
+- stat_buf[1] = 0;
+- if (!E100_RTS_GET(info))
+- strcat(stat_buf, "|RTS");
+- if (!E100_CTS_GET(info))
+- strcat(stat_buf, "|CTS");
+- if (!E100_DTR_GET(info))
+- strcat(stat_buf, "|DTR");
+- if (!E100_DSR_GET(info))
+- strcat(stat_buf, "|DSR");
+- if (!E100_CD_GET(info))
+- strcat(stat_buf, "|CD");
+- if (!E100_RI_GET(info))
+- strcat(stat_buf, "|RI");
+-
+- ret += sprintf(buf+ret, " baud:%d", info->baud);
+-
+- ret += sprintf(buf+ret, " tx:%lu rx:%lu",
++ seq_printf(m, " baud:%d", info->baud);
++ seq_printf(m, " tx:%lu rx:%lu",
+ (unsigned long)info->icount.tx,
+ (unsigned long)info->icount.rx);
+ tmp = CIRC_CNT(info->xmit.head, info->xmit.tail, SERIAL_XMIT_SIZE);
+- if (tmp) {
+- ret += sprintf(buf+ret, " tx_pend:%lu/%lu",
+- (unsigned long)tmp,
+- (unsigned long)SERIAL_XMIT_SIZE);
+- }
+-
+- ret += sprintf(buf+ret, " rx_pend:%lu/%lu",
+- (unsigned long)info->recv_cnt,
+- (unsigned long)info->max_recv_cnt);
++ if (tmp)
++ seq_printf(m, " tx_pend:%lu/%lu",
++ (unsigned long)tmp,
++ (unsigned long)SERIAL_XMIT_SIZE);
++
++ seq_printf(m, " rx_pend:%lu/%lu",
++ (unsigned long)info->recv_cnt,
++ (unsigned long)info->max_recv_cnt);
+
+ #if 1
+ if (info->port.tty) {
+-
+ if (info->port.tty->stopped)
+- ret += sprintf(buf+ret, " stopped:%i",
+- (int)info->port.tty->stopped);
++ seq_printf(m, " stopped:%i",
++ (int)info->port.tty->stopped);
+ if (info->port.tty->hw_stopped)
+- ret += sprintf(buf+ret, " hw_stopped:%i",
+- (int)info->port.tty->hw_stopped);
++ seq_printf(m, " hw_stopped:%i",
++ (int)info->port.tty->hw_stopped);
+ }
+
+ {
+ unsigned char rstat = info->ioport[REG_STATUS];
+- if (rstat & IO_MASK(R_SERIAL0_STATUS, xoff_detect) )
+- ret += sprintf(buf+ret, " xoff_detect:1");
++ if (rstat & IO_MASK(R_SERIAL0_STATUS, xoff_detect))
++ seq_printf(m, " xoff_detect:1");
+ }
+
+ #endif
+
+-
+-
+-
+ if (info->icount.frame)
+- ret += sprintf(buf+ret, " fe:%lu",
+- (unsigned long)info->icount.frame);
++ seq_printf(m, " fe:%lu", (unsigned long)info->icount.frame);
+
+ if (info->icount.parity)
+- ret += sprintf(buf+ret, " pe:%lu",
+- (unsigned long)info->icount.parity);
++ seq_printf(m, " pe:%lu", (unsigned long)info->icount.parity);
+
+ if (info->icount.brk)
+- ret += sprintf(buf+ret, " brk:%lu",
+- (unsigned long)info->icount.brk);
++ seq_printf(m, " brk:%lu", (unsigned long)info->icount.brk);
+
+ if (info->icount.overrun)
+- ret += sprintf(buf+ret, " oe:%lu",
+- (unsigned long)info->icount.overrun);
++ seq_printf(m, " oe:%lu", (unsigned long)info->icount.overrun);
+
+ /*
+ * Last thing is the RS-232 status lines
+ */
+- ret += sprintf(buf+ret, " %s\n", stat_buf+1);
+- return ret;
++ if (!E100_RTS_GET(info))
++ seq_puts(m, "|RTS");
++ if (!E100_CTS_GET(info))
++ seq_puts(m, "|CTS");
++ if (!E100_DTR_GET(info))
++ seq_puts(m, "|DTR");
++ if (!E100_DSR_GET(info))
++ seq_puts(m, "|DSR");
++ if (!E100_CD_GET(info))
++ seq_puts(m, "|CD");
++ if (!E100_RI_GET(info))
++ seq_puts(m, "|RI");
++ seq_puts(m, "\n");
+ }
+
+-int rs_read_proc(char *page, char **start, off_t off, int count,
+- int *eof, void *data)
++
++static int crisv10_proc_show(struct seq_file *m, void *v)
+ {
+- int i, len = 0, l;
+- off_t begin = 0;
++ int i;
++
++ seq_printf(m, "serinfo:1.0 driver:%s\n", serial_version);
+
+- len += sprintf(page, "serinfo:1.0 driver:%s\n",
+- serial_version);
+- for (i = 0; i < NR_PORTS && len < 4000; i++) {
++ for (i = 0; i < NR_PORTS; i++) {
+ if (!rs_table[i].enabled)
+ continue;
+- l = line_info(page + len, &rs_table[i]);
+- len += l;
+- if (len+begin > off+count)
+- goto done;
+- if (len+begin < off) {
+- begin += len;
+- len = 0;
+- }
++ seq_line_info(m, &rs_table[i]);
+ }
+ #ifdef DEBUG_LOG_INCLUDED
+ for (i = 0; i < debug_log_pos; i++) {
+- len += sprintf(page + len, "%-4i %lu.%lu ", i, debug_log[i].time, timer_data_to_ns(debug_log[i].timer_data));
+- len += sprintf(page + len, debug_log[i].string, debug_log[i].value);
+- if (len+begin > off+count)
+- goto done;
+- if (len+begin < off) {
+- begin += len;
+- len = 0;
+- }
++ seq_printf(m, "%-4i %lu.%lu ",
++ i, debug_log[i].time,
++ timer_data_to_ns(debug_log[i].timer_data));
++ seq_printf(m, debug_log[i].string, debug_log[i].value);
+ }
+- len += sprintf(page + len, "debug_log %i/%i %li bytes\n",
+- i, DEBUG_LOG_SIZE, begin+len);
++ seq_printf(m, "debug_log %i/%i\n", i, DEBUG_LOG_SIZE);
+ debug_log_pos = 0;
+ #endif
++ return 0;
++}
+
+- *eof = 1;
+-done:
+- if (off >= len+begin)
+- return 0;
+- *start = page + (off-begin);
+- return ((count < begin+len-off) ? count : begin+len-off);
++static int crisv10_proc_open(struct inode *inode, struct file *file)
++{
++ return single_open(file, crisv10_proc_show, NULL);
+ }
+
++static const struct file_operations crisv10_proc_fops = {
++ .owner = THIS_MODULE,
++ .open = crisv10_proc_open,
++ .read = seq_read,
++ .llseek = seq_lseek,
++ .release = single_release,
++};
++#endif
++
++
+ /* Finally, routines used to initialize the serial driver. */
+
+-static void
+-show_serial_version(void)
++static void show_serial_version(void)
+ {
+ printk(KERN_INFO
+- "ETRAX 100LX serial-driver %s, (c) 2000-2004 Axis Communications AB\r\n",
++ "ETRAX 100LX serial-driver %s, "
++ "(c) 2000-2004 Axis Communications AB\r\n",
+ &serial_version[11]); /* "$Revision: x.yy" */
+ }
+
+@@ -4389,9 +4372,11 @@
+ .break_ctl = rs_break,
+ .send_xchar = rs_send_xchar,
+ .wait_until_sent = rs_wait_until_sent,
+- .read_proc = rs_read_proc,
+ .tiocmget = rs_tiocmget,
+- .tiocmset = rs_tiocmset
++ .tiocmset = rs_tiocmset,
++#ifdef CONFIG_PROC_FS
++ .proc_fops = &crisv10_proc_fops,
++#endif
+ };
+
+ static struct class *rs_class;