SlideShare a Scribd company logo
1 of 20
Download to read offline
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 1
Vasileios Amoiridis
EP-CMD | CMS DAQ group
Acknowledgements: P. Žejdl & M. Dobson
Deploying and testing firmware/software
on Zynq MPSoC with GitLab CI/CD pipelines
Workflow for the Zynq MPSoC UltraScale+
• Vivado creates the Hardware Description File which contains the configuration of the ARM
processor and its peripherals. This file is used later by PetaLinux.
• PetaLinux creates the Firmware Images and the PetaLinux rootfs. The images are used to boot
the Zynq and the PetaLinux rootfs is used to create the Board Specific ROOTFS.
We use Network Boot:
• The images need to be deployed to the SD Card and the TFTP server that are going to be used for
booting. The ROOTFS needs to be deployed on the NFS server.
• When the board is booting its booting procedure is being monitored.
• After the board is booted, it is ready for automated testing!
In order to implement all the above steps, GitLab’s CI/CD Pipeline framework is used!
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 2
Linux on Zynq MPSoC UltraScale+
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 3
FSBL
PMU-FW
U-Boot ATF
Bootgen
BOOT.bin
CentOS 8 aarch64
(CERN repos)
Install CentOS 8
using QEMU VM
CentOS 8
(rootfs Image)
Xilinx Linux Kernel
(PetaLinux Package)
Build Kernel
CentOS 8 rootfs generation
Xilinx Linux Kernel
Device-Tree
(Board specific)
ZynqMP tools
(PetaLinux rootfs)
Bitstream
Source of inspiration: Exploration of ZynqUS+ for integrated slow control on Serenity for the CMS Track Trigger (Presentation given by Oliver Sander)
Kernel modules
Board Specific CentOS 8 rootfs
Kernel
Image
Install rootfs
CentOS 8 rootfs w/
ZynqMP support
Firmware
Integration
Image Repo
TFTP Server
NFS Server
SD Card
Vivado Pipeline
What is the role of the Vivado Pipeline?
• It is responsible to produce the Hardware Description File (.xsa) that is used by the PetaLinux Pipeline
• The .xsa file is the Hardware Description file. It has the configuration of the ARM processor and its peripherals
• The .bit file is the Bitstream file. It configures the Programmable Logic – FPGA. (Optional, i.e additional AXI bus)
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 4
Vivado Pipeline
Run
Synthesis
Run
Implementation
Generate Bitstream and
Hardware Description
Synthesis Implementation .bit and .xsa Generation
.xsa
.bit
• Every Vivado project is going under Synthesis and Implementation in a clean environment
• Runs inside a Docker Container with Vivado installed
Output files
PetaLinux Pipeline
What is the role of the PetaLinux Pipeline?
• It uses the Hardware Description File produced by the Vivado Pipeline
• It creates the binaries that are going to be downloaded in the Zynq
• It creates the packages and the kernel modules that are needed for the root filesystem
What are the different stages in the PetaLinux Pipeline?
• There are 3 different stages: Configuration, Build, Package
• The configuration stage is responsible to generate configuration files for the build process of the
firmware binaries, the bootloaders and the kernel
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 5
PetaLinux Pipeline
Configuration Build Package
.xsa file
BOOT.bin
&
rootfs.tar
Hardware
Description
Firmware
binaries
PetaLinux
rootfs
ROOTFS Generation
What is the role of the ROOTFS Pipeline?
• The ROOTFS Pipeline is responsible for creating the ROOTFS for the Zynq
• The Board Specific ROOTFS, needs the CentOS 8 ROOTFS and some extra PetaLinux tools and kernel modules
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 6
CentOS 8 ROOTFS Pipeline
Docker Image
Creation
Make ROOTFS
Create Container Run Container
• QEMU and Dependencies are installed
• Docker Image is saved on gitlab-registry.cern.ch
• It is independent of the ROOTFS
• It is reused every time the ROOTFS is being built
• A python script runs dnf to install the ROOTFS
CentOS 8
ROOTFS
Board Specific ROOTFS Pipeline
CentOS 8 &
PetaLinux
Make
BSROOTFS
Fetch Copy
PetaLinux
ROOTFS
Maestro Pipeline
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 7
Maestro Pipeline
Trigger
Vivado Pipeline
Vivado
Trigger
PetaLinux Pipeline
PetaLinux
Trigger
Board Specific
ROOTFS Pipeline
ROOTFS
Trigger
Boot Zynq Pipeline
Boot Zynq
Vivado
Pipeline
PetaLinux
Pipeline
Board Specific
ROOTFS Pipeline
Boot
Pipeline
.xsa binaries
Board Specific
ROOTFS
• Data Transfers
• Trigger
• Continuity
CentOS 8
ROOTFS Pipeline
CentOS 8
ROOTFS
PetaLinux
ROOTFS
Testing
Pipeline
Bootstrap
Pipeline
Maestro Pipeline
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 8
Maestro Pipeline
Trigger
Vivado Pipeline
Vivado
Trigger
PetaLinux Pipeline
PetaLinux
Trigger
Board Specific
ROOTFS Pipeline
ROOTFS
Trigger
Boot Zynq Pipeline
Boot Zynq
Vivado
Pipeline
PetaLinux
Pipeline
Board Specific
ROOTFS Pipeline
Boot
Pipeline
.xsa binaries
Board Specific
ROOTFS
• Data Transfers
• Trigger
• Continuity
CentOS 8
ROOTFS Pipeline
CentOS 8
ROOTFS
PetaLinux
ROOTFS
Testing
Pipeline
Bootstrap
Pipeline
Boot Zynq Pipeline
What is the role of the Boot Zynq Pipeline?
• Boot the board and check that the board was booted correctly
How does the CI/CD interface with the board?
• The GitLab Runner initiates a ssh connection to the board’s server that the board is connected to
• The appropriate files are copied from the repository to the board’s server in order to interface with it
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 9
Boot Zynq Pipeline
SSH to
board’s server
Connect
rsync files
Copy
Execute
scripts
Execute
Files:
• Dedicated images (firmware, U-Boot)
used for JTAG boot
• Scripts necessary to boot the board
Booting Procedure - Overview
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 10
pdu.py (pexpect)
jtag_boot.tcl (xsct console)
serial_line.py
execute (ssh to pdu)
execute in parallel
power cycle
Download
binaries
Console
Output
(pexpect)
Redirect Console
Booting Procedure - Zynq
What is the booting procedure and how do we implement the Network boot?
• The booting procedure is triggered from the Boot Zynq pipeline
• The repository of the Boot Zynq pipeline contains JTAG images to prepare the SD-Card
Stage 1: Prepare the SD-Card
• Boot through JTAG with the images and dedicated U-Boot for stage 1.
• During dedicated U-Boot:
• Fetch the final images from the TFTP server that were built in the previous pipelines
• Store these images in the SD-Card
• Change boot-mode through the internal registers (JTAG mode -> SD-Card mode)
• Reset the board (soft reset)
Stage 2: Default boot-mode
• The board starts booting from the SD-Card (firmware, U-Boot) and then continues with network boot:
• Linux Kernel and Device-Tree are downloaded from the TFTP server
• Mount root filesystem over NFS
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 11
DEMO – Scenario 1
Let’s create an error.
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 12
DEMO – Scenario 1 (Result)
Let’s create an error.
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 13
DEMO – Scenario 2
Let’s fix the error.
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 14
DEMO – Scenario 2 (Result)
Let’s fix the error.
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 15
Summary and Future Plans
Summarizing, the CI/CD pipelines:
• Compile the firmware and the software
• Build the root filesystem
• Deploy the images and the root filesystem
• Boot the board and monitor its booting process
The board is ready to be extensively tested! Peripherals and components on the PCB can be tested using
this infrastructure in order to test their functionality.
• Ethernet connectivity
• AXI Chip2Chip communication
• I2C, UART, SPI connectivity
• …
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 16
Merci beaucoup pour votre attention!
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 17
Any Questions?
Contacts:
petr.zejdl(at)cern.ch
marc.dobson(at)cern.ch
vasileios.amoiridis(at)cern.ch
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 18
BACKUP SLIDES
PetaLinux Pipeline
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 19
Silent Configuration
HW Configuration
HW Configuration API
Configuration
FSBL
ARM Trusted Firmware
Device-Tree
U-Boot
Xilinx Linux Kernel
PetaLinux ROOTFS
Build
Compress rootfs
Package
PetaLinux Pipeline
.xsa file
BOOT.bin
&
rootfs.tar
• Only the components
that changed are being
rebuilt (cache memory)
• Runs inside a Docker
Container with
PetaLinux installed
Hardware
Description
Firmware
binaries
&
PetaLinux
rootfs
Manual Trigger
Automatic External Trigger
PMU Firmware
This job runs if there is a
change in the configuration of
the ARM processor (.xsa)
Create Binaries
Extra Scripts
boot.tcl (Using xsct console)
• Connects to the board through JTAG
• Downloads the default binaries and boots the board
pdu.py (using pexpect package)
• Connects to the Power Distribution Unit (PDU) in the lab and power cycles the board
serial_line.py (using pexpect package)
• Reads the serial line output of the board while it is booting
• Prints out to the user the output of the serial line and checks the state of the booting process
• Generates an error if the board stuck during booting
runme.sh
• Runs the previous scripts in the correct order
3-May-2022 V. Amoiridis | SoC Interest Group Meeting 20

