diff --git a/config/kernel/linux-sun50i-dev.config b/config/kernel/linux-sun50i-dev.config
index 8154b30e2..847431ed3 100644
--- a/config/kernel/linux-sun50i-dev.config
+++ b/config/kernel/linux-sun50i-dev.config
@@ -6,7 +6,6 @@ CONFIG_ARM64=y
 CONFIG_64BIT=y
 CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
 CONFIG_MMU=y
-CONFIG_DEBUG_RODATA=y
 CONFIG_ARM64_PAGE_SHIFT=12
 CONFIG_ARM64_CONT_SHIFT=4
 CONFIG_ARCH_MMAP_RND_BITS_MIN=18
@@ -212,6 +211,7 @@ CONFIG_PERF_EVENTS=y
 # CONFIG_DEBUG_PERF_USE_VMALLOC is not set
 CONFIG_VM_EVENT_COUNTERS=y
 CONFIG_SLUB_DEBUG=y
+# CONFIG_SLUB_MEMCG_SYSFS_ON is not set
 # CONFIG_COMPAT_BRK is not set
 # CONFIG_SLAB is not set
 CONFIG_SLUB=y
@@ -270,6 +270,12 @@ CONFIG_OLD_SIGSUSPEND3=y
 CONFIG_COMPAT_OLD_SIGACTION=y
 # CONFIG_CPU_NO_EFFICIENT_FFS is not set
 # CONFIG_HAVE_ARCH_VMAP_STACK is not set
+# CONFIG_ARCH_OPTIONAL_KERNEL_RWX is not set
+# CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
+CONFIG_STRICT_MODULE_RWX=y
 
 #
 # GCOV-based kernel profiling
@@ -291,6 +297,7 @@ CONFIG_MODULE_UNLOAD=y
 # CONFIG_TRIM_UNUSED_KSYMS is not set
 CONFIG_MODULES_TREE_LOOKUP=y
 CONFIG_BLOCK=y
+CONFIG_BLK_SCSI_REQUEST=y
 CONFIG_BLK_DEV_BSG=y
 CONFIG_BLK_DEV_BSGLIB=y
 # CONFIG_BLK_DEV_INTEGRITY is not set
@@ -298,6 +305,8 @@ CONFIG_BLK_DEV_BSGLIB=y
 CONFIG_BLK_DEV_THROTTLING=y
 # CONFIG_BLK_CMDLINE_PARSER is not set
 # CONFIG_BLK_WBT is not set
+# CONFIG_BLK_DEBUG_FS is not set
+# CONFIG_BLK_SED_OPAL is not set
 
 #
 # Partition Types
@@ -363,6 +372,7 @@ CONFIG_ARCH_SUNXI=y
 # CONFIG_ARCH_TEGRA is not set
 # CONFIG_ARCH_SPRD is not set
 # CONFIG_ARCH_THUNDER is not set
+# CONFIG_ARCH_THUNDER2 is not set
 # CONFIG_ARCH_UNIPHIER is not set
 # CONFIG_ARCH_VEXPRESS is not set
 # CONFIG_ARCH_VULCAN is not set
@@ -395,6 +405,8 @@ CONFIG_ARM64_ERRATUM_843419=y
 # CONFIG_CAVIUM_ERRATUM_22375 is not set
 # CONFIG_CAVIUM_ERRATUM_23154 is not set
 # CONFIG_CAVIUM_ERRATUM_27456 is not set
+# CONFIG_QCOM_FALKOR_ERRATUM_1003 is not set
+# CONFIG_QCOM_FALKOR_ERRATUM_1009 is not set
 CONFIG_ARM64_4K_PAGES=y
 # CONFIG_ARM64_16K_PAGES is not set
 # CONFIG_ARM64_64K_PAGES is not set
@@ -555,7 +567,6 @@ CONFIG_CPU_FREQ=y
 CONFIG_CPU_FREQ_GOV_ATTR_SET=y
 CONFIG_CPU_FREQ_GOV_COMMON=y
 CONFIG_CPU_FREQ_STAT=y
-# CONFIG_CPU_FREQ_STAT_DETAILS is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
@@ -576,6 +587,7 @@ CONFIG_CPUFREQ_DT=y
 CONFIG_CPUFREQ_DT_PLATDEV=y
 # CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set
 # CONFIG_ARM_KIRKWOOD_CPUFREQ is not set
