[Feature][T106][task-view-944]Support the M22 Nand

Only Configure: Yes
Affected branch: master
Affected module: unknow
Is it affected on both ZXIC and MTK: only ZXIC
Self-test: Yes
Doc Update: No

Change-Id: Icc3f521166744d7ee55789304a30f94992c4a602
diff --git a/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/product.ini b/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/product.ini
new file mode 100755
index 0000000..9cc8232
--- /dev/null
+++ b/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/product.ini
@@ -0,0 +1,9 @@
+[imagefs]

+largefile_split_enable=no

+mkfs_jffs2=-v -X lzo --pagesize=0x800 --eraseblock=0x20000 --little-endian --no-cleanmarkers --squash 

+

+[nvrofs]

+mkfs_jffs2=-v -X lzo --pagesize=0x800 --eraseblock=0x20000 --little-endian --no-cleanmarkers --squash

+

+[resource]

+mkfs_jffs2=-v -X lzo --pagesize=0x800 --eraseblock=0x20000 --little-endian --no-cleanmarkers --squash

diff --git a/allbins/zx297520v3/prj_vehicle/config_dc_4Gb/partition_M22.bin b/allbins/zx297520v3/prj_vehicle/config_dc_4Gb/partition_M22.bin
new file mode 100755
index 0000000..e6d9094
--- /dev/null
+++ b/allbins/zx297520v3/prj_vehicle/config_dc_4Gb/partition_M22.bin
Binary files differ
diff --git a/allbins/zx297520v3/prj_vehicle/config_dc_4Gb/partition_M22.ini b/allbins/zx297520v3/prj_vehicle/config_dc_4Gb/partition_M22.ini
new file mode 100755
index 0000000..df94ad5
--- /dev/null
+++ b/allbins/zx297520v3/prj_vehicle/config_dc_4Gb/partition_M22.ini
@@ -0,0 +1,115 @@
+[PartitionHead]
+partition_magic=0x31594876
+partition_platform=WF7520
+partition_version=0x00201304
+partition_entrys=0x12
+partition_crc=0x12345678
+
+[Partition0]
+partition_name=zloader
+partition_type=nand
+partition_addr=0x00000000
+partition_size=0x00040000
+
+[Partition1]
+partition_name=uboot
+partition_type=nand
+partition_addr=0x00040000
+partition_size=0x00100000
+
+[Partition2]
+partition_name=uboot2
+partition_type=nand
+partition_addr=0x00140000
+partition_size=0x00100000
+
+[Partition3]
+partition_name=nvrofs
+partition_type=nand
+partition_addr=0x00240000
+partition_size=0x00200000
+
+[Partition4]
+partition_name=flags
+partition_type=nand
+partition_addr=0x00440000
+partition_size=0x004C0000
+
+[Partition5]
+partition_name=imagefs
+partition_type=nand
+partition_addr=0x00900000
+partition_size=0x00C00000
+
+[Partition6]
+partition_name=imagefs2
+partition_type=nand
+partition_addr=0x01500000
+partition_size=0x00C00000
+
+[Partition7]
+partition_name=rootfs
+partition_type=nand
+partition_addr=0x02100000
+partition_size=0x01400000
+
+[Partition8]
+partition_name=rootfs2
+partition_type=nand
+partition_addr=0x03500000
+partition_size=0x01400000
+
+[Partition9]
+partition_name=userdata
+partition_type=nand
+partition_addr=0x04900000
+partition_size=0x01000000
+
+[Partition10]
+partition_name=caprootfs
+partition_type=nand
+partition_addr=0x05900000
+partition_size=0x02800000
+
+[Partition11]
+partition_name=caprootfs2
+partition_type=nand
+partition_addr=0x08100000
+partition_size=0x02800000
+
+[Partition12]
+partition_name=capuserdata
+partition_type=nand
+partition_addr=0x0A900000
+partition_size=0x02800000
+
+[Partition13]
+partition_name=oem
+partition_type=nand
+partition_addr=0x0D100000
+partition_size=0x00E00000
+
+[Partition14]
+partition_name=oem2
+partition_type=nand
+partition_addr=0x0DF00000
+partition_size=0x00E00000
+
+[Partition15]
+partition_name=oemdata
+partition_type=nand
+partition_addr=0x0ED00000
+partition_size=0x01000000
+
+[Partition16]
+partition_name=ddr
+partition_type=ddr
+partition_addr=0x00000000
+partition_size=0xFFFFFFFF
+
+[Partition17]
+partition_name=raw
+partition_type=raw
+partition_addr=0x00000000
+partition_size=0x10000000
+
diff --git a/allbins/zx297520v3/prj_vehicle/scripts_linux/AllInOneImage_dc_ref_M22.ini b/allbins/zx297520v3/prj_vehicle/scripts_linux/AllInOneImage_dc_ref_M22.ini
new file mode 100755
index 0000000..d5a470a
--- /dev/null
+++ b/allbins/zx297520v3/prj_vehicle/scripts_linux/AllInOneImage_dc_ref_M22.ini
@@ -0,0 +1,36 @@
+[GeneralSetting]

+storage_type=1

+is_nv_coalition=1

+TLoaderAddr=0x80000

+

+[Output]

+FilePath=7520V3SC_VEC_DC_REF_M22.bin

+

+[TLoader]

+FilePath=../allbins_dc_ref_M22/tloader.bin

+

+[TBoot]

