Application Note AN13872
Enabling SWUpdate on i.MX 6ULL, i.MX 8M Mini, and i.MX 93 is available on www.nxp.com
SWUpdate:
Embedded Systems become more and more complex.
Software for Embedded Systems have new features and fixes can be updated in a reliable way.
Most of time, we need OTA(Over-The-Air) to upgrade the system.
Like Android has its own update system. Linux also need an update system.
SWUpdate project is thought to help to update an embedded system from a storage media or from network.
However, it should be mainly considered as a framework, where further protocols or installers (in SWUpdate they are called handlers) can be easily added to the application.
Mongoose daemon mode:
Mongoose is a daemon mode of SWUpdate that provides a web server, web interface and web application.
Mongoose is running on the target board(i.MX8MM EVK/i.MX8QXP MEK).Using Web browser to access it.
Suricatta daemon mode:
Suricatta regularly polls a remote server for updates, downloads, and installs them. Thereafter, it reboots the system and reports the update status to the server.
The screenshot is SWUpdate scuricatta working with hawkbit server.
Bravo += 1;
Hi,
I am porting the SWUpdate for iMX8MPEVK and so far it works for dualcopy strategy on the eMMC. However, it does not work for the micro SD card due to the following command inside the emmc_bootpart.sh script (copied to sd_bootpart.sh in my context) :
mmc bootpart enable 1 1 /dev/mmcblk1
The error :
[read_lines_notify] : enable mmc(/dev/mmcblk1) boot partition 1
ERROR : ioctl: Connection timed out
ERROR : Could not read EXT_CSD from /dev/mmcblk1
[run_system_cmd] : /tmp/scripts/sd_bootpart.sh command returned 1
ERROR : execute postinstall scripts failed
Installation failed !
Knowing that /dev/mmcblk1 is the micro SD card, /dev/mmcblk2 is the eMMC and :
[12:10:54:730] root@imx8mpevk:~# mmc extcsd read /dev/mmcblk1␍␊
[12:10:54:749] [146761.818135] sdhci-esdhc-imx 30b50000.mmc: __mmc_blk_ioctl_cmd: cmd error -110␍␊
[12:10:54:762] ioctl: Connection timed out␍␊
[12:10:54:762] Could not read EXT_CSD from /dev/mmcblk1␍␊
but
[12:10:54:782] root@imx8mpevk:~# mmc extcsd read /dev/mmcblk2␍␊
[12:11:03:101] =============================================␍␊
[12:11:03:101] Extended CSD rev 1.8 (MMC 5.1)␍␊
[12:11:03:101] =============================================␍␊
[12:11:03:101] ␍␊
[12:11:03:101] Card Supported Command sets [S_CMD_SET: 0x01]␍␊
[12:11:03:124] HPI Features [HPI_FEATURE: 0x01]: implementation based on CMD13␍␊
[12:11:03:124] Background operations support [BKOPS_SUPPORT: 0x01]␍␊
[12:11:03:124] Max Packet Read Cmd [MAX_PACKED_READS: 0x3c]␍␊
[12:11:03:148] Max Packet Write Cmd [MAX_PACKED_WRITES: 0x20]␍␊
[12:11:03:148] Data TAG support [DATA_TAG_SUPPORT: 0x01]␍␊
[12:11:03:148] Data TAG Unit Size [TAG_UNIT_SIZE: 0x03]␍␊
[12:11:03:148] Tag Resources Size [TAG_RES_SIZE: 0x00]␍␊
[12:11:03:148] Context Management Capabilities [CONTEXT_CAPABILITIES: 0x05]␍␊
[12:11:03:148] Large Unit Size [LARGE_UNIT_SIZE_M1: 0x2f]␍␊
[12:11:03:148] Extended partition attribute support [EXT_SUPPORT: 0x03]␍␊
[12:11:03:148] Generic CMD6 Timer [GENERIC_CMD6_TIME: 0x32]␍␊
[12:11:03:174] Power off notification [POWER_OFF_LONG_TIME: 0xff]␍␊
[12:11:03:174] Cache Size [CACHE_SIZE] is 1024 KiB␍␊
[12:11:03:174] Background operations status [BKOPS_STATUS: 0x00]␍␊
[12:11:03:174] 1st Initialisation Time after programmed sector [INI_TIMEOUT_AP: 0x64]␍␊
[12:11:03:185] Power class for 52MHz, DDR at 3.6V [PWR_CL_DDR_52_360: 0x00]␍␊
[12:11:03:185] Power class for 52MHz, DDR at 1.95V [PWR_CL_DDR_52_195: 0x00]␍␊
[12:11:03:185] Power class for 200MHz at 3.6V [PWR_CL_200_360: 0x00]␍␊
[12:11:03:194] Power class for 200MHz, at 1.95V [PWR_CL_200_195: 0x00]␍␊
[12:11:03:194] Minimum Performance for 8bit at 52MHz in DDR mode:␍␊
[12:11:03:194] [MIN_PERF_DDR_W_8_52: 0x00]␍␊
[12:11:03:210] [MIN_PERF_DDR_R_8_52: 0x00]␍␊
[12:11:03:210] TRIM Multiplier [TRIM_MULT: 0x11]␍␊
[12:11:03:210] Secure Feature support [SEC_FEATURE_SUPPORT: 0x55]␍␊
[12:11:03:210] Boot Information [BOOT_INFO: 0x07]␍␊
[12:11:03:210] Device supports alternative boot method␍␊
[12:11:03:226] Device supports dual data rate during boot␍␊
[12:11:03:226] Device supports high speed timing during boot␍␊
[12:11:03:226] Boot partition size [BOOT_SIZE_MULTI: 0x20]␍␊
[12:11:03:226] Access size [ACC_SIZE: 0x08]␍␊
[12:11:03:226] High-capacity erase unit size [HC_ERASE_GRP_SIZE: 0x01]␍␊
[12:11:03:242] i.e. 512 KiB␍␊
[12:11:03:242] High-capacity erase timeout [ERASE_TIMEOUT_MULT: 0x11]␍␊
[12:11:03:242] Reliable write sector count [REL_WR_SEC_C: 0x01]␍␊
[12:11:03:242] High-capacity W protect group size [HC_WP_GRP_SIZE: 0x10]␍␊
[12:11:03:258] i.e. 8192 KiB␍␊
[12:11:03:258] Sleep current (VCC) [S_C_VCC: 0x08]␍␊
[12:11:03:258] Sleep current (VCCQ) [S_C_VCCQ: 0x08]␍␊
[12:11:03:258] Sleep/awake timeout [S_A_TIMEOUT: 0x15]␍␊
[12:11:03:258] Sector Count [SEC_COUNT: 0x03a68000]␍␊
[12:11:03:274] Device is block-addressed␍␊
[12:11:03:274] Minimum Write Performance for 8bit:␍␊
[12:11:03:274] [MIN_PERF_W_8_52: 0x08]␍␊
[12:11:03:274] [MIN_PERF_R_8_52: 0x08]␍␊
[12:11:03:274] [MIN_PERF_W_8_26_4_52: 0x08]␍␊
[12:11:03:290] [MIN_PERF_R_8_26_4_52: 0x08]␍␊
[12:11:03:290] Minimum Write Performance for 4bit:␍␊
[12:11:03:290] [MIN_PERF_W_4_26: 0x08]␍␊
[12:11:03:290] [MIN_PERF_R_4_26: 0x08]␍␊
[12:11:03:290] Power classes registers:␍␊
[12:11:03:290] [PWR_CL_26_360: 0x00]␍␊
[12:11:03:290] [PWR_CL_52_360: 0x00]␍␊
[12:11:03:306] [PWR_CL_26_195: 0x00]␍␊
[12:11:03:306] [PWR_CL_52_195: 0x00]␍␊
[12:11:03:306] Partition switching timing [PARTITION_SWITCH_TIME: 0xff]␍␊
[12:11:03:306] Out-of-interrupt busy timing [OUT_OF_INTERRUPT_TIME: 0xff]␍␊
[12:11:03:306] I/O Driver Strength [DRIVER_STRENGTH: 0x1f]␍␊
[12:11:03:322] Card Type [CARD_TYPE: 0x57]␍␊
[12:11:03:322] HS200 Single Data Rate eMMC @200MHz 1.8VI/O␍␊
[12:11:03:322] HS Dual Data Rate eMMC @52MHz 1.8V or 3VI/O␍␊
[12:11:03:322] HS eMMC @52MHz - at rated device voltage(s)␍␊
[12:11:03:338] HS eMMC @26MHz - at rated device voltage(s)␍␊
[12:11:03:338] CSD structure version [CSD_STRUCTURE: 0x02]␍␊
[12:11:03:338] Command set [CMD_SET: 0x00]␍␊
[12:11:03:338] Command set revision [CMD_SET_REV: 0x00]␍␊
[12:11:03:338] Power class [POWER_CLASS: 0x00]␍␊
[12:11:03:354] High-speed interface timing [HS_TIMING: 0x03]␍␊
[12:11:03:354] Erased memory content [ERASED_MEM_CONT: 0x00]␍␊
[12:11:03:354] Boot configuration bytes [PARTITION_CONFIG: 0x48]␍␊
[12:11:03:354] Boot Partition 1 enabled␍␊
[12:11:03:370] No access to boot partition␍␊
[12:11:03:370] Boot config protection [BOOT_CONFIG_PROT: 0x00]␍␊
[12:11:03:370] Boot bus Conditions [BOOT_BUS_CONDITIONS: 0x00]␍␊
[12:11:03:370] High-density erase group definition [ERASE_GROUP_DEF: 0x01]␍␊
[12:11:03:386] Boot write protection status registers [BOOT_WP_STATUS]: 0x00␍␊
[12:11:03:386] Boot Area Write protection [BOOT_WP]: 0x00␍␊
[12:11:03:386] Power ro locking: possible␍␊
[12:11:03:386] Permanent ro locking: possible␍␊
[12:11:03:402] ro lock status: not locked␍␊
[12:11:03:402] User area write protection register [USER_WP]: 0x00␍␊
[12:11:03:402] FW configuration [FW_CONFIG]: 0x00␍␊
[12:11:03:402] RPMB Size [RPMB_SIZE_MULT]: 0x20␍␊
[12:11:03:402] Write reliability setting register [WR_REL_SET]: 0x00␍␊
[12:11:03:419] user area: existing data is at risk if a power failure occurs during a write operation␍␊
[12:11:03:419] partition 1: existing data is at risk if a power failure occurs during a write operation␍␊
[12:11:03:435] partition 2: existing data is at risk if a power failure occurs during a write operation␍␊
[12:11:03:435] partition 3: existing data is at risk if a power failure occurs during a write operation␍␊
[12:11:03:450] partition 4: existing data is at risk if a power failure occurs during a write operation␍␊
[12:11:03:450] Write reliability parameter register [WR_REL_PARAM]: 0x15␍␊
[12:11:03:450] Device supports writing EXT_CSD_WR_REL_SET␍␊
[12:11:03:466] Device supports the enhanced def. of reliable write␍␊
[12:11:03:466] Enable background operations handshake [BKOPS_EN]: 0x00␍␊
[12:11:03:466] H/W reset function [RST_N_FUNCTION]: 0x00␍␊
[12:11:03:482] HPI management [HPI_MGMT]: 0x01␍␊
[12:11:03:482] Partitioning Support [PARTITIONING_SUPPORT]: 0x07␍␊
[12:11:03:482] Device support partitioning feature␍␊
[12:11:03:482] Device can have enhanced tech.␍␊
[12:11:03:482] Max Enhanced Area Size [MAX_ENH_SIZE_MULT]: 0x0004de␍␊
[12:11:03:498] i.e. 10207232 KiB␍␊
[12:11:03:498] Partitions attribute [PARTITIONS_ATTRIBUTE]: 0x00␍␊
[12:11:03:498] Partitioning Setting [PARTITION_SETTING_COMPLETED]: 0x00␍␊
[12:11:03:498] Device partition setting NOT complete␍␊
[12:11:03:514] General Purpose Partition Size␍␊
[12:11:03:514] [GP_SIZE_MULT_4]: 0x000000␍␊
[12:11:03:514] [GP_SIZE_MULT_3]: 0x000000␍␊
[12:11:03:514] [GP_SIZE_MULT_2]: 0x000000␍␊
[12:11:03:514] [GP_SIZE_MULT_1]: 0x000000␍␊
[12:11:03:514] Enhanced User Data Area Size [ENH_SIZE_MULT]: 0x000000␍␊
[12:11:03:530] i.e. 0 KiB␍␊
[12:11:03:530] Enhanced User Data Start Address [ENH_START_ADDR]: 0x00000000␍␊
[12:11:03:530] i.e. 0 bytes offset␍␊
[12:11:03:530] Bad Block Management mode [SEC_BAD_BLK_MGMNT]: 0x00␍␊
[12:11:03:546] Periodic Wake-up [PERIODIC_WAKEUP]: 0x00␍␊
[12:11:03:546] Program CID/CSD in DDR mode support [PROGRAM_CID_CSD_DDR_SUPPORT]: 0x01␍␊
[12:11:03:546] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[127]]: 0x00␍␊
[12:11:03:546] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[126]]: 0x00␍␊
[12:11:03:562] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[125]]: 0x20␍␊
[12:11:03:562] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[124]]: 0x00␍␊
[12:11:03:562] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[123]]: 0x00␍␊
[12:11:03:578] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[122]]: 0x20␍␊
[12:11:03:578] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[121]]: 0x00␍␊
[12:11:03:578] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[120]]: 0x00␍␊
[12:11:03:594] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[119]]: 0x00␍␊
[12:11:03:594] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[118]]: 0x00␍␊
[12:11:03:594] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[117]]: 0x00␍␊
[12:11:03:611] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[116]]: 0x00␍␊
[12:11:03:611] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[115]]: 0x00␍␊
[12:11:03:611] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[114]]: 0x00␍␊
[12:11:03:628] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[113]]: 0x00␍␊
[12:11:03:628] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[112]]: 0x00␍␊
[12:11:03:628] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[111]]: 0x00␍␊
[12:11:03:645] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[110]]: 0x00␍␊
[12:11:03:645] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[109]]: 0x00␍␊
[12:11:03:645] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[108]]: 0x00␍␊
[12:11:03:658] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[107]]: 0x00␍␊
[12:11:03:658] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[106]]: 0x00␍␊
[12:11:03:658] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[105]]: 0x00␍␊
[12:11:03:658] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[104]]: 0x00␍␊
[12:11:03:674] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[103]]: 0x00␍␊
[12:11:03:674] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[102]]: 0x00␍␊
[12:11:03:674] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[101]]: 0x00␍␊
[12:11:03:690] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[100]]: 0x00␍␊
[12:11:03:690] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[99]]: 0x00␍␊
[12:11:03:690] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[98]]: 0x00␍␊
[12:11:03:706] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[97]]: 0x00␍␊
[12:11:03:706] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[96]]: 0x00␍␊
[12:11:03:706] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[95]]: 0x00␍␊
[12:11:03:722] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[94]]: 0x00␍␊
[12:11:03:722] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[93]]: 0x00␍␊
[12:11:03:722] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[92]]: 0x00␍␊
[12:11:03:738] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[91]]: 0x00␍␊
[12:11:03:738] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[90]]: 0x00␍␊
[12:11:03:738] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[89]]: 0x00␍␊
[12:11:03:754] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[88]]: 0x00␍␊
[12:11:03:754] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[87]]: 0x00␍␊
[12:11:03:754] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[86]]: 0x00␍␊
[12:11:03:754] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[85]]: 0x00␍␊
[12:11:03:770] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[84]]: 0x00␍␊
[12:11:03:770] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[83]]: 0x00␍␊
[12:11:03:770] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[82]]: 0x00␍␊
[12:11:03:786] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[81]]: 0x00␍␊
[12:11:03:786] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[80]]: 0x00␍␊
[12:11:03:786] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[79]]: 0x00␍␊
[12:11:03:802] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[78]]: 0x00␍␊
[12:11:03:802] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[77]]: 0x00␍␊
[12:11:03:802] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[76]]: 0x00␍␊
[12:11:03:818] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[75]]: 0x00␍␊
[12:11:03:818] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[74]]: 0x00␍␊
[12:11:03:818] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[73]]: 0x00␍␊
[12:11:03:834] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[72]]: 0x00␍␊
[12:11:03:834] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[71]]: 0x00␍␊
[12:11:03:834] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[70]]: 0x00␍␊
[12:11:03:850] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[69]]: 0x00␍␊
[12:11:03:850] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[68]]: 0x00␍␊
[12:11:03:850] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[67]]: 0x00␍␊
[12:11:03:850] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[66]]: 0x00␍␊
[12:11:03:866] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[65]]: 0x00␍␊
[12:11:03:866] Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[64]]: 0x00␍␊
[12:11:03:866] Native sector size [NATIVE_SECTOR_SIZE]: 0x00␍␊
[12:11:03:882] Sector size emulation [USE_NATIVE_SECTOR]: 0x00␍␊
[12:11:03:882] Sector size [DATA_SECTOR_SIZE]: 0x00␍␊
[12:11:03:882] 1st initialization after disabling sector size emulation [INI_TIMEOUT_EMU]: 0x00␍␊
[12:11:03:898] Class 6 commands control [CLASS_6_CTRL]: 0x00␍␊
[12:11:03:898] Number of addressed group to be Released[DYNCAP_NEEDED]: 0x00␍␊
[12:11:03:898] Exception events control [EXCEPTION_EVENTS_CTRL]: 0x0000␍␊
[12:11:03:914] Exception events status[EXCEPTION_EVENTS_STATUS]: 0x0000␍␊
[12:11:03:914] Extended Partitions Attribute [EXT_PARTITIONS_ATTRIBUTE]: 0x0000␍␊
[12:11:03:914] Context configuration [CONTEXT_CONF[51]]: 0x00␍␊
[12:11:03:914] Context configuration [CONTEXT_CONF[50]]: 0x00␍␊
[12:11:03:930] Context configuration [CONTEXT_CONF[49]]: 0x00␍␊
[12:11:03:930] Context configuration [CONTEXT_CONF[48]]: 0x00␍␊
[12:11:03:930] Context configuration [CONTEXT_CONF[47]]: 0x00␍␊
[12:11:03:930] Context configuration [CONTEXT_CONF[46]]: 0x00␍␊
[12:11:03:946] Context configuration [CONTEXT_CONF[45]]: 0x00␍␊
[12:11:03:946] Context configuration [CONTEXT_CONF[44]]: 0x00␍␊
[12:11:03:946] Context configuration [CONTEXT_CONF[43]]: 0x00␍␊
[12:11:03:962] Context configuration [CONTEXT_CONF[42]]: 0x00␍␊
[12:11:03:962] Context configuration [CONTEXT_CONF[41]]: 0x00␍␊
[12:11:03:962] Context configuration [CONTEXT_CONF[40]]: 0x00␍␊
[12:11:03:962] Context configuration [CONTEXT_CONF[39]]: 0x00␍␊
[12:11:03:978] Context configuration [CONTEXT_CONF[38]]: 0x00␍␊
[12:11:03:978] Context configuration [CONTEXT_CONF[37]]: 0x00␍␊
[12:11:03:978] Packed command status [PACKED_COMMAND_STATUS]: 0x00␍␊
[12:11:03:978] Packed command failure index [PACKED_FAILURE_INDEX]: 0x00␍␊
[12:11:03:994] Power Off Notification [POWER_OFF_NOTIFICATION]: 0x01␍␊
[12:11:03:994] Control to turn the Cache ON/OFF [CACHE_CTRL]: 0x01␍␊
[12:11:03:994] eMMC Firmware Version: <0x90>␍␊
[12:11:03:994] eMMC Life Time Estimation A [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_A]: 0x01␍␊
[12:11:04:010] eMMC Life Time Estimation B [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_B]: 0x01␍␊
[12:11:04:010] eMMC Pre EOL information [EXT_CSD_PRE_EOL_INFO]: 0x01␍␊
[12:11:04:026] Command Queue Support [CMDQ_SUPPORT]: 0x01␍␊
[12:11:04:026] Command Queue Depth [CMDQ_DEPTH]: 16␍␊
[12:11:04:026] Command Enabled [CMDQ_MODE_EN]: 0x00␍␊
Do you have any suggestion on the issue, please ?
Best Regards,
Khang Le Truong
sdcard has no boot partition. You don't need the script for sdcard. You can remove the script from sw-description.
Technically, this question is not related to the swupdate. It is the knowledge of sdcard and emmc.
You can roughly treat emmc is a sdcard + 2 boot partitions.
That is all here. I won't talk about more about emmc. It is not related to this swupdate topic.
You can read my sharing. But suggest you can read the JEDEC spec for emmc and SD Card Association docs for sdcard/tf card, my documents all come there.
eMMC RPMB Enhance and GP
https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/eMMC-RPMB-Enhance-and-GP/ta-p/1099818
Hi @BiyongSUN ,
It works like a charm by removing the aforementioned script from the sw-description of dualcopy swupdate on SD card.
Hello, there is no explanation of what these attachments are for. I am porting swupdate to imx8mp, and got lost on how to create a wic file with all the partitions