+# CONFIG_QORIQ_CPUFREQ is not set
 CONFIG_NET=y
 CONFIG_COMPAT_NETLINK_MESSAGES=y
 CONFIG_NET_INGRESS=y
@@ -588,6 +600,7 @@ CONFIG_PACKET_DIAG=m
 CONFIG_UNIX=y
 CONFIG_UNIX_DIAG=m
 CONFIG_XFRM=y
+CONFIG_XFRM_OFFLOAD=y
 CONFIG_XFRM_ALGO=m
 CONFIG_XFRM_USER=m
 # CONFIG_XFRM_SUB_POLICY is not set
@@ -624,6 +637,7 @@ CONFIG_NET_UDP_TUNNEL=m
 # CONFIG_NET_FOU_IP_TUNNELS is not set
 CONFIG_INET_AH=m
 CONFIG_INET_ESP=m
+CONFIG_INET_ESP_OFFLOAD=m
 CONFIG_INET_IPCOMP=m
 CONFIG_INET_XFRM_TUNNEL=m
 CONFIG_INET_TUNNEL=m
@@ -662,6 +676,7 @@ CONFIG_IPV6_ROUTE_INFO=y
 CONFIG_IPV6_OPTIMISTIC_DAD=y
 CONFIG_INET6_AH=m
 CONFIG_INET6_ESP=m
+CONFIG_INET6_ESP_OFFLOAD=m
 CONFIG_INET6_IPCOMP=m
 CONFIG_IPV6_MIP6=m
 # CONFIG_IPV6_ILA is not set
@@ -755,6 +770,7 @@ CONFIG_NFT_NUMGEN=m
 CONFIG_NFT_CT=m
 CONFIG_NFT_SET_RBTREE=m
 CONFIG_NFT_SET_HASH=m
+CONFIG_NFT_SET_BITMAP=m
 CONFIG_NFT_COUNTER=m
 CONFIG_NFT_LOG=m
 CONFIG_NFT_LIMIT=m
@@ -1156,9 +1172,11 @@ CONFIG_NET_9P_VIRTIO=y
 # CONFIG_CEPH_LIB is not set
 # CONFIG_NFC is not set
 CONFIG_PSAMPLE=m
+# CONFIG_NET_IFE is not set
 CONFIG_LWTUNNEL=y
 # CONFIG_LWTUNNEL_BPF is not set
 CONFIG_DST_CACHE=y
+CONFIG_GRO_CELLS=y
 # CONFIG_NET_DEVLINK is not set
 CONFIG_MAY_USE_DEVLINK=y
 CONFIG_HAVE_EBPF_JIT=y
@@ -1181,7 +1199,9 @@ CONFIG_FW_LOADER=y
 CONFIG_FIRMWARE_IN_KERNEL=y
 CONFIG_EXTRA_FIRMWARE=""
 # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
+CONFIG_WANT_DEV_COREDUMP=y
 CONFIG_ALLOW_DEV_COREDUMP=y
+CONFIG_DEV_COREDUMP=y
 # CONFIG_DEBUG_DRIVER is not set
 # CONFIG_DEBUG_DEVRES is not set
 # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
@@ -1506,6 +1526,7 @@ CONFIG_NET_TEAM_MODE_LOADBALANCE=m
 CONFIG_MACVLAN=m
 CONFIG_MACVTAP=m
 CONFIG_IPVLAN=m
+CONFIG_IPVTAP=m
 CONFIG_VXLAN=m
 # CONFIG_GENEVE is not set
 # CONFIG_GTP is not set
@@ -1515,6 +1536,7 @@ CONFIG_NETCONSOLE=m
 CONFIG_NETPOLL=y
 CONFIG_NET_POLL_CONTROLLER=y
 CONFIG_TUN=m
+CONFIG_TAP=m
 # CONFIG_TUN_VNET_CROSS_LE is not set
 CONFIG_VETH=m
 CONFIG_VIRTIO_NET=m
@@ -1873,6 +1895,7 @@ CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
 # CONFIG_SERIAL_ARC is not set
 # CONFIG_SERIAL_FSL_LPUART is not set
 # CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
+# CONFIG_SERIAL_DEV_BUS is not set
 CONFIG_HVC_DRIVER=y
 # CONFIG_HVC_DCC is not set
 CONFIG_VIRTIO_CONSOLE=y
@@ -2231,6 +2254,7 @@ CONFIG_SENSORS_LM90=m
 # CONFIG_SENSORS_SCH56XX_COMMON is not set
 # CONFIG_SENSORS_SCH5627 is not set
 # CONFIG_SENSORS_SCH5636 is not set
