summaryrefslogtreecommitdiffstats
path: root/target/linux/cns21xx
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/cns21xx')
-rw-r--r--target/linux/cns21xx/Makefile4
-rwxr-xr-xtarget/linux/cns21xx/base-files/etc/diag.sh32
-rwxr-xr-xtarget/linux/cns21xx/base-files/etc/uci-defaults/01_leds (renamed from target/linux/cns21xx/base-files/etc/uci-defaults/leds)0
-rw-r--r--target/linux/cns21xx/config-3.8 (renamed from target/linux/cns21xx/config-3.3)37
-rw-r--r--target/linux/cns21xx/image/Makefile8
-rw-r--r--target/linux/cns21xx/patches-3.3/002-arm-debugll-printk.patch24
-rw-r--r--target/linux/cns21xx/patches-3.8/002-arm-debugll-printk.patch24
-rw-r--r--target/linux/cns21xx/patches-3.8/003-arm-introduce-fa-platform.patch (renamed from target/linux/cns21xx/patches-3.3/003-arm-introduce-fa-platform.patch)24
-rw-r--r--target/linux/cns21xx/patches-3.8/004-arm-add-fa-time.patch (renamed from target/linux/cns21xx/patches-3.3/004-arm-add-fa-time.patch)0
-rw-r--r--target/linux/cns21xx/patches-3.8/005-arm-add-fa-gpio-driver.patch (renamed from target/linux/cns21xx/patches-3.3/005-arm-add-fa-gpio-driver.patch)0
-rw-r--r--target/linux/cns21xx/patches-3.8/006-arm-add-fa-watchdog-driver.patch (renamed from target/linux/cns21xx/patches-3.3/006-arm-add-fa-watchdog-driver.patch)10
-rw-r--r--target/linux/cns21xx/patches-3.8/100-cns21xx-core.patch (renamed from target/linux/cns21xx/patches-3.3/100-cns21xx-core.patch)34
-rw-r--r--target/linux/cns21xx/patches-3.8/101-cns21xx-serial-support.patch (renamed from target/linux/cns21xx/patches-3.3/101-cns21xx-serial-support.patch)0
-rw-r--r--target/linux/cns21xx/patches-3.8/102-cns21xx-gpiolib-support.patch (renamed from target/linux/cns21xx/patches-3.3/102-cns21xx-gpiolib-support.patch)2
-rw-r--r--target/linux/cns21xx/patches-3.8/103-cns21xx-usb-ohci-support.patch (renamed from target/linux/cns21xx/patches-3.3/103-cns21xx-usb-ohci-support.patch)39
-rw-r--r--target/linux/cns21xx/patches-3.8/104-cns21xx-usb-ehci-support.patch (renamed from target/linux/cns21xx/patches-3.3/104-cns21xx-usb-ehci-support.patch)39
-rw-r--r--target/linux/cns21xx/patches-3.8/105-cns21xx-spi-driver.patch (renamed from target/linux/cns21xx/patches-3.3/105-cns21xx-spi-driver.patch)14
-rw-r--r--target/linux/cns21xx/patches-3.8/106-cns21xx-gec-driver.patch (renamed from target/linux/cns21xx/patches-3.3/106-cns21xx-gec-driver.patch)4
-rw-r--r--target/linux/cns21xx/patches-3.8/201-cns21xx-add-usb-devices.patch (renamed from target/linux/cns21xx/patches-3.3/201-cns21xx-add-usb-devices.patch)0
-rw-r--r--target/linux/cns21xx/patches-3.8/202-cns21xx-add-watchdog-device.patch (renamed from target/linux/cns21xx/patches-3.3/202-cns21xx-add-watchdog-device.patch)2
-rw-r--r--target/linux/cns21xx/patches-3.8/203-cns21xx-add-spi-master-device.patch (renamed from target/linux/cns21xx/patches-3.3/203-cns21xx-add-spi-master-device.patch)0
-rw-r--r--target/linux/cns21xx/patches-3.8/204-cns21xx-add-gec-device.patch (renamed from target/linux/cns21xx/patches-3.3/204-cns21xx-add-gec-device.patch)0
-rw-r--r--target/linux/cns21xx/patches-3.8/301-cns21xx-mach-ns-k330.patch (renamed from target/linux/cns21xx/patches-3.3/301-cns21xx-mach-ns-k330.patch)0
-rw-r--r--target/linux/cns21xx/patches-3.8/302-cns21xx-mach-nsb3ast.patch (renamed from target/linux/cns21xx/patches-3.3/302-cns21xx-mach-nsb3ast.patch)0
24 files changed, 148 insertions, 149 deletions
diff --git a/target/linux/cns21xx/Makefile b/target/linux/cns21xx/Makefile
index cbead08d7..7e2f7646c 100644
--- a/target/linux/cns21xx/Makefile
+++ b/target/linux/cns21xx/Makefile
@@ -9,10 +9,10 @@ include $(TOPDIR)/rules.mk
ARCH:=arm
BOARD:=cns21xx
BOARDNAME:=Cavium Networks Econa CNS21xx
-FEATURES:=squashfs broken
+FEATURES:=squashfs
CFLAGS:=-Os -pipe -march=armv4 -mtune=fa526 -fno-caller-saves
-LINUX_VERSION:=3.3.8
+LINUX_VERSION:=3.8.12
include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/cns21xx/base-files/etc/diag.sh b/target/linux/cns21xx/base-files/etc/diag.sh
index 3fb835262..e5b7ad5e3 100755
--- a/target/linux/cns21xx/base-files/etc/diag.sh
+++ b/target/linux/cns21xx/base-files/etc/diag.sh
@@ -1,33 +1,9 @@
#!/bin/sh
-#
-# Copyright (C) 2010 OpenWrt.org
-#
-#
+# Copyright (C) 2010-2013 OpenWrt.org
+. /lib/functions/leds.sh
. /lib/cns21xx.sh
-status_led=""
-
-led_set_attr() {
- [ -f "/sys/class/leds/$1/$2" ] && echo "$3" > "/sys/class/leds/$1/$2"
-}
-
-status_led_set_timer() {
- led_set_attr $status_led "trigger" "timer"
- led_set_attr $status_led "delay_on" "$1"
- led_set_attr $status_led "delay_off" "$2"
-}
-
-status_led_on() {
- led_set_attr $status_led "trigger" "none"
- led_set_attr $status_led "brightness" 255
-}
-
-status_led_off() {
- led_set_attr $status_led "trigger" "none"
- led_set_attr $status_led "brightness" 0
-}
-
get_status_led() {
case $(get_board_name) in
ns-k330)
@@ -42,10 +18,10 @@ set_state() {
case "$1" in
preinit)
insmod leds-gpio
- status_led_set_timer 200 200
+ status_led_blink_preinit
;;
failsafe)
- status_led_set_timer 50 50
+ status_led_blink_failsafe
;;
done)
status_led_on
diff --git a/target/linux/cns21xx/base-files/etc/uci-defaults/leds b/target/linux/cns21xx/base-files/etc/uci-defaults/01_leds
index bdebb6c1c..bdebb6c1c 100755
--- a/target/linux/cns21xx/base-files/etc/uci-defaults/leds
+++ b/target/linux/cns21xx/base-files/etc/uci-defaults/01_leds
diff --git a/target/linux/cns21xx/config-3.3 b/target/linux/cns21xx/config-3.8
index 5e3986020..7b7d7cb36 100644
--- a/target/linux/cns21xx/config-3.3
+++ b/target/linux/cns21xx/config-3.8
@@ -1,18 +1,26 @@
CONFIG_ALIGNMENT_TRAP=y
+CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
CONFIG_ARCH_CNS21XX=y
-CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
+CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
+CONFIG_ARCH_NR_GPIO=0
CONFIG_ARCH_REQUIRE_GPIOLIB=y
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
+# CONFIG_ARCH_VT8500_SINGLE is not set
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
CONFIG_ARM=y
# CONFIG_ARM_CPU_SUSPEND is not set
CONFIG_ARM_L1_CACHE_SHIFT=4
CONFIG_ARM_L1_CACHE_SHIFT_4=y
+CONFIG_ARM_NR_BANKS=8
# CONFIG_ARPD is not set
CONFIG_ATA=m
-CONFIG_BCMA_POSSIBLE=y
+CONFIG_ATAGS=y
+# CONFIG_CACHE_L2X0 is not set
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_CLONE_BACKWARDS=y
CONFIG_CMDLINE="console=ttyS0,38400 rootfstype=squashfs,jffs2 noinitrd"
CONFIG_CMDLINE_FROM_BOOTLOADER=y
CONFIG_CNS21XX_DEV_GEC=y
@@ -33,6 +41,7 @@ CONFIG_CPU_FA526=y
CONFIG_CPU_PABRT_LEGACY=y
CONFIG_CPU_TLB_FA=y
CONFIG_CPU_USE_DOMAINS=y
+CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
# CONFIG_DEBUG_USER is not set
CONFIG_DECOMPRESS_LZMA=y
CONFIG_DLCI=m
@@ -40,13 +49,17 @@ CONFIG_DLCI_MAX=8
CONFIG_DMADEVICES=y
CONFIG_DNOTIFY=y
CONFIG_EEPROM_AT25=y
-CONFIG_ELF_CORE=y
CONFIG_FA_WATCHDOG=y
CONFIG_FRAME_POINTER=y
CONFIG_GENERIC_ATOMIC64=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_IO=y
CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
# CONFIG_HAMRADIO is not set
@@ -55,10 +68,17 @@ CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAVE_AOUT=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_HAVE_ARCH_PFN_VALID=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_BPF_JIT=y
CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
@@ -72,11 +92,13 @@ CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_NET_DSA=y
CONFIG_HAVE_OPROFILE=y
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_HAVE_PROC_CPU=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_UID16=y
CONFIG_HDLC=m
CONFIG_HDLC_CISCO=m
CONFIG_HDLC_FR=m
@@ -95,6 +117,7 @@ CONFIG_M25PXX_USE_FAST_READ=y
CONFIG_MACH_NSB3AST=y
CONFIG_MACH_NS_K330=y
CONFIG_MDIO_BOARDINFO=y
+CONFIG_MODULES_USE_ELF_REL=y
# CONFIG_MTD_CFI is not set
CONFIG_MTD_M25P80=y
CONFIG_NEED_DMA_MAP_STATE=y
@@ -103,6 +126,7 @@ CONFIG_NLS=m
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_PAGE_OFFSET=0xC0000000
# CONFIG_PCI_SYSCALL is not set
+CONFIG_PERCPU_RWSEM=y
CONFIG_PERF_USE_VMALLOC=y
CONFIG_PHYLIB=y
CONFIG_PHYS_OFFSET=0x00000000
@@ -123,13 +147,14 @@ CONFIG_SPI_DEBUG=y
CONFIG_SPI_MASTER=y
CONFIG_SPLIT_PTLOCK_CPUS=999999
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_TICK_CPU_ACCOUNTING=y
CONFIG_UID16=y
+CONFIG_UIDGID_CONVERTED=y
# CONFIG_USB_ARCH_HAS_XHCI is not set
CONFIG_USB_SUPPORT=y
CONFIG_VECTORS_BASE=0xffff0000
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_WAN=y
-CONFIG_XZ_DEC=y
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZONE_DMA_FLAG=0
diff --git a/target/linux/cns21xx/image/Makefile b/target/linux/cns21xx/image/Makefile
index 711a85e8f..dd2d5d0c1 100644
--- a/target/linux/cns21xx/image/Makefile
+++ b/target/linux/cns21xx/image/Makefile
@@ -66,9 +66,9 @@ endef
define Image/Build/Generic
if [ `stat -c%s "$(KDIR)/$(call zimage_name,$(2))"` -gt 1048576 ]; then \
- echo "Warning: $(KDIR)/$(call zimage_name,$(2)) is too big"; \
+ echo "Warning: $(KDIR)/$(call zimage_name,$(2)) is too big" >&2; \
else if [ `stat -c%s $(KDIR)/root.$(1)` -gt $(3) ]; then \
- echo "Warning: of=$(BIN_DIR)/$(IMG_PREFIX)-root.$(1) is too big"; \
+ echo "Warning: of=$(BIN_DIR)/$(IMG_PREFIX)-root.$(1) is too big" >&2; \
else \
cat $(KDIR)/root.$(1) > $(call rootfsname,$(1),$(2)); \
( \
@@ -80,9 +80,9 @@ endef
define Image/Build/uImage
if [ `stat -c%s "$(KDIR)/$(call uimage_name,$(2))"` -gt 1048576 ]; then \
- echo "Warning: $(KDIR)/$(call uimage_name,$(2)) is too big"; \
+ echo "Warning: $(KDIR)/$(call uimage_name,$(2)) is too big" >&2; \
else if [ `stat -c%s $(KDIR)/root.$(1)` -gt $(3) ]; then \
- echo "Warning: of=$(BIN_DIR)/$(IMG_PREFIX)-root.$(1) is too big"; \
+ echo "Warning: of=$(BIN_DIR)/$(IMG_PREFIX)-root.$(1) is too big" >&2; \
else \
cat $(KDIR)/root.$(1) > $(call rootfsname,$(1),$(2)); \
( \
diff --git a/target/linux/cns21xx/patches-3.3/002-arm-debugll-printk.patch b/target/linux/cns21xx/patches-3.3/002-arm-debugll-printk.patch
deleted file mode 100644
index f1bf48dd5..000000000
--- a/target/linux/cns21xx/patches-3.3/002-arm-debugll-printk.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/kernel/printk.c
-+++ b/kernel/printk.c
-@@ -44,6 +44,10 @@
-
- #include <asm/uaccess.h>
-
-+#ifdef CONFIG_DEBUG_LL
-+extern void printascii(char *);
-+#endif /* CONFIG_DEBUG_LL */
-+
- /*
- * Architectures can override it:
- */
-@@ -900,6 +904,10 @@ asmlinkage int vprintk(const char *fmt,
- }
- }
-
-+#ifdef CONFIG_DEBUG_LL
-+ printascii(printk_buf);
-+#endif
-+
- /*
- * Copy the output into log_buf. If the caller didn't provide
- * the appropriate log prefix, we insert them here
diff --git a/target/linux/cns21xx/patches-3.8/002-arm-debugll-printk.patch b/target/linux/cns21xx/patches-3.8/002-arm-debugll-printk.patch
new file mode 100644
index 000000000..e14509ef3
--- /dev/null
+++ b/target/linux/cns21xx/patches-3.8/002-arm-debugll-printk.patch
@@ -0,0 +1,24 @@
+--- a/kernel/printk.c
++++ b/kernel/printk.c
+@@ -48,6 +48,10 @@
+ #define CREATE_TRACE_POINTS
+ #include <trace/events/printk.h>
+
++#ifdef CONFIG_DEBUG_LL
++extern void printascii(char *);
++#endif /* CONFIG_DEBUG_LL */
++
+ /*
+ * Architectures can override it:
+ */
+@@ -473,6 +477,10 @@ static ssize_t devkmsg_read(struct file
+ ts_usec = msg->ts_nsec;
+ do_div(ts_usec, 1000);
+
++#ifdef CONFIG_DEBUG_LL
++ printascii(printk_buf);
++#endif
++
+ /*
+ * If we couldn't merge continuation line fragments during the print,
+ * export the stored flags to allow an optional external merge of the
diff --git a/target/linux/cns21xx/patches-3.3/003-arm-introduce-fa-platform.patch b/target/linux/cns21xx/patches-3.8/003-arm-introduce-fa-platform.patch
index 354f43968..771a1b825 100644
--- a/target/linux/cns21xx/patches-3.3/003-arm-introduce-fa-platform.patch
+++ b/target/linux/cns21xx/patches-3.8/003-arm-introduce-fa-platform.patch
@@ -1,8 +1,8 @@
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
-@@ -1104,10 +1104,15 @@ source "arch/arm/mach-vt8500/Kconfig"
+@@ -1133,10 +1133,15 @@ source "arch/arm/mach-w90x900/Kconfig"
- source "arch/arm/mach-w90x900/Kconfig"
+ source "arch/arm/mach-zynq/Kconfig"
+source "arch/arm/plat-fa/Kconfig"
+
@@ -18,22 +18,22 @@
select GENERIC_CLOCKEVENTS
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
-@@ -203,6 +203,7 @@ plat-$(CONFIG_ARCH_MXC) := mxc
- plat-$(CONFIG_ARCH_OMAP) := omap
- plat-$(CONFIG_ARCH_S3C64XX) := samsung
- plat-$(CONFIG_ARCH_ZYNQ) := versatile
-+plat-$(CONFIG_PLAT_FA) := fa
- plat-$(CONFIG_PLAT_IOP) := iop
- plat-$(CONFIG_PLAT_NOMADIK) := nomadik
- plat-$(CONFIG_PLAT_ORION) := orion
-@@ -301,7 +302,7 @@ define archhelp
+@@ -207,6 +207,7 @@ machine-$(CONFIG_ARCH_SUNXI) += sunxi
+ plat-$(CONFIG_ARCH_OMAP) += omap
+ plat-$(CONFIG_ARCH_S3C64XX) += samsung
+ plat-$(CONFIG_PLAT_IOP) += iop
++plat-$(CONFIG_PLAT_FA) += fa
+ plat-$(CONFIG_PLAT_ORION) += orion
+ plat-$(CONFIG_PLAT_PXA) += pxa
+ plat-$(CONFIG_PLAT_S3C24XX) += s3c24xx samsung
+@@ -316,7 +317,7 @@ define archhelp
echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
echo '* xipImage - XIP kernel image, if configured (arch/$(ARCH)/boot/xipImage)'
echo ' uImage - U-Boot wrapped zImage'
- echo ' bootpImage - Combined zImage and initial RAM disk'
+ echo ' bootpImage - Combined zImage and initial RAM disk'
echo ' (supply initrd image via make variable INITRD=<path>)'
- echo ' dtbs - Build device tree blobs for enabled boards'
+ echo '* dtbs - Build device tree blobs for enabled boards'
echo ' install - Install uncompressed kernel'
--- /dev/null
+++ b/arch/arm/plat-fa/Makefile
diff --git a/target/linux/cns21xx/patches-3.3/004-arm-add-fa-time.patch b/target/linux/cns21xx/patches-3.8/004-arm-add-fa-time.patch
index 460e7cb69..460e7cb69 100644
--- a/target/linux/cns21xx/patches-3.3/004-arm-add-fa-time.patch
+++ b/target/linux/cns21xx/patches-3.8/004-arm-add-fa-time.patch
diff --git a/target/linux/cns21xx/patches-3.3/005-arm-add-fa-gpio-driver.patch b/target/linux/cns21xx/patches-3.8/005-arm-add-fa-gpio-driver.patch
index d7e8e88cc..d7e8e88cc 100644
--- a/target/linux/cns21xx/patches-3.3/005-arm-add-fa-gpio-driver.patch
+++ b/target/linux/cns21xx/patches-3.8/005-arm-add-fa-gpio-driver.patch
diff --git a/target/linux/cns21xx/patches-3.3/006-arm-add-fa-watchdog-driver.patch b/target/linux/cns21xx/patches-3.8/006-arm-add-fa-watchdog-driver.patch
index 34e374228..2c67b167a 100644
--- a/target/linux/cns21xx/patches-3.3/006-arm-add-fa-watchdog-driver.patch
+++ b/target/linux/cns21xx/patches-3.8/006-arm-add-fa-watchdog-driver.patch
@@ -1,6 +1,6 @@
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
-@@ -343,6 +343,13 @@ config IMX2_WDT
+@@ -365,6 +365,13 @@ config IMX2_WDT
To compile this driver as a module, choose M here: the
module will be called imx2_wdt.
@@ -16,7 +16,7 @@
config AT32AP700X_WDT
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
-@@ -53,6 +53,7 @@ obj-$(CONFIG_STMP3XXX_WATCHDOG) += stmp3
+@@ -52,6 +52,7 @@ obj-$(CONFIG_STMP3XXX_WATCHDOG) += stmp3
obj-$(CONFIG_NUC900_WATCHDOG) += nuc900_wdt.o
obj-$(CONFIG_TS72XX_WATCHDOG) += ts72xx_wdt.o
obj-$(CONFIG_IMX2_WDT) += imx2_wdt.o
@@ -268,7 +268,7 @@
+ fa_wdt_stop(fa_wdt);
+}
+
-+static int __devinit fa_wdt_probe(struct platform_device *pdev)
++static int fa_wdt_probe(struct platform_device *pdev)
+{
+ int ret;
+ int res_size;
@@ -356,7 +356,7 @@
+ return ret;
+}
+
-+static int __devexit fa_wdt_remove(struct platform_device *pdev)
++static int fa_wdt_remove(struct platform_device *pdev)
+{
+ struct fa_wdt_struct *fa_wdt = platform_get_drvdata(pdev);
+
@@ -405,7 +405,7 @@
+
+static struct platform_driver fa_wdt_driver = {
+ .probe = fa_wdt_probe,
-+ .remove = __devexit_p(fa_wdt_remove),
++ .remove = fa_wdt_remove,
+ .shutdown = fa_wdt_shutdown,
+ .suspend = fa_wdt_suspend,
+ .resume = fa_wdt_resume,
diff --git a/target/linux/cns21xx/patches-3.3/100-cns21xx-core.patch b/target/linux/cns21xx/patches-3.8/100-cns21xx-core.patch
index 6fa40c66a..4cfe5ba22 100644
--- a/target/linux/cns21xx/patches-3.3/100-cns21xx-core.patch
+++ b/target/linux/cns21xx/patches-3.8/100-cns21xx-core.patch
@@ -1,6 +1,6 @@
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
-@@ -190,6 +190,11 @@ config FIQ
+@@ -184,6 +184,11 @@ config NEED_RET_TO_USER
config ARCH_MTD_XIP
bool
@@ -12,9 +12,9 @@
config VECTORS_BASE
hex
default 0xffff0000 if MMU || CPU_HIGH_VECTOR
-@@ -355,6 +360,15 @@ config ARCH_HIGHBANK
+@@ -368,6 +373,15 @@ config ARCH_CNS3XXX
help
- Support for the Calxeda Highbank SoC based boards.
+ Support for Cavium Networks CNS3XXX platform.
+config ARCH_CNS21XX
+ bool "Cavium Networks CNS21xx family"
@@ -26,9 +26,9 @@
+ Support for Cavium Networks CNS21xx family.
+
config ARCH_CLPS711X
- bool "Cirrus Logic CLPS711x/EP721x-based"
- select CPU_ARM720T
-@@ -1003,6 +1017,8 @@ source "arch/arm/mach-davinci/Kconfig"
+ bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
+ select ARCH_REQUIRE_GPIOLIB
+@@ -1030,6 +1044,8 @@ source "arch/arm/mach-davinci/Kconfig"
source "arch/arm/mach-dove/Kconfig"
@@ -67,14 +67,14 @@
+initrd_phys-y := 0x00C00000
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
-@@ -136,6 +136,7 @@ textofs-$(CONFIG_ARCH_MSM8960) := 0x0020
- # by CONFIG_* macro name.
- machine-$(CONFIG_ARCH_AT91) := at91
- machine-$(CONFIG_ARCH_BCMRING) := bcmring
-+machine-$(CONFIG_ARCH_CNS21XX) := cns21xx
- machine-$(CONFIG_ARCH_CLPS711X) := clps711x
- machine-$(CONFIG_ARCH_CNS3XXX) := cns3xxx
- machine-$(CONFIG_ARCH_DAVINCI) := davinci
+@@ -146,6 +146,7 @@ machine-$(CONFIG_ARCH_AT91) += at91
+ machine-$(CONFIG_ARCH_BCM) += bcm
+ machine-$(CONFIG_ARCH_BCM2835) += bcm2835
+ machine-$(CONFIG_ARCH_CLPS711X) += clps711x
++machine-$(CONFIG_ARCH_CNS21XX) += cns21xx
+ machine-$(CONFIG_ARCH_CNS3XXX) += cns3xxx
+ machine-$(CONFIG_ARCH_DAVINCI) += davinci
+ machine-$(CONFIG_ARCH_DOVE) += dove
--- /dev/null
+++ b/arch/arm/mach-cns21xx/common.h
@@ -0,0 +1,19 @@
@@ -536,7 +536,7 @@
+#endif /* _CNS21XX_SYSTEM_H */
--- /dev/null
+++ b/arch/arm/mach-cns21xx/irq.c
-@@ -0,0 +1,174 @@
+@@ -0,0 +1,176 @@
+/*
+ * Copyright (c) 2008 Cavium Networks
+ * Copyright (c) 2010-2012 Gabor Juhos <juhosg@openwrt.org>
@@ -552,6 +552,8 @@
+#include <linux/io.h>
+#include <linux/ioport.h>
+
++#include <asm/system_misc.h>
++
+#include <mach/cns21xx.h>
+
+#define INTC_INTERRUPT_RAW_STATUS_REG 0x000
@@ -1517,7 +1519,7 @@
+}
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
-@@ -890,6 +890,7 @@ config ARM_L1_CACHE_SHIFT_6
+@@ -867,6 +867,7 @@ config ARM_L1_CACHE_SHIFT_6
config ARM_L1_CACHE_SHIFT
int
default 6 if ARM_L1_CACHE_SHIFT_6
diff --git a/target/linux/cns21xx/patches-3.3/101-cns21xx-serial-support.patch b/target/linux/cns21xx/patches-3.8/101-cns21xx-serial-support.patch
index 05ad3e468..05ad3e468 100644
--- a/target/linux/cns21xx/patches-3.3/101-cns21xx-serial-support.patch
+++ b/target/linux/cns21xx/patches-3.8/101-cns21xx-serial-support.patch
diff --git a/target/linux/cns21xx/patches-3.3/102-cns21xx-gpiolib-support.patch b/target/linux/cns21xx/patches-3.8/102-cns21xx-gpiolib-support.patch
index 0d2aead2e..7330b1fb7 100644
--- a/target/linux/cns21xx/patches-3.3/102-cns21xx-gpiolib-support.patch
+++ b/target/linux/cns21xx/patches-3.8/102-cns21xx-gpiolib-support.patch
@@ -1,6 +1,6 @@
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
-@@ -365,6 +365,8 @@ config ARCH_CNS21XX
+@@ -378,6 +378,8 @@ config ARCH_CNS21XX
select CPU_FA526
select PLAT_FA
select PLAT_FA_TIME
diff --git a/target/linux/cns21xx/patches-3.3/103-cns21xx-usb-ohci-support.patch b/target/linux/cns21xx/patches-3.8/103-cns21xx-usb-ohci-support.patch
index e165d1926..ea2a2aab9 100644
--- a/target/linux/cns21xx/patches-3.3/103-cns21xx-usb-ohci-support.patch
+++ b/target/linux/cns21xx/patches-3.8/103-cns21xx-usb-ohci-support.patch
@@ -1,14 +1,6 @@
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
-@@ -580,7 +580,6 @@ static int ohci_run (struct ohci_hcd *oh
-
- /* boot firmware should have set this up (5.1.1.3.1) */
- if (first) {
--
- val = ohci_readl (ohci, &ohci->regs->fminterval);
- ohci->fminterval = val & 0x3fff;
- if (ohci->fminterval != FI)
-@@ -664,6 +663,9 @@ retry:
+@@ -691,6 +691,9 @@ retry:
periodic_reinit (ohci);
@@ -18,8 +10,8 @@
/* some OHCI implementations are finicky about how they init.
* bogus values here mean not even enumeration could work.
*/
-@@ -1106,6 +1108,11 @@ MODULE_LICENSE ("GPL");
- #define PLATFORM_DRIVER ohci_octeon_driver
+@@ -1186,6 +1189,11 @@ MODULE_LICENSE ("GPL");
+ #define PLATFORM_DRIVER ohci_hcd_tilegx_driver
#endif
+#ifdef CONFIG_ARCH_CNS21XX
@@ -27,12 +19,12 @@
+#define PLATFORM_DRIVER ohci_cns21xx_driver
+#endif
+
- #ifdef CONFIG_USB_CNS3XXX_OHCI
- #include "ohci-cns3xxx.c"
- #define PLATFORM_DRIVER ohci_hcd_cns3xxx_driver
+ #ifdef CONFIG_USB_OHCI_HCD_PLATFORM
+ #include "ohci-platform.c"
+ #define OHCI_PLATFORM_DRIVER ohci_platform_driver
--- /dev/null
+++ b/drivers/usb/host/ohci-cns21xx.c
-@@ -0,0 +1,175 @@
+@@ -0,0 +1,178 @@
+/*
+ * Copyright (c) 2008 Cavium Networks
+ * Copyright (c) 2010-2012 Gabor Juhos <juhosg@openwrt.org>
@@ -48,7 +40,7 @@
+
+#define DRIVER_NAME "cns21xx-ohci"
+
-+static int __devinit cns21xx_ohci_start(struct usb_hcd *hcd)
++static int cns21xx_ohci_start(struct usb_hcd *hcd)
+{
+ struct ohci_hcd *ohci = hcd_to_ohci(hcd);
+ int ret;
@@ -59,7 +51,8 @@
+
+ ret = ohci_run(ohci);
+ if (ret) {
-+ err("can't start %s", ohci_to_hcd(ohci)->self.bus_name);
++ ohci_err(ohci, "can't start %s",
++ ohci_to_hcd(ohci)->self.bus_name);
+ goto err;
+ }
+
@@ -110,8 +103,10 @@
+
+static void cns21xx_ohci_init_hc(void)
+{
-+ __raw_writel(0x146, CNS21XX_OHCI_CONFIG_BASE_VIRT + 0x04);
-+ __raw_writel(0x200, CNS21XX_OHCI_CONFIG_BASE_VIRT + 0x44);
++ void __iomem *base = (void __iomem *) CNS21XX_OHCI_CONFIG_BASE_VIRT;
++
++ __raw_writel(0x146, base + 0x04);
++ __raw_writel(0x200, base + 0x44);
+ msleep(100);
+}
+
@@ -210,17 +205,17 @@
+MODULE_ALIAS("platform:" DRIVER_NAME);
--- a/drivers/usb/host/ohci.h
+++ b/drivers/usb/host/ohci.h
-@@ -410,6 +410,7 @@ struct ohci_hcd {
+@@ -405,6 +405,7 @@ struct ohci_hcd {
#define OHCI_QUIRK_HUB_POWER 0x100 /* distrust firmware power/oc setup */
#define OHCI_QUIRK_AMD_PLL 0x200 /* AMD PLL quirk*/
#define OHCI_QUIRK_AMD_PREFETCH 0x400 /* pre-fetch for ISO transfer */
-+#define OHCI_QUIRK_INIT_FMINTERVAL 0x1000 /* fminterval must be initialized */
++#define OHCI_QUIRK_INIT_FMINTERVAL 0x1000 /* fminterval must be initialized */
// there are also chip quirks/bugs in init logic
struct work_struct nec_work; /* Worker for NEC quirk */
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
-@@ -368,6 +368,7 @@ config ARCH_CNS21XX
+@@ -381,6 +381,7 @@ config ARCH_CNS21XX
select PLAT_FA_GPIO
select ARCH_REQUIRE_GPIOLIB
select ARM_L1_CACHE_SHIFT_4
diff --git a/target/linux/cns21xx/patches-3.3/104-cns21xx-usb-ehci-support.patch b/target/linux/cns21xx/patches-3.8/104-cns21xx-usb-ehci-support.patch
index bf1463a0b..e68974c87 100644
--- a/target/linux/cns21xx/patches-3.3/104-cns21xx-usb-ehci-support.patch
+++ b/target/linux/cns21xx/patches-3.8/104-cns21xx-usb-ehci-support.patch
@@ -1,6 +1,20 @@
+--- a/drivers/usb/host/ehci-hcd.c
++++ b/drivers/usb/host/ehci-hcd.c
+@@ -1338,6 +1338,11 @@ MODULE_LICENSE ("GPL");
+ #define PLATFORM_DRIVER ehci_hcd_sead3_driver
+ #endif
+
++#ifdef CONFIG_ARCH_CNS21XX
++#include "ehci-cns21xx.c"
++#define PLATFORM_DRIVER ehci_cns21xx_driver
++#endif
++
+ #if !IS_ENABLED(CONFIG_USB_EHCI_PCI) && \
+ !IS_ENABLED(CONFIG_USB_EHCI_HCD_PLATFORM) && \
+ !IS_ENABLED(CONFIG_USB_CHIPIDEA_HOST) && \
--- /dev/null
+++ b/drivers/usb/host/ehci-cns21xx.c
-@@ -0,0 +1,186 @@
+@@ -0,0 +1,187 @@
+/*
+ * Copyright (c) 2008 Cavium Networks
+ * Copyright (c) 2010-2012 Gabor Juhos <juhosg@openwrt.org>
@@ -31,7 +45,6 @@
+ return ret;
+
+ ehci_reset(ehci);
-+ ehci_port_power(ehci, 0);
+
+ return 0;
+}
@@ -81,8 +94,10 @@
+
+static void cns21xx_ehci_init_hc(void)
+{
-+ __raw_writel(0x106, CNS21XX_EHCI_CONFIG_BASE_VIRT + 0x04);
-+ __raw_writel((3 << 5) | 0x2000, CNS21XX_EHCI_CONFIG_BASE_VIRT + 0x40);
++ void __iomem *base = (void __iomem *) CNS21XX_EHCI_CONFIG_BASE_VIRT;
++
++ __raw_writel(0x106, base + 0x04);
++ __raw_writel((3 << 5) | 0x2000, base + 0x40);
+ msleep(100);
+}
+
@@ -187,23 +202,9 @@
+};
+
+MODULE_ALIAS("platform:" DRIVER_NAME);
---- a/drivers/usb/host/ehci-hcd.c
-+++ b/drivers/usb/host/ehci-hcd.c
-@@ -1376,6 +1376,11 @@ MODULE_LICENSE ("GPL");
- #define PLATFORM_DRIVER ehci_mv_driver
- #endif
-
-+#ifdef CONFIG_ARCH_CNS21XX
-+#include "ehci-cns21xx.c"
-+#define PLATFORM_DRIVER ehci_cns21xx_driver
-+#endif
-+
- #if !defined(PCI_DRIVER) && !defined(PLATFORM_DRIVER) && \
- !defined(PS3_SYSTEM_BUS_DRIVER) && !defined(OF_PLATFORM_DRIVER) && \
- !defined(XILINX_OF_PLATFORM_DRIVER)
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
-@@ -369,6 +369,7 @@ config ARCH_CNS21XX
+@@ -382,6 +382,7 @@ config ARCH_CNS21XX
select ARCH_REQUIRE_GPIOLIB
select ARM_L1_CACHE_SHIFT_4
select USB_ARCH_HAS_OHCI
diff --git a/target/linux/cns21xx/patches-3.3/105-cns21xx-spi-driver.patch b/target/linux/cns21xx/patches-3.8/105-cns21xx-spi-driver.patch
index 575cc7fd2..83c036150 100644
--- a/target/linux/cns21xx/patches-3.3/105-cns21xx-spi-driver.patch
+++ b/target/linux/cns21xx/patches-3.8/105-cns21xx-spi-driver.patch
@@ -1,6 +1,6 @@
--- a/include/linux/spi/spi.h
+++ b/include/linux/spi/spi.h
-@@ -456,6 +456,8 @@ struct spi_transfer {
+@@ -510,6 +510,8 @@ struct spi_transfer {
u16 delay_usecs;
u32 speed_hz;
@@ -11,7 +11,7 @@
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
-@@ -163,6 +163,14 @@ config SPI_GPIO_OLD
+@@ -186,6 +186,14 @@ config SPI_GPIO_OLD
If unsure, say N.
@@ -28,17 +28,17 @@
depends on ARCH_MXC
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
-@@ -18,6 +18,7 @@ obj-$(CONFIG_SPI_BFIN) += spi-bfin5xx.
- obj-$(CONFIG_SPI_BFIN_SPORT) += spi-bfin-sport.o
+@@ -20,6 +20,7 @@ obj-$(CONFIG_SPI_BFIN_SPORT) += spi-bfi
obj-$(CONFIG_SPI_BITBANG) += spi-bitbang.o
obj-$(CONFIG_SPI_BUTTERFLY) += spi-butterfly.o
+ obj-$(CONFIG_SPI_CLPS711X) += spi-clps711x.o
+obj-$(CONFIG_SPI_CNS21XX) += spi-cns21xx.o
obj-$(CONFIG_SPI_COLDFIRE_QSPI) += spi-coldfire-qspi.o
obj-$(CONFIG_SPI_DAVINCI) += spi-davinci.o
obj-$(CONFIG_SPI_DESIGNWARE) += spi-dw.o
--- a/drivers/spi/spi-bitbang.c
+++ b/drivers/spi/spi-bitbang.c
-@@ -330,6 +330,13 @@ static void bitbang_work(struct work_str
+@@ -328,6 +328,13 @@ static void bitbang_work(struct work_str
*/
if (!m->is_dma_mapped)
t->rx_dma = t->tx_dma = 0;
@@ -536,7 +536,7 @@
+ return err;
+}
+
-+static int __devexit cns21xx_spi_remove(struct platform_device *pdev)
++static int cns21xx_spi_remove(struct platform_device *pdev)
+{
+ struct cns21xx_spi *hw = platform_get_drvdata(pdev);
+
@@ -551,7 +551,7 @@
+}
+
+static struct platform_driver cns21xx_spi_driver = {
-+ .remove = __devexit_p(cns21xx_spi_remove),
++ .remove = cns21xx_spi_remove,
+ .driver = {
+ .name = DRIVER_NAME,
+ .owner = THIS_MODULE,
diff --git a/target/linux/cns21xx/patches-3.3/106-cns21xx-gec-driver.patch b/target/linux/cns21xx/patches-3.8/106-cns21xx-gec-driver.patch
index 7688aa75b..a48ba591b 100644
--- a/target/linux/cns21xx/patches-3.3/106-cns21xx-gec-driver.patch
+++ b/target/linux/cns21xx/patches-3.8/106-cns21xx-gec-driver.patch
@@ -1879,7 +1879,7 @@
+ return err;
+}
+
-+static int __devexit cns21xx_gec_remove(struct platform_device *pdev)
++static int cns21xx_gec_remove(struct platform_device *pdev)
+{
+ struct net_device *netdev = platform_get_drvdata(pdev);
+ struct cns21xx_gec *gec = netdev_priv(netdev);
@@ -1894,7 +1894,7 @@
+}
+
+static struct platform_driver cns21xx_gec_driver = {
-+ .remove = __devexit_p(cns21xx_gec_remove),
++ .remove = cns21xx_gec_remove,
+ .driver = {
+ .name = "cns21xx-gec",
+ .owner = THIS_MODULE,
diff --git a/target/linux/cns21xx/patches-3.3/201-cns21xx-add-usb-devices.patch b/target/linux/cns21xx/patches-3.8/201-cns21xx-add-usb-devices.patch
index c9299b6af..c9299b6af 100644
--- a/target/linux/cns21xx/patches-3.3/201-cns21xx-add-usb-devices.patch
+++ b/target/linux/cns21xx/patches-3.8/201-cns21xx-add-usb-devices.patch
diff --git a/target/linux/cns21xx/patches-3.3/202-cns21xx-add-watchdog-device.patch b/target/linux/cns21xx/patches-3.8/202-cns21xx-add-watchdog-device.patch
index f269136c3..858fa73d4 100644
--- a/target/linux/cns21xx/patches-3.3/202-cns21xx-add-watchdog-device.patch
+++ b/target/linux/cns21xx/patches-3.8/202-cns21xx-add-watchdog-device.patch
@@ -52,7 +52,7 @@
+}
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
-@@ -345,7 +345,7 @@ config IMX2_WDT
+@@ -367,7 +367,7 @@ config IMX2_WDT
config FA_WATCHDOG
tristate "Faraday watchdog"
diff --git a/target/linux/cns21xx/patches-3.3/203-cns21xx-add-spi-master-device.patch b/target/linux/cns21xx/patches-3.8/203-cns21xx-add-spi-master-device.patch
index 31d210b4f..31d210b4f 100644
--- a/target/linux/cns21xx/patches-3.3/203-cns21xx-add-spi-master-device.patch
+++ b/target/linux/cns21xx/patches-3.8/203-cns21xx-add-spi-master-device.patch
diff --git a/target/linux/cns21xx/patches-3.3/204-cns21xx-add-gec-device.patch b/target/linux/cns21xx/patches-3.8/204-cns21xx-add-gec-device.patch
index 910913bcc..910913bcc 100644
--- a/target/linux/cns21xx/patches-3.3/204-cns21xx-add-gec-device.patch
+++ b/target/linux/cns21xx/patches-3.8/204-cns21xx-add-gec-device.patch
diff --git a/target/linux/cns21xx/patches-3.3/301-cns21xx-mach-ns-k330.patch b/target/linux/cns21xx/patches-3.8/301-cns21xx-mach-ns-k330.patch
index ca649cace..ca649cace 100644
--- a/target/linux/cns21xx/patches-3.3/301-cns21xx-mach-ns-k330.patch
+++ b/target/linux/cns21xx/patches-3.8/301-cns21xx-mach-ns-k330.patch
diff --git a/target/linux/cns21xx/patches-3.3/302-cns21xx-mach-nsb3ast.patch b/target/linux/cns21xx/patches-3.8/302-cns21xx-mach-nsb3ast.patch
index 503df1107..503df1107 100644
--- a/target/linux/cns21xx/patches-3.3/302-cns21xx-mach-nsb3ast.patch
+++ b/target/linux/cns21xx/patches-3.8/302-cns21xx-mach-nsb3ast.patch