AMD Embedded Design with PetaLinux Tools

This course provides embedded systems developers experience with creating an embedded Linux system targeting AMD SoCs using the PetaLinux tools.
The course provides experience with:
▪ Using open-source embedded Linux components
▪ Using the PetaLinux tool design flow
▪ Creating and debugging an application
▪ Building the environment and booting the system using the Arm® processors available in AMD SoCs
▪ Customizing the root file system
▪ Configuring the Linux environment and network components
▪ Developing custom hardware and custom drivers The primary focus is on embedded Linux development in conjunction with the AMD tool flow.

Level: Embedded Software 4
Course Duration: 2 days ILT/19
Course Part Number: EMBD-PLNX
Who Should Attend?: – Embedded software developers interested in customizing a kernel using PetaLinux on the Arm processors available in AMD SoCs

Prerequisites

▪ Designing FPGAs Using the Vivado Design Suite 1
▪ Introduction to FPGA design
▪ Designing FPGAs Using the Vivado Design Suite 2
▪ Designing with the IP integrator
▪ Creating and packaging custom IP
▪ Embedded Systems Software Development
▪ Software development for embedded systems

Software Tools
•  PetaLinux Tools 2023.2
▪ Vivado® Design Suite 2023.2
▪ Vitis™ unified software platform 2023.2

Hardware
•Architecture: Zynq UltraScale+ MPSoC
•Demo board: Zynq UltraScale+ MPSoC ZCU104

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

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
  • Create a working Arm Cortex-A53 processor Linux system using the Vivado Design Suite and PetaLinux tools
  • List various hardware interfacing options available for the Arm Cortex-A53 processor
  • Build custom hardware cores and device drivers using the user space I/O (UIO) framework

Course Outline

Day 1

  • Introduction to Embedded Linux
    introduces embedded Linux, including a brief architectural overview, as well as some of the reasons for its rising popularity as an embedded OS. {Lecture}
  • Embedded Linux Components
    Describes the various components required for embedded Linux platforms and how the components affect the booting of Linux on these platforms. {Lecture, Lab}
  • Introduction to the PetaLinux Tools
    Describes the PetaLinux tools and their requirements. {Lecture}
  • PetaLinux Tools Workflow
    Provides a brief description of the PetaLinux tools workflow. {Lecture}
  • Basics of the PetaLinux Tools
    Describes in detail various PetaLinux commands and their example use cases.{Lecture, Lab}
  • Application Development and Debugging
    Introduces core concepts for developing, running, and debugging software applications in an embedded Linux environment. {Lecture, Lab}
  • Customizing rootfs
    Provides a brief description on customizing the rootfs for embedded Linux. {Lecture}
  • Networking and TCP/IP
    Discusses how the TCP/IP networking stack can be used to improve productivity during embedded product development. {Lecture, Lab}
    ▪ PetaLinux Booting and Packaging
    Describes how to package and then boot a PetaLinux image via
    QEMU, SD card, JTAG, and TFTP. {Lecture}

Day 2

▪ PetaLinux Application Debugging
Describes how to debug software applications running on an Arm processor using the system debugger (TCF agent) or GNU
debugger (GDB). {Lecture, Lab}
▪ Upgrading the Workspace
Describes the petalinux-upgrade command and how to upgrade PetaLinux project software components without changing the host
tool components. {Lecture}
▪ Basic Hardware Design Process with the Vivado Design Suite
Describes the complete board bring-up process, which includes the hardware design as well as Linux image creation for the
hardware. {Lecture, Lab}
 Linux Device Drivers Overview
Provides a brief overview on Linux device drivers and their requirements. Also describes what a device tree is and how it is
generated. {Lecture}
▪ User Space I/O and Loadable Kernel Modules
Introduces two lightweight approaches for accessing the physical memory of devices from user space: direct access through the
dev/mem virtual device and the user space I/O framework. Also covers the role and usage loadable kernel modules. {Lecture,
Lab}
▪ Custom Hardware Development
Describes the Create and Package IP Wizard and how it can be used to create a variety of architectural options for interfacing a
system with custom processing hardware. {Lecture, Lab}
▪ Custom Driver Development
Discusses device driver options to match custom hardware devices and how to use the provided interfaces to read and write
to the devices. {Lecture, Lab}
▪ PetaLinux: Advanced Configurations
Reviews how modify advanced configuration settings using the PetaLinux tool. These configurations include including selecting
the Linux components for the build, enabling automatic configuration for a selected component, customizing how the Linux system interacts with the underlying hardware platform.
{Lecture}

PDF Version Embedded Design with PetaLinux Tools