+# CONFIG_SENSORS_STTS751 is not set
 # CONFIG_SENSORS_SMM665 is not set
 # CONFIG_SENSORS_ADC128D818 is not set
 # CONFIG_SENSORS_ADS1015 is not set
@@ -2369,6 +2393,7 @@ CONFIG_MFD_SUN4I_GPADC=m
 # CONFIG_MFD_MT6397 is not set
 # CONFIG_MFD_MENF21BMC is not set
 # CONFIG_EZX_PCAP is not set
+# CONFIG_MFD_CPCAP is not set
 # CONFIG_MFD_VIPERBOARD is not set
 # CONFIG_MFD_RETU is not set
 # CONFIG_MFD_PCF50633 is not set
@@ -2711,6 +2736,7 @@ CONFIG_SND_SOC_SPDIF=m
 # CONFIG_SND_SOC_WM8974 is not set
 # CONFIG_SND_SOC_WM8978 is not set
 # CONFIG_SND_SOC_WM8985 is not set
+# CONFIG_SND_SOC_NAU8540 is not set
 # CONFIG_SND_SOC_NAU8810 is not set
 # CONFIG_SND_SOC_TPA6130A2 is not set
 CONFIG_SND_SIMPLE_CARD_UTILS=m
@@ -2977,6 +3003,7 @@ CONFIG_USB_SERIAL_SIMPLE=m
 # CONFIG_USB_SERIAL_WISHBONE is not set
 # CONFIG_USB_SERIAL_SSU100 is not set
 # CONFIG_USB_SERIAL_QT2 is not set
+# CONFIG_USB_SERIAL_UPD78F0730 is not set
 # CONFIG_USB_SERIAL_DEBUG is not set
 
 #
@@ -3003,6 +3030,7 @@ CONFIG_USB_SERIAL_SIMPLE=m
 # CONFIG_USB_ISIGHTFW is not set
 # CONFIG_USB_YUREX is not set
 # CONFIG_USB_EZUSB_FX2 is not set
+# CONFIG_USB_HUB_USB251XB is not set
 # CONFIG_USB_HSIC_USB3503 is not set
 # CONFIG_USB_HSIC_USB4604 is not set
 # CONFIG_USB_LINK_LAYER_TEST is not set
@@ -3089,6 +3117,7 @@ CONFIG_MMC_SUNXI=y
 CONFIG_NEW_LEDS=y
 CONFIG_LEDS_CLASS=y
 # CONFIG_LEDS_CLASS_FLASH is not set
+# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
 
 #
 # LED drivers
@@ -3352,13 +3381,6 @@ CONFIG_COMMON_CLK_SCPI=y
 # CONFIG_COMMON_CLK_PXA is not set
 # CONFIG_COMMON_CLK_PIC32 is not set
 # CONFIG_COMMON_CLK_VC5 is not set
-# CONFIG_COMMON_CLK_MT2701 is not set
-# CONFIG_COMMON_CLK_MT2701_MMSYS is not set
-# CONFIG_COMMON_CLK_MT2701_IMGSYS is not set
-# CONFIG_COMMON_CLK_MT2701_VDECSYS is not set
-# CONFIG_COMMON_CLK_MT2701_HIFSYS is not set
-# CONFIG_COMMON_CLK_MT2701_ETHSYS is not set
-# CONFIG_COMMON_CLK_MT2701_BDPSYS is not set
 CONFIG_SUNXI_CCU=y
 CONFIG_SUNXI_CCU_DIV=y
 CONFIG_SUNXI_CCU_FRAC=y
@@ -3377,6 +3399,7 @@ CONFIG_SUN50I_A64_CCU=y
 # CONFIG_SUN8I_A33_CCU is not set
 CONFIG_SUNXI_H3_H5_CCU=y
 # CONFIG_SUN8I_V3S_CCU is not set
+# CONFIG_SUN9I_A80_CCU is not set
 
 #
 # Hardware Spinlock drivers
@@ -3526,6 +3549,11 @@ CONFIG_ARM_PMU=y
 #
 # CONFIG_FPGA is not set
 
+#
+# FSI support
+#
+# CONFIG_FSI is not set
+
 #
 # Firmware Drivers
 #
@@ -3972,7 +4000,6 @@ CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
 # CONFIG_PID_IN_CONTEXTIDR is not set
 # CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set
 # CONFIG_DEBUG_WX is not set
