aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZoltan Herpai <wigyori@uid0.hu>2016-07-21 08:35:15 +0200
committerGitHub <noreply@github.com>2016-07-21 08:35:15 +0200
commit3f40c83a32466603c4aea2625510aba6921b1a44 (patch)
tree4602b0b85b3791f9b424368d221e95b0cf0120d8
parent5a7639c2f620aebe30df18af42d61eb5307f4d6d (diff)
parent0881b27ea0d2b4bdad03b1b3d564188702a6c019 (diff)
downloadmaster-187ad058-3f40c83a32466603c4aea2625510aba6921b1a44.tar.gz
master-187ad058-3f40c83a32466603c4aea2625510aba6921b1a44.tar.bz2
master-187ad058-3f40c83a32466603c4aea2625510aba6921b1a44.zip
Merge pull request #37 from wigyori/master
Pull req for mwlwifi, archs38, bcm53xx and core package updates
-rw-r--r--package/devel/strace/Makefile6
-rw-r--r--package/devel/valgrind/Makefile5
-rw-r--r--package/devel/valgrind/patches/100-fix_configure_check.patch4
-rw-r--r--package/devel/valgrind/patches/120-Fix-configure-for-Linux-kernel-4.0-rc1.patch42
-rw-r--r--package/devel/valgrind/patches/120-mips_fix_soft_float.patch (renamed from package/devel/valgrind/patches/130-mips_fix_soft_float.patch)8
-rw-r--r--package/devel/valgrind/patches/130-fix_arm_arch_detection.patch17
-rw-r--r--package/devel/valgrind/patches/200-musl_fix.patch24
-rw-r--r--package/kernel/mwlwifi/Makefile4
-rw-r--r--package/kernel/mwlwifi/patches/100-drop_old_api.patch92
-rw-r--r--package/kernel/mwlwifi/patches/110-api_sync.patch267
-rw-r--r--package/libs/mbedtls/Makefile6
-rw-r--r--package/libs/mbedtls/patches/001-Fixes_missing_dependency_in_ssl.patch21
-rw-r--r--package/libs/mbedtls/patches/200-config.patch53
-rw-r--r--package/libs/polarssl/Makefile8
-rw-r--r--package/libs/polarssl/patches/100-disable_sslv3.patch12
-rw-r--r--package/network/config/netifd/Makefile4
-rwxr-xr-xpackage/network/config/netifd/files/lib/netifd/proto/dhcp.sh6
-rw-r--r--package/network/services/igmpproxy/Makefile2
-rw-r--r--package/network/services/igmpproxy/files/igmpproxy.config1
-rw-r--r--package/network/services/igmpproxy/files/igmpproxy.init24
-rw-r--r--package/network/utils/iftop/Makefile2
-rw-r--r--package/network/utils/iftop/patches/110-fix-mac-display.patch67
-rw-r--r--package/system/ubox/Makefile6
-rw-r--r--package/system/ubox/files/log.init2
-rw-r--r--target/linux/archs38/generic/profiles/00-default.mk2
-rw-r--r--target/linux/archs38/generic/profiles/02-axs103.mk2
-rw-r--r--target/linux/bcm53xx/base-files/etc/uci-defaults/09_fix_crc2
-rw-r--r--target/linux/bcm53xx/config-4.411
-rw-r--r--target/linux/bcm53xx/image/Makefile39
-rw-r--r--target/linux/bcm53xx/image/ubinize.cfg24
-rw-r--r--target/linux/bcm53xx/patches-4.4/039-ARM-dts-BCM5301x-Add-RNG-Device-Tree-node.patch27
-rw-r--r--target/linux/bcm53xx/patches-4.4/040-ARM-dts-BCM5301x-Add-BCM953012ER-board.patch139
-rw-r--r--target/linux/bcm53xx/patches-4.4/041-0001-ARM-BCM5301X-Specify-NAND-chip-select-and-ECC-in-sep.patch65
-rw-r--r--target/linux/bcm53xx/patches-4.4/041-0002-ARM-BCM5301X-Fix-NAND-ECC-parameters-for-D-Link-DIR-.patch49
-rw-r--r--target/linux/bcm53xx/patches-4.4/081-0003-USB-bcma-use-simpler-devm-helper-for-getting-vcc-GPI.patch34
-rw-r--r--target/linux/bcm53xx/patches-4.4/089-0001-phy-bcm-ns-usb2-new-driver-for-USB-2.0-PHY-on-Norths.patch270
-rw-r--r--target/linux/bcm53xx/patches-4.4/089-0002-phy-bcm-ns-usb2-checking-the-wrong-variable.patch32
-rw-r--r--target/linux/bcm53xx/patches-4.4/101-use-part-parser.patch12
-rw-r--r--target/linux/bcm53xx/patches-4.4/197-USB-bcma-add-USB-3.0-support.patch6
-rw-r--r--target/linux/bcm53xx/patches-4.4/306-ARM-BCM5301X-Add-DT-for-Netgear-R8500.patch2
-rw-r--r--target/linux/bcm53xx/patches-4.4/360-ARM-BCM5301X-Fix-NAND-flash-parameters-for-D-Link-DI.patch39
-rw-r--r--target/linux/bcm53xx/patches-4.4/810-USB-bcma-use-simpler-devm_gpiod_get.patch24
-rw-r--r--toolchain/binutils/Config.in5
-rw-r--r--toolchain/binutils/Config.version4
-rw-r--r--toolchain/binutils/Makefile4
-rw-r--r--toolchain/binutils/patches/2.26.1/300-001_ld_makefile_patch.patch22
-rw-r--r--toolchain/binutils/patches/2.26.1/300-012_check_ldrunpath_length.patch20
-rw-r--r--toolchain/binutils/patches/2.26.1/400-mips_no_dynamic_linking_sym.patch18
-rw-r--r--toolchain/binutils/patches/2.26.1/500-Change-default-emulation-for-mips64-linux.patch37
-rw-r--r--tools/isl/Makefile4
-rw-r--r--tools/padjffs2/src/padjffs2.c20
51 files changed, 958 insertions, 638 deletions
diff --git a/package/devel/strace/Makefile b/package/devel/strace/Makefile
index df560fd1b7..6d9a7be534 100644
--- a/package/devel/strace/Makefile
+++ b/package/devel/strace/Makefile
@@ -10,9 +10,9 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=strace
-PKG_VERSION:=4.11
-PKG_RELEASE:=2
-PKG_MD5SUM:=a15d2555a7febb56d00c6e1a51c655dc
+PKG_VERSION:=4.12
+PKG_RELEASE:=1
+PKG_MD5SUM:=efb8611fc332e71ec419c53f59faa93e
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@SF/$(PKG_NAME)
diff --git a/package/devel/valgrind/Makefile b/package/devel/valgrind/Makefile
index 6a576a24d0..04d06d91a6 100644
--- a/package/devel/valgrind/Makefile
+++ b/package/devel/valgrind/Makefile
@@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=valgrind
-PKG_VERSION:=3.10.1
+PKG_VERSION:=3.11.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://valgrind.org/downloads/
-PKG_MD5SUM:=60ddae962bc79e7c95cfc4667245707f
+PKG_MD5SUM:=6c396271a8c1ddd5a6fb9abe714ea1e8a86fce85b30ab26b4266aeb4c2413b42
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=GPL-2.0+
@@ -22,6 +22,7 @@ PKG_FIXUP = autoreconf
PKG_INSTALL := 1
PKG_BUILD_PARALLEL := 1
PKG_USE_MIPS16:=0
+PKG_SSP:=0
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/kernel.mk
diff --git a/package/devel/valgrind/patches/100-fix_configure_check.patch b/package/devel/valgrind/patches/100-fix_configure_check.patch
index 87ef3b39fc..48477a3863 100644
--- a/package/devel/valgrind/patches/100-fix_configure_check.patch
+++ b/package/devel/valgrind/patches/100-fix_configure_check.patch
@@ -1,6 +1,6 @@
--- a/configure.ac
+++ b/configure.ac
-@@ -300,7 +300,7 @@ case "${host_os}" in
+@@ -328,7 +328,7 @@ case "${host_os}" in
# Ok, this is linux. Check the kernel version
AC_MSG_CHECKING([for the kernel version])
@@ -8,4 +8,4 @@
+ kernel=${UNAME_R:-`uname -r`}
case "${kernel}" in
- 2.6.*|3.*)
+ 0.*|1.*|2.0.*|2.1.*|2.2.*|2.3.*|2.4.*|2.5.*)
diff --git a/package/devel/valgrind/patches/120-Fix-configure-for-Linux-kernel-4.0-rc1.patch b/package/devel/valgrind/patches/120-Fix-configure-for-Linux-kernel-4.0-rc1.patch
deleted file mode 100644
index b833f18946..0000000000
--- a/package/devel/valgrind/patches/120-Fix-configure-for-Linux-kernel-4.0-rc1.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From bf803555d10b5b4c9223b24bf13845ee88d8f3b5 Mon Sep 17 00:00:00 2001
-From: cborntra <cborntra@a5019735-40e9-0310-863c-91ae7b9d1cf9>
-Date: Mon, 23 Feb 2015 20:19:03 +0000
-Subject: [PATCH] Fix configure for Linux kernel >= 4.0-rc1 In addition raise
- the minimal Linux version to 2.6 as there is almost no test coverage for 2.4
- and 2.6 was released in 2003.
-
-git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14955 a5019735-40e9-0310-863c-91ae7b9d1cf9
----
- NEWS | 3 +++
- configure.ac | 18 ++++++------------
- 2 files changed, 9 insertions(+), 12 deletions(-)
-
---- a/configure.ac
-+++ b/configure.ac
-@@ -303,20 +303,14 @@ case "${host_os}" in
- kernel=${UNAME_R:-`uname -r`}
-
- case "${kernel}" in
-- 2.6.*|3.*)
-- AC_MSG_RESULT([2.6.x/3.x family (${kernel})])
-- AC_DEFINE([KERNEL_2_6], 1, [Define to 1 if you're using Linux 2.6.x or Linux 3.x])
-- ;;
--
-- 2.4.*)
-- AC_MSG_RESULT([2.4 family (${kernel})])
-- AC_DEFINE([KERNEL_2_4], 1, [Define to 1 if you're using Linux 2.4.x])
-- ;;
--
-- *)
-+ 0.*|1.*|2.0.*|2.1.*|2.2.*|2.3.*|2.4.*|2.5.*)
- AC_MSG_RESULT([unsupported (${kernel})])
-- AC_MSG_ERROR([Valgrind works on kernels 2.4, 2.6])
-+ AC_MSG_ERROR([Valgrind needs a Linux kernel >= 2.6])
- ;;
-+
-+ *)
-+ AC_MSG_RESULT([2.6 or later (${kernel})])
-+ ;;
- esac
-
- ;;
diff --git a/package/devel/valgrind/patches/130-mips_fix_soft_float.patch b/package/devel/valgrind/patches/120-mips_fix_soft_float.patch
index e1d387c5a8..1cf5aeca02 100644
--- a/package/devel/valgrind/patches/130-mips_fix_soft_float.patch
+++ b/package/devel/valgrind/patches/120-mips_fix_soft_float.patch
@@ -1,6 +1,6 @@
--- a/VEX/priv/guest_mips_helpers.c
+++ b/VEX/priv/guest_mips_helpers.c
-@@ -1189,6 +1189,7 @@ extern UInt mips_dirtyhelper_calculate_F
+@@ -1201,6 +1201,7 @@ extern UInt mips_dirtyhelper_calculate_F
flt_op inst )
{
UInt ret = 0;
@@ -8,7 +8,7 @@
#if defined(__mips__)
VexGuestMIPS32State* guest_state = (VexGuestMIPS32State*)gs;
UInt loFsVal, hiFsVal, loFtVal, hiFtVal;
-@@ -1308,6 +1309,7 @@ extern UInt mips_dirtyhelper_calculate_F
+@@ -1320,6 +1321,7 @@ extern UInt mips_dirtyhelper_calculate_F
break;
}
#endif
@@ -16,7 +16,7 @@
return ret;
}
-@@ -1317,6 +1319,7 @@ extern UInt mips_dirtyhelper_calculate_F
+@@ -1329,6 +1331,7 @@ extern UInt mips_dirtyhelper_calculate_F
flt_op inst )
{
UInt ret = 0;
@@ -24,7 +24,7 @@
#if defined(__mips__)
#if defined(VGA_mips32)
VexGuestMIPS32State* guest_state = (VexGuestMIPS32State*)gs;
-@@ -1427,6 +1430,7 @@ extern UInt mips_dirtyhelper_calculate_F
+@@ -1439,6 +1442,7 @@ extern UInt mips_dirtyhelper_calculate_F
break;
}
#endif
diff --git a/package/devel/valgrind/patches/130-fix_arm_arch_detection.patch b/package/devel/valgrind/patches/130-fix_arm_arch_detection.patch
new file mode 100644
index 0000000000..c8d203390c
--- /dev/null
+++ b/package/devel/valgrind/patches/130-fix_arm_arch_detection.patch
@@ -0,0 +1,17 @@
+Description: Fix FTBFS on armhf by correctly detecting the architecture
+Origin: vendor
+Bug-Debian: http://bugs.debian.org/730844
+Author: Alessandro Ghedini <ghedo@debian.org>
+Last-Update: 2013-11-30
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -234,7 +234,7 @@ case "${host_cpu}" in
+ ARCH_MAX="s390x"
+ ;;
+
+- armv7*)
++ arm*)
+ AC_MSG_RESULT([ok (${host_cpu})])
+ ARCH_MAX="arm"
+ ;;
diff --git a/package/devel/valgrind/patches/200-musl_fix.patch b/package/devel/valgrind/patches/200-musl_fix.patch
index e61e822b25..23d74e0caf 100644
--- a/package/devel/valgrind/patches/200-musl_fix.patch
+++ b/package/devel/valgrind/patches/200-musl_fix.patch
@@ -6,21 +6,21 @@
{
-# if !defined(__UCLIBC__) \
+# if !defined(__UCLIBC__) && defined(__GLIBC__) \
- && !defined(VGPV_arm_linux_android) && !defined(VGPV_x86_linux_android) \
- && !defined(VGPV_mips32_linux_android)
- extern void __libc_freeres(void);
+ && !defined(VGPV_arm_linux_android) \
+ && !defined(VGPV_x86_linux_android) \
+ && !defined(VGPV_mips32_linux_android) \
--- a/include/pub_tool_redir.h
+++ b/include/pub_tool_redir.h
-@@ -241,7 +241,7 @@
+@@ -242,7 +242,7 @@
/* --- Soname of the standard C library. --- */
- #if defined(VGO_linux)
+ #if defined(VGO_linux) || defined(VGO_solaris)
-# define VG_Z_LIBC_SONAME libcZdsoZa // libc.so*
+# define VG_Z_LIBC_SONAME libcZdZa // libc.*
#elif defined(VGO_darwin) && (DARWIN_VERS <= DARWIN_10_6)
# define VG_Z_LIBC_SONAME libSystemZdZaZddylib // libSystem.*.dylib
-@@ -273,7 +273,11 @@
+@@ -274,7 +274,11 @@
/* --- Soname of the pthreads library. --- */
#if defined(VGO_linux)
@@ -31,15 +31,15 @@
+# endif
#elif defined(VGO_darwin)
# define VG_Z_LIBPTHREAD_SONAME libSystemZdZaZddylib // libSystem.*.dylib
- #else
+ #elif defined(VGO_solaris)
--- a/configure.ac
+++ b/configure.ac
-@@ -1025,8 +1025,6 @@ case "${GLIBC_VERSION}" in
-
- *)
+@@ -1066,8 +1066,6 @@ case "${GLIBC_VERSION}" in
+ ;;
+ 2.0|2.1|*)
AC_MSG_RESULT([unsupported version ${GLIBC_VERSION}])
-- AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.19])
-- AC_MSG_ERROR([or Darwin or Bionic libc])
+- AC_MSG_ERROR([Valgrind requires glibc version 2.2 or later,])
+- AC_MSG_ERROR([Darwin libc, Bionic libc or Solaris libc])
;;
esac
diff --git a/package/kernel/mwlwifi/Makefile b/package/kernel/mwlwifi/Makefile
index 074104b913..880803e55e 100644
--- a/package/kernel/mwlwifi/Makefile
+++ b/package/kernel/mwlwifi/Makefile
@@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=mwlwifi
-PKG_VERSION:=10.3.0.17-20160324
+PKG_VERSION:=10.3.0.17-20160617
PKG_RELEASE=1
PKG_LICENSE:=ISC
@@ -17,7 +17,7 @@ PKG_LICENSE_FILES:=
PKG_SOURCE_URL:=https://github.com/kaloz/mwlwifi
PKG_SOURCE_PROTO:=git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=6988b67d9af987a7ba47f82cdaa6c9107e55ec3f
+PKG_SOURCE_VERSION:=b7aff3c2839b048407d716d1cb9326122ee401f8
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
PKG_MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
diff --git a/package/kernel/mwlwifi/patches/100-drop_old_api.patch b/package/kernel/mwlwifi/patches/100-drop_old_api.patch
deleted file mode 100644
index d2e149e9a2..0000000000
--- a/package/kernel/mwlwifi/patches/100-drop_old_api.patch
+++ /dev/null
@@ -1,92 +0,0 @@
---- a/main.c
-+++ b/main.c
-@@ -418,11 +418,7 @@ static void mwl_set_ht_caps(struct mwl_p
- band->ht_cap.cap |= IEEE80211_HT_CAP_SGI_20;
- band->ht_cap.cap |= IEEE80211_HT_CAP_SGI_40;
-
--#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0)
-- hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION;
--#else
- ieee80211_hw_set(hw, AMPDU_AGGREGATION);
--#endif
- band->ht_cap.ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K;
- band->ht_cap.ampdu_density = IEEE80211_HT_MPDU_DENSITY_4;
-
-@@ -524,29 +520,16 @@ static int mwl_wl_init(struct mwl_priv *
- hw->queues = SYSADPT_TX_WMM_QUEUES;
-
- /* Set rssi values to dBm */
--#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0)
-- hw->flags |= IEEE80211_HW_SIGNAL_DBM | IEEE80211_HW_HAS_RATE_CONTROL;
--#else
- ieee80211_hw_set(hw, SIGNAL_DBM);
- ieee80211_hw_set(hw, HAS_RATE_CONTROL);
--#endif
-
- /* Ask mac80211 not to trigger PS mode
- * based on PM bit of incoming frames.
- */
--#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0)
-- hw->flags |= IEEE80211_HW_AP_LINK_PS;
--#else
- ieee80211_hw_set(hw, AP_LINK_PS);
--#endif
-
--#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0)
-- hw->flags |= IEEE80211_HW_SUPPORTS_PER_STA_GTK |
-- IEEE80211_HW_MFP_CAPABLE;
--#else
- ieee80211_hw_set(hw, SUPPORTS_PER_STA_GTK);
- ieee80211_hw_set(hw, MFP_CAPABLE);
--#endif
-
- hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN;
-
---- a/dev.h
-+++ b/dev.h
-@@ -484,10 +484,6 @@ static inline struct mwl_sta *mwl_dev_ge
- return (struct mwl_sta *)&sta->drv_priv;
- }
-
--#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 0)
--#define ether_addr_copy(dst, src) memcpy(dst, src, ETH_ALEN)
--#endif
--
- /* Defined in mac80211.c. */
- extern const struct ieee80211_ops mwl_mac80211_ops;
-
---- a/mac80211.c
-+++ b/mac80211.c
-@@ -572,19 +572,11 @@ static int mwl_mac80211_get_survey(struc
- return 0;
- }
-
--#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0)
--static int mwl_mac80211_ampdu_action(struct ieee80211_hw *hw,
-- struct ieee80211_vif *vif,
-- enum ieee80211_ampdu_mlme_action action,
-- struct ieee80211_sta *sta,
-- u16 tid, u16 *ssn, u8 buf_size)
--#else
- static int mwl_mac80211_ampdu_action(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif,
- enum ieee80211_ampdu_mlme_action action,
- struct ieee80211_sta *sta,
- u16 tid, u16 *ssn, u8 buf_size, bool amsdu)
--#endif
- {
- int rc = 0;
- struct mwl_priv *priv = hw->priv;
---- a/rx.c
-+++ b/rx.c
-@@ -232,10 +232,8 @@ static inline void mwl_rx_prepare_status
- status->flag |= RX_FLAG_VHT;
- if (bw == RX_RATE_INFO_HT40)
- status->flag |= RX_FLAG_40MHZ;
--#if LINUX_VERSION_CODE > KERNEL_VERSION(3, 18, 0)
- if (bw == RX_RATE_INFO_HT80)
- status->vht_flag |= RX_VHT_FLAG_80MHZ;
--#endif
- if (gi == RX_RATE_INFO_SHORT_INTERVAL)
- status->flag |= RX_FLAG_SHORT_GI;
- status->vht_nss = (nss + 1);
diff --git a/package/kernel/mwlwifi/patches/110-api_sync.patch b/package/kernel/mwlwifi/patches/110-api_sync.patch
deleted file mode 100644
index 920cb8cd66..0000000000
--- a/package/kernel/mwlwifi/patches/110-api_sync.patch
+++ /dev/null
@@ -1,267 +0,0 @@
---- a/mac80211.c
-+++ b/mac80211.c
-@@ -260,12 +260,12 @@ static int mwl_mac80211_config(struct ie
- if (changed & IEEE80211_CONF_CHANGE_CHANNEL) {
- int rate = 0;
-
-- if (conf->chandef.chan->band == IEEE80211_BAND_2GHZ) {
-+ if (conf->chandef.chan->band == NL80211_BAND_2GHZ) {
- mwl_fwcmd_set_apmode(hw, AP_MODE_2_4GHZ_11AC_MIXED);
- mwl_fwcmd_set_linkadapt_cs_mode(hw,
- LINK_CS_STATE_CONSERV);
- rate = mwl_rates_24[0].hw_value;
-- } else if (conf->chandef.chan->band == IEEE80211_BAND_5GHZ) {
-+ } else if (conf->chandef.chan->band == NL80211_BAND_5GHZ) {
- mwl_fwcmd_set_apmode(hw, AP_MODE_11AC);
- mwl_fwcmd_set_linkadapt_cs_mode(hw,
- LINK_CS_STATE_AUTO);
-@@ -333,7 +333,7 @@ static void mwl_mac80211_bss_info_change
- if (idx)
- idx--;
-
-- if (hw->conf.chandef.chan->band == IEEE80211_BAND_2GHZ)
-+ if (hw->conf.chandef.chan->band == NL80211_BAND_2GHZ)
- rate = mwl_rates_24[idx].hw_value;
- else
- rate = mwl_rates_50[idx].hw_value;
-@@ -600,10 +600,13 @@ static int mwl_mac80211_get_survey(struc
-
- static int mwl_mac80211_ampdu_action(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif,
-- enum ieee80211_ampdu_mlme_action action,
-- struct ieee80211_sta *sta,
-- u16 tid, u16 *ssn, u8 buf_size, bool amsdu)
-+ struct ieee80211_ampdu_params *params)
- {
-+ enum ieee80211_ampdu_mlme_action action = params->action;
-+ struct ieee80211_sta *sta = params->sta;
-+ u16 tid = params->tid;
-+ u16 *ssn = &params->ssn;
-+ u8 buf_size = params->buf_size;
- int rc = 0;
- struct mwl_priv *priv = hw->priv;
- struct mwl_ampdu_stream *stream;
---- a/fwcmd.c
-+++ b/fwcmd.c
-@@ -730,9 +730,9 @@ static int mwl_fwcmd_set_country_code(st
- bool enable = false;
-
- if (b_inf->ie_country_ptr) {
-- if (bss_conf->chandef.chan->band == IEEE80211_BAND_2GHZ)
-+ if (bss_conf->chandef.chan->band == NL80211_BAND_2GHZ)
- a_band = false;
-- else if (bss_conf->chandef.chan->band == IEEE80211_BAND_5GHZ)
-+ else if (bss_conf->chandef.chan->band == NL80211_BAND_5GHZ)
- a_band = true;
- else
- return -EINVAL;
-@@ -1075,9 +1075,9 @@ int mwl_fwcmd_max_tx_power(struct ieee80
- break;
- }
-
-- if (channel->band == IEEE80211_BAND_2GHZ)
-+ if (channel->band == NL80211_BAND_2GHZ)
- band = FREQ_BAND_2DOT4GHZ;
-- else if (channel->band == IEEE80211_BAND_5GHZ)
-+ else if (channel->band == NL80211_BAND_5GHZ)
- band = FREQ_BAND_5GHZ;
-
- switch (conf->chandef.width) {
-@@ -1161,9 +1161,9 @@ int mwl_fwcmd_tx_power(struct ieee80211_
- break;
- }
-
-- if (channel->band == IEEE80211_BAND_2GHZ)
-+ if (channel->band == NL80211_BAND_2GHZ)
- band = FREQ_BAND_2DOT4GHZ;
-- else if (channel->band == IEEE80211_BAND_5GHZ)
-+ else if (channel->band == NL80211_BAND_5GHZ)
- band = FREQ_BAND_5GHZ;
-
- switch (conf->chandef.width) {
-@@ -1354,9 +1354,9 @@ int mwl_fwcmd_set_rf_channel(struct ieee
- pcmd->action = cpu_to_le16(WL_SET);
- pcmd->curr_chnl = channel->hw_value;
-
-- if (channel->band == IEEE80211_BAND_2GHZ) {
-+ if (channel->band == NL80211_BAND_2GHZ) {
- freq_band = FREQ_BAND_2DOT4GHZ;
-- } else if (channel->band == IEEE80211_BAND_5GHZ) {
-+ } else if (channel->band == NL80211_BAND_5GHZ) {
- freq_band = FREQ_BAND_5GHZ;
- } else {
- mutex_unlock(&priv->fwcmd_mutex);
-@@ -1923,10 +1923,10 @@ int mwl_fwcmd_set_new_stn_add(struct iee
- }
- ether_addr_copy(pcmd->mac_addr, sta->addr);
-
-- if (hw->conf.chandef.chan->band == IEEE80211_BAND_2GHZ)
-- rates = sta->supp_rates[IEEE80211_BAND_2GHZ];
-+ if (hw->conf.chandef.chan->band == NL80211_BAND_2GHZ)
-+ rates = sta->supp_rates[NL80211_BAND_2GHZ];
- else
-- rates = sta->supp_rates[IEEE80211_BAND_5GHZ] << 5;
-+ rates = sta->supp_rates[NL80211_BAND_5GHZ] << 5;
- pcmd->peer_info.legacy_rate_bitmap = cpu_to_le32(rates);
-
- if (sta->ht_cap.ht_supported) {
-@@ -2097,9 +2097,9 @@ int mwl_fwcmd_set_switch_channel(struct
- if (priv->csa_active)
- return 0;
-
-- if (channel->band == IEEE80211_BAND_2GHZ)
-+ if (channel->band == NL80211_BAND_2GHZ)
- freq_band = FREQ_BAND_2DOT4GHZ;
-- else if (channel->band == IEEE80211_BAND_5GHZ)
-+ else if (channel->band == NL80211_BAND_5GHZ)
- freq_band = FREQ_BAND_5GHZ;
- else
- return -EINVAL;
---- a/main.c
-+++ b/main.c
-@@ -63,20 +63,20 @@ static struct mwl_chip_info mwl_chip_tbl
- };
-
- static const struct ieee80211_channel mwl_channels_24[] = {
-- { .band = IEEE80211_BAND_2GHZ, .center_freq = 2412, .hw_value = 1, },
-- { .band = IEEE80211_BAND_2GHZ, .center_freq = 2417, .hw_value = 2, },
-- { .band = IEEE80211_BAND_2GHZ, .center_freq = 2422, .hw_value = 3, },
-- { .band = IEEE80211_BAND_2GHZ, .center_freq = 2427, .hw_value = 4, },
-- { .band = IEEE80211_BAND_2GHZ, .center_freq = 2432, .hw_value = 5, },
-- { .band = IEEE80211_BAND_2GHZ, .center_freq = 2437, .hw_value = 6, },
-- { .band = IEEE80211_BAND_2GHZ, .center_freq = 2442, .hw_value = 7, },
-- { .band = IEEE80211_BAND_2GHZ, .center_freq = 2447, .hw_value = 8, },
-- { .band = IEEE80211_BAND_2GHZ, .center_freq = 2452, .hw_value = 9, },
-- { .band = IEEE80211_BAND_2GHZ, .center_freq = 2457, .hw_value = 10, },
-- { .band = IEEE80211_BAND_2GHZ, .center_freq = 2462, .hw_value = 11, },
-- { .band = IEEE80211_BAND_2GHZ, .center_freq = 2467, .hw_value = 12, },
-- { .band = IEEE80211_BAND_2GHZ, .center_freq = 2472, .hw_value = 13, },
-- { .band = IEEE80211_BAND_2GHZ, .center_freq = 2484, .hw_value = 14, },
-+ { .band = NL80211_BAND_2GHZ, .center_freq = 2412, .hw_value = 1, },
-+ { .band = NL80211_BAND_2GHZ, .center_freq = 2417, .hw_value = 2, },
-+ { .band = NL80211_BAND_2GHZ, .center_freq = 2422, .hw_value = 3, },
-+ { .band = NL80211_BAND_2GHZ, .center_freq = 2427, .hw_value = 4, },
-+ { .band = NL80211_BAND_2GHZ, .center_freq = 2432, .hw_value = 5, },
-+ { .band = NL80211_BAND_2GHZ, .center_freq = 2437, .hw_value = 6, },
-+ { .band = NL80211_BAND_2GHZ, .center_freq = 2442, .hw_value = 7, },
-+ { .band = NL80211_BAND_2GHZ, .center_freq = 2447, .hw_value = 8, },
-+ { .band = NL80211_BAND_2GHZ, .center_freq = 2452, .hw_value = 9, },
-+ { .band = NL80211_BAND_2GHZ, .center_freq = 2457, .hw_value = 10, },
-+ { .band = NL80211_BAND_2GHZ, .center_freq = 2462, .hw_value = 11, },
-+ { .band = NL80211_BAND_2GHZ, .center_freq = 2467, .hw_value = 12, },
-+ { .band = NL80211_BAND_2GHZ, .center_freq = 2472, .hw_value = 13, },
-+ { .band = NL80211_BAND_2GHZ, .center_freq = 2484, .hw_value = 14, },
- };
-
- static const struct ieee80211_rate mwl_rates_24[] = {
-@@ -96,30 +96,30 @@ static const struct ieee80211_rate mwl_r
- };
-
- static const struct ieee80211_channel mwl_channels_50[] = {
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5180, .hw_value = 36, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5200, .hw_value = 40, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5220, .hw_value = 44, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5240, .hw_value = 48, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5260, .hw_value = 52, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5280, .hw_value = 56, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5300, .hw_value = 60, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5320, .hw_value = 64, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5500, .hw_value = 100, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5520, .hw_value = 104, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5540, .hw_value = 108, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5560, .hw_value = 112, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5580, .hw_value = 116, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5600, .hw_value = 120, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5620, .hw_value = 124, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5640, .hw_value = 128, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5660, .hw_value = 132, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5680, .hw_value = 136, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5700, .hw_value = 140, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5720, .hw_value = 144, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5745, .hw_value = 149, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5765, .hw_value = 153, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5785, .hw_value = 157, },
-- { .band = IEEE80211_BAND_5GHZ, .center_freq = 5805, .hw_value = 161, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5180, .hw_value = 36, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5200, .hw_value = 40, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5220, .hw_value = 44, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5240, .hw_value = 48, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5260, .hw_value = 52, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5280, .hw_value = 56, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5300, .hw_value = 60, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5320, .hw_value = 64, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5500, .hw_value = 100, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5520, .hw_value = 104, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5540, .hw_value = 108, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5560, .hw_value = 112, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5580, .hw_value = 116, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5600, .hw_value = 120, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5620, .hw_value = 124, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5640, .hw_value = 128, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5660, .hw_value = 132, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5680, .hw_value = 136, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5700, .hw_value = 140, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5720, .hw_value = 144, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5745, .hw_value = 149, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5765, .hw_value = 153, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5785, .hw_value = 157, },
-+ { .band = NL80211_BAND_5GHZ, .center_freq = 5805, .hw_value = 161, },
- };
-
- static const struct ieee80211_rate mwl_rates_50[] = {
-@@ -478,7 +478,7 @@ static void mwl_set_caps(struct mwl_priv
- BUILD_BUG_ON(sizeof(priv->rates_24) != sizeof(mwl_rates_24));
- memcpy(priv->rates_24, mwl_rates_24, sizeof(mwl_rates_24));
-
-- priv->band_24.band = IEEE80211_BAND_2GHZ;
-+ priv->band_24.band = NL80211_BAND_2GHZ;
- priv->band_24.channels = priv->channels_24;
- priv->band_24.n_channels = ARRAY_SIZE(mwl_channels_24);
- priv->band_24.bitrates = priv->rates_24;
-@@ -487,7 +487,7 @@ static void mwl_set_caps(struct mwl_priv
- mwl_set_ht_caps(priv, &priv->band_24);
- mwl_set_vht_caps(priv, &priv->band_24);
-
-- hw->wiphy->bands[IEEE80211_BAND_2GHZ] = &priv->band_24;
-+ hw->wiphy->bands[NL80211_BAND_2GHZ] = &priv->band_24;
- }
-
- /* set up band information for 5G */
-@@ -500,7 +500,7 @@ static void mwl_set_caps(struct mwl_priv
- BUILD_BUG_ON(sizeof(priv->rates_50) != sizeof(mwl_rates_50));
- memcpy(priv->rates_50, mwl_rates_50, sizeof(mwl_rates_50));
-
-- priv->band_50.band = IEEE80211_BAND_5GHZ;
-+ priv->band_50.band = NL80211_BAND_5GHZ;
- priv->band_50.channels = priv->channels_50;
- priv->band_50.n_channels = ARRAY_SIZE(mwl_channels_50);
- priv->band_50.bitrates = priv->rates_50;
-@@ -509,7 +509,7 @@ static void mwl_set_caps(struct mwl_priv
- mwl_set_ht_caps(priv, &priv->band_50);
- mwl_set_vht_caps(priv, &priv->band_50);
-
-- hw->wiphy->bands[IEEE80211_BAND_5GHZ] = &priv->band_50;
-+ hw->wiphy->bands[NL80211_BAND_5GHZ] = &priv->band_50;
- }
- }
-
---- a/rx.c
-+++ b/rx.c
-@@ -243,7 +243,7 @@ static inline void mwl_rx_prepare_status
- status->rate_idx = rt;
-
- if (pdesc->channel > BAND_24_CHANNEL_NUM) {
-- status->band = IEEE80211_BAND_5GHZ;
-+ status->band = NL80211_BAND_5GHZ;
- if ((!(status->flag & RX_FLAG_HT)) &&
- (!(status->flag & RX_FLAG_VHT))) {
- status->rate_idx -= 5;
-@@ -251,7 +251,7 @@ static inline void mwl_rx_prepare_status
- status->rate_idx = BAND_50_RATE_NUM - 1;
- }
- } else {
-- status->band = IEEE80211_BAND_2GHZ;
-+ status->band = NL80211_BAND_2GHZ;
- if ((!(status->flag & RX_FLAG_HT)) &&
- (!(status->flag & RX_FLAG_VHT))) {
- if (status->rate_idx >= BAND_24_RATE_NUM)
diff --git a/package/libs/mbedtls/Makefile b/package/libs/mbedtls/Makefile
index 13299cf273..816f47004a 100644
--- a/package/libs/mbedtls/Makefile
+++ b/package/libs/mbedtls/Makefile
@@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=mbedtls
-PKG_VERSION:=2.2.1
-PKG_RELEASE:=1
+PKG_VERSION:=2.3.0
+PKG_RELEASE:=2
PKG_USE_MIPS16:=0
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-gpl.tgz
PKG_SOURCE_URL:=https://tls.mbed.org/download/
-PKG_MD5SUM:=bb1bffa3ac5ab143be2aae3d45a7a92b36112888ef465024d83724865fe62974
+PKG_MD5SUM:=21237014f779bde70b2d71399cc1ea53365eb7f10cdd74a13ee6329a1910cb49
PKG_BUILD_PARALLEL:=1
PKG_LICENSE:=GPL-2.0+
diff --git a/package/libs/mbedtls/patches/001-Fixes_missing_dependency_in_ssl.patch b/package/libs/mbedtls/patches/001-Fixes_missing_dependency_in_ssl.patch
new file mode 100644
index 0000000000..0090885c0d
--- /dev/null
+++ b/package/libs/mbedtls/patches/001-Fixes_missing_dependency_in_ssl.patch
@@ -0,0 +1,21 @@
+From 7247f99b3e068a2b90b7776a2cdd438fddb7a38b Mon Sep 17 00:00:00 2001
+From: James Cowgill <james410@cowgill.org.uk>
+Date: Mon, 11 Jul 2016 13:57:05 +0100
+Subject: [PATCH] Fixes missing dependency in ss.h on platform.h
+
+Fixes #522 - 'mbedtls_time_t does not name a type in ssl.h'
+---
+ include/mbedtls/ssl.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/include/mbedtls/ssl.h
++++ b/include/mbedtls/ssl.h
+@@ -54,7 +54,7 @@
+ #endif
+
+ #if defined(MBEDTLS_HAVE_TIME)
+-#include <time.h>
++#include "platform.h"
+ #endif
+
+ /*
diff --git a/package/libs/mbedtls/patches/200-config.patch b/package/libs/mbedtls/patches/200-config.patch
index a3e393e402..e4118ff3ef 100644
--- a/package/libs/mbedtls/patches/200-config.patch
+++ b/package/libs/mbedtls/patches/200-config.patch
@@ -1,6 +1,6 @@
--- a/include/mbedtls/config.h
+++ b/include/mbedtls/config.h
-@@ -183,7 +183,7 @@
+@@ -185,7 +185,7 @@
*
* Uncomment to get errors on using deprecated functions.
*/
@@ -9,7 +9,7 @@
/* \} name SECTION: System support */
-@@ -322,7 +322,7 @@
+@@ -341,7 +341,7 @@
*
* Enable Cipher Feedback mode (CFB) for symmetric ciphers.
*/
@@ -18,7 +18,7 @@
/**
* \def MBEDTLS_CIPHER_MODE_CTR
-@@ -416,13 +416,13 @@
+@@ -435,13 +435,13 @@
*
* Comment macros to disable the curve and functions for it
*/
@@ -36,7 +36,7 @@
#define MBEDTLS_ECP_DP_SECP256K1_ENABLED
#define MBEDTLS_ECP_DP_BP256R1_ENABLED
#define MBEDTLS_ECP_DP_BP384R1_ENABLED
-@@ -438,7 +438,7 @@
+@@ -457,7 +457,7 @@
*
* Comment this macro to disable NIST curves optimisation.
*/
@@ -45,7 +45,7 @@
/**
* \def MBEDTLS_ECDSA_DETERMINISTIC
-@@ -498,7 +498,7 @@
+@@ -517,7 +517,7 @@
* MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA
* MBEDTLS_TLS_DHE_PSK_WITH_RC4_128_SHA
*/
@@ -54,7 +54,7 @@
/**
* \def MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
-@@ -543,7 +543,7 @@
+@@ -562,7 +562,7 @@
* MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA
* MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA
*/
@@ -63,7 +63,7 @@
/**
* \def MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
-@@ -597,7 +597,7 @@
+@@ -616,7 +616,7 @@
* MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
* MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
*/
@@ -72,7 +72,7 @@
/**
* \def MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
-@@ -670,7 +670,7 @@
+@@ -689,7 +689,7 @@
* MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
* MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
*/
@@ -81,7 +81,7 @@
/**
* \def MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
-@@ -694,7 +694,7 @@
+@@ -713,7 +713,7 @@
* MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256
* MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384
*/
@@ -90,7 +90,7 @@
/**
* \def MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED
-@@ -832,7 +832,7 @@
+@@ -879,7 +879,7 @@
*
* Comment this macro to disable support for external private RSA keys.
*/
@@ -99,7 +99,7 @@
/**
* \def MBEDTLS_PKCS1_V15
-@@ -864,14 +864,14 @@
+@@ -911,14 +911,14 @@
* Uncomment this macro to disable the use of CRT in RSA.
*
*/
@@ -116,7 +116,7 @@
/**
* \def MBEDTLS_SHA256_SMALLER
-@@ -887,7 +887,7 @@
+@@ -934,7 +934,7 @@
*
* Uncomment to enable the smaller implementation of SHA256.
*/
@@ -125,16 +125,7 @@
/**
* \def MBEDTLS_SSL_AEAD_RANDOM_IV
-@@ -1060,7 +1060,7 @@
- *
- * Comment this macro to disable support for SSL 3.0
- */
--#define MBEDTLS_SSL_PROTO_SSL3
-+//#define MBEDTLS_SSL_PROTO_SSL3
-
- /**
- * \def MBEDTLS_SSL_PROTO_TLS1
-@@ -1224,7 +1224,7 @@
+@@ -1271,7 +1271,7 @@
*
* Comment this macro to disable support for truncated HMAC in SSL
*/
@@ -143,7 +134,7 @@
/**
* \def MBEDTLS_THREADING_ALT
-@@ -1460,7 +1460,7 @@
+@@ -1507,7 +1507,7 @@
* MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA
* MBEDTLS_TLS_PSK_WITH_RC4_128_SHA
*/
@@ -152,7 +143,7 @@
/**
* \def MBEDTLS_ASN1_PARSE_C
-@@ -1525,7 +1525,7 @@
+@@ -1572,7 +1572,7 @@
*
* Module: library/blowfish.c
*/
@@ -161,7 +152,7 @@
/**
* \def MBEDTLS_CAMELLIA_C
-@@ -1580,7 +1580,7 @@
+@@ -1627,7 +1627,7 @@
* MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256
* MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256
*/
@@ -170,7 +161,7 @@
/**
* \def MBEDTLS_CCM_C
-@@ -1594,7 +1594,7 @@
+@@ -1641,7 +1641,7 @@
* This module enables the AES-CCM ciphersuites, if other requisites are
* enabled as well.
*/
@@ -179,7 +170,7 @@
/**
* \def MBEDTLS_CERTS_C
-@@ -1606,7 +1606,7 @@
+@@ -1653,7 +1653,7 @@
*
* This module is used for testing (ssl_client/server).
*/
@@ -188,7 +179,7 @@
/**
* \def MBEDTLS_CIPHER_C
-@@ -1646,7 +1646,7 @@
+@@ -1693,7 +1693,7 @@
*
* This module provides debugging functions.
*/
@@ -197,7 +188,7 @@
/**
* \def MBEDTLS_DES_C
-@@ -1686,7 +1686,7 @@
+@@ -1733,7 +1733,7 @@
* This module is used by the following key exchanges:
* DHE-RSA, DHE-PSK
*/
@@ -206,7 +197,7 @@
/**
* \def MBEDTLS_ECDH_C
-@@ -2096,7 +2096,7 @@
+@@ -2151,7 +2151,7 @@
* Caller: library/mbedtls_md.c
*
*/
@@ -215,7 +206,7 @@
/**
* \def MBEDTLS_RSA_C
-@@ -2394,7 +2394,7 @@
+@@ -2461,7 +2461,7 @@
* Module: library/xtea.c
* Caller:
*/
diff --git a/package/libs/polarssl/Makefile b/package/libs/polarssl/Makefile
index 573966e33b..2f2029f9d8 100644
--- a/package/libs/polarssl/Makefile
+++ b/package/libs/polarssl/Makefile
@@ -9,13 +9,13 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=polarssl
SRC_PKG_NAME:=mbedtls
-PKG_VERSION:=1.3.16
-PKG_RELEASE:=2
+PKG_VERSION:=1.3.17
+PKG_RELEASE:=1
PKG_USE_MIPS16:=0
PKG_SOURCE:=$(SRC_PKG_NAME)-$(PKG_VERSION)-gpl.tgz
-PKG_SOURCE_URL:=https://polarssl.org/download/
-PKG_MD5SUM:=f413146c177c52d4ad8f48015e2fb21dd3a029ca30a2ea000cbc4f9bd092c933
+PKG_SOURCE_URL:=https://tls.mbed.org/download/
+PKG_MD5SUM:=f5beb43e850283915e3e0f8d37495eade3bfb5beedfb61e7b8da70d4c68edb82
PKG_BUILD_DIR:=$(BUILD_DIR)/$(SRC_PKG_NAME)-$(PKG_VERSION)
diff --git a/package/libs/polarssl/patches/100-disable_sslv3.patch b/package/libs/polarssl/patches/100-disable_sslv3.patch
deleted file mode 100644
index 56c6c4d235..0000000000
--- a/package/libs/polarssl/patches/100-disable_sslv3.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/include/polarssl/config.h
-+++ b/include/polarssl/config.h
-@@ -1011,8 +1011,8 @@
- * POLARSSL_SHA1_C
- *
- * Comment this macro to disable support for SSL 3.0
-- */
- #define POLARSSL_SSL_PROTO_SSL3
-+ */
-
- /**
- * \def POLARSSL_SSL_PROTO_TLS1
diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile
index 514eedd885..82fcb3e48e 100644
--- a/package/network/config/netifd/Makefile
+++ b/package/network/config/netifd/Makefile
@@ -1,13 +1,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=netifd
-PKG_VERSION:=2016-03-31
+PKG_VERSION:=2016-06-06
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(OPENWRT_GIT)/project/netifd.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=39d9ceeb96162a83a3f5fa63e6aaa1ccb38caa62
+PKG_SOURCE_VERSION:=99e6dc68bbac5a57a0ebca810a9dc36e38667821
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
# PKG_MIRROR_MD5SUM:=
diff --git a/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh b/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh
index 7f4af25329..abfdaaffdd 100755
--- a/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh
+++ b/package/network/config/netifd/files/lib/netifd/proto/dhcp.sh
@@ -54,10 +54,10 @@ proto_dhcp_setup() {
proto_run_command "$config" udhcpc \
-p /var/run/udhcpc-$iface.pid \
-s /lib/netifd/dhcp.script \
- -f -R -t 0 -i "$iface" \
+ -f -t 0 -i "$iface" \
${ipaddr:+-r $ipaddr} \
- ${hostname:+-H $hostname} \
- ${vendorid:+-V $vendorid} \
+ ${hostname:+-H "$hostname"} \
+ ${vendorid:+-V "$vendorid"} \
$clientid $broadcast $release $dhcpopts
}
diff --git a/package/network/services/igmpproxy/Makefile b/package/network/services/igmpproxy/Makefile
index 0ad85561c1..8d4da5ca9e 100644
--- a/package/network/services/igmpproxy/Makefile
+++ b/package/network/services/igmpproxy/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=igmpproxy
PKG_VERSION:=0.1
-PKG_RELEASE:=8
+PKG_RELEASE:=9
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/igmpproxy
diff --git a/package/network/services/igmpproxy/files/igmpproxy.config b/package/network/services/igmpproxy/files/igmpproxy.config
index d2906329d6..d89013ca98 100644
--- a/package/network/services/igmpproxy/files/igmpproxy.config
+++ b/package/network/services/igmpproxy/files/igmpproxy.config
@@ -1,5 +1,6 @@
config igmpproxy
option quickleave 1
+# option verbose [0-2]
config phyint wan
option network wan
diff --git a/package/network/services/igmpproxy/files/igmpproxy.init b/package/network/services/igmpproxy/files/igmpproxy.init
index d03f90f0c8..9e337221f1 100644
--- a/package/network/services/igmpproxy/files/igmpproxy.init
+++ b/package/network/services/igmpproxy/files/igmpproxy.init
@@ -6,24 +6,13 @@ USE_PROCD=1
PROG=/usr/sbin/igmpproxy
CONFIGFILE=/var/etc/igmpproxy.conf
-# igmpproxy supports both a debug mode and verbosity, which are very useful
-# when something isn't working.
-#
-# Debug mode will print everything to stdout instead of syslog. Generally
-# verbosity should NOT be set as it will quickly fill your syslog.
-#
-# Put any debug or verbosity options into IGMP_OPTS
-#
-# Examples:
-# OPTIONS="-d -v -v" - debug mode and very verbose, this will land in
-# stdout and not in syslog
-# OPTIONS="-v" - be verbose, this will write aditional information to syslog
-
-OPTIONS=""
-
igmp_header() {
- local quickleave
+ local quickleave verbose
config_get_bool quickleave "$1" quickleave 0
+ config_get verbose "$1" verbose 0
+
+ [ $verbose = "1" ] && logopts="-v"
+ [ $verbose = "2" ] && logopts="-v -v"
mkdir -p /var/etc
rm -f /var/etc/igmpproxy.conf
@@ -113,6 +102,7 @@ service_triggers() {
start_service() {
has_upstream=
netdevs=
+ logopts=
config_load igmpproxy
config_foreach igmp_header igmpproxy
@@ -121,7 +111,7 @@ start_service() {
procd_open_instance
procd_set_param command $PROG
- [ -n "$OPTIONS" ] && procd_append_param $OPTIONS
+ [ -n "$logopts" ] && procd_append_param command $logopts
procd_append_param command $CONFIGFILE
procd_set_param file $CONFIGFILE
procd_set_param netdev $netdevs
diff --git a/package/network/utils/iftop/Makefile b/package/network/utils/iftop/Makefile
index bd82f2df94..ef9657560e 100644
--- a/package/network/utils/iftop/Makefile
+++ b/package/network/utils/iftop/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=iftop
PKG_VERSION:=1.0pre4
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.ex-parrot.com/~pdw/iftop/download
diff --git a/package/network/utils/iftop/patches/110-fix-mac-display.patch b/package/network/utils/iftop/patches/110-fix-mac-display.patch
new file mode 100644
index 0000000000..5db53aaa52
--- /dev/null
+++ b/package/network/utils/iftop/patches/110-fix-mac-display.patch
@@ -0,0 +1,67 @@
+iftop: fix mac address display
+
+iftop would display portions of mac address with large ffffff prefixes.
+Make if_hw_addr type consistent.
+
+Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
+---
+ addrs_dlpi.c | 2 +-
+ addrs_ioctl.c | 2 +-
+ addrs_ioctl.h | 2 +-
+ iftop.c | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/addrs_dlpi.c b/addrs_dlpi.c
+index 188fef8..6c04ea1 100644
+--- a/addrs_dlpi.c
++++ b/addrs_dlpi.c
+@@ -50,7 +50,7 @@ extern char *strncat2(char *dest, char *src, int n);
+ */
+
+ int
+-get_addrs_dlpi(char *interface, char if_hw_addr[], struct in_addr *if_ip_addr)
++get_addrs_dlpi(char *interface, u_int8_t if_hw_addr[], struct in_addr *if_ip_addr)
+ {
+ int got_hw_addr = 0;
+ int got_ip_addr = 0;
+diff --git a/addrs_ioctl.c b/addrs_ioctl.c
+index 870c83b..7d01fb2 100644
+--- a/addrs_ioctl.c
++++ b/addrs_ioctl.c
+@@ -45,7 +45,7 @@
+ */
+
+ int
+-get_addrs_ioctl(char *interface, char if_hw_addr[], struct in_addr *if_ip_addr, struct in6_addr *if_ip6_addr)
++get_addrs_ioctl(char *interface, u_int8_t if_hw_addr[], struct in_addr *if_ip_addr, struct in6_addr *if_ip6_addr)
+ {
+ int s;
+ struct ifreq ifr = {};
+diff --git a/addrs_ioctl.h b/addrs_ioctl.h
+index f93a0b4..739de61 100644
+--- a/addrs_ioctl.h
++++ b/addrs_ioctl.h
+@@ -7,6 +7,6 @@
+ #define __ADDRS_IOCTL_H_
+
+ int
+-get_addrs_ioctl(char *interface, char if_hw_addr[], struct in_addr *if_ip_addr, struct in6_addr *if_ip6_addr);
++get_addrs_ioctl(char *interface, u_int8_t if_hw_addr[], struct in_addr *if_ip_addr, struct in6_addr *if_ip6_addr);
+
+ #endif /* __ADDRS_IOCTL_H_ */
+diff --git a/iftop.c b/iftop.c
+index a090dcf..f1b371a 100644
+--- a/iftop.c
++++ b/iftop.c
+@@ -55,7 +55,7 @@
+
+ /* ethernet address of interface. */
+ int have_hw_addr = 0;
+-char if_hw_addr[6];
++u_int8_t if_hw_addr[6];
+
+ /* IP address of interface */
+ int have_ip_addr = 0;
+--
+1.9.1
+
diff --git a/package/system/ubox/Makefile b/package/system/ubox/Makefile
index f9f1ac17f1..2f46f2975b 100644
--- a/package/system/ubox/Makefile
+++ b/package/system/ubox/Makefile
@@ -1,13 +1,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=ubox
-PKG_VERSION:=2016-03-07
+PKG_VERSION:=2016-07-19
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(OPENWRT_GIT)/project/ubox.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=fd4bb41ee7ab136d25609c2a917beea5d52b723b
+PKG_SOURCE_VERSION:=aead2c0cbffdda9b46d74a998a4c6aeef423b21a
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
CMAKE_INSTALL:=1
@@ -37,8 +37,10 @@ endef
define Package/ubox/install
$(INSTALL_DIR) $(1)/sbin $(1)/usr/sbin $(1)/lib/
+ $(INSTALL_DIR) $(1)/sbin $(1)/usr/sbin $(1)/lib/ $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/{kmodloader,validate_data} $(1)/sbin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/getrandom $(1)/usr/bin/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libvalidate.so $(1)/lib
$(LN) ../../sbin/kmodloader $(1)/usr/sbin/rmmod
diff --git a/package/system/ubox/files/log.init b/package/system/ubox/files/log.init
index 53c936e246..722dc20e90 100644
--- a/package/system/ubox/files/log.init
+++ b/package/system/ubox/files/log.init
@@ -35,7 +35,7 @@ start_service_daemon()
local log_buffer_size log_size
validate_log_daemon "${1}"
[ $log_buffer_size -eq 0 -a $log_size -gt 0 ] && log_buffer_size=$log_size
- [ $log_buffer_size -eq 0 ] && log_buffer_size=16
+ [ $log_buffer_size -eq 0 ] && log_buffer_size=64
procd_open_instance
procd_set_param command "/sbin/logd"
procd_append_param command -S "${log_buffer_size}"
diff --git a/target/linux/archs38/generic/profiles/00-default.mk b/target/linux/archs38/generic/profiles/00-default.mk
index 10edb88ff9..b0971080da 100644
--- a/target/linux/archs38/generic/profiles/00-default.mk
+++ b/target/linux/archs38/generic/profiles/00-default.mk
@@ -7,7 +7,7 @@
define Profile/Default
NAME:=Default Profile (all drivers)
- PACKAGES:= kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-mmc kmod-sdhci
+ PACKAGES:= kmod-usb-core kmod-usb-ohci kmod-mmc kmod-sdhci kmod-ath9k-htc wpad-mini
endef
define Profile/Default/Description
diff --git a/target/linux/archs38/generic/profiles/02-axs103.mk b/target/linux/archs38/generic/profiles/02-axs103.mk
index 4a8ea3a1db..156bef7d0a 100644
--- a/target/linux/archs38/generic/profiles/02-axs103.mk
+++ b/target/linux/archs38/generic/profiles/02-axs103.mk
@@ -7,7 +7,7 @@
define Profile/axs103
NAME:=Synopsys DesignWare AXS103
- PACKAGES:= kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-mmc kmod-sdhci
+ PACKAGES:= kmod-usb-core kmod-usb-ohci kmod-mmc kmod-sdhci kmod-ath9k-htc wpad-mini
endef
define Profile/axs103/Description
diff --git a/target/linux/bcm53xx/base-files/etc/uci-defaults/09_fix_crc b/target/linux/bcm53xx/base-files/etc/uci-defaults/09_fix_crc
index 7056017107..16793ffa6b 100644
--- a/target/linux/bcm53xx/base-files/etc/uci-defaults/09_fix_crc
+++ b/target/linux/bcm53xx/base-files/etc/uci-defaults/09_fix_crc
@@ -3,5 +3,5 @@
kernel_size=$(sed -n 's/mtd[0-9]*: \([0-9a-f]*\).*"\(kernel\|linux\)".*/\1/p' /proc/mtd)
mtd ${kernel_size:+-c 0x$kernel_size} fixtrx firmware && exit 0
-mtd fixseama firmware && exit 0
+mtd ${kernel_size:+-c 0x$kernel_size} fixseama firmware && exit 0
exit 1
diff --git a/target/linux/bcm53xx/config-4.4 b/target/linux/bcm53xx/config-4.4
index 5611cfe0d4..b1580319e3 100644
--- a/target/linux/bcm53xx/config-4.4
+++ b/target/linux/bcm53xx/config-4.4
@@ -54,10 +54,6 @@ CONFIG_ARM_THUMB=y
CONFIG_ARM_VIRT_EXT=y
CONFIG_ATAGS=y
CONFIG_AUTO_ZRELADDR=y
-CONFIG_SWCONFIG_B53=y
-# CONFIG_SWCONFIG_B53_MMAP_DRIVER is not set
-# CONFIG_SWCONFIG_B53_PHY_DRIVER is not set
-CONFIG_SWCONFIG_B53_SRAB_DRIVER=y
CONFIG_BCM47XX_NVRAM=y
CONFIG_BCM47XX_SPROM=y
CONFIG_BCM47XX_WDT=y
@@ -200,8 +196,6 @@ CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_IRQ_WORK=y
-CONFIG_KERNEL_CAT=y
-# CONFIG_KERNEL_XZ is not set
CONFIG_LIBFDT=y
CONFIG_LOCK_SPIN_ON_OWNER=y
CONFIG_LZO_COMPRESS=y
@@ -259,6 +253,7 @@ CONFIG_PCI_DOMAINS_GENERIC=y
CONFIG_PERF_USE_VMALLOC=y
CONFIG_PGTABLE_LEVELS=2
CONFIG_PHYLIB=y
+# CONFIG_PHY_BCM_NS_USB2 is not set
CONFIG_PINCTRL=y
# CONFIG_PL310_ERRATA_588369 is not set
# CONFIG_PL310_ERRATA_727915 is not set
@@ -287,6 +282,10 @@ CONFIG_SPI_GPIO=y
CONFIG_SPI_MASTER=y
CONFIG_SRCU=y
CONFIG_SWCONFIG=y
+CONFIG_SWCONFIG_B53=y
+# CONFIG_SWCONFIG_B53_MMAP_DRIVER is not set
+# CONFIG_SWCONFIG_B53_PHY_DRIVER is not set
+CONFIG_SWCONFIG_B53_SRAB_DRIVER=y
CONFIG_SWIOTLB=y
CONFIG_SWP_EMULATE=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
diff --git a/target/linux/bcm53xx/image/Makefile b/target/linux/bcm53xx/image/Makefile
index 04e418d1e9..e067d4da5c 100644
--- a/target/linux/bcm53xx/image/Makefile
+++ b/target/linux/bcm53xx/image/Makefile
@@ -27,19 +27,16 @@ endef
define Build/lzma-d16
$(STAGING_DIR_HOST)/bin/lzma e $@ -d16 $(1) $@.new
- @mv $@.new $@
-endef
-
-define Build/mkfs/squashfs
- ( cd $(KDIR); $(STAGING_DIR_HOST)/bin/ubinize -p 128KiB -m 2048 -o $(KDIR)/root-block-0x20000-min-0x800.ubi ubinize.cfg )
+ mv $@.new $@
endef
define Build/trx-serial
$(STAGING_DIR_HOST)/bin/trx \
- -o $@ \
+ -o $@.new \
-m 33554432 \
-f $(word 1,$^) -a 1024 \
- -f $(KDIR)/root.squashfs -a 0x10000 -A $(KDIR)/fs_mark
+ -f $@ -a 0x10000 -A $(KDIR)/fs_mark
+ mv $@.new $@
endef
define Build/trx-nand
@@ -48,11 +45,12 @@ define Build/trx-nand
# root: UBI with one extra block containing UBI mark to trigger erasing
# rest of partition
$(STAGING_DIR_HOST)/bin/trx \
- -o $@ \
+ -o $@.new \
-m 33554432 \
-f $(word 1,$^) -a 0x20000 -b 0x400000 \
- -f $(KDIR)/root-block-0x20000-min-0x800.ubi \
+ -f $@ \
-A $(KDIR)/ubi_mark -a 0x20000
+ mv $@.new $@
endef
define Build/asus-trx
@@ -69,7 +67,7 @@ define Build/seama-nand
-m "type=firmware" \
-f $(word 1,$^) \
-b 0x400000 \
- -f $(KDIR)/root-block-0x20000-min-0x800.ubi \
+ -f $@ \
-f $(KDIR)/ubi_mark
# Seama container
$(STAGING_DIR_HOST)/bin/seama \
@@ -90,12 +88,15 @@ define Device/Default
KERNEL_NAME := zImage
IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1).$$(2)
IMAGES := trx
- IMAGE/trx := trx-nand
+ BLOCKSIZE := 128KiB
+ PAGESIZE := 2048
+ UBINIZE_OPTS :=
+ IMAGE/trx := append-ubi | trx-nand
endef
define Device/asus
IMAGES := trx
- IMAGE/trx := trx-nand | asus-trx
+ IMAGE/trx := append-ubi | trx-nand | asus-trx
endef
define AsusDevice
@@ -106,21 +107,13 @@ define AsusDevice
TARGET_DEVICES += asus-$(1)
endef
-define Device/linksys
- IMAGES := trx
- IMAGE/trx := trx-nand
-endef
-
define LinksysDevice
- define Device/linksys-$(1)
- $$(Device/linksys)
- endef
TARGET_DEVICES += linksys-$(1)
endef
define Device/dlink
IMAGES := bin
- IMAGE/bin := seama-nand
+ IMAGE/bin := append-ubi | seama-nand
endef
define DLinkDevice
@@ -133,7 +126,7 @@ endef
define Device/netgear
IMAGES := chk
- IMAGE/chk := trx-nand | netgear-chk
+ IMAGE/chk := append-ubi | trx-nand | netgear-chk
NETGEAR_REGION := 1
endef
@@ -162,7 +155,7 @@ endef
define Device/smartrg-sr400ac
IMAGES := trx
- IMAGE/trx := trx-serial
+ IMAGE/trx := append-rootfs | trx-serial
endef
TARGET_DEVICES += \
diff --git a/target/linux/bcm53xx/image/ubinize.cfg b/target/linux/bcm53xx/image/ubinize.cfg
deleted file mode 100644
index a4f2f09d9e..0000000000
--- a/target/linux/bcm53xx/image/ubinize.cfg
+++ /dev/null
@@ -1,24 +0,0 @@
-[rootfs]
-# Volume mode (other option is static)
-mode=ubi
-# Source image
-image=root.squashfs
-# Volume ID in UBI image
-vol_id=0
-# Allow for dynamic resize
-vol_type=dynamic
-# Volume name
-vol_name=rootfs
-
-[rootfs_data]
-# Volume mode (other option is static)
-mode=ubi
-# Volume ID in UBI image
-vol_id=1
-# Allow for dynamic resize
-vol_type=dynamic
-# Volume name
-vol_name=rootfs_data
-# Autoresize volume at first mount
-vol_flags=autoresize
-vol_size=1MiB
diff --git a/target/linux/bcm53xx/patches-4.4/039-ARM-dts-BCM5301x-Add-RNG-Device-Tree-node.patch b/target/linux/bcm53xx/patches-4.4/039-ARM-dts-BCM5301x-Add-RNG-Device-Tree-node.patch
new file mode 100644
index 0000000000..9b18ac6886
--- /dev/null
+++ b/target/linux/bcm53xx/patches-4.4/039-ARM-dts-BCM5301x-Add-RNG-Device-Tree-node.patch
@@ -0,0 +1,27 @@
+From 36e55669ebdef9eaf3f4ab4e82a07bb4b95a4813 Mon Sep 17 00:00:00 2001
+From: Florian Fainelli <f.fainelli@gmail.com>
+Date: Wed, 22 Jun 2016 17:27:03 -0700
+Subject: [PATCH] ARM: dts: BCM5301x: Add RNG Device Tree node
+
+Add the DT node for the random number generator peripheral.
+
+Acked-by: Scott Branden <scott.branden@broadcom.com>
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ arch/arm/boot/dts/bcm5301x.dtsi | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/arch/arm/boot/dts/bcm5301x.dtsi
++++ b/arch/arm/boot/dts/bcm5301x.dtsi
+@@ -302,6 +302,11 @@
+ /* ports are defined in board DTS */
+ };
+
++ rng: rng@18004000 {
++ compatible = "brcm,bcm5301x-rng";
++ reg = <0x18004000 0x14>;
++ };
++
+ nand: nand@18028000 {
+ compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1", "brcm,brcmnand";
+ reg = <0x18028000 0x600>, <0x1811a408 0x600>, <0x18028f00 0x20>;
diff --git a/target/linux/bcm53xx/patches-4.4/040-ARM-dts-BCM5301x-Add-BCM953012ER-board.patch b/target/linux/bcm53xx/patches-4.4/040-ARM-dts-BCM5301x-Add-BCM953012ER-board.patch
new file mode 100644
index 0000000000..dd24e2624d
--- /dev/null
+++ b/target/linux/bcm53xx/patches-4.4/040-ARM-dts-BCM5301x-Add-BCM953012ER-board.patch
@@ -0,0 +1,139 @@
+From f8c331bda6a90b239f600020eec1b0defe7249b5 Mon Sep 17 00:00:00 2001
+From: Florian Fainelli <f.fainelli@gmail.com>
+Date: Wed, 22 Jun 2016 17:00:35 -0700
+Subject: [PATCH] ARM: dts: BCM5301x: Add BCM953012ER board
+
+Add support for the Broadcom BCM953012 Enterprise Router reference
+board, enable the following peripherals:
+
+- UART0 (UART1 is not populated)
+- WPS and restart GPIO buttons
+- Ethernet switch w/ only two facing ports
+- NAND flash
+- SPI-NOR flash
+
+Acked-by: Jon Mason <jon.mason@broadcom.com>
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ arch/arm/boot/dts/Makefile | 1 +
+ arch/arm/boot/dts/bcm953012er.dts | 104 ++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 105 insertions(+)
+ create mode 100644 arch/arm/boot/dts/bcm953012er.dts
+
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -79,6 +79,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+ bcm47094-dlink-dir-885l.dtb \
+ bcm94708.dtb \
+ bcm94709.dtb \
++ bcm953012er.dtb \
+ bcm953012k.dtb
+ dtb-$(CONFIG_ARCH_BCM_63XX) += \
+ bcm963138dvt.dtb
+--- /dev/null
++++ b/arch/arm/boot/dts/bcm953012er.dts
+@@ -0,0 +1,104 @@
++/*
++ * BSD LICENSE
++ *
++ * Copyright(c) 2016 Broadcom. All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ *
++ * * Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * * Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in
++ * the documentation and/or other materials provided with the
++ * distribution.
++ * * Neither the name of Broadcom Corporation nor the names of its
++ * contributors may be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++ */
++
++/dts-v1/;
++
++#include "bcm4708.dtsi"
++#include "bcm5301x-nand-cs0-bch8.dtsi"
++
++/ {
++ model = "NorthStar Enterprise Router (BCM953012ER)";
++ compatible = "brcm,bcm953012er", "brcm,brcm53012", "brcm,bcm4708";
++
++ aliases {
++ serial0 = &uart0;
++ };
++
++ chosen {
++ stdout-path = "serial0:115200n8";
++ };
++
++ memory {
++ reg = <0x00000000 0x8000000>;
++ };
++
++ gpio-keys {
++ compatible = "gpio-keys";
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ wps {
++ label = "WPS";
++ linux,code = <KEY_WPS_BUTTON>;
++ gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
++ };
++
++ restart {
++ label = "Reset";
++ linux,code = <KEY_RESTART>;
++ gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
++ };
++ };
++};
++
++&uart0 {
++ status = "okay";
++};
++
++&spi_nor {
++ status = "okay";
++};
++
++&srab {
++ status = "okay";
++
++ ports {
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ port@0 {
++ reg = <0>;
++ label = "port0";
++ };
++
++ port@1 {
++ reg = <1>;
++ label = "port1";
++ };
++
++ port@5 {
++ reg = <5>;
++ label = "cpu";
++ ethernet = <&gmac0>;
++ };
++ };
++};
diff --git a/target/linux/bcm53xx/patches-4.4/041-0001-ARM-BCM5301X-Specify-NAND-chip-select-and-ECC-in-sep.patch b/target/linux/bcm53xx/patches-4.4/041-0001-ARM-BCM5301X-Specify-NAND-chip-select-and-ECC-in-sep.patch
new file mode 100644
index 0000000000..36e96fc700
--- /dev/null
+++ b/target/linux/bcm53xx/patches-4.4/041-0001-ARM-BCM5301X-Specify-NAND-chip-select-and-ECC-in-sep.patch
@@ -0,0 +1,65 @@
+From 8ab5f1fbd39c29125403678a0caf0a71046da361 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
+Date: Mon, 6 Jun 2016 09:43:49 +0200
+Subject: [PATCH 1/2] ARM: BCM5301X: Specify NAND chip select and ECC in
+ separated files
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Using separated file with common chip select parameters will allow us
+adding other ECC setups without code duplication.
+
+Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi | 16 +++++-----------
+ arch/arm/boot/dts/bcm5301x-nand-cs0.dtsi | 18 ++++++++++++++++++
+ 2 files changed, 23 insertions(+), 11 deletions(-)
+ create mode 100644 arch/arm/boot/dts/bcm5301x-nand-cs0.dtsi
+
+--- a/arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi
++++ b/arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi
+@@ -9,16 +9,10 @@
+ * Licensed under the GNU/GPL. See COPYING for details.
+ */
+
+-/ {
+- nand@18028000 {
+- nandcs@0 {
+- compatible = "brcm,nandcs";
+- reg = <0>;
+- #address-cells = <1>;
+- #size-cells = <1>;
++#include "bcm5301x-nand-cs0.dtsi"
+
+- nand-ecc-strength = <8>;
+- nand-ecc-step-size = <512>;
+- };
+- };
++&nandcs {
++ nand-ecc-algo = "bch";
++ nand-ecc-strength = <8>;
++ nand-ecc-step-size = <512>;
+ };
+--- /dev/null
++++ b/arch/arm/boot/dts/bcm5301x-nand-cs0.dtsi
+@@ -0,0 +1,18 @@
++/*
++ * Broadcom Northstar NAND.
++ *
++ * Copyright (C) 2015 Hauke Mehrtens <hauke@hauke-m.de>
++ *
++ * Licensed under the GNU/GPL. See COPYING for details.
++ */
++
++/ {
++ nand@18028000 {
++ nandcs: nandcs@0 {
++ compatible = "brcm,nandcs";
++ reg = <0>;
++ #address-cells = <1>;
++ #size-cells = <1>;
++ };
++ };
++};
diff --git a/target/linux/bcm53xx/patches-4.4/041-0002-ARM-BCM5301X-Fix-NAND-ECC-parameters-for-D-Link-DIR-.patch b/target/linux/bcm53xx/patches-4.4/041-0002-ARM-BCM5301X-Fix-NAND-ECC-parameters-for-D-Link-DIR-.patch
new file mode 100644
index 0000000000..07f0d4450f
--- /dev/null
+++ b/target/linux/bcm53xx/patches-4.4/041-0002-ARM-BCM5301X-Fix-NAND-ECC-parameters-for-D-Link-DIR-.patch
@@ -0,0 +1,49 @@
+From 70a0ae1c33572f012b734d4b574f38136c57f1a0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
+Date: Mon, 6 Jun 2016 09:43:50 +0200
+Subject: [PATCH 2/2] ARM: BCM5301X: Fix NAND ECC parameters for D-Link
+ DIR-885L
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This device uses BCH-1 instead of BCH-8. This fixes ECC errors and makes
+NAND usable with brcmnand.
+
+Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts | 2 +-
+ arch/arm/boot/dts/bcm5301x-nand-cs0-bch1.dtsi | 15 +++++++++++++++
+ 2 files changed, 16 insertions(+), 1 deletion(-)
+ create mode 100644 arch/arm/boot/dts/bcm5301x-nand-cs0-bch1.dtsi
+
+--- a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
++++ b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
+@@ -10,7 +10,7 @@
+ /dts-v1/;
+
+ #include "bcm4708.dtsi"
+-#include "bcm5301x-nand-cs0-bch8.dtsi"
++#include "bcm5301x-nand-cs0-bch1.dtsi"
+
+ / {
+ compatible = "dlink,dir-885l", "brcm,bcm47094", "brcm,bcm4708";
+--- /dev/null
++++ b/arch/arm/boot/dts/bcm5301x-nand-cs0-bch1.dtsi
+@@ -0,0 +1,15 @@
++/*
++ * Broadcom Northstar NAND.
++ *
++ * Copyright (C) 2016 Rafał Miłecki <rafal.milecki@gmail.com>
++ *
++ * Licensed under the ISC license.
++ */
++
++#include "bcm5301x-nand-cs0.dtsi"
++
++&nandcs {
++ nand-ecc-algo = "bch";
++ nand-ecc-strength = <1>;
++ nand-ecc-step-size = <512>;
++};
diff --git a/target/linux/bcm53xx/patches-4.4/081-0003-USB-bcma-use-simpler-devm-helper-for-getting-vcc-GPI.patch b/target/linux/bcm53xx/patches-4.4/081-0003-USB-bcma-use-simpler-devm-helper-for-getting-vcc-GPI.patch
new file mode 100644
index 0000000000..c5074101cf
--- /dev/null
+++ b/target/linux/bcm53xx/patches-4.4/081-0003-USB-bcma-use-simpler-devm-helper-for-getting-vcc-GPI.patch
@@ -0,0 +1,34 @@
+From 1507372b97a098fd51b92c4dbdbbcd65cba26939 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
+Date: Wed, 23 Mar 2016 12:37:11 +0100
+Subject: [PATCH] USB: bcma: use simpler devm helper for getting vcc GPIO
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Thanks to switching to devm_gpiod_get:
+1) We don't have to pass fwnode pointer
+2) We can request initial GPIO value at getting call
+This was successfully tested on Netgear R6250 (BCM4708).
+
+Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/usb/host/bcma-hcd.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+--- a/drivers/usb/host/bcma-hcd.c
++++ b/drivers/usb/host/bcma-hcd.c
+@@ -352,10 +352,8 @@ static int bcma_hcd_probe(struct bcma_de
+ usb_dev->core = core;
+
+ if (core->dev.of_node)
+- usb_dev->gpio_desc = devm_get_gpiod_from_child(&core->dev, "vcc",
+- &core->dev.of_node->fwnode);
+- if (!IS_ERR_OR_NULL(usb_dev->gpio_desc))
+- gpiod_direction_output(usb_dev->gpio_desc, 1);
++ usb_dev->gpio_desc = devm_gpiod_get(&core->dev, "vcc",
++ GPIOD_OUT_HIGH);
+
+ switch (core->id.id) {
+ case BCMA_CORE_USB20_HOST:
diff --git a/target/linux/bcm53xx/patches-4.4/089-0001-phy-bcm-ns-usb2-new-driver-for-USB-2.0-PHY-on-Norths.patch b/target/linux/bcm53xx/patches-4.4/089-0001-phy-bcm-ns-usb2-new-driver-for-USB-2.0-PHY-on-Norths.patch
new file mode 100644
index 0000000000..36044c5a59
--- /dev/null
+++ b/target/linux/bcm53xx/patches-4.4/089-0001-phy-bcm-ns-usb2-new-driver-for-USB-2.0-PHY-on-Norths.patch
@@ -0,0 +1,270 @@
+From d3feb406733544dbf0e239ef945a09decdceac88 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
+Date: Thu, 14 Apr 2016 11:37:43 +0200
+Subject: [PATCH] phy: bcm-ns-usb2: new driver for USB 2.0 PHY on Northstar
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Northstar is a family of SoCs used in home routers. They have USB 2.0
+and 3.0 controllers with PHYs that need to be properly initialized.
+This driver provides PHY init support in a generic way and can be bound
+with an EHCI controller driver.
+There are (just a few) registers being defined in bcma header. It's
+because DMU/CRU registers will be also needed in other drivers. We will
+need them e.g. in PCIe controller/PHY driver and at some point probably
+in clock driver for BCM53573 chipset. By using include/linux/bcma/ we
+avoid code duplication.
+
+Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
+Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
+---
+ .../devicetree/bindings/phy/bcm-ns-usb2-phy.txt | 21 ++++
+ drivers/phy/Kconfig | 9 ++
+ drivers/phy/Makefile | 1 +
+ drivers/phy/phy-bcm-ns-usb2.c | 137 +++++++++++++++++++++
+ include/linux/bcma/bcma.h | 1 +
+ include/linux/bcma/bcma_driver_arm_c9.h | 15 +++
+ 6 files changed, 184 insertions(+)
+ create mode 100644 Documentation/devicetree/bindings/phy/bcm-ns-usb2-phy.txt
+ create mode 100644 drivers/phy/phy-bcm-ns-usb2.c
+ create mode 100644 include/linux/bcma/bcma_driver_arm_c9.h
+
+diff --git a/Documentation/devicetree/bindings/phy/bcm-ns-usb2-phy.txt b/Documentation/devicetree/bindings/phy/bcm-ns-usb2-phy.txt
+new file mode 100644
+index 0000000..a7aee9e
+--- /dev/null
++++ b/Documentation/devicetree/bindings/phy/bcm-ns-usb2-phy.txt
+@@ -0,0 +1,21 @@
++Driver for Broadcom Northstar USB 2.0 PHY
++
++Required properties:
++- compatible: brcm,ns-usb2-phy
++- reg: iomem address range of DMU (Device Management Unit)
++- reg-names: "dmu", the only needed & supported reg right now
++- clocks: USB PHY reference clock
++- clock-names: "phy-ref-clk", the only needed & supported clock right now
++
++To initialize USB 2.0 PHY driver needs to setup PLL correctly. To do this it
++requires passing phandle to the USB PHY reference clock.
++
++Example:
++ usb2-phy {
++ compatible = "brcm,ns-usb2-phy";
++ reg = <0x1800c000 0x1000>;
++ reg-names = "dmu";
++ #phy-cells = <0>;
++ clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
++ clock-names = "phy-ref-clk";
++ };
+diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig
+index f6ff76e..f2b458f 100644
+--- a/drivers/phy/Kconfig
++++ b/drivers/phy/Kconfig
+@@ -15,6 +15,15 @@ config GENERIC_PHY
+ phy users can obtain reference to the PHY. All the users of this
+ framework should select this config.
+
++config PHY_BCM_NS_USB2
++ tristate "Broadcom Northstar USB 2.0 PHY Driver"
++ depends on ARCH_BCM_IPROC || COMPILE_TEST
++ depends on HAS_IOMEM && OF
++ select GENERIC_PHY
++ help
++ Enable this to support Broadcom USB 2.0 PHY connected to the USB
++ controller on Northstar family.
++
+ config PHY_BERLIN_USB
+ tristate "Marvell Berlin USB PHY Driver"
+ depends on ARCH_BERLIN && RESET_CONTROLLER && HAS_IOMEM && OF
+diff --git a/drivers/phy/Makefile b/drivers/phy/Makefile
+index f03fa1f..0de09e1 100644
+--- a/drivers/phy/Makefile
++++ b/drivers/phy/Makefile
+@@ -3,6 +3,7 @@
+ #
+
+ obj-$(CONFIG_GENERIC_PHY) += phy-core.o
++obj-$(CONFIG_PHY_BCM_NS_USB2) += phy-bcm-ns-usb2.o
+ obj-$(CONFIG_PHY_BERLIN_USB) += phy-berlin-usb.o
+ obj-$(CONFIG_PHY_BERLIN_SATA) += phy-berlin-sata.o
+ obj-$(CONFIG_PHY_DM816X_USB) += phy-dm816x-usb.o
+diff --git a/drivers/phy/phy-bcm-ns-usb2.c b/drivers/phy/phy-bcm-ns-usb2.c
+new file mode 100644
+index 0000000..95ab6b2
+--- /dev/null
++++ b/drivers/phy/phy-bcm-ns-usb2.c
+@@ -0,0 +1,137 @@
++/*
++ * Broadcom Northstar USB 2.0 PHY Driver
++ *
++ * Copyright (C) 2016 Rafał Miłecki <zajec5@gmail.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/bcma/bcma.h>
++#include <linux/clk.h>
++#include <linux/delay.h>
++#include <linux/err.h>
++#include <linux/module.h>
++#include <linux/of_address.h>
++#include <linux/of_platform.h>
++#include <linux/phy/phy.h>
++#include <linux/platform_device.h>
++#include <linux/slab.h>
++
++struct bcm_ns_usb2 {
++ struct device *dev;
++ struct clk *ref_clk;
++ struct phy *phy;
++ void __iomem *dmu;
++};
++
++static int bcm_ns_usb2_phy_init(struct phy *phy)
++{
++ struct bcm_ns_usb2 *usb2 = phy_get_drvdata(phy);
++ struct device *dev = usb2->dev;
++ void __iomem *dmu = usb2->dmu;
++ u32 ref_clk_rate, usb2ctl, usb_pll_ndiv, usb_pll_pdiv;
++ int err = 0;
++
++ err = clk_prepare_enable(usb2->ref_clk);
++ if (err < 0) {
++ dev_err(dev, "Failed to prepare ref clock: %d\n", err);
++ goto err_out;
++ }
++
++ ref_clk_rate = clk_get_rate(usb2->ref_clk);
++ if (!ref_clk_rate) {
++ dev_err(dev, "Failed to get ref clock rate\n");
++ err = -EINVAL;
++ goto err_clk_off;
++ }
++
++ usb2ctl = readl(dmu + BCMA_DMU_CRU_USB2_CONTROL);
++
++ if (usb2ctl & BCMA_DMU_CRU_USB2_CONTROL_USB_PLL_PDIV_MASK) {
++ usb_pll_pdiv = usb2ctl;
++ usb_pll_pdiv &= BCMA_DMU_CRU_USB2_CONTROL_USB_PLL_PDIV_MASK;
++ usb_pll_pdiv >>= BCMA_DMU_CRU_USB2_CONTROL_USB_PLL_PDIV_SHIFT;
++ } else {
++ usb_pll_pdiv = 1 << 3;
++ }
++
++ /* Calculate ndiv based on a solid 1920 MHz that is for USB2 PHY */
++ usb_pll_ndiv = (1920000000 * usb_pll_pdiv) / ref_clk_rate;
++
++ /* Unlock DMU PLL settings with some magic value */
++ writel(0x0000ea68, dmu + BCMA_DMU_CRU_CLKSET_KEY);
++
++ /* Write USB 2.0 PLL control setting */
++ usb2ctl &= ~BCMA_DMU_CRU_USB2_CONTROL_USB_PLL_NDIV_MASK;
++ usb2ctl |= usb_pll_ndiv << BCMA_DMU_CRU_USB2_CONTROL_USB_PLL_NDIV_SHIFT;
++ writel(usb2ctl, dmu + BCMA_DMU_CRU_USB2_CONTROL);
++
++ /* Lock DMU PLL settings */
++ writel(0x00000000, dmu + BCMA_DMU_CRU_CLKSET_KEY);
++
++err_clk_off:
++ clk_disable_unprepare(usb2->ref_clk);
++err_out:
++ return err;
++}
++
++static const struct phy_ops ops = {
++ .init = bcm_ns_usb2_phy_init,
++ .owner = THIS_MODULE,
++};
++
++static int bcm_ns_usb2_probe(struct platform_device *pdev)
++{
++ struct device *dev = &pdev->dev;
++ struct bcm_ns_usb2 *usb2;
++ struct resource *res;
++ struct phy_provider *phy_provider;
++
++ usb2 = devm_kzalloc(&pdev->dev, sizeof(*usb2), GFP_KERNEL);
++ if (!usb2)
++ return -ENOMEM;
++ usb2->dev = dev;
++
++ res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dmu");
++ usb2->dmu = devm_ioremap_resource(dev, res);
++ if (IS_ERR(usb2->dmu)) {
++ dev_err(dev, "Failed to map DMU regs\n");
++ return PTR_ERR(usb2->dmu);
++ }
++
++ usb2->ref_clk = devm_clk_get(dev, "phy-ref-clk");
++ if (IS_ERR(usb2->ref_clk)) {
++ dev_err(dev, "Clock not defined\n");
++ return PTR_ERR(usb2->ref_clk);
++ }
++
++ usb2->phy = devm_phy_create(dev, NULL, &ops);
++ if (IS_ERR(dev))
++ return PTR_ERR(dev);
++
++ phy_set_drvdata(usb2->phy, usb2);
++ platform_set_drvdata(pdev, usb2);
++
++ phy_provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate);
++ return PTR_ERR_OR_ZERO(phy_provider);
++}
++
++static const struct of_device_id bcm_ns_usb2_id_table[] = {
++ { .compatible = "brcm,ns-usb2-phy", },
++ {},
++};
++MODULE_DEVICE_TABLE(of, bcm_ns_usb2_id_table);
++
++static struct platform_driver bcm_ns_usb2_driver = {
++ .probe = bcm_ns_usb2_probe,
++ .driver = {
++ .name = "bcm_ns_usb2",
++ .of_match_table = bcm_ns_usb2_id_table,
++ },
++};
++module_platform_driver(bcm_ns_usb2_driver);
++
++MODULE_LICENSE("GPL v2");
+diff --git a/include/linux/bcma/bcma.h b/include/linux/bcma/bcma.h
+index 0367c63..e6b41f4 100644
+--- a/include/linux/bcma/bcma.h
++++ b/include/linux/bcma/bcma.h
+@@ -4,6 +4,7 @@
+ #include <linux/pci.h>
+ #include <linux/mod_devicetable.h>
+
++#include <linux/bcma/bcma_driver_arm_c9.h>
+ #include <linux/bcma/bcma_driver_chipcommon.h>
+ #include <linux/bcma/bcma_driver_pci.h>
+ #include <linux/bcma/bcma_driver_pcie2.h>
+diff --git a/include/linux/bcma/bcma_driver_arm_c9.h b/include/linux/bcma/bcma_driver_arm_c9.h
+new file mode 100644
+index 0000000..93bd73d
+--- /dev/null
++++ b/include/linux/bcma/bcma_driver_arm_c9.h
+@@ -0,0 +1,15 @@
++#ifndef LINUX_BCMA_DRIVER_ARM_C9_H_
++#define LINUX_BCMA_DRIVER_ARM_C9_H_
++
++/* DMU (Device Management Unit) */
++#define BCMA_DMU_CRU_USB2_CONTROL 0x0164
++#define BCMA_DMU_CRU_USB2_CONTROL_USB_PLL_NDIV_MASK 0x00000FFC
++#define BCMA_DMU_CRU_USB2_CONTROL_USB_PLL_NDIV_SHIFT 2
++#define BCMA_DMU_CRU_USB2_CONTROL_USB_PLL_PDIV_MASK 0x00007000
++#define BCMA_DMU_CRU_USB2_CONTROL_USB_PLL_PDIV_SHIFT 12
++#define BCMA_DMU_CRU_CLKSET_KEY 0x0180
++#define BCMA_DMU_CRU_STRAPS_CTRL 0x02A0
++#define BCMA_DMU_CRU_STRAPS_CTRL_USB3 0x00000010
++#define BCMA_DMU_CRU_STRAPS_CTRL_4BYTE 0x00008000
++
++#endif /* LINUX_BCMA_DRIVER_ARM_C9_H_ */
+--
+1.8.4.5
+
diff --git a/target/linux/bcm53xx/patches-4.4/089-0002-phy-bcm-ns-usb2-checking-the-wrong-variable.patch b/target/linux/bcm53xx/patches-4.4/089-0002-phy-bcm-ns-usb2-checking-the-wrong-variable.patch
new file mode 100644
index 0000000000..81144dc2b3
--- /dev/null
+++ b/target/linux/bcm53xx/patches-4.4/089-0002-phy-bcm-ns-usb2-checking-the-wrong-variable.patch
@@ -0,0 +1,32 @@
+From 6c081ff6fd5abd621797570be43d5e3c6acfcd58 Mon Sep 17 00:00:00 2001
+From: Dan Carpenter <dan.carpenter@oracle.com>
+Date: Tue, 10 May 2016 11:01:33 +0300
+Subject: [PATCH] phy: bcm-ns-usb2: checking the wrong variable
+
+We intended to test "usb2->phy" here instead of "dev".
+
+Fixes: d3feb4067335 ('phy: bcm-ns-usb2: new driver for USB 2.0 PHY on Northstar')
+Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
+Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
+---
+ drivers/phy/phy-bcm-ns-usb2.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/phy/phy-bcm-ns-usb2.c b/drivers/phy/phy-bcm-ns-usb2.c
+index 95ab6b2..58dff80 100644
+--- a/drivers/phy/phy-bcm-ns-usb2.c
++++ b/drivers/phy/phy-bcm-ns-usb2.c
+@@ -109,8 +109,8 @@ static int bcm_ns_usb2_probe(struct platform_device *pdev)
+ }
+
+ usb2->phy = devm_phy_create(dev, NULL, &ops);
+- if (IS_ERR(dev))
+- return PTR_ERR(dev);
++ if (IS_ERR(usb2->phy))
++ return PTR_ERR(usb2->phy);
+
+ phy_set_drvdata(usb2->phy, usb2);
+ platform_set_drvdata(pdev, usb2);
+--
+1.8.4.5
+
diff --git a/target/linux/bcm53xx/patches-4.4/101-use-part-parser.patch b/target/linux/bcm53xx/patches-4.4/101-use-part-parser.patch
index 8d48673c6d..4ecb8dc693 100644
--- a/target/linux/bcm53xx/patches-4.4/101-use-part-parser.patch
+++ b/target/linux/bcm53xx/patches-4.4/101-use-part-parser.patch
@@ -1,9 +1,9 @@
---- a/arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi
-+++ b/arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi
-@@ -19,6 +19,8 @@
-
- nand-ecc-strength = <8>;
- nand-ecc-step-size = <512>;
+--- a/arch/arm/boot/dts/bcm5301x-nand-cs0.dtsi
++++ b/arch/arm/boot/dts/bcm5301x-nand-cs0.dtsi
+@@ -13,6 +13,8 @@
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ linux,part-probe = "ofpart", "bcm47xxpart";
};
diff --git a/target/linux/bcm53xx/patches-4.4/197-USB-bcma-add-USB-3.0-support.patch b/target/linux/bcm53xx/patches-4.4/197-USB-bcma-add-USB-3.0-support.patch
index a906892a5c..946b8e5efc 100644
--- a/target/linux/bcm53xx/patches-4.4/197-USB-bcma-add-USB-3.0-support.patch
+++ b/target/linux/bcm53xx/patches-4.4/197-USB-bcma-add-USB-3.0-support.patch
@@ -209,7 +209,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
static int bcma_hcd_probe(struct bcma_device *core)
{
int err;
-@@ -364,6 +531,11 @@ static int bcma_hcd_probe(struct bcma_de
+@@ -362,6 +529,11 @@ static int bcma_hcd_probe(struct bcma_de
if (err)
return err;
break;
@@ -221,7 +221,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
default:
return -ENODEV;
}
-@@ -377,11 +549,14 @@ static void bcma_hcd_remove(struct bcma_
+@@ -375,11 +547,14 @@ static void bcma_hcd_remove(struct bcma_
struct bcma_hcd_device *usb_dev = bcma_get_drvdata(dev);
struct platform_device *ohci_dev = usb_dev->ohci_dev;
struct platform_device *ehci_dev = usb_dev->ehci_dev;
@@ -236,7 +236,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
bcma_core_disable(dev, 0);
}
-@@ -418,6 +593,7 @@ static int bcma_hcd_resume(struct bcma_d
+@@ -416,6 +591,7 @@ static int bcma_hcd_resume(struct bcma_d
static const struct bcma_device_id bcma_hcd_table[] = {
BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_USB20_HOST, BCMA_ANY_REV, BCMA_ANY_CLASS),
BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_NS_USB20, BCMA_ANY_REV, BCMA_ANY_CLASS),
diff --git a/target/linux/bcm53xx/patches-4.4/306-ARM-BCM5301X-Add-DT-for-Netgear-R8500.patch b/target/linux/bcm53xx/patches-4.4/306-ARM-BCM5301X-Add-DT-for-Netgear-R8500.patch
index 98a670c463..8db50e0116 100644
--- a/target/linux/bcm53xx/patches-4.4/306-ARM-BCM5301X-Add-DT-for-Netgear-R8500.patch
+++ b/target/linux/bcm53xx/patches-4.4/306-ARM-BCM5301X-Add-DT-for-Netgear-R8500.patch
@@ -20,7 +20,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
+ bcm47094-netgear-r8500.dtb \
bcm94708.dtb \
bcm94709.dtb \
- bcm953012k.dtb
+ bcm953012er.dtb \
--- /dev/null
+++ b/arch/arm/boot/dts/bcm47094-netgear-r8500.dts
@@ -0,0 +1,107 @@
diff --git a/target/linux/bcm53xx/patches-4.4/360-ARM-BCM5301X-Fix-NAND-flash-parameters-for-D-Link-DI.patch b/target/linux/bcm53xx/patches-4.4/360-ARM-BCM5301X-Fix-NAND-flash-parameters-for-D-Link-DI.patch
deleted file mode 100644
index e114df68d6..0000000000
--- a/target/linux/bcm53xx/patches-4.4/360-ARM-BCM5301X-Fix-NAND-flash-parameters-for-D-Link-DI.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 842f2d4df49fccc31424f9bc6bcc45d1e1d2fda7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
-Date: Mon, 1 Feb 2016 12:37:00 +0100
-Subject: [PATCH] ARM: BCM5301X: Fix NAND flash parameters for D-Link DIR-885L
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-It doesn't use 8-bit ECC strength.
-
-Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
----
- arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
---- a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
-+++ b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
-@@ -10,7 +10,6 @@
- /dts-v1/;
-
- #include "bcm4708.dtsi"
--#include "bcm5301x-nand-cs0-bch8.dtsi"
-
- / {
- compatible = "dlink,dir-885l", "brcm,bcm47094", "brcm,bcm4708";
-@@ -27,6 +26,13 @@
-
- nand: nand@18028000 {
- nandcs@0 {
-+ compatible = "brcm,nandcs";
-+ reg = <0>;
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-+
-+ linux,part-probe = "ofpart", "bcm47xxpart";
-+
- partition@0 {
- label = "firmware";
- reg = <0x00000000 0x08000000>;
diff --git a/target/linux/bcm53xx/patches-4.4/810-USB-bcma-use-simpler-devm_gpiod_get.patch b/target/linux/bcm53xx/patches-4.4/810-USB-bcma-use-simpler-devm_gpiod_get.patch
deleted file mode 100644
index 3779fabea2..0000000000
--- a/target/linux/bcm53xx/patches-4.4/810-USB-bcma-use-simpler-devm_gpiod_get.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
-Date: Sat, 2 Jan 2016 11:26:28 +0100
-Subject: [PATCH] USB: bcma: use simpler devm_gpiod_get
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
----
- drivers/usb/host/bcma-hcd.c | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
---- a/drivers/usb/host/bcma-hcd.c
-+++ b/drivers/usb/host/bcma-hcd.c
-@@ -519,8 +519,7 @@ static int bcma_hcd_probe(struct bcma_de
- usb_dev->core = core;
-
- if (core->dev.of_node)
-- usb_dev->gpio_desc = devm_get_gpiod_from_child(&core->dev, "vcc",
-- &core->dev.of_node->fwnode);
-+ usb_dev->gpio_desc = devm_gpiod_get(&core->dev, "vcc", 0);
- if (!IS_ERR_OR_NULL(usb_dev->gpio_desc))
- gpiod_direction_output(usb_dev->gpio_desc, 1);
-
diff --git a/toolchain/binutils/Config.in b/toolchain/binutils/Config.in
index 2960c947d2..f43cea5999 100644
--- a/toolchain/binutils/Config.in
+++ b/toolchain/binutils/Config.in
@@ -17,6 +17,11 @@ choice
bool "Binutils 2.25.1"
select BINUTILS_VERSION_2_25_1
+ config BINUTILS_USE_VERSION_2_26_1
+ depends on !arc
+ bool "Binutils 2.26.1"
+ select BINUTILS_VERSION_2_26_1
+
config BINUTILS_USE_VERSION_2_26_ARC
depends on arc
bool "ARC binutils 2.26"
diff --git a/toolchain/binutils/Config.version b/toolchain/binutils/Config.version
index fc7a1f37c0..6812d03b72 100644
--- a/toolchain/binutils/Config.version
+++ b/toolchain/binutils/Config.version
@@ -5,6 +5,9 @@ config BINUTILS_VERSION_2_25_1
default y if (!TOOLCHAINOPTS && !arc)
bool
+config BINUTILS_VERSION_2_26_1
+ bool
+
config BINUTILS_VERSION_2_26_ARC
default y if (!TOOLCHAINOPTS && arc)
bool
@@ -13,5 +16,6 @@ config BINUTILS_VERSION
string
default "2.24-linaro" if BINUTILS_VERSION_2_24_LINARO
default "2.25.1" if BINUTILS_VERSION_2_25_1
+ default "2.26.1" if BINUTILS_VERSION_2_26_1
default "arc-2016.03" if BINUTILS_VERSION_2_26_ARC
diff --git a/toolchain/binutils/Makefile b/toolchain/binutils/Makefile
index 03fc76abdd..a30a167169 100644
--- a/toolchain/binutils/Makefile
+++ b/toolchain/binutils/Makefile
@@ -17,6 +17,10 @@ ifeq ($(PKG_VERSION),2.25.1)
PKG_MD5SUM:=ac493a78de4fee895961d025b7905be4
endif
+ifeq ($(PKG_VERSION),2.26.1)
+ PKG_MD5SUM:=d2b24e5b5301b7ff0207414c34c3e0fb
+endif
+
ifeq ($(findstring linaro, $(CONFIG_BINUTILS_VERSION)),linaro)
PKG_SOURCE_URL:=https://releases.linaro.org/14.09/components/toolchain/binutils-linaro/
PKG_REV:=2.24.0-2014.09
diff --git a/toolchain/binutils/patches/2.26.1/300-001_ld_makefile_patch.patch b/toolchain/binutils/patches/2.26.1/300-001_ld_makefile_patch.patch
new file mode 100644
index 0000000000..c51fc003fd
--- /dev/null
+++ b/toolchain/binutils/patches/2.26.1/300-001_ld_makefile_patch.patch
@@ -0,0 +1,22 @@
+--- a/ld/Makefile.am
++++ b/ld/Makefile.am
+@@ -54,7 +54,7 @@ endif
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+
+ EMUL = @EMUL@
+ EMULATION_OFILES = @EMULATION_OFILES@
+--- a/ld/Makefile.in
++++ b/ld/Makefile.in
+@@ -388,7 +388,7 @@ AM_CFLAGS = $(WARN_CFLAGS)
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+ BASEDIR = $(srcdir)/..
+ BFDDIR = $(BASEDIR)/bfd
+ INCDIR = $(BASEDIR)/include
diff --git a/toolchain/binutils/patches/2.26.1/300-012_check_ldrunpath_length.patch b/toolchain/binutils/patches/2.26.1/300-012_check_ldrunpath_length.patch
new file mode 100644
index 0000000000..2e24b38cad
--- /dev/null
+++ b/toolchain/binutils/patches/2.26.1/300-012_check_ldrunpath_length.patch
@@ -0,0 +1,20 @@
+--- a/ld/emultempl/elf32.em
++++ b/ld/emultempl/elf32.em
+@@ -1198,6 +1198,8 @@ fragment <<EOF
+ && command_line.rpath == NULL)
+ {
+ lib_path = (const char *) getenv ("LD_RUN_PATH");
++ if ((lib_path) && (strlen (lib_path) == 0))
++ lib_path = NULL;
+ if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
+ force))
+ break;
+@@ -1461,6 +1463,8 @@ gld${EMULATION_NAME}_before_allocation (
+ rpath = command_line.rpath;
+ if (rpath == NULL)
+ rpath = (const char *) getenv ("LD_RUN_PATH");
++ if ((rpath) && (strlen (rpath) == 0))
++ rpath = NULL;
+
+ for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next)
+ if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
diff --git a/toolchain/binutils/patches/2.26.1/400-mips_no_dynamic_linking_sym.patch b/toolchain/binutils/patches/2.26.1/400-mips_no_dynamic_linking_sym.patch
new file mode 100644
index 0000000000..a63203d1cc
--- /dev/null
+++ b/toolchain/binutils/patches/2.26.1/400-mips_no_dynamic_linking_sym.patch
@@ -0,0 +1,18 @@
+--- a/bfd/elfxx-mips.c
++++ b/bfd/elfxx-mips.c
+@@ -7689,6 +7689,7 @@ _bfd_mips_elf_create_dynamic_sections (b
+
+ name = SGI_COMPAT (abfd) ? "_DYNAMIC_LINK" : "_DYNAMIC_LINKING";
+ bh = NULL;
++ if (0) {
+ if (!(_bfd_generic_link_add_one_symbol
+ (info, abfd, name, BSF_GLOBAL, bfd_abs_section_ptr, 0,
+ NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh)))
+@@ -7701,6 +7702,7 @@ _bfd_mips_elf_create_dynamic_sections (b
+
+ if (! bfd_elf_link_record_dynamic_symbol (info, h))
+ return FALSE;
++ }
+
+ if (! mips_elf_hash_table (info)->use_rld_obj_head)
+ {
diff --git a/toolchain/binutils/patches/2.26.1/500-Change-default-emulation-for-mips64-linux.patch b/toolchain/binutils/patches/2.26.1/500-Change-default-emulation-for-mips64-linux.patch
new file mode 100644
index 0000000000..3343a85661
--- /dev/null
+++ b/toolchain/binutils/patches/2.26.1/500-Change-default-emulation-for-mips64-linux.patch
@@ -0,0 +1,37 @@
+--- a/bfd/config.bfd
++++ b/bfd/config.bfd
+@@ -1062,12 +1062,12 @@ case "${targ}" in
+ targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
+ ;;
+ mips64*el-*-linux*)
+- targ_defvec=mips_elf32_ntrad_le_vec
+- targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
++ targ_defvec=mips_elf64_trad_le_vec
++ targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_be_vec"
+ ;;
+ mips64*-*-linux*)
+- targ_defvec=mips_elf32_ntrad_be_vec
+- targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
++ targ_defvec=mips_elf64_trad_be_vec
++ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec"
+ ;;
+ mips*el-*-linux*)
+ targ_defvec=mips_elf32_trad_le_vec
+--- a/ld/configure.tgt
++++ b/ld/configure.tgt
+@@ -476,11 +476,11 @@ mips*el-*-vxworks*) targ_emul=elf32elmip
+ mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
+ targ_extra_emuls="elf32elmipvxworks" ;;
+ mips*-*-windiss) targ_emul=elf32mipswindiss ;;
+-mips64*el-*-linux-*) targ_emul=elf32ltsmipn32
+- targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
++mips64*el-*-linux-*) targ_emul=elf64ltsmip
++ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32ltsmip elf32btsmip elf64btsmip"
+ targ_extra_libpath=$targ_extra_emuls ;;
+-mips64*-*-linux-*) targ_emul=elf32btsmipn32
+- targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
++mips64*-*-linux-*) targ_emul=elf64btsmip
++ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip"
+ targ_extra_libpath=$targ_extra_emuls ;;
+ mips*el-*-linux-*) targ_emul=elf32ltsmip
+ targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
diff --git a/tools/isl/Makefile b/tools/isl/Makefile
index 8fe2da1a06..24c06268c7 100644
--- a/tools/isl/Makefile
+++ b/tools/isl/Makefile
@@ -7,11 +7,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=isl
-PKG_VERSION:=0.14.1
+PKG_VERSION:=0.17.1
PKG_SOURCE_URL:=http://isl.gforge.inria.fr
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MD5SUM:=94fcd11e0b1c79250ae341affb1845ea
+PKG_MD5SUM:=20b83900e234f982a566a3a6b3503bf1
HOST_BUILD_PARALLEL:=1
diff --git a/tools/padjffs2/src/padjffs2.c b/tools/padjffs2/src/padjffs2.c
index 59c7625dc4..6308292431 100644
--- a/tools/padjffs2/src/padjffs2.c
+++ b/tools/padjffs2/src/padjffs2.c
@@ -15,6 +15,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <stdbool.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -25,6 +26,7 @@ static unsigned char jffs2_pad_be[] = "\x19\x85\x20\x04\x04\x00\x00\x00\xc4\x94\
static unsigned char jffs2_pad_le[] = "\x85\x19\x04\x20\x00\x00\x00\x04\xa8\xfb\xa0\xb4";
static unsigned char *pad = eof_mark;
static int pad_len = sizeof(eof_mark);
+static bool pad_to_stdout = false;
#define ERR(fmt, ...) do { \
fflush(0); \
@@ -46,6 +48,7 @@ static int pad_image(char *name, uint32_t pad_mask)
{
char *buf;
int fd;
+ int outfd;
ssize_t in_len;
ssize_t out_len;
int ret = -1;
@@ -66,6 +69,11 @@ static int pad_image(char *name, uint32_t pad_mask)
if (in_len < 0)
goto close;
+ if (!pad_to_stdout)
+ outfd = fd;
+ else
+ outfd = STDOUT_FILENO;
+
memset(buf, '\xff', BUF_SIZE);
in_len += xtra_offset;
@@ -90,7 +98,7 @@ static int pad_image(char *name, uint32_t pad_mask)
pad_mask &= ~mask;
}
- printf("padding image to %08x\n", (unsigned int) in_len - xtra_offset);
+ fprintf(stderr, "padding image to %08x\n", (unsigned int) in_len - xtra_offset);
while (out_len < in_len) {
ssize_t len;
@@ -99,7 +107,7 @@ static int pad_image(char *name, uint32_t pad_mask)
if (len > BUF_SIZE)
len = BUF_SIZE;
- t = write(fd, buf, len);
+ t = write(outfd, buf, len);
if (t != len) {
ERRS("Unable to write to %s", name);
goto close;
@@ -109,7 +117,7 @@ static int pad_image(char *name, uint32_t pad_mask)
}
/* write out the JFFS end-of-filesystem marker */
- t = write(fd, pad, pad_len);
+ t = write(outfd, pad, pad_len);
if (t != pad_len) {
ERRS("Unable to write to %s", name);
goto close;
@@ -137,6 +145,7 @@ static int usage(void)
" This is used to work around broken boot loaders that\n"
" try to parse the entire firmware area as one big jffs2\n"
" -j: (like -J, but little-endian instead of big-endian)\n"
+ " -c: write padding to stdout\n"
"\n",
progname);
return EXIT_FAILURE;
@@ -160,7 +169,7 @@ int main(int argc, char* argv[])
argc--;
pad_mask = 0;
- while ((ch = getopt(argc, argv, "x:Jj")) != -1) {
+ while ((ch = getopt(argc, argv, "x:Jjc")) != -1) {
switch (ch) {
case 'x':
xtra_offset = strtoul(optarg, NULL, 0);
@@ -175,6 +184,9 @@ int main(int argc, char* argv[])
pad = jffs2_pad_le;
pad_len = sizeof(jffs2_pad_le) - 1;
break;
+ case 'c':
+ pad_to_stdout = true;
+ break;
default:
return usage();
}