Follow the stages from BootROM, build BOOT.BIN and select the roles of the FSBL, ATF, U-Boot and bitstream.
JTAG loads an ELF during development. To start without a workstation, prepare an image on a supported nonvolatile source such as SD or QSPI.
Follow the first stages
After Power On Reset, BootROM reads boot mode and prepares initial loading. This internal code is not your application.
The FSBL is the first editable stage of the conventional Zynq flow. It applies hardware-derived initialization, including clocks and DDR, loads partitions, and hands over execution. It can also configure PL.
MPSoC adds management and security functions involving PMU and CSU. Linux systems generally use several components:
Partition
Common role
FSBL
PS initialization and first loading stage
PMU firmware
ZynqMP platform management
Bitstream
PL configuration
Arm Trusted Firmware
Transition to the required exception levels
U-Boot
Second-stage loader and system source selection
Linux image
Kernel, device tree and file system
Application ELF
Standalone program
Sources and ordering depend on generation, image, and boot mode. PMU firmware is not an ordinary ARM application.
Assemble BOOT.BIN
Bootgen reads a BIF describing partitions and attributes:
This BIF illustrates an MPSoC flow to U-Boot, not a complete Linux image. Zynq-7000 standalone generally needs FSBL and application ELF, plus a bitstream when PL is used.
Configure PL before software accesses its IP. Destinations and exception levels must match each binary and selected processor.
int main(void){ Xil_DCacheDisable(); delay(1U); xil_printf("Boot application started\r\n"); return 0;}
This fragment assumes BSP headers, configured UART output, and a project-defined delay function. Waiting does not configure UART. Cache disabling serves diagnosis here, not a universal boot requirement.
Add a second loader when needed
FSBL operates with limited local memory. U-Boot adds drivers, commands, files, networking, and image selection, useful for Linux and update strategies. Small standalone applications can omit it.
For failures, begin with a minimal image and serial console. Check mode, media, partition order, destinations, and consistency between XSA, FSBL, bitstream, and application. No message can also mean incorrect UART selection; it does not prove BootROM is stuck.
Plan secure boot
Authentication and encryption depend on family and policy. Trust roots, keys, updates, and recovery must form a coherent chain before production.