I am looking into the options for a custom SAMA5D2x based design (exact part yet to be determined) and I need to be able to boot the device from cold to an application being operational in Linux as quickly as possible (ideally sub 5 seconds). The device won't have a removable SD card but no decision has been made regarding QSPI, NAND, eMMC or a combination thereof.
Looking at the various code and documentation it looks as though the fastest boot time will be achieved by having at91bootstrap boot the Linux kernel directly and bypass the extra time needed for U-Boot.
For optimal performance, would it be better to put at91bootstrap into a QSPI device and have the kernel as part of the rootfs in eMMC? Put the kernel into QSPI with at91bootstrap? Put everything into the eMMC device? Use NAND?
This is further complicated as we also need to consider how it will be programmed in the factory. The board won't have a wired ethernet connection so it won't be possible to download anything that way (we may put the PHY and RJ45 on a debug board for testing). I don't yet know what size the root file system will end up being but programming it through SAM-BA sounds like it will be tedious and slow!
Any guidance from the experts would be appreciated.