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 - from u-boot or other source) 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...
You can find more details how RK3328 boot in the technical reference manual (http://opensource.rock-chips.com/images/...170321.pdf) and by looking at ayufan's github for the sources of u-boot, linux and the image build system, also the sources for the u-boot on the SPI flash: http://www.github.com/ayufan-rock64
You can find more details how RK3328 boot in the technical reference manual (http://opensource.rock-chips.com/images/...170321.pdf) and by looking at ayufan's github for the sources of u-boot, linux and the image build system, also the sources for the u-boot on the SPI flash: http://www.github.com/ayufan-rock64
Come have a chat in the Pine IRC channel >>