Booting

Booting Linux on a Xilinx device is a multi-step process that varies across different devices and boards. The sections below explain the high-level boot process for Zynq UltraScale+ MPSoC/RFSoC devices. Refer to the user guide sections for the reference hardware platforms for specific boot requirements of each platform.

Booting the Node

The Mango 802.11 reference PetaLinux projects default to booting the node from an SD card.

  1. Format a micro-SD card with a single FAT32 partition
  2. Copy the contents of the sd_root folder from the Mango release archive to the root of the SD card. The SD card should contain:
    1. BOOT.BIN (bootloaders)
    2. image.ub (kernel image and ramdisk)
    3. mango_boot.sh (optional helper script to load the design automatically at boot)
    4. hw_binaries/ folder containing:
      1. linux_dev.elf and edca.elf (MAC software applications)
      2. system.bit (FPGA PL bitstream)
  3. (Optional) Copy any other files to the SD card required for your application
  4. Configure your MPSoC board for SD boot (see user guide section for the hardware platform)
  5. Insert the SD card, power on the node, and watch the UART console output. A normal boot prints output from the FSBL, PMUFW, ATF, u-boot, and Linux. A login prompt will appear on the UART console when boot is finished.
  6. Login to Linux as root / root via the UART console or SSH
  7. If mango_boot.sh is present it will automatically load the 802.11 MAC/PHY design after boot. Otherwise, load the design manually:
  1. Watch the UART output for RPU boot messages. On platforms with multiple UARTS (e.g. ZCU104) the R5 CPUs may print to a different UART than the Linux console.
  2. Check the kernel log with dmesg to confirm the mango_wlan driver module loaded successfully.
  3. Use the 802.11 wireless network interface like any other interface. The reference projects include some example scripts (run_ap.sh, run_monitor.sh, etc.) and utility programs (tcpdump, etc.).