petalinux-boot jtag Examples - petalinux-boot jtag Examples - 2026.1 English - UG1144

PetaLinux Tools Documentation: Reference Guide (UG1144)

Document ID
UG1144
Release Date
2026-06-23
Version
2026.1 English

Select the images for loading on target from the following:

  1. Prebuilt directory: <plnx-proj-root>/pre-built/linux/images. These are prebuilt images packed along with the BSP.
  2. Images directory: <plnx-proj-root>/images/linux. These are the images built by the user.

The following examples demonstrate some use-cases of the petalinux-boot jtag command.

  • Download bitstream and FSBL for Zynq 7000 devices, and FSBL and PMU firmware for Zynq UltraScale+ MPSoC
    petalinux-boot jtag --prebuilt 1
    Note: Images are taken from <plnx-proj-root>/pre-built/linux/images directory.
  • Boot U-Boot on target board after loading bitstream/boot loader.
    petalinux-boot jtag --prebuilt 2
    Note: Images are taken from <plnx-proj-root>/pre-built/linux/images directory.
    petalinux-boot jtag --u-boot --fpga
    Note: Images are taken from <plnx-proj-root>/images/linux directory.
    • For MicroBlaze™ processors, the previous commands download the bitstream to the target board, and boot the U-Boot on the target board.
    • For Zynq 7000 devices, they download the bitstream and FSBL to the target board, and boot the U-Boot on the target board.
    • For Zynq UltraScale+ MPSoC, they download the bitstream, PMU firmware, FSBL, and U-Boot, and boot upto U-Boot on the target board.
    • For AMD Versal™ adaptive SoC, they download BOOT.BIN (which contains the PDI, PLM firmware, PSM firmware, U-Boot, and DTB) and boot the U-Boot on the target board.
  • Boot prebuilt kernel on target board after loading bitstream, boot loader, and U-Boot.
    petalinux-boot jtag --prebuilt 3
    Note: Images are taken from <plnx-proj-root>/pre-built/linux/images directory.
    petalinux-boot jtag --kernel
    Note: Images are taken from <plnx-proj-root>/images/linux directory.
  • Generate debug messages while loading images:
  • petalinux-boot jtag --u-boot/--kernel -v
    Note: Images are taken from <plnx-proj-root>/images/linux directory.
  • For JTAG boot, specify the cpio rootfile system. It supports Zynq, Zynq UltraScale+ MPSoC, Versal, and MicroBlaze.

  • Boot customized rootfs image with kernel using JTAG:
    $ petalinux-boot --jtag --prebuilt 2 --hw_server-url xhdbfarmrkg5:3121
    
    Zynq MP First Stage Boot Loader
    Release 2026.1   May 15 2026  -  09:05:14
    NOTICE:  BL31: Secure code at 0x60000000
    NOTICE:  BL31: Non secure code at 0x8000000
    NOTICE:  BL31: v2.14.0(release):v1.1-17686-ge9b1373a7
    NOTICE:  BL31: Built : 03:57:47, Apr 30 2026
    
    
    U-Boot 2026.01 (May 13 2026 - 07:47:53 +0000)
    
    CPU:   ZynqMP
    Silicon: v3
    Chip:  zu9eg
    Model: ZynqMP ZCU102 Rev1.0
    Board: Xilinx ZynqMP
    DRAM:  2 GiB (total 4 GiB)
    gpio_hog_of_to_plat: wrong gpios property, 2 values needed -22
    gpio_hog_of_to_plat: wrong gpios property, 2 values needed -22
    EL Level:       EL2
    Secure Boot:    not authenticated, not encrypted
    Core:  81 devices, 31 uclasses, devicetree: board
    NAND:  0 MiB
    MMC:   mmc@ff170000: 0
    Loading Environment from nowhere... OK
    In:    serial
    Out:   serial,vidconsole
    Err:   serial,vidconsole
    Bootmode: JTAG_MODE
    
    Net:
    ZYNQ GEM: ff0e0000, mdio bus ff0e0000, phyaddr 12, interface rgmii-id
    Tools Documentation Reference Guide 244
    Warning: ethernet@ff0e0000 (eth0) using random MAC address -
    f6:45:63:06:10:bc
    eth0: ethernet@ff0e0000
    scanning bus for devices...
    Warning: ethernet@ff0e0000 (eth0) using random MAC address -
    f6:45:63:06:10:bceth0: ethernet@ff0e0000scanning bus for devices...SATA
    link 0 timeout.
    Target spinup took 0 ms.
    AHCI 0001.0301 32 slots 2 ports 6 Gbps 0x3 impl SATA mode
    flags: 64bit ncq pm clo only pmp fbss pio slum part ccc apst
    Device 0: (1:0) Vendor: ATA Prod.: ST3160212SCE Rev: 3.AC
    Type: Hard Disk
    Capacity: 152627.8 MB = 149.0 GB (312581809 x 512)
    starting USB...
    Bus usb@fe200000: Register 2000440 NbrPorts 2
    Starting the controller
    USB XHCI 1.00
    scanning bus usb@fe200000 for devices... 2 USB Device(s) found
    scanning usb for storage devices... 1 Storage Device(s) found
    Hit any key to stop autoboot: 2 0
    ZynqMP> dhcp
    dhcp
    ethernet@ff0e0000 Waiting for PHY auto negotiation to complete.. done
    BOOTP broadcast 1
    BOOTP broadcast 2
    BOOTP broadcast 3
    DHCP client bound to address 10.10.70.1 (1255 ms)
    *** Warning: no boot file name; using '0A0A4601.img'
    Using ethernet@ff0e0000 device
    TFTP from server 10.10.70.101; our IP address is 10.10.70.1
    Filename '0A0A4601.img'.
    Load address: 0x8000000
    Loading: *
    TFTP error: 'File not found' (1)
    Not retrying...
    ZynqMP>
    
    • For MicroBlaze processors, the previous commands download the bitstream to the target board, and boot the kernel image on the target board.
    • For Zynq 7000 devices, they download the bitstream and FSBL to the target board, and boot the U-Boot and the kernel on the target board.
    • For Zynq UltraScale+ MPSoC, they download the bitstream, PMU firmware, and FSBL, and boot the kernel with help of linux-boot.elf to set kernel start and DTB addresses.
    • For AMD Versal™ adaptive SoC, they download the BOOT.BIN (which contains the PDI, PLM firmware, PSM firmware, U-Boot, and DTB) and boot the kernel (Image) with the help of U-Boot script (boot.scr).