diff --git a/target/linux/xburst/Makefile b/target/linux/xburst/Makefile index 7dc934bb8..8cec4398f 100644 --- a/target/linux/xburst/Makefile +++ b/target/linux/xburst/Makefile @@ -12,7 +12,7 @@ BOARDNAME:=Ingenic XBurst FEATURES:=jffs2 targz ubifs audio SUBTARGETS:=qi_lb60 n516 n526 id800wt -LINUX_VERSION:=3.0 +LINUX_VERSION:=3.2.1 DEVICE_TYPE=other diff --git a/target/linux/xburst/config-3.0 b/target/linux/xburst/config-3.2 similarity index 82% rename from target/linux/xburst/config-3.0 rename to target/linux/xburst/config-3.2 index 894cf1b61..dc2796895 100644 --- a/target/linux/xburst/config-3.0 +++ b/target/linux/xburst/config-3.2 @@ -6,15 +6,14 @@ CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_POPULATES_NODE_MAP=y CONFIG_ARCH_REQUIRE_GPIOLIB=y # CONFIG_ARCH_SUPPORTS_MSI is not set -CONFIG_ARCH_SUPPORTS_OPROFILE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ARPD is not set # CONFIG_ATH79 is not set +# CONFIG_ATMEL_PWM is not set CONFIG_BATTERY_JZ4740=y CONFIG_BCMA_POSSIBLE=y # CONFIG_BLK_DEV_INITRD is not set # CONFIG_BRIDGE is not set -# CONFIG_BSD_PROCESS_ACCT is not set CONFIG_CHARGER_GPIO=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_CPU_HAS_PREFETCH=y @@ -31,6 +30,7 @@ CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_LZO=y +CONFIG_DEVMEM=y CONFIG_DMA_NONCOHERENT=y CONFIG_DUMMY_CONSOLE=y CONFIG_EARLY_PRINTK=y @@ -40,26 +40,10 @@ CONFIG_EXT4_FS=y CONFIG_FAT_FS=y CONFIG_FB=y # CONFIG_FB_JZ4740 is not set -CONFIG_FB_SYS_COPYAREA=y -CONFIG_FB_SYS_FILLRECT=y -CONFIG_FB_SYS_IMAGEBLIT=y +# CONFIG_FB_TMIO is not set # CONFIG_FB_WMT_GE_ROPS is not set # CONFIG_FIRMWARE_EDID is not set -CONFIG_FONTS=y -# CONFIG_FONT_10x18 is not set -# CONFIG_FONT_6x11 is not set -# CONFIG_FONT_7x14 is not set -# CONFIG_FONT_8x16 is not set -# CONFIG_FONT_8x8 is not set -# CONFIG_FONT_ACORN_8x8 is not set -# CONFIG_FONT_MINI_4x6 is not set -# CONFIG_FONT_PEARL_8x8 is not set -# CONFIG_FONT_SUN12x22 is not set -CONFIG_FONT_SUN8x16=y CONFIG_FORCE_MAX_ZONEORDER=12 -# CONFIG_FRAMEBUFFER_CONSOLE is not set -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set CONFIG_FREEZER=y CONFIG_FS_MBCACHE=y CONFIG_GENERIC_ATOMIC64=y @@ -89,8 +73,6 @@ CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_HAVE_GENERIC_HARDIRQS=y CONFIG_HAVE_IDE=y -CONFIG_HAVE_KPROBES=y -CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_IRQ_WORK=y CONFIG_HAVE_OPROFILE=y CONFIG_HAVE_PERF_EVENTS=y @@ -103,11 +85,9 @@ CONFIG_HW_CONSOLE=y # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set # CONFIG_INLINE_WRITE_UNLOCK is not set # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set -CONFIG_INOTIFY_USER=y CONFIG_INPUT=y CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_GPIO_BUTTONS is not set -CONFIG_KEXEC=y CONFIG_INPUT_KEYBOARD=y CONFIG_INPUT_MOUSE=y CONFIG_INPUT_MOUSEDEV=y @@ -117,23 +97,15 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_PWM_BEEPER is not set CONFIG_INPUT_UINPUT=y CONFIG_IRQ_CPU=y +CONFIG_IRQ_FORCED_THREADING=y CONFIG_JBD2=y -# CONFIG_JZ4740_ADC is not set -# CONFIG_JZ4740_QI_LB60 is not set -# CONFIG_JZ4740_ID800WT is not set -# CONFIG_JZ4740_N516 is not set -# CONFIG_JZ4740_N526 is not set +CONFIG_JZ4740_QI_LB60=y CONFIG_KALLSYMS=y +CONFIG_KEXEC=y # CONFIG_KEYBOARD_GPIO is not set # CONFIG_LANTIQ is not set CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=2 -# CONFIG_LOGO is not set -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -# CONFIG_LOGO_LINUX_CLUT224 is not set -# CONFIG_LOGO_OPENWRT_CLUT224 is not set -# CONFIG_LOGO_NANONOTE_CLUT224 is not set CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_MACH_JZ4740=y @@ -164,7 +136,6 @@ CONFIG_MOUSE_PS2=y # CONFIG_MTD_CFI is not set # CONFIG_MTD_COMPLEX_MAPPINGS is not set CONFIG_MTD_NAND=y -# CONFIG_MTD_NAND_VERIFY_WRITE is not set CONFIG_MTD_NAND_ECC=y CONFIG_MTD_NAND_JZ4740=y # CONFIG_MTD_SM_COMMON is not set @@ -175,9 +146,7 @@ CONFIG_MTD_UBI_BEB_RESERVE=1 CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_PER_CPU_KM=y -# CONFIG_NETDEV_1000 is not set # CONFIG_NETWORK_FILESYSTEMS is not set -# CONFIG_NET_ETHERNET is not set # CONFIG_NET_SCHED is not set # CONFIG_NEW_LEDS is not set CONFIG_NLS=y @@ -223,16 +192,19 @@ CONFIG_PAGEFLAGS_EXTENDED=y # CONFIG_PDA_POWER is not set CONFIG_PERF_USE_VMALLOC=y CONFIG_PM=y +CONFIG_PM_CLK=y # CONFIG_PM_DEBUG is not set CONFIG_PM_SLEEP=y CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set CONFIG_PREEMPT=y +CONFIG_PREEMPT_COUNT=y # CONFIG_PREEMPT_NONE is not set -# CONFIG_PREEMPT_RCU is not set +CONFIG_PREEMPT_RCU=y CONFIG_PRINTK_TIME=y CONFIG_PROC_PAGE_MONITOR=y # CONFIG_QUOTACTL is not set +# CONFIG_RCU_BOOST is not set CONFIG_RTC_CLASS=y # CONFIG_RTC_DRV_CMOS is not set CONFIG_RTC_DRV_JZ4740=y @@ -253,7 +225,7 @@ CONFIG_SYS_HAS_EARLY_PRINTK=y CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y CONFIG_SYS_SUPPORTS_ARBIT_HZ=y CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y -# CONFIG_TINY_PREEMPT_RCU is not set +CONFIG_TINY_PREEMPT_RCU=y CONFIG_UBIFS_FS=y CONFIG_UBIFS_FS_ADVANCED_COMPR=y # CONFIG_UBIFS_FS_DEBUG is not set @@ -261,30 +233,32 @@ CONFIG_UBIFS_FS_LZO=y # CONFIG_UBIFS_FS_XATTR is not set CONFIG_UBIFS_FS_ZLIB=y # CONFIG_USB_ARCH_HAS_EHCI is not set +# CONFIG_USB_ARCH_HAS_XHCI is not set # CONFIG_USB_CDC_COMPOSITE is not set +CONFIG_USB_COMMON=y CONFIG_USB_ETH=y # CONFIG_USB_ETH_EEM is not set # CONFIG_USB_ETH_RNDIS is not set # CONFIG_USB_FILE_STORAGE is not set # CONFIG_USB_FUNCTIONFS is not set +# CONFIG_USB_FUSB300 is not set CONFIG_USB_GADGET=y # CONFIG_USB_GADGETFS is not set # CONFIG_USB_GADGET_DEBUG_FILES is not set # CONFIG_USB_GADGET_DEBUG_FS is not set CONFIG_USB_GADGET_DUALSPEED=y -# CONFIG_USB_GADGET_FUSB300 is not set -CONFIG_USB_GADGET_JZ4740=y -# CONFIG_USB_GADGET_M66592 is not set -# CONFIG_USB_GADGET_PXA_U2O is not set -# CONFIG_USB_GADGET_R8A66597 is not set -CONFIG_USB_GADGET_SELECTED=y +CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 CONFIG_USB_GADGET_VBUS_DRAW=2 +# CONFIG_USB_G_ACM_MS is not set # CONFIG_USB_G_DBGP is not set # CONFIG_USB_G_HID is not set # CONFIG_USB_G_NCM is not set # CONFIG_USB_G_PRINTER is not set # CONFIG_USB_G_SERIAL is not set CONFIG_USB_JZ4740=y +# CONFIG_USB_M66592 is not set +# CONFIG_USB_NET2272 is not set +# CONFIG_USB_R8A66597 is not set CONFIG_USB_SUPPORT=y # CONFIG_USB_ZERO is not set CONFIG_VFAT_FS=y @@ -292,6 +266,7 @@ CONFIG_VFAT_FS=y # CONFIG_VLAN_8021Q is not set CONFIG_VT=y CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y CONFIG_VT_HW_CONSOLE_BINDING=y # CONFIG_WATCHDOG is not set CONFIG_ZONE_DMA_FLAG=0 diff --git a/target/linux/xburst/patches-3.0/0001-JZ4740-cache-quirks.patch b/target/linux/xburst/patches-3.0/0001-JZ4740-cache-quirks.patch deleted file mode 100644 index 4f6d9bf9c..000000000 --- a/target/linux/xburst/patches-3.0/0001-JZ4740-cache-quirks.patch +++ /dev/null @@ -1,339 +0,0 @@ -From 2f669aa98831b7248402bab6a07b1b6f722cb6e9 Mon Sep 17 00:00:00 2001 -From: Lars-Peter Clausen -Date: Sat, 24 Apr 2010 17:34:29 +0200 -Subject: [PATCH 01/32] JZ4740 cache quirks - ---- - arch/mips/include/asm/r4kcache.h | 231 ++++++++++++++++++++++++++++++++++++++ - 1 files changed, 231 insertions(+), 0 deletions(-) - -diff --git a/arch/mips/include/asm/r4kcache.h b/arch/mips/include/asm/r4kcache.h -index 54ea47d..3feee5b 100644 ---- a/arch/mips/include/asm/r4kcache.h -+++ b/arch/mips/include/asm/r4kcache.h -@@ -17,6 +17,58 @@ - #include - #include - -+#ifdef CONFIG_MACH_JZ4740 -+ -+#define K0_TO_K1() \ -+do { \ -+ unsigned long __k0_addr; \ -+ \ -+ __asm__ __volatile__( \ -+ "la %0, 1f\n\t" \ -+ "or %0, %0, %1\n\t" \ -+ "jr %0\n\t" \ -+ "nop\n\t" \ -+ "1: nop\n" \ -+ : "=&r"(__k0_addr) \ -+ : "r" (0x20000000) ); \ -+} while(0) -+ -+#define K1_TO_K0() \ -+do { \ -+ unsigned long __k0_addr; \ -+ __asm__ __volatile__( \ -+ "nop;nop;nop;nop;nop;nop;nop\n\t" \ -+ "la %0, 1f\n\t" \ -+ "jr %0\n\t" \ -+ "nop\n\t" \ -+ "1: nop\n" \ -+ : "=&r" (__k0_addr)); \ -+} while (0) -+ -+#define INVALIDATE_BTB() \ -+do { \ -+ unsigned long tmp; \ -+ __asm__ __volatile__( \ -+ ".set mips32\n\t" \ -+ "mfc0 %0, $16, 7\n\t" \ -+ "nop\n\t" \ -+ "ori %0, 2\n\t" \ -+ "mtc0 %0, $16, 7\n\t" \ -+ "nop\n\t" \ -+ : "=&r" (tmp)); \ -+} while (0) -+ -+#define SYNC_WB() __asm__ __volatile__ ("sync") -+ -+#else /* CONFIG_JZRISC */ -+ -+#define K0_TO_K1() do { } while (0) -+#define K1_TO_K0() do { } while (0) -+#define INVALIDATE_BTB() do { } while (0) -+#define SYNC_WB() do { } while (0) -+ -+#endif /* CONFIG_JZRISC */ -+ - /* - * This macro return a properly sign-extended address suitable as base address - * for indexed cache operations. Two issues here: -@@ -144,6 +196,7 @@ static inline void flush_icache_line_indexed(unsigned long addr) - { - __iflush_prologue - cache_op(Index_Invalidate_I, addr); -+ INVALIDATE_BTB(); - __iflush_epilogue - } - -@@ -151,6 +204,7 @@ static inline void flush_dcache_line_indexed(unsigned long addr) - { - __dflush_prologue - cache_op(Index_Writeback_Inv_D, addr); -+ SYNC_WB(); - __dflush_epilogue - } - -@@ -163,6 +217,7 @@ static inline void flush_icache_line(unsigned long addr) - { - __iflush_prologue - cache_op(Hit_Invalidate_I, addr); -+ INVALIDATE_BTB(); - __iflush_epilogue - } - -@@ -170,6 +225,7 @@ static inline void flush_dcache_line(unsigned long addr) - { - __dflush_prologue - cache_op(Hit_Writeback_Inv_D, addr); -+ SYNC_WB(); - __dflush_epilogue - } - -@@ -177,6 +233,7 @@ static inline void invalidate_dcache_line(unsigned long addr) - { - __dflush_prologue - cache_op(Hit_Invalidate_D, addr); -+ SYNC_WB(); - __dflush_epilogue - } - -@@ -209,6 +266,7 @@ static inline void flush_scache_line(unsigned long addr) - static inline void protected_flush_icache_line(unsigned long addr) - { - protected_cache_op(Hit_Invalidate_I, addr); -+ INVALIDATE_BTB(); - } - - /* -@@ -220,6 +278,7 @@ static inline void protected_flush_icache_line(unsigned long addr) - static inline void protected_writeback_dcache_line(unsigned long addr) - { - protected_cache_op(Hit_Writeback_Inv_D, addr); -+ SYNC_WB(); - } - - static inline void protected_writeback_scache_line(unsigned long addr) -@@ -396,8 +455,10 @@ static inline void blast_##pfx##cache##lsize##_page_indexed(unsigned long page) - __BUILD_BLAST_CACHE(d, dcache, Index_Writeback_Inv_D, Hit_Writeback_Inv_D, 16) - __BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 16) - __BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 16) -+#ifndef CONFIG_JZRISC - __BUILD_BLAST_CACHE(d, dcache, Index_Writeback_Inv_D, Hit_Writeback_Inv_D, 32) - __BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 32) -+#endif - __BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 32) - __BUILD_BLAST_CACHE(d, dcache, Index_Writeback_Inv_D, Hit_Writeback_Inv_D, 64) - __BUILD_BLAST_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 64) -@@ -405,12 +466,122 @@ __BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 64) - __BUILD_BLAST_CACHE(s, scache, Index_Writeback_Inv_SD, Hit_Writeback_Inv_SD, 128) - - __BUILD_BLAST_CACHE(inv_d, dcache, Index_Writeback_Inv_D, Hit_Invalidate_D, 16) -+#ifndef CONFIG_JZRISC - __BUILD_BLAST_CACHE(inv_d, dcache, Index_Writeback_Inv_D, Hit_Invalidate_D, 32) -+#endif - __BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 16) - __BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 32) - __BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 64) - __BUILD_BLAST_CACHE(inv_s, scache, Index_Writeback_Inv_SD, Hit_Invalidate_SD, 128) - -+#ifdef CONFIG_JZRISC -+ -+static inline void blast_dcache32(void) -+{ -+ unsigned long start = INDEX_BASE; -+ unsigned long end = start + current_cpu_data.dcache.waysize; -+ unsigned long ws_inc = 1UL << current_cpu_data.dcache.waybit; -+ unsigned long ws_end = current_cpu_data.dcache.ways << -+ current_cpu_data.dcache.waybit; -+ unsigned long ws, addr; -+ -+ for (ws = 0; ws < ws_end; ws += ws_inc) -+ for (addr = start; addr < end; addr += 0x400) -+ cache32_unroll32(addr|ws,Index_Writeback_Inv_D); -+ -+ SYNC_WB(); -+} -+ -+static inline void blast_dcache32_page(unsigned long page) -+{ -+ unsigned long start = page; -+ unsigned long end = page + PAGE_SIZE; -+ -+ do { -+ cache32_unroll32(start,Hit_Writeback_Inv_D); -+ start += 0x400; -+ } while (start < end); -+ -+ SYNC_WB(); -+} -+ -+static inline void blast_dcache32_page_indexed(unsigned long page) -+{ -+ unsigned long indexmask = current_cpu_data.dcache.waysize - 1; -+ unsigned long start = INDEX_BASE + (page & indexmask); -+ unsigned long end = start + PAGE_SIZE; -+ unsigned long ws_inc = 1UL << current_cpu_data.dcache.waybit; -+ unsigned long ws_end = current_cpu_data.dcache.ways << -+ current_cpu_data.dcache.waybit; -+ unsigned long ws, addr; -+ -+ for (ws = 0; ws < ws_end; ws += ws_inc) -+ for (addr = start; addr < end; addr += 0x400) -+ cache32_unroll32(addr|ws,Index_Writeback_Inv_D); -+ -+ SYNC_WB(); -+} -+ -+static inline void blast_icache32(void) -+{ -+ unsigned long start = INDEX_BASE; -+ unsigned long end = start + current_cpu_data.icache.waysize; -+ unsigned long ws_inc = 1UL << current_cpu_data.icache.waybit; -+ unsigned long ws_end = current_cpu_data.icache.ways << -+ current_cpu_data.icache.waybit; -+ unsigned long ws, addr; -+ -+ K0_TO_K1(); -+ -+ for (ws = 0; ws < ws_end; ws += ws_inc) -+ for (addr = start; addr < end; addr += 0x400) -+ cache32_unroll32(addr|ws,Index_Invalidate_I); -+ -+ INVALIDATE_BTB(); -+ -+ K1_TO_K0(); -+} -+ -+static inline void blast_icache32_page(unsigned long page) -+{ -+ unsigned long start = page; -+ unsigned long end = page + PAGE_SIZE; -+ -+ K0_TO_K1(); -+ -+ do { -+ cache32_unroll32(start,Hit_Invalidate_I); -+ start += 0x400; -+ } while (start < end); -+ -+ INVALIDATE_BTB(); -+ -+ K1_TO_K0(); -+} -+ -+static inline void blast_icache32_page_indexed(unsigned long page) -+{ -+ unsigned long indexmask = current_cpu_data.icache.waysize - 1; -+ unsigned long start = INDEX_BASE + (page & indexmask); -+ unsigned long end = start + PAGE_SIZE; -+ unsigned long ws_inc = 1UL << current_cpu_data.icache.waybit; -+ unsigned long ws_end = current_cpu_data.icache.ways << -+ current_cpu_data.icache.waybit; -+ unsigned long ws, addr; -+ -+ K0_TO_K1(); -+ -+ for (ws = 0; ws < ws_end; ws += ws_inc) -+ for (addr = start; addr < end; addr += 0x400) -+ cache32_unroll32(addr|ws,Index_Invalidate_I); -+ -+ INVALIDATE_BTB(); -+ -+ K1_TO_K0(); -+} -+ -+#endif /* CONFIG_JZRISC */ -+ - /* build blast_xxx_range, protected_blast_xxx_range */ - #define __BUILD_BLAST_CACHE_RANGE(pfx, desc, hitop, prot) \ - static inline void prot##blast_##pfx##cache##_range(unsigned long start, \ -@@ -432,13 +603,73 @@ static inline void prot##blast_##pfx##cache##_range(unsigned long start, \ - __##pfx##flush_epilogue \ - } - -+#ifndef CONFIG_JZRISC - __BUILD_BLAST_CACHE_RANGE(d, dcache, Hit_Writeback_Inv_D, protected_) -+#endif - __BUILD_BLAST_CACHE_RANGE(s, scache, Hit_Writeback_Inv_SD, protected_) -+#ifndef CONFIG_JZRISC - __BUILD_BLAST_CACHE_RANGE(i, icache, Hit_Invalidate_I, protected_) - __BUILD_BLAST_CACHE_RANGE(d, dcache, Hit_Writeback_Inv_D, ) -+#endif - __BUILD_BLAST_CACHE_RANGE(s, scache, Hit_Writeback_Inv_SD, ) - /* blast_inv_dcache_range */ - __BUILD_BLAST_CACHE_RANGE(inv_d, dcache, Hit_Invalidate_D, ) - __BUILD_BLAST_CACHE_RANGE(inv_s, scache, Hit_Invalidate_SD, ) - -+#ifdef CONFIG_JZRISC -+ -+static inline void protected_blast_dcache_range(unsigned long start, -+ unsigned long end) -+{ -+ unsigned long lsize = cpu_dcache_line_size(); -+ unsigned long addr = start & ~(lsize - 1); -+ unsigned long aend = (end - 1) & ~(lsize - 1); -+ -+ while (1) { -+ protected_cache_op(Hit_Writeback_Inv_D, addr); -+ if (addr == aend) -+ break; -+ addr += lsize; -+ } -+ SYNC_WB(); -+} -+ -+static inline void protected_blast_icache_range(unsigned long start, -+ unsigned long end) -+{ -+ unsigned long lsize = cpu_icache_line_size(); -+ unsigned long addr = start & ~(lsize - 1); -+ unsigned long aend = (end - 1) & ~(lsize - 1); -+ -+ K0_TO_K1(); -+ -+ while (1) { -+ protected_cache_op(Hit_Invalidate_I, addr); -+ if (addr == aend) -+ break; -+ addr += lsize; -+ } -+ INVALIDATE_BTB(); -+ -+ K1_TO_K0(); -+} -+ -+static inline void blast_dcache_range(unsigned long start, -+ unsigned long end) -+{ -+ unsigned long lsize = cpu_dcache_line_size(); -+ unsigned long addr = start & ~(lsize - 1); -+ unsigned long aend = (end - 1) & ~(lsize - 1); -+ -+ while (1) { -+ cache_op(Hit_Writeback_Inv_D, addr); -+ if (addr == aend) -+ break; -+ addr += lsize; -+ } -+ SYNC_WB(); -+} -+ -+#endif /* CONFIG_JZRISC */ -+ - #endif /* _ASM_R4KCACHE_H */ --- -1.7.4.1 - diff --git a/target/linux/xburst/patches-3.0/0002-Add-n516-board-support.patch b/target/linux/xburst/patches-3.0/0002-Add-n516-board-support.patch deleted file mode 100644 index c5ea18a34..000000000 --- a/target/linux/xburst/patches-3.0/0002-Add-n516-board-support.patch +++ /dev/null @@ -1,679 +0,0 @@ -From 633a1f02f183675e3448c45a5ddd5e942ecbc37c Mon Sep 17 00:00:00 2001 -From: Lars-Peter Clausen -Date: Sat, 24 Apr 2010 17:25:01 +0200 -Subject: [PATCH 02/32] Add n516 board support - ---- - arch/mips/include/asm/mach-jz4740/board-n516.h | 39 +++ - arch/mips/jz4740/Kconfig | 4 + - arch/mips/jz4740/Makefile | 1 + - arch/mips/jz4740/board-n516-display.c | 394 ++++++++++++++++++++++++ - arch/mips/jz4740/board-n516.c | 182 +++++++++++ - 5 files changed, 620 insertions(+), 0 deletions(-) - create mode 100644 arch/mips/include/asm/mach-jz4740/board-n516.h - create mode 100644 arch/mips/jz4740/board-n516-display.c - create mode 100644 arch/mips/jz4740/board-n516.c - -diff --git a/arch/mips/include/asm/mach-jz4740/board-n516.h b/arch/mips/include/asm/mach-jz4740/board-n516.h -new file mode 100644 -index 0000000..090707e ---- /dev/null -+++ b/arch/mips/include/asm/mach-jz4740/board-n516.h -@@ -0,0 +1,39 @@ -+/* -+ * linux/include/asm-mips/mach-jz4740/board-n516.h -+ * -+ * JZ4730-based N516 board definition. -+ * -+ * Copyright (C) 2009, Yauhen Kharuzhy -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ */ -+ -+#ifndef __ASM_JZ4740_N516_H__ -+#define __ASM_JZ4740_N516_H__ -+ -+#include -+ -+/* -+ * GPIO -+ */ -+#define GPIO_SD_VCC_EN_N JZ_GPIO_PORTD(17) -+#define GPIO_SD_CD_N JZ_GPIO_PORTD(7) -+#define GPIO_SD_WP JZ_GPIO_PORTD(15) -+#define GPIO_USB_DETECT JZ_GPIO_PORTD(19) -+#define GPIO_CHARG_STAT_N JZ_GPIO_PORTD(16) -+#define GPIO_LED_ENABLE JZ_GPIO_PORTD(28) -+#define GPIO_LPC_INT JZ_GPIO_PORTD(14) -+#define GPIO_HPHONE_DETECT JZ_GPIO_PORTD(20) -+#define GPIO_SPEAKER_ENABLE JZ_GPIO_PORTD(21) -+ -+/* Display */ -+#define GPIO_DISPLAY_RST_L JZ_GPIO_PORTB(18) -+#define GPIO_DISPLAY_RDY JZ_GPIO_PORTB(17) -+#define GPIO_DISPLAY_STBY JZ_GPIO_PORTC(22) -+#define GPIO_DISPLAY_ERR JZ_GPIO_PORTC(23) -+#define GPIO_DISPLAY_OFF_N JZ_GPIO_PORTD(1) -+ -+#endif /* __ASM_JZ4740_N516_H__ */ -diff --git a/arch/mips/jz4740/Kconfig b/arch/mips/jz4740/Kconfig -index 3e7141f..85bfbf3 100644 ---- a/arch/mips/jz4740/Kconfig -+++ b/arch/mips/jz4740/Kconfig -@@ -6,6 +6,10 @@ choice - config JZ4740_QI_LB60 - bool "Qi Hardware Ben NanoNote" - -+config JZ4740_N516 -+ bool "Hanvon n516 eBook reader" -+ select SOC_JZ4740 -+ - endchoice - - config HAVE_PWM -diff --git a/arch/mips/jz4740/Makefile b/arch/mips/jz4740/Makefile -index a9dff33..727270a 100644 ---- a/arch/mips/jz4740/Makefile -+++ b/arch/mips/jz4740/Makefile -@@ -12,6 +12,7 @@ obj-$(CONFIG_DEBUG_FS) += clock-debugfs.o - # board specific support - - obj-$(CONFIG_JZ4740_QI_LB60) += board-qi_lb60.o -+obj-$(CONFIG_JZ4740_N516) += board-n516.o board-n516-display.o - - # PM support - -diff --git a/arch/mips/jz4740/board-n516-display.c b/arch/mips/jz4740/board-n516-display.c -new file mode 100644 -index 0000000..0e77a82 ---- /dev/null -+++ b/arch/mips/jz4740/board-n516-display.c -@@ -0,0 +1,394 @@ -+/* -+ * board-n516-display.c -- Platform device for N516 display -+ * -+ * Copyright (C) 2009, Yauhen Kharuzhy -+ * -+ * 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. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+ -+#include -+#include -+ -+#include