It is a bit different for every ARM SoC, but usually there is a boot ROM in the hardware that looks for a valid boot device (sdcard, emmc, spi-flash, nand...), then there is a second stage loader (SPL) on the image that initializes DRAM and loads the ATF (ARM Trusted Firmware) and u-boot from the image, u-boot then usually does some more hardware initialization if necessary and then loads your devicetree, initrd, kernel from the image to boot whatever OS you have... how you structure the image wrt to firmware location and partition layout is dependent on the first stage boot ROM and how you configure u-boot as well as what your OS requires, the FAT partition is more a convenience thing for Windows users so they can access some config files, it is not strictly necessary...
Come have a chat in the Pine IRC channel >>