eMMC Memory Layout for SWUpdate

95 Views Asked by At

In order to implement SWUpdate Dual Copy (A/B) update on an eMMC embedded Linux sistem, I'd like to partitioning the eMMC so as to have two kernel partitions with the goal of switch from uImageA to uImageB.

Today the memory layout is the following:

  • /dev/mmcblk0p1 as VFAT containing SPL, U-Boot and the kernel
  • /dev/mmmcblkpX that contains the various rootFSs.

Now I'd like to move the kernel out side of VFAT partition to a non VFAT partition.

How I could do that?

In other words, if I have U-boot in VFAT partition, how I could run the Linux Kernel if it is placed in /dev/mmcblk0p2 (copied with dd). I'm "preparing" the eMMC as follow:

  • /dev/mmcblkp1, VFAT, SPL + U-Boot
  • /dev/mmcblkp2, dd if=uImageA.bin of=/dev/mmcblkp2 etc
  • /dev/mmcblkp3, dd if=uImageB.bin of=/dev/mmcblkp3 etc
  • /dev/mmcblkp4, EXT4 containing rootFSA
  • /dev/mmcblkp5, EXT4 containing rootFSB

But I don't know how, at u-boot level, load uImage from /dev/mmcblkp2 partition. Today, i'm loading the kernel using fatload command.

0

There are 0 best solutions below