From b5b344787ba362d146651967691da117a12ff61d Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sun, 22 Jan 2017 10:08:01 +0100 Subject: nds32: use the kernel source from Andes --- target/config/Config.in.kernelversion | 5 + target/linux/patches/3.4.113/nds32.patch | 72144 ----------------------------- 2 files changed, 5 insertions(+), 72144 deletions(-) delete mode 100644 target/linux/patches/3.4.113/nds32.patch (limited to 'target') diff --git a/target/config/Config.in.kernelversion b/target/config/Config.in.kernelversion index 35c8310e5..f3b9c54bc 100644 --- a/target/config/Config.in.kernelversion +++ b/target/config/Config.in.kernelversion @@ -120,6 +120,7 @@ config ADK_TARGET_KERNEL_VERSION_3_4 depends on !ADK_TARGET_ARCH_ARC depends on !ADK_TARGET_ARCH_BFIN depends on !ADK_TARGET_ARCH_H8300 + depends on !ADK_TARGET_ARCH_NDS32 depends on !ADK_TARGET_ARCH_NIOS2 depends on !ADK_TARGET_ARCH_OR1K depends on !ADK_TARGET_ARCH_SPARC @@ -134,6 +135,10 @@ config ADK_TARGET_KERNEL_VERSION_3_4 depends on !ADK_TARGET_CPU_MIPS_MIPS32R6 depends on !ADK_TARGET_CPU_MIPS64_MIPS64R6 +config ADK_TARGET_KERNEL_VERSION_3_4_NDS32 + bool "3.4-nds32" + depends on ADK_TARGET_ARCH_NDS32 + config ADK_TARGET_KERNEL_VERSION_3_2 bool "3.2.83" depends on !ADK_TARGET_ARCH_ARC diff --git a/target/linux/patches/3.4.113/nds32.patch b/target/linux/patches/3.4.113/nds32.patch deleted file mode 100644 index b71178b57..000000000 --- a/target/linux/patches/3.4.113/nds32.patch +++ /dev/null @@ -1,72144 +0,0 @@ -diff -Nur linux-3.4.113.orig/arch/nds32/boot/install.sh linux-3.4.113/arch/nds32/boot/install.sh ---- linux-3.4.113.orig/arch/nds32/boot/install.sh 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.4.113/arch/nds32/boot/install.sh 2016-12-01 20:59:24.328611826 +0100 -@@ -0,0 +1,47 @@ -+#!/bin/sh -+# -+# arch/nds32/boot/install.sh -+# -+# This file is subject to the terms and conditions of the GNU General Public -+# License. See the file "COPYING" in the main directory of this archive -+# for more details. -+# -+# Copyright (C) 1995 by Linus Torvalds -+# Copyright (C) 2009 Andes Technology Corporation -+# -+# Adapted from code in arch/i386/boot/Makefile by H. Peter Anvin -+# Adapted from code in arch/i386/boot/install.sh by Russell King -+# -+# "make install" script for arm architecture -+# -+# Arguments: -+# $1 - kernel version -+# $2 - kernel image file -+# $3 - kernel map file -+# $4 - default install path (blank if root directory) -+# -+ -+# User may have a custom install script -+if [ -x ~/bin/installkernel ]; then exec ~/bin/installkernel "$@"; fi -+if [ -x /sbin/installkernel ]; then exec /sbin/installkernel "$@"; fi -+ -+# Normal install -+echo "Installing normal kernel" -+base=vmlinux -+ -+if [ -f $4/$base-$1 ]; then -+ mv $4/$base-$1 $4/$base-$1.old -+fi -+cat $2 > $4/$base-$1 -+ -+# Install system map file -+if [ -f $4/System.map-$1 ]; then -+ mv $4/System.map-$1 $4/System.map-$1.old -+fi -+cp $3 $4/System.map-$1 -+ -+if [ -x /sbin/loadmap ]; then -+ /sbin/loadmap -+else -+ echo "You have to install it yourself" -+fi -diff -Nur linux-3.4.113.orig/arch/nds32/boot/Makefile linux-3.4.113/arch/nds32/boot/Makefile ---- linux-3.4.113.orig/arch/nds32/boot/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.4.113/arch/nds32/boot/Makefile 2016-12-01 20:59:24.328611826 +0100 -@@ -0,0 +1,22 @@ -+# -+# arch/nds32/boot/Makefile -+# -+# This file is subject to the terms and conditions of the GNU General Public -+# License. See the file "COPYING" in the main directory of this archive -+# for more details. -+# -+# Copyright (C) 1995-2002 Russell King -+# Copyright (C) 2009 Andes Technology Corporation -+# -+ -+targets := Image -+ -+$(obj)/Image: vmlinux FORCE -+ $(call if_changed,objcopy) -+ @echo ' Kernel: $@ is ready' -+ -+.PHONY: FORCE -+install: $(obj)/Image -+ $(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \ -+ $(obj)/Image System.map "$(INSTALL_PATH)" -+ -diff -Nur linux-3.4.113.orig/arch/nds32/common/dmabounce.c linux-3.4.113/arch/nds32/common/dmabounce.c ---- linux-3.4.113.orig/arch/nds32/common/dmabounce.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.4.113/arch/nds32/common/dmabounce.c 2016-12-01 20:59:24.328611826 +0100 -@@ -0,0 +1,672 @@ -+/* -+ * arch/nds32/common/dmabounce.c -+ * -+ * Special dma_{map/unmap/dma_sync}_* routines for systems that have -+ * limited DMA windows. These functions utilize bounce buffers to -+ * copy data to/from buffers located outside the DMA region. This -+ * only works for systems in which DMA memory is at the bottom of -+ * RAM and the remainder of memory is at the top an the DMA memory -+ * can be marked as ZONE_DMA. Anything beyond that such as discontigous -+ * DMA windows will require custom implementations that reserve memory -+ * areas at early bootup. -+ * -+ * Original version by Brad Parker (brad@heeltoe.com) -+ * Re-written by Christopher Hoover -+ * Made generic by Deepak Saxena -+ * -+ * Copyright (C) 2002 Hewlett Packard Company. -+ * Copyright (C) 2004 MontaVista Software, Inc. -+ * Copyright (C) 2009 Andes Technology Corporation -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * version 2 as published by the Free Software Foundation. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#undef DEBUG -+ -+#undef STATS -+#ifdef STATS -+#define DO_STATS(X) do { X ; } while (0) -+#else -+#define DO_STATS(X) do { } while (0) -+#endif -+ -+/* ************************************************** */ -+ -+struct safe_buffer { -+ struct list_head node; -+ -+ /* original request */ -+ void *ptr; -+ size_t size; -+ int direction; -+ -+ /* safe buffer info */ -+ struct dma_pool *pool; -+ void *safe; -+ dma_addr_t safe_dma_addr; -+}; -+ -+struct dmabounce_device_info { -+ struct list_head node; -+ -+ struct device *dev; -+ struct dma_pool *small_buffer_pool; -+ struct dma_pool *large_buffer_pool; -+ struct list_head safe_buffers; -+ unsigned long small_buffer_size, large_buffer_size; -+#ifdef STATS -+ unsigned long sbp_allocs; -+ unsigned long lbp_allocs; -+ unsigned long total_allocs; -+ unsigned long map_op_count; -+ unsigned long bounce_count; -+#endif -+}; -+ -+static LIST_HEAD(dmabounce_devs); -+ -+#ifdef STATS -+static void print_alloc_stats(struct dmabounce_device_info *device_info) -+{ -+ printk(KERN_INFO -+ "%s: dmabounce: sbp: %lu, lbp: %lu, other: %lu, total: %lu\n", -+ device_info->dev->bus_id, -+ device_info->sbp_allocs, device_info->lbp_allocs, -+ device_info->total_allocs - device_info->sbp_allocs - -+ device_info->lbp_allocs, device_info->total_allocs); -+} -+#endif -+ -+/* find the given device in the dmabounce device list */ -+static inline struct dmabounce_device_info *find_dmabounce_dev(struct device -+ *dev) -+{ -+ struct list_head *entry; -+ -+ list_for_each(entry, &dmabounce_devs) { -+ struct dmabounce_device_info *d = -+ list_entry(entry, struct dmabounce_device_info, node); -+ -+ if (d->dev == dev) -+ return d; -+ } -+ return NULL; -+} -+ -+/* allocate a 'safe' buffer and keep track of it */ -+static inline struct safe_buffer *alloc_safe_buffer(struct dmabounce_device_info -+ *device_info, void *ptr, -+ size_t size, -+ enum dma_data_direction dir) -+{ -+ struct safe_buffer *buf; -+ struct dma_pool *pool; -+ struct device *dev = device_info->dev; -+ void *safe; -+ dma_addr_t safe_dma_addr; -+ -+ dev_dbg(dev, "%s(ptr=%p, size=%d, dir=%d)\n", __func__, ptr, size, dir); -+ -+ DO_STATS(device_info->total_allocs++); -+ -+ buf = kmalloc(sizeof(struct safe_buffer), GFP_ATOMIC); -+ if (buf == NULL) { -+ dev_warn(dev, "%s: kmalloc failed\n", __func__); -+ return NULL; -+ } -+ -+ if (size <= device_info->small_buffer_size) { -+ pool = device_info->small_buffer_pool; -+ safe = dma_pool_alloc(pool, GFP_ATOMIC, &safe_dma_addr); -+ -+ DO_STATS(device_info->sbp_allocs++); -+ } else if (size <= device_info->large_buffer_size) { -+ pool = device_info->large_buffer_pool; -+ safe = dma_pool_alloc(pool, GFP_ATOMIC, &safe_dma_addr); -+ -+ DO_STATS(device_info->lbp_allocs++); -+ } else { -+ pool = NULL; -+ safe = -+ dma_alloc_coherent(dev, size, &safe_dma_addr, GFP_ATOMIC); -+ } -+ -+ if (safe == NULL) { -+ dev_warn(device_info->dev, -+ "%s: could not alloc dma memory (size=%d)\n", -+ __func__, size); -+ kfree(buf); -+ return NULL; -+ } -+#ifdef STATS -+ if (device_info->total_allocs % 1000 == 0) -+ print_alloc_stats(device_info); -+#endif -+ -+ buf->ptr = ptr; -+ buf->size = size; -+ buf->direction = dir; -+ buf->pool = pool; -+ buf->safe = safe; -+ buf->safe_dma_addr = safe_dma_addr; -+ -+ list_add(&buf->node, &device_info->safe_buffers); -+ -+ return buf; -+} -+ -+/* determine if a buffer is from our "safe" pool */ -+static inline struct safe_buffer *find_safe_buffer(struct dmabounce_device_info -+ *device_info, -+ dma_addr_t safe_dma_addr) -+{ -+ struct list_head *entry; -+ -+ list_for_each(entry, &device_info->safe_buffers) { -+ struct safe_buffer *b = -+ list_entry(entry, struct safe_buffer, node); -+ -+ if (b->safe_dma_addr == safe_dma_addr) -+ return b; -+ } -+ -+ return NULL; -+} -+ -+static inline void -+free_safe_buffer(struct dmabounce_device_info *device_info, -+ struct safe_buffer *buf) -+{ -+ dev_dbg(device_info->dev, "%s(buf=%p)\n", __func__, buf); -+ -+ list_del(&buf->node); -+ -+ if (buf->pool) -+ dma_pool_free(buf->pool, buf->safe, buf->safe_dma_addr); -+ else -+ dma_free_coherent(device_info->dev, buf->size, buf->safe, -+ buf->safe_dma_addr); -+ -+ kfree(buf); -+} -+ -+/* ************************************************** */ -+ -+#ifdef STATS -+ -+static void print_map_stats(struct dmabounce_device_info *device_info) -+{ -+ printk(KERN_INFO -+ "%s: dmabounce: map_op_count=%lu, bounce_count=%lu\n", -+ device_info->dev->bus_id, -+ device_info->map_op_count, device_info->bounce_count); -+} -+#endif -+ -+static inline dma_addr_t -+map_single(struct device *dev, void *ptr, size_t size, -+ enum dma_data_direction dir) -+{ -+ struct dmabounce_device_info *device_info = find_dmabounce_dev(dev); -+ dma_addr_t dma_addr; -+ int needs_bounce = 0; -+ -+ if (device_info) -+ DO_STATS(device_info->map_op_count++); -+ -+ dma_addr = virt_to_dma(dev, ptr); -+ -+ if (dev->dma_mask) { -+ unsigned long mask = *dev->dma_mask; -+ unsigned long limit; -+ -+ limit = (mask + 1) & ~mask; -+ if (limit && size > limit) { -+ dev_err(dev, "DMA mapping too big (requested %#x " -+ "mask %#Lx)\n", size, *dev->dma_mask); -+ return ~0; -+ } -+ -+ /* -+ * Figure out if we need to bounce from the DMA mask. -+ */ -+ needs_bounce = (dma_addr | (dma_addr + size - 1)) & ~mask; -+ } -+ -+ if (device_info -+ && (needs_bounce || dma_needs_bounce(dev, dma_addr, size))) { -+ struct safe_buffer *buf; -+ -+ buf = alloc_safe_buffer(device_info, ptr, size, dir); -+ if (buf == 0) { -+ dev_err(dev, "%s: unable to map unsafe buffer %p!\n", -+ __func__, ptr); -+ return 0; -+ } -+ -+ dev_dbg(dev, -+ "%s: unsafe buffer %p (phy=%p) mapped to %p (phy=%p)\n", -+ __func__, buf->ptr, (void *)virt_to_dma(dev, buf->ptr), -+ buf->safe, (void *)buf->safe_dma_addr); -+ -+ if ((dir == DMA_TO_DEVICE) || (dir == DMA_BIDIRECTIONAL)) { -+ dev_dbg(dev, "%s: copy unsafe %p to safe %p, size %d\n", -+ __func__, ptr, buf->safe, size); -+ memcpy(buf->safe, ptr, size); -+ } -+ consistent_sync(buf->safe, size, dir); -+ -+ dma_addr = buf->safe_dma_addr; -+ } else { -+ consistent_sync(ptr, size, dir); -+ } -+ -+ return dma_addr; -+} -+ -+static inline void -+unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, -+ enum dma_data_direction dir) -+{ -+ struct dmabounce_device_info *device_info = find_dmabounce_dev(dev); -+ struct safe_buffer *buf = NULL; -+ -+ /* -+ * Trying to unmap an invalid mapping -+ */ -+ if (dma_addr == ~0) { -+ dev_err(dev, "Trying to unmap invalid mapping\n"); -+ return; -+ } -+ -+ if (device_info) -+ buf = find_safe_buffer(device_info, dma_addr); -+ -+ if (buf) { -+ BUG_ON(buf->size != size); -+ -+ dev_dbg(dev, -+ "%s: unsafe buffer %p (phy=%p) mapped to %p (phy=%p)\n", -+ __func__, buf->ptr, (void *)virt_to_dma(dev, buf->ptr), -+ buf->safe, (void *)buf->safe_dma_addr); -+ -+ DO_STATS(device_info->bounce_count++); -+ -+ if ((dir == DMA_FROM_DEVICE) || (dir == DMA_BIDIRECTIONAL)) { -+ dev_dbg(dev, -+ "%s: copy back safe %p to unsafe %p size %d\n", -+ __func__, buf->safe, buf->ptr, size); -+ memcpy(buf->ptr, buf->safe, size); -+ } -+ free_safe_buffer(device_info, buf); -+ } -+} -+ -+static inline void -+sync_single(struct device *dev, dma_addr_t dma_addr, size_t size, -+ enum dma_data_direction dir) -+{ -+ struct dmabounce_device_info *device_info = find_dmabounce_dev(dev); -+ struct safe_buffer *buf = NULL; -+ -+ if (device_info) -+ buf = find_safe_buffer(device_info, dma_addr); -+ -+ if (buf) { -+ /* -+ * Both of these checks from original code need to be -+ * commented out b/c some drivers rely on the following: -+ * -+ * 1) Drivers may map a large chunk of memory into DMA space -+ * but only sync a small portion of it. Good example is -+ * allocating a large buffer, mapping it, and then -+ * breaking it up into small descriptors. No point -+ * in syncing the whole buffer if you only have to -+ * touch one descriptor. -+ * -+ * 2) Buffers that are mapped as DMA_BIDIRECTIONAL are -+ * usually only synced in one dir at a time. -+ * -+ * See drivers/net/eepro100.c for examples of both cases. -+ * -+ * -ds -+ * -+ * BUG_ON(buf->size != size); -+ * BUG_ON(buf->direction != dir); -+ */ -+ -+ dev_dbg(dev, -+ "%s: unsafe buffer %p (phy=%p) mapped to %p (phy=%p)\n", -+ __func__, buf->ptr, (void *)virt_to_dma(dev, buf->ptr), -+ buf->safe, (void *)buf->safe_dma_addr); -+ -+ DO_STATS(device_info->bounce_count++); -+ -+ switch (dir) { -+ case DMA_FROM_DEVICE: -+ dev_dbg(dev, -+ "%s: copy back safe %p to unsafe %p size %d\n", -+ __func__, buf->safe, buf->ptr, size); -+ memcpy(buf->ptr, buf->safe, size); -+ break; -+ case DMA_TO_DEVICE: -+ dev_dbg(dev, -+ "%s: copy out unsafe %p to safe %p, size %d\n", -+ __func__, buf->ptr, buf->safe, size); -+ memcpy(buf->safe, buf->ptr, size); -+ break; -+ case DMA_BIDIRECTIONAL: -+ BUG(); /* is this allowed? what does it mean? */ -+ default: -+ BUG(); -+ } -+ consistent_sync(buf->safe, size, dir); -+ } else { -+ consistent_sync(dma_to_virt(dev, dma_addr), size, dir); -+ } -+} -+ -+/* ************************************************** */ -+ -+/* -+ * see if a buffer address is in an 'unsafe' range. if it is -+ * allocate a 'safe' buffer and copy the unsafe buffer into it. -+ * substitute the safe buffer for the unsafe one. -+ * (basically move the buffer from an unsafe area to a safe one) -+ */ -+dma_addr_t -+dma_map_single(struct device *dev, void *ptr, size_t size, -+ enum dma_data_direction dir) -+{ -+ unsigned long flags; -+ dma_addr_t dma_addr; -+ -+ dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n", __func__, ptr, size, dir); -+ -+ BUG_ON(dir == DMA_NONE); -+ -+ local_irq_save(flags); -+ -+ dma_addr = map_single(dev, ptr, size, dir); -+ -+ local_irq_restore(flags); -+ -+ return dma_addr; -+} -+ -+/* -+ * see if a mapped address was really a "safe" buffer and if so, copy -+ * the data from the safe buffer back to the unsafe buffer and free up -+ * the safe buffer. (basically return things back to the way they -+ * should be) -+ */ -+ -+void -+dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, -+ enum dma_data_direction dir) -+{ -+ unsigned long flags; -+ -+ dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n", -+ __func__, (void *)dma_addr, size, dir); -+ -+ BUG_ON(dir == DMA_NONE); -+ -+ local_irq_save(flags); -+ -+ unmap_single(dev, dma_addr, size, dir); -+ -+ local_irq_restore(flags); -+} -+ -+int -+dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, -+ enum dma_data_direction dir) -+{ -+ unsigned long flags; -+ int i; -+ -+ dev_dbg(dev, "%s(sg=%p,nents=%d,dir=%x)\n", __func__, sg, nents, dir); -+ -+ BUG_ON(dir == DMA_NONE); -+ -+ local_irq_save(flags); -+ -+ for (i = 0; i < nents; i++, sg++) { -+ struct page *page = sg->page; -+ unsigned int offset = sg->offset; -+ unsigned int length = sg->length; -+ void *ptr = page_address(page) + offset; -+ -+ sg->dma_address = map_single(dev, ptr, length, dir); -+ } -+ -+ local_irq_restore(flags); -+ -+ return nents; -+} -+ -+void -+dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nents, -+ enum dma_data_direction dir) -+{ -+ unsigned long flags; -+ int i; -+ -+ dev_dbg(dev, "%s(sg=%p,nents=%d,dir=%x)\n", __func__, sg, nents, dir); -+ -+ BUG_ON(dir == DMA_NONE); -+ -+ local_irq_save(flags); -+ -+ for (i = 0; i < nents; i++, sg++) { -+ dma_addr_t dma_addr = sg->dma_address; -+ unsigned int length = sg->length; -+ -+ unmap_single(dev, dma_addr, length, dir); -+ } -+ -+ local_irq_restore(flags); -+} -+ -+void -+dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_addr, size_t size, -+ enum dma_data_direction dir) -+{ -+ unsigned long flags; -+ -+ dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n", -+ __func__, (void *)dma_addr, size, dir); -+ -+ local_irq_save(flags); -+ -+ sync_single(dev, dma_addr, size, dir); -+ -+ local_irq_restore(flags); -+} -+ -+void -+dma_sync_single_for_device(struct device *dev, dma_addr_t dma_addr, size_t size, -+ enum dma_data_direction dir) -+{ -+ unsigned long flags; -+ -+ dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n", -+ __func__, (void *)dma_addr, size, dir); -+ -+ local_irq_save(flags); -+ -+ sync_single(dev, dma_addr, size, dir); -+ -+ local_irq_restore(flags); -+} -+ -+void -+dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nents, -+ enum dma_data_direction dir) -+{ -+ unsigned long flags; -+ int i; -+ -+ dev_dbg(dev, "%s(sg=%p,nents=%d,dir=%x)\n", __func__, sg, nents, dir); -+ -+ BUG_ON(dir == DMA_NONE); -+ -+ local_irq_save(flags); -+ -+ for (i = 0; i < nents; i++, sg++) { -+ dma_addr_t dma_addr = sg->dma_address; -+ unsigned int length = sg->length; -+ -+ sync_single(dev, dma_addr, length, dir); -+ } -+ -+ local_irq_restore(flags); -+} -+ -+void -+dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nents, -+ enum dma_data_direction dir) -+{ -+ unsigned long flags; -+ int i; -+ -+ dev_dbg(dev, "%s(sg=%p,nents=%d,dir=%x)\n", __func__, sg, nents, dir); -+ -+ BUG_ON(dir == DMA_NONE); -+ -+ local_irq_save(flags); -+ -+ for (i = 0; i < nents; i++, sg++) { -+ dma_addr_t dma_addr = sg->dma_address; -+ unsigned int length = sg->length; -+ -+ sync_single(dev, dma_addr, length, dir); -+ } -+ -+ local_irq_restore(flags); -+} -+ -+int -+dmabounce_register_dev(struct device *dev, unsigned long small_buffer_size, -+ unsigned long large_buffer_size) -+{ -+ struct dmabounce_device_info *device_info; -+ -+ device_info = kmalloc(sizeof(struct dmabounce_device_info), GFP_ATOMIC); -+ if (!device_info) { -+ printk(KERN_ERR -+ "Could not allocated dmabounce_device_info for %s", -+ dev->bus_id); -+ return -ENOMEM; -+ } -+ -+ device_info->small_buffer_pool = -+ dma_pool_create("small_dmabounce_pool", -+ dev, small_buffer_size, 0 /* byte alignment */ , -+ 0 /* no page-crossing issues */ ); -+ if (!device_info->small_buffer_pool) { -+ printk(KERN_ERR -+ "dmabounce: could not allocate small DMA pool for %s\n", -+ dev->bus_id); -+ kfree(device_info); -+ return -ENOMEM; -+ } -+ -+ if (large_buffer_size) { -+ device_info->large_buffer_pool = -+ dma_pool_create("large_dmabounce_pool", -+ dev, -+ large_buffer_size, 0 /* byte alignment */ , -+ 0 /* no page-crossing issues */ ); -+ if (!device_info->large_buffer_pool) { -+ printk(KERN_ERR -+ "dmabounce: could not allocate large DMA pool for %s\n", -+ dev->bus_id); -+ dma_pool_destroy(device_info->small_buffer_pool); -+ -+ return -ENOMEM; -+ } -+ } -+ -+ device_info->dev = dev; -+ device_info->small_buffer_size = small_buffer_size; -+ device_info->large_buffer_size = large_buffer_size; -+ INIT_LIST_HEAD(&device_info->safe_buffers); -+ -+#ifdef STATS -+ device_info->sbp_allocs = 0; -+ device_info->lbp_allocs = 0; -+ device_info->total_allocs = 0; -+ device_info->map_op_count = 0; -+ device_info->bounce_count = 0; -+#endif -+ -+ list_add(&device_info->node, &dmabounce_devs); -+ -+ printk(KERN_INFO "dmabounce: registered device %s on %s bus\n", -+ dev->bus_id, dev->bus->name); -+ -+ return 0; -+} -+ -+void dmabounce_unregister_dev(struct device *dev) -+{ -+ struct dmabounce_device_info *device_info = find_dmabounce_dev(dev); -+ -+ if (!device_info) { -+ printk(KERN_WARNING -+ "%s: Never registered with dmabounce but attempting" -+ "to unregister!\n", dev->bus_id); -+ return; -+ } -+ -+ if (!list_empty(&device_info->safe_buffers)) { -+ printk(KERN_ERR -+ "%s: Removing from dmabounce with pending buffers!\n", -+ dev->bus_id); -+ BUG(); -+ } -+ -+ if (device_info->small_buffer_pool) -+ dma_pool_destroy(device_info->small_buffer_pool); -+ if (device_info->large_buffer_pool) -+ dma_pool_destroy(device_info->large_buffer_pool); -+ -+#ifdef STATS -+ print_alloc_stats(device_info); -+ print_map_stats(device_info); -+#endif -+ -+ list_del(&device_info->node); -+ -+ kfree(device_info); -+ -+ printk(KERN_INFO "dmabounce: device %s on %s bus unregistered\n", -+ dev->bus_id, dev->bus->name); -+} -+ -+EXPORT_SYMBOL(dma_map_single); -+EXPORT_SYMBOL(dma_unmap_single); -+EXPORT_SYMBOL(dma_map_sg); -+EXPORT_SYMBOL(dma_unmap_sg); -+EXPORT_SYMBOL(dma_sync_single); -+EXPORT_SYMBOL(dma_sync_sg); -+EXPORT_SYMBOL(dmabounce_register_dev); -+EXPORT_SYMBOL(dmabounce_unregister_dev); -+ -+MODULE_AUTHOR -+ ("Christopher Hoover , Deepak Saxena "); -+MODULE_DESCRIPTION -+ ("Special dma_{map/unmap/dma_sync}_* routines for systems with limited DMA windows"); -+MODULE_LICENSE("GPL"); -diff -Nur linux-3.4.113.orig/arch/nds32/common/Makefile linux-3.4.113/arch/nds32/common/Makefile ---- linux-3.4.113.orig/arch/nds32/common/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.4.113/arch/nds32/common/Makefile 2016-12-01 20:59:24.328611826 +0100 -@@ -0,0 +1,6 @@ -+# -+# Makefile for the linux kernel. -+# -+ -+obj-y += rtctime.o -+obj-$(CONFIG_DMABOUNCE) += dmabounce.o -diff -Nur linux-3.4.113.orig/arch/nds32/common/rtctime.c linux-3.4.113/arch/nds32/common/rtctime.c ---- linux-3.4.113.orig/arch/nds32/common/rtctime.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.4.113/arch/nds32/common/rtctime.c 2016-12-01 20:59:24.328611826 +0100 -@@ -0,0 +1,441 @@ -+/* -+ * linux/arch/nds32/common/rtctime.c -+ * -+ * Copyright (C) 2003 Deep Blue Solutions Ltd. -+ * Based on sa1100-rtc.c, Nils Faerber, CIH, Nicolas Pitre. -+ * Based on rtc.c by Paul Gortmaker -+ * Copyright (C) 2009 Andes Technology Corporation -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+static DECLARE_WAIT_QUEUE_HEAD(rtc_wait); -+static struct fasync_struct *rtc_async_queue; -+ -+/* -+ * rtc_lock protects rtc_irq_data -+ */ -+static DEFINE_SPINLOCK(rtc_lock); -+static unsigned long rtc_irq_data; -+ -+/* -+ * rtc_sem protects rtc_inuse and rtc_ops -+ */ -+static DEFINE_MUTEX(rtc_mutex); -+static unsigned long rtc_inuse; -+static struct rtc_ops *rtc_ops; -+ -+#define rtc_epoch 1900UL -+ -+/* -+ * Calculate the next alarm time given the requested alarm time mask -+ * and the current time. -+ */ -+void rtc_next_alarm_time(struct rtc_time *next, struct rtc_time *now, -+ struct rtc_time *alrm) -+{ -+ unsigned long next_time; -+ unsigned long now_time; -+ -+ next->tm_year = now->tm_year; -+ next->tm_mon = now->tm_mon; -+ next->tm_mday = now->tm_mday; -+ next->tm_hour = alrm->tm_hour; -+ next->tm_min = alrm->tm_min; -+ next->tm_sec = alrm->tm_sec; -+ -+ rtc_tm_to_time(now, &now_time); -+ rtc_tm_to_time(next, &next_time); -+ -+ if (next_time < now_time) { -+ /* Advance one day */ -+ next_time += 60 * 60 * 24; -+ rtc_time_to_tm(next_time, next); -+ } -+} -+ -+static inline int rtc_arm_read_time(struct rtc_ops *ops, struct rtc_time *tm) -+{ -+ memset(tm, 0, sizeof(struct rtc_time)); -+ return ops->read_time(tm); -+} -+ -+static inline int rtc_arm_set_time(struct rtc_ops *ops, struct rtc_time *tm) -+{ -+ int ret; -+ -+ ret = rtc_valid_tm(tm); -+ if (ret == 0) -+ ret = ops->set_time(tm); -+ -+ return ret; -+} -+ -+static inline int rtc_arm_read_alarm(struct rtc_ops *ops, -+ struct rtc_wkalrm *alrm) -+{ -+ int ret = -EINVAL; -+ if (ops->read_alarm) { -+ memset(alrm, 0, sizeof(struct rtc_wkalrm)); -+ ret = ops->read_alarm(alrm); -+ } -+ return ret; -+} -+ -+static inline int rtc_arm_set_alarm(struct rtc_ops *ops, -+ struct rtc_wkalrm *alrm) -+{ -+ int ret = -EINVAL; -+ if (ops->set_alarm) -+ ret = ops->set_alarm(alrm); -+ return ret; -+} -+ -+void rtc_update(unsigned long num, unsigned long events) -+{ -+ spin_lock(&rtc_lock); -+ rtc_irq_data = (rtc_irq_data + (num << 8)) | events; -+ spin_unlock(&rtc_lock); -+ -+ wake_up_interruptible(&rtc_wait); -+ kill_fasync(&rtc_async_queue, SIGIO, POLL_IN); -+} -+ -+EXPORT_SYMBOL(rtc_update); -+ -+static ssize_t -+rtc_read(struct file *file, char __user * buf, size_t count, loff_t * ppos) -+{ -+ DECLARE_WAITQUEUE(wait, current); -+ unsigned long data; -+ ssize_t ret; -+ -+ if (count < sizeof(unsigned long)) -+ return -EINVAL; -+ -+ add_wait_queue(&rtc_wait, &wait); -+ do { -+ __set_current_state(TASK_INTERRUPTIBLE); -+ -+ spin_lock_irq(&rtc_lock); -+ data = rtc_irq_data; -+ rtc_irq_data = 0; -+ spin_unlock_irq(&rtc_lock); -+ -+ if (data != 0) { -+ ret = 0; -+ break; -+ } -+ if (file->f_flags & O_NONBLOCK) { -+ ret = -EAGAIN; -+ break; -+ } -+ if (signal_pending(current)) { -+ ret = -ERESTARTSYS; -+ break; -+ } -+ schedule(); -+ } while (1); -+ set_current_state(TASK_RUNNING); -+ remove_wait_queue(&rtc_wait, &wait); -+ -+ if (ret == 0) { -+ ret = put_user(data, (unsigned long __user *)buf); -+ if (ret == 0) -+ ret = sizeof(unsigned long); -+ } -+ return ret; -+} -+ -+static unsigned int rtc_poll(struct file *file, poll_table * wait) -+{ -+ unsigned long data; -+ -+ poll_wait(file, &rtc_wait, wait); -+ -+ spin_lock_irq(&rtc_lock); -+ data = rtc_irq_data; -+ spin_unlock_irq(&rtc_lock); -+ -+ return data != 0 ? POLLIN | POLLRDNORM : 0; -+} -+ -+static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, -+ unsigned long arg) -+{ -+ struct rtc_ops *ops = file->private_data; -+ struct rtc_time tm; -+ struct rtc_wkalrm alrm; -+ void __user *uarg = (void __user *)arg; -+ int ret = -EINVAL; -+ -+ switch (cmd) { -+ case RTC_ALM_READ: -+ ret = rtc_arm_read_alarm(ops, &alrm); -+ if (ret) -+ break; -+ ret = copy_to_user(uarg, &alrm.time, sizeof(tm)); -+ if (ret) -+ ret = -EFAULT; -+ break; -+ -+ case RTC_ALM_SET: -+ ret = copy_from_user(&alrm.time, uarg, sizeof(tm)); -+ if (ret) { -+ ret = -EFAULT; -+ break; -+ } -+ alrm.enabled = 0; -+ alrm.pending = 0; -+ alrm.time.tm_mday = -1; -+ alrm.time.tm_mon = -1; -+ alrm.time.tm_year = -1; -+ alrm.time.tm_wday = -1; -+ alrm.time.tm_yday = -1; -+ alrm.time.tm_isdst = -1; -+ ret = rtc_arm_set_alarm(ops, &alrm); -+ break; -+ -+ case RTC_RD_TIME: -+ ret = rtc_arm_read_time(ops, &tm); -+ if (ret) -+ break; -+ ret = copy_to_user(uarg, &tm, sizeof(tm)); -+ if (ret) -+ ret = -EFAULT; -+ break; -+ -+ case RTC_SET_TIME: -+ if (!capable(CAP_SYS_TIME)) { -+ ret = -EACCES; -+ break; -+ } -+ ret = copy_from_user(&tm, uarg, sizeof(tm)); -+ if (ret) { -+ ret = -EFAULT; -+ break; -+ } -+ ret = rtc_arm_set_time(ops, &tm); -+ break; -+ -+ case RTC_EPOCH_SET: -+#ifndef rtc_epoch -+ /* -+ * There were no RTC clocks before 1900. -+ */ -+ if (arg < 1900) { -+ ret = -EINVAL; -+ break; -+ } -+ if (!capable(CAP_SYS_TIME)) { -+ ret = -EACCES; -+ break; -+ } -+ rtc_epoch = arg; -+ ret = 0; -+#endif -+ break; -+ -+ case RTC_EPOCH_READ: -+ ret = put_user(rtc_epoch, (unsigned long __user *)uarg); -+ break; -+ -+ case RTC_WKALM_SET: -+ ret = copy_from_user(&alrm, uarg, sizeof(alrm)); -+ if (ret) { -+ ret = -EFAULT; -+ break; -+ } -+ ret = rtc_arm_set_alarm(ops, &alrm); -+ break; -+ -+ case RTC_WKALM_RD: -+ ret = rtc_arm_read_alarm(ops, &alrm); -+ if (ret) -+ break; -+ ret = copy_to_user(uarg, &alrm, sizeof(alrm)); -+ if (ret) -+ ret = -EFAULT; -+ break; -+ -+ default: -+ if (ops->ioctl) -+ ret = ops->ioctl(cmd, arg); -+ break; -+ } -+ return ret; -+} -+ -+static int rtc_open(struct inode *inode, struct file *file) -+{ -+ int ret; -+ -+ mutex_lock(&rtc_mutex); -+ -+ if (rtc_inuse) { -+ ret = -EBUSY; -+ } else if (!rtc_ops || !try_module_get(rtc_ops->owner)) { -+ ret = -ENODEV; -+ } else { -+ file->private_data = rtc_ops; -+ -+ ret = rtc_ops->open ? rtc_ops->open() : 0; -+ if (ret == 0) { -+ spin_lock_irq(&rtc_lock); -+ rtc_irq_data = 0; -+ spin_unlock_irq(&rtc_lock); -+ -+ rtc_inuse = 1; -+ } -+ } -+ mutex_unlock(&rtc_mutex); -+ -+ return ret; -+} -+ -+static int rtc_release(struct inode *inode, struct file *file) -+{ -+ struct rtc_ops *ops = file->private_data; -+ -+ if (ops->release) -+ ops->release(); -+ -+ spin_lock_irq(&rtc_lock); -+ rtc_irq_data = 0; -+ spin_unlock_irq(&rtc_lock); -+ -+ module_put(rtc_ops->owner); -+ rtc_inuse = 0; -+ -+ return 0; -+} -+ -+static int rtc_fasync(int fd, struct file *file, int on) -+{ -+ return fasync_helper(fd, file, on, &rtc_async_queue); -+} -+ -+static struct file_operations rtc_fops = { -+ .owner = THIS_MODULE, -+ .llseek = no_llseek, -+ .read = rtc_read, -+ .poll = rtc_poll, -+ .ioctl = rtc_ioctl, -+ .open = rtc_open, -+ .release = rtc_release, -+ .fasync = rtc_fasync, -+}; -+ -+static struct miscdevice rtc_miscdev = { -+ .minor = RTC_MINOR, -+ .name = "rtc", -+ .fops = &rtc_fops, -+}; -+ -+static int rtc_read_proc(char *page, char **start, off_t off, int count, -+ int *eof, void *data) -+{ -+ struct rtc_ops *ops = data; -+ struct rtc_wkalrm alrm; -+ struct rtc_time tm; -+ char *p = page; -+ -+ if (rtc_arm_read_time(ops, &tm) == 0) { -+ p += sprintf(p, -+ "rtc_time\t: %02d:%02d:%02d\n" -+ "rtc_date\t: %04d-%02d-%02d\n" -+ "rtc_epoch\t: %04lu\n", -+ tm.tm_hour, tm.tm_min, tm.tm_sec, -+ tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, -+ rtc_epoch); -+ } -+ -+ if (rtc_arm_read_alarm(ops, &alrm) == 0) { -+ p += sprintf(p, "alrm_time\t: "); -+ if ((unsigned int)alrm.time.tm_hour <= 24) -+ p += sprintf(p, "%02d:", alrm.time.tm_hour); -+ else -+ p += sprintf(p, "**:"); -+ if ((unsigned int)alrm.time.tm_min <= 59) -+ p += sprintf(p, "%02d:", alrm.time.tm_min); -+ else -+ p += sprintf(p, "**:"); -+ if ((unsigned int)alrm.time.tm_sec <= 59) -+ p += sprintf(p, "%02d\n", alrm.time.tm_sec); -+ else -+ p += sprintf(p, "**\n"); -+ -+ p += sprintf(p, "alrm_date\t: "); -+ if ((unsigned int)alrm.time.tm_year <= 200) -+ p += sprintf(p, "%04d-", alrm.time.tm_year + 1900); -+ else -+ p += sprintf(p, "****-"); -+ if ((unsigned int)alrm.time.tm_mon <= 11) -+ p += sprintf(p, "%02d-", alrm.time.tm_mon + 1); -+ else -+ p += sprintf(p, "**-"); -+ if ((unsigned int)alrm.time.tm_mday <= 31) -+ p += sprintf(p, "%02d\n", alrm.time.tm_mday); -+ else -+ p += sprintf(p, "**\n"); -+ p += sprintf(p, "alrm_wakeup\t: %s\n", -+ alrm.enabled ? "yes" : "no"); -+ p += sprintf(p, "alrm_pending\t: %s\n", -+ alrm.pending ? "yes" : "no"); -+ } -+ -+ if (ops->proc) -+ p += ops->proc(p); -+ -+ return p - page; -+} -+ -+int register_rtc(struct rtc_ops *ops) -+{ -+ int ret = -EBUSY; -+ -+ mutex_lock(&rtc_mutex); -+ if (rtc_ops == NULL) { -+ rtc_ops = ops; -+ -+ ret = misc_register(&rtc_miscdev); -+ if (ret == 0) -+ create_proc_read_entry("driver/rtc", 0, NULL, -+ rtc_read_proc, ops); -+ } -+ mutex_unlock(&rtc_mutex); -+ -+ return ret; -+} -+ -+EXPORT_SYMBOL(register_rtc); -+ -+void unregister_rtc(struct rtc_ops *rtc) -+{ -+ mutex_lock(&rtc_mutex); -+ if (rtc == rtc_ops) { -+ remove_proc_entry("driver/rtc", NULL); -+ misc_deregister(&rtc_miscdev); -+ rtc_ops = NULL; -+ } -+ mutex_unlock(&rtc_mutex); -+} -+ -+EXPORT_SYMBOL(unregister_rtc); -diff -Nur linux-3.4.113.orig/arch/nds32/configs/orca_8k_defconfig linux-3.4.113/arch/nds32/configs/orca_8k_defconfig ---- linux-3.4.113.orig/arch/nds32/configs/orca_8k_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.4.113/arch/nds32/configs/orca_8k_defconfig 2016-12-01 20:59:24.328611826 +0100 -@@ -0,0 +1,132 @@ -+CONFIG_EXPERIMENTAL=y -+CONFIG_CROSS_COMPILE="nds32le-linux-" -+# CONFIG_LOCALVERSION_AUTO is not set -+CONFIG_SYSVIPC=y -+CONFIG_POSIX_MQUEUE=y -+CONFIG_BSD_PROCESS_ACCT=y -+CONFIG_BSD_PROCESS_ACCT_V3=y -+CONFIG_IKCONFIG=y -+CONFIG_IKCONFIG_PROC=y -+CONFIG_LOG_BUF_SHIFT=14 -+CONFIG_BLK_DEV_INITRD=y -+CONFIG_CC_OPTIMIZE_FOR_SIZE=y -+CONFIG_SYSCTL_SYSCALL=y -+# CONFIG_HOTPLUG is not set -+# CONFIG_SIGNALFD is not set -+CONFIG_EMBEDDED=y -+# CONFIG_VM_EVENT_COUNTERS is not set -+CONFIG_PROFILING=y -+CONFIG_OPROFILE=y -+CONFIG_MODULES=y -+CONFIG_MODULE_UNLOAD=y -+# CONFIG_BLK_DEV_BSG is not set -+CONFIG_PLATFORM_AHBDMA=y -+CONFIG_PLATFORM_APBDMA=y -+CONFIG_SYS_CLK=30000000 -+CONFIG_UART_CLK=14745600 -+CONFIG_SDRAM_SIZE=0x40000000 -+CONFIG_CPU_CACHE_NONALIASING=y -+CONFIG_ANDES_PAGE_SIZE_8KB=y -+CONFIG_HIGHMEM=y -+CONFIG_HZ_100=y -+CONFIG_CMDLINE="root=/dev/ram0 rw mem=1024M@0x0 initrd=0x1000000,8M earlyprintk=uart8250-32bit,0x99600000 console=ttyS0,38400n8 loglevel=7 rootfstype=ext2 init=/bin/busybox init -s user_debug=-1" -+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -+CONFIG_NET=y -+CONFIG_PACKET=y -+CONFIG_UNIX=y -+CONFIG_NET_KEY=y -+CONFIG_INET=y -+CONFIG_IP_MULTICAST=y -+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set -+# CONFIG_INET_XFRM_MODE_TUNNEL is not set -+# CONFIG_INET_XFRM_MODE_BEET is not set -+# CONFIG_INET_LRO is not set -+# CONFIG_INET_DIAG is not set -+# CONFIG_IPV6 is not set -+CONFIG_BRIDGE=y -+CONFIG_MTD=y -+CONFIG_MTD_CMDLINE_PARTS=y -+CONFIG_MTD_CHAR=y -+CONFIG_MTD_BLOCK=y -+CONFIG_MTD_CFI=y -+CONFIG_MTD_CFI_INTELEXT=y -+CONFIG_MTD_PHYSMAP=y -+CONFIG_MTD_PHYSMAP_COMPAT=y -+CONFIG_MTD_PHYSMAP_START=0x80400000 -+CONFIG_MTD_PHYSMAP_LEN=0x2000000 -+CONFIG_MTD_PHYSMAP_BANKWIDTH=4 -+CONFIG_BLK_DEV_LOOP=y -+CONFIG_BLK_DEV_RAM=y -+CONFIG_BLK_DEV_RAM_SIZE=8192 -+CONFIG_NETDEVICES=y -+CONFIG_TUN=y -+CONFIG_FTMAC100=y -+# CONFIG_INPUT_MOUSEDEV is not set -+CONFIG_INPUT_EVDEV=y -+# CONFIG_INPUT_KEYBOARD is not set -+# CONFIG_INPUT_MOUSE is not set -+CONFIG_INPUT_TOUCHSCREEN=y -+CONFIG_TOUCHSCREEN_CPE_TS=y -+# CONFIG_SERIO is not set -+CONFIG_SERIAL_8250=y -+CONFIG_SERIAL_8250_CONSOLE=y -+CONFIG_SERIAL_8250_NR_UARTS=3 -+CONFIG_SERIAL_8250_RUNTIME_UARTS=3 -+# CONFIG_HW_RANDOM is not set -+CONFIG_GPIOLIB=y -+CONFIG_GPIO_SYSFS=y -+CONFIG_GPIO_FTGPIO010=y -+# CONFIG_HWMON is not set -+CONFIG_WATCHDOG=y -+CONFIG_FTWDT010_WATCHDOG=y -+CONFIG_FB=y -+CONFIG_FB_FTLCDC100=y -+# CONFIG_VGA_CONSOLE is not set -+CONFIG_FRAMEBUFFER_CONSOLE=y -+CONFIG_LOGO=y -+CONFIG_SOUND=y -+CONFIG_SND=y -+CONFIG_SND_PCM_OSS=y -+# CONFIG_SND_SUPPORT_OLD_API is not set -+# CONFIG_SND_VERBOSE_PROCFS is not set -+CONFIG_SND_FTSSP010=y -+# CONFIG_HID_SUPPORT is not set -+# CONFIG_USB_SUPPORT is not set -+CONFIG_MMC=y -+CONFIG_MMC_FTSDC010=y -+CONFIG_RTC_CLASS=y -+# CONFIG_RTC_HCTOSYS is not set -+CONFIG_RTC_DRV_FTRTC010=y -+CONFIG_EXT2_FS=y -+CONFIG_FUSE_FS=y -+CONFIG_MSDOS_FS=y -+CONFIG_VFAT_FS=y -+# CONFIG_PROC_PAGE_MONITOR is not set -+CONFIG_TMPFS=y -+CONFIG_JFFS2_FS=y -+CONFIG_NFS_FS=y -+CONFIG_NFS_V3=y -+CONFIG_NFS_V3_ACL=y -+CONFIG_NFS_V4=y -+CONFIG_NFS_V4_1=y -+CONFIG_NFS_USE_LEGACY_DNS=y -+CONFIG_NLS_CODEPAGE_437=y -+CONFIG_NLS_ISO8859_1=y -+CONFIG_MAGIC_SYSRQ=y -+CONFIG_DEBUG_FS=y -+CONFIG_DEBUG_SHIRQ=y -+CONFIG_SCHEDSTATS=y -+CONFIG_TIMER_STATS=y -+CONFIG_SLUB_DEBUG_ON=y -+CONFIG_DEBUG_RT_MUTEXES=y -+CONFIG_DEBUG_SPINLOCK=y -+CONFIG_DEBUG_MUTEXES=y -+CONFIG_DEBUG_INFO=y -+CONFIG_DEBUG_MEMORY_INIT=y -+CONFIG_DEBUG_LIST=y -+CONFIG_DEBUG_SG=y -+# CONFIG_FTRACE is not set -+CONFIG_DEBUG_USER=y -+CONFIG_DEBUG_ERRORS=y -+# CONFIG_CRYPTO_ANSI_CPRNG is not set -+# CONFIG_CRYPTO_HW is not set -diff -Nur linux-3.4.113.orig/arch/nds32/configs/orca_defconfig linux-3.4.113/arch/nds32/configs/orca_defconfig ---- linux-3.4.113.orig/arch/nds32/configs/orca_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.4.113/arch/nds32/configs/orca_defconfig 2016-12-01 20:59:24.328611826 +0100 -@@ -0,0 +1,125 @@ -+CONFIG_EXPERIMENTAL=y -+CONFIG_CROSS_COMPILE="nds32le-linux-" -+CONFIG_SYSVIPC=y -+CONFIG_POSIX_MQUEUE=y -+CONFIG_BSD_PROCESS_ACCT=y -+CONFIG_BSD_PROCESS_ACCT_V3=y -+CONFIG_IKCONFIG=y -+CONFIG_IKCONFIG_PROC=y -+CONFIG_LOG_BUF_SHIFT=14 -+CONFIG_NAMESPACES=y -+CONFIG_SYSCTL_SYSCALL=y -+CONFIG_KALLSYMS_ALL=y -+# CONFIG_HOTPLUG is not set -+CONFIG_EMBEDDED=y -+# CONFIG_VM_EVENT_COUNTERS is not set -+CONFIG_PROFILING=y -+CONFIG_OPROFILE=y -+CONFIG_MODULES=y -+CONFIG_MODULE_UNLOAD=y -+# CONFIG_BLK_DEV_BSG is not set -+CONFIG_MEASURE_INTERRUPT_LATENCY=y -+CONFIG_PLATFORM_AHBDMA=y -+CONFIG_PLATFORM_APBDMA=y -+CONFIG_SYS_CLK=30000000 -+CONFIG_UART_CLK=14745600 -+CONFIG_SDRAM_SIZE=0x40000000 -+CONFIG_MEMORY_START=0x0 -+# CONFIG_HWZOL is not set -+CONFIG_IVIC=y -+CONFIG_HIGH_RES_TIMERS=y -+CONFIG_PREEMPT=y -+CONFIG_HZ_100=y -+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -+CONFIG_NET=y -+CONFIG_PACKET=y -+CONFIG_UNIX=y -+CONFIG_NET_KEY=y -+CONFIG_INET=y -+CONFIG_IP_MULTICAST=y -+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set -+# CONFIG_INET_XFRM_MODE_TUNNEL is not set -+# CONFIG_INET_XFRM_MODE_BEET is not set -+# CONFIG_INET_LRO is not set -+# CONFIG_INET_DIAG is not set -+# CONFIG_IPV6 is not set -+CONFIG_BRIDGE=y -+CONFIG_MTD=y -+CONFIG_MTD_CMDLINE_PARTS=y -+CONFIG_MTD_CHAR=y -+CONFIG_MTD_BLOCK=y -+CONFIG_MTD_CFI=y -+CONFIG_MTD_CFI_INTELEXT=y -+CONFIG_MTD_PHYSMAP=y -+CONFIG_MTD_PHYSMAP_COMPAT=y -+CONFIG_MTD_PHYSMAP_START=0x80400000 -+CONFIG_MTD_PHYSMAP_LEN=0x2000000 -+CONFIG_MTD_PHYSMAP_BANKWIDTH=4 -+CONFIG_BLK_DEV_LOOP=y -+CONFIG_BLK_DEV_RAM=y -+CONFIG_BLK_DEV_RAM_SIZE=8192 -+CONFIG_NETDEVICES=y -+CONFIG_TUN=y -+CONFIG_FTMAC100=y -+# CONFIG_INPUT_MOUSEDEV is not set -+CONFIG_INPUT_EVDEV=y -+# CONFIG_INPUT_KEYBOARD is not set -+# CONFIG_INPUT_MOUSE is not set -+CONFIG_INPUT_TOUCHSCREEN=y -+CONFIG_TOUCHSCREEN_CPE_TS=m -+# CONFIG_SERIO is not set -+CONFIG_SERIAL_8250=y -+CONFIG_SERIAL_8250_CONSOLE=y -+CONFIG_SERIAL_8250_NR_UARTS=3 -+CONFIG_SERIAL_8250_RUNTIME_UARTS=3 -+# CONFIG_HW_RANDOM is not set -+CONFIG_GPIOLIB=y -+CONFIG_GPIO_SYSFS=y -+CONFIG_GPIO_FTGPIO010=m -+# CONFIG_HWMON is not set -+CONFIG_WATCHDOG=y -+CONFIG_FTWDT010_WATCHDOG=m -+CONFIG_FB=y -+CONFIG_FB_FTLCDC100=y -+# CONFIG_VGA_CONSOLE is not set -+CONFIG_FRAMEBUFFER_CONSOLE=y -+CONFIG_LOGO=y -+CONFIG_SOUND=y -+CONFIG_SND=y -+CONFIG_SND_PCM_OSS=y -+# CONFIG_SND_SUPPORT_OLD_API is not set -+# CONFIG_SND_VERBOSE_PROCFS is not set -+CONFIG_SND_FTSSP010=m -+# CONFIG_HID_SUPPORT is not set -+# CONFIG_USB_SUPPORT is not set -+CONFIG_MMC=y -+CONFIG_MMC_FTSDC010=y -+CONFIG_RTC_CLASS=y -+# CONFIG_RTC_HCTOSYS is not set -+CONFIG_RTC_DRV_FTRTC010=y -+CONFIG_EXT2_FS=y -+CONFIG_FUSE_FS=y -+CONFIG_MSDOS_FS=y -+CONFIG_VFAT_FS=y -+CONFIG_TMPFS=y -+CONFIG_TMPFS_POSIX_ACL=y -+CONFIG_CONFIGFS_FS=y -+CONFIG_JFFS2_FS=y -+CONFIG_NFS_FS=y -+CONFIG_NFS_V3=y -+CONFIG_NFS_V3_ACL=y -+CONFIG_NFS_V4=y -+CONFIG_NFS_V4_1=y -+CONFIG_NFS_USE_LEGACY_DNS=y -+CONFIG_NLS_CODEPAGE_437=y -+CONFIG_NLS_ISO8859_1=y -+CONFIG_MAGIC_SYSRQ=y -+CONFIG_HEADERS_CHECK=y -+CONFIG_DEBUG_SECTION_MISMATCH=y -+# CONFIG_SCHED_DEBUG is not set -+CONFIG_DEBUG_INFO=y -+# CONFIG_FTRACE is not set -+CONFIG_DEBUG_USER=y -+CONFIG_DEBUG_ERRORS=y -+# CONFIG_CRYPTO_ANSI_CPRNG is not set -+# CONFIG_CRYPTO_HW is not set -diff -Nur linux-3.4.113.orig/arch/nds32/configs/qemu_defconfig linux-3.4.113/arch/nds32/configs/qemu_defconfig ---- linux-3.4.113.orig/arch/nds32/configs/qemu_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.4.113/arch/nds32/configs/qemu_defconfig 2016-12-01 20:59:24.328611826 +0100 -@@ -0,0 +1,98 @@ -+CONFIG_EXPERIMENTAL=y -+# CONFIG_LOCALVERSION_AUTO is not set -+CONFIG_SYSVIPC=y -+CONFIG_BSD_PROCESS_ACCT=y -+CONFIG_BSD_PROCESS_ACCT_V3=y -+CONFIG_LOG_BUF_SHIFT=14 -+CONFIG_BLK_DEV_INITRD=y -+CONFIG_CC_OPTIMIZE_FOR_SIZE=y -+CONFIG_SYSCTL_SYSCALL=y -+# CONFIG_HOTPLUG is not set -+# CONFIG_SIGNALFD is not set -+CONFIG_EMBEDDED=y -+# CONFIG_VM_EVENT_COUNTERS is not set -+CONFIG_PROFILING=y -+CONFIG_OPROFILE=y -+CONFIG_MODULES=y -+CONFIG_MODULE_UNLOAD=y -+# CONFIG_BLK_DEV_BSG is not set -+CONFIG_PLAT_QEMU=y -+CONFIG_SYS_CLK=40000000 -+CONFIG_UART_CLK=14745600 -+CONFIG_SDRAM_SIZE=0x10000000 -+CONFIG_HZ_100=y -+CONFIG_CMDLINE="root=/dev/ram0 rw mem=1024M@0x0 initrd=0x1000000,8M earlyprintk=uart8250-32bit,0x99600000 console=ttyS0,38400n8 loglevel=7 rootfstype=ext2 init=/bin/busybox init -s user_debug=-1" -+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -+CONFIG_NET=y -+CONFIG_PACKET=y -+CONFIG_UNIX=y -+CONFIG_NET_KEY=y -+CONFIG_INET=y -+CONFIG_IP_MULTICAST=y -+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set -+# CONFIG_INET_XFRM_MODE_TUNNEL is not set -+# CONFIG_INET_XFRM_MODE_BEET is not set -+# CONFIG_INET_LRO is not set -+# CONFIG_INET_DIAG is not set -+# CONFIG_IPV6 is not set -+CONFIG_BLK_DEV_LOOP=y -+CONFIG_BLK_DEV_RAM=y -+CONFIG_BLK_DEV_RAM_SIZE=8192 -+CONFIG_FTSDC010=y -+CONFIG_NETDEVICES=y -+CONFIG_FTMAC100=y -+# CONFIG_INPUT_MOUSEDEV is not set -+CONFIG_INPUT_EVDEV=y -+# CONFIG_INPUT_KEYBOARD is not set -+# CONFIG_INPUT_MOUSE is not set -+CONFIG_INPUT_TOUCHSCREEN=y -+# CONFIG_SERIO is not set -+CONFIG_SERIAL_8250=y -+CONFIG_SERIAL_8250_CONSOLE=y -+CONFIG_SERIAL_8250_NR_UARTS=3 -+CONFIG_SERIAL_8250_RUNTIME_UARTS=3 -+# CONFIG_HW_RANDOM is not set -+# CONFIG_HWMON is not set -+CONFIG_FB=y -+# CONFIG_VGA_CONSOLE is not set -+CONFIG_FRAMEBUFFER_CONSOLE=y -+CONFIG_LOGO=y -+# CONFIG_HID_SUPPORT is not set -+# CONFIG_USB_SUPPORT is not set -+CONFIG_EXT2_FS=y -+CONFIG_EXT2_FS_XATTR=y -+CONFIG_EXT2_FS_POSIX_ACL=y -+CONFIG_EXT2_FS_SECURITY=y -+CONFIG_EXT2_FS_XIP=y -+CONFIG_EXT3_FS=y -+CONFIG_EXT3_FS_POSIX_ACL=y -+CONFIG_EXT3_FS_SECURITY=y -+CONFIG_EXT4_FS=y -+CONFIG_EXT4_FS_POSIX_ACL=y -+CONFIG_EXT4_FS_SECURITY=y -+CONFIG_EXT4_DEBUG=y -+CONFIG_FUSE_FS=y -+CONFIG_MSDOS_FS=y -+CONFIG_VFAT_FS=y -+# CONFIG_PROC_PAGE_MONITOR is not set -+CONFIG_TMPFS=y -+CONFIG_NFS_FS=y -+CONFIG_NFS_V3=y -+CONFIG_NLS_CODEPAGE_437=y -+CONFIG_NLS_ISO8859_1=y -+CONFIG_MAGIC_SYSRQ=y -+CONFIG_DEBUG_FS=y -+CONFIG_DEBUG_SHIRQ=y -+CONFIG_DETECT_HUNG_TASK=y -+CONFIG_SCHEDSTATS=y -+CONFIG_TIMER_STATS=y -+CONFIG_SLUB_DEBUG_ON=y -+CONFIG_DEBUG_RT_MUTEXES=y -+CONFIG_DEBUG_MUTEXES=y -+CONFIG_DEBUG_INFO=y -+CONFIG_DEBUG_LIST=y -+CONFIG_DEBUG_SG=y -+CONFIG_DEBUG_USER=y -+CONFIG_DEBUG_ERRORS=y -+# CONFIG_CRYPTO_ANSI_CPRNG is not set -+# CONFIG_CRYPTO_HW is not set -diff -Nur linux-3.4.113.orig/arch/nds32/configs/vep-be_defconfig linux-3.4.113/arch/nds32/configs/vep-be_defconfig ---- linux-3.4.113.orig/arch/nds32/configs/vep-be_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.4.113/arch/nds32/configs/vep-be_defconfig 2016-12-01 20:59:24.328611826 +0100 -@@ -0,0 +1,777 @@ -+# -+# Automatically generated make config: don't edit -+# Linux kernel version: 2.6.29 -+# Mon Jul 13 11:42:57 2009 -+# -+CONFIG_NDS32=y -+CONFIG_NO_IOPORT=y -+CONFIG_GENERIC_IOMAP=y -+CONFIG_RWSEM_GENERIC_SPINLOCK=y -+CONFIG_GENERIC_HWEIGHT=y -+CONFIG_GENERIC_FIND_NEXT_BIT=y -+CONFIG_GENERIC_CALIBRATE_DELAY=y -+CONFIG_GENERIC_HARDIRQS=y -+CONFIG_LOCKDEP_SUPPORT=y -+CONFIG_STACKTRACE_SUPPORT=y -+CONFIG_HAVE_LATENCYTOP_SUPPORT=y -+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -+ -+# -+# General setup -+# -+CONFIG_EXPERIMENTAL=y -+CONFIG_BROKEN_ON_SMP=y -+CONFIG_INIT_ENV_ARG_LIMIT=32 -+CONFIG_LOCALVERSION="" -+# CONFIG_LOCALVERSION_AUTO is not set -+CONFIG_SWAP=y -+CONFIG_SYSVIPC=y -+CONFIG_SYSVIPC_SYSCTL=y -+# CONFIG_POSIX_MQUEUE is not set -+CONFIG_BSD_PROCESS_ACCT=y -+CONFIG_BSD_PROCESS_ACCT_V3=y -+# CONFIG_TASKSTATS is not set -+# CONFIG_AUDIT is not set -+ -+# -+# RCU Subsystem -+# -+CONFIG_CLASSIC_RCU=y -+# CONFIG_TREE_RCU is not set -+# CONFIG_PREEMPT_RCU is not set -+# CONFIG_TREE_RCU_TRACE is not set -+# CONFIG_PREEMPT_RCU_TRACE is not set -+# CONFIG_IKCONFIG is not set -+CONFIG_LOG_BUF_SHIFT=14 -+# CONFIG_GROUP_SCHED is not set -+# CONFIG_CGROUPS is not set -+# CONFIG_SYSFS_DEPRECATED_V2 is not set -+# CONFIG_RELAY is not set -+# CONFIG_NAMESPACES is not set -+CONFIG_BLK_DEV_INITRD=y -+CONFIG_INITRAMFS_SOURCE="" -+CONFIG_CC_OPTIMIZE_FOR_SIZE=y -+CONFIG_SYSCTL=y -+CONFIG_ANON_INODES=y -+CONFIG_EMBEDDED=y -+CONFIG_UID16=y -+CONFIG_SYSCTL_SYSCALL=y -+# CONFIG_KALLSYMS is not set -+# CONFIG_HOTPLUG is not set -+CONFIG_PRINTK=y -+CONFIG_BUG=y -+# CONFIG_ELF_CORE is not set -+CONFIG_BASE_FULL=y -+CONFIG_FUTEX=y -+CONFIG_EPOLL=y -+# CONFIG_SIGNALFD is not set -+CONFIG_TIMERFD=y -+CONFIG_EVENTFD=y -+CONFIG_SHMEM=y -+CONFIG_AIO=y -+# CONFIG_VM_EVENT_COUNTERS is not set -+CONFIG_SLUB_DEBUG=y -+CONFIG_COMPAT_BRK=y -+# CONFIG_SLAB is not set -+CONFIG_SLUB=y -+# CONFIG_SLOB is not set -+CONFIG_PROFILING=y -+CONFIG_TRACEPOINTS=y -+# CONFIG_MARKERS is not set -+CONFIG_OPROFILE=y -+CONFIG_HAVE_OPROFILE=y -+CONFIG_HAVE_KPROBES=y -+CONFIG_HAVE_KRETPROBES=y -+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set -+CONFIG_SLABINFO=y -+CONFIG_RT_MUTEXES=y -+CONFIG_BASE_SMALL=0 -+CONFIG_MODULES=y -+# CONFIG_MODULE_FORCE_LOAD is not set -+CONFIG_MODULE_UNLOAD=y -+# CONFIG_MODULE_FORCE_UNLOAD is not set -+# CONFIG_MODVERSIONS is not set -+# CONFIG_MODULE_SRCVERSION_ALL is not set -+CONFIG_BLOCK=y -+# CONFIG_LBD is not set -+# CONFIG_BLK_DEV_IO_TRACE is not set -+# CONFIG_BLK_DEV_BSG is not set -+# CONFIG_BLK_DEV_INTEGRITY is not set -+ -+# -+# IO Schedulers -+# -+CONFIG_IOSCHED_NOOP=y -+# CONFIG_IOSCHED_AS is not set -+# CONFIG_IOSCHED_DEADLINE is not set -+# CONFIG_IOSCHED_CFQ is not set -+# CONFIG_DEFAULT_AS is not set -+# CONFIG_DEFAULT_DEADLINE is not set -+# CONFIG_DEFAULT_CFQ is not set -+CONFIG_DEFAULT_NOOP=y -+CONFIG_DEFAULT_IOSCHED="noop" -+# CONFIG_FREEZER is not set -+ -+# -+# System Type -+# -+# CONFIG_PLAT_FARADAY is not set -+CONFIG_PLAT_VEP=y -+# CONFIG_PLAT_AG101 is not set -+# CONFIG_PLAT_AG102 is not set -+# CONFIG_PLAT_AG101P is not set -+# CONFIG_PLAT_QEMU is not set -+CONFIG_PLATFORM_INTC=y -+ -+# -+# VEP Platform Options -+# -+# CONFIG_CACHE_L2 is not set -+ -+# -+# Common Platform Options -+# -+# CONFIG_PLATFORM_AHBDMA is not set -+# CONFIG_PLATFORM_APBDMA is not set -+CONFIG_SYS_CLK=67737600 -+CONFIG_UART_CLK=36864000 -+CONFIG_SDRAM_SIZE=0x10000000 -+ -+# -+# Processor Features -+# -+CONFIG_CPU_CUSTOM=y -+# CONFIG_FPU is not set -+# CONFIG_AUDIO is not set -+# CONFIG_EVIC is not set -+CONFIG_CPU_CONTEXT_ID=y -+CONFIG_ANDES_PAGE_SIZE_4KB=y -+# CONFIG_ANDES_PAGE_SIZE_8KB is not set -+# CONFIG_KERNEL_SPACE_LARGE_PAGE is not set -+# CONFIG_CPU_ICACHE_DISABLE is not set -+# CONFIG_CPU_DCACHE_DISABLE is not set -+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set -+# CONFIG_ALIGNMENT_TRAP is not set -+CONFIG_MMU=y -+ -+# -+# Kernel Features -+# -+CONFIG_PREEMPT_NONE=y -+# CONFIG_PREEMPT_VOLUNTARY is not set -+# CONFIG_PREEMPT is not set -+CONFIG_SELECT_MEMORY_MODEL=y -+CONFIG_FLATMEM_MANUAL=y -+# CONFIG_DISCONTIGMEM_MANUAL is not set -+# CONFIG_SPARSEMEM_MANUAL is not set -+CONFIG_FLATMEM=y -+CONFIG_FLAT_NODE_MEM_MAP=y -+CONFIG_PAGEFLAGS_EXTENDED=y -+CONFIG_SPLIT_PTLOCK_CPUS=4 -+# CONFIG_PHYS_ADDR_T_64BIT is not set -+CONFIG_ZONE_DMA_FLAG=0 -+CONFIG_VIRT_TO_BUS=y -+CONFIG_UNEVICTABLE_LRU=y -+CONFIG_FORCE_MAX_ZONEORDER=11 -+CONFIG_HZ_100=y -+# CONFIG_HZ_250 is not set -+# CONFIG_HZ_300 is not set -+# CONFIG_HZ_1000 is not set -+CONFIG_HZ=100 -+# CONFIG_SCHED_HRTICK is not set -+CONFIG_CMDLINE="root=/dev/ram0 rw mem=64M@0x0 initrd=0x1000000,8M console=ttyS0,38400n8 rootfstype=ext2 init=/bin/busybox init -s user_debug=-1" -+ -+# -+# Power management options -+# -+CONFIG_SYS_SUPPORTS_APM_EMULATION=y -+CONFIG_ARCH_SUSPEND_POSSIBLE=y -+# CONFIG_PM is not set -+ -+# -+# Bus options -+# -+# CONFIG_PCI is not set -+# CONFIG_ARCH_SUPPORTS_MSI is not set -+ -+# -+# Executable file formats -+# -+CONFIG_BINFMT_ELF=y -+# CONFIG_HAVE_AOUT is not set -+# CONFIG_BINFMT_MISC is not set -+CONFIG_NET=y -+ -+# -+# Networking options -+# -+CONFIG_COMPAT_NET_DEV_OPS=y -+CONFIG_PACKET=y -+# CONFIG_PACKET_MMAP is not set -+CONFIG_UNIX=y -+CONFIG_XFRM=y -+# CONFIG_XFRM_USER is not set -+# CONFIG_XFRM_SUB_POLICY is not set -+# CONFIG_XFRM_MIGRATE is not set -+# CONFIG_XFRM_STATISTICS is not set -+CONFIG_NET_KEY=y -+# CONFIG_NET_KEY_MIGRATE is not set -+CONFIG_INET=y -+CONFIG_IP_MULTICAST=y -+# CONFIG_IP_ADVANCED_ROUTER is not set -+CONFIG_IP_FIB_HASH=y -+# CONFIG_IP_PNP is not set -+# CONFIG_NET_IPIP is not set -+# CONFIG_NET_IPGRE is not set -+# CONFIG_IP_MROUTE is not set -+# CONFIG_ARPD is not set -+# CONFIG_SYN_COOKIES is not set -+# CONFIG_INET_AH is not set -+# CONFIG_INET_ESP is not set -+# CONFIG_INET_IPCOMP is not set -+# CONFIG_INET_XFRM_TUNNEL is not set -+# CONFIG_INET_TUNNEL is not set -+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set -+# CONFIG_INET_XFRM_MODE_TUNNEL is not set -+# CONFIG_INET_XFRM_MODE_BEET is not set -+# CONFIG_INET_LRO is not set -+# CONFIG_INET_DIAG is not set -+# CONFIG_TCP_CONG_ADVANCED is not set -+CONFIG_TCP_CONG_CUBIC=y -+CONFIG_DEFAULT_TCP_CONG="cubic" -+# CONFIG_TCP_MD5SIG is not set -+# CONFIG_IPV6 is not set -+# CONFIG_NETWORK_SECMARK is not set -+# CONFIG_NETFILTER is not set -+# CONFIG_IP_DCCP is not set -+# CONFIG_IP_SCTP is not set -+# CONFIG_TIPC is not set -+# CONFIG_ATM is not set -+# CONFIG_BRIDGE is not set -+# CONFIG_NET_DSA is not set -+# CONFIG_VLAN_8021Q is not set -+# CONFIG_DECNET is not set -+# CONFIG_LLC2 is not set -+# CONFIG_IPX is not set -+# CONFIG_ATALK is not set -+# CONFIG_X25 is not set -+# CONFIG_LAPB is not set -+# CONFIG_ECONET is not set -+# CONFIG_WAN_ROUTER is not set -+# CONFIG_NET_SCHED is not set -+# CONFIG_DCB is not set -+ -+# -+# Network testing -+# -+# CONFIG_NET_PKTGEN is not set -+# CONFIG_HAMRADIO is not set -+# CONFIG_CAN is not set -+# CONFIG_IRDA is not set -+# CONFIG_BT is not set -+# CONFIG_AF_RXRPC is not set -+# CONFIG_PHONET is not set -+CONFIG_WIRELESS=y -+# CONFIG_CFG80211 is not set -+CONFIG_WIRELESS_OLD_REGULATORY=y -+# CONFIG_WIRELESS_EXT is not set -+# CONFIG_LIB80211 is not set -+# CONFIG_MAC80211 is not set -+# CONFIG_WIMAX is not set -+# CONFIG_RFKILL is not set -+# CONFIG_NET_9P is not set -+ -+# -+# Device Drivers -+# -+ -+# -+# Generic Driver Options -+# -+CONFIG_STANDALONE=y -+CONFIG_PREVENT_FIRMWARE_BUILD=y -+# CONFIG_SYS_HYPERVISOR is not set -+# CONFIG_CONNECTOR is not set -+# CONFIG_MTD is not set -+# CONFIG_PARPORT is not set -+CONFIG_BLK_DEV=y -+# CONFIG_BLK_DEV_COW_COMMON is not set -+CONFIG_BLK_DEV_LOOP=y -+# CONFIG_BLK_DEV_CRYPTOLOOP is not set -+# CONFIG_BLK_DEV_NBD is not set -+CONFIG_BLK_DEV_RAM=y -+CONFIG_BLK_DEV_RAM_COUNT=16 -+CONFIG_BLK_DEV_RAM_SIZE=8192 -+# CONFIG_BLK_DEV_XIP is not set -+# CONFIG_CDROM_PKTCDVD is not set -+# CONFIG_ATA_OVER_ETH is not set -+# CONFIG_FTSDC010 is not set -+# CONFIG_FTCFC010 is not set -+# CONFIG_BLK_DEV_HD is not set -+# CONFIG_MISC_DEVICES is not set -+CONFIG_HAVE_IDE=y -+# CONFIG_IDE is not set -+ -+# -+# SCSI device support -+# -+# CONFIG_RAID_ATTRS is not set -+# CONFIG_SCSI is not set -+# CONFIG_SCSI_DMA is not set -+# CONFIG_SCSI_NETLINK is not set -+# CONFIG_ATA is not set -+# CONFIG_MD is not set -+CONFIG_NETDEVICES=y -+# CONFIG_DUMMY is not set -+# CONFIG_BONDING is not set -+# CONFIG_MACVLAN is not set -+# CONFIG_EQUALIZER is not set -+# CONFIG_TUN is not set -+# CONFIG_VETH is not set -+# CONFIG_PHYLIB is not set -+CONFIG_NET_ETHERNET=y -+# CONFIG_MII is not set -+# CONFIG_SMC91X is not set -+# CONFIG_DNET is not set -+# CONFIG_IBM_NEW_EMAC_ZMII is not set -+# CONFIG_IBM_NEW_EMAC_RGMII is not set -+# CONFIG_IBM_NEW_EMAC_TAH is not set -+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set -+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set -+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set -+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set -+# CONFIG_B44 is not set -+CONFIG_FTMAC100=y -+# CONFIG_NETDEV_1000 is not set -+# CONFIG_NETDEV_10000 is not set -+ -+# -+# Wireless LAN -+# -+# CONFIG_WLAN_PRE80211 is not set -+# CONFIG_WLAN_80211 is not set -+# CONFIG_IWLWIFI_LEDS is not set -+ -+# -+# Enable WiMAX (Networking options) to see the WiMAX drivers -+# -+# CONFIG_WAN is not set -+# CONFIG_PPP is not set -+# CONFIG_SLIP is not set -+# CONFIG_NETCONSOLE is not set -+# CONFIG_NETPOLL is not set -+# CONFIG_NET_POLL_CONTROLLER is not set -+# CONFIG_ISDN is not set -+# CONFIG_PHONE is not set -+ -+# -+# Input device support -+# -+CONFIG_INPUT=y -+# CONFIG_INPUT_FF_MEMLESS is not set -+# CONFIG_INPUT_POLLDEV is not set -+ -+# -+# Userland interfaces -+# -+# CONFIG_INPUT_MOUSEDEV is not set -+# CONFIG_INPUT_JOYDEV is not set -+# CONFIG_INPUT_EVDEV is not set -+# CONFIG_INPUT_EVBUG is not set -+ -+# -+# Input Device Drivers -+# -+# CONFIG_INPUT_KEYBOARD is not set -+# CONFIG_INPUT_MOUSE is not set -+# CONFIG_INPUT_JOYSTICK is not set -+# CONFIG_INPUT_TABLET is not set -+# CONFIG_INPUT_TOUCHSCREEN is not set -+# CONFIG_INPUT_MISC is not set -+ -+# -+# Hardware I/O ports -+# -+# CONFIG_SERIO is not set -+# CONFIG_GAMEPORT is not set -+ -+# -+# Character devices -+# -+CONFIG_VT=y -+CONFIG_CONSOLE_TRANSLATIONS=y -+CONFIG_VT_CONSOLE=y -+CONFIG_HW_CONSOLE=y -+# CONFIG_VT_HW_CONSOLE_BINDING is not set -+CONFIG_DEVKMEM=y -+# CONFIG_SERIAL_NONSTANDARD is not set -+ -+# -+# Serial drivers -+# -+CONFIG_SERIAL_8250=y -+CONFIG_SERIAL_8250_CONSOLE=y -+CONFIG_SERIAL_8250_NR_UARTS=3 -+CONFIG_SERIAL_8250_RUNTIME_UARTS=3 -+# CONFIG_SERIAL_8250_EXTENDED is not set -+ -+# -+# Non-8250 serial port support -+# -+CONFIG_SERIAL_CORE=y -+CONFIG_SERIAL_CORE_CONSOLE=y -+CONFIG_UNIX98_PTYS=y -+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -+CONFIG_LEGACY_PTYS=y -+CONFIG_LEGACY_PTY_COUNT=256 -+# CONFIG_IPMI_HANDLER is not set -+# CONFIG_HW_RANDOM is not set -+# CONFIG_R3964 is not set -+# CONFIG_GPIO_FTGPIO010 is not set -+# CONFIG_RAW_DRIVER is not set -+# CONFIG_TCG_TPM is not set -+# CONFIG_I2C is not set -+# CONFIG_SPI is not set -+# CONFIG_W1 is not set -+# CONFIG_POWER_SUPPLY is not set -+# CONFIG_HWMON is not set -+# CONFIG_THERMAL is not set -+# CONFIG_THERMAL_HWMON is not set -+# CONFIG_WATCHDOG is not set -+CONFIG_SSB_POSSIBLE=y -+ -+# -+# Sonics Silicon Backplane -+# -+# CONFIG_SSB is not set -+ -+# -+# Multifunction device drivers -+# -+# CONFIG_MFD_CORE is not set -+# CONFIG_MFD_SM501 is not set -+# CONFIG_HTC_PASIC3 is not set -+# CONFIG_MFD_TMIO is not set -+# CONFIG_REGULATOR is not set -+ -+# -+# Multimedia devices -+# -+ -+# -+# Multimedia core support -+# -+# CONFIG_VIDEO_DEV is not set -+# CONFIG_DVB_CORE is not set -+# CONFIG_VIDEO_MEDIA is not set -+ -+# -+# Multimedia drivers -+# -+# CONFIG_DAB is not set -+ -+# -+# Graphics support -+# -+# CONFIG_VGASTATE is not set -+# CONFIG_VIDEO_OUTPUT_CONTROL is not set -+# CONFIG_FB is not set -+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set -+ -+# -+# Display device support -+# -+# CONFIG_DISPLAY_SUPPORT is not set -+ -+# -+# Console display driver support -+# -+# CONFIG_VGA_CONSOLE is not set -+CONFIG_DUMMY_CONSOLE=y -+# CONFIG_SOUND is not set -+# CONFIG_HID_SUPPORT is not set -+# CONFIG_USB_SUPPORT is not set -+# CONFIG_MMC is not set -+# CONFIG_MEMSTICK is not set -+# CONFIG_NEW_LEDS is not set -+# CONFIG_ACCESSIBILITY is not set -+CONFIG_RTC_LIB=y -+# CONFIG_RTC_CLASS is not set -+# CONFIG_DMADEVICES is not set -+# CONFIG_UIO is not set -+# CONFIG_STAGING is not set -+ -+# -+# File systems -+# -+CONFIG_EXT2_FS=y -+# CONFIG_EXT2_FS_XATTR is not set -+# CONFIG_EXT2_FS_XIP is not set -+# CONFIG_EXT3_FS is not set -+# CONFIG_EXT4_FS is not set -+# CONFIG_REISERFS_FS is not set -+# CONFIG_JFS_FS is not set -+# CONFIG_FS_POSIX_ACL is not set -+CONFIG_FILE_LOCKING=y -+# CONFIG_XFS_FS is not set -+# CONFIG_OCFS2_FS is not set -+# CONFIG_BTRFS_FS is not set -+CONFIG_DNOTIFY=y -+CONFIG_INOTIFY=y -+CONFIG_INOTIFY_USER=y -+# CONFIG_QUOTA is not set -+# CONFIG_AUTOFS_FS is not set -+# CONFIG_AUTOFS4_FS is not set -+CONFIG_FUSE_FS=y -+ -+# -+# CD-ROM/DVD Filesystems -+# -+# CONFIG_ISO9660_FS is not set -+# CONFIG_UDF_FS is not set -+ -+# -+# DOS/FAT/NT Filesystems -+# -+# CONFIG_MSDOS_FS is not set -+# CONFIG_VFAT_FS is not set -+# CONFIG_NTFS_FS is not set -+ -+# -+# Pseudo filesystems -+# -+CONFIG_PROC_FS=y -+# CONFIG_PROC_KCORE is not set -+CONFIG_PROC_SYSCTL=y -+# CONFIG_PROC_PAGE_MONITOR is not set -+CONFIG_SYSFS=y -+CONFIG_TMPFS=y -+# CONFIG_TMPFS_POSIX_ACL is not set -+# CONFIG_HUGETLB_PAGE is not set -+# CONFIG_CONFIGFS_FS is not set -+CONFIG_MISC_FILESYSTEMS=y -+# CONFIG_ADFS_FS is not set -+# CONFIG_AFFS_FS is not set -+# CONFIG_HFS_FS is not set -+# CONFIG_HFSPLUS_FS is not set -+# CONFIG_BEFS_FS is not set -+# CONFIG_BFS_FS is not set -+# CONFIG_EFS_FS is not set -+# CONFIG_CRAMFS is not set -+# CONFIG_SQUASHFS is not set -+# CONFIG_VXFS_FS is not set -+# CONFIG_MINIX_FS is not set -+# CONFIG_OMFS_FS is not set -+# CONFIG_HPFS_FS is not set -+# CONFIG_QNX4FS_FS is not set -+# CONFIG_ROMFS_FS is not set -+# CONFIG_SYSV_FS is not set -+# CONFIG_UFS_FS is not set -+CONFIG_NETWORK_FILESYSTEMS=y -+CONFIG_NFS_FS=y -+CONFIG_NFS_V3=y -+# CONFIG_NFS_V3_ACL is not set -+# CONFIG_NFS_V4 is not set -+# CONFIG_NFSD is not set -+CONFIG_LOCKD=y -+CONFIG_LOCKD_V4=y -+CONFIG_NFS_COMMON=y -+CONFIG_SUNRPC=y -+# CONFIG_SUNRPC_REGISTER_V4 is not set -+# CONFIG_RPCSEC_GSS_KRB5 is not set -+# CONFIG_RPCSEC_GSS_SPKM3 is not set -+# CONFIG_SMB_FS is not set -+# CONFIG_CIFS is not set -+# CONFIG_NCP_FS is not set -+# CONFIG_CODA_FS is not set -+# CONFIG_AFS_FS is not set -+ -+# -+# Partition Types -+# -+# CONFIG_PARTITION_ADVANCED is not set -+CONFIG_MSDOS_PARTITION=y -+CONFIG_NLS=y -+CONFIG_NLS_DEFAULT="iso8859-1" -+CONFIG_NLS_CODEPAGE_437=y -+# CONFIG_NLS_CODEPAGE_737 is not set -+# CONFIG_NLS_CODEPAGE_775 is not set -+# CONFIG_NLS_CODEPAGE_850 is not set -+# CONFIG_NLS_CODEPAGE_852 is not set -+# CONFIG_NLS_CODEPAGE_855 is not set -+# CONFIG_NLS_CODEPAGE_857 is not set -+# CONFIG_NLS_CODEPAGE_860 is not set -+# CONFIG_NLS_CODEPAGE_861 is not set -+# CONFIG_NLS_CODEPAGE_862 is not set -+# CONFIG_NLS_CODEPAGE_863 is not set -+# CONFIG_NLS_CODEPAGE_864 is not set -+# CONFIG_NLS_CODEPAGE_865 is not set -+# CONFIG_NLS_CODEPAGE_866 is not set -+# CONFIG_NLS_CODEPAGE_869 is not set -+# CONFIG_NLS_CODEPAGE_936 is not set -+# CONFIG_NLS_CODEPAGE_950 is not set -+# CONFIG_NLS_CODEPAGE_932 is not set -+# CONFIG_NLS_CODEPAGE_949 is not set -+# CONFIG_NLS_CODEPAGE_874 is not set -+# CONFIG_NLS_ISO8859_8 is not set -+# CONFIG_NLS_CODEPAGE_1250 is not set -+# CONFIG_NLS_CODEPAGE_1251 is not set -+# CONFIG_NLS_ASCII is not set -+CONFIG_NLS_ISO8859_1=y -+# CONFIG_NLS_ISO8859_2 is not set -+# CONFIG_NLS_ISO8859_3 is not set -+# CONFIG_NLS_ISO8859_4 is not set -+# CONFIG_NLS_ISO8859_5 is not set -+# CONFIG_NLS_ISO8859_6 is not set -+# CONFIG_NLS_ISO8859_7 is not set -+# CONFIG_NLS_ISO8859_9 is not set -+# CONFIG_NLS_ISO8859_13 is not set -+# CONFIG_NLS_ISO8859_14 is not set -+# CONFIG_NLS_ISO8859_15 is not set -+# CONFIG_NLS_KOI8_R is not set -+# CONFIG_NLS_KOI8_U is not set -+# CONFIG_NLS_UTF8 is not set -+# CONFIG_DLM is not set -+ -+# -+# Kernel hacking -+# -+CONFIG_TRACE_IRQFLAGS_SUPPORT=y -+# CONFIG_PRINTK_TIME is not set -+CONFIG_ENABLE_WARN_DEPRECATED=y -+CONFIG_ENABLE_MUST_CHECK=y -+CONFIG_FRAME_WARN=1024 -+# CONFIG_MAGIC_SYSRQ is not set -+# CONFIG_UNUSED_SYMBOLS is not set -+CONFIG_DEBUG_FS=y -+# CONFIG_HEADERS_CHECK is not set -+# CONFIG_DEBUG_KERNEL is not set -+# CONFIG_SLUB_DEBUG_ON is not set -+# CONFIG_SLUB_STATS is not set -+CONFIG_STACKTRACE=y -+# CONFIG_DEBUG_MEMORY_INIT is not set -+CONFIG_FRAME_POINTER=y -+# CONFIG_RCU_CPU_STALL_DETECTOR is not set -+# CONFIG_LATENCYTOP is not set -+CONFIG_SYSCTL_SYSCALL_CHECK=y -+CONFIG_NOP_TRACER=y -+CONFIG_RING_BUFFER=y -+CONFIG_TRACING=y -+ -+# -+# Tracers -+# -+# CONFIG_DYNAMIC_PRINTK_DEBUG is not set -+# CONFIG_SAMPLES is not set -+CONFIG_HAVE_ARCH_KGDB=y -+CONFIG_DEBUG_USER=y -+# CONFIG_CCTL is not set -+CONFIG_ELFCHK_DEFAULT_ENABLE=y -+ -+# -+# Security options -+# -+# CONFIG_KEYS is not set -+# CONFIG_SECURITY is not set -+# CONFIG_SECURITYFS is not set -+# CONFIG_SECURITY_FILE_CAPABILITIES is not set -+CONFIG_CRYPTO=y -+ -+# -+# Crypto core or helper -+# -+# CONFIG_CRYPTO_FIPS is not set -+# CONFIG_CRYPTO_MANAGER is not set -+# CONFIG_CRYPTO_MANAGER2 is not set -+# CONFIG_CRYPTO_GF128MUL is not set -+# CONFIG_CRYPTO_NULL is not set -+# CONFIG_CRYPTO_CRYPTD is not set -+# CONFIG_CRYPTO_AUTHENC is not set -+# CONFIG_CRYPTO_TEST is not set -+ -+# -+# Authenticated Encryption with Associated Data -+# -+# CONFIG_CRYPTO_CCM is not set -+# CONFIG_CRYPTO_GCM is not set -+# CONFIG_CRYPTO_SEQIV is not set -+ -+# -+# Block modes -+# -+# CONFIG_CRYPTO_CBC is not set -+# CONFIG_CRYPTO_CTR is not set -+# CONFIG_CRYPTO_CTS is not set -+# CONFIG_CRYPTO_ECB is not set -+# CONFIG_CRYPTO_LRW is not set -+# CONFIG_CRYPTO_PCBC is not set -+# CONFIG_CRYPTO_XTS is not set -+ -+# -+# Hash modes -+# -+# CONFIG_CRYPTO_HMAC is not set -+# CONFIG_CRYPTO_XCBC is not set -+ -+# -+# Digest -+# -+# CONFIG_CRYPTO_CRC32C is not set -+# CONFIG_CRYPTO_MD4 is not set -+# CONFIG_CRYPTO_MD5 is not set -+# CONFIG_CRYPTO_MICHAEL_MIC is not set -+# CONFIG_CRYPTO_RMD128 is not set -+# CONFIG_CRYPTO_RMD160 is not set -+# CONFIG_CRYPTO_RMD256 is not set -+# CONFIG_CRYPTO_RMD320 is not set -+# CONFIG_CRYPTO_SHA1 is not set -+# CONFIG_CRYPTO_SHA256 is not set -+# CONFIG_CRYPTO_SHA512 is not set -+# CONFIG_CRYPTO_TGR192 is not set -+# CONFIG_CRYPTO_WP512 is not set -+ -+# -+# Ciphers -+# -+# CONFIG_CRYPTO_AES is not set -+# CONFIG_CRYPTO_ANUBIS is not set -+# CONFIG_CRYPTO_ARC4 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_DES is not set -+# CONFIG_CRYPTO_FCRYPT is not set -+# CONFIG_CRYPTO_KHAZAD is not set -+# CONFIG_CRYPTO_SALSA20 is not set -+# CONFIG_CRYPTO_SEED is not set -+# CONFIG_CRYPTO_SERPENT is not set -+# CONFIG_CRYPTO_TEA is not set -+# CONFIG_CRYPTO_TWOFISH is not set -+ -+# -+# Compression -+# -+# CONFIG_CRYPTO_DEFLATE is not set -+# CONFIG_CRYPTO_LZO is not set -+ -+# -+# Random Number Generation -+# -+# CONFIG_CRYPTO_ANSI_CPRNG is not set -+# CONFIG_CRYPTO_HW is not set -+ -+# -+# Library routines -+# -+CONFIG_GENERIC_FIND_LAST_BIT=y -+# CONFIG_CRC_CCITT is not set -+# CONFIG_CRC16 is not set -+# CONFIG_CRC_T10DIF is not set -+# CONFIG_CRC_ITU_T is not set -+# CONFIG_CRC32 is not set -+# CONFIG_CRC7 is not set -+# CONFIG_LIBCRC32C is not set -+CONFIG_PLIST=y -+CONFIG_HAS_IOMEM=y -+CONFIG_HAS_DMA=y -diff -Nur linux-3.4.113.orig/arch/nds32/configs/vep-le_defconfig linux-3.4.113/arch/nds32/configs/vep-le_defconfig ---- linux-3.4.113.orig/arch/nds32/configs/vep-le_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.4.113/arch/nds32/configs/vep-le_defconfig 2016-12-01 20:59:24.328611826 +0100 -@@ -0,0 +1,777 @@ -+# -+# Automatically generated make config: don't edit -+# Linux kernel version: 2.6.29 -+# Mon Jul 13 11:41:30 2009 -+# -+CONFIG_NDS32=y -+CONFIG_NO_IOPORT=y -+CONFIG_GENERIC_IOMAP=y -+CONFIG_RWSEM_GENERIC_SPINLOCK=y -+CONFIG_GENERIC_HWEIGHT=y -+CONFIG_GENERIC_FIND_NEXT_BIT=y -+CONFIG_GENERIC_CALIBRATE_DELAY=y -+CONFIG_GENERIC_HARDIRQS=y -+CONFIG_LOCKDEP_SUPPORT=y -+CONFIG_STACKTRACE_SUPPORT=y -+CONFIG_HAVE_LATENCYTOP_SUPPORT=y -+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -+ -+# -+# General setup -+# -+CONFIG_EXPERIMENTAL=y -+CONFIG_BROKEN_ON_SMP=y -+CONFIG_INIT_ENV_ARG_LIMIT=32 -+CONFIG_LOCALVERSION="" -+# CONFIG_LOCALVERSION_AUTO is not set -+CONFIG_SWAP=y -+CONFIG_SYSVIPC=y -+CONFIG_SYSVIPC_SYSCTL=y -+# CONFIG_POSIX_MQUEUE is not set -+CONFIG_BSD_PROCESS_ACCT=y -+CONFIG_BSD_PROCESS_ACCT_V3=y -+# CONFIG_TASKSTATS is not set -+# CONFIG_AUDIT is not set -+ -+# -+# RCU Subsystem -+# -+CONFIG_CLASSIC_RCU=y -+# CONFIG_TREE_RCU is not set -+# CONFIG_PREEMPT_RCU is not set -+# CONFIG_TREE_RCU_TRACE is not set -+