# Minimal SD card image for the Freescale boards Template for SPL Boot
#
# We mimic the .sdcard Freescale's image format:
# * the SD card must have 1 kB free space at the beginning,
# * U-Boot is dumped as is,
# * a FAT partition at offset 8MB is containing zImage/uImage and DTB files
# * a single root filesystem partition is required (ext2, ext3 or ext4)
#

image boot.vfat {
  vfat {
    files = {
      %FILES%
    }
  }
  size = 16M
}

image sdcard.img {
  hdimage {
  }

  partition spl {
    in-partition-table = "no"
    image = "SPL"
    offset = 1024
  }

  partition u-boot {
    in-partition-table = "no"
    image = "%UBOOTBIN%"
    offset = 69K
  }

  partition boot {
    partition-type = 0xC
    bootable = "true"
    image = "boot.vfat"
    offset = 8M
  }

  partition rootfs {
    partition-type = 0x83
    image = "rootfs.ext2"
  }
}
