2018.1 Vivado can format and partition eMMC flashes (See (UG908) for reference).
This Answer Record is an alternative method and describes the steps to program an eMMC device for the first time using Zynq UltraScale+ MPSoC.
in both cases, after programming, the user can boot from eMMC up to Linux and managed the eMMC partitions from there.
The steps are divided into 4 main sections:
1) Creating a Xilinx bootable image
Use the standard 2016.3 XSDK or Petalinux flow to create BOOT.bin and Image.ub.
See (UG1137) Zynq UltraScale+ MPSoC Software Developer Guide.
The image should be built to support eMMC as primary boot device.
2) Creating the emmc.img
From a Linux host machine, create the partition and copy the files.
3) Programming the emmc.img on the eMMC device
a) Boot in JTAG boot mode (Mode Pins[3:0] = 0x0)
b) Using XSDB to download u-boot and emmc.img
c) Programming steps from u-boot prompt:
Note: The First entry is the address, the last entry is $filesize/512
d) Verification steps from the u-boot prompt:
4) Boot Linux from the eMMC device
Boot in eMMC boot mode (Mode Pins[3:0] = 0x6)