More Related Content

Similar to 2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-software on Zynq MPSoC with GitLab CI-CD pipelines.pdf

Easily emulating full systems on amazon fpg as
Easily emulating full systems on amazon fpg asEasily emulating full systems on amazon fpg as
Easily emulating full systems on amazon fpg asRISC-V International
 
MikroTik User Guide
MikroTik User GuideMikroTik User Guide
MikroTik User Guideseolangit4
 
OSDC 2014 ONIE by Nat Morris
OSDC 2014 ONIE by Nat MorrisOSDC 2014 ONIE by Nat Morris
OSDC 2014 ONIE by Nat MorrisCumulus Networks
 
ONIE: Open Network Install Environment @ OSDC 2014 Netways, Berlin
ONIE: Open Network Install Environment @ OSDC 2014 Netways, BerlinONIE: Open Network Install Environment @ OSDC 2014 Netways, Berlin
ONIE: Open Network Install Environment @ OSDC 2014 Netways, BerlinNat Morris
 
Lec 10-linux-review
Lec 10-linux-reviewLec 10-linux-review
Lec 10-linux-reviewabinaya m
 
Container & kubernetes
Container & kubernetesContainer & kubernetes
Container & kubernetesTed Jung
 
Enable DPDK and SR-IOV for containerized virtual network functions with zun
Enable DPDK and SR-IOV for containerized virtual network functions with zunEnable DPDK and SR-IOV for containerized virtual network functions with zun
Enable DPDK and SR-IOV for containerized virtual network functions with zunheut2008
 
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...Odinot Stanislas
 
