REQUIRE_IMAGE_METADATA=1
+RAMFS_COPY_BIN='fitblk'
asus_initial_setup()
{
esac
}
+platform_get_bootdev() {
+ local rootdisk="$(cat /sys/firmware/devicetree/base/chosen/rootdisk)"
+ local handle bootdev
+ for handle in /sys/class/block/*/of_node/phandle /sys/class/block/*/device/of_node/phandle; do
+ [ ! -e "$handle" ] && continue
+ if [ "$rootdisk" = "$(cat $handle)" ]; then
+ bootdev="${handle%/of_node/phandle}"
+ bootdev="${bootdev%/device}"
+ bootdev="${bootdev#/sys/class/block/}"
+ echo "$bootdev"
+ break
+ fi
+ done
+}
+
platform_do_upgrade() {
local board=$(board_name)
;;
esac
;;
+ bananapi,bpi-r4)
+ [ -e /dev/fit0 ] && fitblk /dev/fit0
+ [ -e /dev/fitrw ] && fitblk /dev/fitrw
+ bootdev="$(platform_get_bootdev)"
+ case "$bootdev" in
+ mmcblk*)
+ EMMC_KERN_DEV="/dev/$bootdev"
+ emmc_do_upgrade "$1"
+ ;;
+ ubiblock*)
+ CI_KERNPART="fit"
+ nand_do_upgrade "$1"
+ ;;
+ esac
+ ;;
cmcc,rax3000m)
case "$(cmdline_get_var root)" in
/dev/mmc*)
case "$board" in
bananapi,bpi-r3|\
+ bananapi,bpi-r4|\
cmcc,rax3000m)
[ "$magic" != "d00dfeed" ] && {
echo "Invalid image type."
;;
esac
;;
+ bananapi,bpi-r4)
+ case "$(platform_get_bootdev)" in
+ mmcblk*)
+ emmc_copy_config
+ ;;
+ esac
+ ;;
acer,predator-w6|\
glinet,gl-mt2500|\
glinet,gl-mt6000|\