-# CONFIG_DEBUG_SET_MODULE_RONX is not set
 # CONFIG_DEBUG_ALIGN_RODATA is not set
 # CONFIG_CORESIGHT is not set
 
@@ -4107,6 +4134,7 @@ CONFIG_CRYPTO_WP512=y
 # Ciphers
 #
 CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_AES_TI=y
 # CONFIG_CRYPTO_ANUBIS is not set
 CONFIG_CRYPTO_ARC4=m
 CONFIG_CRYPTO_BLOWFISH=y
@@ -4168,7 +4196,6 @@ CONFIG_CRYPTO_AES_ARM64_CE=y
 CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
 CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
 CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y
-CONFIG_CRYPTO_CRC32_ARM64=y
 CONFIG_CRYPTO_CHACHA20_NEON=y
 CONFIG_CRYPTO_AES_ARM64_BS=y
 # CONFIG_BINARY_PRINTF is not set
@@ -4254,4 +4281,5 @@ CONFIG_FONT_8x16=y
 CONFIG_SG_POOL=y
 CONFIG_ARCH_HAS_SG_CHAIN=y
 CONFIG_SBITMAP=y
+# CONFIG_PARMAN is not set
 CONFIG_PRIME_NUMBERS=m
diff --git a/config/sources/pine64.conf b/config/sources/pine64.conf
index 2b98c69c7..23534554f 100644
--- a/config/sources/pine64.conf
+++ b/config/sources/pine64.conf
@@ -21,9 +21,6 @@ case $BRANCH in
 	dev)
 	BOOTENV_FILE='sun50iw1-next.txt'
 
-	KERNELSOURCE='https://github.com/Icenowy/linux/'
-	KERNELBRANCH='branch:sunxi64-next-20170125'
-	KERNELDIR='linux-pine64-dev'
 	GOVERNOR=schedutil
 	;;
 esac
diff --git a/config/sources/sun50iw2.conf b/config/sources/sun50iw2.conf
index f65f43b64..e973369b1 100644
--- a/config/sources/sun50iw2.conf
+++ b/config/sources/sun50iw2.conf
@@ -3,11 +3,6 @@ source "${BASH_SOURCE%/*}/sunxi64_common.inc"
 
 BOOTENV_FILE='sun50iw2-next.txt'
 
-KERNELSOURCE='https://github.com/Icenowy/linux/'
-KERNELBRANCH='branch:sunxi64-next-20170125'
-KERNELDIR='linux-sun50i-dev'
-KERNEL_ALT_GCC='> 6.1'
-
 [[ -z $CPUMIN ]] && CPUMIN=480000
 [[ -z $CPUMAX ]] && CPUMAX=1010000
 GOVERNOR=schedutil
diff --git a/config/sources/sunxi64_common.inc b/config/sources/sunxi64_common.inc
index d1ab88a9e..66acab6e4 100644
--- a/config/sources/sunxi64_common.inc
+++ b/config/sources/sunxi64_common.inc
@@ -10,8 +10,12 @@ case $BRANCH in
 	BOOTBRANCH='branch:master'
 	BOOTPATCHDIR='u-boot-sun50i-dev'
 	UBOOT_TARGET_MAP="$BOARD;;u-boot-sunxi-with-spl.bin"
-
 	BOOTSCRIPT='boot-sun50i-next.cmd:boot.cmd'
+
+	KERNELSOURCE='https://github.com/Icenowy/linux/'
+	KERNELBRANCH='branch:sunxi64-next-20170216'
+	KERNELDIR='linux-sun50i-dev'
+	KERNEL_ALT_GCC='> 6.1'
 	LINUXCONFIG='linux-sun50i-dev'
 	;;
 esac
diff --git a/patch/kernel/pine64-dev/remove-localversion.patch b/patch/kernel/pine64-dev/remove-localversion.patch
index 419cf40e3..8083ac142 100644
--- a/patch/kernel/pine64-dev/remove-localversion.patch
+++ b/patch/kernel/pine64-dev/remove-localversion.patch
@@ -4,4 +4,4 @@ index 299f8119..00000000
 --- a/localversion-next
 +++ /dev/null
 @@ -1 +0,0 @@
---next-20170125
+--next-20170216
diff --git a/patch/kernel/pine64-dev/spi-patch-for-A64-4.10.x.patch b/patch/kernel/pine64-dev/spi-patch-for-A64-4.10.x.patch
index c42bc2461..b476f18e3 100644
--- a/patch/kernel/pine64-dev/spi-patch-for-A64-4.10.x.patch
+++ b/patch/kernel/pine64-dev/spi-patch-for-A64-4.10.x.patch
@@ -1,8 +1,8 @@
 diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
