Update OpenWrt base
This commit is contained in:
parent
f1c23b3b3c
commit
e1808451aa
2
modules
2
modules
@ -1,7 +1,7 @@
|
||||
GLUON_FEEDS='openwrt gluon routing luci'
|
||||
|
||||
OPENWRT_REPO=git://github.com/openwrt/openwrt.git
|
||||
OPENWRT_COMMIT=e663db7bb1797740c4a29ac0fc96eda1b88f9e6e
|
||||
OPENWRT_COMMIT=b21852c60f82bbd53c19098fc0eb1f4cfccfaf35
|
||||
OPENWRT_BRANCH=chaos_calmer
|
||||
|
||||
PACKAGES_OPENWRT_REPO=git://github.com/openwrt/packages.git
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -5,7 +5,7 @@ Subject: fix UBNT XM model detection
|
||||
Signed-off-by: Neal Oakey <neal.oakey@bingo-ev.de>
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index dab4d2c..e7b3cd2 100755
|
||||
index 2f4b112..b220aad 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -64,6 +64,40 @@ wndr3700_board_detect() {
|
||||
@ -64,7 +64,7 @@ index dab4d2c..e7b3cd2 100755
|
||||
;;
|
||||
*"Nanostation M XW")
|
||||
name="nanostation-m-xw"
|
||||
@@ -667,6 +703,7 @@ ar71xx_board_detect() {
|
||||
@@ -682,6 +718,7 @@ ar71xx_board_detect() {
|
||||
;;
|
||||
*"Rocket M")
|
||||
name="rocket-m"
|
||||
|
@ -10,7 +10,7 @@ Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Backport of r49105
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
index d025632..c5c1871 100755
|
||||
index bf53169..ccccc17 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
@@ -66,6 +66,10 @@ tplink_get_image_hwid() {
|
||||
@ -24,7 +24,7 @@ index d025632..c5c1871 100755
|
||||
tplink_get_image_boot_size() {
|
||||
get_image "$@" | dd bs=4 count=1 skip=37 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
|
||||
}
|
||||
@@ -366,13 +370,17 @@ platform_check_image() {
|
||||
@@ -371,13 +375,17 @@ platform_check_image() {
|
||||
}
|
||||
|
||||
local hwid
|
||||
|
@ -11,7 +11,7 @@ Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Backport of r49106
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index e7b3cd2..180a075 100755
|
||||
index b220aad..395a012 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -133,7 +133,7 @@ tplink_board_detect() {
|
||||
|
@ -12,7 +12,7 @@ Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Backport of r49107
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index 180a075..ddd6611 100755
|
||||
index 395a012..131364c 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -162,6 +162,10 @@ tplink_board_detect() {
|
||||
|
@ -11,7 +11,7 @@ Signed off by: Norbert Wegener <nw@wegener-net.de>
|
||||
Backport of r47849
|
||||
|
||||
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
|
||||
index 9a7acbd..d42ceef 100644
|
||||
index 8551399..7184966 100644
|
||||
--- a/target/linux/ar71xx/image/Makefile
|
||||
+++ b/target/linux/ar71xx/image/Makefile
|
||||
@@ -476,6 +476,15 @@ define Device/tl-wr710n-v2
|
||||
|
@ -1,37 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Sun, 8 May 2016 15:53:14 +0200
|
||||
Subject: tools: pkg-config: fix build with GCC 6
|
||||
|
||||
Fixes the following error:
|
||||
|
||||
gdate.c: In function ‘g_date_strftime’:
|
||||
gdate.c:2497:7: error: format not a string literal, format string not checked [-Werror=format-nonliteral]
|
||||
tmplen = strftime (tmpbuf, tmpbufsize, locale_format, &tm);
|
||||
^~~~~~
|
||||
|
||||
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
|
||||
diff --git a/tools/pkg-config/patches/001-glib-gdate-suppress-string-format-literal-warning.patch b/tools/pkg-config/patches/001-glib-gdate-suppress-string-format-literal-warning.patch
|
||||
new file mode 100644
|
||||
index 0000000..6849299
|
||||
--- /dev/null
|
||||
+++ b/tools/pkg-config/patches/001-glib-gdate-suppress-string-format-literal-warning.patch
|
||||
@@ -0,0 +1,18 @@
|
||||
+--- a/glib/glib/gdate.c
|
||||
++++ b/glib/glib/gdate.c
|
||||
+@@ -2439,6 +2439,9 @@ win32_strftime_helper (const GDate *d,
|
||||
+ *
|
||||
+ * Returns: number of characters written to the buffer, or 0 the buffer was too small
|
||||
+ */
|
||||
++#pragma GCC diagnostic push
|
||||
++#pragma GCC diagnostic ignored "-Wformat-nonliteral"
|
||||
++
|
||||
+ gsize
|
||||
+ g_date_strftime (gchar *s,
|
||||
+ gsize slen,
|
||||
+@@ -2549,3 +2552,5 @@ g_date_strftime (gchar *s,
|
||||
+ return retval;
|
||||
+ #endif
|
||||
+ }
|
||||
++
|
||||
++#pragma GCC diagnostic pop
|
@ -1,815 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Sun, 8 May 2016 22:06:51 +0200
|
||||
Subject: tools: mkimage: sync include/linux/compiler*.h with u-boot master
|
||||
|
||||
Fixes build with GCC 6.
|
||||
|
||||
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
|
||||
diff --git a/tools/mkimage/patches/200-compiler-support.patch b/tools/mkimage/patches/200-compiler-support.patch
|
||||
new file mode 100644
|
||||
index 0000000..ca9c5b5
|
||||
--- /dev/null
|
||||
+++ b/tools/mkimage/patches/200-compiler-support.patch
|
||||
@@ -0,0 +1,702 @@
|
||||
+diff --git b/include/linux/compiler-gcc.h a/include/linux/compiler-gcc.h
|
||||
+index e057bd2..22ab246 100644
|
||||
+--- b/include/linux/compiler-gcc.h
|
||||
++++ a/include/linux/compiler-gcc.h
|
||||
+@@ -5,14 +5,28 @@
|
||||
+ /*
|
||||
+ * Common definitions for all gcc versions go here.
|
||||
+ */
|
||||
+-#define GCC_VERSION (__GNUC__ * 10000 \
|
||||
+- + __GNUC_MINOR__ * 100 \
|
||||
+- + __GNUC_PATCHLEVEL__)
|
||||
+-
|
||||
++#define GCC_VERSION (__GNUC__ * 10000 \
|
||||
++ + __GNUC_MINOR__ * 100 \
|
||||
++ + __GNUC_PATCHLEVEL__)
|
||||
+
|
||||
+ /* Optimization barrier */
|
||||
++
|
||||
+ /* The "volatile" is due to gcc bugs */
|
||||
+ #define barrier() __asm__ __volatile__("": : :"memory")
|
||||
++/*
|
||||
++ * This version is i.e. to prevent dead stores elimination on @ptr
|
||||
++ * where gcc and llvm may behave differently when otherwise using
|
||||
++ * normal barrier(): while gcc behavior gets along with a normal
|
||||
++ * barrier(), llvm needs an explicit input variable to be assumed
|
||||
++ * clobbered. The issue is as follows: while the inline asm might
|
||||
++ * access any memory it wants, the compiler could have fit all of
|
||||
++ * @ptr into memory registers instead, and since @ptr never escaped
|
||||
++ * from that, it proofed that the inline asm wasn't touching any of
|
||||
++ * it. This version works well with both compilers, i.e. we're telling
|
||||
++ * the compiler that the inline asm absolutely may see the contents
|
||||
++ * of @ptr. See also: https://llvm.org/bugs/show_bug.cgi?id=15495
|
||||
++ */
|
||||
++#define barrier_data(ptr) __asm__ __volatile__("": :"r"(ptr) :"memory")
|
||||
+
|
||||
+ /*
|
||||
+ * This macro obfuscates arithmetic on a variable address so that gcc
|
||||
+@@ -32,58 +46,63 @@
|
||||
+ * the inline assembly constraint from =g to =r, in this particular
|
||||
+ * case either is valid.
|
||||
+ */
|
||||
+-#define RELOC_HIDE(ptr, off) \
|
||||
+- ({ unsigned long __ptr; \
|
||||
+- __asm__ ("" : "=r"(__ptr) : "0"(ptr)); \
|
||||
+- (typeof(ptr)) (__ptr + (off)); })
|
||||
++#define RELOC_HIDE(ptr, off) \
|
||||
++({ \
|
||||
++ unsigned long __ptr; \
|
||||
++ __asm__ ("" : "=r"(__ptr) : "0"(ptr)); \
|
||||
++ (typeof(ptr)) (__ptr + (off)); \
|
||||
++})
|
||||
+
|
||||
+ /* Make the optimizer believe the variable can be manipulated arbitrarily. */
|
||||
+-#define OPTIMIZER_HIDE_VAR(var) __asm__ ("" : "=r" (var) : "0" (var))
|
||||
++#define OPTIMIZER_HIDE_VAR(var) \
|
||||
++ __asm__ ("" : "=r" (var) : "0" (var))
|
||||
+
|
||||
+ #ifdef __CHECKER__
|
||||
+-#define __must_be_array(arr) 0
|
||||
++#define __must_be_array(a) 0
|
||||
+ #else
|
||||
+ /* &a[0] degrades to a pointer: a different type from an array */
|
||||
+-#define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0]))
|
||||
++#define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0]))
|
||||
+ #endif
|
||||
+
|
||||
+ /*
|
||||
+ * Force always-inline if the user requests it so via the .config,
|
||||
+ * or if gcc is too old:
|
||||
+ */
|
||||
+-#if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) || \
|
||||
++#if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) || \
|
||||
+ !defined(CONFIG_OPTIMIZE_INLINING) || (__GNUC__ < 4)
|
||||
+-# define inline inline __attribute__((always_inline)) notrace
|
||||
+-# define __inline__ __inline__ __attribute__((always_inline)) notrace
|
||||
+-# define __inline __inline __attribute__((always_inline)) notrace
|
||||
++#define inline inline __attribute__((always_inline)) notrace
|
||||
++#define __inline__ __inline__ __attribute__((always_inline)) notrace
|
||||
++#define __inline __inline __attribute__((always_inline)) notrace
|
||||
+ #else
|
||||
+ /* A lot of inline functions can cause havoc with function tracing */
|
||||
+-# define inline inline notrace
|
||||
+-# define __inline__ __inline__ notrace
|
||||
+-# define __inline __inline notrace
|
||||
++#define inline inline notrace
|
||||
++#define __inline__ __inline__ notrace
|
||||
++#define __inline __inline notrace
|
||||
+ #endif
|
||||
+
|
||||
+-#define __deprecated __attribute__((deprecated))
|
||||
+-#ifndef __packed
|
||||
+-#define __packed __attribute__((packed))
|
||||
+-#endif
|
||||
+-#ifndef __weak
|
||||
+-#define __weak __attribute__((weak))
|
||||
+-#endif
|
||||
++#define __always_inline inline __attribute__((always_inline))
|
||||
++#define noinline __attribute__((noinline))
|
||||
++
|
||||
++#define __deprecated __attribute__((deprecated))
|
||||
++#define __packed __attribute__((packed))
|
||||
++#define __weak __attribute__((weak))
|
||||
++#define __alias(symbol) __attribute__((alias(#symbol)))
|
||||
+
|
||||
+ /*
|
||||
+- * it doesn't make sense on ARM (currently the only user of __naked) to trace
|
||||
+- * naked functions because then mcount is called without stack and frame pointer
|
||||
+- * being set up and there is no chance to restore the lr register to the value
|
||||
+- * before mcount was called.
|
||||
++ * it doesn't make sense on ARM (currently the only user of __naked)
|
||||
++ * to trace naked functions because then mcount is called without
|
||||
++ * stack and frame pointer being set up and there is no chance to
|
||||
++ * restore the lr register to the value before mcount was called.
|
||||
++ *
|
||||
++ * The asm() bodies of naked functions often depend on standard calling
|
||||
++ * conventions, therefore they must be noinline and noclone.
|
||||
+ *
|
||||
+- * The asm() bodies of naked functions often depend on standard calling conventions,
|
||||
+- * therefore they must be noinline and noclone. GCC 4.[56] currently fail to enforce
|
||||
+- * this, so we must do so ourselves. See GCC PR44290.
|
||||
++ * GCC 4.[56] currently fail to enforce this, so we must do so ourselves.
|
||||
++ * See GCC PR44290.
|
||||
+ */
|
||||
+-#define __naked __attribute__((naked)) noinline __noclone notrace
|
||||
++#define __naked __attribute__((naked)) noinline __noclone notrace
|
||||
+
|
||||
+-#define __noreturn __attribute__((noreturn))
|
||||
++#define __noreturn __attribute__((noreturn))
|
||||
+
|
||||
+ /*
|
||||
+ * From the GCC manual:
|
||||
+@@ -95,34 +114,170 @@
|
||||
+ * would be.
|
||||
+ * [...]
|
||||
+ */
|
||||
+-#ifndef __pure
|
||||
+-#define __pure __attribute__((pure))
|
||||
++#define __pure __attribute__((pure))
|
||||
++#define __aligned(x) __attribute__((aligned(x)))
|
||||
++#define __printf(a, b) __attribute__((format(printf, a, b)))
|
||||
++#define __scanf(a, b) __attribute__((format(scanf, a, b)))
|
||||
++#define __attribute_const__ __attribute__((__const__))
|
||||
++#define __maybe_unused __attribute__((unused))
|
||||
++#define __always_unused __attribute__((unused))
|
||||
++
|
||||
++/* gcc version specific checks */
|
||||
++
|
||||
++#if GCC_VERSION < 30200
|
||||
++# error Sorry, your compiler is too old - please upgrade it.
|
||||
++#endif
|
||||
++
|
||||
++#if GCC_VERSION < 30300
|
||||
++# define __used __attribute__((__unused__))
|
||||
++#else
|
||||
++# define __used __attribute__((__used__))
|
||||
++#endif
|
||||
++
|
||||
++#ifdef CONFIG_GCOV_KERNEL
|
||||
++# if GCC_VERSION < 30400
|
||||
++# error "GCOV profiling support for gcc versions below 3.4 not included"
|
||||
++# endif /* __GNUC_MINOR__ */
|
||||
++#endif /* CONFIG_GCOV_KERNEL */
|
||||
++
|
||||
++#if GCC_VERSION >= 30400
|
||||
++#define __must_check __attribute__((warn_unused_result))
|
||||
++#endif
|
||||
++
|
||||
++#if GCC_VERSION >= 40000
|
||||
++
|
||||
++/* GCC 4.1.[01] miscompiles __weak */
|
||||
++#ifdef __KERNEL__
|
||||
++# if GCC_VERSION >= 40100 && GCC_VERSION <= 40101
|
||||
++# error Your version of gcc miscompiles the __weak directive
|
||||
++# endif
|
||||
++#endif
|
||||
++
|
||||
++#define __used __attribute__((__used__))
|
||||
++#define __compiler_offsetof(a, b) \
|
||||
++ __builtin_offsetof(a, b)
|
||||
++
|
||||
++#if GCC_VERSION >= 40100 && GCC_VERSION < 40600
|
||||
++# define __compiletime_object_size(obj) __builtin_object_size(obj, 0)
|
||||
++#endif
|
||||
++
|
||||
++#if GCC_VERSION >= 40300
|
||||
++/* Mark functions as cold. gcc will assume any path leading to a call
|
||||
++ * to them will be unlikely. This means a lot of manual unlikely()s
|
||||
++ * are unnecessary now for any paths leading to the usual suspects
|
||||
++ * like BUG(), printk(), panic() etc. [but let's keep them for now for
|
||||
++ * older compilers]
|
||||
++ *
|
||||
++ * Early snapshots of gcc 4.3 don't support this and we can't detect this
|
||||
++ * in the preprocessor, but we can live with this because they're unreleased.
|
||||
++ * Maketime probing would be overkill here.
|
||||
++ *
|
||||
++ * gcc also has a __attribute__((__hot__)) to move hot functions into
|
||||
++ * a special section, but I don't see any sense in this right now in
|
||||
++ * the kernel context
|
||||
++ */
|
||||
++#define __cold __attribute__((__cold__))
|
||||
++
|
||||
++#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
|
||||
++
|
||||
++#ifndef __CHECKER__
|
||||
++# define __compiletime_warning(message) __attribute__((warning(message)))
|
||||
++# define __compiletime_error(message) __attribute__((error(message)))
|
||||
++#endif /* __CHECKER__ */
|
||||
++#endif /* GCC_VERSION >= 40300 */
|
||||
++
|
||||
++#if GCC_VERSION >= 40500
|
||||
++/*
|
||||
++ * Mark a position in code as unreachable. This can be used to
|
||||
++ * suppress control flow warnings after asm blocks that transfer
|
||||
++ * control elsewhere.
|
||||
++ *
|
||||
++ * Early snapshots of gcc 4.5 don't support this and we can't detect
|
||||
++ * this in the preprocessor, but we can live with this because they're
|
||||
++ * unreleased. Really, we need to have autoconf for the kernel.
|
||||
++ */
|
||||
++#define unreachable() __builtin_unreachable()
|
||||
++
|
||||
++/* Mark a function definition as prohibited from being cloned. */
|
||||
++#define __noclone __attribute__((__noclone__))
|
||||
++
|
||||
++#endif /* GCC_VERSION >= 40500 */
|
||||
++
|
||||
++#if GCC_VERSION >= 40600
|
||||
++/*
|
||||
++ * When used with Link Time Optimization, gcc can optimize away C functions or
|
||||
++ * variables which are referenced only from assembly code. __visible tells the
|
||||
++ * optimizer that something else uses this function or variable, thus preventing
|
||||
++ * this.
|
||||
++ */
|
||||
++#define __visible __attribute__((externally_visible))
|
||||
+ #endif
|
||||
+-#ifndef __aligned
|
||||
+-#define __aligned(x) __attribute__((aligned(x)))
|
||||
++
|
||||
++
|
||||
++#if GCC_VERSION >= 40900 && !defined(__CHECKER__)
|
||||
++/*
|
||||
++ * __assume_aligned(n, k): Tell the optimizer that the returned
|
||||
++ * pointer can be assumed to be k modulo n. The second argument is
|
||||
++ * optional (default 0), so we use a variadic macro to make the
|
||||
++ * shorthand.
|
||||
++ *
|
||||
++ * Beware: Do not apply this to functions which may return
|
||||
++ * ERR_PTRs. Also, it is probably unwise to apply it to functions
|
||||
++ * returning extra information in the low bits (but in that case the
|
||||
++ * compiler should see some alignment anyway, when the return value is
|
||||
++ * massaged by 'flags = ptr & 3; ptr &= ~3;').
|
||||
++ */
|
||||
++#define __assume_aligned(a, ...) __attribute__((__assume_aligned__(a, ## __VA_ARGS__)))
|
||||
+ #endif
|
||||
+-#define __printf(a, b) __attribute__((format(printf, a, b)))
|
||||
+-#define __scanf(a, b) __attribute__((format(scanf, a, b)))
|
||||
+-#define noinline __attribute__((noinline))
|
||||
+-#define __attribute_const__ __attribute__((__const__))
|
||||
+-#define __maybe_unused __attribute__((unused))
|
||||
+-#define __always_unused __attribute__((unused))
|
||||
+
|
||||
+-#define __gcc_header(x) #x
|
||||
+-#define _gcc_header(x) __gcc_header(linux/compiler-gcc##x.h)
|
||||
+-#define gcc_header(x) _gcc_header(x)
|
||||
+-#include gcc_header(__GNUC__)
|
||||
++/*
|
||||
++ * GCC 'asm goto' miscompiles certain code sequences:
|
||||
++ *
|
||||
++ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
|
||||
++ *
|
||||
++ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
|
||||
++ *
|
||||
++ * (asm goto is automatically volatile - the naming reflects this.)
|
||||
++ */
|
||||
++#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
|
||||
++
|
||||
++#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
|
||||
++#if GCC_VERSION >= 40400
|
||||
++#define __HAVE_BUILTIN_BSWAP32__
|
||||
++#define __HAVE_BUILTIN_BSWAP64__
|
||||
++#endif
|
||||
++#if GCC_VERSION >= 40800 || (defined(__powerpc__) && GCC_VERSION >= 40600)
|
||||
++#define __HAVE_BUILTIN_BSWAP16__
|
||||
++#endif
|
||||
++#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
|
||||
++
|
||||
++#if GCC_VERSION >= 50000
|
||||
++#define KASAN_ABI_VERSION 4
|
||||
++#elif GCC_VERSION >= 40902
|
||||
++#define KASAN_ABI_VERSION 3
|
||||
++#endif
|
||||
++
|
||||
++#if GCC_VERSION >= 40902
|
||||
++/*
|
||||
++ * Tell the compiler that address safety instrumentation (KASAN)
|
||||
++ * should not be applied to that function.
|
||||
++ * Conflicts with inlining: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67368
|
||||
++ */
|
||||
++#define __no_sanitize_address __attribute__((no_sanitize_address))
|
||||
++#endif
|
||||
++
|
||||
++#endif /* gcc version >= 40000 specific checks */
|
||||
+
|
||||
+ #if !defined(__noclone)
|
||||
+ #define __noclone /* not needed */
|
||||
+ #endif
|
||||
+
|
||||
++#if !defined(__no_sanitize_address)
|
||||
++#define __no_sanitize_address
|
||||
++#endif
|
||||
++
|
||||
+ /*
|
||||
+ * A trick to suppress uninitialized variable warning without generating any
|
||||
+ * code
|
||||
+ */
|
||||
+ #define uninitialized_var(x) x = x
|
||||
+-
|
||||
+-#ifndef __always_inline
|
||||
+-#define __always_inline inline __attribute__((always_inline))
|
||||
+-#endif
|
||||
+diff --git b/include/linux/compiler-gcc3.h a/include/linux/compiler-gcc3.h
|
||||
+deleted file mode 100644
|
||||
+index 7d89feb..0000000
|
||||
+--- b/include/linux/compiler-gcc3.h
|
||||
++++ /dev/null
|
||||
+@@ -1,23 +0,0 @@
|
||||
+-#ifndef __LINUX_COMPILER_H
|
||||
+-#error "Please don't include <linux/compiler-gcc3.h> directly, include <linux/compiler.h> instead."
|
||||
+-#endif
|
||||
+-
|
||||
+-#if GCC_VERSION < 30200
|
||||
+-# error Sorry, your compiler is too old - please upgrade it.
|
||||
+-#endif
|
||||
+-
|
||||
+-#if GCC_VERSION >= 30300
|
||||
+-# define __used __attribute__((__used__))
|
||||
+-#else
|
||||
+-# define __used __attribute__((__unused__))
|
||||
+-#endif
|
||||
+-
|
||||
+-#if GCC_VERSION >= 30400
|
||||
+-#define __must_check __attribute__((warn_unused_result))
|
||||
+-#endif
|
||||
+-
|
||||
+-#ifdef CONFIG_GCOV_KERNEL
|
||||
+-# if GCC_VERSION < 30400
|
||||
+-# error "GCOV profiling support for gcc versions below 3.4 not included"
|
||||
+-# endif /* __GNUC_MINOR__ */
|
||||
+-#endif /* CONFIG_GCOV_KERNEL */
|
||||
+diff --git b/include/linux/compiler-gcc4.h a/include/linux/compiler-gcc4.h
|
||||
+deleted file mode 100644
|
||||
+index c982a09..0000000
|
||||
+--- b/include/linux/compiler-gcc4.h
|
||||
++++ /dev/null
|
||||
+@@ -1,81 +0,0 @@
|
||||
+-#ifndef __LINUX_COMPILER_H
|
||||
+-#error "Please don't include <linux/compiler-gcc4.h> directly, include <linux/compiler.h> instead."
|
||||
+-#endif
|
||||
+-
|
||||
+-#define __used __attribute__((__used__))
|
||||
+-#define __must_check __attribute__((warn_unused_result))
|
||||
+-#define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
|
||||
+-
|
||||
+-#if GCC_VERSION >= 40100 && GCC_VERSION < 40600
|
||||
+-# define __compiletime_object_size(obj) __builtin_object_size(obj, 0)
|
||||
+-#endif
|
||||
+-
|
||||
+-#if GCC_VERSION >= 40300
|
||||
+-/* Mark functions as cold. gcc will assume any path leading to a call
|
||||
+- to them will be unlikely. This means a lot of manual unlikely()s
|
||||
+- are unnecessary now for any paths leading to the usual suspects
|
||||
+- like BUG(), printk(), panic() etc. [but let's keep them for now for
|
||||
+- older compilers]
|
||||
+-
|
||||
+- Early snapshots of gcc 4.3 don't support this and we can't detect this
|
||||
+- in the preprocessor, but we can live with this because they're unreleased.
|
||||
+- Maketime probing would be overkill here.
|
||||
+-
|
||||
+- gcc also has a __attribute__((__hot__)) to move hot functions into
|
||||
+- a special section, but I don't see any sense in this right now in
|
||||
+- the kernel context */
|
||||
+-#define __cold __attribute__((__cold__))
|
||||
+-
|
||||
+-#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
|
||||
+-
|
||||
+-#ifndef __CHECKER__
|
||||
+-# define __compiletime_warning(message) __attribute__((warning(message)))
|
||||
+-# define __compiletime_error(message) __attribute__((error(message)))
|
||||
+-#endif /* __CHECKER__ */
|
||||
+-#endif /* GCC_VERSION >= 40300 */
|
||||
+-
|
||||
+-#if GCC_VERSION >= 40500
|
||||
+-/*
|
||||
+- * Mark a position in code as unreachable. This can be used to
|
||||
+- * suppress control flow warnings after asm blocks that transfer
|
||||
+- * control elsewhere.
|
||||
+- *
|
||||
+- * Early snapshots of gcc 4.5 don't support this and we can't detect
|
||||
+- * this in the preprocessor, but we can live with this because they're
|
||||
+- * unreleased. Really, we need to have autoconf for the kernel.
|
||||
+- */
|
||||
+-#define unreachable() __builtin_unreachable()
|
||||
+-
|
||||
+-/* Mark a function definition as prohibited from being cloned. */
|
||||
+-#define __noclone __attribute__((__noclone__))
|
||||
+-
|
||||
+-#endif /* GCC_VERSION >= 40500 */
|
||||
+-
|
||||
+-#if GCC_VERSION >= 40600
|
||||
+-/*
|
||||
+- * Tell the optimizer that something else uses this function or variable.
|
||||
+- */
|
||||
+-#define __visible __attribute__((externally_visible))
|
||||
+-#endif
|
||||
+-
|
||||
+-/*
|
||||
+- * GCC 'asm goto' miscompiles certain code sequences:
|
||||
+- *
|
||||
+- * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
|
||||
+- *
|
||||
+- * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
|
||||
+- * Fixed in GCC 4.8.2 and later versions.
|
||||
+- *
|
||||
+- * (asm goto is automatically volatile - the naming reflects this.)
|
||||
+- */
|
||||
+-#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
|
||||
+-
|
||||
+-#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
|
||||
+-#if GCC_VERSION >= 40400
|
||||
+-#define __HAVE_BUILTIN_BSWAP32__
|
||||
+-#define __HAVE_BUILTIN_BSWAP64__
|
||||
+-#endif
|
||||
+-#if GCC_VERSION >= 40800 || (defined(__powerpc__) && GCC_VERSION >= 40600)
|
||||
+-#define __HAVE_BUILTIN_BSWAP16__
|
||||
+-#endif
|
||||
+-#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
|
||||
+diff --git b/include/linux/compiler-intel.h a/include/linux/compiler-intel.h
|
||||
+index ba147a1..d4c7113 100644
|
||||
+--- b/include/linux/compiler-intel.h
|
||||
++++ a/include/linux/compiler-intel.h
|
||||
+@@ -13,9 +13,14 @@
|
||||
+ /* Intel ECC compiler doesn't support gcc specific asm stmts.
|
||||
+ * It uses intrinsics to do the equivalent things.
|
||||
+ */
|
||||
++#undef barrier
|
||||
++#undef barrier_data
|
||||
+ #undef RELOC_HIDE
|
||||
+ #undef OPTIMIZER_HIDE_VAR
|
||||
+
|
||||
++#define barrier() __memory_barrier()
|
||||
++#define barrier_data(ptr) barrier()
|
||||
++
|
||||
+ #define RELOC_HIDE(ptr, off) \
|
||||
+ ({ unsigned long __ptr; \
|
||||
+ __ptr = (unsigned long) (ptr); \
|
||||
+diff --git b/include/linux/compiler.h a/include/linux/compiler.h
|
||||
+index d5ad7b1..020ad16 100644
|
||||
+--- b/include/linux/compiler.h
|
||||
++++ a/include/linux/compiler.h
|
||||
+@@ -17,6 +17,7 @@
|
||||
+ # define __release(x) __context__(x,-1)
|
||||
+ # define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0)
|
||||
+ # define __percpu __attribute__((noderef, address_space(3)))
|
||||
++# define __pmem __attribute__((noderef, address_space(5)))
|
||||
+ #ifdef CONFIG_SPARSE_RCU_POINTER
|
||||
+ # define __rcu __attribute__((noderef, address_space(4)))
|
||||
+ #else
|
||||
+@@ -42,6 +43,7 @@ extern void __chk_io_ptr(const volatile void __iomem *);
|
||||
+ # define __cond_lock(x,c) (c)
|
||||
+ # define __percpu
|
||||
+ # define __rcu
|
||||
++# define __pmem
|
||||
+ #endif
|
||||
+
|
||||
+ /* Indirect macros required for expanded argument pasting, eg. __LINE__. */
|
||||
+@@ -54,7 +56,11 @@ extern void __chk_io_ptr(const volatile void __iomem *);
|
||||
+ #include <linux/compiler-gcc.h>
|
||||
+ #endif
|
||||
+
|
||||
++#if defined(CC_USING_HOTPATCH) && !defined(__CHECKER__)
|
||||
++#define notrace __attribute__((hotpatch(0,0)))
|
||||
++#else
|
||||
+ #define notrace __attribute__((no_instrument_function))
|
||||
++#endif
|
||||
+
|
||||
+ /* Intel compiler defines __GNUC__. So we will overwrite implementations
|
||||
+ * coming from above header files here
|
||||
+@@ -138,7 +144,7 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
|
||||
+ */
|
||||
+ #define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) )
|
||||
+ #define __trace_if(cond) \
|
||||
+- if (__builtin_constant_p((cond)) ? !!(cond) : \
|
||||
++ if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
|
||||
+ ({ \
|
||||
+ int ______r; \
|
||||
+ static struct ftrace_branch_data \
|
||||
+@@ -165,6 +171,10 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
|
||||
+ # define barrier() __memory_barrier()
|
||||
+ #endif
|
||||
+
|
||||
++#ifndef barrier_data
|
||||
++# define barrier_data(ptr) barrier()
|
||||
++#endif
|
||||
++
|
||||
+ /* Unreachable code */
|
||||
+ #ifndef unreachable
|
||||
+ # define unreachable() do { } while (1)
|
||||
+@@ -186,6 +196,126 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
|
||||
+ # define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __LINE__)
|
||||
+ #endif
|
||||
+
|
||||
++#include <linux/types.h>
|
||||
++
|
||||
++#define __READ_ONCE_SIZE \
|
||||
++({ \
|
||||
++ switch (size) { \
|
||||
++ case 1: *(__u8 *)res = *(volatile __u8 *)p; break; \
|
||||
++ case 2: *(__u16 *)res = *(volatile __u16 *)p; break; \
|
||||
++ case 4: *(__u32 *)res = *(volatile __u32 *)p; break; \
|
||||
++ case 8: *(__u64 *)res = *(volatile __u64 *)p; break; \
|
||||
++ default: \
|
||||
++ barrier(); \
|
||||
++ __builtin_memcpy((void *)res, (const void *)p, size); \
|
||||
++ barrier(); \
|
||||
++ } \
|
||||
++})
|
||||
++
|
||||
++static __always_inline
|
||||
++void __read_once_size(const volatile void *p, void *res, int size)
|
||||
++{
|
||||
++ __READ_ONCE_SIZE;
|
||||
++}
|
||||
++
|
||||
++#ifdef CONFIG_KASAN
|
||||
++/*
|
||||
++ * This function is not 'inline' because __no_sanitize_address confilcts
|
||||
++ * with inlining. Attempt to inline it may cause a build failure.
|
||||
++ * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67368
|
||||
++ * '__maybe_unused' allows us to avoid defined-but-not-used warnings.
|
||||
++ */
|
||||
++static __no_sanitize_address __maybe_unused
|
||||
++void __read_once_size_nocheck(const volatile void *p, void *res, int size)
|
||||
++{
|
||||
++ __READ_ONCE_SIZE;
|
||||
++}
|
||||
++#else
|
||||
++static __always_inline
|
||||
++void __read_once_size_nocheck(const volatile void *p, void *res, int size)
|
||||
++{
|
||||
++ __READ_ONCE_SIZE;
|
||||
++}
|
||||
++#endif
|
||||
++
|
||||
++static __always_inline void __write_once_size(volatile void *p, void *res, int size)
|
||||
++{
|
||||
++ switch (size) {
|
||||
++ case 1: *(volatile __u8 *)p = *(__u8 *)res; break;
|
||||
++ case 2: *(volatile __u16 *)p = *(__u16 *)res; break;
|
||||
++ case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
|
||||
++ case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
|
||||
++ default:
|
||||
++ barrier();
|
||||
++ __builtin_memcpy((void *)p, (const void *)res, size);
|
||||
++ barrier();
|
||||
++ }
|
||||
++}
|
||||
++
|
||||
++/*
|
||||
++ * Prevent the compiler from merging or refetching reads or writes. The
|
||||
++ * compiler is also forbidden from reordering successive instances of
|
||||
++ * READ_ONCE, WRITE_ONCE and ACCESS_ONCE (see below), but only when the
|
||||
++ * compiler is aware of some particular ordering. One way to make the
|
||||
++ * compiler aware of ordering is to put the two invocations of READ_ONCE,
|
||||
++ * WRITE_ONCE or ACCESS_ONCE() in different C statements.
|
||||
++ *
|
||||
++ * In contrast to ACCESS_ONCE these two macros will also work on aggregate
|
||||
++ * data types like structs or unions. If the size of the accessed data
|
||||
++ * type exceeds the word size of the machine (e.g., 32 bits or 64 bits)
|
||||
++ * READ_ONCE() and WRITE_ONCE() will fall back to memcpy and print a
|
||||
++ * compile-time warning.
|
||||
++ *
|
||||
++ * Their two major use cases are: (1) Mediating communication between
|
||||
++ * process-level code and irq/NMI handlers, all running on the same CPU,
|
||||
++ * and (2) Ensuring that the compiler does not fold, spindle, or otherwise
|
||||
++ * mutilate accesses that either do not require ordering or that interact
|
||||
++ * with an explicit memory barrier or atomic instruction that provides the
|
||||
++ * required ordering.
|
||||
++ */
|
||||
++
|
||||
++#define __READ_ONCE(x, check) \
|
||||
++({ \
|
||||
++ union { typeof(x) __val; char __c[1]; } __u; \
|
||||
++ if (check) \
|
||||
++ __read_once_size(&(x), __u.__c, sizeof(x)); \
|
||||
++ else \
|
||||
++ __read_once_size_nocheck(&(x), __u.__c, sizeof(x)); \
|
||||
++ __u.__val; \
|
||||
++})
|
||||
++#define READ_ONCE(x) __READ_ONCE(x, 1)
|
||||
++
|
||||
++/*
|
||||
++ * Use READ_ONCE_NOCHECK() instead of READ_ONCE() if you need
|
||||
++ * to hide memory access from KASAN.
|
||||
++ */
|
||||
++#define READ_ONCE_NOCHECK(x) __READ_ONCE(x, 0)
|
||||
++
|
||||
++#define WRITE_ONCE(x, val) \
|
||||
++({ \
|
||||
++ union { typeof(x) __val; char __c[1]; } __u = \
|
||||
++ { .__val = (__force typeof(x)) (val) }; \
|
||||
++ __write_once_size(&(x), __u.__c, sizeof(x)); \
|
||||
++ __u.__val; \
|
||||
++})
|
||||
++
|
||||
++/**
|
||||
++ * smp_cond_acquire() - Spin wait for cond with ACQUIRE ordering
|
||||
++ * @cond: boolean expression to wait for
|
||||
++ *
|
||||
++ * Equivalent to using smp_load_acquire() on the condition variable but employs
|
||||
++ * the control dependency of the wait to reduce the barrier on many platforms.
|
||||
++ *
|
||||
++ * The control dependency provides a LOAD->STORE order, the additional RMB
|
||||
++ * provides LOAD->LOAD order, together they provide LOAD->{LOAD,STORE} order,
|
||||
++ * aka. ACQUIRE.
|
||||
++ */
|
||||
++#define smp_cond_acquire(cond) do { \
|
||||
++ while (!(cond)) \
|
||||
++ cpu_relax(); \
|
||||
++ smp_rmb(); /* ctrl + rmb := acquire */ \
|
||||
++} while (0)
|
||||
++
|
||||
+ #endif /* __KERNEL__ */
|
||||
+
|
||||
+ #endif /* __ASSEMBLY__ */
|
||||
+@@ -304,6 +434,14 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
|
||||
+ #define __visible
|
||||
+ #endif
|
||||
+
|
||||
++/*
|
||||
++ * Assume alignment of return value.
|
||||
++ */
|
||||
++#ifndef __assume_aligned
|
||||
++#define __assume_aligned(a, ...)
|
||||
++#endif
|
||||
++
|
||||
++
|
||||
+ /* Are two types/vars the same type (ignoring qualifiers)? */
|
||||
+ #ifndef __same_type
|
||||
+ # define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
|
||||
+@@ -311,7 +449,7 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
|
||||
+
|
||||
+ /* Is this type a native word size -- useful for atomic operations */
|
||||
+ #ifndef __native_word
|
||||
+-# define __native_word(t) (sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long))
|
||||
++# define __native_word(t) (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long))
|
||||
+ #endif
|
||||
+
|
||||
+ /* Compile time object size, -1 for unknown */
|
||||
+@@ -373,12 +511,38 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
|
||||
+ * to make the compiler aware of ordering is to put the two invocations of
|
||||
+ * ACCESS_ONCE() in different C statements.
|
||||
+ *
|
||||
+- * This macro does absolutely -nothing- to prevent the CPU from reordering,
|
||||
+- * merging, or refetching absolutely anything at any time. Its main intended
|
||||
+- * use is to mediate communication between process-level code and irq/NMI
|
||||
+- * handlers, all running on the same CPU.
|
||||
++ * ACCESS_ONCE will only work on scalar types. For union types, ACCESS_ONCE
|
||||
++ * on a union member will work as long as the size of the member matches the
|
||||
++ * size of the union and the size is smaller than word size.
|
||||
++ *
|
||||
++ * The major use cases of ACCESS_ONCE used to be (1) Mediating communication
|
||||
++ * between process-level code and irq/NMI handlers, all running on the same CPU,
|
||||
++ * and (2) Ensuring that the compiler does not fold, spindle, or otherwise
|
||||
++ * mutilate accesses that either do not require ordering or that interact
|
||||
++ * with an explicit memory barrier or atomic instruction that provides the
|
||||
++ * required ordering.
|
||||
++ *
|
||||
++ * If possible use READ_ONCE()/WRITE_ONCE() instead.
|
||||
++ */
|
||||
++#define __ACCESS_ONCE(x) ({ \
|
||||
++ __maybe_unused typeof(x) __var = (__force typeof(x)) 0; \
|
||||
++ (volatile typeof(x) *)&(x); })
|
||||
++#define ACCESS_ONCE(x) (*__ACCESS_ONCE(x))
|
||||
++
|
||||
++/**
|
||||
++ * lockless_dereference() - safely load a pointer for later dereference
|
||||
++ * @p: The pointer to load
|
||||
++ *
|
||||
++ * Similar to rcu_dereference(), but for situations where the pointed-to
|
||||
++ * object's lifetime is managed by something other than RCU. That
|
||||
++ * "something other" might be reference counting or simple immortality.
|
||||
+ */
|
||||
+-#define ACCESS_ONCE(x) (*(volatile typeof(x) *)&(x))
|
||||
++#define lockless_dereference(p) \
|
||||
++({ \
|
||||
++ typeof(p) _________p1 = READ_ONCE(p); \
|
||||
++ smp_read_barrier_depends(); /* Dependency order vs. p above. */ \
|
||||
++ (_________p1); \
|
||||
++})
|
||||
+
|
||||
+ /* Ignore/forbid kprobes attach on very low level functions marked by this attribute: */
|
||||
+ #ifdef CONFIG_KPROBES
|
||||
diff --git a/tools/mkimage/patches/200-gcc5_compat.patch b/tools/mkimage/patches/200-gcc5_compat.patch
|
||||
deleted file mode 100644
|
||||
index 4d55f00..0000000
|
||||
--- a/tools/mkimage/patches/200-gcc5_compat.patch
|
||||
+++ /dev/null
|
||||
@@ -1,93 +0,0 @@
|
||||
-From 478b02f1a7043b673565075ea5016376f3293b23 Mon Sep 17 00:00:00 2001
|
||||
-From: Hans de Goede <hdegoede@redhat.com>
|
||||
-Date: Sat, 7 Feb 2015 22:52:40 +0100
|
||||
-Subject: [PATCH] Add linux/compiler-gcc5.h to fix builds with gcc5
|
||||
-
|
||||
-Add linux/compiler-gcc5/h from the kernel sources at:
|
||||
-
|
||||
-commit 5631b8fba640a4ab2f8a954f63a603fa34eda96b
|
||||
-Author: Steven Noonan <steven@uplinklabs.net>
|
||||
-Date: Sat Oct 25 15:09:42 2014 -0700
|
||||
-
|
||||
- compiler/gcc4+: Remove inaccurate comment about 'asm goto' miscompiles
|
||||
-
|
||||
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
----
|
||||
- include/linux/compiler-gcc5.h | 65 +++++++++++++++++++++++++++++++++++++++++
|
||||
- 1 file changed, 65 insertions(+)
|
||||
- create mode 100644 include/linux/compiler-gcc5.h
|
||||
-
|
||||
-diff --git a/include/linux/compiler-gcc5.h b/include/linux/compiler-gcc5.h
|
||||
-new file mode 100644
|
||||
-index 0000000..c8c5659
|
||||
---- /dev/null
|
||||
-+++ b/include/linux/compiler-gcc5.h
|
||||
-@@ -0,0 +1,65 @@
|
||||
-+#ifndef __LINUX_COMPILER_H
|
||||
-+#error "Please don't include <linux/compiler-gcc5.h> directly, include <linux/compiler.h> instead."
|
||||
-+#endif
|
||||
-+
|
||||
-+#define __used __attribute__((__used__))
|
||||
-+#define __must_check __attribute__((warn_unused_result))
|
||||
-+#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
|
||||
-+
|
||||
-+/* Mark functions as cold. gcc will assume any path leading to a call
|
||||
-+ to them will be unlikely. This means a lot of manual unlikely()s
|
||||
-+ are unnecessary now for any paths leading to the usual suspects
|
||||
-+ like BUG(), printk(), panic() etc. [but let's keep them for now for
|
||||
-+ older compilers]
|
||||
-+
|
||||
-+ Early snapshots of gcc 4.3 don't support this and we can't detect this
|
||||
-+ in the preprocessor, but we can live with this because they're unreleased.
|
||||
-+ Maketime probing would be overkill here.
|
||||
-+
|
||||
-+ gcc also has a __attribute__((__hot__)) to move hot functions into
|
||||
-+ a special section, but I don't see any sense in this right now in
|
||||
-+ the kernel context */
|
||||
-+#define __cold __attribute__((__cold__))
|
||||
-+
|
||||
-+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
|
||||
-+
|
||||
-+#ifndef __CHECKER__
|
||||
-+# define __compiletime_warning(message) __attribute__((warning(message)))
|
||||
-+# define __compiletime_error(message) __attribute__((error(message)))
|
||||
-+#endif /* __CHECKER__ */
|
||||
-+
|
||||
-+/*
|
||||
-+ * Mark a position in code as unreachable. This can be used to
|
||||
-+ * suppress control flow warnings after asm blocks that transfer
|
||||
-+ * control elsewhere.
|
||||
-+ *
|
||||
-+ * Early snapshots of gcc 4.5 don't support this and we can't detect
|
||||
-+ * this in the preprocessor, but we can live with this because they're
|
||||
-+ * unreleased. Really, we need to have autoconf for the kernel.
|
||||
-+ */
|
||||
-+#define unreachable() __builtin_unreachable()
|
||||
-+
|
||||
-+/* Mark a function definition as prohibited from being cloned. */
|
||||
-+#define __noclone __attribute__((__noclone__))
|
||||
-+
|
||||
-+/*
|
||||
-+ * Tell the optimizer that something else uses this function or variable.
|
||||
-+ */
|
||||
-+#define __visible __attribute__((externally_visible))
|
||||
-+
|
||||
-+/*
|
||||
-+ * GCC 'asm goto' miscompiles certain code sequences:
|
||||
-+ *
|
||||
-+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
|
||||
-+ *
|
||||
-+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
|
||||
-+ *
|
||||
-+ * (asm goto is automatically volatile - the naming reflects this.)
|
||||
-+ */
|
||||
-+#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
|
||||
-+
|
||||
-+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
|
||||
-+#define __HAVE_BUILTIN_BSWAP32__
|
||||
-+#define __HAVE_BUILTIN_BSWAP64__
|
||||
-+#define __HAVE_BUILTIN_BSWAP16__
|
||||
-+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
|
||||
---
|
||||
-1.7.10.4
|
||||
-
|
@ -379,3 +379,37 @@ index d3a14b2..61b8976 100644
|
||||
+}
|
||||
+
|
||||
extern void __iomem *ath79_ddr_base;
|
||||
diff --git a/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch b/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
|
||||
index a36b8c3..fa4eba2 100644
|
||||
--- a/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
|
||||
+++ b/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
|
||||
@@ -9,8 +9,8 @@
|
||||
+ soc_is_qca955x())
|
||||
reg = AR71XX_GPIO_REG_FUNC;
|
||||
else if (soc_is_ar934x() ||
|
||||
- soc_is_qca953x() || soc_is_qca956x())
|
||||
-@@ -185,15 +186,27 @@ void __init ath79_gpio_output_select(uns
|
||||
+ soc_is_qca953x() ||
|
||||
+@@ -187,15 +188,31 @@ void __init ath79_gpio_output_select(uns
|
||||
{
|
||||
void __iomem *base = ath79_gpio_base;
|
||||
unsigned long flags;
|
||||
@@ -19,7 +19,7 @@
|
||||
+ unsigned long gpio_count;
|
||||
u32 t, s;
|
||||
|
||||
-- BUG_ON(!soc_is_ar934x() && !soc_is_qca953x());
|
||||
+ BUG_ON(!soc_is_ar934x() && !soc_is_qca953x() && !soc_is_qca956x());
|
||||
+ if (soc_is_ar934x()) {
|
||||
+ gpio_count = AR934X_GPIO_COUNT;
|
||||
+ reg_base = AR934X_GPIO_REG_OUT_FUNC0;
|
||||
@@ -29,6 +29,9 @@
|
||||
+ } else if (soc_is_qca955x()) {
|
||||
+ gpio_count = QCA955X_GPIO_COUNT;
|
||||
+ reg_base = QCA955X_GPIO_REG_OUT_FUNC0;
|
||||
++ } else if (soc_is_qca956x()) {
|
||||
++ gpio_count = QCA956X_GPIO_COUNT;
|
||||
++ reg_base = QCA956X_GPIO_REG_OUT_FUNC0;
|
||||
+ } else {
|
||||
+ BUG();
|
||||
+ }
|
@ -1,144 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Mon, 9 May 2016 00:16:38 +0200
|
||||
Subject: toolchain: gcc: fix build with GCC 6
|
||||
|
||||
At least for GCC 4.8, which is used by most targets.
|
||||
|
||||
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
|
||||
diff --git a/toolchain/gcc/patches/4.8-linaro/030-gcc-6-compile.patch b/toolchain/gcc/patches/4.8-linaro/030-gcc-6-compile.patch
|
||||
new file mode 100644
|
||||
index 0000000..c74f2aa
|
||||
--- /dev/null
|
||||
+++ b/toolchain/gcc/patches/4.8-linaro/030-gcc-6-compile.patch
|
||||
@@ -0,0 +1,130 @@
|
||||
+Upstream commit r233721
|
||||
+
|
||||
+diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
|
||||
+index bd1c1d7..a0ea0d4 100644
|
||||
+--- a/gcc/cp/Make-lang.in
|
||||
++++ b/gcc/cp/Make-lang.in
|
||||
+@@ -111,7 +111,7 @@ else
|
||||
+ # deleting the $(srcdir)/cp/cfns.h file.
|
||||
+ $(srcdir)/cp/cfns.h:
|
||||
+ endif
|
||||
+- gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L ANSI-C \
|
||||
++ gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L C++ \
|
||||
+ $(srcdir)/cp/cfns.gperf --output-file $(srcdir)/cp/cfns.h
|
||||
+
|
||||
+ #
|
||||
+diff --git a/gcc/cp/cfns.gperf b/gcc/cp/cfns.gperf
|
||||
+index 05ca753..d9b16b8 100644
|
||||
+--- a/gcc/cp/cfns.gperf
|
||||
++++ b/gcc/cp/cfns.gperf
|
||||
+@@ -1,3 +1,5 @@
|
||||
++%language=C++
|
||||
++%define class-name libc_name
|
||||
+ %{
|
||||
+ /* Copyright (C) 2000-2014 Free Software Foundation, Inc.
|
||||
+
|
||||
+@@ -16,14 +18,6 @@ for more details.
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with GCC; see the file COPYING3. If not see
|
||||
+ <http://www.gnu.org/licenses/>. */
|
||||
+-#ifdef __GNUC__
|
||||
+-__inline
|
||||
+-#endif
|
||||
+-static unsigned int hash (const char *, unsigned int);
|
||||
+-#ifdef __GNUC__
|
||||
+-__inline
|
||||
+-#endif
|
||||
+-const char * libc_name_p (const char *, unsigned int);
|
||||
+ %}
|
||||
+ %%
|
||||
+ # The standard C library functions, for feeding to gperf; the result is used
|
||||
+diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h
|
||||
+index c845ddf..65801d1 100644
|
||||
+--- a/gcc/cp/cfns.h
|
||||
++++ b/gcc/cp/cfns.h
|
||||
+@@ -1,5 +1,5 @@
|
||||
+-/* ANSI-C code produced by gperf version 3.0.3 */
|
||||
+-/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L ANSI-C cfns.gperf */
|
||||
++/* C++ code produced by gperf version 3.0.4 */
|
||||
++/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L C++ --output-file cfns.h cfns.gperf */
|
||||
+
|
||||
+ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
|
||||
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
|
||||
+@@ -28,7 +28,7 @@
|
||||
+ #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
|
||||
+ #endif
|
||||
+
|
||||
+-#line 1 "cfns.gperf"
|
||||
++#line 3 "cfns.gperf"
|
||||
+
|
||||
+ /* Copyright (C) 2000-2014 Free Software Foundation, Inc.
|
||||
+
|
||||
+@@ -47,25 +47,18 @@ for more details.
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with GCC; see the file COPYING3. If not see
|
||||
+ <http://www.gnu.org/licenses/>. */
|
||||
+-#ifdef __GNUC__
|
||||
+-__inline
|
||||
+-#endif
|
||||
+-static unsigned int hash (const char *, unsigned int);
|
||||
+-#ifdef __GNUC__
|
||||
+-__inline
|
||||
+-#endif
|
||||
+-const char * libc_name_p (const char *, unsigned int);
|
||||
+ /* maximum key range = 391, duplicates = 0 */
|
||||
+
|
||||
+-#ifdef __GNUC__
|
||||
+-__inline
|
||||
+-#else
|
||||
+-#ifdef __cplusplus
|
||||
+-inline
|
||||
+-#endif
|
||||
+-#endif
|
||||
+-static unsigned int
|
||||
+-hash (register const char *str, register unsigned int len)
|
||||
++class libc_name
|
||||
++{
|
||||
++private:
|
||||
++ static inline unsigned int hash (const char *str, unsigned int len);
|
||||
++public:
|
||||
++ static const char *libc_name_p (const char *str, unsigned int len);
|
||||
++};
|
||||
++
|
||||
++inline unsigned int
|
||||
++libc_name::hash (register const char *str, register unsigned int len)
|
||||
+ {
|
||||
+ static const unsigned short asso_values[] =
|
||||
+ {
|
||||
+@@ -122,14 +115,8 @@ hash (register const char *str, register unsigned int len)
|
||||
+ return hval + asso_values[(unsigned char)str[len - 1]];
|
||||
+ }
|
||||
+
|
||||
+-#ifdef __GNUC__
|
||||
+-__inline
|
||||
+-#ifdef __GNUC_STDC_INLINE__
|
||||
+-__attribute__ ((__gnu_inline__))
|
||||
+-#endif
|
||||
+-#endif
|
||||
+ const char *
|
||||
+-libc_name_p (register const char *str, register unsigned int len)
|
||||
++libc_name::libc_name_p (register const char *str, register unsigned int len)
|
||||
+ {
|
||||
+ enum
|
||||
+ {
|
||||
+diff --git a/gcc/cp/except.c b/gcc/cp/except.c
|
||||
+index 221971a..32340f5 100644
|
||||
+--- a/gcc/cp/except.c
|
||||
++++ b/gcc/cp/except.c
|
||||
+@@ -1030,7 +1030,8 @@ nothrow_libfn_p (const_tree fn)
|
||||
+ unless the system headers are playing rename tricks, and if
|
||||
+ they are, we don't want to be confused by them. */
|
||||
+ id = DECL_NAME (fn);
|
||||
+- return !!libc_name_p (IDENTIFIER_POINTER (id), IDENTIFIER_LENGTH (id));
|
||||
++ return !!libc_name::libc_name_p (IDENTIFIER_POINTER (id),
|
||||
++ IDENTIFIER_LENGTH (id));
|
||||
+ }
|
||||
+
|
||||
+ /* Returns nonzero if an exception of type FROM will be caught by a
|
||||
+--
|
||||
+1.7.1
|
||||
+
|
@ -8,10 +8,10 @@ Signed-off-by: P.Wassi <p.wassi at gmx.at>
|
||||
Backport of OpenWrt r48711
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
index 5a184cd..8c6ac9a 100644
|
||||
index c5e39d0..e36c581 100644
|
||||
--- a/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
@@ -296,7 +296,8 @@ get_status_led() {
|
||||
@@ -305,7 +305,8 @@ get_status_led() {
|
||||
unifi)
|
||||
status_led="ubnt:green:dome"
|
||||
;;
|
||||
@ -22,10 +22,10 @@ index 5a184cd..8c6ac9a 100644
|
||||
;;
|
||||
unifi-outdoor-plus)
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
index b2e15bb..e4a1473 100755
|
||||
index b2b182e..850eac9 100755
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
@@ -366,6 +366,7 @@ tl-wa901nd-v3 |\
|
||||
@@ -368,6 +368,7 @@ tl-wa901nd-v3 |\
|
||||
tl-wa901nd-v4 |\
|
||||
tl-wr703n |\
|
||||
tube2h |\
|
||||
@ -34,10 +34,10 @@ index b2e15bb..e4a1473 100755
|
||||
mynet-rext |\
|
||||
wp543)
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index ddd6611..8670583 100755
|
||||
index 131364c..ac77934 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -881,6 +881,9 @@ ar71xx_board_detect() {
|
||||
@@ -896,6 +896,9 @@ ar71xx_board_detect() {
|
||||
*UniFi)
|
||||
name="unifi"
|
||||
;;
|
||||
@ -48,7 +48,7 @@ index ddd6611..8670583 100755
|
||||
name="uap-pro"
|
||||
;;
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
index c5c1871..4c43166 100755
|
||||
index ccccc17..4793fa9 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
@@ -251,6 +251,7 @@ platform_check_image() {
|
||||
@ -60,10 +60,10 @@ index c5c1871..4c43166 100755
|
||||
carambola2 | \
|
||||
weio )
|
||||
diff --git a/target/linux/ar71xx/config-3.18 b/target/linux/ar71xx/config-3.18
|
||||
index e2ff826..9a81911 100644
|
||||
index e4bed08..514f7d5 100644
|
||||
--- a/target/linux/ar71xx/config-3.18
|
||||
+++ b/target/linux/ar71xx/config-3.18
|
||||
@@ -137,6 +137,7 @@ CONFIG_ATH79_MACH_TL_WR941ND=y
|
||||
@@ -140,6 +140,7 @@ CONFIG_ATH79_MACH_TL_WR941ND=y
|
||||
CONFIG_ATH79_MACH_TL_WR941ND_V6=y
|
||||
CONFIG_ATH79_MACH_TUBE2H=y
|
||||
CONFIG_ATH79_MACH_UBNT=y
|
||||
@ -71,7 +71,7 @@ index e2ff826..9a81911 100644
|
||||
CONFIG_ATH79_MACH_UBNT_XM=y
|
||||
CONFIG_ATH79_MACH_WEIO=y
|
||||
CONFIG_ATH79_MACH_WHR_HP_G300N=y
|
||||
@@ -320,7 +321,7 @@ CONFIG_SOC_AR933X=y
|
||||
@@ -323,7 +324,7 @@ CONFIG_SOC_AR933X=y
|
||||
CONFIG_SOC_AR934X=y
|
||||
CONFIG_SOC_QCA953X=y
|
||||
CONFIG_SOC_QCA955X=y
|
||||
@ -218,7 +218,7 @@ index d8e24d0..94eff18 100644
|
||||
NAME:=Ubiquiti UniFiAP Outdoor
|
||||
PACKAGES:=
|
||||
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
|
||||
index d42ceef..dd59f2d 100644
|
||||
index 7184966..209eba4 100644
|
||||
--- a/target/linux/ar71xx/image/Makefile
|
||||
+++ b/target/linux/ar71xx/image/Makefile
|
||||
@@ -740,6 +740,16 @@ define Device/oolite
|
@ -10,10 +10,10 @@ Signed-off-by: P.Wassi <p.wassi at gmx.at>
|
||||
Backport of LEDE c855e70491fbd5d432915c4cbeb3b80f3a117e30
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
index 8c6ac9a..3d711ca 100644
|
||||
index e36c581..23fd122 100644
|
||||
--- a/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
@@ -297,7 +297,7 @@ get_status_led() {
|
||||
@@ -306,7 +306,7 @@ get_status_led() {
|
||||
status_led="ubnt:green:dome"
|
||||
;;
|
||||
uap-pro | \
|
||||
@ -23,10 +23,10 @@ index 8c6ac9a..3d711ca 100644
|
||||
;;
|
||||
unifi-outdoor-plus)
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
|
||||
index e6fcec8..fa8a2c8 100644
|
||||
index f01c6d3..6c6b27a 100644
|
||||
--- a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
|
||||
+++ b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
|
||||
@@ -75,7 +75,7 @@ case "$FIRMWARE" in
|
||||
@@ -77,7 +77,7 @@ case "$FIRMWARE" in
|
||||
ath10kcal_extract "ART" 20480 2116
|
||||
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16)
|
||||
;;
|
||||
@ -36,10 +36,10 @@ index e6fcec8..fa8a2c8 100644
|
||||
;;
|
||||
esac
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
index e4a1473..0269e6d 100755
|
||||
index 850eac9..cb31c69 100755
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
@@ -366,7 +366,7 @@ tl-wa901nd-v3 |\
|
||||
@@ -368,7 +368,7 @@ tl-wa901nd-v3 |\
|
||||
tl-wa901nd-v4 |\
|
||||
tl-wr703n |\
|
||||
tube2h |\
|
||||
@ -49,10 +49,10 @@ index e4a1473..0269e6d 100755
|
||||
mynet-rext |\
|
||||
wp543)
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index 8670583..d3e6db9 100755
|
||||
index ac77934..f8dd719 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -881,8 +881,8 @@ ar71xx_board_detect() {
|
||||
@@ -896,8 +896,8 @@ ar71xx_board_detect() {
|
||||
*UniFi)
|
||||
name="unifi"
|
||||
;;
|
||||
@ -64,7 +64,7 @@ index 8670583..d3e6db9 100755
|
||||
*"UniFi AP Pro")
|
||||
name="uap-pro"
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
index 4c43166..a1b65b7 100755
|
||||
index 4793fa9..5aa59fd 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
@@ -251,7 +251,7 @@ platform_check_image() {
|
||||
@ -143,7 +143,7 @@ index 94eff18..eac0240 100644
|
||||
define Profile/UBNTUNIFIOUTDOOR
|
||||
NAME:=Ubiquiti UniFiAP Outdoor
|
||||
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
|
||||
index dd59f2d..3efa2e1 100644
|
||||
index 209eba4..c9d6ed1 100644
|
||||
--- a/target/linux/ar71xx/image/Makefile
|
||||
+++ b/target/linux/ar71xx/image/Makefile
|
||||
@@ -741,14 +741,19 @@ endef
|
@ -8,10 +8,10 @@ Signed-off-by: P.Wassi <p.wassi at gmx.at>
|
||||
Backport of LEDE 8307c2fe686ded345c80318359d5b6679e581fa2
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
index 3d711ca..775aac6 100644
|
||||
index 23fd122..f182d60 100644
|
||||
--- a/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
@@ -297,7 +297,8 @@ get_status_led() {
|
||||
@@ -306,7 +306,8 @@ get_status_led() {
|
||||
status_led="ubnt:green:dome"
|
||||
;;
|
||||
uap-pro | \
|
||||
@ -22,10 +22,10 @@ index 3d711ca..775aac6 100644
|
||||
;;
|
||||
unifi-outdoor-plus)
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
|
||||
index fa8a2c8..cde7aaf 100644
|
||||
index 6c6b27a..0e93feb 100644
|
||||
--- a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
|
||||
+++ b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
|
||||
@@ -75,7 +75,8 @@ case "$FIRMWARE" in
|
||||
@@ -77,7 +77,8 @@ case "$FIRMWARE" in
|
||||
ath10kcal_extract "ART" 20480 2116
|
||||
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16)
|
||||
;;
|
||||
@ -36,10 +36,10 @@ index fa8a2c8..cde7aaf 100644
|
||||
;;
|
||||
esac
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
index 0269e6d..0a23756 100755
|
||||
index cb31c69..e5c64bb 100755
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
@@ -398,6 +398,13 @@ wpj344)
|
||||
@@ -400,6 +400,13 @@ wpj344)
|
||||
ucidef_add_switch_vlan "switch0" "2" "0t 2"
|
||||
;;
|
||||
|
||||
@ -54,10 +54,10 @@ index 0269e6d..0a23756 100755
|
||||
ucidef_set_interfaces_lan_wan "eth0" "eth1"
|
||||
;;
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index d3e6db9..7fc951a 100755
|
||||
index f8dd719..348e0f6 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -884,6 +884,9 @@ ar71xx_board_detect() {
|
||||
@@ -899,6 +899,9 @@ ar71xx_board_detect() {
|
||||
*"UniFi-AC-LITE")
|
||||
name="unifiac-lite"
|
||||
;;
|
||||
@ -68,7 +68,7 @@ index d3e6db9..7fc951a 100755
|
||||
name="uap-pro"
|
||||
;;
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
index a1b65b7..0e9833d 100755
|
||||
index 5aa59fd..0f166eb 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
@@ -252,6 +252,7 @@ platform_check_image() {
|
||||
@ -193,7 +193,7 @@ index eac0240..69b8398 100644
|
||||
NAME:=Ubiquiti UniFiAP Outdoor
|
||||
PACKAGES:=
|
||||
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
|
||||
index 3efa2e1..58118f2 100644
|
||||
index c9d6ed1..0cf1df1 100644
|
||||
--- a/target/linux/ar71xx/image/Makefile
|
||||
+++ b/target/linux/ar71xx/image/Makefile
|
||||
@@ -753,7 +753,13 @@ define Device/ubnt-unifiac-lite
|
@ -1,30 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Tue, 17 May 2016 16:38:29 +0200
|
||||
Subject: ar71xx: Generate sysupgrade images for OpenMesh devices
|
||||
|
||||
Some OpenWrt based firmwares like Gluon expect that a sysupgrade image
|
||||
exists when a device firmware can be updated via sysupgrade. This image
|
||||
wasn't created until now because OpenMesh devices use the same image for
|
||||
factory and sysupgrade flash. Copying the image from *factory.bin to
|
||||
*sysupgrade.bin is therefore enough to make the sysupgrade functionality
|
||||
visible.
|
||||
|
||||
Reported-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624172/
|
||||
|
||||
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
|
||||
index 58118f2..7aee0c8 100644
|
||||
--- a/target/linux/ar71xx/image/Makefile
|
||||
+++ b/target/linux/ar71xx/image/Makefile
|
||||
@@ -1877,6 +1877,9 @@ define Image/Build/OpenMesh
|
||||
"$(BUILD_DIR)/fwupgrade.cfg-$(4)" "fwupgrade.cfg" \
|
||||
"$(KDIR_TMP)/vmlinux-$(2).uImage" "kernel" \
|
||||
"$(KDIR)/root.$(1)" "rootfs"
|
||||
+ if [ -e "$(call factoryname,$(1),$(2))" ]; then \
|
||||
+ cp "$(call factoryname,$(1),$(2))" "$(call sysupname,$(1),$(2))"; \
|
||||
+ fi
|
||||
endef
|
||||
|
||||
|
@ -10,10 +10,10 @@ Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
|
||||
Backport of r49101
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
index 9a768cd..ae17853 100644
|
||||
index d7dc9a1..337000c 100644
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
@@ -590,6 +590,21 @@ wnr2000-v4)
|
||||
@@ -592,6 +592,21 @@ wnr2000-v4)
|
||||
ucidef_set_led_usbdev "usb" "USB" "netgear:amber:status" "1-1"
|
||||
;;
|
||||
|
@ -1,202 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Mon, 14 Sep 2015 20:10:43 +0000
|
||||
Subject: ar71xx: add kernel support for the OpenMesh MR1750 board
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r46926
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624173/
|
||||
|
||||
diff --git a/target/linux/ar71xx/config-3.18 b/target/linux/ar71xx/config-3.18
|
||||
index 9a81911..c5a3c9a 100644
|
||||
--- a/target/linux/ar71xx/config-3.18
|
||||
+++ b/target/linux/ar71xx/config-3.18
|
||||
@@ -79,6 +79,7 @@ CONFIG_ATH79_MACH_JWAP003=y
|
||||
CONFIG_ATH79_MACH_MC_MAC1200R=y
|
||||
CONFIG_ATH79_MACH_MR16=y
|
||||
CONFIG_ATH79_MACH_MR12=y
|
||||
+CONFIG_ATH79_MACH_MR1750=y
|
||||
CONFIG_ATH79_MACH_MR600=y
|
||||
CONFIG_ATH79_MACH_MR900=y
|
||||
CONFIG_ATH79_MACH_MYNET_N600=y
|
||||
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr1750.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr1750.c
|
||||
new file mode 100644
|
||||
index 0000000..8ace02f
|
||||
--- /dev/null
|
||||
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr1750.c
|
||||
@@ -0,0 +1,129 @@
|
||||
+/*
|
||||
+ * MR1750 board support
|
||||
+ *
|
||||
+ * Copyright (c) 2012 Qualcomm Atheros
|
||||
+ * Copyright (c) 2012-2013 Marek Lindner <marek@open-mesh.com>
|
||||
+ *
|
||||
+ * Permission to use, copy, modify, and/or distribute this software for any
|
||||
+ * purpose with or without fee is hereby granted, provided that the above
|
||||
+ * copyright notice and this permission notice appear in all copies.
|
||||
+ *
|
||||
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#include <linux/platform_device.h>
|
||||
+#include <linux/ar8216_platform.h>
|
||||
+
|
||||
+#include <asm/mach-ath79/ar71xx_regs.h>
|
||||
+
|
||||
+#include "common.h"
|
||||
+#include "dev-ap9x-pci.h"
|
||||
+#include "dev-gpio-buttons.h"
|
||||
+#include "dev-eth.h"
|
||||
+#include "dev-leds-gpio.h"
|
||||
+#include "dev-m25p80.h"
|
||||
+#include "dev-wmac.h"
|
||||
+#include "machtypes.h"
|
||||
+#include "pci.h"
|
||||
+
|
||||
+#define MR1750_GPIO_LED_LAN 12
|
||||
+#define MR1750_GPIO_LED_WLAN_2G 13
|
||||
+#define MR1750_GPIO_LED_STATUS_GREEN 19
|
||||
+#define MR1750_GPIO_LED_STATUS_RED 21
|
||||
+#define MR1750_GPIO_LED_POWER 22
|
||||
+#define MR1750_GPIO_LED_WLAN_5G 23
|
||||
+
|
||||
+#define MR1750_GPIO_BTN_RESET 17
|
||||
+
|
||||
+#define MR1750_KEYS_POLL_INTERVAL 20 /* msecs */
|
||||
+#define MR1750_KEYS_DEBOUNCE_INTERVAL (3 * MR1750_KEYS_POLL_INTERVAL)
|
||||
+
|
||||
+#define MR1750_MAC0_OFFSET 0
|
||||
+#define MR1750_WMAC_CALDATA_OFFSET 0x1000
|
||||
+
|
||||
+static struct gpio_led mr1750_leds_gpio[] __initdata = {
|
||||
+ {
|
||||
+ .name = "mr1750:blue:power",
|
||||
+ .gpio = MR1750_GPIO_LED_POWER,
|
||||
+ .active_low = 1,
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "mr1750:blue:wan",
|
||||
+ .gpio = MR1750_GPIO_LED_LAN,
|
||||
+ .active_low = 1,
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "mr1750:blue:wlan24",
|
||||
+ .gpio = MR1750_GPIO_LED_WLAN_2G,
|
||||
+ .active_low = 1,
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "mr1750:blue:wlan58",
|
||||
+ .gpio = MR1750_GPIO_LED_WLAN_5G,
|
||||
+ .active_low = 1,
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "mr1750:green:status",
|
||||
+ .gpio = MR1750_GPIO_LED_STATUS_GREEN,
|
||||
+ .active_low = 1,
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "mr1750:red:status",
|
||||
+ .gpio = MR1750_GPIO_LED_STATUS_RED,
|
||||
+ .active_low = 1,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+static struct gpio_keys_button mr1750_gpio_keys[] __initdata = {
|
||||
+ {
|
||||
+ .desc = "Reset button",
|
||||
+ .type = EV_KEY,
|
||||
+ .code = KEY_RESTART,
|
||||
+ .debounce_interval = MR1750_KEYS_DEBOUNCE_INTERVAL,
|
||||
+ .gpio = MR1750_GPIO_BTN_RESET,
|
||||
+ .active_low = 1,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+static void __init mr1750_setup(void)
|
||||
+{
|
||||
+ u8 *art = (u8 *)KSEG1ADDR(0x1fff0000);
|
||||
+ u8 mac[6];
|
||||
+
|
||||
+ ath79_eth0_pll_data.pll_1000 = 0xbe000101;
|
||||
+ ath79_eth0_pll_data.pll_100 = 0x80000101;
|
||||
+ ath79_eth0_pll_data.pll_10 = 0x80001313;
|
||||
+
|
||||
+ ath79_register_m25p80(NULL);
|
||||
+
|
||||
+ ath79_register_leds_gpio(-1, ARRAY_SIZE(mr1750_leds_gpio),
|
||||
+ mr1750_leds_gpio);
|
||||
+ ath79_register_gpio_keys_polled(-1, MR1750_KEYS_POLL_INTERVAL,
|
||||
+ ARRAY_SIZE(mr1750_gpio_keys),
|
||||
+ mr1750_gpio_keys);
|
||||
+
|
||||
+ ath79_init_mac(mac, art + MR1750_MAC0_OFFSET, 1);
|
||||
+ ath79_register_wmac(art + MR1750_WMAC_CALDATA_OFFSET, mac);
|
||||
+ ath79_register_pci();
|
||||
+
|
||||
+ ath79_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_RGMII_EN);
|
||||
+ ath79_register_mdio(0, 0x0);
|
||||
+
|
||||
+ ath79_init_mac(ath79_eth0_data.mac_addr, art + MR1750_MAC0_OFFSET, 0);
|
||||
+
|
||||
+ /* GMAC0 is connected to the RMGII interface */
|
||||
+ ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII;
|
||||
+ ath79_eth0_data.phy_mask = BIT(5);
|
||||
+ ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev;
|
||||
+
|
||||
+ ath79_register_eth(0);
|
||||
+}
|
||||
+
|
||||
+MIPS_MACHINE(ATH79_MACH_MR1750, "MR1750", "OpenMesh MR1750", mr1750_setup);
|
||||
diff --git a/target/linux/ar71xx/patches-3.18/815-MIPS-ath79-add-mr1750-support.patch b/target/linux/ar71xx/patches-3.18/815-MIPS-ath79-add-mr1750-support.patch
|
||||
new file mode 100644
|
||||
index 0000000..d802a12
|
||||
--- /dev/null
|
||||
+++ b/target/linux/ar71xx/patches-3.18/815-MIPS-ath79-add-mr1750-support.patch
|
||||
@@ -0,0 +1,39 @@
|
||||
+--- a/arch/mips/ath79/Kconfig
|
||||
++++ b/arch/mips/ath79/Kconfig
|
||||
+@@ -763,6 +763,16 @@ config ATH79_MACH_CAP4200AG
|
||||
+ select ATH79_DEV_M25P80
|
||||
+ select ATH79_DEV_WMAC
|
||||
+
|
||||
++config ATH79_MACH_MR1750
|
||||
++ bool "OpenMesh MR1750 board support"
|
||||
++ select SOC_QCA955X
|
||||
++ select ATH79_DEV_AP9X_PCI if PCI
|
||||
++ select ATH79_DEV_ETH
|
||||
++ select ATH79_DEV_GPIO_BUTTONS
|
||||
++ select ATH79_DEV_LEDS_GPIO
|
||||
++ select ATH79_DEV_M25P80
|
||||
++ select ATH79_DEV_WMAC
|
||||
++
|
||||
+ config ATH79_MACH_MR900
|
||||
+ bool "OpenMesh MR900 board support"
|
||||
+ select SOC_QCA955X
|
||||
+--- a/arch/mips/ath79/Makefile
|
||||
++++ b/arch/mips/ath79/Makefile
|
||||
+@@ -80,6 +80,7 @@ obj-$(CONFIG_ATH79_MACH_HORNET_UB) += ma
|
||||
+ obj-$(CONFIG_ATH79_MACH_MC_MAC1200R) += mach-mc-mac1200r.o
|
||||
+ obj-$(CONFIG_ATH79_MACH_MR12) += mach-mr12.o
|
||||
+ obj-$(CONFIG_ATH79_MACH_MR16) += mach-mr16.o
|
||||
++obj-$(CONFIG_ATH79_MACH_MR1750) += mach-mr1750.o
|
||||
+ obj-$(CONFIG_ATH79_MACH_MR600) += mach-mr600.o
|
||||
+ obj-$(CONFIG_ATH79_MACH_MR900) += mach-mr900.o
|
||||
+ obj-$(CONFIG_ATH79_MACH_MYNET_N600) += mach-mynet-n600.o
|
||||
+--- a/arch/mips/ath79/machtypes.h
|
||||
++++ b/arch/mips/ath79/machtypes.h
|
||||
+@@ -69,6 +69,7 @@ enum ath79_mach_type {
|
||||
+ ATH79_MACH_HORNET_UB, /* ALFA Networks Hornet-UB */
|
||||
+ ATH79_MACH_MR12, /* Cisco Meraki MR12 */
|
||||
+ ATH79_MACH_MR16, /* Cisco Meraki MR16 */
|
||||
++ ATH79_MACH_MR1750, /* OpenMesh MR1750 */
|
||||
+ ATH79_MACH_MR600V2, /* OpenMesh MR600v2 */
|
||||
+ ATH79_MACH_MR600, /* OpenMesh MR600 */
|
||||
+ ATH79_MACH_MR900, /* OpenMesh MR900 */
|
@ -9,7 +9,7 @@ https://raw.githubusercontent.com/domino-team/OpenWrt-patches/master/AR150%2C%20
|
||||
(and fixed indentation in target/linux/ar71xx/base-files/lib/ar71xx.sh)
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
index ae17853..dc8b8d6 100644
|
||||
index 337000c..032acc9 100644
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
@@ -181,6 +181,10 @@ dlan-pro-1200-ac)
|
||||
@ -24,10 +24,10 @@ index ae17853..dc8b8d6 100644
|
||||
ucidef_set_led_netdev "lan" "LAN" "gl-connect:green:lan" "eth1"
|
||||
ucidef_set_led_wlan "wlan" "WLAN" "gl-connect:red:wlan" "phy0tpt"
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
index 4066506..89a2184 100755
|
||||
index e5c64bb..b8ae576 100755
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
@@ -381,6 +381,7 @@ dir-505-a1)
|
||||
@@ -382,6 +382,7 @@ dir-505-a1)
|
||||
alfa-ap96 |\
|
||||
alfa-nx |\
|
||||
ap83 |\
|
||||
@ -36,7 +36,7 @@ index 4066506..89a2184 100755
|
||||
jwap003 |\
|
||||
pb42 |\
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index fbf76c8..db908f9 100755
|
||||
index 348e0f6..5119b36 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -500,6 +500,9 @@ ar71xx_board_detect() {
|
||||
@ -50,7 +50,7 @@ index fbf76c8..db908f9 100755
|
||||
name="epg5000"
|
||||
;;
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
index 4a4c476..aeb4577 100755
|
||||
index 0f166eb..f33419f 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
@@ -215,6 +215,7 @@ platform_check_image() {
|
@ -1,67 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Mon, 14 Sep 2015 20:11:01 +0000
|
||||
Subject: ar71xx: add user-space support for the OpenMesh MR1750 board
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r46927
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624174/
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
index 775aac6..44d2ddf 100644
|
||||
--- a/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
@@ -143,6 +143,9 @@ get_status_led() {
|
||||
mr600v2)
|
||||
status_led="mr600:blue:power"
|
||||
;;
|
||||
+ mr1750)
|
||||
+ status_led="mr1750:blue:power"
|
||||
+ ;;
|
||||
mr900 | \
|
||||
mr900v2)
|
||||
status_led="mr900:blue:power"
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
index a4b355a..c451124 100644
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
@@ -239,6 +239,12 @@ mr600)
|
||||
ucidef_set_led_wlan "wlan58" "WLAN58" "mr600:green:wlan58" "phy0tpt"
|
||||
;;
|
||||
|
||||
+mr1750)
|
||||
+ ucidef_set_led_netdev "lan" "LAN" "mr1750:blue:wan" "eth0"
|
||||
+ ucidef_set_led_wlan "wlan58" "WLAN58" "mr1750:blue:wlan58" "phy0tpt"
|
||||
+ ucidef_set_led_wlan "wlan24" "WLAN24" "mr1750:blue:wlan24" "phy1tpt"
|
||||
+ ;;
|
||||
+
|
||||
mr900 | \
|
||||
mr900v2)
|
||||
ucidef_set_led_netdev "lan" "LAN" "mr900:blue:wan" "eth0"
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
index 0a23756..4066506 100755
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
@@ -334,6 +334,7 @@ eap300v2 |\
|
||||
eap7660d |\
|
||||
el-mini |\
|
||||
loco-m-xw |\
|
||||
+mr1750 |\
|
||||
mr600 |\
|
||||
mr600v2 |\
|
||||
mr900 |\
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index 7fc951a..587d029 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -562,6 +562,9 @@ ar71xx_board_detect() {
|
||||
*MR600v2)
|
||||
name="mr600v2"
|
||||
;;
|
||||
+ *MR1750)
|
||||
+ name="mr1750"
|
||||
+ ;;
|
||||
*MR600)
|
||||
name="mr600"
|
||||
;;
|
@ -1,32 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Mon, 14 Sep 2015 20:11:18 +0000
|
||||
Subject: scripts/om-fwupgradecfg-gen.sh: add support for the MR1750
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r46928
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624175/
|
||||
|
||||
diff --git a/scripts/om-fwupgradecfg-gen.sh b/scripts/om-fwupgradecfg-gen.sh
|
||||
index e132954..c790214 100644
|
||||
--- a/scripts/om-fwupgradecfg-gen.sh
|
||||
+++ b/scripts/om-fwupgradecfg-gen.sh
|
||||
@@ -7,7 +7,7 @@
|
||||
#
|
||||
|
||||
usage() {
|
||||
- echo "Usage: $0 <OM2P|OM5P|MR600|MR900> <out file path> <kernel path> <rootfs path>"
|
||||
+ echo "Usage: $0 <OM2P|OM5P|MR600|MR900|MR1750> <out file path> <kernel path> <rootfs path>"
|
||||
rm -f $CFG_OUT
|
||||
exit 1
|
||||
}
|
||||
@@ -26,7 +26,7 @@ case $CE_TYPE in
|
||||
FLASH_BS=262144
|
||||
MD5_SKIP_BLOCKS=1
|
||||
;;
|
||||
- OM5P|MR600|MR900)
|
||||
+ OM5P|MR600|MR900|MR1750)
|
||||
MAX_PART_SIZE=7808
|
||||
KERNEL_FLASH_ADDR=0xb0000
|
||||
FLASH_BS=65536
|
@ -1,55 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Mon, 14 Sep 2015 20:11:24 +0000
|
||||
Subject: ar71xx: enable sysupgrade for the OpenMesh MR1750
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r46929
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624176/
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh b/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
|
||||
index 547116e..9ca0f5b 100644
|
||||
--- a/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
|
||||
@@ -72,6 +72,11 @@ platform_check_image_openmesh()
|
||||
echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform"
|
||||
return 1
|
||||
;;
|
||||
+ MR1750)
|
||||
+ [ "$board" = "mr1750" ] && break
|
||||
+ echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform"
|
||||
+ return 1
|
||||
+ ;;
|
||||
MR600)
|
||||
[ "$board" = "mr600" ] && break
|
||||
[ "$board" = "mr600v2" ] && break
|
||||
@@ -157,7 +162,7 @@ platform_do_upgrade_openmesh()
|
||||
kernel_start_addr1=0x9f1c0000
|
||||
kernel_start_addr2=0x9f8c0000
|
||||
;;
|
||||
- OM5P|MR600|MR900)
|
||||
+ OM5P|MR600|MR900|MR1750)
|
||||
block_size=$((64 * 1024))
|
||||
total_size=7995392
|
||||
kernel_start_addr1=0x9f0b0000
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
index 0e9833d..ac060ea 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
@@ -296,6 +296,7 @@ platform_check_image() {
|
||||
|
||||
return 0;
|
||||
;;
|
||||
+ mr1750 | \
|
||||
mr600 | \
|
||||
mr600v2 | \
|
||||
mr900 | \
|
||||
@@ -528,6 +529,7 @@ platform_do_upgrade() {
|
||||
tew-673gru)
|
||||
platform_do_upgrade_dir825b "$ARGV"
|
||||
;;
|
||||
+ mr1750 | \
|
||||
mr600 | \
|
||||
mr600v2 | \
|
||||
mr900 | \
|
@ -1,23 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Mon, 14 Sep 2015 20:11:35 +0000
|
||||
Subject: package/om-watchdog: add OpenMesh MR1750 support
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r46930
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624177/
|
||||
|
||||
diff --git a/package/kernel/om-watchdog/files/om-watchdog.init b/package/kernel/om-watchdog/files/om-watchdog.init
|
||||
index 135fef7..c792968 100644
|
||||
--- a/package/kernel/om-watchdog/files/om-watchdog.init
|
||||
+++ b/package/kernel/om-watchdog/files/om-watchdog.init
|
||||
@@ -25,7 +25,7 @@ boot() {
|
||||
"mr600v2")
|
||||
service_start /sbin/om-watchdog 15
|
||||
;;
|
||||
- "mr900"|"mr900v2")
|
||||
+ "mr900"|"mr900v2"|"mr1750")
|
||||
service_start /sbin/om-watchdog 16
|
||||
;;
|
||||
esac
|
@ -1,22 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Mon, 14 Sep 2015 20:11:43 +0000
|
||||
Subject: package/uboot-envtools: add OpenMesh MR1750 support
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r46931
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624178/
|
||||
|
||||
diff --git a/package/boot/uboot-envtools/files/ar71xx b/package/boot/uboot-envtools/files/ar71xx
|
||||
index ec8541c..ef00f17 100644
|
||||
--- a/package/boot/uboot-envtools/files/ar71xx
|
||||
+++ b/package/boot/uboot-envtools/files/ar71xx
|
||||
@@ -21,6 +21,7 @@ carambola2 | \
|
||||
eap300v2 | \
|
||||
hornet-ub | \
|
||||
hornet-ub-x2 | \
|
||||
+mr1750 | \
|
||||
mr600 | \
|
||||
mr600v2 | \
|
||||
mr900 | \
|
@ -1,57 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Mon, 14 Sep 2015 20:11:51 +0000
|
||||
Subject: ar71xx: create profile and build image for the OpenMesh MR1750 board
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r46932
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624179/
|
||||
|
||||
diff --git a/target/linux/ar71xx/generic/profiles/openmesh.mk b/target/linux/ar71xx/generic/profiles/openmesh.mk
|
||||
index 41b462e..06cf135 100644
|
||||
--- a/target/linux/ar71xx/generic/profiles/openmesh.mk
|
||||
+++ b/target/linux/ar71xx/generic/profiles/openmesh.mk
|
||||
@@ -49,9 +49,20 @@ endef
|
||||
|
||||
$(eval $(call Profile,MR900))
|
||||
|
||||
+define Profile/MR1750
|
||||
+ NAME:=OpenMesh MR1750
|
||||
+ PACKAGES:=kmod-ath9k kmod-ath10k ath10k-firmware-qca988x
|
||||
+endef
|
||||
+
|
||||
+define Profile/MR1750/Description
|
||||
+ Package set optimized for the OpenMesh MR1750.
|
||||
+endef
|
||||
+
|
||||
+$(eval $(call Profile,MR1750))
|
||||
+
|
||||
define Profile/OPENMESH
|
||||
NAME:=OpenMesh products
|
||||
- PACKAGES:=kmod-ath9k om-watchdog
|
||||
+ PACKAGES:=kmod-ath9k kmod-ath10k om-watchdog
|
||||
endef
|
||||
|
||||
define Profile/OPENMESH/Description
|
||||
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
|
||||
index 7aee0c8..0ebb7dc 100644
|
||||
--- a/target/linux/ar71xx/image/Makefile
|
||||
+++ b/target/linux/ar71xx/image/Makefile
|
||||
@@ -2045,6 +2045,7 @@ $(eval $(call SingleProfile,OpenMesh,squashfs-only,OM2P,om2p,,,,OM2P))
|
||||
$(eval $(call SingleProfile,OpenMesh,squashfs-only,OM5P,om5p,,,,OM5P))
|
||||
$(eval $(call SingleProfile,OpenMesh,squashfs-only,MR600,mr600,,,,MR600))
|
||||
$(eval $(call SingleProfile,OpenMesh,squashfs-only,MR900,mr900,,,,MR900))
|
||||
+$(eval $(call SingleProfile,OpenMesh,squashfs-only,MR1750,mr1750,,,,MR1750))
|
||||
|
||||
$(eval $(call SingleProfile,PB4X,128k,ALL0305,all0305,ALL0305,ttyS0,115200))
|
||||
$(eval $(call SingleProfile,PB4X,128k,EAP7660D,eap7660d,EAP7660D,ttyS0,115200))
|
||||
@@ -2138,7 +2139,7 @@ $(eval $(call MultiProfile,AP121,AP121_2M AP121_4M))
|
||||
$(eval $(call MultiProfile,DIR615IX,DIR615I1 DIR615I3))
|
||||
$(eval $(call MultiProfile,AP136,AP136_010 AP136_020))
|
||||
$(eval $(call MultiProfile,EWDORIN, EWDORINAP EWDORINRT EWDORIN16M))
|
||||
-$(eval $(call MultiProfile,OPENMESH,OM2P OM5P MR600 MR900))
|
||||
+$(eval $(call MultiProfile,OPENMESH,OM2P OM5P MR600 MR900 MR1750))
|
||||
$(eval $(call MultiProfile,TEW652BRP,TEW652BRP_FW TEW652BRP_RECOVERY))
|
||||
$(eval $(call MultiProfile,TLMR3220,TLMR3220V1))
|
||||
$(eval $(call MultiProfile,TLMR3420,TLMR3420V1))
|
@ -1,47 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Wed, 16 Mar 2016 09:27:01 +0000
|
||||
Subject: ar71xx: Extend the list of bits in QCA955X_GMAC_REG_ETH_CFG
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49027
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624180/
|
||||
|
||||
diff --git a/target/linux/ar71xx/patches-3.18/601-MIPS-ath79-add-more-register-defines.patch b/target/linux/ar71xx/patches-3.18/601-MIPS-ath79-add-more-register-defines.patch
|
||||
index 8bf7658..797977f 100644
|
||||
--- a/target/linux/ar71xx/patches-3.18/601-MIPS-ath79-add-more-register-defines.patch
|
||||
+++ b/target/linux/ar71xx/patches-3.18/601-MIPS-ath79-add-more-register-defines.patch
|
||||
@@ -207,7 +207,7 @@
|
||||
#define AR934X_GPIO_REG_FUNC 0x6c
|
||||
|
||||
#define AR71XX_GPIO_COUNT 16
|
||||
-@@ -560,4 +663,153 @@
|
||||
+@@ -560,4 +663,170 @@
|
||||
#define AR934X_SRIF_DPLL2_OUTDIV_SHIFT 13
|
||||
#define AR934X_SRIF_DPLL2_OUTDIV_MASK 0x7
|
||||
|
||||
@@ -358,6 +358,23 @@
|
||||
+#define QCA955X_GMAC_REG_ETH_CFG 0x00
|
||||
+
|
||||
+#define QCA955X_ETH_CFG_RGMII_EN BIT(0)
|
||||
++#define QCA955X_ETH_CFG_MII_GE0 BIT(1)
|
||||
++#define QCA955X_ETH_CFG_GMII_GE0 BIT(2)
|
||||
++#define QCA955X_ETH_CFG_MII_GE0_MASTER BIT(3)
|
||||
++#define QCA955X_ETH_CFG_MII_GE0_SLAVE BIT(4)
|
||||
++#define QCA955X_ETH_CFG_GE0_ERR_EN BIT(5)
|
||||
+#define QCA955X_ETH_CFG_GE0_SGMII BIT(6)
|
||||
++#define QCA955X_ETH_CFG_RMII_GE0 BIT(10)
|
||||
++#define QCA955X_ETH_CFG_MII_CNTL_SPEED BIT(11)
|
||||
++#define QCA955X_ETH_CFG_RMII_GE0_MASTER BIT(12)
|
||||
++#define QCA955X_ETH_CFG_RXD_DELAY_MASK 0x3
|
||||
++#define QCA955X_ETH_CFG_RXD_DELAY_SHIFT 14
|
||||
++#define QCA955X_ETH_CFG_RDV_DELAY BIT(16)
|
||||
++#define QCA955X_ETH_CFG_RDV_DELAY_MASK 0x3
|
||||
++#define QCA955X_ETH_CFG_RDV_DELAY_SHIFT 16
|
||||
++#define QCA955X_ETH_CFG_TXD_DELAY_MASK 0x3
|
||||
++#define QCA955X_ETH_CFG_TXD_DELAY_SHIFT 18
|
||||
++#define QCA955X_ETH_CFG_TXE_DELAY_MASK 0x3
|
||||
++#define QCA955X_ETH_CFG_TXE_DELAY_SHIFT 20
|
||||
+
|
||||
#endif /* __ASM_MACH_AR71XX_REGS_H */
|
@ -1,49 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Tue, 7 Jul 2015 13:47:39 +0000
|
||||
Subject: ar71xx: Use *_eth_cfg helper for Open Mesh MR900 boards
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r46241
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624181/
|
||||
|
||||
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr900.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr900.c
|
||||
index fe3e1fa..9c3164d 100644
|
||||
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr900.c
|
||||
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr900.c
|
||||
@@ -94,24 +94,6 @@ static struct gpio_keys_button mr900_gpio_keys[] __initdata = {
|
||||
},
|
||||
};
|
||||
|
||||
-
|
||||
-static void __init mr900_gmac_setup(void)
|
||||
-{
|
||||
- void __iomem *base;
|
||||
- u32 t;
|
||||
-
|
||||
- base = ioremap(QCA955X_GMAC_BASE, QCA955X_GMAC_SIZE);
|
||||
-
|
||||
- t = __raw_readl(base + QCA955X_GMAC_REG_ETH_CFG);
|
||||
-
|
||||
- t &= ~(QCA955X_ETH_CFG_RGMII_EN | QCA955X_ETH_CFG_GE0_SGMII);
|
||||
- t |= QCA955X_ETH_CFG_RGMII_EN;
|
||||
-
|
||||
- __raw_writel(t, base + QCA955X_GMAC_REG_ETH_CFG);
|
||||
-
|
||||
- iounmap(base);
|
||||
-}
|
||||
-
|
||||
static void __init mr900_setup(void)
|
||||
{
|
||||
u8 *art = (u8 *)KSEG1ADDR(0x1fff0000);
|
||||
@@ -141,8 +123,7 @@ static void __init mr900_setup(void)
|
||||
}
|
||||
pdata->use_eeprom = true;
|
||||
|
||||
- mr900_gmac_setup();
|
||||
-
|
||||
+ ath79_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_RGMII_EN);
|
||||
ath79_register_mdio(0, 0x0);
|
||||
|
||||
ath79_init_mac(ath79_eth0_data.mac_addr, art + MR900_MAC0_OFFSET, 0);
|
@ -1,79 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Fri, 24 Jul 2015 09:10:00 +0000
|
||||
Subject: ar71xx: Allow to use ath79_gpio_output_select on QCA955x
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r46459
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624182/
|
||||
|
||||
diff --git a/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch b/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
|
||||
new file mode 100644
|
||||
index 0000000..e71b6e2
|
||||
--- /dev/null
|
||||
+++ b/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
|
||||
@@ -0,0 +1,63 @@
|
||||
+--- a/arch/mips/ath79/gpio.c
|
||||
++++ b/arch/mips/ath79/gpio.c
|
||||
+@@ -187,15 +187,30 @@ void __init ath79_gpio_output_select(uns
|
||||
+ {
|
||||
+ void __iomem *base = ath79_gpio_base;
|
||||
+ unsigned long flags;
|
||||
+- unsigned int reg;
|
||||
++ unsigned int reg, reg_base;
|
||||
++ unsigned long gpio_count;
|
||||
+ u32 t, s;
|
||||
+
|
||||
+- BUG_ON(!soc_is_ar934x() && !soc_is_qca953x() && !soc_is_qca956x());
|
||||
++ if (soc_is_ar934x()) {
|
||||
++ gpio_count = AR934X_GPIO_COUNT;
|
||||
++ reg_base = AR934X_GPIO_REG_OUT_FUNC0;
|
||||
++ } else if (soc_is_qca953x()) {
|
||||
++ gpio_count = QCA953X_GPIO_COUNT;
|
||||
++ reg_base = QCA953X_GPIO_REG_OUT_FUNC0;
|
||||
++ } else if (soc_is_qca955x()) {
|
||||
++ gpio_count = QCA955X_GPIO_COUNT;
|
||||
++ reg_base = QCA955X_GPIO_REG_OUT_FUNC0;
|
||||
++ } else if (soc_is_qca956x()) {
|
||||
++ gpio_count = QCA956X_GPIO_COUNT;
|
||||
++ reg_base = QCA956X_GPIO_REG_OUT_FUNC0;
|
||||
++ } else {
|
||||
++ BUG();
|
||||
++ }
|
||||
+
|
||||
+- if (gpio >= AR934X_GPIO_COUNT)
|
||||
++ if (gpio >= gpio_count)
|
||||
+ return;
|
||||
+
|
||||
+- reg = AR934X_GPIO_REG_OUT_FUNC0 + 4 * (gpio / 4);
|
||||
++ reg = reg_base + 4 * (gpio / 4);
|
||||
+ s = 8 * (gpio % 4);
|
||||
+
|
||||
+ spin_lock_irqsave(&ath79_gpio_lock, flags);
|
||||
+--- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
|
||||
++++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
|
||||
+@@ -875,6 +875,14 @@
|
||||
+ #define QCA953X_GPIO_OUT_MUX_LED_LINK4 44
|
||||
+ #define QCA953X_GPIO_OUT_MUX_LED_LINK5 45
|
||||
+
|
||||
++#define QCA955X_GPIO_REG_OUT_FUNC0 0x2c
|
||||
++#define QCA955X_GPIO_REG_OUT_FUNC1 0x30
|
||||
++#define QCA955X_GPIO_REG_OUT_FUNC2 0x34
|
||||
++#define QCA955X_GPIO_REG_OUT_FUNC3 0x38
|
||||
++#define QCA955X_GPIO_REG_OUT_FUNC4 0x3c
|
||||
++#define QCA955X_GPIO_REG_OUT_FUNC5 0x40
|
||||
++#define QCA955X_GPIO_REG_FUNC 0x6c
|
||||
++
|
||||
+ #define QCA956X_GPIO_REG_OUT_FUNC0 0x2c
|
||||
+ #define QCA956X_GPIO_REG_OUT_FUNC1 0x30
|
||||
+ #define QCA956X_GPIO_REG_OUT_FUNC2 0x34
|
||||
+@@ -1014,6 +1022,8 @@
|
||||
+ #define AR934X_GPIO_OUT_EXT_LNA0 46
|
||||
+ #define AR934X_GPIO_OUT_EXT_LNA1 47
|
||||
+
|
||||
++#define QCA955X_GPIO_OUT_GPIO 0
|
||||
++
|
||||
+ /*
|
||||
+ * MII_CTRL block
|
||||
+ */
|
@ -1,32 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Wed, 23 Mar 2016 12:52:27 +0000
|
||||
Subject: ar71xx: Add support for ath79_gpio_function_* on QCA955X
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49074
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624183/
|
||||
|
||||
diff --git a/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch b/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
|
||||
index e71b6e2..0e87357 100644
|
||||
--- a/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
|
||||
+++ b/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
|
||||
@@ -1,6 +1,16 @@
|
||||
--- a/arch/mips/ath79/gpio.c
|
||||
+++ b/arch/mips/ath79/gpio.c
|
||||
-@@ -187,15 +187,30 @@ void __init ath79_gpio_output_select(uns
|
||||
+@@ -146,7 +146,8 @@ static void __iomem *ath79_gpio_get_func
|
||||
+ if (soc_is_ar71xx() ||
|
||||
+ soc_is_ar724x() ||
|
||||
+ soc_is_ar913x() ||
|
||||
+- soc_is_ar933x())
|
||||
++ soc_is_ar933x() ||
|
||||
++ soc_is_qca955x())
|
||||
+ reg = AR71XX_GPIO_REG_FUNC;
|
||||
+ else if (soc_is_ar934x() ||
|
||||
+ soc_is_qca953x() ||
|
||||
+@@ -187,15 +188,30 @@ void __init ath79_gpio_output_select(uns
|
||||
{
|
||||
void __iomem *base = ath79_gpio_base;
|
||||
unsigned long flags;
|
@ -1,159 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Wed, 23 Mar 2016 12:52:31 +0000
|
||||
Subject: ar71xx: Add QCA955X GPIO mux and function definitions
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49075
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624184/
|
||||
|
||||
diff --git a/target/linux/ar71xx/patches-3.18/601-MIPS-ath79-add-more-register-defines.patch b/target/linux/ar71xx/patches-3.18/601-MIPS-ath79-add-more-register-defines.patch
|
||||
index 797977f..0126f6a 100644
|
||||
--- a/target/linux/ar71xx/patches-3.18/601-MIPS-ath79-add-more-register-defines.patch
|
||||
+++ b/target/linux/ar71xx/patches-3.18/601-MIPS-ath79-add-more-register-defines.patch
|
||||
@@ -194,7 +194,7 @@
|
||||
#define AR933X_BOOTSTRAP_REF_CLK_40 BIT(0)
|
||||
|
||||
#define AR934X_BOOTSTRAP_SW_OPTION8 BIT(23)
|
||||
-@@ -529,6 +626,12 @@
|
||||
+@@ -529,8 +626,22 @@
|
||||
#define AR71XX_GPIO_REG_INT_ENABLE 0x24
|
||||
#define AR71XX_GPIO_REG_FUNC 0x28
|
||||
|
||||
@@ -206,8 +206,18 @@
|
||||
+#define AR934X_GPIO_REG_OUT_FUNC5 0x40
|
||||
#define AR934X_GPIO_REG_FUNC 0x6c
|
||||
|
||||
++#define QCA955X_GPIO_REG_OUT_FUNC0 0x2c
|
||||
++#define QCA955X_GPIO_REG_OUT_FUNC1 0x30
|
||||
++#define QCA955X_GPIO_REG_OUT_FUNC2 0x34
|
||||
++#define QCA955X_GPIO_REG_OUT_FUNC3 0x38
|
||||
++#define QCA955X_GPIO_REG_OUT_FUNC4 0x3c
|
||||
++#define QCA955X_GPIO_REG_OUT_FUNC5 0x40
|
||||
++#define QCA955X_GPIO_REG_FUNC 0x6c
|
||||
++
|
||||
#define AR71XX_GPIO_COUNT 16
|
||||
-@@ -560,4 +663,170 @@
|
||||
+ #define AR7240_GPIO_COUNT 18
|
||||
+ #define AR7241_GPIO_COUNT 20
|
||||
+@@ -560,4 +671,235 @@
|
||||
#define AR934X_SRIF_DPLL2_OUTDIV_SHIFT 13
|
||||
#define AR934X_SRIF_DPLL2_OUTDIV_MASK 0x7
|
||||
|
||||
@@ -288,6 +298,71 @@
|
||||
+#define AR934X_GPIO_OUT_EXT_LNA0 46
|
||||
+#define AR934X_GPIO_OUT_EXT_LNA1 47
|
||||
+
|
||||
++#define QCA955X_GPIO_FUNC_CLK_OBS7_EN BIT(9)
|
||||
++#define QCA955X_GPIO_FUNC_CLK_OBS6_EN BIT(8)
|
||||
++#define QCA955X_GPIO_FUNC_CLK_OBS5_EN BIT(7)
|
||||
++#define QCA955X_GPIO_FUNC_CLK_OBS4_EN BIT(6)
|
||||
++#define QCA955X_GPIO_FUNC_CLK_OBS3_EN BIT(5)
|
||||
++#define QCA955X_GPIO_FUNC_CLK_OBS2_EN BIT(4)
|
||||
++#define QCA955X_GPIO_FUNC_CLK_OBS1_EN BIT(3)
|
||||
++#define QCA955X_GPIO_FUNC_JTAG_DISABLE BIT(1)
|
||||
++
|
||||
++#define QCA955X_GPIO_OUT_GPIO 0
|
||||
++#define QCA955X_MII_EXT_MDI 1
|
||||
++#define QCA955X_SLIC_DATA_OUT 3
|
||||
++#define QCA955X_SLIC_PCM_FS 4
|
||||
++#define QCA955X_SLIC_PCM_CLK 5
|
||||
++#define QCA955X_SPI_CLK 8
|
||||
++#define QCA955X_SPI_CS_0 9
|
||||
++#define QCA955X_SPI_CS_1 10
|
||||
++#define QCA955X_SPI_CS_2 11
|
||||
++#define QCA955X_SPI_MISO 12
|
||||
++#define QCA955X_I2S_CLK 13
|
||||
++#define QCA955X_I2S_WS 14
|
||||
++#define QCA955X_I2S_SD 15
|
||||
++#define QCA955X_I2S_MCK 16
|
||||
++#define QCA955X_SPDIF_OUT 17
|
||||
++#define QCA955X_UART1_TD 18
|
||||
++#define QCA955X_UART1_RTS 19
|
||||
++#define QCA955X_UART1_RD 20
|
||||
++#define QCA955X_UART1_CTS 21
|
||||
++#define QCA955X_UART0_SOUT 22
|
||||
++#define QCA955X_SPDIF2_OUT 23
|
||||
++#define QCA955X_LED_SGMII_SPEED0 24
|
||||
++#define QCA955X_LED_SGMII_SPEED1 25
|
||||
++#define QCA955X_LED_SGMII_DUPLEX 26
|
||||
++#define QCA955X_LED_SGMII_LINK_UP 27
|
||||
++#define QCA955X_SGMII_SPEED0_INVERT 28
|
||||
++#define QCA955X_SGMII_SPEED1_INVERT 29
|
||||
++#define QCA955X_SGMII_DUPLEX_INVERT 30
|
||||
++#define QCA955X_SGMII_LINK_UP_INVERT 31
|
||||
++#define QCA955X_GE1_MII_MDO 32
|
||||
++#define QCA955X_GE1_MII_MDC 33
|
||||
++#define QCA955X_SWCOM2 38
|
||||
++#define QCA955X_SWCOM3 39
|
||||
++#define QCA955X_MAC2_GPIO 40
|
||||
++#define QCA955X_MAC3_GPIO 41
|
||||
++#define QCA955X_ATT_LED 42
|
||||
++#define QCA955X_PWR_LED 43
|
||||
++#define QCA955X_TX_FRAME 44
|
||||
++#define QCA955X_RX_CLEAR_EXTERNAL 45
|
||||
++#define QCA955X_LED_NETWORK_EN 46
|
||||
++#define QCA955X_LED_POWER_EN 47
|
||||
++#define QCA955X_WMAC_GLUE_WOW 68
|
||||
++#define QCA955X_RX_CLEAR_EXTENSION 70
|
||||
++#define QCA955X_CP_NAND_CS1 73
|
||||
++#define QCA955X_USB_SUSPEND 74
|
||||
++#define QCA955X_ETH_TX_ERR 75
|
||||
++#define QCA955X_DDR_DQ_OE 76
|
||||
++#define QCA955X_CLKREQ_N_EP 77
|
||||
++#define QCA955X_CLKREQ_N_RC 78
|
||||
++#define QCA955X_CLK_OBS0 79
|
||||
++#define QCA955X_CLK_OBS1 80
|
||||
++#define QCA955X_CLK_OBS2 81
|
||||
++#define QCA955X_CLK_OBS3 82
|
||||
++#define QCA955X_CLK_OBS4 83
|
||||
++#define QCA955X_CLK_OBS5 84
|
||||
++
|
||||
+/*
|
||||
+ * MII_CTRL block
|
||||
+ */
|
||||
diff --git a/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch b/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
|
||||
index 0e87357..8a54859 100644
|
||||
--- a/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
|
||||
+++ b/target/linux/ar71xx/patches-3.18/739-MIPS-ath79-add-gpio-func-register-for-QCA955x-SoC.patch
|
||||
@@ -37,37 +37,12 @@
|
||||
+ }
|
||||
|
||||
- if (gpio >= AR934X_GPIO_COUNT)
|
||||
+- return;
|
||||
+ if (gpio >= gpio_count)
|
||||
- return;
|
||||
++ return;
|
||||
|
||||
- reg = AR934X_GPIO_REG_OUT_FUNC0 + 4 * (gpio / 4);
|
||||
+ reg = reg_base + 4 * (gpio / 4);
|
||||
s = 8 * (gpio % 4);
|
||||
|
||||
spin_lock_irqsave(&ath79_gpio_lock, flags);
|
||||
---- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
|
||||
-+++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
|
||||
-@@ -875,6 +875,14 @@
|
||||
- #define QCA953X_GPIO_OUT_MUX_LED_LINK4 44
|
||||
- #define QCA953X_GPIO_OUT_MUX_LED_LINK5 45
|
||||
-
|
||||
-+#define QCA955X_GPIO_REG_OUT_FUNC0 0x2c
|
||||
-+#define QCA955X_GPIO_REG_OUT_FUNC1 0x30
|
||||
-+#define QCA955X_GPIO_REG_OUT_FUNC2 0x34
|
||||
-+#define QCA955X_GPIO_REG_OUT_FUNC3 0x38
|
||||
-+#define QCA955X_GPIO_REG_OUT_FUNC4 0x3c
|
||||
-+#define QCA955X_GPIO_REG_OUT_FUNC5 0x40
|
||||
-+#define QCA955X_GPIO_REG_FUNC 0x6c
|
||||
-+
|
||||
- #define QCA956X_GPIO_REG_OUT_FUNC0 0x2c
|
||||
- #define QCA956X_GPIO_REG_OUT_FUNC1 0x30
|
||||
- #define QCA956X_GPIO_REG_OUT_FUNC2 0x34
|
||||
-@@ -1014,6 +1022,8 @@
|
||||
- #define AR934X_GPIO_OUT_EXT_LNA0 46
|
||||
- #define AR934X_GPIO_OUT_EXT_LNA1 47
|
||||
-
|
||||
-+#define QCA955X_GPIO_OUT_GPIO 0
|
||||
-+
|
||||
- /*
|
||||
- * MII_CTRL block
|
||||
- */
|
@ -1,78 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Wed, 16 Mar 2016 09:27:11 +0000
|
||||
Subject: ar71xx: Use PHY fixups for Open Mesh MR900
|
||||
|
||||
The delays of PHY/MAC on the MR900 are done by u-boot and OpenWrt in
|
||||
different ways. u-boot only modifies the ETH_CFG of the QCA955x based on
|
||||
the link speed. But OpenWrt can only modify the PHY delays based on the
|
||||
link speed.
|
||||
|
||||
This can lead to communication problems when u-boot initializes the ETH_CFG
|
||||
for a specific link speed (e.g. 10BASE-T) but then OpenWrt the sets the PHY
|
||||
delays to an incompatible value.
|
||||
|
||||
Instead reset the ETH_CFG delay bits of the QCA955x to a specific value and
|
||||
only rely on the AT803x PHY settings.
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49030
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624185/
|
||||
|
||||
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr900.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr900.c
|
||||
index 9c3164d..3634bf0 100644
|
||||
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr900.c
|
||||
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr900.c
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <linux/ath9k_platform.h>
|
||||
|
||||
#include <asm/mach-ath79/ar71xx_regs.h>
|
||||
+#include <linux/platform_data/phy-at803x.h>
|
||||
|
||||
#include "common.h"
|
||||
#include "dev-ap9x-pci.h"
|
||||
@@ -94,15 +95,30 @@ static struct gpio_keys_button mr900_gpio_keys[] __initdata = {
|
||||
},
|
||||
};
|
||||
|
||||
+static struct at803x_platform_data mr900_at803x_data = {
|
||||
+ .disable_smarteee = 1,
|
||||
+ .enable_rgmii_rx_delay = 1,
|
||||
+ .enable_rgmii_tx_delay = 0,
|
||||
+ .fixup_rgmii_tx_delay = 1,
|
||||
+};
|
||||
+
|
||||
+static struct mdio_board_info mr900_mdio0_info[] = {
|
||||
+ {
|
||||
+ .bus_id = "ag71xx-mdio.0",
|
||||
+ .phy_addr = 5,
|
||||
+ .platform_data = &mr900_at803x_data,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
static void __init mr900_setup(void)
|
||||
{
|
||||
u8 *art = (u8 *)KSEG1ADDR(0x1fff0000);
|
||||
u8 mac[6], pcie_mac[6];
|
||||
struct ath9k_platform_data *pdata;
|
||||
|
||||
- ath79_eth0_pll_data.pll_1000 = 0xbe000101;
|
||||
- ath79_eth0_pll_data.pll_100 = 0x80000101;
|
||||
- ath79_eth0_pll_data.pll_10 = 0x80001313;
|
||||
+ ath79_eth0_pll_data.pll_1000 = 0xae000000;
|
||||
+ ath79_eth0_pll_data.pll_100 = 0xa0000101;
|
||||
+ ath79_eth0_pll_data.pll_10 = 0xa0001313;
|
||||
|
||||
ath79_register_m25p80(NULL);
|
||||
|
||||
@@ -126,6 +142,9 @@ static void __init mr900_setup(void)
|
||||
ath79_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_RGMII_EN);
|
||||
ath79_register_mdio(0, 0x0);
|
||||
|
||||
+ mdiobus_register_board_info(mr900_mdio0_info,
|
||||
+ ARRAY_SIZE(mr900_mdio0_info));
|
||||
+
|
||||
ath79_init_mac(ath79_eth0_data.mac_addr, art + MR900_MAC0_OFFSET, 0);
|
||||
|
||||
/* GMAC0 is connected to the RMGII interface */
|
@ -1,77 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Wed, 16 Mar 2016 09:27:14 +0000
|
||||
Subject: ar71xx: Use PHY fixups for Open Mesh MR1750
|
||||
|
||||
The delays of PHY/MAC on the MR1750 are done by u-boot and OpenWrt in
|
||||
different ways. u-boot only modifies the ETH_CFG of the QCA955x based on
|
||||
the link speed. But OpenWrt can only modify the PHY delays based on the
|
||||
link speed.
|
||||
|
||||
This can lead to communication problems when u-boot initializes the ETH_CFG
|
||||
for a specific link speed (e.g. 10BASE-T) but then OpenWrt the sets the PHY
|
||||
delays to an incompatible value.
|
||||
|
||||
Instead reset the ETH_CFG delay bits of the QCA955x to a specific value and
|
||||
only rely on the AT803x PHY settings.
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49031
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624186/
|
||||
|
||||
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr1750.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr1750.c
|
||||
index 8ace02f..f9e45bd 100644
|
||||
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr1750.c
|
||||
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr1750.c
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <linux/ar8216_platform.h>
|
||||
|
||||
#include <asm/mach-ath79/ar71xx_regs.h>
|
||||
+#include <linux/platform_data/phy-at803x.h>
|
||||
|
||||
#include "common.h"
|
||||
#include "dev-ap9x-pci.h"
|
||||
@@ -92,14 +93,29 @@ static struct gpio_keys_button mr1750_gpio_keys[] __initdata = {
|
||||
},
|
||||
};
|
||||
|
||||
+static struct at803x_platform_data mr1750_at803x_data = {
|
||||
+ .disable_smarteee = 1,
|
||||
+ .enable_rgmii_rx_delay = 1,
|
||||
+ .enable_rgmii_tx_delay = 0,
|
||||
+ .fixup_rgmii_tx_delay = 1,
|
||||
+};
|
||||
+
|
||||
+static struct mdio_board_info mr1750_mdio0_info[] = {
|
||||
+ {
|
||||
+ .bus_id = "ag71xx-mdio.0",
|
||||
+ .phy_addr = 5,
|
||||
+ .platform_data = &mr1750_at803x_data,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
static void __init mr1750_setup(void)
|
||||
{
|
||||
u8 *art = (u8 *)KSEG1ADDR(0x1fff0000);
|
||||
u8 mac[6];
|
||||
|
||||
- ath79_eth0_pll_data.pll_1000 = 0xbe000101;
|
||||
- ath79_eth0_pll_data.pll_100 = 0x80000101;
|
||||
- ath79_eth0_pll_data.pll_10 = 0x80001313;
|
||||
+ ath79_eth0_pll_data.pll_1000 = 0xae000000;
|
||||
+ ath79_eth0_pll_data.pll_100 = 0xa0000101;
|
||||
+ ath79_eth0_pll_data.pll_10 = 0xa0001313;
|
||||
|
||||
ath79_register_m25p80(NULL);
|
||||
|
||||
@@ -116,6 +132,9 @@ static void __init mr1750_setup(void)
|
||||
ath79_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_RGMII_EN);
|
||||
ath79_register_mdio(0, 0x0);
|
||||
|
||||
+ mdiobus_register_board_info(mr1750_mdio0_info,
|
||||
+ ARRAY_SIZE(mr1750_mdio0_info));
|
||||
+
|
||||
ath79_init_mac(ath79_eth0_data.mac_addr, art + MR1750_MAC0_OFFSET, 0);
|
||||
|
||||
/* GMAC0 is connected to the RMGII interface */
|
@ -1,58 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Wed, 23 Mar 2016 12:52:09 +0000
|
||||
Subject: ar71xx: Use private version of ath79_setup_qca955x_eth_cfg for MR900
|
||||
|
||||
The MR900 must unset some bits in ETH_CFG which were set by u-boot to work
|
||||
correctly under OpenWrt. But the global function
|
||||
ath79_setup_qca955x_eth_cfg will not unset all of them to increase the
|
||||
backward compatiblity with older mach-* files. A private (simplified)
|
||||
version for MR900 can be used instead.
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49069
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624187/
|
||||
|
||||
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr900.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr900.c
|
||||
index 3634bf0..b439f58 100644
|
||||
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr900.c
|
||||
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr900.c
|
||||
@@ -110,6 +110,28 @@ static struct mdio_board_info mr900_mdio0_info[] = {
|
||||
},
|
||||
};
|
||||
|
||||
+static void __init mr900_setup_qca955x_eth_cfg(u32 mask,
|
||||
+ unsigned int rxd,
|
||||
+ unsigned int rxdv,
|
||||
+ unsigned int txd,
|
||||
+ unsigned int txe)
|
||||
+{
|
||||
+ void __iomem *base;
|
||||
+ u32 t;
|
||||
+
|
||||
+ base = ioremap(QCA955X_GMAC_BASE, QCA955X_GMAC_SIZE);
|
||||
+
|
||||
+ t = mask;
|
||||
+ t |= rxd << QCA955X_ETH_CFG_RXD_DELAY_SHIFT;
|
||||
+ t |= rxdv << QCA955X_ETH_CFG_RDV_DELAY_SHIFT;
|
||||
+ t |= txd << QCA955X_ETH_CFG_TXD_DELAY_SHIFT;
|
||||
+ t |= txe << QCA955X_ETH_CFG_TXE_DELAY_SHIFT;
|
||||
+
|
||||
+ __raw_writel(t, base + QCA955X_GMAC_REG_ETH_CFG);
|
||||
+
|
||||
+ iounmap(base);
|
||||
+}
|
||||
+
|
||||
static void __init mr900_setup(void)
|
||||
{
|
||||
u8 *art = (u8 *)KSEG1ADDR(0x1fff0000);
|
||||
@@ -139,7 +161,7 @@ static void __init mr900_setup(void)
|
||||
}
|
||||
pdata->use_eeprom = true;
|
||||
|
||||
- ath79_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_RGMII_EN);
|
||||
+ mr900_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_RGMII_EN, 3, 3, 0, 0);
|
||||
ath79_register_mdio(0, 0x0);
|
||||
|
||||
mdiobus_register_board_info(mr900_mdio0_info,
|
@ -1,58 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Wed, 23 Mar 2016 12:52:12 +0000
|
||||
Subject: ar71xx: Use private version of ath79_setup_qca955x_eth_cfg for MR1750
|
||||
|
||||
The MR1750 must unset some bits in ETH_CFG which were set by u-boot to work
|
||||
correctly under OpenWrt. But the global function
|
||||
ath79_setup_qca955x_eth_cfg will not unset all of them to increase the
|
||||
backward compatiblity with older mach-* files. A private (simplified)
|
||||
version for MR1750 can be used instead.
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49070
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624188/
|
||||
|
||||
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr1750.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr1750.c
|
||||
index f9e45bd..e3c04e7 100644
|
||||
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr1750.c
|
||||
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr1750.c
|
||||
@@ -108,6 +108,28 @@ static struct mdio_board_info mr1750_mdio0_info[] = {
|
||||
},
|
||||
};
|
||||
|
||||
+static void __init mr1750_setup_qca955x_eth_cfg(u32 mask,
|
||||
+ unsigned int rxd,
|
||||
+ unsigned int rxdv,
|
||||
+ unsigned int txd,
|
||||
+ unsigned int txe)
|
||||
+{
|
||||
+ void __iomem *base;
|
||||
+ u32 t;
|
||||
+
|
||||
+ base = ioremap(QCA955X_GMAC_BASE, QCA955X_GMAC_SIZE);
|
||||
+
|
||||
+ t = mask;
|
||||
+ t |= rxd << QCA955X_ETH_CFG_RXD_DELAY_SHIFT;
|
||||
+ t |= rxdv << QCA955X_ETH_CFG_RDV_DELAY_SHIFT;
|
||||
+ t |= txd << QCA955X_ETH_CFG_TXD_DELAY_SHIFT;
|
||||
+ t |= txe << QCA955X_ETH_CFG_TXE_DELAY_SHIFT;
|
||||
+
|
||||
+ __raw_writel(t, base + QCA955X_GMAC_REG_ETH_CFG);
|
||||
+
|
||||
+ iounmap(base);
|
||||
+}
|
||||
+
|
||||
static void __init mr1750_setup(void)
|
||||
{
|
||||
u8 *art = (u8 *)KSEG1ADDR(0x1fff0000);
|
||||
@@ -129,7 +151,7 @@ static void __init mr1750_setup(void)
|
||||
ath79_register_wmac(art + MR1750_WMAC_CALDATA_OFFSET, mac);
|
||||
ath79_register_pci();
|
||||
|
||||
- ath79_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_RGMII_EN);
|
||||
+ mr1750_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_RGMII_EN, 3, 3, 0, 0);
|
||||
ath79_register_mdio(0, 0x0);
|
||||
|
||||
mdiobus_register_board_info(mr1750_mdio0_info,
|
@ -1,43 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Mon, 14 Sep 2015 20:10:10 +0000
|
||||
Subject: scripts/om-fwupgradecfg-gen.sh: Fix u-boot image md5sum check
|
||||
|
||||
The u-boot on Open Mesh devices checks the whole transfered image against a
|
||||
md5sum. This is stored inside the option filemd5sum inside the
|
||||
fwupgrade.cfg. The bootloader will not check it when this setting is
|
||||
missing and could therefore write invalid images to the flash.
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r46925
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624189/
|
||||
|
||||
diff --git a/scripts/om-fwupgradecfg-gen.sh b/scripts/om-fwupgradecfg-gen.sh
|
||||
index c790214..fab1582 100644
|
||||
--- a/scripts/om-fwupgradecfg-gen.sh
|
||||
+++ b/scripts/om-fwupgradecfg-gen.sh
|
||||
@@ -48,6 +48,7 @@ ROOTFS_FLASH_ADDR=$(addr=$(($KERNEL_FLASH_ADDR + ($KERNEL_PART_SIZE * 1024))); p
|
||||
ROOTFS_SIZE=$(stat -c%s "$ROOTFS_PATH")
|
||||
ROOTFS_CHECK_BLOCKS=$((($ROOTFS_SIZE / $CHECK_BS) - $MD5_SKIP_BLOCKS))
|
||||
ROOTFS_MD5=$(md5=$(dd if=$ROOTFS_PATH bs=$CHECK_BS count=$ROOTFS_CHECK_BLOCKS 2>&- | md5sum); echo ${md5%% *})
|
||||
+ROOTFS_MD5_FULL=$(md5=$(md5sum $ROOTFS_PATH); echo ${md5%% *})
|
||||
ROOTFS_CHECK_SIZE=$(printf '0x%x' $(($ROOTFS_CHECK_BLOCKS * $CHECK_BS)))
|
||||
ROOTFS_PART_SIZE=$(($MAX_PART_SIZE - $KERNEL_PART_SIZE))
|
||||
|
||||
@@ -55,6 +56,7 @@ cat << EOF > $CFG_OUT
|
||||
[vmlinux]
|
||||
filename=kernel
|
||||
md5sum=$KERNEL_MD5
|
||||
+filemd5sum=$KERNEL_MD5
|
||||
flashaddr=$KERNEL_FLASH_ADDR
|
||||
checksize=0x0
|
||||
cmd_success=setenv bootseq 1,2; setenv kernel_size_1 $KERNEL_PART_SIZE; saveenv
|
||||
@@ -63,6 +65,7 @@ cmd_fail=reset
|
||||
[rootfs]
|
||||
filename=rootfs
|
||||
md5sum=$ROOTFS_MD5
|
||||
+filemd5sum=$ROOTFS_MD5_FULL
|
||||
flashaddr=$ROOTFS_FLASH_ADDR
|
||||
checksize=$ROOTFS_CHECK_SIZE
|
||||
cmd_success=setenv bootseq 1,2; setenv kernel_size_1 $KERNEL_PART_SIZE; setenv rootfs_size_1 $ROOTFS_PART_SIZE; saveenv
|
@ -1,50 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Sat, 9 Apr 2016 10:25:42 +0000
|
||||
Subject: scripts/om-fwupgradecfg-gen.sh: Generate sha256sum for uboot verification
|
||||
|
||||
Future Open Mesh u-boot versions are changing the check of the image files
|
||||
(vmlinux, rootfs) from md5 to sha256. Having both in them should be enough
|
||||
to ensure backward and forward compatibility.
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49140
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624190/
|
||||
|
||||
diff --git a/scripts/om-fwupgradecfg-gen.sh b/scripts/om-fwupgradecfg-gen.sh
|
||||
index fab1582..e208e6d 100644
|
||||
--- a/scripts/om-fwupgradecfg-gen.sh
|
||||
+++ b/scripts/om-fwupgradecfg-gen.sh
|
||||
@@ -42,6 +42,7 @@ CHECK_BS=65536
|
||||
|
||||
KERNEL_SIZE=$(stat -c%s "$KERNEL_PATH")
|
||||
KERNEL_MD5=$(md5=$(md5sum $KERNEL_PATH); echo ${md5%% *})
|
||||
+KERNEL_SHA256=$(openssl dgst -sha256 $KERNEL_PATH | awk '{print $2}')
|
||||
KERNEL_PART_SIZE=$(size=$(($KERNEL_SIZE / $FLASH_BS)); [ $(($size * $FLASH_BS)) -lt $KERNEL_SIZE ] && size=$(($size + 1)); echo $(($size * $FLASH_BS / 1024)))
|
||||
|
||||
ROOTFS_FLASH_ADDR=$(addr=$(($KERNEL_FLASH_ADDR + ($KERNEL_PART_SIZE * 1024))); printf "0x%x" $addr)
|
||||
@@ -49,6 +50,7 @@ ROOTFS_SIZE=$(stat -c%s "$ROOTFS_PATH")
|
||||
ROOTFS_CHECK_BLOCKS=$((($ROOTFS_SIZE / $CHECK_BS) - $MD5_SKIP_BLOCKS))
|
||||
ROOTFS_MD5=$(md5=$(dd if=$ROOTFS_PATH bs=$CHECK_BS count=$ROOTFS_CHECK_BLOCKS 2>&- | md5sum); echo ${md5%% *})
|
||||
ROOTFS_MD5_FULL=$(md5=$(md5sum $ROOTFS_PATH); echo ${md5%% *})
|
||||
+ROOTFS_SHA256_FULL=$(openssl dgst -sha256 $ROOTFS_PATH | awk '{print $2}')
|
||||
ROOTFS_CHECK_SIZE=$(printf '0x%x' $(($ROOTFS_CHECK_BLOCKS * $CHECK_BS)))
|
||||
ROOTFS_PART_SIZE=$(($MAX_PART_SIZE - $KERNEL_PART_SIZE))
|
||||
|
||||
@@ -57,6 +59,7 @@ cat << EOF > $CFG_OUT
|
||||
filename=kernel
|
||||
md5sum=$KERNEL_MD5
|
||||
filemd5sum=$KERNEL_MD5
|
||||
+filesha256sum=$KERNEL_SHA256
|
||||
flashaddr=$KERNEL_FLASH_ADDR
|
||||
checksize=0x0
|
||||
cmd_success=setenv bootseq 1,2; setenv kernel_size_1 $KERNEL_PART_SIZE; saveenv
|
||||
@@ -66,6 +69,7 @@ cmd_fail=reset
|
||||
filename=rootfs
|
||||
md5sum=$ROOTFS_MD5
|
||||
filemd5sum=$ROOTFS_MD5_FULL
|
||||
+filesha256sum=$ROOTFS_SHA256_FULL
|
||||
flashaddr=$ROOTFS_FLASH_ADDR
|
||||
checksize=$ROOTFS_CHECK_SIZE
|
||||
cmd_success=setenv bootseq 1,2; setenv kernel_size_1 $KERNEL_PART_SIZE; setenv rootfs_size_1 $ROOTFS_PART_SIZE; saveenv
|
@ -1,265 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Sat, 9 Apr 2016 10:25:47 +0000
|
||||
Subject: ar71xx: add kernel support for the OpenMesh OM5P-AC board
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49141
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624191/
|
||||
|
||||
diff --git a/target/linux/ar71xx/config-3.18 b/target/linux/ar71xx/config-3.18
|
||||
index c5a3c9a..dd89357 100644
|
||||
--- a/target/linux/ar71xx/config-3.18
|
||||
+++ b/target/linux/ar71xx/config-3.18
|
||||
@@ -91,6 +91,7 @@ CONFIG_ATH79_MACH_NBG460N=y
|
||||
CONFIG_ATH79_MACH_NBG6716=y
|
||||
CONFIG_ATH79_MACH_OM2P=y
|
||||
CONFIG_ATH79_MACH_OM5P=y
|
||||
+CONFIG_ATH79_MACH_OM5P_AC=y
|
||||
CONFIG_ATH79_MACH_ONION_OMEGA=y
|
||||
CONFIG_ATH79_MACH_PB42=y
|
||||
CONFIG_ATH79_MACH_PB44=y
|
||||
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-om5pac.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-om5pac.c
|
||||
new file mode 100644
|
||||
index 0000000..f6974af
|
||||
--- /dev/null
|
||||
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-om5pac.c
|
||||
@@ -0,0 +1,193 @@
|
||||
+/*
|
||||
+ * OpenMesh OM5P-AC support
|
||||
+ *
|
||||
+ * Copyright (C) 2013 Marek Lindner <marek@open-mesh.com>
|
||||
+ * Copyright (C) 2014 Sven Eckelmann <sven@open-mesh.com>
|
||||
+ *
|
||||
+ * 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 <linux/gpio.h>
|
||||
+#include <linux/mtd/mtd.h>
|
||||
+#include <linux/mtd/partitions.h>
|
||||
+#include <linux/platform_device.h>
|
||||
+#include <linux/i2c.h>
|
||||
+#include <linux/i2c-algo-bit.h>
|
||||
+#include <linux/i2c-gpio.h>
|
||||
+#include <linux/platform_data/phy-at803x.h>
|
||||
+
|
||||
+#include <asm/mach-ath79/ar71xx_regs.h>
|
||||
+#include <asm/mach-ath79/ath79.h>
|
||||
+
|
||||
+#include "common.h"
|
||||
+#include "dev-ap9x-pci.h"
|
||||
+#include "dev-eth.h"
|
||||
+#include "dev-leds-gpio.h"
|
||||
+#include "dev-m25p80.h"
|
||||
+#include "dev-wmac.h"
|
||||
+#include "machtypes.h"
|
||||
+#include "pci.h"
|
||||
+
|
||||
+#define OM5PAC_GPIO_LED_POWER 18
|
||||
+#define OM5PAC_GPIO_LED_GREEN 21
|
||||
+#define OM5PAC_GPIO_LED_RED 23
|
||||
+#define OM5PAC_GPIO_LED_YELLOW 22
|
||||
+#define OM5PAC_GPIO_LED_LAN 20
|
||||
+#define OM5PAC_GPIO_LED_WAN 19
|
||||
+#define OM5PAC_GPIO_I2C_SCL 12
|
||||
+#define OM5PAC_GPIO_I2C_SDA 11
|
||||
+
|
||||
+#define OM5PAC_KEYS_POLL_INTERVAL 20 /* msecs */
|
||||
+#define OM5PAC_KEYS_DEBOUNCE_INTERVAL (3 * OM5PAC_KEYS_POLL_INTERVAL)
|
||||
+
|
||||
+#define OM5PAC_WMAC_CALDATA_OFFSET 0x1000
|
||||
+
|
||||
+static struct gpio_led om5pac_leds_gpio[] __initdata = {
|
||||
+ {
|
||||
+ .name = "om5pac:blue:power",
|
||||
+ .gpio = OM5PAC_GPIO_LED_POWER,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "om5pac:red:wifi",
|
||||
+ .gpio = OM5PAC_GPIO_LED_RED,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "om5pac:yellow:wifi",
|
||||
+ .gpio = OM5PAC_GPIO_LED_YELLOW,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "om5pac:green:wifi",
|
||||
+ .gpio = OM5PAC_GPIO_LED_GREEN,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "om5pac:blue:lan",
|
||||
+ .gpio = OM5PAC_GPIO_LED_LAN,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "om5pac:blue:wan",
|
||||
+ .gpio = OM5PAC_GPIO_LED_WAN,
|
||||
+ .active_low = 1,
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
+static struct flash_platform_data om5pac_flash_data = {
|
||||
+ .type = "mx25l12805d",
|
||||
+};
|
||||
+
|
||||
+static struct i2c_gpio_platform_data om5pac_i2c_device_platdata = {
|
||||
+ .sda_pin = OM5PAC_GPIO_I2C_SDA,
|
||||
+ .scl_pin = OM5PAC_GPIO_I2C_SCL,
|
||||
+ .udelay = 10,
|
||||
+ .sda_is_open_drain = 1,
|
||||
+ .scl_is_open_drain = 1,
|
||||
+};
|
||||
+
|
||||
+static struct platform_device om5pac_i2c_device = {
|
||||
+ .name = "i2c-gpio",
|
||||
+ .id = 0,
|
||||
+ .dev = {
|
||||
+ .platform_data = &om5pac_i2c_device_platdata,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+static struct i2c_board_info om5pac_i2c_devs[] __initdata = {
|
||||
+ {
|
||||
+ I2C_BOARD_INFO("tmp423", 0x4c),
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+static struct at803x_platform_data om5pac_at803x_data = {
|
||||
+ .disable_smarteee = 1,
|
||||
+ .enable_rgmii_rx_delay = 1,
|
||||
+ .enable_rgmii_tx_delay = 1,
|
||||
+};
|
||||
+
|
||||
+static struct mdio_board_info om5pac_mdio0_info[] = {
|
||||
+ {
|
||||
+ .bus_id = "ag71xx-mdio.0",
|
||||
+ .phy_addr = 1,
|
||||
+ .platform_data = &om5pac_at803x_data,
|
||||
+ },
|
||||
+ {
|
||||
+ .bus_id = "ag71xx-mdio.0",
|
||||
+ .phy_addr = 2,
|
||||
+ .platform_data = &om5pac_at803x_data,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+static void __init om5p_ac_setup_qca955x_eth_cfg(u32 mask,
|
||||
+ unsigned int rxd,
|
||||
+ unsigned int rxdv,
|
||||
+ unsigned int txd,
|
||||
+ unsigned int txe)
|
||||
+{
|
||||
+ void __iomem *base;
|
||||
+ u32 t;
|
||||
+
|
||||
+ base = ioremap(QCA955X_GMAC_BASE, QCA955X_GMAC_SIZE);
|
||||
+
|
||||
+ t = mask;
|
||||
+ t |= rxd << QCA955X_ETH_CFG_RXD_DELAY_SHIFT;
|
||||
+ t |= rxdv << QCA955X_ETH_CFG_RDV_DELAY_SHIFT;
|
||||
+ t |= txd << QCA955X_ETH_CFG_TXD_DELAY_SHIFT;
|
||||
+ t |= txe << QCA955X_ETH_CFG_TXE_DELAY_SHIFT;
|
||||
+
|
||||
+ __raw_writel(t, base + QCA955X_GMAC_REG_ETH_CFG);
|
||||
+
|
||||
+ iounmap(base);
|
||||
+}
|
||||
+
|
||||
+static void __init om5p_ac_setup(void)
|
||||
+{
|
||||
+ u8 *art = (u8 *)KSEG1ADDR(0x1fff0000);
|
||||
+ u8 mac[6];
|
||||
+
|
||||
+ /* temperature sensor */
|
||||
+ platform_device_register(&om5pac_i2c_device);
|
||||
+ i2c_register_board_info(0, om5pac_i2c_devs,
|
||||
+ ARRAY_SIZE(om5pac_i2c_devs));
|
||||
+
|
||||
+ ath79_gpio_output_select(OM5PAC_GPIO_LED_WAN, QCA955X_GPIO_OUT_GPIO);
|
||||
+
|
||||
+ ath79_register_m25p80(&om5pac_flash_data);
|
||||
+ ath79_register_leds_gpio(-1, ARRAY_SIZE(om5pac_leds_gpio),
|
||||
+ om5pac_leds_gpio);
|
||||
+
|
||||
+ ath79_init_mac(mac, art, 0x02);
|
||||
+ ath79_register_wmac(art + OM5PAC_WMAC_CALDATA_OFFSET, mac);
|
||||
+
|
||||
+ om5p_ac_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_RGMII_EN, 3, 3, 0, 0);
|
||||
+ ath79_register_mdio(0, 0x0);
|
||||
+
|
||||
+ mdiobus_register_board_info(om5pac_mdio0_info,
|
||||
+ ARRAY_SIZE(om5pac_mdio0_info));
|
||||
+
|
||||
+ ath79_init_mac(ath79_eth0_data.mac_addr, art, 0x00);
|
||||
+ ath79_init_mac(ath79_eth1_data.mac_addr, art, 0x01);
|
||||
+
|
||||
+ /* GMAC0 is connected to the PHY1 */
|
||||
+ ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII;
|
||||
+ ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev;
|
||||
+ ath79_eth0_data.phy_mask = BIT(1);
|
||||
+ ath79_eth0_pll_data.pll_1000 = 0x82000101;
|
||||
+ ath79_eth0_pll_data.pll_100 = 0x80000101;
|
||||
+ ath79_eth0_pll_data.pll_10 = 0x80001313;
|
||||
+ ath79_register_eth(0);
|
||||
+
|
||||
+ /* GMAC1 is connected to MDIO1 in SGMII mode */
|
||||
+ ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_SGMII;
|
||||
+ ath79_eth1_data.mii_bus_dev = &ath79_mdio0_device.dev;
|
||||
+ ath79_eth1_data.phy_mask = BIT(2);
|
||||
+ ath79_eth1_pll_data.pll_1000 = 0x03000101;
|
||||
+ ath79_eth1_pll_data.pll_100 = 0x80000101;
|
||||
+ ath79_eth1_pll_data.pll_10 = 0x80001313;
|
||||
+ ath79_eth1_data.speed = SPEED_1000;
|
||||
+ ath79_eth1_data.duplex = DUPLEX_FULL;
|
||||
+ ath79_register_eth(1);
|
||||
+
|
||||
+ ath79_register_pci();
|
||||
+}
|
||||
+
|
||||
+MIPS_MACHINE(ATH79_MACH_OM5P_AC, "OM5P-AC", "OpenMesh OM5P AC", om5p_ac_setup);
|
||||
diff --git a/target/linux/ar71xx/patches-3.18/815-MIPS-ath79-add-om5pac-support.patch b/target/linux/ar71xx/patches-3.18/815-MIPS-ath79-add-om5pac-support.patch
|
||||
new file mode 100644
|
||||
index 0000000..4accd03
|
||||
--- /dev/null
|
||||
+++ b/target/linux/ar71xx/patches-3.18/815-MIPS-ath79-add-om5pac-support.patch
|
||||
@@ -0,0 +1,38 @@
|
||||
+--- a/arch/mips/ath79/Kconfig
|
||||
++++ b/arch/mips/ath79/Kconfig
|
||||
+@@ -799,6 +799,15 @@ config ATH79_MACH_OM5P
|
||||
+ select ATH79_DEV_M25P80
|
||||
+ select ATH79_DEV_WMAC
|
||||
+
|
||||
++config ATH79_MACH_OM5P_AC
|
||||
++ bool "OpenMesh OM5P-AC board support"
|
||||
++ select SOC_QCA955X
|
||||
++ select ATH79_DEV_AP9X_PCI if PCI
|
||||
++ select ATH79_DEV_ETH
|
||||
++ select ATH79_DEV_LEDS_GPIO
|
||||
++ select ATH79_DEV_M25P80
|
||||
++ select ATH79_DEV_WMAC
|
||||
++
|
||||
+ config ATH79_MACH_ONION_OMEGA
|
||||
+ bool "ONION OMEGA support"
|
||||
+ select SOC_AR933X
|
||||
+--- a/arch/mips/ath79/Makefile
|
||||
++++ b/arch/mips/ath79/Makefile
|
||||
+@@ -100,6 +100,7 @@ obj-$(CONFIG_ATH79_MACH_MZK_W300NH) += m
|
||||
+ obj-$(CONFIG_ATH79_MACH_NBG460N) += mach-nbg460n.o
|
||||
+ obj-$(CONFIG_ATH79_MACH_OM2P) += mach-om2p.o
|
||||
+ obj-$(CONFIG_ATH79_MACH_OM5P) += mach-om5p.o
|
||||
++obj-$(CONFIG_ATH79_MACH_OM5P_AC) += mach-om5pac.o
|
||||
+ obj-$(CONFIG_ATH79_MACH_ONION_OMEGA) += mach-onion-omega.o
|
||||
+ obj-$(CONFIG_ATH79_MACH_PB42) += mach-pb42.o
|
||||
+ obj-$(CONFIG_ATH79_MACH_PB44) += mach-pb44.o
|
||||
+--- a/arch/mips/ath79/machtypes.h
|
||||
++++ b/arch/mips/ath79/machtypes.h
|
||||
+@@ -95,6 +95,7 @@ enum ath79_mach_type {
|
||||
+ ATH79_MACH_OM2P_LC, /* OpenMesh OM2P-LC */
|
||||
+ ATH79_MACH_OM2Pv2, /* OpenMesh OM2Pv2 */
|
||||
+ ATH79_MACH_OM2P, /* OpenMesh OM2P */
|
||||
++ ATH79_MACH_OM5P_AC, /* OpenMesh OM5P-AC */
|
||||
+ ATH79_MACH_OM5P_AN, /* OpenMesh OM5P-AN */
|
||||
+ ATH79_MACH_OM5P, /* OpenMesh OM5P */
|
||||
+ ATH79_MACH_ONION_OMEGA, /* ONION OMEGA */
|
@ -1,54 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Sat, 9 Apr 2016 10:25:51 +0000
|
||||
Subject: ar71xx: add user-space support for the OpenMesh OM5P-AC
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49142
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624192/
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
index 44d2ddf..a4051f2 100644
|
||||
--- a/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
@@ -178,6 +178,9 @@ get_status_led() {
|
||||
om5p-an)
|
||||
status_led="om5p:blue:power"
|
||||
;;
|
||||
+ om5p-ac)
|
||||
+ status_led="om5pac:blue:power"
|
||||
+ ;;
|
||||
onion-omega)
|
||||
status_led="onion:amber:system"
|
||||
;;
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
index c451124..9a768cd 100644
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
@@ -304,6 +304,11 @@ om5p-an)
|
||||
ucidef_set_led_netdev "port2" "port2" "om5p:blue:lan" "eth1"
|
||||
;;
|
||||
|
||||
+om5p-ac)
|
||||
+ ucidef_set_led_netdev "port1" "port1" "om5pac:blue:lan" "eth0"
|
||||
+ ucidef_set_led_netdev "port2" "port2" "om5pac:blue:wan" "eth1"
|
||||
+ ;;
|
||||
+
|
||||
qihoo-c301)
|
||||
ucidef_set_led_wlan "wlan2g" "WLAN2G" "qihoo:red:status" "phy1tpt"
|
||||
;;
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index 587d029..10b8048 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -616,6 +616,9 @@ ar71xx_board_detect() {
|
||||
*"OM5P AN")
|
||||
name="om5p-an"
|
||||
;;
|
||||
+ *"OM5P AC")
|
||||
+ name="om5p-ac"
|
||||
+ ;;
|
||||
*"Onion Omega")
|
||||
name="onion-omega"
|
||||
;;
|
@ -1,32 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Sat, 9 Apr 2016 10:25:54 +0000
|
||||
Subject: scripts/om-fwupgradecfg-gen.sh: add support for the OM5P-AC
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49143
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624193/
|
||||
|
||||
diff --git a/scripts/om-fwupgradecfg-gen.sh b/scripts/om-fwupgradecfg-gen.sh
|
||||
index e208e6d..6c3b74c 100644
|
||||
--- a/scripts/om-fwupgradecfg-gen.sh
|
||||
+++ b/scripts/om-fwupgradecfg-gen.sh
|
||||
@@ -7,7 +7,7 @@
|
||||
#
|
||||
|
||||
usage() {
|
||||
- echo "Usage: $0 <OM2P|OM5P|MR600|MR900|MR1750> <out file path> <kernel path> <rootfs path>"
|
||||
+ echo "Usage: $0 <OM2P|OM5P|OM5PAC|MR600|MR900|MR1750> <out file path> <kernel path> <rootfs path>"
|
||||
rm -f $CFG_OUT
|
||||
exit 1
|
||||
}
|
||||
@@ -26,7 +26,7 @@ case $CE_TYPE in
|
||||
FLASH_BS=262144
|
||||
MD5_SKIP_BLOCKS=1
|
||||
;;
|
||||
- OM5P|MR600|MR900|MR1750)
|
||||
+ OM5P|OM5PAC|MR600|MR900|MR1750)
|
||||
MAX_PART_SIZE=7808
|
||||
KERNEL_FLASH_ADDR=0xb0000
|
||||
FLASH_BS=65536
|
@ -1,59 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Sat, 9 Apr 2016 10:25:57 +0000
|
||||
Subject: ar71xx: enable sysupgrade for the OpenMesh OM5P-AC
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49144
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624194/
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh b/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
|
||||
index 9ca0f5b..1cfead9 100644
|
||||
--- a/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
|
||||
@@ -72,6 +72,11 @@ platform_check_image_openmesh()
|
||||
echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform"
|
||||
return 1
|
||||
;;
|
||||
+ OM5PAC)
|
||||
+ [ "$board" = "om5p-ac" ] && break
|
||||
+ echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform"
|
||||
+ return 1
|
||||
+ ;;
|
||||
MR1750)
|
||||
[ "$board" = "mr1750" ] && break
|
||||
echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform"
|
||||
@@ -162,7 +167,7 @@ platform_do_upgrade_openmesh()
|
||||
kernel_start_addr1=0x9f1c0000
|
||||
kernel_start_addr2=0x9f8c0000
|
||||
;;
|
||||
- OM5P|MR600|MR900|MR1750)
|
||||
+ OM5P|OM5PAC|MR600|MR900|MR1750)
|
||||
block_size=$((64 * 1024))
|
||||
total_size=7995392
|
||||
kernel_start_addr1=0x9f0b0000
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
index ac060ea..67c0661 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
@@ -307,7 +307,8 @@ platform_check_image() {
|
||||
om2p-hsv2 | \
|
||||
om2p-lc | \
|
||||
om5p | \
|
||||
- om5p-an)
|
||||
+ om5p-an | \
|
||||
+ om5p-ac)
|
||||
platform_check_image_openmesh "$magic_long" "$1" && return 0
|
||||
return 1
|
||||
;;
|
||||
@@ -540,7 +541,8 @@ platform_do_upgrade() {
|
||||
om2p-hsv2 | \
|
||||
om2p-lc | \
|
||||
om5p | \
|
||||
- om5p-an)
|
||||
+ om5p-an | \
|
||||
+ om5p-ac)
|
||||
platform_do_upgrade_openmesh "$ARGV"
|
||||
;;
|
||||
unifi-outdoor-plus | \
|
@ -1,24 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Sat, 9 Apr 2016 10:26:01 +0000
|
||||
Subject: om-watchdog: add OpenMesh OM5P-AC support
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49145
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624195/
|
||||
|
||||
diff --git a/package/kernel/om-watchdog/files/om-watchdog.init b/package/kernel/om-watchdog/files/om-watchdog.init
|
||||
index c792968..8cec13b 100644
|
||||
--- a/package/kernel/om-watchdog/files/om-watchdog.init
|
||||
+++ b/package/kernel/om-watchdog/files/om-watchdog.init
|
||||
@@ -22,6 +22,9 @@ boot() {
|
||||
"om5p"|"om5p-an")
|
||||
service_start /sbin/om-watchdog 11
|
||||
;;
|
||||
+ "om5p-ac")
|
||||
+ service_start /sbin/om-watchdog 17
|
||||
+ ;;
|
||||
"mr600v2")
|
||||
service_start /sbin/om-watchdog 15
|
||||
;;
|
@ -1,22 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Sat, 9 Apr 2016 10:26:04 +0000
|
||||
Subject: uboot-envtools: add OpenMesh OM5P-AC support
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49146
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624196/
|
||||
|
||||
diff --git a/package/boot/uboot-envtools/files/ar71xx b/package/boot/uboot-envtools/files/ar71xx
|
||||
index ef00f17..657b25f 100644
|
||||
--- a/package/boot/uboot-envtools/files/ar71xx
|
||||
+++ b/package/boot/uboot-envtools/files/ar71xx
|
||||
@@ -28,6 +28,7 @@ mr900 | \
|
||||
mr900v2 | \
|
||||
nbg6716 | \
|
||||
om5p-an | \
|
||||
+om5p-ac | \
|
||||
om5p | \
|
||||
tube2h | \
|
||||
wndr3700)
|
@ -1,25 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Sat, 9 Apr 2016 10:26:08 +0000
|
||||
Subject: ar71xx: extract ath10k wifi board.bin for the OpenMesh OM5P-AC board
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49147
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624197/
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
|
||||
index cde7aaf..c1f4b85 100644
|
||||
--- a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
|
||||
+++ b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
|
||||
@@ -96,6 +96,10 @@ case "$FIRMWARE" in
|
||||
rb-911g-5hpacd)
|
||||
ath10kcal_from_file "/sys/firmware/routerboot/ext_wlan_data" 20480 2116
|
||||
;;
|
||||
+ om5p-ac)
|
||||
+ ath10kcal_extract "ART" 20480 2116
|
||||
+ ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16)
|
||||
+ ;;
|
||||
esac
|
||||
;;
|
||||
*)
|
@ -1,53 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Sat, 9 Apr 2016 10:26:11 +0000
|
||||
Subject: ar71xx: create profile and build image for the OpenMesh OM5P-AC board
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49148
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624198/
|
||||
|
||||
diff --git a/target/linux/ar71xx/generic/profiles/openmesh.mk b/target/linux/ar71xx/generic/profiles/openmesh.mk
|
||||
index 06cf135..64aaa24 100644
|
||||
--- a/target/linux/ar71xx/generic/profiles/openmesh.mk
|
||||
+++ b/target/linux/ar71xx/generic/profiles/openmesh.mk
|
||||
@@ -27,6 +27,17 @@ endef
|
||||
|
||||
$(eval $(call Profile,OM5P))
|
||||
|
||||
+define Profile/OM5PAC
|
||||
+ NAME:=OpenMesh OM5P-AC
|
||||
+ PACKAGES:=kmod-ath9k kmod-ath10k om-watchdog ath10k-firmware-qca988x
|
||||
+endef
|
||||
+
|
||||
+define Profile/OM5PAC/Description
|
||||
+ Package set optimized for the OpenMesh OM5P-AC.
|
||||
+endef
|
||||
+
|
||||
+$(eval $(call Profile,OM5PAC))
|
||||
+
|
||||
define Profile/MR600
|
||||
NAME:=OpenMesh MR600
|
||||
PACKAGES:=kmod-ath9k om-watchdog
|
||||
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
|
||||
index 0ebb7dc..0cf1df1 100644
|
||||
--- a/target/linux/ar71xx/image/Makefile
|
||||
+++ b/target/linux/ar71xx/image/Makefile
|
||||
@@ -2043,6 +2043,7 @@ $(eval $(call SingleProfile,Netgear,64kraw,WPN824N,wpn824n,WPN824N,ttyS0,115200,
|
||||
|
||||
$(eval $(call SingleProfile,OpenMesh,squashfs-only,OM2P,om2p,,,,OM2P))
|
||||
$(eval $(call SingleProfile,OpenMesh,squashfs-only,OM5P,om5p,,,,OM5P))
|
||||
+$(eval $(call SingleProfile,OpenMesh,squashfs-only,OM5PAC,om5pac,,,,OM5PAC))
|
||||
$(eval $(call SingleProfile,OpenMesh,squashfs-only,MR600,mr600,,,,MR600))
|
||||
$(eval $(call SingleProfile,OpenMesh,squashfs-only,MR900,mr900,,,,MR900))
|
||||
$(eval $(call SingleProfile,OpenMesh,squashfs-only,MR1750,mr1750,,,,MR1750))
|
||||
@@ -2139,7 +2140,7 @@ $(eval $(call MultiProfile,AP121,AP121_2M AP121_4M))
|
||||
$(eval $(call MultiProfile,DIR615IX,DIR615I1 DIR615I3))
|
||||
$(eval $(call MultiProfile,AP136,AP136_010 AP136_020))
|
||||
$(eval $(call MultiProfile,EWDORIN, EWDORINAP EWDORINRT EWDORIN16M))
|
||||
-$(eval $(call MultiProfile,OPENMESH,OM2P OM5P MR600 MR900 MR1750))
|
||||
+$(eval $(call MultiProfile,OPENMESH,OM2P OM5P OM5PAC MR600 MR900 MR1750))
|
||||
$(eval $(call MultiProfile,TEW652BRP,TEW652BRP_FW TEW652BRP_RECOVERY))
|
||||
$(eval $(call MultiProfile,TLMR3220,TLMR3220V1))
|
||||
$(eval $(call MultiProfile,TLMR3420,TLMR3420V1))
|
@ -1,289 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Sat, 9 Apr 2016 10:26:15 +0000
|
||||
Subject: ar71xx: add kernel support for the OpenMesh OM5P-ACv2 board
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49149
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624199/
|
||||
|
||||
diff --git a/target/linux/ar71xx/config-3.18 b/target/linux/ar71xx/config-3.18
|
||||
index dd89357..514f7d5 100644
|
||||
--- a/target/linux/ar71xx/config-3.18
|
||||
+++ b/target/linux/ar71xx/config-3.18
|
||||
@@ -92,6 +92,7 @@ CONFIG_ATH79_MACH_NBG6716=y
|
||||
CONFIG_ATH79_MACH_OM2P=y
|
||||
CONFIG_ATH79_MACH_OM5P=y
|
||||
CONFIG_ATH79_MACH_OM5P_AC=y
|
||||
+CONFIG_ATH79_MACH_OM5P_ACv2=y
|
||||
CONFIG_ATH79_MACH_ONION_OMEGA=y
|
||||
CONFIG_ATH79_MACH_PB42=y
|
||||
CONFIG_ATH79_MACH_PB44=y
|
||||
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-om5pacv2.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-om5pacv2.c
|
||||
new file mode 100644
|
||||
index 0000000..587ca32
|
||||
--- /dev/null
|
||||
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-om5pacv2.c
|
||||
@@ -0,0 +1,216 @@
|
||||
+/*
|
||||
+ * OpenMesh OM5P-ACv2 support
|
||||
+ *
|
||||
+ * Copyright (C) 2013 Marek Lindner <marek@open-mesh.com>
|
||||
+ * Copyright (C) 2014-2016 Sven Eckelmann <sven@open-mesh.com>
|
||||
+ * Copyright (C) 2015 Open-Mesh - Jim Collar <jim.collar@eqware.net>
|
||||
+ *
|
||||
+ * 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 <linux/gpio.h>
|
||||
+#include <linux/mdio-gpio.h>
|
||||
+#include <linux/mtd/mtd.h>
|
||||
+#include <linux/mtd/partitions.h>
|
||||
+#include <linux/platform_device.h>
|
||||
+#include <linux/i2c.h>
|
||||
+#include <linux/i2c-algo-bit.h>
|
||||
+#include <linux/i2c-gpio.h>
|
||||
+#include <linux/platform_data/phy-at803x.h>
|
||||
+
|
||||
+#include <asm/mach-ath79/ar71xx_regs.h>
|
||||
+#include <asm/mach-ath79/ath79.h>
|
||||
+
|
||||
+#include "common.h"
|
||||
+#include "dev-ap9x-pci.h"
|
||||
+#include "dev-eth.h"
|
||||
+#include "dev-gpio-buttons.h"
|
||||
+#include "dev-leds-gpio.h"
|
||||
+#include "dev-m25p80.h"
|
||||
+#include "dev-wmac.h"
|
||||
+#include "machtypes.h"
|
||||
+#include "pci.h"
|
||||
+
|
||||
+#define OM5PACV2_GPIO_LED_POWER 14
|
||||
+#define OM5PACV2_GPIO_LED_GREEN 13
|
||||
+#define OM5PACV2_GPIO_LED_RED 23
|
||||
+#define OM5PACV2_GPIO_LED_YELLOW 15
|
||||
+#define OM5PACV2_GPIO_BTN_RESET 1
|
||||
+#define OM5PACV2_GPIO_I2C_SCL 18
|
||||
+#define OM5PACV2_GPIO_I2C_SDA 19
|
||||
+#define OM5PACV2_GPIO_PA_DCDC 2
|
||||
+#define OM5PACV2_GPIO_PA_HIGH 16
|
||||
+
|
||||
+#define OM5PACV2_KEYS_POLL_INTERVAL 20 /* msecs */
|
||||
+#define OM5PACV2_KEYS_DEBOUNCE_INTERVAL (3 * OM5PACV2_KEYS_POLL_INTERVAL)
|
||||
+
|
||||
+#define OM5PACV2_WMAC_CALDATA_OFFSET 0x1000
|
||||
+
|
||||
+static struct gpio_led om5pacv2_leds_gpio[] __initdata = {
|
||||
+ {
|
||||
+ .name = "om5pac:blue:power",
|
||||
+ .gpio = OM5PACV2_GPIO_LED_POWER,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "om5pac:red:wifi",
|
||||
+ .gpio = OM5PACV2_GPIO_LED_RED,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "om5pac:yellow:wifi",
|
||||
+ .gpio = OM5PACV2_GPIO_LED_YELLOW,
|
||||
+ .active_low = 1,
|
||||
+ }, {
|
||||
+ .name = "om5pac:green:wifi",
|
||||
+ .gpio = OM5PACV2_GPIO_LED_GREEN,
|
||||
+ .active_low = 1,
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
+static struct gpio_keys_button om5pacv2_gpio_keys[] __initdata = {
|
||||
+ {
|
||||
+ .desc = "reset",
|
||||
+ .type = EV_KEY,
|
||||
+ .code = KEY_RESTART,
|
||||
+ .debounce_interval = OM5PACV2_KEYS_DEBOUNCE_INTERVAL,
|
||||
+ .gpio = OM5PACV2_GPIO_BTN_RESET,
|
||||
+ .active_low = 1,
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
+static struct i2c_gpio_platform_data om5pacv2_i2c_device_platdata = {
|
||||
+ .sda_pin = OM5PACV2_GPIO_I2C_SDA,
|
||||
+ .scl_pin = OM5PACV2_GPIO_I2C_SCL,
|
||||
+ .udelay = 10,
|
||||
+ .sda_is_open_drain = 1,
|
||||
+ .scl_is_open_drain = 1,
|
||||
+};
|
||||
+
|
||||
+static struct platform_device om5pacv2_i2c_device = {
|
||||
+ .name = "i2c-gpio",
|
||||
+ .id = 0,
|
||||
+ .dev = {
|
||||
+ .platform_data = &om5pacv2_i2c_device_platdata,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+static struct i2c_board_info om5pacv2_i2c_devs[] __initdata = {
|
||||
+ {
|
||||
+ I2C_BOARD_INFO("tmp423", 0x4e),
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+static struct flash_platform_data om5pacv2_flash_data = {
|
||||
+ .type = "mx25l12805d",
|
||||
+};
|
||||
+
|
||||
+static struct at803x_platform_data om5pacv2_an_at803x_data = {
|
||||
+ .disable_smarteee = 1,
|
||||
+ .enable_rgmii_rx_delay = 1,
|
||||
+ .enable_rgmii_tx_delay = 1,
|
||||
+};
|
||||
+
|
||||
+static struct at803x_platform_data om5pacv2_an_at8031_data = {
|
||||
+ .disable_smarteee = 1,
|
||||
+ .enable_rgmii_rx_delay = 1,
|
||||
+ .enable_rgmii_tx_delay = 1,
|
||||
+};
|
||||
+
|
||||
+static struct mdio_board_info om5pacv2_an_mdio0_info[] = {
|
||||
+ {
|
||||
+ .bus_id = "ag71xx-mdio.0",
|
||||
+ .phy_addr = 4,
|
||||
+ .platform_data = &om5pacv2_an_at803x_data,
|
||||
+ },
|
||||
+ {
|
||||
+ .bus_id = "ag71xx-mdio.1",
|
||||
+ .phy_addr = 1,
|
||||
+ .platform_data = &om5pacv2_an_at8031_data,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+static void __init om5p_acv2_setup_qca955x_eth_cfg(u32 mask,
|
||||
+ unsigned int rxd,
|
||||
+ unsigned int rxdv,
|
||||
+ unsigned int txd,
|
||||
+ unsigned int txe)
|
||||
+{
|
||||
+ void __iomem *base;
|
||||
+ u32 t;
|
||||
+
|
||||
+ base = ioremap(QCA955X_GMAC_BASE, QCA955X_GMAC_SIZE);
|
||||
+
|
||||
+ t = mask;
|
||||
+ t |= rxd << QCA955X_ETH_CFG_RXD_DELAY_SHIFT;
|
||||
+ t |= rxdv << QCA955X_ETH_CFG_RDV_DELAY_SHIFT;
|
||||
+ t |= txd << QCA955X_ETH_CFG_TXD_DELAY_SHIFT;
|
||||
+ t |= txe << QCA955X_ETH_CFG_TXE_DELAY_SHIFT;
|
||||
+
|
||||
+ __raw_writel(t, base + QCA955X_GMAC_REG_ETH_CFG);
|
||||
+
|
||||
+ iounmap(base);
|
||||
+}
|
||||
+
|
||||
+static void __init om5p_acv2_setup(void)
|
||||
+{
|
||||
+ u8 *art = (u8 *)KSEG1ADDR(0x1fff0000);
|
||||
+ u8 mac[6];
|
||||
+
|
||||
+ /* power amplifier high power, 4.2V at RFFM4203/4503 instead of 3.3 */
|
||||
+ ath79_gpio_function_enable(QCA955X_GPIO_FUNC_JTAG_DISABLE);
|
||||
+ ath79_gpio_output_select(OM5PACV2_GPIO_PA_DCDC, QCA955X_GPIO_OUT_GPIO);
|
||||
+ ath79_gpio_output_select(OM5PACV2_GPIO_PA_HIGH, QCA955X_GPIO_OUT_GPIO);
|
||||
+ gpio_request_one(OM5PACV2_GPIO_PA_DCDC, GPIOF_OUT_INIT_HIGH,
|
||||
+ "PA DC/DC");
|
||||
+ gpio_request_one(OM5PACV2_GPIO_PA_HIGH, GPIOF_OUT_INIT_HIGH, "PA HIGH");
|
||||
+
|
||||
+ /* temperature sensor */
|
||||
+ platform_device_register(&om5pacv2_i2c_device);
|
||||
+ i2c_register_board_info(0, om5pacv2_i2c_devs,
|
||||
+ ARRAY_SIZE(om5pacv2_i2c_devs));
|
||||
+
|
||||
+ ath79_register_m25p80(&om5pacv2_flash_data);
|
||||
+ ath79_register_leds_gpio(-1, ARRAY_SIZE(om5pacv2_leds_gpio),
|
||||
+ om5pacv2_leds_gpio);
|
||||
+ ath79_register_gpio_keys_polled(-1, OM5PACV2_KEYS_POLL_INTERVAL,
|
||||
+ ARRAY_SIZE(om5pacv2_gpio_keys),
|
||||
+ om5pacv2_gpio_keys);
|
||||
+
|
||||
+ ath79_init_mac(mac, art, 0x02);
|
||||
+ ath79_register_wmac(art + OM5PACV2_WMAC_CALDATA_OFFSET, mac);
|
||||
+
|
||||
+ om5p_acv2_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_RGMII_EN, 2, 2, 0, 0);
|
||||
+ ath79_register_mdio(0, 0x0);
|
||||
+ ath79_register_mdio(1, 0x0);
|
||||
+
|
||||
+ mdiobus_register_board_info(om5pacv2_an_mdio0_info,
|
||||
+ ARRAY_SIZE(om5pacv2_an_mdio0_info));
|
||||
+
|
||||
+ ath79_init_mac(ath79_eth0_data.mac_addr, art, 0x00);
|
||||
+ ath79_init_mac(ath79_eth1_data.mac_addr, art, 0x01);
|
||||
+
|
||||
+ /* GMAC0 is connected to the PHY4 */
|
||||
+ ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII;
|
||||
+ ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev;
|
||||
+ ath79_eth0_data.phy_mask = BIT(4);
|
||||
+ ath79_eth0_pll_data.pll_1000 = 0x82000101;
|
||||
+ ath79_eth0_pll_data.pll_100 = 0x80000101;
|
||||
+ ath79_eth0_pll_data.pll_10 = 0x80001313;
|
||||
+ ath79_register_eth(0);
|
||||
+
|
||||
+ /* GMAC1 is connected to MDIO1 in SGMII mode */
|
||||
+ ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_SGMII;
|
||||
+ ath79_eth1_data.mii_bus_dev = &ath79_mdio1_device.dev;
|
||||
+ ath79_eth1_data.phy_mask = BIT(1);
|
||||
+ ath79_eth1_pll_data.pll_1000 = 0x03000101;
|
||||
+ ath79_eth1_pll_data.pll_100 = 0x80000101;
|
||||
+ ath79_eth1_pll_data.pll_10 = 0x80001313;
|
||||
+ ath79_eth1_data.speed = SPEED_1000;
|
||||
+ ath79_eth1_data.duplex = DUPLEX_FULL;
|
||||
+ ath79_register_eth(1);
|
||||
+
|
||||
+ ath79_register_pci();
|
||||
+}
|
||||
+
|
||||
+MIPS_MACHINE(ATH79_MACH_OM5P_ACv2, "OM5P-ACv2", "OpenMesh OM5P ACv2", om5p_acv2_setup);
|
||||
diff --git a/target/linux/ar71xx/patches-3.18/816-MIPS-ath79-add-om5pacv-support.patch b/target/linux/ar71xx/patches-3.18/816-MIPS-ath79-add-om5pacv-support.patch
|
||||
new file mode 100644
|
||||
index 0000000..fbbf171
|
||||
--- /dev/null
|
||||
+++ b/target/linux/ar71xx/patches-3.18/816-MIPS-ath79-add-om5pacv-support.patch
|
||||
@@ -0,0 +1,39 @@
|
||||
+--- a/arch/mips/ath79/Kconfig
|
||||
++++ b/arch/mips/ath79/Kconfig
|
||||
+@@ -808,6 +808,16 @@ config ATH79_MACH_OM5P_AC
|
||||
+ select ATH79_DEV_M25P80
|
||||
+ select ATH79_DEV_WMAC
|
||||
+
|
||||
++config ATH79_MACH_OM5P_ACv2
|
||||
++ bool "OpenMesh OM5P-ACv2 board support"
|
||||
++ select SOC_QCA955X
|
||||
++ select ATH79_DEV_AP9X_PCI if PCI
|
||||
++ select ATH79_DEV_ETH
|
||||
++ select ATH79_DEV_GPIO_BUTTONS
|
||||
++ select ATH79_DEV_LEDS_GPIO
|
||||
++ select ATH79_DEV_M25P80
|
||||
++ select ATH79_DEV_WMAC
|
||||
++
|
||||
+ config ATH79_MACH_ONION_OMEGA
|
||||
+ bool "ONION OMEGA support"
|
||||
+ select SOC_AR933X
|
||||
+--- a/arch/mips/ath79/Makefile
|
||||
++++ b/arch/mips/ath79/Makefile
|
||||
+@@ -101,6 +101,7 @@ obj-$(CONFIG_ATH79_MACH_NBG460N) += mach
|
||||
+ obj-$(CONFIG_ATH79_MACH_OM2P) += mach-om2p.o
|
||||
+ obj-$(CONFIG_ATH79_MACH_OM5P) += mach-om5p.o
|
||||
+ obj-$(CONFIG_ATH79_MACH_OM5P_AC) += mach-om5pac.o
|
||||
++obj-$(CONFIG_ATH79_MACH_OM5P_ACv2) += mach-om5pacv2.o
|
||||
+ obj-$(CONFIG_ATH79_MACH_ONION_OMEGA) += mach-onion-omega.o
|
||||
+ obj-$(CONFIG_ATH79_MACH_PB42) += mach-pb42.o
|
||||
+ obj-$(CONFIG_ATH79_MACH_PB44) += mach-pb44.o
|
||||
+--- a/arch/mips/ath79/machtypes.h
|
||||
++++ b/arch/mips/ath79/machtypes.h
|
||||
+@@ -96,6 +96,7 @@ enum ath79_mach_type {
|
||||
+ ATH79_MACH_OM2Pv2, /* OpenMesh OM2Pv2 */
|
||||
+ ATH79_MACH_OM2P, /* OpenMesh OM2P */
|
||||
+ ATH79_MACH_OM5P_AC, /* OpenMesh OM5P-AC */
|
||||
++ ATH79_MACH_OM5P_ACv2, /* OpenMesh OM5P-ACv2 */
|
||||
+ ATH79_MACH_OM5P_AN, /* OpenMesh OM5P-AN */
|
||||
+ ATH79_MACH_OM5P, /* OpenMesh OM5P */
|
||||
+ ATH79_MACH_ONION_OMEGA, /* ONION OMEGA */
|
@ -1,38 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Sat, 9 Apr 2016 10:26:18 +0000
|
||||
Subject: ar71xx: add user-space support for the OpenMesh OM5P-ACv2
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49150
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624200/
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
index a4051f2..d4d8b4e 100644
|
||||
--- a/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
@@ -178,7 +178,8 @@ get_status_led() {
|
||||
om5p-an)
|
||||
status_led="om5p:blue:power"
|
||||
;;
|
||||
- om5p-ac)
|
||||
+ om5p-ac | \
|
||||
+ om5p-acv2)
|
||||
status_led="om5pac:blue:power"
|
||||
;;
|
||||
onion-omega)
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index 10b8048..fbf76c8 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -619,6 +619,9 @@ ar71xx_board_detect() {
|
||||
*"OM5P AC")
|
||||
name="om5p-ac"
|
||||
;;
|
||||
+ *"OM5P ACv2")
|
||||
+ name="om5p-acv2"
|
||||
+ ;;
|
||||
*"Onion Omega")
|
||||
name="onion-omega"
|
||||
;;
|
@ -1,46 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Sat, 9 Apr 2016 10:26:22 +0000
|
||||
Subject: ar71xx: enable sysupgrade for the OpenMesh OM5P-ACv2
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49151
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624201/
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh b/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
|
||||
index 1cfead9..209cdaa 100644
|
||||
--- a/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
|
||||
@@ -74,6 +74,7 @@ platform_check_image_openmesh()
|
||||
;;
|
||||
OM5PAC)
|
||||
[ "$board" = "om5p-ac" ] && break
|
||||
+ [ "$board" = "om5p-acv2" ] && break
|
||||
echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform"
|
||||
return 1
|
||||
;;
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
index 67c0661..4a4c476 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
@@ -308,7 +308,8 @@ platform_check_image() {
|
||||
om2p-lc | \
|
||||
om5p | \
|
||||
om5p-an | \
|
||||
- om5p-ac)
|
||||
+ om5p-ac | \
|
||||
+ om5p-acv2)
|
||||
platform_check_image_openmesh "$magic_long" "$1" && return 0
|
||||
return 1
|
||||
;;
|
||||
@@ -542,7 +543,8 @@ platform_do_upgrade() {
|
||||
om2p-lc | \
|
||||
om5p | \
|
||||
om5p-an | \
|
||||
- om5p-ac)
|
||||
+ om5p-ac | \
|
||||
+ om5p-acv2)
|
||||
platform_do_upgrade_openmesh "$ARGV"
|
||||
;;
|
||||
unifi-outdoor-plus | \
|
@ -1,23 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Sat, 9 Apr 2016 10:26:25 +0000
|
||||
Subject: om-watchdog: add OpenMesh OM5P-ACv2 support
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49152
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624202/
|
||||
|
||||
diff --git a/package/kernel/om-watchdog/files/om-watchdog.init b/package/kernel/om-watchdog/files/om-watchdog.init
|
||||
index 8cec13b..6b96966 100644
|
||||
--- a/package/kernel/om-watchdog/files/om-watchdog.init
|
||||
+++ b/package/kernel/om-watchdog/files/om-watchdog.init
|
||||
@@ -13,7 +13,7 @@ boot() {
|
||||
local board=$(ar71xx_board_name)
|
||||
|
||||
case "$board" in
|
||||
- "om2p"|"om2p-hs"|"om2p-hsv2")
|
||||
+ "om2p"|"om2p-hs"|"om2p-hsv2"|"om5p-acv2")
|
||||
service_start /sbin/om-watchdog 12
|
||||
;;
|
||||
"om2pv2"|"om2p-lc")
|
@ -1,22 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Sat, 9 Apr 2016 10:26:28 +0000
|
||||
Subject: uboot-envtools: add OpenMesh OM5P-ACv2 support
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49153
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624203/
|
||||
|
||||
diff --git a/package/boot/uboot-envtools/files/ar71xx b/package/boot/uboot-envtools/files/ar71xx
|
||||
index 657b25f..9071c11 100644
|
||||
--- a/package/boot/uboot-envtools/files/ar71xx
|
||||
+++ b/package/boot/uboot-envtools/files/ar71xx
|
||||
@@ -29,6 +29,7 @@ mr900v2 | \
|
||||
nbg6716 | \
|
||||
om5p-an | \
|
||||
om5p-ac | \
|
||||
+om5p-acv2 | \
|
||||
om5p | \
|
||||
tube2h | \
|
||||
wndr3700)
|
@ -1,24 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Sat, 9 Apr 2016 10:26:31 +0000
|
||||
Subject: ar71xx: extract ath10k wifi board.bin for the OpenMesh OM5P-ACv2 board
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49154
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624204/
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
|
||||
index c1f4b85..d925a85 100644
|
||||
--- a/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
|
||||
+++ b/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
|
||||
@@ -71,7 +71,8 @@ case "$FIRMWARE" in
|
||||
ath10kcal_extract "caldata" 20480 2116
|
||||
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1)
|
||||
;;
|
||||
- mr1750)
|
||||
+ mr1750 | \
|
||||
+ om5p-acv2)
|
||||
ath10kcal_extract "ART" 20480 2116
|
||||
ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +16)
|
||||
;;
|
@ -1,29 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Sat, 9 Apr 2016 10:26:34 +0000
|
||||
Subject: ar71xx: add OM5P-ACv2 to the OM5P-AC profile
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Backport of r49155
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/624205/
|
||||
|
||||
diff --git a/target/linux/ar71xx/generic/profiles/openmesh.mk b/target/linux/ar71xx/generic/profiles/openmesh.mk
|
||||
index 64aaa24..c0919ed 100644
|
||||
--- a/target/linux/ar71xx/generic/profiles/openmesh.mk
|
||||
+++ b/target/linux/ar71xx/generic/profiles/openmesh.mk
|
||||
@@ -28,12 +28,12 @@ endef
|
||||
$(eval $(call Profile,OM5P))
|
||||
|
||||
define Profile/OM5PAC
|
||||
- NAME:=OpenMesh OM5P-AC
|
||||
+ NAME:=OpenMesh OM5P-AC/OM5P-ACv2
|
||||
PACKAGES:=kmod-ath9k kmod-ath10k om-watchdog ath10k-firmware-qca988x
|
||||
endef
|
||||
|
||||
define Profile/OM5PAC/Description
|
||||
- Package set optimized for the OpenMesh OM5P-AC.
|
||||
+ Package set optimized for the OpenMesh OM5P-AC/OM5P-ACv2.
|
||||
endef
|
||||
|
||||
$(eval $(call Profile,OM5PAC))
|
@ -1,24 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Wed, 15 Jun 2016 19:31:08 +0200
|
||||
Subject: scripts: feeds: fix version detection for Make >= 4.2.1
|
||||
|
||||
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
||||
|
||||
Backport of LEDE df18b3756fef6a28d9194368d3156f0cd85fae19
|
||||
|
||||
diff --git a/scripts/feeds b/scripts/feeds
|
||||
index f8f29cd..908e56c 100755
|
||||
--- a/scripts/feeds
|
||||
+++ b/scripts/feeds
|
||||
@@ -22,7 +22,10 @@ my @mkver = split /\s+/, `$mk -v`, 4;
|
||||
my $valid_mk = 1;
|
||||
$mkver[0] =~ /^GNU/ or $valid_mk = 0;
|
||||
$mkver[1] =~ /^Make/ or $valid_mk = 0;
|
||||
-$mkver[2] >= "3.81" or $valid_mk = 0;
|
||||
+
|
||||
+my ($mkv1, $mkv2) = split /\./, $mkver[2];
|
||||
+($mkv1 >= 4 || ($mkv1 == 3 && $mkv2 >= 81)) or $valid_mk = 0;
|
||||
+
|
||||
$valid_mk or die "Unsupported version of make found: $mk\n";
|
||||
|
||||
my @feeds;
|
@ -1,33 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Fri, 20 May 2016 18:03:48 +0200
|
||||
Subject: ar71xx: add kernel support for the OpenMesh OM2P-HSv3
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/637052/
|
||||
|
||||
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-om2p.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-om2p.c
|
||||
index 6b0bdc3..3b282a3 100644
|
||||
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-om2p.c
|
||||
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-om2p.c
|
||||
@@ -223,3 +223,4 @@ static void __init om2p_hs_setup(void)
|
||||
|
||||
MIPS_MACHINE(ATH79_MACH_OM2P_HS, "OM2P-HS", "OpenMesh OM2P HS", om2p_hs_setup);
|
||||
MIPS_MACHINE(ATH79_MACH_OM2P_HSv2, "OM2P-HSv2", "OpenMesh OM2P HSv2", om2p_hs_setup);
|
||||
+MIPS_MACHINE(ATH79_MACH_OM2P_HSv3, "OM2P-HSv3", "OpenMesh OM2P HSv3", om2p_hs_setup);
|
||||
diff --git a/target/linux/ar71xx/patches-3.18/817-MIPS-ath79-add-om2phsv3-support.patch b/target/linux/ar71xx/patches-3.18/817-MIPS-ath79-add-om2phsv3-support.patch
|
||||
new file mode 100644
|
||||
index 0000000..7305b2e
|
||||
--- /dev/null
|
||||
+++ b/target/linux/ar71xx/patches-3.18/817-MIPS-ath79-add-om2phsv3-support.patch
|
||||
@@ -0,0 +1,10 @@
|
||||
+--- a/arch/mips/ath79/machtypes.h
|
||||
++++ b/arch/mips/ath79/machtypes.h
|
||||
+@@ -88,6 +88,7 @@ enum ath79_mach_type {
|
||||
+ ATH79_MACH_NBG460N, /* Zyxel NBG460N/550N/550NH */
|
||||
+ ATH79_MACH_NBG6716, /* Zyxel NBG6716 */
|
||||
+ ATH79_MACH_OM2P_HSv2, /* OpenMesh OM2P-HSv2 */
|
||||
++ ATH79_MACH_OM2P_HSv3, /* OpenMesh OM2P-HSv3 */
|
||||
+ ATH79_MACH_OM2P_HS, /* OpenMesh OM2P-HS */
|
||||
+ ATH79_MACH_OM2P_LC, /* OpenMesh OM2P-LC */
|
||||
+ ATH79_MACH_OM2Pv2, /* OpenMesh OM2Pv2 */
|
@ -1,46 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Fri, 20 May 2016 18:03:49 +0200
|
||||
Subject: ar71xx: add user-space support for the OpenMesh OM2P-HSv3
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/637053/
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
index d4d8b4e..aa02212 100644
|
||||
--- a/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
@@ -171,6 +171,7 @@ get_status_led() {
|
||||
om2pv2 | \
|
||||
om2p-hs | \
|
||||
om2p-hsv2 | \
|
||||
+ om2p-hsv3 | \
|
||||
om2p-lc)
|
||||
status_led="om2p:blue:power"
|
||||
;;
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
index dc8b8d6..5767f48 100644
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
@@ -297,6 +297,7 @@ om2p | \
|
||||
om2pv2 | \
|
||||
om2p-hs | \
|
||||
om2p-hsv2 | \
|
||||
+om2p-hsv3 | \
|
||||
om2p-lc)
|
||||
ucidef_set_led_netdev "port1" "port1" "om2p:blue:wan" "eth0"
|
||||
ucidef_set_led_netdev "port2" "port2" "om2p:blue:lan" "eth1"
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index db908f9..dc51b03 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -610,6 +610,9 @@ ar71xx_board_detect() {
|
||||
*"OM2P HSv2")
|
||||
name="om2p-hsv2"
|
||||
;;
|
||||
+ *"OM2P HSv3")
|
||||
+ name="om2p-hsv3"
|
||||
+ ;;
|
||||
*"OM2P LC")
|
||||
name="om2p-lc"
|
||||
;;
|
@ -1,40 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Fri, 20 May 2016 18:03:50 +0200
|
||||
Subject: ar71xx: enable sysupgrade for the OpenMesh OM2P-HSv3
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/637054/
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh b/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
|
||||
index 209cdaa..0e8ea27 100644
|
||||
--- a/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
|
||||
@@ -63,6 +63,7 @@ platform_check_image_openmesh()
|
||||
[ "$board" = "om2p-lc" ] && break
|
||||
[ "$board" = "om2p-hs" ] && break
|
||||
[ "$board" = "om2p-hsv2" ] && break
|
||||
+ [ "$board" = "om2p-hsv3" ] && break
|
||||
echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform"
|
||||
return 1
|
||||
;;
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
index aeb4577..9b26e73 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
@@ -306,6 +306,7 @@ platform_check_image() {
|
||||
om2pv2 | \
|
||||
om2p-hs | \
|
||||
om2p-hsv2 | \
|
||||
+ om2p-hsv3 | \
|
||||
om2p-lc | \
|
||||
om5p | \
|
||||
om5p-an | \
|
||||
@@ -541,6 +542,7 @@ platform_do_upgrade() {
|
||||
om2pv2 | \
|
||||
om2p-hs | \
|
||||
om2p-hsv2 | \
|
||||
+ om2p-hsv3 | \
|
||||
om2p-lc | \
|
||||
om5p | \
|
||||
om5p-an | \
|
@ -1,21 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Fri, 20 May 2016 18:03:51 +0200
|
||||
Subject: package/om-watchdog: add OpenMesh OM2P-HSv3 support
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/637055/
|
||||
|
||||
diff --git a/package/kernel/om-watchdog/files/om-watchdog.init b/package/kernel/om-watchdog/files/om-watchdog.init
|
||||
index 6b96966..bf8a124 100644
|
||||
--- a/package/kernel/om-watchdog/files/om-watchdog.init
|
||||
+++ b/package/kernel/om-watchdog/files/om-watchdog.init
|
||||
@@ -13,7 +13,7 @@ boot() {
|
||||
local board=$(ar71xx_board_name)
|
||||
|
||||
case "$board" in
|
||||
- "om2p"|"om2p-hs"|"om2p-hsv2"|"om5p-acv2")
|
||||
+ "om2p"|"om2p-hs"|"om2p-hsv2"|"om2p-hsv3"|"om5p-acv2")
|
||||
service_start /sbin/om-watchdog 12
|
||||
;;
|
||||
"om2pv2"|"om2p-lc")
|
@ -1,20 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Fri, 20 May 2016 18:03:52 +0200
|
||||
Subject: package/uboot-envtools: add OpenMesh OM2P-HSv3 support
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/637056/
|
||||
|
||||
diff --git a/package/boot/uboot-envtools/files/ar71xx b/package/boot/uboot-envtools/files/ar71xx
|
||||
index 9071c11..81c6481 100644
|
||||
--- a/package/boot/uboot-envtools/files/ar71xx
|
||||
+++ b/package/boot/uboot-envtools/files/ar71xx
|
||||
@@ -41,6 +41,7 @@ om2p | \
|
||||
om2pv2 | \
|
||||
om2p-hs | \
|
||||
om2p-hsv2 | \
|
||||
+om2p-hsv3 | \
|
||||
om2p-lc)
|
||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x40000" "0x40000"
|
||||
;;
|
@ -1,27 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Fri, 20 May 2016 18:03:53 +0200
|
||||
Subject: ar71xx: add OM2P-HSv3 to the OM2P profile
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/637057/
|
||||
|
||||
diff --git a/target/linux/ar71xx/generic/profiles/openmesh.mk b/target/linux/ar71xx/generic/profiles/openmesh.mk
|
||||
index c0919ed..ddd3f8d 100644
|
||||
--- a/target/linux/ar71xx/generic/profiles/openmesh.mk
|
||||
+++ b/target/linux/ar71xx/generic/profiles/openmesh.mk
|
||||
@@ -6,12 +6,12 @@
|
||||
#
|
||||
|
||||
define Profile/OM2P
|
||||
- NAME:=OpenMesh OM2P/OM2Pv2/OM2P-HS/OM2P-HSv2/OM2P-LC
|
||||
+ NAME:=OpenMesh OM2P/OM2Pv2/OM2P-HS/OM2P-HSv2/OM2P-HSv3/OM2P-LC
|
||||
PACKAGES:=kmod-ath9k om-watchdog
|
||||
endef
|
||||
|
||||
define Profile/OM2P/Description
|
||||
- Package set optimized for the OpenMesh OM2P/OM2Pv2/OM2P-HS/OM2P-HSv2/OM2P-LC.
|
||||
+ Package set optimized for the OpenMesh OM2P/OM2Pv2/OM2P-HS/OM2P-HSv2/OM2P-HSv3/OM2P-LC.
|
||||
endef
|
||||
|
||||
$(eval $(call Profile,OM2P))
|
@ -1,33 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Fri, 20 May 2016 18:03:54 +0200
|
||||
Subject: ar71xx: add kernel support for the OpenMesh MR1750v2
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/637058/
|
||||
|
||||
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr1750.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr1750.c
|
||||
index e3c04e7..18101ce 100644
|
||||
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-mr1750.c
|
||||
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-mr1750.c
|
||||
@@ -168,3 +168,4 @@ static void __init mr1750_setup(void)
|
||||
}
|
||||
|
||||
MIPS_MACHINE(ATH79_MACH_MR1750, "MR1750", "OpenMesh MR1750", mr1750_setup);
|
||||
+MIPS_MACHINE(ATH79_MACH_MR1750V2, "MR1750v2", "OpenMesh MR1750v2", mr1750_setup);
|
||||
diff --git a/target/linux/ar71xx/patches-3.18/818-MIPS-ath79-add-mr1750v2-support.patch b/target/linux/ar71xx/patches-3.18/818-MIPS-ath79-add-mr1750v2-support.patch
|
||||
new file mode 100644
|
||||
index 0000000..de732ec
|
||||
--- /dev/null
|
||||
+++ b/target/linux/ar71xx/patches-3.18/818-MIPS-ath79-add-mr1750v2-support.patch
|
||||
@@ -0,0 +1,10 @@
|
||||
+--- a/arch/mips/ath79/machtypes.h
|
||||
++++ b/arch/mips/ath79/machtypes.h
|
||||
+@@ -76,6 +76,7 @@ enum ath79_mach_type {
|
||||
+ ATH79_MACH_MR12, /* Cisco Meraki MR12 */
|
||||
+ ATH79_MACH_MR16, /* Cisco Meraki MR16 */
|
||||
+ ATH79_MACH_MR1750, /* OpenMesh MR1750 */
|
||||
++ ATH79_MACH_MR1750V2, /* OpenMesh MR1750v2 */
|
||||
+ ATH79_MACH_MR600V2, /* OpenMesh MR600v2 */
|
||||
+ ATH79_MACH_MR600, /* OpenMesh MR600 */
|
||||
+ ATH79_MACH_MR900, /* OpenMesh MR900 */
|
@ -1,62 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Fri, 20 May 2016 18:03:55 +0200
|
||||
Subject: ar71xx: add user-space support for the OpenMesh MR1750v2
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/637059/
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
index aa02212..f182d60 100644
|
||||
--- a/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
+++ b/target/linux/ar71xx/base-files/etc/diag.sh
|
||||
@@ -143,7 +143,8 @@ get_status_led() {
|
||||
mr600v2)
|
||||
status_led="mr600:blue:power"
|
||||
;;
|
||||
- mr1750)
|
||||
+ mr1750 | \
|
||||
+ mr1750v2)
|
||||
status_led="mr1750:blue:power"
|
||||
;;
|
||||
mr900 | \
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
index 5767f48..032acc9 100644
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds
|
||||
@@ -243,7 +243,8 @@ mr600)
|
||||
ucidef_set_led_wlan "wlan58" "WLAN58" "mr600:green:wlan58" "phy0tpt"
|
||||
;;
|
||||
|
||||
-mr1750)
|
||||
+mr1750 | \
|
||||
+mr1750v2)
|
||||
ucidef_set_led_netdev "lan" "LAN" "mr1750:blue:wan" "eth0"
|
||||
ucidef_set_led_wlan "wlan58" "WLAN58" "mr1750:blue:wlan58" "phy0tpt"
|
||||
ucidef_set_led_wlan "wlan24" "WLAN24" "mr1750:blue:wlan24" "phy1tpt"
|
||||
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
index 89a2184..b8ae576 100755
|
||||
--- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
+++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network
|
||||
@@ -335,6 +335,7 @@ eap7660d |\
|
||||
el-mini |\
|
||||
loco-m-xw |\
|
||||
mr1750 |\
|
||||
+mr1750v2 |\
|
||||
mr600 |\
|
||||
mr600v2 |\
|
||||
mr900 |\
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
index dc51b03..5119b36 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
|
||||
@@ -568,6 +568,9 @@ ar71xx_board_detect() {
|
||||
*MR1750)
|
||||
name="mr1750"
|
||||
;;
|
||||
+ *MR1750v2)
|
||||
+ name="mr1750v2"
|
||||
+ ;;
|
||||
*MR600)
|
||||
name="mr600"
|
||||
;;
|
@ -1,40 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Fri, 20 May 2016 18:03:56 +0200
|
||||
Subject: ar71xx: enable sysupgrade for the OpenMesh MR1750v2
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/637060/
|
||||
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh b/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
|
||||
index 0e8ea27..95d39bf 100644
|
||||
--- a/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/upgrade/openmesh.sh
|
||||
@@ -81,6 +81,7 @@ platform_check_image_openmesh()
|
||||
;;
|
||||
MR1750)
|
||||
[ "$board" = "mr1750" ] && break
|
||||
+ [ "$board" = "mr1750v2" ] && break
|
||||
echo "Invalid image board target ($img_board_target) for this platform: $board. Use the correct image for this platform"
|
||||
return 1
|
||||
;;
|
||||
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
index 9b26e73..f33419f 100755
|
||||
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
|
||||
@@ -298,6 +298,7 @@ platform_check_image() {
|
||||
return 0;
|
||||
;;
|
||||
mr1750 | \
|
||||
+ mr1750v2 | \
|
||||
mr600 | \
|
||||
mr600v2 | \
|
||||
mr900 | \
|
||||
@@ -534,6 +535,7 @@ platform_do_upgrade() {
|
||||
platform_do_upgrade_dir825b "$ARGV"
|
||||
;;
|
||||
mr1750 | \
|
||||
+ mr1750v2 | \
|
||||
mr600 | \
|
||||
mr600v2 | \
|
||||
mr900 | \
|
@ -1,21 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Fri, 20 May 2016 18:03:57 +0200
|
||||
Subject: package/om-watchdog: add OpenMesh MR1750v2 support
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/637062/
|
||||
|
||||
diff --git a/package/kernel/om-watchdog/files/om-watchdog.init b/package/kernel/om-watchdog/files/om-watchdog.init
|
||||
index bf8a124..8a1b66e 100644
|
||||
--- a/package/kernel/om-watchdog/files/om-watchdog.init
|
||||
+++ b/package/kernel/om-watchdog/files/om-watchdog.init
|
||||
@@ -28,7 +28,7 @@ boot() {
|
||||
"mr600v2")
|
||||
service_start /sbin/om-watchdog 15
|
||||
;;
|
||||
- "mr900"|"mr900v2"|"mr1750")
|
||||
+ "mr900"|"mr900v2"|"mr1750"|"mr1750v2")
|
||||
service_start /sbin/om-watchdog 16
|
||||
;;
|
||||
esac
|
@ -1,20 +0,0 @@
|
||||
From: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
Date: Fri, 20 May 2016 18:03:58 +0200
|
||||
Subject: package/uboot-envtools: add OpenMesh MR1750v2 support
|
||||
|
||||
Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com>
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/patch/637064/
|
||||
|
||||
diff --git a/package/boot/uboot-envtools/files/ar71xx b/package/boot/uboot-envtools/files/ar71xx
|
||||
index 81c6481..459e73d 100644
|
||||
--- a/package/boot/uboot-envtools/files/ar71xx
|
||||
+++ b/package/boot/uboot-envtools/files/ar71xx
|
||||
@@ -22,6 +22,7 @@ eap300v2 | \
|
||||
hornet-ub | \
|
||||
hornet-ub-x2 | \
|
||||
mr1750 | \
|
||||
+mr1750v2 | \
|
||||
mr600 | \
|
||||
mr600v2 | \
|
||||
mr900 | \
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user