From 862af878f15cf80d4d37c738d52c597451b31364 Mon Sep 17 00:00:00 2001
From: Daniel Gachet <daniel.gachet@hefr.ch>
Date: Wed, 19 Aug 2020 22:40:17 +0200
Subject: [PATCH] nanopi environment updated to buildroot 2020.05 with linux
 kernel 5.8.2

---
 config/buildroot_nano.patch | 1509 ++++-------------------------------
 nano-env                    |    4 +-
 2 files changed, 138 insertions(+), 1375 deletions(-)

diff --git a/config/buildroot_nano.patch b/config/buildroot_nano.patch
index 9af2f22..32d3c57 100644
--- a/config/buildroot_nano.patch
+++ b/config/buildroot_nano.patch
@@ -1,1227 +1,72 @@
- board/friendlyarm/nanopi-neo-plus2/boot.cmd        |   6 +
- board/friendlyarm/nanopi-neo-plus2/genimage.cfg    |  45 ++
- board/friendlyarm/nanopi-neo-plus2/linux.patch     | 382 +++++++++++
- board/friendlyarm/nanopi-neo-plus2/linux_defconfig | 728 +++++++++++++++++++++
- board/friendlyarm/nanopi-neo-plus2/my.dts          |  12 +
- .../friendlyarm/nanopi-neo-plus2/overlay/etc/fstab |   9 +
- .../overlay/etc/network/interfaces                 |  10 +
- board/friendlyarm/nanopi-neo-plus2/readme.txt      |  37 ++
- board/friendlyarm/nanopi-neo-plus2/uboot.patch     |  24 +
- board/friendlyarm/nanopi-neo-plus2/uboot_defconfig |  16 +
- configs/nanopi_neo_plus2_defconfig                 | 103 +++
- package/dropbear/S50dropbear                       |   2 +-
- package/openssh/S50sshd                            |   3 +
- 13 files changed, 1376 insertions(+), 1 deletion(-)
+ board/friendlyarm/nanopi-neo-plus2/boot.cmd        |  6 ++
+ board/friendlyarm/nanopi-neo-plus2/genimage.cfg    |  4 +-
+ .../nanopi-neo-plus2/linux-extras.config           |  4 +
+ .../nanopi-neo-plus2/nanopi-neo-plus2.dts          |  7 ++
+ .../nanopi-neo-plus2/rootfs_overlay/etc/fstab      | 10 +++
+ .../rootfs_overlay/etc/network/interfaces          | 10 +++
+ configs/friendlyarm_nanopi_neo_plus2_defconfig     | 94 +++++++++++++---------
+ package/dropbear/S50dropbear                       |  2 +-
+ package/openssh/S50sshd                            |  3 +
+ 9 files changed, 97 insertions(+), 43 deletions(-)
 
 diff --git a/board/friendlyarm/nanopi-neo-plus2/boot.cmd b/board/friendlyarm/nanopi-neo-plus2/boot.cmd
 new file mode 100644
-index 0000000000..227604a23d
+index 0000000000..ec83aa9ef3
 --- /dev/null
 +++ b/board/friendlyarm/nanopi-neo-plus2/boot.cmd
 @@ -0,0 +1,6 @@
 +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait
 +
 +fatload mmc 0 $kernel_addr_r Image
-+fatload mmc 0 $fdt_addr_r sun50i-h5-nanopi-neo-plus2.dtb
++fatload mmc 0 $fdt_addr_r nanopi-neo-plus2.dtb
 +
 +booti $kernel_addr_r - $fdt_addr_r
 diff --git a/board/friendlyarm/nanopi-neo-plus2/genimage.cfg b/board/friendlyarm/nanopi-neo-plus2/genimage.cfg
-new file mode 100644
-index 0000000000..8b2e674e37
---- /dev/null
+index fb871abd43..bf6f68872d 100644
+--- a/board/friendlyarm/nanopi-neo-plus2/genimage.cfg
 +++ b/board/friendlyarm/nanopi-neo-plus2/genimage.cfg