-index 100e9b4..1761402 100644
+index 02c0385f..19a8657b 100644
 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
 +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
-@@ -52,6 +52,11 @@
+@@ -51,6 +51,11 @@
  	#address-cells = <1>;
  	#size-cells = <1>;
  
@@ -14,43 +14,35 @@ index 100e9b4..1761402 100644
  	cpus {
  		#address-cells = <1>;
  		#size-cells = <0>;
-@@ -258,6 +263,35 @@
+@@ -304,6 +309,27 @@
  				function = "emac";
  				drive-strength = <40>;
  			};
 +
 +			spi0_pins_a: spi0@0 {
-+				allwinner,pins = "PC0", "PC1", "PC2";
-+				allwinner,function = "spi0";
-+				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-+				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
++				pins = "PC0", "PC1", "PC2";
++				function = "spi0";
 +			};
 +
 +			spi0_cs0_pins_a: spi0_cs0@0 {
-+				allwinner,pins = "PC3";
-+				allwinner,function = "spi0";
-+				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-+				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
++				pins = "PC3";
++				function = "spi0";
 +			};
 +
 +			spi1_pins_a: spi1@0 {
-+				allwinner,pins = "PD1", "PD2", "PD3";
-+				allwinner,function = "spi1";
-+				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-+				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
++				pins = "PD1", "PD2", "PD3";
++				function = "spi1";
 +			};
 +
 +			spi1_cs0_pins_a: spi1_cs0@0 {
-+				allwinner,pins = "PD0";
-+				allwinner,function = "spi1";
-+				allwinner,drive = <SUN4I_PINCTRL_10_MA>;
-+				allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
++				pins = "PD0";
++				function = "spi1";
 +			};
 +
  		};
  
  		uart0: serial@1c28000 {
-@@ -426,5 +460,36 @@
+@@ -431,5 +457,36 @@
  			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
  				     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
  		};
diff --git a/patch/kernel/sun50iw2-dev/add-DVFS-and-THS-drivers-H5.patch b/patch/kernel/sun50iw2-dev/add-DVFS-and-THS-drivers-H5.patch
index 5e7419fb9..4dc4aa3d4 100644
--- a/patch/kernel/sun50iw2-dev/add-DVFS-and-THS-drivers-H5.patch
+++ b/patch/kernel/sun50iw2-dev/add-DVFS-and-THS-drivers-H5.patch
@@ -46,14 +46,12 @@ diff --git a/drivers/clk/sunxi-ng/ccu_common.c b/drivers/clk/sunxi-ng/ccu_common
 index 51d4bac9..9dc970ff 100644
 --- a/drivers/clk/sunxi-ng/ccu_common.c
 +++ b/drivers/clk/sunxi-ng/ccu_common.c
-@@ -30,8 +30,8 @@ void ccu_helper_wait_for_lock(struct ccu_common *common, u32 lock)
- 	if (!lock)
- 		return;
+@@ -36,7 +36,7 @@ void ccu_helper_wait_for_lock(struct ccu_common *common, u32 lock)
+ 	else
+ 		addr = common->base + common->reg;
  
--	WARN_ON(readl_relaxed_poll_timeout(common->base + common->reg, reg,
--					   reg & lock, 100, 70000));
-+	WARN_ON(readl_relaxed_poll_timeout_atomic(common->base + common->reg, reg,
-+					   reg & lock, 5, 70000));
+-	WARN_ON(readl_relaxed_poll_timeout(addr, reg, reg & lock, 100, 70000));
++	WARN_ON(readl_relaxed_poll_timeout_atomic(addr, reg, reg & lock, 5, 70000));
  }
  
  int sunxi_ccu_probe(struct device_node *node, void __iomem *reg,
diff --git a/patch/kernel/sun50iw2-dev/remove-localversion.patch b/patch/kernel/sun50iw2-dev/remove-localversion.patch
index 419cf40e3..8083ac142 100644
--- a/patch/kernel/sun50iw2-dev/remove-localversion.patch
+++ b/patch/kernel/sun50iw2-dev/remove-localversion.patch
@@ -4,4 +4,4 @@ index 299f8119..00000000
 --- a/localversion-next
 +++ /dev/null
 @@ -1 +0,0 @@
---next-20170125
+--next-20170216