--- /dev/null
+#
+# Copyright (C) 2021 OpenWrt.org
+#
+
+[ -e /etc/config/ubootenv ] && exit 0
+
+touch /etc/config/ubootenv
+
+. /lib/uboot-envtools.sh
+. /lib/functions.sh
+
+board=$(board_name)
+
+case "$board" in
+bananapi,bpi-r3)
+ . /lib/upgrade/common.sh
+ export_bootdevice
+ export_partdevice rootdev 0
+ case "$rootdev" in
+ mmc*)
+ local envdev=$(find_mmc_part "ubootenv" $rootdev)
+ ubootenv_add_uci_config "$envdev" "0x0" "0x40000" "0x40000" "1"
+ ubootenv_add_uci_config "$envdev" "0x40000" "0x40000" "0x40000" "1"
+ ;;
+ mtd*)
+ local envdev=/dev/mtd$(find_mtd_index "u-boot-env")
+ ubootenv_add_uci_config "$envdev" "0x0" "0x20000" "0x20000" "1"
+ ubootenv_add_uci_config "$envdev" "0x20000" "0x20000" "0x20000" "1"
+ ;;
+ *)
+ . /lib/upgrade/nand.sh
+ local envubi=$(nand_find_ubi ubi)
+ local envdev=/dev/$(nand_find_volume $envubi ubootenv)
+ local envdev2=/dev/$(nand_find_volume $envubi ubootenv2)
+ ubootenv_add_uci_config "$envdev" "0x0" "0x1f000" "0x1f000" "1"
+ ubootenv_add_uci_config "$envdev2" "0x0" "0x1f000" "0x1f000" "1"
+ ;;
+ esac
+ ;;
+esac
+
+config_load ubootenv
+config_foreach ubootenv_add_app_config ubootenv
+
+exit 0