We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Embedded Design with PetaLinux Tools

Release Date:
December 2017
Embedded Software 4
2 days

Quick Links

Key Documentation


Embedded software developers interested in customizing the PetaLinux kernel on an ARM processor design for a Xilinx Zynq® SoC.



For class schedules as well as tuition and registration information, please contact one of our Authorized Training Providers.

Course Description

This intermediate-level, two-day course provides embedded systems developers with experience in creating an embedded Linux system targeting a Zynq® System on a Chip (SoC) processor and Zynq UltraScale+™ MPSoC processor development board using PetaLinux Tools. The course offers students hands-on experience with building the environment and booting the system using a Zynq SoC or Zynq UltraScale+ MPSoC design with PetaLinux Tools on the ARM® Cortex™-A9 or Cortex-A53 processor.

This course also introduces embedded Linux components, use of open-source components, environment configurations, network components, and debugging options for embedded Linux platforms. The primary focus is on embedded Linux development in conjunction with the Xilinx tool flow.

Software Tools

  • Vivado® Design System Edition 2017.3
  • PetaLinux Tools 2017.3


  • Architecture: Zynq-7000 SoC*
  • Demo board: ZedBoard*; Xilinx ZCU102 Evaluation Board

* This course focuses on the Zynq-7000 SoC and Zynq UltraScale+ MPSoC architecture. Check with your local Authorized Training Provider for the specifics of the in-class lab board or other customizations.

Skills Gained

After completing this comprehensive training, you will have the necessary skills to:

  • Explain what an embedded Linux kernel is
  • Describe the Linux device driver architecture
  • Create a PetaLinux project to configure and build an image using PetaLinux tools
  • Create a working ARM Cortex-A9 or Cortex-A53 Processor Linux system using the Vivado Design Suite and PetaLinux tools
  • List various hardware interfacing options available for the ARM Cortex-A9 and Cortex-A53 Processor
  • Build custom hardware cores and device drivers using the user space I/O (UIO) framework

Course Outline

Lab Lecture Demo

Day 1

  1. 1.1
    Embedded Linux Overview
  2. 1.2
    Lab 1: A First Look Log in to the ARM processor Linux system and make comparisons between the embedded Linux and desktop Linux environments.
  3. 1.3
    Introduction to the PetaLinux Tools
  4. 1.4
    Lab 2: Build and Boot an Image Explore the Linux configuration menus and build the ARM processor Linux kernel and applications. Download the resulting system image to the development board.
  5. 1.5
    Application Development and Debugging
  6. 1.6
    Lab 3: Application Development and Debugging Create a simple user application with PetaLinux Tools and debug the application with System Debugger.
  7. 1.7
    Networking and TCP/IP
  8. 1.8
    Lab 4: Networking and TCP/IP Explore the kernel configuration menu. Log in to the ARM processor Linux system by using telnet. Transfer files to and from Linux by using FTP. Build and experiment with web-based applications under Linux.
  9. 1.9
    Device Drivers, User Space I/O, and Loadable Kernel Modules
  10. 1.10
    Lab 5: Accessing Hardware Devices from User Space Access a hardware device directly from user space. Use the UIO framework to access a hardware device. Experience loading and unloading kernel modules.

Day 2

  1. 2.1
    Board Bring Up with the Vivado Design Suite and PetaLinux Tools
  2. 2.2
    Lab 6: Basic Hardware Design with the Vivado Design Suite and PetaLinux Tools Use the Vivado IP integrator (IPI) to create a basic hardware design with the ARM Cortex-A9 or ARM Cortex-A53 processor. Use PetaLinux Tools to create a new embedded Linux target for the hardware design.
  3. 2.3
    Custom Hardware Development and Interfacing
  4. 2.4
    Lab 7: Custom Hardware Development Design a customized IP core. Integrate the IP core with the AXI interface and debug.
  5. 2.5
    Custom Driver Development
  6. 2.6
    Lab 8: Custom Driver Development Write a UIO program to access the PWM AXI IP core. Boot from Flash and verify it on the target board.
Page Bookmarked