Using VPP and SRIO-V with Clear Containers
Using VPP and SRIO-V with Clear ContainersUsing VPP and SRIO-V with Clear Containers
Using VPP and SRIO-V with Clear ContainersMichelle Holley
 
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 1
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 1Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 1
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 1Qualcomm Developer Network
 
NXP IMX6 Processor - Embedded Linux
NXP IMX6 Processor - Embedded LinuxNXP IMX6 Processor - Embedded Linux
NXP IMX6 Processor - Embedded LinuxNEEVEE Technologies
 
”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016Kuniyasu Suzaki
 
Deployment of WebObjects applications on FreeBSD
Deployment of WebObjects applications on FreeBSDDeployment of WebObjects applications on FreeBSD
Deployment of WebObjects applications on FreeBSDWO Community
 
Embedded Systems: Lecture 7: Lab 1: Preparing the Raspberry Pi
Embedded Systems: Lecture 7: Lab 1: Preparing the Raspberry PiEmbedded Systems: Lecture 7: Lab 1: Preparing the Raspberry Pi
Embedded Systems: Lecture 7: Lab 1: Preparing the Raspberry PiAhmed El-Arabawy
 
Linux io introduction-fudcon-2015-with-demo-slides
Linux io introduction-fudcon-2015-with-demo-slidesLinux io introduction-fudcon-2015-with-demo-slides
Linux io introduction-fudcon-2015-with-demo-slidesKASHISH BHATIA
 
Yocto Project Kernel Lab, Hands-On
Yocto Project Kernel Lab, Hands-OnYocto Project Kernel Lab, Hands-On
Yocto Project Kernel Lab, Hands-OnTrevor Woerner
 
CentOS Stream at Facebook
CentOS Stream at FacebookCentOS Stream at Facebook
CentOS Stream at FacebookDavide Cavalca
 