+FilePath=../allbins_dc_ref_M22/tboot.bin

+

+[Partition]

+FilePath=../allbins_dc_ref_M22/partition.bin

+

+[ProductInfo]

+FilePath=../allbins_dc_ref_M22/product.ini

+

+[Image]

+../allbins_dc_ref_M22/ap_imagefs.img

+../allbins_dc_ref_M22/ap_imagefs2.img

+../allbins_dc_ref_M22/ap_userdata.img

+../allbins_dc_ref_M22/ap_capuserdata.img

+../allbins_dc_ref_M22/cap_oemdata.img

+../allbins_dc_ref_M22/ap_rootfs.img

+../allbins_dc_ref_M22/ap_rootfs2.img

+../allbins_dc_ref_M22/ap_caprootfs.img

+../allbins_dc_ref_M22/ap_caprootfs2.img

+../allbins_dc_ref_M22/cap_oem.img

+../allbins_dc_ref_M22/cap_oem2.img

+../allbins_dc_ref_M22/flags.bin

+../allbins_dc_ref_M22/uboot.bin

+../allbins_dc_ref_M22/uboot2.bin

+../allbins_dc_ref_M22/zloader.bin

diff --git a/allbins/zx297520v3/prj_vehicle/scripts_linux/NVRWInOneImage_dc_ref_M22.ini b/allbins/zx297520v3/prj_vehicle/scripts_linux/NVRWInOneImage_dc_ref_M22.ini
new file mode 100755
index 0000000..3379634
--- /dev/null
+++ b/allbins/zx297520v3/prj_vehicle/scripts_linux/NVRWInOneImage_dc_ref_M22.ini
@@ -0,0 +1,18 @@
+

+[NVIMAGE]

+NvrwPath=../allbins_dc_ref_M22/nvrwall.bin

+

+[NVRO]

+

+

+[NVRW]

+../allbins_dc_ref_M22/ati_nvrw_0x00000800.bin

+../allbins_dc_ref_M22/at_nvrw_0x00001000.bin

+../allbins_dc_ref_M22/drv_nvrw_0x00012000.bin

+../allbins_dc_ref_M22/phycfg_nvrw_0x00001400.bin

+../allbins_dc_ref_M22/psPriData_nvrw_0x00002000.bin

+../allbins_dc_ref_M22/psPubData_nvrw_0x00001C00.bin

+../allbins_dc_ref_M22/Ref_nvrw_0x26C00.bin

+../allbins_dc_ref_M22/tsp_nvrw_0x00000000.bin

+../allbins_dc_ref_M22/voice_nvrw_0x00016000.bin

+

diff --git a/allbins/zx297520v3/prj_vehicle/scripts_linux/NVRWOInOneImage_dc_ref_M22.ini b/allbins/zx297520v3/prj_vehicle/scripts_linux/NVRWOInOneImage_dc_ref_M22.ini
new file mode 100755
index 0000000..548577c
--- /dev/null
+++ b/allbins/zx297520v3/prj_vehicle/scripts_linux/NVRWOInOneImage_dc_ref_M22.ini
@@ -0,0 +1,39 @@
+

+;NV合并

+[NVIMAGE]

+;NvroPath=modem_nvro.bin

+NvrwoPath=../allbins_dc_ref_M22/nvrwoall.bin

+

+[NVRO]

+;举例../../../zx297520/nv/CA_3M_BX/amtComm_nvro_0x00000000.bin

+

+[NVRWO]

+;举例../../../zx297520/nv/CA_3M_BX/at_nvrw_0x00022000.bin

+../allbins_dc_ref_M22/phycom_nvrwo_0x0002BC00.bin

+;xf.li@20230927 add for DRDI start

+../allbins_dc_ref_M22/phycom_nvrwo_0x0002C400.bin

+../allbins_dc_ref_M22/phycom_nvrwo_0x00037C00.bin

+;xf.li@20230927 add for DRDI end

+../allbins_dc_ref_M22/phyGgeAmtUser_nvrwo_0x00003400.bin

+;xf.li@20230927 add for DRDI start

+../allbins_dc_ref_M22/phyGgeAmtUser_nvrwo_0x0002CC00.bin

+../allbins_dc_ref_M22/phyGgeAmtUser_nvrwo_0x00038400.bin

+;xf.li@20230927 add for DRDI end

+../allbins_dc_ref_M22/phyGgeCom_nvrwo_0x0000EC00.bin

+../allbins_dc_ref_M22/phyLteaAmtUser_nvrwo_0x00007800.bin

+;xf.li@20230927 add for DRDI start

+../allbins_dc_ref_M22/phyLteaAmtUser_nvrwo_0x0003C800.bin

+../allbins_dc_ref_M22/phyLteaAmtUser_nvrwo_0x00031000.bin

+;xf.li@20230927 add for DRDI end

+../allbins_dc_ref_M22/phyLteaCom_nvrwo_0x00012C00.bin

+../allbins_dc_ref_M22/phyLtetxtable_nvrwo_0x0001BC00.bin

+../allbins_dc_ref_M22/phyTdsAmtUser_nvrwo_0x00002800.bin

+../allbins_dc_ref_M22/phyTdsCom_nvrwo_0x0000E400.bin

+../allbins_dc_ref_M22/phyWcdmaAmtUser_nvrwo_0x00005000.bin

+;xf.li@20230927 add for DRDI start

+../allbins_dc_ref_M22/phyWcdmaAmtUser_nvrwo_0x0002E800.bin

