On my eMMC that I ordered maybe one or two years ago I had this version of u-boot:
U-Boot 2012.07-00035-g0209be0 (Oct 06 2015 - 18:21:02) for Exynos5422
I tried to get u-boot from SD to eMMC the same way as @justsomeguy1983 but for some reason there is no copy_uboot_sd2emmc and also command movi was unknown (and probably still is) unknown to u-boot.
Running the following commands finally read u-boot from SD and wrote to eMMC:
ODROID-XU3 # mmc dev 0
ODROID-XU3 # mmc read 0x50000000 0x1 0xa3e
ODROID-XU3 # mmc dev 1 1
ODROID-XU3 # mmc write 0x50000000 0x0 0xa3e
ODROID-XU3 # mmc dev 1 0
(source: https://wiki.tizen.org/wiki/Quick_guide_for_odroidxu4#booting_with_eMMC)
The only problem I had was not that there was no FAT partition in Armbian 5.27 but that ext4load was unknown to u-boot. Should have been ext2load. Actually, I was able to boot Armbian 5.27 from eMMC using serial console and these commands:
setenv load_addr "0x44000000"; setenv kerneladdr "0x40800000"; setenv initrdaddr "0x42000000"; setenv ftdaddr "0x44000000"; setenv rootdev "/dev/mmcblk0p1"; setenv rootfstype "ext4"; setenv console "both"; setenv mmcbootdev "0"; setenv mmcbootpart "1"
ext2load mmc ${mmcbootdev}:${mmcbootpart} ${load_addr} /boot/armbianEnv.txt; env import -t ${load_addr} ${filesize}
setenv consoleargs "console=tty1"; setenv consoleargs "${consoleargs} console=ttySAC2,115200n8"
setenv bootargs "${consoleargs} root=${rootdev} rootfstype=${rootfstype} rootwait panic=10 consoleblank=0 loglevel=${verbosity} ${extraargs}"
ext2load mmc ${mmcbootdev}:${mmcbootpart} ${kerneladdr} /boot/zImage; ext2load mmc ${mmcbootdev}:${mmcbootpart} ${initrdaddr} /boot/uInitrd; ext2load mmc ${mmcbootdev}:${mmcbootpart} ${ftdaddr} /boot/dtb/exynos5422-odroidxu4.dtb
bootz ${kerneladdr} ${initrdaddr} ${ftdaddr}
Basically this is a simplified boot.cmd from Armbian 5.27 replacing commands "load" with "ext2load".
Armbian is my favourite flavour for SBCs. I say this with 15+ years experience in Linux. Thank you.