-@@ -0,0 +1,45 @@
-+image boot.vfat {
-+	vfat {
-+		files = {
-+			"Image",
-+			"sun50i-h5-nanopi-neo-plus2.dtb",
+@@ -2,8 +2,8 @@ image boot.vfat {
+ 	vfat {
+ 		files = {
+ 			"Image",
+-			"sun50i-h5-nanopi-neo-plus2.dtb",
+-			"extlinux"
++			"nanopi-neo-plus2.dtb",
 +			"boot.scr"
-+		}
-+	}
-+	size = 64M
-+}
-+
-+image sdcard.img {
-+	hdimage {
-+	}
-+
-+	partition spl {
-+		in-partition-table = "no"
-+		image = "sunxi-spl.bin"
-+		offset = 8192
-+	}
-+
-+	partition u-boot {
-+		in-partition-table = "no"
-+		image = "u-boot.itb"
-+		offset = 40K
-+		size = 1M # 1MB - 40K
-+	}
-+
-+	partition boot {
-+		partition-type = 0xC
-+		bootable = "true"
-+		image = "boot.vfat"
-+	}
-+
-+	partition squashfs {
-+		partition-type = 0x83
-+		image = "rootfs.squashfs"
-+	}
-+
-+	partition rootfs {
-+		partition-type = 0x83
-+		image = "rootfs.ext4"
-+		size = 2G
-+	}
-+}
-diff --git a/board/friendlyarm/nanopi-neo-plus2/linux.patch b/board/friendlyarm/nanopi-neo-plus2/linux.patch
-new file mode 100644
-index 0000000000..81dab72ca1
---- /dev/null
-+++ b/board/friendlyarm/nanopi-neo-plus2/linux.patch
-@@ -0,0 +1,382 @@
-+ arch/arm/boot/dts/sunxi-h3-h5.dtsi                 |  20 ++
-+ .../dts/allwinner/sun50i-h5-nanopi-neo-plus2.dts   |   3 +-
-+ arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi       |  15 +-
-+ drivers/thermal/Kconfig                            |   7 +
-+ drivers/thermal/Makefile                           |   1 +
-+ drivers/thermal/sun8i_ths.c                        | 239 +++++++++++++++++++++
-+ 6 files changed, 281 insertions(+), 4 deletions(-)
-+
-+diff --git a/arch/arm/boot/dts/sunxi-h3-h5.dtsi b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
-+index d74a6cbbfdf4..06144aace59b 100644
-+--- a/arch/arm/boot/dts/sunxi-h3-h5.dtsi
-++++ b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
-+@@ -483,6 +483,18 @@
-+ 			};
-+ 		};
-+ 
-++		ths: ths@1c25000 {
-++			#thermal-sensor-cells = <0>;
-++			compatible = "allwinner,sun8i-h3-ths";
-++			reg = <0x01c25000 0x400>,
-++			      <0x01c14234 0x4>;
-++			interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
-++			resets = <&ccu RST_BUS_THS>;
-++			reset-names = "ahb";
-++			clocks = <&ccu CLK_BUS_THS>, <&ccu CLK_THS>;
-++			clock-names = "ahb", "ths";
-++		};
-++
-+ 		timer@1c20c00 {
-+ 			compatible = "allwinner,sun4i-a10-timer";
-+ 			reg = <0x01c20c00 0xa0>;
-+@@ -866,4 +878,12 @@
-+ 			};
-+ 		};
-+ 	};
-++	
-++	thermal-zones {
-++		cpu_thermal: cpu_thermal {
-++			polling-delay-passive = <330>;
-++			polling-delay = <1000>;
-++			thermal-sensors = <&ths 0>;
-++		};
-++	};
-+ };
-+diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-plus2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-plus2.dts
-+index 506e25ba028a..798d6ad90017 100644
-+--- a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-plus2.dts
-++++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-plus2.dts
-+@@ -63,7 +63,7 @@
-+ 
-+ 	leds {
-+ 		compatible = "gpio-leds";
-+-
-++/*
-+ 		pwr {
-+ 			label = "nanopi:green:pwr";
-+ 			gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>;
-+@@ -74,6 +74,7 @@
-+ 			label = "nanopi:red:status";
-+ 			gpios = <&pio 0 20 GPIO_ACTIVE_HIGH>;
-+ 		};
-++*/
-+ 	};
-+ 
-+ 	reg_gmac_3v3: gmac-3v3 {
-+diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi
-+index 96acafd3a852..690420d926b6 100644
-+--- a/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi
-++++ b/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi
-+@@ -54,21 +54,21 @@
-+ 			enable-method = "psci";
-+ 		};
-+ 
-+-		cpu@1 {
-++		cpu1: cpu@1 {
-+ 			compatible = "arm,cortex-a53";
-+ 			device_type = "cpu";
-+ 			reg = <1>;
-+ 			enable-method = "psci";
-+ 		};
-+ 
-+-		cpu@2 {
-++		cpu2: cpu@2 {
-+ 			compatible = "arm,cortex-a53";
-+ 			device_type = "cpu";
-+ 			reg = <2>;
-+ 			enable-method = "psci";
-+ 		};
-+ 
-+-		cpu@3 {
-++		cpu3: cpu@3 {
-+ 			compatible = "arm,cortex-a53";
-+ 			device_type = "cpu";
-+ 			reg = <3>;
-+@@ -76,6 +76,15 @@
-+ 		};
-+ 	};
-+ 
-++	pmu {
-++			compatible = "arm,cortex-a53-pmu", "arm,armv8-pmuv3";
-++			interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
-++				     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
-++				     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
-++				     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
-++			interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
-++	};
-++
-+ 	psci {
-+ 		compatible = "arm,psci-0.2";
-+ 		method = "smc";
-+diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig
-+index 653aa27a25a4..6cb1a6dd69d6 100644
-+--- a/drivers/thermal/Kconfig
-++++ b/drivers/thermal/Kconfig
-+@@ -349,6 +349,13 @@ depends on ARCH_BCM || ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCM_IPROC || \
-+ source "drivers/thermal/broadcom/Kconfig"
-+ endmenu
-+ 
-++config SUN8I_THS
-++	tristate "Thermal sensor driver for Allwinner H3"
-++	depends on MACH_SUN8I || (ARM64 && ARCH_SUNXI)
-++	depends on OF
-++	help
-++	  Enable this to support thermal reporting on some newer Allwinner SoCs.
-++
-+ menu "Texas Instruments thermal drivers"
-+ depends on ARCH_HAS_BANDGAP || COMPILE_TEST
-+ depends on HAS_IOMEM
-+diff --git a/drivers/thermal/Makefile b/drivers/thermal/Makefile
-+index 486d682be047..76cc16097a90 100644
-+--- a/drivers/thermal/Makefile
-++++ b/drivers/thermal/Makefile
-+@@ -53,3 +53,4 @@ obj-$(CONFIG_MTK_THERMAL)	+= mtk_thermal.o
-+ obj-$(CONFIG_GENERIC_ADC_THERMAL)	+= thermal-generic-adc.o
-+ obj-$(CONFIG_ZX2967_THERMAL)	+= zx2967_thermal.o
-+ obj-$(CONFIG_UNIPHIER_THERMAL)	+= uniphier_thermal.o
-++obj-$(CONFIG_SUN8I_THS)		+= sun8i_ths.o
-+diff --git a/drivers/thermal/sun8i_ths.c b/drivers/thermal/sun8i_ths.c
-+new file mode 100644
-+index 000000000000..cfe7d1073b8c
-+--- /dev/null
-++++ b/drivers/thermal/sun8i_ths.c
-+@@ -0,0 +1,239 @@
-++/*
-++ * Thermal sensor driver for Allwinner H3 SoC
-++ *
-++ * Copyright (C) 2016 Ondřej Jirman
-++ * Based on the work of Josef Gajdusek <atx@atx.name>
-++ *
-++ * This software is licensed under the terms of the GNU General Public
-++ * License version 2, as published by the Free Software Foundation, and
-++ * may be copied, distributed, and modified under those terms.
-++ *
-++ * This program is distributed in the hope that it will be useful,
-++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-++ * GNU General Public License for more details.
-++ *
-++ */
-++
-++#include <linux/clk.h>
-++#include <linux/interrupt.h>
-++#include <linux/io.h>
-++#include <linux/module.h>
-++#include <linux/of_device.h>
-++#include <linux/platform_device.h>
-++#include <linux/reset.h>
-++#include <linux/slab.h>
-++#include <linux/thermal.h>
-++#include <linux/printk.h>
-++
-++#define THS_H3_CTRL0		0x00
-++#define THS_H3_CTRL2		0x40
-++#define THS_H3_INT_CTRL		0x44
-++#define THS_H3_STAT		0x48
-++#define THS_H3_FILTER		0x70
-++#define THS_H3_CDATA		0x74
-++#define THS_H3_DATA		0x80
-++
-++#define THS_H3_CTRL0_SENSOR_ACQ0(x)     (x)
-++#define THS_H3_CTRL2_SENSE_EN           BIT(0)
-++#define THS_H3_CTRL2_SENSOR_ACQ1(x)     ((x) << 16)
-++#define THS_H3_INT_CTRL_DATA_IRQ_EN     BIT(8)
-++#define THS_H3_INT_CTRL_THERMAL_PER(x)  ((x) << 12)
-++#define THS_H3_STAT_DATA_IRQ_STS        BIT(8)
-++#define THS_H3_FILTER_TYPE(x)           ((x) << 0)
-++#define THS_H3_FILTER_EN                BIT(2)
-++
-++#define THS_H3_CLK_IN 40000000  /* Hz */
-++#define THS_H3_DATA_PERIOD 330  /* ms */
-++
-++#define THS_H3_FILTER_TYPE_VALUE		2  /* average over 2^(n+1) samples */
-++#define THS_H3_FILTER_DIV			(1 << (THS_H3_FILTER_TYPE_VALUE + 1))
-++#define THS_H3_INT_CTRL_THERMAL_PER_VALUE \
-++	(THS_H3_DATA_PERIOD * (THS_H3_CLK_IN / 1000) / THS_H3_FILTER_DIV / 4096 - 1)
-++#define THS_H3_CTRL0_SENSOR_ACQ0_VALUE		0x3f /* 16us */
-++#define THS_H3_CTRL2_SENSOR_ACQ1_VALUE		0x3f
-++
-++struct sun8i_ths_data {
-++	struct reset_control *reset;
-++	struct clk *clk;
-++	struct clk *busclk;
-++	void __iomem *regs;
-++	struct thermal_zone_device *tzd;
-++	u32 temp;
-++};
-++
-++static int sun8i_ths_get_temp(void *_data, int *out)
-++{
-++	struct sun8i_ths_data *data = _data;
-++
-++	if (data->temp == 0)
-++		return -EBUSY;
-++
-++	/* Formula and parameters from the Allwinner 3.4 kernel */
-++	*out = 217000 - (int)((data->temp * 1000000) / 8253);
-++	return 0;
-++}
-++
-++static irqreturn_t sun8i_ths_irq_thread(int irq, void *_data)
-++{
-++	struct sun8i_ths_data *data = _data;
-++
-++	writel(THS_H3_STAT_DATA_IRQ_STS, data->regs + THS_H3_STAT);
-++
-++	data->temp = readl(data->regs + THS_H3_DATA);
-++	if (data->temp)
-++		thermal_zone_device_update(data->tzd, THERMAL_EVENT_TEMP_SAMPLE);
-++
-++	return IRQ_HANDLED;
-++}
-++
-++static void sun8i_ths_h3_init(struct sun8i_ths_data *data)
-++{
-++	writel(THS_H3_CTRL0_SENSOR_ACQ0(THS_H3_CTRL0_SENSOR_ACQ0_VALUE),
-++		data->regs + THS_H3_CTRL0);
-++	writel(THS_H3_FILTER_EN | THS_H3_FILTER_TYPE(THS_H3_FILTER_TYPE_VALUE),
-++		data->regs + THS_H3_FILTER);
-++	writel(THS_H3_CTRL2_SENSOR_ACQ1(THS_H3_CTRL2_SENSOR_ACQ1_VALUE) |
-++		THS_H3_CTRL2_SENSE_EN,
-++		data->regs + THS_H3_CTRL2);
-++	writel(THS_H3_INT_CTRL_THERMAL_PER(THS_H3_INT_CTRL_THERMAL_PER_VALUE) |
-++		THS_H3_INT_CTRL_DATA_IRQ_EN,
-++		data->regs + THS_H3_INT_CTRL);
-++}
-++
-++static const struct thermal_zone_of_device_ops sun8i_ths_thermal_ops = {
-++	.get_temp = sun8i_ths_get_temp,
-++};
-++
-++static int sun8i_ths_probe(struct platform_device *pdev)
-++{
-++	struct sun8i_ths_data *data;
-++	struct resource *res;
-++	int ret;
-++	int irq;
-++
-++	data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
-++	if (!data)
-++		return -ENOMEM;
-++
-++	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-++        if (!res) {
-++                dev_err(&pdev->dev, "no memory resources defined\n");
-++                return -EINVAL;
-++        }
-++
-++	data->regs = devm_ioremap_resource(&pdev->dev, res);
-++	if (IS_ERR(data->regs)) {
-++		ret = PTR_ERR(data->regs);
-++		dev_err(&pdev->dev, "failed to ioremap THS registers: %d\n", ret);
-++		return ret;
-++	}
-++
-++	irq = platform_get_irq(pdev, 0);
-++	if (irq < 0) {
-++		dev_err(&pdev->dev, "failed to get IRQ: %d\n", irq);
-++		return irq;
-++	}
-++
-++	ret = devm_request_threaded_irq(&pdev->dev, irq, NULL,
-++					sun8i_ths_irq_thread, IRQF_ONESHOT,
-++					dev_name(&pdev->dev), data);
-++	if (ret)
-++		return ret;
-++
-++	data->busclk = devm_clk_get(&pdev->dev, "ahb");
-++	if (IS_ERR(data->busclk)) {
-++		ret = PTR_ERR(data->busclk);
-++		dev_err(&pdev->dev, "failed to get ahb clk: %d\n", ret);
-++		return ret;
-++	}
-++
-++	data->clk = devm_clk_get(&pdev->dev, "ths");
-++	if (IS_ERR(data->clk)) {
-++		ret = PTR_ERR(data->clk);
-++		dev_err(&pdev->dev, "failed to get ths clk: %d\n", ret);
-++		return ret;
-++	}
-++
-++	data->reset = devm_reset_control_get(&pdev->dev, "ahb");
-++	if (IS_ERR(data->reset)) {
-++		ret = PTR_ERR(data->reset);
-++		dev_err(&pdev->dev, "failed to get reset: %d\n", ret);
-++		return ret;
-++	}
-++
-++	ret = reset_control_deassert(data->reset);
-++	if (ret) {
-++		dev_err(&pdev->dev, "reset deassert failed: %d\n", ret);
-++		return ret;
-++	}
-++
-++	ret = clk_prepare_enable(data->busclk);
-++	if (ret) {
-++		dev_err(&pdev->dev, "failed to enable bus clk: %d\n", ret);
-++		goto err_assert_reset;
-++	}
-++
-++	ret = clk_prepare_enable(data->clk);
-++	if (ret) {
-++		dev_err(&pdev->dev, "failed to enable ths clk: %d\n", ret);
-++		goto err_disable_bus;
-++	}
-++
-++	ret = clk_set_rate(data->clk, THS_H3_CLK_IN);
-++	if (ret)
-++		goto err_disable_ths;
-++
-++	data->tzd = devm_thermal_zone_of_sensor_register(&pdev->dev, 0, data,
-++						    &sun8i_ths_thermal_ops);
-++	if (IS_ERR(data->tzd)) {
-++		ret = PTR_ERR(data->tzd);
-++		dev_err(&pdev->dev, "failed to register thermal zone: %d\n",
-++				ret);
-++		goto err_disable_ths;
-++	}
-++
-++	sun8i_ths_h3_init(data);
-++
-++	platform_set_drvdata(pdev, data);
-++	return 0;
-++
-++err_disable_ths:
-++	clk_disable_unprepare(data->clk);
-++err_disable_bus:
-++	clk_disable_unprepare(data->busclk);
-++err_assert_reset:
-++	reset_control_assert(data->reset);
-++	return ret;
-++}
-++
-++static int sun8i_ths_remove(struct platform_device *pdev)
-++{
-++	struct sun8i_ths_data *data = platform_get_drvdata(pdev);
-++
-++	reset_control_assert(data->reset);
-++	clk_disable_unprepare(data->clk);
-++	clk_disable_unprepare(data->busclk);
-++	return 0;
-++}
-++
-++static const struct of_device_id sun8i_ths_id_table[] = {
-++	{ .compatible = "allwinner,sun8i-h3-ths", },
-++	{ /* sentinel */ },
-++};
-++MODULE_DEVICE_TABLE(of, sun8i_ths_id_table);
-++
-++static struct platform_driver sun8i_ths_driver = {
-++	.probe = sun8i_ths_probe,
-++	.remove = sun8i_ths_remove,
-++	.driver = {
-++		.name = "sun8i_ths",
-++		.of_match_table = sun8i_ths_id_table,
-++	},
-++};
-++
-++module_platform_driver(sun8i_ths_driver);
-++
-++MODULE_AUTHOR("Ondřej Jirman <megous@megous.com>");
-++MODULE_DESCRIPTION("Thermal sensor driver for Allwinner H3 SoC");
-++MODULE_LICENSE("GPL v2");
-diff --git a/board/friendlyarm/nanopi-neo-plus2/linux_defconfig b/board/friendlyarm/nanopi-neo-plus2/linux_defconfig
-new file mode 100644
-index 0000000000..878f31d303
---- /dev/null
-+++ b/board/friendlyarm/nanopi-neo-plus2/linux_defconfig
-@@ -0,0 +1,728 @@
-+CONFIG_SYSVIPC=y
-+CONFIG_POSIX_MQUEUE=y
-+CONFIG_AUDIT=y
-+CONFIG_NO_HZ_IDLE=y
-+CONFIG_HIGH_RES_TIMERS=y
-+CONFIG_PREEMPT=y
-+CONFIG_IRQ_TIME_ACCOUNTING=y
-+CONFIG_BSD_PROCESS_ACCT=y
-+CONFIG_BSD_PROCESS_ACCT_V3=y
-+CONFIG_TASKSTATS=y
-+CONFIG_TASK_DELAY_ACCT=y
-+CONFIG_TASK_XACCT=y
-+CONFIG_TASK_IO_ACCOUNTING=y
-+CONFIG_IKCONFIG=y
-+CONFIG_IKCONFIG_PROC=y
-+CONFIG_NUMA_BALANCING=y
-+CONFIG_MEMCG=y
-+CONFIG_MEMCG_SWAP=y
-+CONFIG_BLK_CGROUP=y
-+CONFIG_CGROUP_PIDS=y
-+CONFIG_CGROUP_HUGETLB=y
-+CONFIG_CPUSETS=y
-+CONFIG_CGROUP_DEVICE=y
-+CONFIG_CGROUP_CPUACCT=y
-+CONFIG_CGROUP_PERF=y
-+CONFIG_USER_NS=y
-+CONFIG_SCHED_AUTOGROUP=y
-+CONFIG_BLK_DEV_INITRD=y
-+# CONFIG_COMPAT_BRK is not set
-+CONFIG_PROFILING=y
-+CONFIG_ARCH_SUNXI=y
-+CONFIG_ARCH_ALPINE=y
-+CONFIG_ARCH_BCM2835=y
-+CONFIG_ARCH_BCM_IPROC=y
-+CONFIG_ARCH_BERLIN=y
-+CONFIG_ARCH_BRCMSTB=y
-+CONFIG_ARCH_EXYNOS=y
-+CONFIG_ARCH_LAYERSCAPE=y
-+CONFIG_ARCH_LG1K=y
-+CONFIG_ARCH_HISI=y
-+CONFIG_ARCH_MEDIATEK=y
-+CONFIG_ARCH_MESON=y
-+CONFIG_ARCH_MVEBU=y
-+CONFIG_ARCH_QCOM=y
-+CONFIG_ARCH_RENESAS=y
-+CONFIG_ARCH_ROCKCHIP=y
-+CONFIG_ARCH_SEATTLE=y
-+CONFIG_ARCH_STRATIX10=y
-+CONFIG_ARCH_SYNQUACER=y
-+CONFIG_ARCH_TEGRA=y
-+CONFIG_ARCH_SPRD=y
-+CONFIG_ARCH_THUNDER=y
-+CONFIG_ARCH_THUNDER2=y
-+CONFIG_ARCH_UNIPHIER=y
-+CONFIG_ARCH_VEXPRESS=y
-+CONFIG_ARCH_XGENE=y
-+CONFIG_ARCH_ZX=y
-+CONFIG_ARCH_ZYNQMP=y
-+CONFIG_ARM64_VA_BITS_48=y
-+CONFIG_SCHED_MC=y
-+CONFIG_NUMA=y
-+CONFIG_SECCOMP=y
-+CONFIG_KEXEC=y
-+CONFIG_CRASH_DUMP=y
-+CONFIG_XEN=y
-+CONFIG_COMPAT=y
-+CONFIG_HIBERNATION=y
-+CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
-+CONFIG_ARM_CPUIDLE=y
-+CONFIG_CPU_FREQ=y
-+CONFIG_CPU_FREQ_STAT=y
-+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
-+CONFIG_CPU_FREQ_GOV_USERSPACE=y
-+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
-+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
-+CONFIG_CPUFREQ_DT=y
-+CONFIG_ACPI_CPPC_CPUFREQ=m
-+CONFIG_ARM_ARMADA_37XX_CPUFREQ=y
-+CONFIG_ARM_SCPI_CPUFREQ=y
-+CONFIG_ARM_TEGRA186_CPUFREQ=y
-+CONFIG_ARM_SCPI_PROTOCOL=y
-+# CONFIG_DMIID is not set
-+CONFIG_EFI_CAPSULE_LOADER=y
-+CONFIG_ACPI=y
-+CONFIG_ACPI_APEI=y
-+CONFIG_ACPI_APEI_GHES=y
-+CONFIG_ACPI_APEI_MEMORY_FAILURE=y
-+CONFIG_ACPI_APEI_EINJ=y
-+CONFIG_VIRTUALIZATION=y
-+CONFIG_KVM=y
-+CONFIG_ARM64_CRYPTO=y
-+CONFIG_CRYPTO_SHA1_ARM64_CE=y
-+CONFIG_CRYPTO_SHA2_ARM64_CE=y
-+CONFIG_CRYPTO_SHA512_ARM64_CE=m
-+CONFIG_CRYPTO_SHA3_ARM64=m
-+CONFIG_CRYPTO_SM3_ARM64_CE=m
-+CONFIG_CRYPTO_GHASH_ARM64_CE=y
-+CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
-+CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
-+CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
-+CONFIG_CRYPTO_CHACHA20_NEON=m
-+CONFIG_CRYPTO_AES_ARM64_BS=m
-+CONFIG_KPROBES=y
-+CONFIG_JUMP_LABEL=y
-+CONFIG_MODULES=y
-+CONFIG_MODULE_UNLOAD=y
-+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-+CONFIG_KSM=y
-+CONFIG_MEMORY_FAILURE=y
-+CONFIG_TRANSPARENT_HUGEPAGE=y
-+CONFIG_CMA=y
-+CONFIG_NET=y
-+CONFIG_PACKET=y
-+CONFIG_UNIX=y
-+CONFIG_UNIX_DIAG=m
-+CONFIG_XFRM_USER=m
-+CONFIG_NET_KEY=m
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+CONFIG_IP_PNP=y
-+CONFIG_IP_PNP_DHCP=y
-+CONFIG_IP_PNP_BOOTP=y
-+CONFIG_IP_PNP_RARP=y
-+CONFIG_IP_MROUTE=y
-+CONFIG_IPV6=m
-+CONFIG_NETFILTER=y
-+CONFIG_NETFILTER_NETLINK_ACCT=y
-+CONFIG_NETFILTER_NETLINK_QUEUE=y
-+CONFIG_NETFILTER_NETLINK_LOG=y
-+CONFIG_NETFILTER_NETLINK_OSF=y
-+CONFIG_NF_CONNTRACK=y
-+CONFIG_NF_LOG_NETDEV=y
-+CONFIG_NF_CONNTRACK_MARK=y
-+CONFIG_NF_CONNTRACK_ZONES=y
-+CONFIG_NF_CONNTRACK_EVENTS=y
-+CONFIG_NF_CONNTRACK_TIMEOUT=y
-+CONFIG_NF_CONNTRACK_TIMESTAMP=y
-+CONFIG_NF_CONNTRACK_LABELS=y
-+CONFIG_NF_CONNTRACK_AMANDA=y
-+CONFIG_NF_CONNTRACK_FTP=y
-+CONFIG_NF_CONNTRACK_IRC=y
-+CONFIG_NF_CONNTRACK_NETBIOS_NS=y
-+CONFIG_NF_CONNTRACK_SNMP=y
-+CONFIG_NF_CONNTRACK_PPTP=y
-+CONFIG_NF_CONNTRACK_SANE=y
-+CONFIG_NF_CONNTRACK_SIP=y
-+CONFIG_NF_CONNTRACK_TFTP=y
-+CONFIG_NF_CT_NETLINK=y
-+CONFIG_NF_CT_NETLINK_TIMEOUT=y
-+CONFIG_NF_CT_NETLINK_HELPER=m
-+CONFIG_NETFILTER_NETLINK_GLUE_CT=y
-+CONFIG_NF_TABLES=y
-+CONFIG_NF_TABLES_SET=y
-+CONFIG_NF_TABLES_INET=y
-+CONFIG_NF_TABLES_NETDEV=y
-+CONFIG_NFT_NUMGEN=y
-+CONFIG_NFT_CT=y
-+CONFIG_NFT_COUNTER=y
-+CONFIG_NFT_CONNLIMIT=y
-+CONFIG_NFT_LOG=y
-+CONFIG_NFT_LIMIT=y
-+CONFIG_NFT_MASQ=m
-+CONFIG_NFT_REDIR=m
-+CONFIG_NFT_NAT=y
-+CONFIG_NFT_TUNNEL=y
-+CONFIG_NFT_OBJREF=y
-+CONFIG_NFT_QUEUE=y
-+CONFIG_NFT_QUOTA=y
-+CONFIG_NFT_REJECT=m
-+CONFIG_NFT_COMPAT=m
-+CONFIG_NFT_HASH=y
-+CONFIG_NFT_XFRM=y
-+CONFIG_NFT_SOCKET=m
-+CONFIG_NFT_OSF=m
-+CONFIG_NFT_TPROXY=m
-+CONFIG_NFT_DUP_NETDEV=y
-+CONFIG_NFT_FWD_NETDEV=y
-+CONFIG_NF_FLOW_TABLE=y
-+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
-+CONFIG_NETFILTER_XT_TARGET_LOG=m
-+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
-+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-+CONFIG_IP_NF_IPTABLES=y
-+CONFIG_IP_NF_FILTER=y
-+CONFIG_IP_NF_TARGET_REJECT=m
-+CONFIG_IP_NF_NAT=m
-+CONFIG_IP_NF_TARGET_MASQUERADE=m
-+CONFIG_IP_NF_MANGLE=m
-+CONFIG_IP6_NF_IPTABLES=m
-+CONFIG_IP6_NF_FILTER=m
-+CONFIG_IP6_NF_TARGET_REJECT=m
-+CONFIG_IP6_NF_MANGLE=m
-+CONFIG_IP6_NF_NAT=m
-+CONFIG_IP6_NF_TARGET_MASQUERADE=m
-+CONFIG_BRIDGE=m
-+CONFIG_BRIDGE_VLAN_FILTERING=y
-+CONFIG_VLAN_8021Q=m
-+CONFIG_VLAN_8021Q_GVRP=y
-+CONFIG_VLAN_8021Q_MVRP=y
-+CONFIG_NET_SCHED=y
-+CONFIG_BPF_JIT=y
-+CONFIG_BT=m
-+CONFIG_BT_HIDP=m
-+# CONFIG_BT_HS is not set
-+# CONFIG_BT_LE is not set
-+CONFIG_BT_LEDS=y
-+# CONFIG_BT_DEBUGFS is not set
-+CONFIG_BT_HCIUART=m
-+CONFIG_BT_HCIUART_LL=y
-+CONFIG_CFG80211=m
-+# CONFIG_CFG80211_DEFAULT_PS is not set
-+CONFIG_CFG80211_WEXT=y
-+CONFIG_MAC80211=m
-+CONFIG_MAC80211_LEDS=y
-+CONFIG_RFKILL=m
-+CONFIG_NET_9P=y
-+CONFIG_NET_9P_VIRTIO=y
-+CONFIG_PCI=y
-+CONFIG_PCI_IOV=y
-+CONFIG_HOTPLUG_PCI=y
-+CONFIG_HOTPLUG_PCI_ACPI=y
-+CONFIG_PCI_AARDVARK=y
-+CONFIG_PCI_TEGRA=y
-+CONFIG_PCIE_RCAR=y
-+CONFIG_PCI_HOST_GENERIC=y
-+CONFIG_PCI_XGENE=y
-+CONFIG_PCI_HOST_THUNDER_PEM=y
-+CONFIG_PCI_HOST_THUNDER_ECAM=y
-+CONFIG_PCI_LAYERSCAPE=y
-+CONFIG_PCI_HISI=y
-+CONFIG_PCIE_QCOM=y
-+CONFIG_PCIE_ARMADA_8K=y
-+CONFIG_PCIE_KIRIN=y
-+CONFIG_DEVTMPFS=y
-+CONFIG_DEVTMPFS_MOUNT=y
-+CONFIG_MTD=y
-+CONFIG_MTD_BLOCK=y
-+CONFIG_MTD_M25P80=y
-+CONFIG_MTD_SPI_NOR=y
-+CONFIG_BLK_DEV_LOOP=y
-+CONFIG_BLK_DEV_NBD=m
-+CONFIG_VIRTIO_BLK=y
-+CONFIG_SRAM=y
-+# CONFIG_SCSI_PROC_FS is not set
-+CONFIG_BLK_DEV_SD=y
-+CONFIG_SCSI_SAS_ATA=y
-+CONFIG_SCSI_HISI_SAS=y
-+CONFIG_SCSI_HISI_SAS_PCI=y
-+CONFIG_ATA=y
-+CONFIG_SATA_AHCI=y
-+CONFIG_SATA_AHCI_PLATFORM=y
-+CONFIG_AHCI_CEVA=y
-+CONFIG_AHCI_MVEBU=y
-+CONFIG_AHCI_XGENE=y
-+CONFIG_AHCI_QORIQ=y
-+CONFIG_SATA_SIL24=y
-+CONFIG_SATA_RCAR=y
-+CONFIG_PATA_PLATFORM=y
-+CONFIG_PATA_OF_PLATFORM=y
-+CONFIG_NETDEVICES=y
-+CONFIG_BONDING=m
-+CONFIG_DUMMY=m
-+CONFIG_NET_TEAM=m
-+CONFIG_MACVLAN=m
-+CONFIG_MACVTAP=m
-+CONFIG_IPVLAN=m
-+CONFIG_IPVTAP=m
-+CONFIG_VXLAN=m
-+CONFIG_NETCONSOLE=m
-+CONFIG_TUN=m
-+CONFIG_VETH=m
-+CONFIG_VIRTIO_NET=m
-+CONFIG_NLMON=m
-+# CONFIG_NET_VENDOR_3COM is not set
-+# CONFIG_NET_VENDOR_ADAPTEC is not set
-+# CONFIG_NET_VENDOR_AGERE is not set
-+# CONFIG_NET_VENDOR_ALACRITECH is not set
-+# CONFIG_NET_VENDOR_ALLWINNER is not set
-+# CONFIG_NET_VENDOR_ALTEON is not set
-+# CONFIG_NET_VENDOR_AMAZON is not set
-+# CONFIG_NET_VENDOR_AMD is not set
-+# CONFIG_NET_VENDOR_AQUANTIA is not set
-+# CONFIG_NET_VENDOR_ARC is not set
-+# CONFIG_NET_VENDOR_ATHEROS is not set
-+# CONFIG_NET_VENDOR_BROADCOM is not set
-+# CONFIG_NET_VENDOR_BROCADE is not set
-+# CONFIG_NET_VENDOR_CAVIUM is not set
-+# CONFIG_NET_VENDOR_CHELSIO is not set
-+# CONFIG_NET_VENDOR_CISCO is not set
-+# CONFIG_NET_VENDOR_CORTINA is not set
-+# CONFIG_NET_VENDOR_DEC is not set
-+# CONFIG_NET_VENDOR_DLINK is not set
-+# CONFIG_NET_VENDOR_EMULEX is not set
-+# CONFIG_NET_VENDOR_EZCHIP is not set
-+# CONFIG_NET_VENDOR_FREESCALE is not set
-+# CONFIG_NET_VENDOR_HISILICON is not set
-+# CONFIG_NET_VENDOR_HP is not set
-+# CONFIG_NET_VENDOR_HUAWEI is not set
-+# CONFIG_NET_VENDOR_INTEL is not set
-+# CONFIG_NET_VENDOR_MARVELL is not set
-+# CONFIG_NET_VENDOR_MELLANOX is not set
-+# CONFIG_NET_VENDOR_MICREL is not set
-+# CONFIG_NET_VENDOR_MICROCHIP is not set
-+# CONFIG_NET_VENDOR_MYRI is not set
-+# CONFIG_NET_VENDOR_NATSEMI is not set
-+# CONFIG_NET_VENDOR_NETRONOME is not set
-+# CONFIG_NET_VENDOR_NI is not set
-+# CONFIG_NET_VENDOR_NVIDIA is not set
-+# CONFIG_NET_VENDOR_OKI is not set
-+# CONFIG_NET_VENDOR_QLOGIC is not set
-+# CONFIG_NET_VENDOR_QUALCOMM is not set
-+# CONFIG_NET_VENDOR_RDC is not set
-+# CONFIG_NET_VENDOR_REALTEK is not set
-+# CONFIG_NET_VENDOR_RENESAS is not set
-+# CONFIG_NET_VENDOR_ROCKER is not set
-+# CONFIG_NET_VENDOR_SAMSUNG is not set
-+# CONFIG_NET_VENDOR_SEEQ is not set
-+# CONFIG_NET_VENDOR_SOLARFLARE is not set
-+# CONFIG_NET_VENDOR_SILAN is not set
-+# CONFIG_NET_VENDOR_SIS is not set
-+# CONFIG_NET_VENDOR_SMSC is not set
-+# CONFIG_NET_VENDOR_SOCIONEXT is not set
-+CONFIG_STMMAC_ETH=y
-+# CONFIG_DWMAC_IPQ806X is not set
-+# CONFIG_DWMAC_MESON is not set
-+# CONFIG_DWMAC_ROCKCHIP is not set
-+# CONFIG_NET_VENDOR_SUN is not set
-+# CONFIG_NET_VENDOR_SYNOPSYS is not set
-+# CONFIG_NET_VENDOR_TEHUTI is not set
-+# CONFIG_NET_VENDOR_TI is not set
-+# CONFIG_NET_VENDOR_VIA is not set
-+# CONFIG_NET_VENDOR_WIZNET is not set
-+CONFIG_MDIO_BITBANG=y
-+CONFIG_MDIO_BUS_MUX_MMIOREG=y
-+CONFIG_LED_TRIGGER_PHY=y
-+CONFIG_MICROCHIP_PHY=m
-+CONFIG_REALTEK_PHY=y
-+CONFIG_STE10XP=y
-+CONFIG_USB_PEGASUS=m
-+CONFIG_USB_RTL8150=m
-+CONFIG_USB_RTL8152=m
-+CONFIG_USB_USBNET=m
-+CONFIG_USB_NET_DM9601=m
-+CONFIG_USB_NET_SR9800=m
-+CONFIG_USB_NET_SMSC75XX=m
-+CONFIG_USB_NET_SMSC95XX=m
-+CONFIG_USB_NET_PLUSB=m
-+CONFIG_USB_NET_MCS7830=m
-+CONFIG_AT76C50X_USB=m
-+CONFIG_BRCMFMAC=m
-+CONFIG_WL18XX=m
-+CONFIG_WLCORE_SDIO=m
-+CONFIG_INPUT_EVDEV=y
-+CONFIG_KEYBOARD_ADC=m
-+CONFIG_KEYBOARD_GPIO=y
-+CONFIG_KEYBOARD_CROS_EC=y
-+CONFIG_INPUT_MISC=y
-+CONFIG_INPUT_PM8941_PWRKEY=y
-+CONFIG_INPUT_HISI_POWERKEY=y
-+# CONFIG_SERIO_SERPORT is not set
-+CONFIG_SERIO_AMBAKMI=y
-+CONFIG_LEGACY_PTY_COUNT=16
-+CONFIG_SERIAL_8250=y
-+CONFIG_SERIAL_8250_CONSOLE=y
-+CONFIG_SERIAL_8250_EXTENDED=y
-+CONFIG_SERIAL_8250_SHARE_IRQ=y
-+CONFIG_SERIAL_8250_BCM2835AUX=y
-+CONFIG_SERIAL_8250_DW=y
-+CONFIG_SERIAL_8250_MT6577=y
-+CONFIG_SERIAL_8250_UNIPHIER=y
-+CONFIG_SERIAL_OF_PLATFORM=y
-+CONFIG_SERIAL_AMBA_PL011=y
-+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
-+CONFIG_SERIAL_MESON=y
-+CONFIG_SERIAL_MESON_CONSOLE=y
-+CONFIG_SERIAL_SAMSUNG=y
-+CONFIG_SERIAL_SAMSUNG_CONSOLE=y
-+CONFIG_SERIAL_TEGRA=y
-+CONFIG_SERIAL_SH_SCI=y
-+CONFIG_SERIAL_MSM=y
-+CONFIG_SERIAL_MSM_CONSOLE=y
-+CONFIG_SERIAL_XILINX_PS_UART=y
-+CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
-+CONFIG_SERIAL_MVEBU_UART=y
-+CONFIG_SERIAL_DEV_BUS=y
-+CONFIG_VIRTIO_CONSOLE=y
-+CONFIG_I2C=y
-+CONFIG_I2C_CHARDEV=y
-+CONFIG_I2C_MUX=y
-+CONFIG_I2C_MUX_PCA954x=y
-+CONFIG_I2C_BCM2835=m
-+CONFIG_I2C_DESIGNWARE_PLATFORM=y
-+CONFIG_I2C_IMX=y
-+CONFIG_I2C_MESON=y
-+CONFIG_I2C_MV64XXX=y
-+CONFIG_I2C_PXA=y
-+CONFIG_I2C_QUP=y
-+CONFIG_I2C_RK3X=y
-+CONFIG_I2C_SH_MOBILE=y
-+CONFIG_I2C_TEGRA=y
-+CONFIG_I2C_UNIPHIER_F=y
-+CONFIG_I2C_RCAR=y
-+CONFIG_I2C_CROS_EC_TUNNEL=y
-+CONFIG_SPI=y
-+CONFIG_SPI_BCM2835=m
-+CONFIG_SPI_BCM2835AUX=m
-+CONFIG_SPI_MESON_SPICC=m
-+CONFIG_SPI_MESON_SPIFC=m
-+CONFIG_SPI_ORION=y
-+CONFIG_SPI_PL022=y
-+CONFIG_SPI_ROCKCHIP=y
-+CONFIG_SPI_QUP=y
-+CONFIG_SPI_S3C64XX=y
-+CONFIG_SPI_SPIDEV=m
-+CONFIG_SPMI=y
-+CONFIG_PINCTRL_SINGLE=y
-+CONFIG_PINCTRL_MAX77620=y
-+CONFIG_PINCTRL_IPQ8074=y
-+CONFIG_PINCTRL_MSM8916=y
-+CONFIG_PINCTRL_MSM8994=y
-+CONFIG_PINCTRL_MSM8996=y
-+CONFIG_PINCTRL_QDF2XXX=y
-+CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
+ 		}
+ 	}
+ 	size = 64M
+diff --git a/board/friendlyarm/nanopi-neo-plus2/linux-extras.config b/board/friendlyarm/nanopi-neo-plus2/linux-extras.config
+index 52b4b4b29e..a6a46ba542 100644
+--- a/board/friendlyarm/nanopi-neo-plus2/linux-extras.config
++++ b/board/friendlyarm/nanopi-neo-plus2/linux-extras.config
+@@ -8,3 +8,7 @@ CONFIG_CFG80211_WEXT=y
+ CONFIG_WLAN=y
+ CONFIG_WLAN_VENDOR_BROADCOM=y
+ CONFIG_BRCMFMAC=m
++
++# MediaTek pinctrl drivers
 +CONFIG_GPIO_SYSFS=y
-+# CONFIG_GPIO_BRCMSTB is not set
-+CONFIG_GPIO_DWAPB=y
-+# CONFIG_GPIO_TEGRA is not set
-+# CONFIG_GPIO_TEGRA186 is not set
-+CONFIG_GPIO_PCA953X=y
-+CONFIG_GPIO_PCA953X_IRQ=y
-+CONFIG_GPIO_MAX77620=y
-+CONFIG_POWER_RESET_MSM=y
-+CONFIG_POWER_RESET_XGENE=y
-+CONFIG_POWER_RESET_SYSCON=y
-+CONFIG_SYSCON_REBOOT_MODE=y
-+CONFIG_BATTERY_BQ27XXX=y
-+CONFIG_SENSORS_ARM_SCPI=y
-+CONFIG_SENSORS_LM90=m
-+CONFIG_SENSORS_INA2XX=m
-+CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
-+CONFIG_CPU_THERMAL=y
-+CONFIG_THERMAL_EMULATION=y
-+CONFIG_RCAR_GEN3_THERMAL=y
-+CONFIG_BRCMSTB_THERMAL=m
-+CONFIG_SUN8I_THS=y
-+CONFIG_EXYNOS_THERMAL=y
-+CONFIG_TEGRA_BPMP_THERMAL=m
-+CONFIG_QCOM_TSENS=y
-+CONFIG_UNIPHIER_THERMAL=y
-+CONFIG_WATCHDOG=y
-+CONFIG_S3C2410_WATCHDOG=y
-+CONFIG_MESON_GXBB_WATCHDOG=m
-+CONFIG_MESON_WATCHDOG=m
-+CONFIG_RENESAS_WDT=y
-+CONFIG_UNIPHIER_WATCHDOG=y
-+CONFIG_BCM2835_WDT=y
-+CONFIG_MFD_AXP20X_RSB=y
-+CONFIG_MFD_CROS_EC=y
-+CONFIG_MFD_EXYNOS_LPASS=m
-+CONFIG_MFD_HI6421_PMIC=y
-+CONFIG_MFD_HI655X_PMIC=y
-+CONFIG_MFD_MAX77620=y
-+CONFIG_MFD_SPMI_PMIC=y
-+CONFIG_MFD_RK808=y
-+CONFIG_MFD_SEC_CORE=y
-+CONFIG_REGULATOR_FIXED_VOLTAGE=y
-+CONFIG_REGULATOR_AXP20X=y
-+CONFIG_REGULATOR_FAN53555=y
-+CONFIG_REGULATOR_GPIO=y
-+CONFIG_REGULATOR_HI6421V530=y
-+CONFIG_REGULATOR_HI655X=y
-+CONFIG_REGULATOR_MAX77620=y
-+CONFIG_REGULATOR_PWM=y
-+CONFIG_REGULATOR_QCOM_SMD_RPM=y
-+CONFIG_REGULATOR_QCOM_SPMI=y
-+CONFIG_REGULATOR_RK808=y
-+CONFIG_REGULATOR_S2MPS11=y
-+CONFIG_RC_CORE=m
-+CONFIG_RC_DECODERS=y
-+CONFIG_RC_DEVICES=y
-+CONFIG_IR_MESON=m
-+CONFIG_MEDIA_SUPPORT=m
-+CONFIG_MEDIA_CAMERA_SUPPORT=y
-+CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
-+CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
-+CONFIG_MEDIA_CONTROLLER=y
-+CONFIG_VIDEO_V4L2_SUBDEV_API=y
-+# CONFIG_DVB_NET is not set
-+CONFIG_V4L_MEM2MEM_DRIVERS=y
-+CONFIG_VIDEO_SAMSUNG_S5P_JPEG=m
-+CONFIG_VIDEO_SAMSUNG_S5P_MFC=m
-+CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC=m
-+CONFIG_VIDEO_RENESAS_FCP=m
-+CONFIG_VIDEO_RENESAS_VSP1=m
-+CONFIG_DRM=m
-+CONFIG_DRM_NOUVEAU=m
-+CONFIG_DRM_EXYNOS=m
-+CONFIG_DRM_EXYNOS5433_DECON=y
-+CONFIG_DRM_EXYNOS7_DECON=y
-+CONFIG_DRM_EXYNOS_DSI=y
-+# CONFIG_DRM_EXYNOS_DP is not set
-+CONFIG_DRM_EXYNOS_HDMI=y
-+CONFIG_DRM_EXYNOS_MIC=y
-+CONFIG_DRM_ROCKCHIP=m
-+CONFIG_ROCKCHIP_ANALOGIX_DP=y
-+CONFIG_ROCKCHIP_CDN_DP=y
-+CONFIG_ROCKCHIP_DW_HDMI=y
-+CONFIG_ROCKCHIP_DW_MIPI_DSI=y
-+CONFIG_ROCKCHIP_INNO_HDMI=y
-+CONFIG_DRM_RCAR_DU=m
-+CONFIG_DRM_TEGRA=m
-+CONFIG_DRM_PANEL_SIMPLE=m
-+CONFIG_DRM_I2C_ADV7511=m
-+CONFIG_DRM_VC4=m
-+CONFIG_DRM_HISI_HIBMC=m
-+CONFIG_DRM_HISI_KIRIN=m
-+CONFIG_DRM_MESON=m
-+CONFIG_FB=y
-+CONFIG_FB_ARMCLCD=y
-+CONFIG_BACKLIGHT_GENERIC=m
-+CONFIG_BACKLIGHT_PWM=m
-+CONFIG_BACKLIGHT_LP855X=m
-+CONFIG_LOGO=y
-+# CONFIG_LOGO_LINUX_MONO is not set
-+# CONFIG_LOGO_LINUX_VGA16 is not set
-+CONFIG_SOUND=y
-+CONFIG_SND=y
-+CONFIG_SND_SOC=y
-+CONFIG_SND_BCM2835_SOC_I2S=m
-+CONFIG_SND_SOC_SAMSUNG=y
-+CONFIG_SND_SOC_RCAR=m
-+CONFIG_SND_SOC_AK4613=m
-+CONFIG_SND_SIMPLE_CARD=y
-+CONFIG_USB=y
-+CONFIG_USB_OTG=y
-+CONFIG_USB_XHCI_HCD=y
-+CONFIG_USB_XHCI_TEGRA=y
-+CONFIG_USB_EHCI_HCD=y
-+CONFIG_USB_EHCI_EXYNOS=y
-+CONFIG_USB_EHCI_HCD_PLATFORM=y
-+CONFIG_USB_OHCI_HCD=y
-+CONFIG_USB_OHCI_EXYNOS=y
-+CONFIG_USB_OHCI_HCD_PLATFORM=y
-+CONFIG_USB_RENESAS_USBHS=m
-+CONFIG_USB_STORAGE=y
-+CONFIG_USB_MUSB_HDRC=y
-+CONFIG_USB_MUSB_SUNXI=y
-+CONFIG_USB_DWC3=y
-+CONFIG_USB_DWC2=y
-+CONFIG_USB_CHIPIDEA=y
-+CONFIG_USB_CHIPIDEA_UDC=y
-+CONFIG_USB_CHIPIDEA_HOST=y
-+CONFIG_USB_ISP1760=y
-+CONFIG_USB_HSIC_USB3503=y
-+CONFIG_NOP_USB_XCEIV=y
-+CONFIG_USB_ULPI=y
-+CONFIG_USB_GADGET=y
-+CONFIG_USB_RENESAS_USBHS_UDC=m
-+CONFIG_USB_RENESAS_USB3=m
-+CONFIG_MMC=y
-+CONFIG_MMC_BLOCK_MINORS=32
-+CONFIG_MMC_ARMMMCI=y
-+CONFIG_MMC_SDHCI=y
-+CONFIG_MMC_SDHCI_ACPI=y
-+CONFIG_MMC_SDHCI_PLTFM=y
-+CONFIG_MMC_SDHCI_OF_ARASAN=y
-+CONFIG_MMC_SDHCI_OF_ESDHC=y
-+CONFIG_MMC_SDHCI_CADENCE=y
-+CONFIG_MMC_SDHCI_TEGRA=y
-+CONFIG_MMC_SDHCI_F_SDH30=y
-+CONFIG_MMC_MESON_GX=y
-+CONFIG_MMC_SDHCI_MSM=y
-+CONFIG_MMC_SPI=y
-+CONFIG_MMC_SDHI=y
-+CONFIG_MMC_DW=y
-+CONFIG_MMC_DW_EXYNOS=y
-+CONFIG_MMC_DW_K3=y
-+CONFIG_MMC_DW_ROCKCHIP=y
-+CONFIG_MMC_SUNXI=y
-+CONFIG_MMC_BCM2835=y
-+CONFIG_MMC_SDHCI_XENON=y
-+CONFIG_NEW_LEDS=y
-+CONFIG_LEDS_CLASS=y
-+CONFIG_LEDS_GPIO=y
-+CONFIG_LEDS_PWM=y
-+CONFIG_LEDS_SYSCON=y
-+CONFIG_LEDS_TRIGGER_DISK=y
-+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-+CONFIG_LEDS_TRIGGER_CPU=y
-+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
-+CONFIG_LEDS_TRIGGER_PANIC=y
-+CONFIG_EDAC=y
-+CONFIG_EDAC_GHES=y
-+CONFIG_RTC_CLASS=y
-+CONFIG_RTC_DRV_MAX77686=y
-+CONFIG_RTC_DRV_RK808=m
-+CONFIG_RTC_DRV_S5M=y
-+CONFIG_RTC_DRV_DS3232=y
-+CONFIG_RTC_DRV_EFI=y
-+CONFIG_RTC_DRV_S3C=y
-+CONFIG_RTC_DRV_PL031=y
-+CONFIG_RTC_DRV_SUN6I=y
-+CONFIG_RTC_DRV_ARMADA38X=y
-+CONFIG_RTC_DRV_TEGRA=y
-+CONFIG_RTC_DRV_XGENE=y
-+CONFIG_DMADEVICES=y
-+CONFIG_DMA_BCM2835=m
-+CONFIG_K3_DMA=y
-+CONFIG_MV_XOR_V2=y
-+CONFIG_PL330_DMA=y
-+CONFIG_TEGRA20_APB_DMA=y
-+CONFIG_QCOM_BAM_DMA=y
-+CONFIG_QCOM_HIDMA_MGMT=y
-+CONFIG_QCOM_HIDMA=y
-+CONFIG_RCAR_DMAC=y
-+CONFIG_RENESAS_USB_DMAC=m
-+CONFIG_VFIO=y
-+CONFIG_VFIO_PCI=y
-+CONFIG_VIRTIO_PCI=y
-+CONFIG_VIRTIO_BALLOON=y
-+CONFIG_VIRTIO_MMIO=y
-+CONFIG_XEN_GNTDEV=y
-+CONFIG_XEN_GRANT_DEV_ALLOC=y
-+CONFIG_COMMON_CLK_RK808=y
-+CONFIG_COMMON_CLK_SCPI=y
-+CONFIG_COMMON_CLK_CS2000_CP=y
-+CONFIG_COMMON_CLK_S2MPS11=y
-+CONFIG_CLK_QORIQ=y
-+CONFIG_COMMON_CLK_PWM=y
-+CONFIG_COMMON_CLK_QCOM=y
-+CONFIG_QCOM_CLK_SMD_RPM=y
-+CONFIG_IPQ_GCC_8074=y
-+CONFIG_MSM_GCC_8916=y
-+CONFIG_MSM_GCC_8994=y
-+CONFIG_MSM_MMCC_8996=y
-+CONFIG_HWSPINLOCK=y
-+CONFIG_HWSPINLOCK_QCOM=y
-+CONFIG_ARM_MHU=y
-+CONFIG_PLATFORM_MHU=y
-+CONFIG_BCM2835_MBOX=y
-+CONFIG_QCOM_APCS_IPC=y
-+CONFIG_ROCKCHIP_IOMMU=y
-+CONFIG_TEGRA_IOMMU_SMMU=y
-+CONFIG_ARM_SMMU=y
-+CONFIG_ARM_SMMU_V3=y
-+CONFIG_QCOM_IOMMU=y
-+CONFIG_RPMSG_QCOM_SMD=y
-+CONFIG_QCOM_SMEM=y
-+CONFIG_QCOM_SMD_RPM=y
-+CONFIG_QCOM_SMP2P=y
-+CONFIG_QCOM_SMSM=y
-+CONFIG_ARCH_R8A7795=y
-+CONFIG_ARCH_R8A7796=y
-+CONFIG_ARCH_R8A77965=y
-+CONFIG_ARCH_R8A77970=y
-+CONFIG_ARCH_R8A77980=y
-+CONFIG_ARCH_R8A77995=y
-+CONFIG_ROCKCHIP_PM_DOMAINS=y
-+CONFIG_ARCH_TEGRA_132_SOC=y
-+CONFIG_ARCH_TEGRA_210_SOC=y
-+CONFIG_ARCH_TEGRA_186_SOC=y
-+CONFIG_ARCH_TEGRA_194_SOC=y
-+CONFIG_EXTCON_USB_GPIO=y
-+CONFIG_MEMORY=y
-+CONFIG_IIO=y
-+CONFIG_EXYNOS_ADC=y
-+CONFIG_ROCKCHIP_SARADC=m
-+CONFIG_PWM=y
-+CONFIG_PWM_BCM2835=m
-+CONFIG_PWM_CROS_EC=m
-+CONFIG_PWM_MESON=m
-+CONFIG_PWM_RCAR=m
-+CONFIG_PWM_ROCKCHIP=y
-+CONFIG_PWM_SAMSUNG=y
-+CONFIG_PWM_TEGRA=m
-+CONFIG_PHY_XGENE=y
-+CONFIG_PHY_SUN4I_USB=y
-+CONFIG_PHY_HI6220_USB=y
-+CONFIG_PHY_MVEBU_CP110_COMPHY=y
-+CONFIG_PHY_QCOM_USB_HS=y
-+CONFIG_PHY_RCAR_GEN3_USB2=y
-+CONFIG_PHY_RCAR_GEN3_USB3=m
-+CONFIG_PHY_ROCKCHIP_EMMC=y
-+CONFIG_PHY_ROCKCHIP_INNO_USB2=y
-+CONFIG_PHY_ROCKCHIP_PCIE=m
-+CONFIG_PHY_TEGRA_XUSB=y
-+CONFIG_QCOM_L2_PMU=y
-+CONFIG_QCOM_L3_PMU=y
-+CONFIG_QCOM_QFPROM=y
-+CONFIG_UNIPHIER_EFUSE=y
-+CONFIG_MESON_EFUSE=m
-+CONFIG_TEE=y
-+CONFIG_OPTEE=y
-+CONFIG_EXT2_FS=y
-+CONFIG_EXT3_FS=y
-+CONFIG_EXT4_FS_POSIX_ACL=y
-+CONFIG_FANOTIFY=y
-+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
-+CONFIG_QUOTA=y
-+# CONFIG_PRINT_QUOTA_WARNING is not set
-+CONFIG_AUTOFS4_FS=y
-+CONFIG_VFAT_FS=y
-+CONFIG_HUGETLBFS=y
-+CONFIG_CONFIGFS_FS=y
-+CONFIG_EFIVAR_FS=y
-+CONFIG_NFS_FS=y
-+CONFIG_NFS_V4=y
-+CONFIG_NFS_V4_1=y
-+CONFIG_NFS_V4_2=y
-+CONFIG_ROOT_NFS=y
-+CONFIG_9P_FS=y
-+CONFIG_NLS_CODEPAGE_437=y
-+CONFIG_NLS_ISO8859_1=y
-+CONFIG_SECURITY=y
-+CONFIG_CRYPTO_ECHAINIV=y
-+CONFIG_CRYPTO_ANSI_CPRNG=y
-+CONFIG_DMA_CMA=y
-+CONFIG_PRINTK_TIME=y
-+CONFIG_DEBUG_INFO=y
-+CONFIG_MAGIC_SYSRQ=y
-+CONFIG_DEBUG_KERNEL=y
-+# CONFIG_SCHED_DEBUG is not set
-+# CONFIG_DEBUG_PREEMPT is not set
-+CONFIG_LOCK_STAT=y
-+CONFIG_FUNCTION_TRACER=y
-+CONFIG_FTRACE_SYSCALLS=y
-+CONFIG_MEMTEST=y
-diff --git a/board/friendlyarm/nanopi-neo-plus2/my.dts b/board/friendlyarm/nanopi-neo-plus2/my.dts
++
+diff --git a/board/friendlyarm/nanopi-neo-plus2/nanopi-neo-plus2.dts b/board/friendlyarm/nanopi-neo-plus2/nanopi-neo-plus2.dts
 new file mode 100644
-index 0000000000..354d4ad530
+index 0000000000..f80383b0ff
 --- /dev/null
-+++ b/board/friendlyarm/nanopi-neo-plus2/my.dts
-@@ -0,0 +1,12 @@
++++ b/board/friendlyarm/nanopi-neo-plus2/nanopi-neo-plus2.dts
+@@ -0,0 +1,7 @@
 +/dts-v1/;
 +
-+#include "sun50i-h5-nanopi-neo-plus2.dts"
++#include "allwinner/sun50i-h5-nanopi-neo-plus2.dts"
 +
 +/ {
-+        compatible = "friendlyarm,nanopi-neo-plus2", "allwinner,sun50i-h5";
-+
-+        mymodule2 {
-+                compatible = "mymodule2";
-+                alpha2 = "on";
-+        }; 
++        /delete-node/ leds;
 +};
-diff --git a/board/friendlyarm/nanopi-neo-plus2/overlay/etc/fstab b/board/friendlyarm/nanopi-neo-plus2/overlay/etc/fstab
+diff --git a/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/etc/fstab b/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/etc/fstab
 new file mode 100644
-index 0000000000..5a655a4aed
+index 0000000000..970cea4fcc
 --- /dev/null
-+++ b/board/friendlyarm/nanopi-neo-plus2/overlay/etc/fstab
-@@ -0,0 +1,9 @@
++++ b/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/etc/fstab
+@@ -0,0 +1,10 @@
 +# <file system>	<mount pt>	<type>	<options>	<dump>	<pass>
 +/dev/root	/		ext2	rw,noauto	0	1
 +proc		/proc		proc	defaults	0	0
@@ -1230,12 +75,13 @@ index 0000000000..5a655a4aed
 +tmpfs		/tmp		tmpfs	mode=1777	0	0
 +tmpfs		/run		tmpfs	mode=0755,nosuid,nodev	0	0
 +sysfs		/sys		sysfs	defaults	0	0
-+192.168.0.4:/home/lmi/workspace /usr/workspace nfs hard,intr,nolock 0 0
-diff --git a/board/friendlyarm/nanopi-neo-plus2/overlay/etc/network/interfaces b/board/friendlyarm/nanopi-neo-plus2/overlay/etc/network/interfaces
++192.168.0.4:/home/lmi/workspace /usr/workspace nfs hard,nolock 0 0
++/dev/mmcblk0p1 /usr/vfat vfat   defaults    0   0
+diff --git a/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/etc/network/interfaces b/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/etc/network/interfaces
 new file mode 100644
-index 0000000000..8e507ad7b2
+index 0000000000..1c9a9e2625
 --- /dev/null
-+++ b/board/friendlyarm/nanopi-neo-plus2/overlay/etc/network/interfaces
++++ b/board/friendlyarm/nanopi-neo-plus2/rootfs_overlay/etc/network/interfaces
 @@ -0,0 +1,10 @@
 +# interface file auto-generated by buildroot
 +
@@ -1246,211 +92,128 @@ index 0000000000..8e507ad7b2
 +iface eth0 inet static
 +    address 192.168.0.14
 +    netmask 255.255.255.0
-+    gateway 192.19.168.0.4
-diff --git a/board/friendlyarm/nanopi-neo-plus2/readme.txt b/board/friendlyarm/nanopi-neo-plus2/readme.txt
-new file mode 100644
-index 0000000000..0f445e2bea
---- /dev/null
-+++ b/board/friendlyarm/nanopi-neo-plus2/readme.txt
-@@ -0,0 +1,37 @@
-+Intro
-+=====
-+
-+This default configuration will allow you to start experimenting with the
-+buildroot environment for the Nanopi NEO2. With the current configuration
-+it will bring-up the board, and allow access through the serial console.
-+
-+Nanopi NEO2 link:
-+http://nanopi.io/nanopi-neo2.html
-+
-+Wiki link:
-+https://openedev.amarulasolutions.com/display/ODWIKI/FriendlyARM+NanoPi+NEO2
-+
-+This configuration uses U-Boot mainline and kernel mainline.
-+
-+How to build
-+============
-+
-+    $ make friendlyarm_nanopi_neo2_defconfig
-+    $ make
-+
-+Note: you will need access to the internet to download the required
-+sources.
-+
-+How to write the SD card
-+========================
-+
-+Once the build process is finished you will have an image called "sdcard.img"
-+in the output/images/ directory.
-+
-+Copy the bootable "sdcard.img" onto an SD card with "dd":
-+
-+  $ sudo dd if=output/images/sdcard.img of=/dev/sdX
-+  $ sudo sync
-+
-+Insert the micro SDcard in your Nanopi NEO2 and power it up. The console
-+is on the serial line, 115200 8N1.
-diff --git a/board/friendlyarm/nanopi-neo-plus2/uboot.patch b/board/friendlyarm/nanopi-neo-plus2/uboot.patch
-new file mode 100644
-index 0000000000..0d3a666f90
---- /dev/null
-+++ b/board/friendlyarm/nanopi-neo-plus2/uboot.patch
-@@ -0,0 +1,24 @@
-+diff --git a/arch/arm/dts/sun50i-h5-nanopi-neo-plus2.dts b/arch/arm/dts/sun50i-h5-nanopi-neo-plus2.dts
-+index f1406c224b..1dde153669 100644
-+--- a/arch/arm/dts/sun50i-h5-nanopi-neo-plus2.dts
-++++ b/arch/arm/dts/sun50i-h5-nanopi-neo-plus2.dts
-+@@ -104,3 +104,18 @@ 
-+ &usbphy {
-+ 	status = "okay";
-+ };
-++
-++&emac {
-++	pinctrl-names = "default";
-++	pinctrl-0 = <&emac_rgmii_pins>;
-++	phy-mode = "rgmii";
-++	phy-handle = <&ext_rgmii_phy>;
-++	status = "okay";
-++};
-++
-++&external_mdio {
-++	ext_rgmii_phy: ethernet-phy@7 {
-++		compatible = "ethernet-phy-ieee802.3-c22";
-++		reg = <7>;
-++	};
-++};
-+
-diff --git a/board/friendlyarm/nanopi-neo-plus2/uboot_defconfig b/board/friendlyarm/nanopi-neo-plus2/uboot_defconfig
-new file mode 100644
-index 0000000000..f1c64ba55e
---- /dev/null
-+++ b/board/friendlyarm/nanopi-neo-plus2/uboot_defconfig
-@@ -0,0 +1,16 @@
-+CONFIG_ARM=y
-+CONFIG_ARCH_SUNXI=y
-+CONFIG_SPL=y
-+CONFIG_MACH_SUN50I_H5=y
-+CONFIG_DRAM_CLK=408
-+CONFIG_DRAM_ZQ=3881977
-+CONFIG_MACPWR="PD6"
-+CONFIG_MMC_SUNXI_SLOT_EXTRA=2
-+CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-nanopi-neo-plus2"
-+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-+# CONFIG_CMD_FLASH is not set
-+# CONFIG_SPL_DOS_PARTITION is not set
-+# CONFIG_SPL_EFI_PARTITION is not set
-+CONFIG_ENV_FAT_DEVICE_AND_PART="0:auto"
-+CONFIG_SUN8I_EMAC=y
-+CONFIG_USB_EHCI_HCD=y
-diff --git a/configs/nanopi_neo_plus2_defconfig b/configs/nanopi_neo_plus2_defconfig
-new file mode 100644
-index 0000000000..67e02d726b
---- /dev/null
-+++ b/configs/nanopi_neo_plus2_defconfig
-@@ -0,0 +1,103 @@
-+BR2_aarch64=y
-+BR2_ARM_FPU_VFPV4=y
++    gateway 192.168.0.4
+\ No newline at end of file
+diff --git a/configs/friendlyarm_nanopi_neo_plus2_defconfig b/configs/friendlyarm_nanopi_neo_plus2_defconfig
+index 461e468cb6..f9539225b4 100644
+--- a/configs/friendlyarm_nanopi_neo_plus2_defconfig
++++ b/configs/friendlyarm_nanopi_neo_plus2_defconfig
+@@ -1,24 +1,66 @@
+ BR2_aarch64=y
+-BR2_cortex_a53=y
+ BR2_ARM_FPU_VFPV4=y
+-
+-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_3=y
 +BR2_TOOLCHAIN_EXTERNAL=y
-+BR2_PACKAGE_HOST_GDB=y
-+BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY=y
 +BR2_TARGET_GENERIC_ISSUE="Welcome to FriendlyARM Nanopi NEO Plus2"
+ BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
+ BR2_ROOTFS_OVERLAY="board/friendlyarm/nanopi-neo-plus2/rootfs_overlay"
+-
+-# Firmware
++BR2_ROOTFS_POST_BUILD_SCRIPT="board/friendlyarm/nanopi-neo-plus2/post-build.sh"
 +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
 +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/friendlyarm/nanopi-neo-plus2/genimage.cfg"
 +BR2_LINUX_KERNEL=y
 +BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.2.14"
-+BR2_LINUX_KERNEL_PATCH="board/friendlyarm/nanopi-neo-plus2/linux.patch"
-+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
-+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/friendlyarm/nanopi-neo-plus2/linux_defconfig"
++BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.8.2"
++BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
++BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/friendlyarm/nanopi-neo-plus2/linux-extras.config"
 +BR2_LINUX_KERNEL_DTS_SUPPORT=y
-+BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h5-nanopi-neo-plus2"
-+BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT=y
++BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/friendlyarm/nanopi-neo-plus2/nanopi-neo-plus2.dts"
 +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
-+BR2_PACKAGE_LINUX_TOOLS_CPUPOWER=y
-+BR2_PACKAGE_LINUX_TOOLS_GPIO=y
 +BR2_PACKAGE_LINUX_TOOLS_PERF=y
-+BR2_PACKAGE_LINUX_TOOLS_PERF_TUI=y
-+BR2_PACKAGE_LINUX_TOOLS_TMON=y
 +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
-+BR2_PACKAGE_GDB=y
-+BR2_PACKAGE_GDB_SERVER=y
-+BR2_PACKAGE_GDB_DEBUGGER=y
-+BR2_PACKAGE_LSOF=y
 +BR2_PACKAGE_LTRACE=y
-+BR2_PACKAGE_OPROFILE=y
 +BR2_PACKAGE_STRACE=y
-+BR2_PACKAGE_TRACE_CMD=y
 +BR2_PACKAGE_VALGRIND=y
-+BR2_PACKAGE_BINUTILS_TARGET=y
-+BR2_PACKAGE_QT5=y
-+BR2_PACKAGE_XORG7=y
-+BR2_PACKAGE_I2C_TOOLS=y
-+BR2_PACKAGE_MEMTOOL=y
++BR2_PACKAGE_LINUX_FIRMWARE=y
++BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX=y
 +BR2_PACKAGE_UBOOT_TOOLS=y
 +BR2_PACKAGE_MICROPYTHON=y
 +BR2_PACKAGE_MICROPYTHON_LIB=y
 +BR2_PACKAGE_SQLITE=y
-+BR2_PACKAGE_SQLITE_STAT3=y
++BR2_PACKAGE_SQLITE_STAT4=y
 +BR2_PACKAGE_SQLITE_ENABLE_COLUMN_METADATA=y
 +BR2_PACKAGE_SQLITE_ENABLE_FTS3=y
 +BR2_PACKAGE_SQLITE_ENABLE_JSON1=y
 +BR2_PACKAGE_SQLITE_ENABLE_UNLOCK_NOTIFY=y
 +BR2_PACKAGE_SQLITE_SECURE_DELETE=y
 +BR2_PACKAGE_SQLITE_NO_SYNC=y
-+BR2_PACKAGE_LIBNETFILTER_ACCT=y
-+BR2_PACKAGE_LIBNETFILTER_CONNTRACK=y
-+BR2_PACKAGE_LIBNETFILTER_CTHELPER=y
-+BR2_PACKAGE_LIBNETFILTER_CTTIMEOUT=y
-+BR2_PACKAGE_LIBNETFILTER_LOG=y
-+BR2_PACKAGE_LIBNETFILTER_QUEUE=y
-+BR2_PACKAGE_ELFUTILS_PROGS=y
-+BR2_PACKAGE_NCURSES_WCHAR=y
-+BR2_PACKAGE_NCURSES_TARGET_PROGS=y
-+BR2_PACKAGE_HAVEGED=y
++BR2_PACKAGE_EXPAT=y
++BR2_PACKAGE_JSON_C=y
++BR2_PACKAGE_LIBYAML=y
 +BR2_PACKAGE_DROPBEAR=y
 +BR2_PACKAGE_IPTABLES=y
 +BR2_PACKAGE_IPTABLES_BPF_NFSYNPROXY=y
 +BR2_PACKAGE_IPTABLES_NFTABLES=y
 +BR2_PACKAGE_IPUTILS=y
++BR2_PACKAGE_IW=y
 +BR2_PACKAGE_OPENSSH=y
++BR2_PACKAGE_WIRELESS_TOOLS=y
++BR2_PACKAGE_WIRELESS_TOOLS_LIB=y
++BR2_PACKAGE_WPA_SUPPLICANT=y
++BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
 +BR2_PACKAGE_HTOP=y
 +BR2_PACKAGE_PROCPS_NG=y
-+BR2_PACKAGE_VIM=y
 +BR2_TARGET_ROOTFS_EXT2=y
 +BR2_TARGET_ROOTFS_EXT2_4=y
-+BR2_TARGET_ROOTFS_EXT2_LABEL="rootfs"
-+BR2_TARGET_ROOTFS_EXT2_SIZE="160M"
-+BR2_TARGET_ROOTFS_SQUASHFS=y
-+BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
-+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y
-+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/apritzel/arm-trusted-firmware.git"
-+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="aa75c8da415158a94b82a430b2b40000778e851f"
++BR2_TARGET_ROOTFS_EXT2_SIZE="200M"
+ BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
+ BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y
+ BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/apritzel/arm-trusted-firmware.git"
+-BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50iw1p1"
+ BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="aa75c8da415158a94b82a430b2b40000778e851f"
+-R2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y
+-
+-# Bootloader
 +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="sun50iw1p1"
-+BR2_TARGET_UBOOT=y
-+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
-+BR2_TARGET_UBOOT_CUSTOM_VERSION=y
-+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.01"
-+BR2_TARGET_UBOOT_PATCH="board/friendlyarm/nanopi-neo-plus2/uboot.patch"
-+BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG=y
-+BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE="board/friendlyarm/nanopi-neo-plus2/uboot_defconfig"
-+BR2_TARGET_UBOOT_NEEDS_DTC=y
-+BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y
-+BR2_TARGET_UBOOT_FORMAT_CUSTOM=y
-+BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb"
-+BR2_TARGET_UBOOT_SPL=y
-+BR2_TARGET_UBOOT_SPL_NAME="spl/sunxi-spl.bin"
+ BR2_TARGET_UBOOT=y
+ BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
+ BR2_TARGET_UBOOT_CUSTOM_VERSION=y
+-BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2019.10"
++BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.07"
+ BR2_TARGET_UBOOT_BOARD_DEFCONFIG="nanopi_neo_plus2"
+ BR2_TARGET_UBOOT_NEEDS_DTC=y
+ BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y
+@@ -27,36 +69,8 @@ BR2_TARGET_UBOOT_FORMAT_CUSTOM=y
+ BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb"
+ BR2_TARGET_UBOOT_SPL=y
+ BR2_TARGET_UBOOT_SPL_NAME="spl/sunxi-spl.bin"
+-
+-# Kernel
+-BR2_LINUX_KERNEL=y
+-BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.3.4"
+-BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
+-BR2_LINUX_KERNEL_DTS_SUPPORT=y
+-BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h5-nanopi-neo-plus2"
+-BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+-BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/friendlyarm/nanopi-neo-plus2/linux-extras.config"
+-
+-# Filesystem
+-BR2_TARGET_GENERIC_ISSUE="Welcome to FriendlyARM Nanopi NEO Plus2"
+-BR2_TARGET_ROOTFS_EXT2=y
+-BR2_TARGET_ROOTFS_EXT2_4=y
 +BR2_TARGET_UBOOT_BOOT_SCRIPT=y
 +BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="board/friendlyarm/nanopi-neo-plus2/boot.cmd"
-+BR2_PACKAGE_HOST_DOSFSTOOLS=y
-+BR2_PACKAGE_HOST_GENIMAGE=y
-+BR2_PACKAGE_HOST_MTOOLS=y
-+BR2_PACKAGE_HOST_PYTHON_CYTHON=y
-+BR2_PACKAGE_HOST_PYTHON_LXML=y
-+BR2_PACKAGE_HOST_PYTHON_SIX=y
-+BR2_PACKAGE_HOST_PYTHON_XLRD=y
-+BR2_PACKAGE_HOST_UBOOT_TOOLS=y
-+BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y
-+BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y
+ BR2_PACKAGE_HOST_DOSFSTOOLS=y
+ BR2_PACKAGE_HOST_GENIMAGE=y
+ BR2_PACKAGE_HOST_MTOOLS=y
+-BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
+-BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/friendlyarm/nanopi-neo-plus2/genimage.cfg"
+-BR2_ROOTFS_POST_BUILD_SCRIPT="board/friendlyarm/nanopi-neo-plus2/post-build.sh"
+-
+-# wireless firmware
+-BR2_PACKAGE_LINUX_FIRMWARE=y
+-BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX=y
+-
+-# wireless tools
+-BR2_PACKAGE_IW=y
+-BR2_PACKAGE_WIRELESS_TOOLS=y
+-BR2_PACKAGE_WIRELESS_TOOLS_LIB=y
+-BR2_PACKAGE_WPA_SUPPLICANT=y
+-BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y
+-BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
 diff --git a/package/dropbear/S50dropbear b/package/dropbear/S50dropbear
 index 9474eaafaa..bb8e75850e 100644
 --- a/package/dropbear/S50dropbear
diff --git a/nano-env b/nano-env
index 5e131ea..5a77607 100755
--- a/nano-env
+++ b/nano-env
@@ -10,6 +10,6 @@ mkdir -p ~/workspace/nano
 cd ~/workspace/nano
 git clone git://git.buildroot.net/buildroot
 cd buildroot
-git checkout -b nano 2019.08
+git checkout -b nano 2020.05.1
 patch -p1 < ${SCRIPTDIR}/config/buildroot_nano.patch
-make nanopi_neo_plus2_defconfig
+make friendlyarm_nanopi_neo_plus2_defconfig
-- 
GitLab