Similar to 2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-software on Zynq MPSoC with GitLab CI-CD pipelines.pdf (20)

Easily emulating full systems on amazon fpg as
Easily emulating full systems on amazon fpg asEasily emulating full systems on amazon fpg as
Easily emulating full systems on amazon fpg as
 
MikroTik User Guide
MikroTik User GuideMikroTik User Guide
MikroTik User Guide
 
OSDC 2014 ONIE by Nat Morris
OSDC 2014 ONIE by Nat MorrisOSDC 2014 ONIE by Nat Morris
OSDC 2014 ONIE by Nat Morris
 
ONIE: Open Network Install Environment @ OSDC 2014 Netways, Berlin
ONIE: Open Network Install Environment @ OSDC 2014 Netways, BerlinONIE: Open Network Install Environment @ OSDC 2014 Netways, Berlin
ONIE: Open Network Install Environment @ OSDC 2014 Netways, Berlin
 
Lec 10-linux-review
Lec 10-linux-reviewLec 10-linux-review
Lec 10-linux-review
 
Container & kubernetes
Container & kubernetesContainer & kubernetes
Container & kubernetes
 
Enable DPDK and SR-IOV for containerized virtual network functions with zun
Enable DPDK and SR-IOV for containerized virtual network functions with zunEnable DPDK and SR-IOV for containerized virtual network functions with zun
Enable DPDK and SR-IOV for containerized virtual network functions with zun
 
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
 
Porting Android
Porting AndroidPorting Android
Porting Android
 
Using VPP and SRIO-V with Clear Containers
Using VPP and SRIO-V with Clear ContainersUsing VPP and SRIO-V with Clear Containers
Using VPP and SRIO-V with Clear Containers
 
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 1
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 1Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 1
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 1
 
NXP IMX6 Processor - Embedded Linux
NXP IMX6 Processor - Embedded LinuxNXP IMX6 Processor - Embedded Linux
NXP IMX6 Processor - Embedded Linux
 
Building Embedded Linux UDOONEO
Building Embedded Linux UDOONEOBuilding Embedded Linux UDOONEO
Building Embedded Linux UDOONEO
 
”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016
 
Deployment of WebObjects applications on FreeBSD
Deployment of WebObjects applications on FreeBSDDeployment of WebObjects applications on FreeBSD
Deployment of WebObjects applications on FreeBSD
 
Embedded Systems: Lecture 7: Lab 1: Preparing the Raspberry Pi
Embedded Systems: Lecture 7: Lab 1: Preparing the Raspberry PiEmbedded Systems: Lecture 7: Lab 1: Preparing the Raspberry Pi
Embedded Systems: Lecture 7: Lab 1: Preparing the Raspberry Pi
 
eBPF Basics
eBPF BasicseBPF Basics
eBPF Basics
 
Linux io introduction-fudcon-2015-with-demo-slides
Linux io introduction-fudcon-2015-with-demo-slidesLinux io introduction-fudcon-2015-with-demo-slides
Linux io introduction-fudcon-2015-with-demo-slides
 
Yocto Project Kernel Lab, Hands-On
Yocto Project Kernel Lab, Hands-OnYocto Project Kernel Lab, Hands-On
Yocto Project Kernel Lab, Hands-On
 
CentOS Stream at Facebook
CentOS Stream at FacebookCentOS Stream at Facebook
CentOS Stream at Facebook
 

More from xiso

se01.ppt
se01.pptse01.ppt
se01.pptxiso
 
IRDeck_Q322Highlights_FINAL.pdf
IRDeck_Q322Highlights_FINAL.pdfIRDeck_Q322Highlights_FINAL.pdf
IRDeck_Q322Highlights_FINAL.pdfxiso
 
TechTalk5-WhatDoesItTakeToRunLLVMBuildbots.pdf
TechTalk5-WhatDoesItTakeToRunLLVMBuildbots.pdfTechTalk5-WhatDoesItTakeToRunLLVMBuildbots.pdf
TechTalk5-WhatDoesItTakeToRunLLVMBuildbots.pdfxiso
 
Colin-Ian-King-Mentorship-Stress-ng.pdf
Colin-Ian-King-Mentorship-Stress-ng.pdfColin-Ian-King-Mentorship-Stress-ng.pdf
Colin-Ian-King-Mentorship-Stress-ng.pdfxiso
 