+../allbins_dc_ref_M22/phyWcdmaAmtUser_nvrwo_0x0003A000.bin

+;xf.li@20230927 add for DRDI end

+../allbins_dc_ref_M22/phyWcdmaCom_nvrwo_0x00012400.bin

+../allbins_dc_ref_M22/zxRfM0_nvrwo_0x00016C00.bin

+

diff --git a/allbins/zx297520v3/prj_vehicle/scripts_linux/copybin_a_to_b.sh b/allbins/zx297520v3/prj_vehicle/scripts_linux/copybin_a_to_b.sh
index 697130b..1f0278f 100755
--- a/allbins/zx297520v3/prj_vehicle/scripts_linux/copybin_a_to_b.sh
+++ b/allbins/zx297520v3/prj_vehicle/scripts_linux/copybin_a_to_b.sh
@@ -9,6 +9,9 @@
 cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc/ap_imagefs.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc/ap_imagefs2.img
 cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_4Gb/ap_imagefs.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_4Gb/ap_imagefs2.img
 cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref/ap_imagefs.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref/ap_imagefs2.img
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref_M22/ap_imagefs.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref_M22/ap_imagefs2.img
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_systemd/ap_imagefs.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_systemd/ap_imagefs2.img
 
 #ap_rootfs.img
@@ -16,12 +19,18 @@
 cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc/ap_rootfs.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc/ap_rootfs2.img
 cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_4Gb/ap_rootfs.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_4Gb/ap_rootfs2.img
 cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref/ap_rootfs.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref/ap_rootfs2.img
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref_M22/ap_rootfs.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref_M22/ap_rootfs2.img
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_systemd/ap_rootfs.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_systemd/ap_rootfs2.img
 
 #ap_caprootfs
 cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc/ap_caprootfs.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc/ap_caprootfs2.img
 cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_4Gb/ap_caprootfs.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_4Gb/ap_caprootfs2.img
 cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref/ap_caprootfs.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref/ap_caprootfs2.img
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref_M22/ap_caprootfs.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref_M22/ap_caprootfs2.img
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_systemd/ap_caprootfs.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_systemd/ap_caprootfs2.img
 
 #uboot
@@ -29,10 +38,16 @@
 cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc/uboot.bin  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc/uboot2.bin
 cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_4Gb/uboot.bin  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_4Gb/uboot2.bin
 cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref/uboot.bin  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref/uboot2.bin
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref_M22/uboot.bin  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref_M22/uboot2.bin
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_systemd/uboot.bin  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_systemd/uboot2.bin
 
 #oem
 cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins/ap_oem.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins/ap_oem2.img
 cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_4Gb/cap_oem.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_4Gb/cap_oem2.img
 cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref/cap_oem.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref/cap_oem2.img
-cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_systemd/cap_oem.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_systemd/cap_oem2.img
\ No newline at end of file
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref_M22/cap_oem.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_ref_M22/cap_oem2.img
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
+cp -rvf $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_systemd/cap_oem.img  $TOP_DIR/zx297520v3/prj_vehicle/allbins_dc_systemd/cap_oem2.img
diff --git a/allbins/zx297520v3/prj_vehicle/scripts_linux/copybin_vehicle_dc_ref.sh b/allbins/zx297520v3/prj_vehicle/scripts_linux/copybin_vehicle_dc_ref.sh
index 364ab03..1f9e9eb 100755
--- a/allbins/zx297520v3/prj_vehicle/scripts_linux/copybin_vehicle_dc_ref.sh
+++ b/allbins/zx297520v3/prj_vehicle/scripts_linux/copybin_vehicle_dc_ref.sh
@@ -5,14 +5,25 @@
 
 #partition
 cp -rvf $TOP_DIR/allbins/zx297520v3/prj_vehicle/config_dc_4Gb/*  $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref/
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+cp -rvf $TOP_DIR/allbins/zx297520v3/prj_vehicle/config_dc_4Gb/partition_M22.ini  $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/partition.ini
+cp -rvf $TOP_DIR/allbins/zx297520v3/prj_vehicle/config_dc_4Gb/partition_M22.bin  $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/partition.bin
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 
 #rpm
 cp -rvf $TOP_DIR/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.img  $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref/evb_cpurpm.img
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+cp -rvf $TOP_DIR/rpm/project/zx297520v3/bin/tos/modem_7520v3/evb_cpurpm.img  $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/evb_cpurpm.img
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
+
 cp -rvf $TOP_DIR/rpm/project/zx297520v3/bin/tos/modem_7520v3/*  $TOP_DIR/allbins/zx297520v3/prj_vehicle/elf_dc_ref/
 rm $TOP_DIR/allbins/zx297520v3/prj_vehicle/elf_dc_ref/evb_cpurpm.img
 
 #phy
 cp -rvf $TOP_DIR/cp/phy/bin/zx297520v3/merge_lte_220a1_bin/ps/evb_cpuphy.bin  $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref/evb_cpuphy.bin
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+cp -rvf $TOP_DIR/cp/phy/bin/zx297520v3/merge_lte_220a1_bin/ps/evb_cpuphy.bin  $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/evb_cpuphy.bin
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 cp -rvf $TOP_DIR/cp/phy/bin/zx297520v3/merge_lte_220a1_bin/ps/*  $TOP_DIR/allbins/zx297520v3/prj_vehicle/elf_dc_ref/
 rm $TOP_DIR/allbins/zx297520v3/prj_vehicle/elf_dc_ref/evb_cpuphy.bin
 
@@ -34,6 +45,23 @@
 rm $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref/phyTdsAmtCali_nvro_0x00048000.bin
 rm $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref/phyWcdmaAmtCali_nvro_0x00058000.bin
 rm $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref/phyLteaAmtCali_nvro_0x00078000.bin
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+mkdir -p $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/config
+cp -rvf $TOP_DIR/allbins/zx297520v3/prj_evb/nv/* $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/
+cp -rvf $TOP_DIR/allbins/zx297520v3/prj_evb/nv/merge_lte/* $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/
+cp -rvf $TOP_DIR/allbins/zx297520v3/prj_vehicle/nv/* $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/
+cp -rvf $TOP_DIR/allbins/zx297520v3/prj_vehicle/nv_dc_ref/* $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/
+rm -rf $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/merge_lte
+rm -rf $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/ps_nopsm
+rm -rf $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/th_psm
+rm -rf $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/单天线
+rm $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/amtComm_nvro_0x00000000.bin
+rm $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/phyGgeAmtCali_nvro_0x00050000.bin
+rm $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/phyLteAmtCali_nvro_0x00008000.bin
+rm $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/phyTdsAmtCali_nvro_0x00048000.bin
+rm $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/phyWcdmaAmtCali_nvro_0x00058000.bin
+rm $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/phyLteaAmtCali_nvro_0x00078000.bin
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 
 #uboot
 mkdir -p $TOP_DIR/allbins/zx297520v3/prj_vehicle/elf_dc_ref/boot/dl_off
@@ -41,6 +69,13 @@
 cp -rvf $TOP_DIR/boot/prj/zx297520v3/vehicle_dc_ref/bin/tloader.bin  $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref/tloader.bin
 cp -rvf $TOP_DIR/boot/prj/zx297520v3/vehicle_dc_ref/bin/uboot.bin  $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref/uboot.bin
 cp -rvf $TOP_DIR/boot/prj/zx297520v3/vehicle_dc_ref/bin/dl_off/zloader.bin  $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref/zloader.bin
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+cp -rvf $TOP_DIR/boot/prj/zx297520v3/vehicle_dc_ref/bin/tboot.bin  $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/tboot.bin
+cp -rvf $TOP_DIR/boot/prj/zx297520v3/vehicle_dc_ref/bin/tloader.bin  $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/tloader.bin
+cp -rvf $TOP_DIR/boot/prj/zx297520v3/vehicle_dc_ref/bin/uboot.bin  $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/uboot.bin
+cp -rvf $TOP_DIR/boot/prj/zx297520v3/vehicle_dc_ref/bin/dl_off/zloader.bin  $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/zloader.bin
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
+
 cp -rvf $TOP_DIR/boot/prj/zx297520v3/vehicle_dc_ref/bin/u-boot  $TOP_DIR/allbins/zx297520v3/prj_vehicle/elf_dc_ref/boot/u-boot
 cp -rvf $TOP_DIR/boot/prj/zx297520v3/vehicle_dc_ref/bin/u-boot.map  $TOP_DIR/allbins/zx297520v3/prj_vehicle/elf_dc_ref/boot/u-boot.map
 cp -rvf $TOP_DIR/boot/prj/zx297520v3/vehicle_dc_ref/bin/z-load  $TOP_DIR/allbins/zx297520v3/prj_vehicle/elf_dc_ref/boot/z-load
@@ -50,11 +85,23 @@
 
 #ap
 cp -rvf $TOP_DIR/ap/project/zx297520v3/prj_vehicle_dc_ref/bin/220A1/allbins/*  $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref/
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+cp -rvf $TOP_DIR/ap/project/zx297520v3/prj_vehicle_dc_ref/bin/220A1/allbins/*  $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 cp -rvf $TOP_DIR/ap/project/zx297520v3/prj_vehicle_dc_ref/bin/220A1/elfs/*  $TOP_DIR/allbins/zx297520v3/prj_vehicle/elf_dc_ref/
 
 #cap
 mkdir -p $TOP_DIR/allbins/zx297520v3/prj_vehicle/elf_dc_ref/cap
 cp -rvf $TOP_DIR/cap/allbins/zx297520v3/vehicle_dc_ref/bins/*  $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref/
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+cp -rvf $TOP_DIR/cap/allbins/zx297520v3/vehicle_dc_ref/bins/*  $TOP_DIR/allbins/zx297520v3/prj_vehicle/allbins_dc_ref_M22/
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 cp -rvf $TOP_DIR/cap/allbins/zx297520v3/vehicle_dc_ref/elf/*  $TOP_DIR/allbins/zx297520v3/prj_vehicle/elf_dc_ref/cap/
-
-
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+cp ../allbins_dc_ref_M22/ap_caprootfs_M22.img ../allbins_dc_ref_M22/ap_caprootfs.img
+cp ../allbins_dc_ref_M22/ap_capuserdata_M22.img ../allbins_dc_ref_M22/ap_capuserdata.img
+cp ../allbins_dc_ref_M22/ap_cpuap_M22.bin ../allbins_dc_ref_M22/ap_cpuap.bin
+cp ../allbins_dc_ref_M22/ap_rootfs_M22.img ../allbins_dc_ref_M22/ap_rootfs.img
+cp ../allbins_dc_ref_M22/cap_oemdata_M22.img ../allbins_dc_ref_M22/cap_oemdata.img
+cp ../allbins_dc_ref_M22/cap_oem_M22.img ../allbins_dc_ref_M22/cap_oem.img
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
diff --git a/allbins/zx297520v3/prj_vehicle/scripts_linux/merge_M22.sh b/allbins/zx297520v3/prj_vehicle/scripts_linux/merge_M22.sh
new file mode 100755
index 0000000..c406730
--- /dev/null
+++ b/allbins/zx297520v3/prj_vehicle/scripts_linux/merge_M22.sh
@@ -0,0 +1,56 @@
+#!/bin/bash
+
+CURR_DIR=`pwd`
+TOP_DIR=$CURR_DIR/../../../..
+
+chmod -R a+x $CURR_DIR/*
+chmod a+x $TOP_DIR/tools/SignTool/*
+chmod a+x $TOP_DIR/allbins/tools/squashfskit/*
+chmod a+x $TOP_DIR/allbins/tools/resign_tool/*
+
+#./Image -n  NVRWInOneImage.ini
+#./Image -n  NVRWOInOneImage.ini
+#./Image -n  NVRWInOneImage_dc.ini
+#./Image -n  NVRWOInOneImage_dc.ini
+#./Image -n  NVRWInOneImage_dc_4Gb.ini
+#./Image -n  NVRWOInOneImage_dc_4Gb.ini
+#./Image -n  NVRWInOneImage_dc_ref.ini
+#./Image -n  NVRWOInOneImage_dc_ref.ini
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+./Image -n  NVRWInOneImage_dc_ref_M22.ini
+./Image -n  NVRWOInOneImage_dc_ref_M22.ini
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
+#./Image -n  NVRWInOneImage_dc_systemd.ini
+#./Image -n  NVRWOInOneImage_dc_systemd.ini
+#Ç©ÃûÀÏоƬ£¬½öÖ§³ÖRSA 1024£¬ÐèÒª¼ÓµÚÈý¸ö²ÎÊýΪv3t
+#bash  product_resign.sh  ../key/RSA_1024/private.k  ../allbins_dc         v3t
+#bash  product_resign.sh  ../key/RSA_1024/private.k  ../allbins_dc_4Gb     v3t
+#bash  product_resign.sh  ../key/RSA_1024/private.k  ../allbins_dc_ref     v3t
+#bash  product_resign.sh  ../key/RSA_1024/private.k  ../allbins_dc_systemd v3t
+#Ç©ÃûÐÅÏ¢°²È«Ð¾Æ¬£¬Ö§³ÖRSA 2048
+#bash  product_resign.sh  ../key/RSA_2048/private.k  ../allbins_dc
+#bash  product_resign.sh  ../key/RSA_2048/private.k  ../allbins_dc_4Gb
+#bash  product_resign.sh  ../key/RSA_2048/private.k  ../allbins_dc_ref
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+#bash  product_resign.sh  ../key/RSA_2048/private.k  ../allbins_dc_ref_M22
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
+#bash  product_resign.sh  ../key/RSA_2048/private.k  ../allbins_dc_systemd
+#./Image -f  FsImage.ini
+#./Image -f  FsImage_dc.ini
+#./Image -f  FsImage_dc_4Gb.ini
+#./Image -f  FsImage_dc_ref.ini
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+./Image -f  FsImage_dc_ref_M22.ini
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
+#./Image -f  FsImage_dc_systemd.ini
+bash copybin_a_to_b.sh
+#./Image -m  AllInOneImage.ini
+#./Image -m  AllInOneImage_dc.ini
+#./Image -m  AllInOneImage_dc_4Gb.ini
+#./Image -m  AllInOneImage_dc_ref.ini
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+./Image -m  AllInOneImage_dc_ref_M22.ini
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
+#./Image -m  AllInOneImage_dc_systemd.ini
+
+
diff --git a/ap/Makefile b/ap/Makefile
index 0e5fed9..cefe54b 100755
--- a/ap/Makefile
+++ b/ap/Makefile
@@ -179,6 +179,15 @@
 	dd if=$(IMAGE_DIR)/rootfs_signed.img of=$(IMAGE_DIR)/rootfs.sign bs=704 count=1
 	cat $(IMAGE_DIR)/rootfs.sign  $(IMAGE_DIR)/linux_kernel.img  >  $(IMAGE_DIR)/rootfs_kernel.img
 	@$(SIGN) -i $(IMAGE_DIR)/rootfs_kernel.img -o $(PRJ_BIN_DIR)/allbins/ap_cpuap.bin -k $(PRIVATE_KEY_PATH)
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+ifeq ($(LYNQ_NAND_TYPE),M22)
+	mkimage -A arm -O linux -C none  -T filesystem -a 0 -e 0 -n 'rootfs' -d $(IMAGE_DIR)/rootfs_M22.img $(IMAGE_DIR)/rootfs_u_M22.img
+	@$(SIGN) -i $(IMAGE_DIR)/rootfs_u_M22.img  -o $(IMAGE_DIR)/rootfs_signed_M22.img  -k $(PRIVATE_KEY_PATH)
+	dd if=$(IMAGE_DIR)/rootfs_signed_M22.img of=$(IMAGE_DIR)/rootfs_M22.sign bs=704 count=1
+	cat $(IMAGE_DIR)/rootfs_M22.sign  $(IMAGE_DIR)/linux_kernel.img  >  $(IMAGE_DIR)/rootfs_kernel_M22.img
+	@$(SIGN) -i $(IMAGE_DIR)/rootfs_kernel_M22.img -o $(PRJ_BIN_DIR)/allbins/ap_cpuap_M22.bin -k $(PRIVATE_KEY_PATH)
+endif
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 else
 	@cp -v $(IMAGE_DIR)/linux_kernel.img      $(PRJ_BIN_DIR)/allbins/ap_cpuap.bin
 endif
@@ -536,6 +545,11 @@
 	bash $(BUILD_DIR)/jffs2_lzma.sh $(ROOTFS_DIR) $(IMAGE_DIR)/rootfs.img lzma
 else
 	bash $(BUILD_DIR)/jffs2_lzma.sh $(ROOTFS_DIR) $(IMAGE_DIR)/rootfs.img lzo
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+ifeq ($(LYNQ_NAND_TYPE),M22)
+	bash $(BUILD_DIR)/jffs2_lzma.sh $(ROOTFS_DIR) $(IMAGE_DIR)/rootfs_M22.img lzo lynq
+endif
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 endif
 else
 ifeq ($(ROOT_FS_TYPE),squashfs)
@@ -685,6 +699,11 @@
 normal_copybin: normal_check
 	mkdir -p $(PRJ_BIN_DIR)/allbins $(PRJ_BIN_DIR)/elfs/normalelfs
 	cp -v $(IMAGE_DIR)/rootfs.img $(PRJ_BIN_DIR)/allbins/ap_rootfs.img
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+ifeq ($(LYNQ_NAND_TYPE),M22)
+	cp -v $(IMAGE_DIR)/rootfs_M22.img $(PRJ_BIN_DIR)/allbins/ap_rootfs_M22.img
+endif
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 ifeq ($(CONFIG_SIGN_IMAGE),yes)
 	chmod a+x $(SIGN)
 	mkimage -A arm -O linux -C none  -T filesystem -a 0 -e 0 -n 'rootfs' -d $(IMAGE_DIR)/rootfs.img $(IMAGE_DIR)/rootfs_u.img
@@ -692,6 +711,15 @@
 	dd if=$(IMAGE_DIR)/rootfs_signed.img of=$(IMAGE_DIR)/rootfs.sign bs=704 count=1
 	cat $(IMAGE_DIR)/rootfs.sign  $(IMAGE_DIR)/linux_kernel.img  >  $(IMAGE_DIR)/rootfs_kernel.img
 	@$(SIGN) -i $(IMAGE_DIR)/rootfs_kernel.img -o $(PRJ_BIN_DIR)/allbins/ap_cpuap.bin -k $(PRIVATE_KEY_PATH)
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+ifeq ($(LYNQ_NAND_TYPE),M22)
+	mkimage -A arm -O linux -C none  -T filesystem -a 0 -e 0 -n 'rootfs' -d $(IMAGE_DIR)/rootfs_M22.img $(IMAGE_DIR)/rootfs_u_M22.img
+	@$(SIGN) -i $(IMAGE_DIR)/rootfs_u_M22.img  -o $(IMAGE_DIR)/rootfs_signed_M22.img  -k $(PRIVATE_KEY_PATH)
+	dd if=$(IMAGE_DIR)/rootfs_signed_M22.img of=$(IMAGE_DIR)/rootfs_M22.sign bs=704 count=1
+	cat $(IMAGE_DIR)/rootfs_M22.sign  $(IMAGE_DIR)/linux_kernel.img  >  $(IMAGE_DIR)/rootfs_kernel_M22.img
+	@$(SIGN) -i $(IMAGE_DIR)/rootfs_kernel_M22.img -o $(PRJ_BIN_DIR)/allbins/ap_cpuap_M22.bin -k $(PRIVATE_KEY_PATH)
+endif
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 else
 	@cp -v $(IMAGE_DIR)/linux_kernel.img      $(PRJ_BIN_DIR)/allbins/ap_cpuap.bin
 endif
diff --git a/ap/app/zte_comm/zte_mainctrl/netdev_proc.c b/ap/app/zte_comm/zte_mainctrl/netdev_proc.c
index 6ec38c8..16463db 100755
--- a/ap/app/zte_comm/zte_mainctrl/netdev_proc.c
+++ b/ap/app/zte_comm/zte_mainctrl/netdev_proc.c
@@ -874,7 +874,7 @@
 			(actinfo->act_info.ip46flag & V4_VALID))
 		{
 			char nat_enable[4] = {0};
-			#add lynq nv config support & merge changes for sihai@cz.li on 2024/10/11 start
+			//add lynq nv config support & merge changes for sihai@cz.li on 2024/10/11 start
 			int rndis_ip_map = !system("cat /sys/class/lynq_nv_cfg/cdev_lynq_nv_cfg/rndis_ip_map | grep 1");
 			system_cmd_ex("iptables -P INPUT ACCEPT");
 			system_cmd_ex("iptables -P OUTPUT ACCEPT");
@@ -893,7 +893,7 @@
 				system_cmd_ex("iptables -t nat -D PREROUTING -j DMZ");
 				system_cmd_ex("iptables -t nat -D PREROUTING -j port_mapping");
 			}
-			#add lynq nv config support & merge changes for sihai@cz.li on 2024/10/11 end
+			//add lynq nv config support & merge changes for sihai@cz.li on 2024/10/11 end
 			system_cmd_ex("iptables -t nat -I PREROUTING 1 -j port_forward");
 			system_cmd_ex("iptables -t nat -I PREROUTING 1 -j DMZ");
 			system_cmd_ex("iptables -t nat -I PREROUTING 1 -j port_mapping");
diff --git a/ap/build/jffs2_lzma.sh b/ap/build/jffs2_lzma.sh
index ec42243..e98373d 100755
--- a/ap/build/jffs2_lzma.sh
+++ b/ap/build/jffs2_lzma.sh
@@ -1,13 +1,28 @@
 #!/bin/bash
-
-if [ x"$PAGESIZE" = x"" ]; then
-  PAGESIZE=0x800
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+if [ x"$4" = x"lynq" ]; then
+  echo "lynq nand type"
+  if [ x"$LYNQ_NAND_TYPE" = x"M22" ]; then
+    NAND_PAGESIZE=$LYNQ_M22_PAGESIZE
+    NAND_ERASEBLOCK=$LYNQ_M22_ERASEBLOCK
+  else
+    NAND_PAGESIZE=$PAGESIZE
+    NAND_ERASEBLOCK=$ERASEBLOCK
+  fi
+else
+  echo "default nand type"
+  NAND_PAGESIZE=$PAGESIZE
+  NAND_ERASEBLOCK=$ERASEBLOCK
 fi
 
-if [ x"$ERASEBLOCK" = x"" ]; then
-  ERASEBLOCK=0x20000
+if [ x"$NAND_PAGESIZE" = x"" ]; then
+  NAND_PAGESIZE=0x800
 fi
 
+if [ x"$NAND_ERASEBLOCK" = x"" ]; then
+  NAND_ERASEBLOCK=0x20000
+fi
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 JFFS2_COMPRESS_TYPE=$3
 COMPR_OPT="-X lzma"
 
@@ -18,8 +33,9 @@
 if [ x"$JFFS2_COMPRESS_TYPE" = x"lzo" ]; then
   COMPR_OPT="-X lzo"
 fi
-
-mkfs.jffs2_lzma -v $COMPR_OPT --pagesize=$PAGESIZE --eraseblock=$ERASEBLOCK --little-endian --no-cleanmarkers --squash -d $1 -o $2
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+mkfs.jffs2_lzma -v $COMPR_OPT --pagesize=$NAND_PAGESIZE --eraseblock=$NAND_ERASEBLOCK --little-endian --no-cleanmarkers --squash -d $1 -o $2
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 if [ $? -ne 0 ]; then
   echo "mkfs.jffs2_lzma error"
   exit -1
diff --git a/ap/project/zx297520v3/prj_vehicle_dc_ref/build/config.mk b/ap/project/zx297520v3/prj_vehicle_dc_ref/build/config.mk
index 345df0e..570b686 100755
--- a/ap/project/zx297520v3/prj_vehicle_dc_ref/build/config.mk
+++ b/ap/project/zx297520v3/prj_vehicle_dc_ref/build/config.mk
@@ -30,7 +30,12 @@
 # pagesize 2K and block size 128K default

 export PAGESIZE=0x1000

 export ERASEBLOCK=0x40000

-

+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START

+#lynq_nand_type only for jffs2

+export LYNQ_NAND_TYPE=M22

+export LYNQ_M22_PAGESIZE=0x800

+export LYNQ_M22_ERASEBLOCK=0x20000

+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END

 # yes is debug mode,other value is release mode.

 export GLOBAL_DEBUG=no

 

diff --git a/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/include/nand-config-default.inc b/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/include/nand-config-default.inc
index 439b293..fe9fc43 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/include/nand-config-default.inc
+++ b/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/include/nand-config-default.inc
@@ -2,9 +2,19 @@
 ERASEBLOCK     = "0x40000"
 UBI_LEB_SIZE   = "253952"
 UBI_IMAGE_SEQ  = "1024"
-
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+LYNQ_M22_PAGESIZE = "0x800"
+LYNQ_M22_ERASEBLOCK = "0x20000"
+LYNQ_M22_UBI_LEB_SIZE = "126976"
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 #rootfs ubi参数配置
 #MKUBIFS_ARGS = "-m ${PAGESIZE} -e ${UBI_LEB_SIZE} -c 122 -x zlib -F"
 UBINIZE_ARGS = "-m ${PAGESIZE} -p ${ERASEBLOCK} -s ${PAGESIZE} -Q ${UBI_IMAGE_SEQ}"
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+LYNQ_M22_UBINIZE_ARGS = "-m ${LYNQ_M22_PAGESIZE} -p ${LYNQ_M22_ERASEBLOCK} -s ${LYNQ_M22_PAGESIZE} -Q ${UBI_IMAGE_SEQ}"
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 #userdata ubi参数配置
 USERDATA_UBINIZE_ARGS = "${UBINIZE_ARGS}"
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+LYNQ_M22_USERDATA_UBINIZE_ARGS = "${LYNQ_M22_UBINIZE_ARGS}"
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/vehicle_dc_ref.conf b/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/vehicle_dc_ref.conf
index edb2de4..0ff4c1a 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/vehicle_dc_ref.conf
+++ b/cap/zx297520v3/sources/meta-zxic-custom/conf/distro/vehicle_dc_ref.conf
@@ -51,7 +51,9 @@
 
 # storage type: nand or emmc
 STRORAGE_TYPE = "nand"
-STRORAGE_CONF = "nand-config-4k"
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+STRORAGE_CONF = "nand-config-default"
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 require conf/distro/include/${STRORAGE_CONF}.inc
 
 #rootfs文件系统类型
@@ -469,6 +471,9 @@
 #xf.li@20240716 add for MOBILETEK_LOG_ENCRYPT value: "enable","disable"
 MOBILETEK_LOG_ENCRYPT = "disable"
 
+#xf.li@20250123 add for M22 SDK value (support M22 or not): "M22", "default"
+MOBILETEK_NAND_TYPE = "M22"
+
 LYNQ_CONFIG_COMMITID = "e2a3410390ff0ad762462ccb6af8faa5e16dcd61"
 LYNQ_CONFIG_VERSION = "T106_ap_version_cap_0425"
 LYNQ_CONFIG_SW_VERSION = "T106_ap_version_MR3.02b06.00"
diff --git a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/zxic-image.bb b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/zxic-image.bb
index f15ad14..235ea8d 100755
--- a/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/zxic-image.bb
+++ b/cap/zx297520v3/sources/meta-zxic-custom/recipes-core/images/zxic-image.bb
@@ -147,6 +147,11 @@
 		cp -arfp ${BSPDIR}/sources/meta-zxic-custom/conf/distro/include/${USERDATA_UBINIZE_CFG} ${B}
 		mkdir -p ${BINS-PATH}
 		${B}/ubinize-cfg.sh "${BINS-PATH}/${USEDATA_FS_NAME}"  "${B}/${USERDATA_UBINIZE_CFG}"  "${USERDATA_UBINIZE_ARGS}"
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+if ${@bb.utils.contains('MOBILETEK_NAND_TYPE','M22','true','false',d)}; then
+		${B}/ubinize-cfg.sh "${BINS-PATH}/ap_capuserdata_M22.img"  "${B}/${USERDATA_UBINIZE_CFG}"  "${LYNQ_M22_USERDATA_UBINIZE_ARGS}"
+fi
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 		mkdir -p ${IMAGE_ROOTFS}/etc_ro/
 		cp -v "${BINS-PATH}/${USEDATA_FS_NAME}" ${IMAGE_ROOTFS}/etc_ro/
 	fi
@@ -207,6 +212,11 @@
 		cp -arfp ${BSPDIR}/sources/meta-zxic-custom/conf/distro/include/${OEMDATA_UBINIZE_CFG} ${B}
 		mkdir -p ${BINS-PATH}
 		${B}/ubinize-cfg.sh "${BINS-PATH}/${OEMDATA_FS_NAME}"  "${B}/${OEMDATA_UBINIZE_CFG}"  "${USERDATA_UBINIZE_ARGS}"
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+if ${@bb.utils.contains('MOBILETEK_NAND_TYPE','M22','true','false',d)}; then
+		${B}/ubinize-cfg.sh "${BINS-PATH}/cap_oemdata_M22.img"  "${B}/${OEMDATA_UBINIZE_CFG}"  "${LYNQ_M22_USERDATA_UBINIZE_ARGS}"
+fi
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 		mkdir -p ${IMAGE_ROOTFS}/etc_ro/
 		cp -v "${BINS-PATH}/${OEMDATA_FS_NAME}" ${IMAGE_ROOTFS}/etc_ro/
 	fi
@@ -234,12 +244,21 @@
 		${S}/squashfs_dm-verity.sh  ${S}/${ROOT_FS_NAME}.unsigned  ${S} \
 			${BINS-PATH}/ap_caprootfs.img.dm ${SIGNIMAGE_PRIVATE_KEY} ${BSPDIR}/tools/SignTool/SignImage
 		${S}/ubinize-static.sh vol_rootfs "${BINS-PATH}/ap_caprootfs.img" ${BINS-PATH}/ap_caprootfs.img.dm "${UBINIZE_ARGS}"
-
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+if ${@bb.utils.contains('MOBILETEK_NAND_TYPE','M22','true','false',d)}; then
+		${S}/ubinize-static.sh vol_rootfs "${BINS-PATH}/ap_caprootfs_M22.img" ${BINS-PATH}/ap_caprootfs.img.dm "${LYNQ_M22_UBINIZE_ARGS}"
+fi
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 		if ${@bb.utils.contains('DISTRO_FEATURES','oemfs','true','false',d)}; then
 			rm -fv ${BINS-PATH}/cap_oem.img.dm
 			${B}/squashfs_dm-verity.sh  ${S}/cap_oem.img.unsigned  ${B} \
 				${BINS-PATH}/cap_oem.img.dm ${SIGNIMAGE_PRIVATE_KEY} ${BSPDIR}/tools/SignTool/SignImage
 			${B}/ubinize-static.sh vol_oem "${BINS-PATH}/cap_oem.img" ${BINS-PATH}/cap_oem.img.dm "${UBINIZE_ARGS}"
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_START
+if ${@bb.utils.contains('MOBILETEK_NAND_TYPE','M22','true','false',d)}; then
+			${B}/ubinize-static.sh vol_oem "${BINS-PATH}/cap_oem_M22.img" ${BINS-PATH}/cap_oem.img.dm "${LYNQ_M22_UBINIZE_ARGS}"
+fi
+#LYNQ_MODIFY_ZXW_TASK944_XF.Li_20250123_END
 		fi
 	fi
 }