Peta Linux Technical Training Summary
Course objectives
- Install the Peta Linux Development Environment
- Fundamentals of The Peta Linux -Yacto
- Application Creation for Peta Linux User Level
Lesson 1: Introduction & Overview
What is Peta-linux
- Open Source cross platform tools
- NOT a Linux distribution
Using PetaLinux Tools
- Build Peta Linux for Ultra96
- Customize and configure Ultra96
- Vivado Hardware into Peta linux
- Create Own Peta Linux BSP
Peta Linux History
- Linux is a Free version of Unix for x86 - 1991
- Linux is ported to arm in 1994 on Acorn Processor
- Xilinx acquired PelaLogix -Peta-Linux First public release in 2013
6 Peta Linux Commands
petalinux-create |
- Creates a PetaLinux project. This can be a blank template project or created from premade 3rd party resources. |
petalinux-config |
Initialize or update project's hardware configuration or configure kernel and/or file system settings. |
petalinux-build |
Build specific components or an entire Linux system for the PetaLinux project (including FSBL, uboot, device tree, etc.) |
petalinux-boot |
Boots a specified Linux image either via JTAG onto hardware or QEMU software emulator. |
petalinux-package |
Formats the PetaLinux project for a specified deployment method. |
petalinux-util |
Command that provides a variety of support services for PetaLinux workflows. |
- Peta Linux tool uses Yacto community
- QEMU emulates Petalinux under x86 Linux
- Open Source based with Some HW Driver expectation
- Includes and Manages Linux kernel Sources
- Various HW Drivers and Modules with Linux Application & utilities
- Included U-boot, FSBL, ARM trusted Firmware
- Works Directly with Vivado IP blocks
- Imports HW Designs into the PL-FPGA
- 2021.2 to Linux Kernal 5.10
- Works with Vitis, Vivado and SDSoc
- Peta Linux works on APU 4 -64Bit Multi tasking
- R5- Can not Run Peta Linux they Run FreeRTOS
- Communication between A53 and R5 can use OpemAMP
- Peta Linux is not a Pure RTOS
Peta Linux Design Flow
- Export the Design from Vivado
- Configure the APplication in Peta Linux
- Create the Application in Vitis - Debug and Profile
- Package and Deploy in the Hardware
Peta Linux Tool Flow
- Select BSP
- Configure the Kernal, Application and System Settings
- Build the Kernala and Root Filesystems
- Boot on QEMU or Zynq PL
Lab 0 - installation
{gallery}Tool Installation |
---|
|
|
|
|
|
What is YACTO ? : https://docs.yoctoproject.org/index.html
- Open source collaboration project provides methods to create custom Linux based System
- Its a Framework not a system
- Uses bitbake build tool
- Populator for embedded systems
Petalinux platform configuration
- PS-PL configuration can be different :
- Device Tree - A special Data File - information for Kernel about the hardware
- DTS : Device Tree Source : Description of System Device tree
- DTB : Device Tree Blob :Compiled Binary representation of DTS.
- DTC : Device Tree Compiler : Converts DTS to a DTB and vice versa
What is Device Tree Structure
- DTB provided to kernel at Boot Time
- System memory location/Size
- Device types, address mappings
- Kernel infrastructure binds drivers ti devices
- Matches compatibility in device node
- Device driver declares known compatible devices
- Peta Linux generates Device tree in Automated way
Lesson 3
- Wide range of connectivity at ultra96
- Wifi Module - ATWILC3000
- USB2.0, USB3.0
LAB3 : WiFi Connectivity
Lesson 4 : PetaLinux User Application Development
- User Application access virtual Address
- Memory mapped address space, virtual and Physical Address
- Managed by MMU - Memory managed Unit
- Prevents interference from another application
- No need of user application to map to Hardware manipulation
- HW can be shared with several application
- OS can control the user program
- SW and HW security increased due to MMU
- Disadvantages of MMU
- Performance or latency issue” Pass through cache memories
- Inter processor communication is Slower for multiple application
- User vs Kernel Application Code
User Application Code |
Kernel Application Code |
Slower performance and Slow execution |
High performance and fast execution |
No COntrol on CPU |
Kernel code control over how much CPU uses it |
Indirect access to CPU via Device drivers |
Direct access to CPU |
Can not crash the system |
Kernel code can crash the system |
Only virtual memory |
Virtual and Physical memory |
LAB 4 : Creating Peta Linux Application using Vitis
Lesson 5 : Integrating Sensors on Ultra96 with Peta Linux
Learning with ELement14 Continues
Regards
Prashanth Kumar G N
Top Comments