Embedded Design with AMD PetaLinux Tools

SKU: EMBD-PLNX Category: Tag:

Course Description

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 Xilinx 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