Board manufacturers like BoundaryDevices, Toradex or Variscite also provide good information how to do this kind of stuff:
for example Programming eMMC on i.MX6 - Boundary Devices
But the link Igor provided above contains in principle all you need. It works perfectly fine.
I use a Linux PC for the imx_usb and dfu_util utilities and a second Windows PC for the terminal program.
Bootswitches for i.MX6 SABRESD board have to be set like shown in the attachment: USB OTG for the download/programming process, eMMC x-bit for the later booting from eMMC
Regards,
Bernhard.