OSDC 2014: Nat Morris - Open Network Install EnvironmentNETWAYS
ONIE defines an open source “install environment” that runs on this management subsystem utilizing facilities in a Linux/BusyBox environment. This environment allows end-users and channel partners to install the target network OS as part of data center provisioning, in the fashion that servers are provisioned.
ONIE enables switch hardware suppliers, distributors and resellers to manage their operations based on a small number of hardware SKUs. This in turn creates economies of scale in manufacturing, distribution, stocking, and RMA enabling a thriving ecosystem of both network hardware and operating system alternatives.
Veda Solutions Providing Training for Embedded Linux Platform Developer. Here are the Introductions and course details. http://techveda.org/embedded-linux-platform-developer/
Have a quick overview of most of the embedded linux components and their details. How ti build Embedded Linux Hardware & Software, and developing Embedded Products
OSDC 2014: Nat Morris - Open Network Install EnvironmentNETWAYS
ONIE defines an open source “install environment” that runs on this management subsystem utilizing facilities in a Linux/BusyBox environment. This environment allows end-users and channel partners to install the target network OS as part of data center provisioning, in the fashion that servers are provisioned.
ONIE enables switch hardware suppliers, distributors and resellers to manage their operations based on a small number of hardware SKUs. This in turn creates economies of scale in manufacturing, distribution, stocking, and RMA enabling a thriving ecosystem of both network hardware and operating system alternatives.
Veda Solutions Providing Training for Embedded Linux Platform Developer. Here are the Introductions and course details. http://techveda.org/embedded-linux-platform-developer/
Have a quick overview of most of the embedded linux components and their details. How ti build Embedded Linux Hardware & Software, and developing Embedded Products
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...Odinot Stanislas
(FR)
Introduction très sympathique autour des environnements Cloud avec un focus particulier sur la virtualisation et les containers (Docker)
(ENG)
Friendly presentation about Cloud solutions with a focus on virtualization and containers (Docker).
Author: Nicholas Weaver – Principal Architect, Intel Corporation
Clear Containers is an Open Containers Initiative (OCI) “runtime” that launches an Intel VT-x secured hypervisor rather than a standard Linux container. An introduction of Clear Containers will be provided, followed by an overview of CNM networking plugins which have been created to enhance network connectivity using Clear Containers. More specifically, we will show demonstrations of using VPP with DPDK and SRIO-v based networks to connect Clear Containers. Pending time we will provide and walk through a hands on example of using VPP with Clear Containers.
About the speaker: Manohar Castelino is a Principal Engineer for Intel’s Open Source Technology Center. Manohar has worked on networking, network management, network processors and virtualization for over 15 years. Manohar is currently an architect and developer with the ciao (clearlinux.org/ciao) and the clear containers (https://github.com/01org/cc-oci-runtime) projects focused on networking. Manohar has spoken at many Container Meetups and internal conferences.
Introduction to DragonBoard 410c Development Board and Starting Development of Your Embedded Linux-based IIoT Device
Watch the recording at: http://bit.ly/2AskXuW
This presentation provides an brief introduction about the Embedded LInux using NXP I.MX6 Processor. This gives information about embedded linux architecture & components.
This presents the information about the Yocto Build System. Also it provdes the steps to build an yocto image for NXP/Freescale i.MX6 SoloX processor based UDOO NEO Board. Also it briefs about the new layer and bitbake configuration.
In this Lab, we go through the steps to prepare the Raspberry Pi board for the projects in the course. this includes selecting the OS and setting it up on the SD card, connecting the Pi, and booting it.
The Lab also goes through setting up the network interfaces (both wired and wireless) and remote connecting into the Pi
An Introduction to eBPF (and cBPF). Topics covered include history, implementation, program types & maps. Also gives a brief introduction to XDP and DPDK
Linux io introduction-fudcon-2015-with-demo-slidesKASHISH BHATIA
Linux provide facilities to expose emulated LUNs to initiators using Linux-IO (LIO) scsi target implementation . LIO not only support exposing conventional block devices but also supports other storage interfaces like file or memory based LUNs. Also it supports multiple fabric interfaces - FC, FCoE, iscsi and many more.
LIO can be used in SAN environments with minimal storage resources.
Native support for LIO in linux hypervisors and in Openstack make it a good storage option for cloud deployments.
This presentation includes demo slides with LIO iscsi target implementation.
A talk and practical hands-on demonstrating how The Yocto Project provides tooling that can help you with evaluating, testing, tweaking, configuring, and modifying Linux kernels for your embedded project.
We'll talk about how Facebook is leveraging CentOS Stream to manage our production fleet at scale. We'll cover the latest updates on our fleet migration from CentOS 7, talk about the tooling and processes we've developed and how they've evolved, and how we're working with the CentOS and Fedora communities. This talk is a followup to "Upgrading CentOS on the Facebook fleet" (https://www.youtube.com/watch?v=EajAjFCZz4Q&t=3s) from DevConf.cz 2020.
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...Odinot Stanislas
(FR)
Introduction très sympathique autour des environnements Cloud avec un focus particulier sur la virtualisation et les containers (Docker)
(ENG)
Friendly presentation about Cloud solutions with a focus on virtualization and containers (Docker).
Author: Nicholas Weaver – Principal Architect, Intel Corporation
Clear Containers is an Open Containers Initiative (OCI) “runtime” that launches an Intel VT-x secured hypervisor rather than a standard Linux container. An introduction of Clear Containers will be provided, followed by an overview of CNM networking plugins which have been created to enhance network connectivity using Clear Containers. More specifically, we will show demonstrations of using VPP with DPDK and SRIO-v based networks to connect Clear Containers. Pending time we will provide and walk through a hands on example of using VPP with Clear Containers.
About the speaker: Manohar Castelino is a Principal Engineer for Intel’s Open Source Technology Center. Manohar has worked on networking, network management, network processors and virtualization for over 15 years. Manohar is currently an architect and developer with the ciao (clearlinux.org/ciao) and the clear containers (https://github.com/01org/cc-oci-runtime) projects focused on networking. Manohar has spoken at many Container Meetups and internal conferences.
Introduction to DragonBoard 410c Development Board and Starting Development of Your Embedded Linux-based IIoT Device
Watch the recording at: http://bit.ly/2AskXuW
This presentation provides an brief introduction about the Embedded LInux using NXP I.MX6 Processor. This gives information about embedded linux architecture & components.
This presents the information about the Yocto Build System. Also it provdes the steps to build an yocto image for NXP/Freescale i.MX6 SoloX processor based UDOO NEO Board. Also it briefs about the new layer and bitbake configuration.
In this Lab, we go through the steps to prepare the Raspberry Pi board for the projects in the course. this includes selecting the OS and setting it up on the SD card, connecting the Pi, and booting it.
The Lab also goes through setting up the network interfaces (both wired and wireless) and remote connecting into the Pi
An Introduction to eBPF (and cBPF). Topics covered include history, implementation, program types & maps. Also gives a brief introduction to XDP and DPDK
Linux io introduction-fudcon-2015-with-demo-slidesKASHISH BHATIA
Linux provide facilities to expose emulated LUNs to initiators using Linux-IO (LIO) scsi target implementation . LIO not only support exposing conventional block devices but also supports other storage interfaces like file or memory based LUNs. Also it supports multiple fabric interfaces - FC, FCoE, iscsi and many more.
LIO can be used in SAN environments with minimal storage resources.
Native support for LIO in linux hypervisors and in Openstack make it a good storage option for cloud deployments.
This presentation includes demo slides with LIO iscsi target implementation.
A talk and practical hands-on demonstrating how The Yocto Project provides tooling that can help you with evaluating, testing, tweaking, configuring, and modifying Linux kernels for your embedded project.
We'll talk about how Facebook is leveraging CentOS Stream to manage our production fleet at scale. We'll cover the latest updates on our fleet migration from CentOS 7, talk about the tooling and processes we've developed and how they've evolved, and how we're working with the CentOS and Fedora communities. This talk is a followup to "Upgrading CentOS on the Facebook fleet" (https://www.youtube.com/watch?v=EajAjFCZz4Q&t=3s) from DevConf.cz 2020.
Similar to 2022-05-03 SoC Interest Group Meeting - Deploying and testing firmware-software on Zynq MPSoC with GitLab CI-CD pipelines.pdf (20)
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Dr.Costas Sachpazis
Terzaghi's soil bearing capacity theory, developed by Karl Terzaghi, is a fundamental principle in geotechnical engineering used to determine the bearing capacity of shallow foundations. This theory provides a method to calculate the ultimate bearing capacity of soil, which is the maximum load per unit area that the soil can support without undergoing shear failure. The Calculation HTML Code included.
Hierarchical Digital Twin of a Naval Power SystemKerry Sado
A hierarchical digital twin of a Naval DC power system has been developed and experimentally verified. Similar to other state-of-the-art digital twins, this technology creates a digital replica of the physical system executed in real-time or faster, which can modify hardware controls. However, its advantage stems from distributing computational efforts by utilizing a hierarchical structure composed of lower-level digital twin blocks and a higher-level system digital twin. Each digital twin block is associated with a physical subsystem of the hardware and communicates with a singular system digital twin, which creates a system-level response. By extracting information from each level of the hierarchy, power system controls of the hardware were reconfigured autonomously. This hierarchical digital twin development offers several advantages over other digital twins, particularly in the field of naval power systems. The hierarchical structure allows for greater computational efficiency and scalability while the ability to autonomously reconfigure hardware controls offers increased flexibility and responsiveness. The hierarchical decomposition and models utilized were well aligned with the physical twin, as indicated by the maximum deviations between the developed digital twin hierarchy and the hardware.
Student information management system project report ii.pdfKamal Acharya
Our project explains about the student management. This project mainly explains the various actions related to student details. This project shows some ease in adding, editing and deleting the student details. It also provides a less time consuming process for viewing, adding, editing and deleting the marks of the students.
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
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
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