Embedded-Linux-Community-Update-2022-02-JJ78.pdf
Embedded-Linux-Community-Update-2022-02-JJ78.pdfEmbedded-Linux-Community-Update-2022-02-JJ78.pdf
Embedded-Linux-Community-Update-2022-02-JJ78.pdfxiso
 
slides.pdf
slides.pdfslides.pdf
slides.pdfxiso
 
introduction.pdf
introduction.pdfintroduction.pdf
introduction.pdfxiso
 
inside-linux-kernel-rng-presentation-sept-13-2022.pdf
inside-linux-kernel-rng-presentation-sept-13-2022.pdfinside-linux-kernel-rng-presentation-sept-13-2022.pdf
inside-linux-kernel-rng-presentation-sept-13-2022.pdfxiso
 
Nydus_Image_Service_for_Confidential_Containers.pptx
Nydus_Image_Service_for_Confidential_Containers.pptxNydus_Image_Service_for_Confidential_Containers.pptx
Nydus_Image_Service_for_Confidential_Containers.pptxxiso
 
murach12.pptx
murach12.pptxmurach12.pptx
murach12.pptxxiso
 

More from xiso (10)

se01.ppt
se01.pptse01.ppt
se01.ppt
 
IRDeck_Q322Highlights_FINAL.pdf
IRDeck_Q322Highlights_FINAL.pdfIRDeck_Q322Highlights_FINAL.pdf
IRDeck_Q322Highlights_FINAL.pdf
 
TechTalk5-WhatDoesItTakeToRunLLVMBuildbots.pdf
TechTalk5-WhatDoesItTakeToRunLLVMBuildbots.pdfTechTalk5-WhatDoesItTakeToRunLLVMBuildbots.pdf
TechTalk5-WhatDoesItTakeToRunLLVMBuildbots.pdf
 
Colin-Ian-King-Mentorship-Stress-ng.pdf
Colin-Ian-King-Mentorship-Stress-ng.pdfColin-Ian-King-Mentorship-Stress-ng.pdf
Colin-Ian-King-Mentorship-Stress-ng.pdf
 
Embedded-Linux-Community-Update-2022-02-JJ78.pdf
Embedded-Linux-Community-Update-2022-02-JJ78.pdfEmbedded-Linux-Community-Update-2022-02-JJ78.pdf
Embedded-Linux-Community-Update-2022-02-JJ78.pdf
 
slides.pdf
slides.pdfslides.pdf
slides.pdf
 
introduction.pdf
introduction.pdfintroduction.pdf
introduction.pdf
 
inside-linux-kernel-rng-presentation-sept-13-2022.pdf
inside-linux-kernel-rng-presentation-sept-13-2022.pdfinside-linux-kernel-rng-presentation-sept-13-2022.pdf
inside-linux-kernel-rng-presentation-sept-13-2022.pdf
 
Nydus_Image_Service_for_Confidential_Containers.pptx
Nydus_Image_Service_for_Confidential_Containers.pptxNydus_Image_Service_for_Confidential_Containers.pptx
Nydus_Image_Service_for_Confidential_Containers.pptx
 
murach12.pptx
murach12.pptxmurach12.pptx
murach12.pptx
 

Recently uploaded

Effects of rheological properties on mixing
Effects of rheological properties on mixingEffects of rheological properties on mixing
Effects of rheological properties on mixingviprabot1
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
DATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage exampleDATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage examplePragyanshuParadkar1
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfme23b1001
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineeringmalavadedarshan25
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 

Recently uploaded (20)

Effects of rheological properties on mixing
Effects of rheological properties on mixingEffects of rheological properties on mixing
Effects of rheological properties on mixing
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
DATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage exampleDATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage example
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineering
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 

