@Zhiming_Liu
I had test on IMX8QM EVK with imx-yocto-L5.10.52_2.1.0
Step1 .bitbake u-boot-imx -c cleanall
Step2. bitbake u-boot-imx
Step3 .cd tmp/work/imx8qmmek-poky-linux/u-boot-imx/2021.04-r0/build/imx8qm_mek_defconfig/include/generated/
Step4.
$ cat timestamp_autogenerated.h
#define U_BOOT_DATE "Sep 06 2021"
#define U_BOOT_TIME "08:48:23"
#define U_BOOT_TZ "+0000"
#define U_BOOT_DMI_DATE "09/06/2021"
#define U_BOOT_BUILD_DATE 0x20210906
#define U_BOOT_EPOCH 1630918103
I think the build time not changed,
I check the Makefile in Uboot
define filechk_timestamp.h
(if test -n "$${SOURCE_DATE_EPOCH}"; then \
SOURCE_DATE="@$${SOURCE_DATE_EPOCH}"; \
DATE=""; \
for date in gdate date.gnu date; do \
$${date} -u -d "$${SOURCE_DATE}" >/dev/null 2>&1 && DATE="$${date}"; \
done; \
if test -n "$${DATE}"; then \
LC_ALL=C $${DATE} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_DATE "%b %d %C%y"'; \
LC_ALL=C $${DATE} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TIME "%T"'; \
LC_ALL=C $${DATE} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TZ "%z"'; \
LC_ALL=C $${DATE} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_DMI_DATE "%m/%d/%Y"'; \
LC_ALL=C $${DATE} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_BUILD_DATE 0x%Y%m%d'; \
LC_ALL=C $${DATE} -u -d "$${SOURCE_DATE}" +'#define U_BOOT_EPOCH %s'; \
else \
return 42; \
fi; \
else \
echo "123456"; \
LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"'; \
LC_ALL=C date +'#define U_BOOT_TIME "%T"'; \
LC_ALL=C date +'#define U_BOOT_TZ "%z"'; \
LC_ALL=C date +'#define U_BOOT_DMI_DATE "%m/%d/%Y"'; \
LC_ALL=C date +'#define U_BOOT_BUILD_DATE 0x%Y%m%d'; \
LC_ALL=C date +'#define U_BOOT_EPOCH %s'; \
fi)
endef
I think the root cause is the SOURCE_DATE_EPOCH
But I don't know how to do next