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