2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-software on Zynq MPSoC with GitLab CI-CD pipelines.pdf

  • 1. 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 1 Vasileios Amoiridis EP-CMD | CMS DAQ group Acknowledgements: P. Žejdl & M. Dobson Deploying and testing firmware/software on Zynq MPSoC with GitLab CI/CD pipelines
  • 2. Workflow for the Zynq MPSoC UltraScale+ • Vivado creates the Hardware Description File which contains the configuration of the ARM processor and its peripherals. This file is used later by PetaLinux. • PetaLinux creates the Firmware Images and the PetaLinux rootfs. The images are used to boot the Zynq and the PetaLinux rootfs is used to create the Board Specific ROOTFS. We use Network Boot: • The images need to be deployed to the SD Card and the TFTP server that are going to be used for booting. The ROOTFS needs to be deployed on the NFS server. • When the board is booting its booting procedure is being monitored. • After the board is booted, it is ready for automated testing! In order to implement all the above steps, GitLab’s CI/CD Pipeline framework is used! 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 2
  • 3. Linux on Zynq MPSoC UltraScale+ 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 3 FSBL PMU-FW U-Boot ATF Bootgen BOOT.bin CentOS 8 aarch64 (CERN repos) Install CentOS 8 using QEMU VM CentOS 8 (rootfs Image) Xilinx Linux Kernel (PetaLinux Package) Build Kernel CentOS 8 rootfs generation Xilinx Linux Kernel Device-Tree (Board specific) ZynqMP tools (PetaLinux rootfs) Bitstream Source of inspiration: Exploration of ZynqUS+ for integrated slow control on Serenity for the CMS Track Trigger (Presentation given by Oliver Sander) Kernel modules Board Specific CentOS 8 rootfs Kernel Image Install rootfs CentOS 8 rootfs w/ ZynqMP support Firmware Integration Image Repo TFTP Server NFS Server SD Card
  • 4. Vivado Pipeline What is the role of the Vivado Pipeline? • It is responsible to produce the Hardware Description File (.xsa) that is used by the PetaLinux Pipeline • The .xsa file is the Hardware Description file. It has the configuration of the ARM processor and its peripherals • The .bit file is the Bitstream file. It configures the Programmable Logic – FPGA. (Optional, i.e additional AXI bus) 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 4 Vivado Pipeline Run Synthesis Run Implementation Generate Bitstream and Hardware Description Synthesis Implementation .bit and .xsa Generation .xsa .bit • Every Vivado project is going under Synthesis and Implementation in a clean environment • Runs inside a Docker Container with Vivado installed Output files
  • 5. PetaLinux Pipeline What is the role of the PetaLinux Pipeline? • It uses the Hardware Description File produced by the Vivado Pipeline • It creates the binaries that are going to be downloaded in the Zynq • It creates the packages and the kernel modules that are needed for the root filesystem What are the different stages in the PetaLinux Pipeline? • There are 3 different stages: Configuration, Build, Package • The configuration stage is responsible to generate configuration files for the build process of the firmware binaries, the bootloaders and the kernel 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 5 PetaLinux Pipeline Configuration Build Package .xsa file BOOT.bin & rootfs.tar Hardware Description Firmware binaries PetaLinux rootfs
  • 6. ROOTFS Generation What is the role of the ROOTFS Pipeline? • The ROOTFS Pipeline is responsible for creating the ROOTFS for the Zynq • The Board Specific ROOTFS, needs the CentOS 8 ROOTFS and some extra PetaLinux tools and kernel modules 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 6 CentOS 8 ROOTFS Pipeline Docker Image Creation Make ROOTFS Create Container Run Container • QEMU and Dependencies are installed • Docker Image is saved on gitlab-registry.cern.ch • It is independent of the ROOTFS • It is reused every time the ROOTFS is being built • A python script runs dnf to install the ROOTFS CentOS 8 ROOTFS Board Specific ROOTFS Pipeline CentOS 8 & PetaLinux Make BSROOTFS Fetch Copy PetaLinux ROOTFS
  • 7. Maestro Pipeline 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 7 Maestro Pipeline Trigger Vivado Pipeline Vivado Trigger PetaLinux Pipeline PetaLinux Trigger Board Specific ROOTFS Pipeline ROOTFS Trigger Boot Zynq Pipeline Boot Zynq Vivado Pipeline PetaLinux Pipeline Board Specific ROOTFS Pipeline Boot Pipeline .xsa binaries Board Specific ROOTFS • Data Transfers • Trigger • Continuity CentOS 8 ROOTFS Pipeline CentOS 8 ROOTFS PetaLinux ROOTFS Testing Pipeline Bootstrap Pipeline
  • 8. Maestro Pipeline 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 8 Maestro Pipeline Trigger Vivado Pipeline Vivado Trigger PetaLinux Pipeline PetaLinux Trigger Board Specific ROOTFS Pipeline ROOTFS Trigger Boot Zynq Pipeline Boot Zynq Vivado Pipeline PetaLinux Pipeline Board Specific ROOTFS Pipeline Boot Pipeline .xsa binaries Board Specific ROOTFS • Data Transfers • Trigger • Continuity CentOS 8 ROOTFS Pipeline CentOS 8 ROOTFS PetaLinux ROOTFS Testing Pipeline Bootstrap Pipeline
  • 9. Boot Zynq Pipeline What is the role of the Boot Zynq Pipeline? • Boot the board and check that the board was booted correctly How does the CI/CD interface with the board? • The GitLab Runner initiates a ssh connection to the board’s server that the board is connected to • The appropriate files are copied from the repository to the board’s server in order to interface with it 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 9 Boot Zynq Pipeline SSH to board’s server Connect rsync files Copy Execute scripts Execute Files: • Dedicated images (firmware, U-Boot) used for JTAG boot • Scripts necessary to boot the board
  • 10. Booting Procedure - Overview 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 10 pdu.py (pexpect) jtag_boot.tcl (xsct console) serial_line.py execute (ssh to pdu) execute in parallel power cycle Download binaries Console Output (pexpect) Redirect Console
  • 11. Booting Procedure - Zynq What is the booting procedure and how do we implement the Network boot? • The booting procedure is triggered from the Boot Zynq pipeline • The repository of the Boot Zynq pipeline contains JTAG images to prepare the SD-Card Stage 1: Prepare the SD-Card • Boot through JTAG with the images and dedicated U-Boot for stage 1. • During dedicated U-Boot: • Fetch the final images from the TFTP server that were built in the previous pipelines • Store these images in the SD-Card • Change boot-mode through the internal registers (JTAG mode -> SD-Card mode) • Reset the board (soft reset) Stage 2: Default boot-mode • The board starts booting from the SD-Card (firmware, U-Boot) and then continues with network boot: • Linux Kernel and Device-Tree are downloaded from the TFTP server • Mount root filesystem over NFS 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 11
  • 12. DEMO – Scenario 1 Let’s create an error. 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 12
  • 13. DEMO – Scenario 1 (Result) Let’s create an error. 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 13
  • 14. DEMO – Scenario 2 Let’s fix the error. 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 14
  • 15. DEMO – Scenario 2 (Result) Let’s fix the error. 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 15
  • 16. Summary and Future Plans Summarizing, the CI/CD pipelines: • Compile the firmware and the software • Build the root filesystem • Deploy the images and the root filesystem • Boot the board and monitor its booting process The board is ready to be extensively tested! Peripherals and components on the PCB can be tested using this infrastructure in order to test their functionality. • Ethernet connectivity • AXI Chip2Chip communication • I2C, UART, SPI connectivity • … 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 16
  • 17. Merci beaucoup pour votre attention! 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 17 Any Questions? Contacts: petr.zejdl(at)cern.ch marc.dobson(at)cern.ch vasileios.amoiridis(at)cern.ch
  • 18. 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 18 BACKUP SLIDES
  • 19. PetaLinux Pipeline 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 19 Silent Configuration HW Configuration HW Configuration API Configuration FSBL ARM Trusted Firmware Device-Tree U-Boot Xilinx Linux Kernel PetaLinux ROOTFS Build Compress rootfs Package PetaLinux Pipeline .xsa file BOOT.bin & rootfs.tar • Only the components that changed are being rebuilt (cache memory) • Runs inside a Docker Container with PetaLinux installed Hardware Description Firmware binaries & PetaLinux rootfs Manual Trigger Automatic External Trigger PMU Firmware This job runs if there is a change in the configuration of the ARM processor (.xsa) Create Binaries
  • 20. Extra Scripts boot.tcl (Using xsct console) • Connects to the board through JTAG • Downloads the default binaries and boots the board pdu.py (using pexpect package) • Connects to the Power Distribution Unit (PDU) in the lab and power cycles the board serial_line.py (using pexpect package) • Reads the serial line output of the board while it is booting • Prints out to the user the output of the serial line and checks the state of the booting process • Generates an error if the board stuck during booting runme.sh • Runs the previous scripts in the correct order 3-May-2022 V. Amoiridis | SoC Interest Group Meeting 20