From 6f1582df4d1d23e047e5771e98bd72f18cc2ce7e Mon Sep 17 00:00:00 2001 From: lgs2007m <116912542@qq.com> Date: Mon, 17 Jun 2024 19:08:19 +0800 Subject: [PATCH] uboot-202206: mt7986/bootmenu_emmc: sync write firmware logic from 7981 (#60) --- .../board/mediatek/mt7986/bootmenu_emmc.c | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/uboot-mtk-20220606/board/mediatek/mt7986/bootmenu_emmc.c b/uboot-mtk-20220606/board/mediatek/mt7986/bootmenu_emmc.c index 8061cc0fe..5bc504332 100644 --- a/uboot-mtk-20220606/board/mediatek/mt7986/bootmenu_emmc.c +++ b/uboot-mtk-20220606/board/mediatek/mt7986/bootmenu_emmc.c @@ -140,8 +140,7 @@ int write_firmware(void *priv, const struct data_part_entry *dpe, const void *kernel_data, *rootfs_data; size_t kernel_size, rootfs_size; loff_t rootfs_data_offs; - int ret = 0, ret2 = 0; - + int ret = 0; #ifdef CONFIG_MTK_DUAL_BOOT u32 slot; #endif /* CONFIG_MTK_DUAL_BOOT */ @@ -162,18 +161,16 @@ int write_firmware(void *priv, const struct data_part_entry *dpe, rootfs_part = PART_ROOTFS_NAME; #endif /* CONFIG_MTK_DUAL_BOOT */ + ret = write_part(rootfs_part, rootfs_data, rootfs_size, true); + if (ret) + return ret; + + /* Mark rootfs_data unavailable */ + rootfs_data_offs = (rootfs_size + ROOTDEV_OVERLAY_ALIGN - 1) & + (~(ROOTDEV_OVERLAY_ALIGN - 1)); + erase_part(PART_ROOTFS_NAME, rootfs_data_offs, SZ_512K); + ret = write_part(kernel_part, kernel_data, kernel_size, true); - ret2 = write_part(rootfs_part, rootfs_data, rootfs_size, true); - - if (!ret2) { - /* Mark rootfs_data unavailable */ - rootfs_data_offs = (rootfs_size + ROOTDEV_OVERLAY_ALIGN - 1) & - (~(ROOTDEV_OVERLAY_ALIGN - 1)); - erase_part(PART_ROOTFS_NAME, rootfs_data_offs, SZ_512K); - } else { - ret = ret2; - } - if (ret) return ret; @@ -270,7 +267,6 @@ int board_boot_default(void) mbd.boot_slots = dual_boot_slots; mbd.env_part = ofnode_conf_read_str("u-boot,mmc-env-partition"); mbd.load_ptr = (void *)0x40000000; - #ifdef CONFIG_MTK_DUAL_BOOT_SHARED_ROOTFS_DATA mbd.rootfs_data_part = CONFIG_MTK_DUAL_BOOT_ROOTFS_DATA_NAME; #endif