Hi tsung,
There is some mistake under ucl2.xml ( present under mfgtool-c72a398-p1\Profiles\Linux\OS Firmware) of mfg-tool.
It incorrectly tries to erase the uboot arguments at some other offset.
<!-- burn uboot -->
<CMD state="Updater" type="push" body="$ dd if=/dev/zero of=/dev/mmcblk%mmc% bs=1k seek=768 conv=fsync count=512">clear u-boot arg</CMD>
Here value 768 is incorrect, please refer to the board header file and correct it.
It would be something like this
#ifndef __IMX6QLD_ICORE_CONFIG_H
#define __IMX6QLD_ICORE_CONFIG_H
#include <linux/sizes.h>
#include "mx6_common.h"
/* Size of malloc() pool */
#define CONFIG_SYS_MALLOC_LEN (16 * SZ_1M)
/* Total Size of Environment Sector */
#define CONFIG_ENV_SIZE SZ_128K
/* Allow to overwrite serial and ethaddr */
#define CONFIG_ENV_OVERWRITE
/* Environment */
#ifndef CONFIG_ENV_IS_NOWHERE
/* Environment in MMC */
# if defined(CONFIG_ENV_IS_IN_MMC)
# define CONFIG_ENV_OFFSET 0x100000
/* Environment in NAND */
# elif defined(CONFIG_ENV_IS_IN_NAND)
# define CONFIG_ENV_OFFSET 0x400000
# define CONFIG_ENV_SECT_SIZE CONFIG_ENV_SIZE
# endif
#endif
CONFIG_ENV_OFFSET here is 0x100000, so you should erase by using seek=1024
0x100000 = 1048576 (byes in decimal) / 1024 (1k block size) = 1024
so you should you seek by 1024 blocks and CONFIG_ENV_SIZE is 128k ,so count should be 128
finally your command should be
<!-- burn uboot -->
<CMD state="Updater" type="push" body="$ dd if=/dev/zero of=/dev/mmcblk%mmc% bs=1k seek=1024 conv=fsync count=128">clear u-boot arg</CMD>
Similarly add a command to erase the memory region used for extended uboot arguments.
Had a similar issue, I tried this for some custom board and it worked.
Thanks,
Raviteja