Arm Open Source Projects

Linaro works together with its members on Arm open source projects. These projects may vary in scope and verticals they touch but all aim to achieve one (or several) of the following goals:

Projects which aim to solve ecosystem quality problems focus primarily on testing. Here stakeholders collaboratively fund consistent continuous testing of key configurations to make upstream the quality reference. An example of one of these projects would be Linux Kernel Quality.

Projects which concentrate on upstream support focus on regression testing, improving technology by adding more functionality and increasing security across the ecosystem. Through these projects, member companies have access to maintainers who have a say in what does or does not get upstreamed. An example of one of these projects would be Upstream Maintainership.

Linaro was initially formed to address fragmentation in the Arm software ecosystem and this is something we still do today whenever a new market emerges. The projects which address fragmentation focus on upstreaming all necessary technologies across multiple open source projects so that all ecosystem players work from a common reference. An example of one of these projects would be Trusted Substrate which aims to bring standardization to edge device firmware.

In some cases a member will donate a project to Linaro, allowing us to leverage a codebase developed in-house to achieve broader ecosystem goals. Linaro provides a neutral platform where collaboration can be built using our tools and processes. Once the project is up and running it can continue to benefit from Linaro engineering collaboration or optionally evolve into a Linaro Community Project, a project with stand-alone governance. To date there are three Linaro Community Projects - MCUboot, OpenAMP and Trusted Firmware.

Interested in working with Linaro and other industry leaders on Arm open source projects? Find out more about membership and how to participate here.

Software defined functionality is no longer restricted to the cloud network but is now expected to extend to the edge.

Autonomous AI-driven features are being deployed to positions of trust in gateways and even sensors.The Zonal Architecture revolution driving the evolution to software-defined vehicles is just one indicator that industry has switched to a software-first methodology. The technologies underpinning these use cases are continuously evolving but all suffer from one common denominator - the lack of open software standardization.

There is no doubt that Arm chips can deliver an exceptional user experience through efficient power consumption, fast performance and all day battery life.

But for devices running on Arm-based technology to truly leverage these capabilities, operating systems (OS) need to ensure that open source tools and applications using their OS can run natively on Arm. This is no small task and the reason why Google and Microsoft collaborate with Linaro, its members and the open source community. Linaro drives the work needed to create strong ecosystems for Android and Windows on Arm. These ecosystems play a crucial role in delivering exceptional user experiences to consumers.

The past few years have seen Arm being adopted more and more in the server space, with the world’s fastest supercomputer - Fujitsu’s Fugaku - running on Arm CPUs.

It is a well known fact that Arm chips have dominated the mobile market. The flexibility Arm offers device manufacturers who can design Arm chips to meet specific needs make it an attractive choice. But for Arm server chips to continue to meet the demands of businesses needing more storage and more data, there needs to be a software ecosystem in place that helps drive feature enablement, testing and bug fixing. Linaro works together with its member companies on strengthening the software ecosystem for Arm servers.

One of the main objectives when forming Linaro was to consolidate the Arm code base.

The code churn created by multiple companies and individuals trying to upstream essentially the same code into kernel.org was causing fragmentation and slowing down innovation and delivery of products. Linaro’s work, especially in the kernel, provided the focal point for collaboration and the situation recognizably improved by 2012, something Linus Torvalds recognized. Since the Linux kernel release 3.10, Linaro has been consistently listed as one of the top ten company contributors, worldwide, to Linux kernel. We are also widely recognized for the work we have done on toolchains such as GCC and LLVM. In addition to our work in the Linux kernel and toolchains, we are known for our expertise in security and testing through projects such as OP-TEE, LAVA and LKFT.

Development of GNU Toolchain:

  • GCC compiler
    • We improve Link-Time Optimizations (LTO), SVE auto-vectorization optimizations, and microarchitecture-specific optimizations for popular Arm cores.
    • We improve performance and scalability of Libgomp (GNU OpenMP runtime)
    • We support compiler sanitizers (ASAN, TSAN, etc.) in GCC. Sanitizers are developed under LLVM Toolchain project, and sanitizer changes are then merged into GCC to have both LLVM and GNU toolchains provide sanitizer features.
  • GDB debugger
    • We develop support for new ARMv8.x architectural features and improve debugging experience.
  • Glibc C Library
    • We implement both target-specific and generic optimizations in Glibc. We then aim to propagate all relevant Glibc improvements to Newlib and Bionic C libraries.
  • GNU Binutils assembler, BFD and Gold linkers
    • In Binutils we implement ELF section-level optimizations, as well as workarounds for hardware errata.

Project Homepage

https://linaro.atlassian.net/wiki/spaces/GNU/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by TSC.

Visit the Linaro Membership page for more information.

Development of LLVM Toolchain:

  • Clang compiler
    • We implement new and improve existing code-size and code-speed optimizations for AArch64 and ARM targets.
  • LLDB debugger
    • We develop support for new ARMv8.x architectural features and improve debugging experience.
  • Compiler-RT runtime libraries
    • We port and improve compiler sanitizers (ASAN, TSAN, etc.) to AArch64 and ARM architectures. Sanitizer changes are then merged into GCC to have both LLVM and GNU toolchains provide sanitizer features.
  • LLD linker
    • In LLD linker we implement ELF section-level optimizations, as well as workarounds for hardware errata.

Project Homepage

https://linaro.atlassian.net/wiki/spaces/LLVM/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by TSC.

Visit the Linaro Membership page for more information.

Primarily focused on Server Standardisation. Examples to include SBSA, xBBR to enable simplified adoption of mainline builds on new server hardware.

Project Homepage

https://linaro.atlassian.net/wiki/spaces/ASA/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by LDCG SC.

Visit the Linaro Membership page for more information.

Collaborate with the OpenEuler community on kernel testing with focus 64bit on Arm and embedded platforms.

Project Homepage

https://linaro.atlassian.net/wiki/spaces/EULR/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by TSC.

Visit the Linaro Membership page for more information.

The aim of this project is to make AArch64 a first class citizen in the Big Data, Analytics and Data Science community (e.g., Hadoop, Spark, etc.). Big Data and Data Science technologies are vital and have become mature with various production implementations. Linaro drives engineering activities and ARMv8 builds. for Apache Ambari, BigTop, Spark and Hadoop.

Project Homepage

https://linaro.atlassian.net/wiki/spaces/BDDS/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by LDCG SC.

Visit the Linaro Membership page for more information.

Blueprints goal is to showcase the usage of Arm technologies by providing segment specific reference for seeding the ecosystem. Accelerate customer solution TTM by providing open-source reference blueprint and enable scale by creating a rich ecosystem of system integration partners to scale Arm tech and a ct as an integration point for Arm and eco-system partners to integrate open-source technology components to enhance the value of Arm tech.

We are actively engaged in the Automotive blueprints to support the industry’s efforts in building a Scalable Open Architecture for Embedded Edge (SOAFEE).

Project Homepage

https://linaro.atlassian.net/wiki/spaces/BP/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by LEDGE SC.

Visit the Linaro Membership page for more information.

Expanding various tools (especially QEMU) to emulate new ARM architectural features so open source projects can rapidly adopt the latest technology. We also continually improve ARMs hardware virtualization aiming for feature parity with other popular enterprise architectures.

Project Homepage

https://linaro.atlassian.net/wiki/spaces/QEMU/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by TSC.

Visit the Linaro Membership page for more information.

The goal is to remove the gaps with x86 by collaborating together in the Arm server ecosystem, so that we can provide competitive and leading storage solutions with Arm servers.

Deliverables are focused around:

  • Participate in the upstream communities of Ceph/Lustre/BeeGFS/etc for ARM64 support, setup CI testing on Arm servers, and drive the official ARM64 releases;
  • Performance optimizations by leveraging key ARM64 architecture features (storage related benchmark testing can be done for the profiling);
  • Drive community promotion by members/partners together for storage solutions on Arm servers to help customer adoptions;

Project Homepage

https://linaro.atlassian.net/wiki/spaces/STOR/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by LDCG SC.

Visit the Linaro Membership page for more information.

The HPP project works on technologies for use between different CPU types or different OS types. Current technologies include:

  • Remoteproc & Rpmsg
  • Virtio between two cores that do not share a hypervisor
  • System Devicetree
  • QEMU as a development platform for these systems
HPP is a Linaro project but is also closely associated with the OpenAMP community project (also hosted at Linaro).

Project Homepage

https://linaro.atlassian.net/wiki/spaces/HPP/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by LEDGE SC.

Visit the Linaro Membership page for more information.

LAVA stand for Linaro Automated Validation Architecture.

LAVA is a continuous integration system for deploying operating systems onto physical and virtual hardware for running tests.

LAVA is also used to managed and share boards among teams.

Project Homepage

https://www.lavasoftware.org/

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by TSC.

Visit the Linaro Membership page for more information.

OP-TEE is an open source Trusted Execution Enviroment (TEE) implementing the Arm TrustZone technology. Linaro is a key contributor both in terms of pushing new features as well as doing roadmap planning, maintenance, release work, vulnerability assessment and mitigation of security issues. We employ several core maintainers for the OP-TEE project as well as maintainers for the TEE framework in the Linux kernel and U-Boot.

In 2019, OP-TEE was donated to Trusted Firmware, a Linaro Community Project.  Linaro is still responsible for driving the roadmap for OP-TEE in sync with the members of Linaro as well as with the TrustedFirmware.org project.

Project Homepage

https://linaro.atlassian.net/wiki/spaces/LOC/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by TSC.

Visit the Linaro Membership page for more information.

The Ecosystem Landscape Dashboard Project is to create and support a public platform to house a unified ecosystem landscape of open source projects. This platform (a web site) will include a dashboard for each project with resources to educate a developer as to the status about the project. The vision for the site is as a unified communication hub and connection point to the latest community resources. Project will enable contributions from communities to assist in growing the platform dataset.

When successful, it will provide a one-stop resource, which can help everyone find necessary software project information and resources about Arm support through this platform whether it’s the first or the 500th time the user needs community data for development on Arm.

This project is *not* limited to one segment and is intended to cover the arm ecosystem.

Project Homepage

https://linaro.atlassian.net/wiki/spaces/AELTS/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by TSC.

Visit the Linaro Membership page for more information.

Enable and maintain upstream kernels to work well with Android/AOSP. 

Parts of this effort include regular testing of upstream kernels with AOSP and the creation of regression reports to the community, and then authoring fixes to specific issues to passing along to the correct community to take action.

Another area of effort is upstreaming functionality found in the Android Common Kernel, back into the mainline kernel.  This makes it easier to test and validate upstream kernels with AOSP, as well as helps broaden the interest and use of functionality developed initially for android, and ensures the functionality continues to work and be maintained as part of the kernel stable ABI guarantee.

Some of the current ongoing areas of effort have been: GKI: Enabling and improving driver modularity and DMA BUF Heaps transition from ION.

Project Homepage

https://linaro.atlassian.net/wiki/spaces/LI/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by LCG SC.

Visit the Linaro Membership page for more information.

Ensure and improve ongoing quality for 6 years Linux LTS releases, linux-next, and Linux mainline on the Arm architecture

Project Homepage

https://linaro.atlassian.net/wiki/spaces/LKQ

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by TSC.

Visit the Linaro Membership page for more information.

Oniro OS is a publicly available open source version of the HarmonyOS operating system. Linaro will join Huawei in the creation of a collaborative engineering effort to further the capabilities of the OpenHarmony OS (around trusted-boot and over-the-air updates), create a collaborative, OpenHarmony OS Open CI testing system, and onboard Linaro OpenHarmony project members and their devices into the project.

Project Homepage

https://linaro.atlassian.net/wiki/spaces/ASOS/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by Linaro Internal.

Visit the Linaro Membership page for more information.

Project Homepage

https://linaro.atlassian.net/wiki/spaces/CMSIS/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by LITE SC.

Visit the Linaro Membership page for more information.

The Optimize AI for Arm Data Center and Edge project is hosted out of the LDCG segment group. The project involves work within strategic frameworks that broadly empower HPC and AI computing. The effort involves simple enablement to optimized efforts to maximize performance.

Scope

Data Center hardware powered by Arm designs could be found across the ecosystem. From the very high end Fukaku super computer, cloud computing, and other forms, these devices can be utilized for AI training and inference. These devices are often multi node, many cores, with or without specialized offload.

Edge device compares a wide variety of Cortex-A equipped hardware. These devices might be running Android, Linux and every other operating systems. Within this class of devices their capability to performance AI workloads such as inference can vary greatly. On the low end memory might be tight and no offload exists to on the high end, they can be server like with offload and plenty of resources. Indeed Edge devices since they are Cortex-A can have quite a bit in common with HPC/Server with the exception that one does not generally perform training on an edge device.

Strategic frameworks:

  • Tensorflow
  • PyTorch
  • TVM
Secondary frameworks

  • ArmNN
  • Arm Compute Library (ACL)
  • Eigen
  • OneDNN
  • ONNX / ONNX-RT
  • Tensorflow / Tensorflow Lite 
  • Tosa
  • TVM

Project Homepage

https://linaro.atlassian.net/wiki/spaces/AIA/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by LDCG SC.

Visit the Linaro Membership page for more information.

This project involves work within strategic AI libraries as identified by the participating member companies. It is hosted out of the LITE Segment Group.

Today these activities are focused on :

  • Tensorflow LIte Micro
  • microTVM

Project Homepage

https://linaro.atlassian.net/wiki/spaces/AIM/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by LITE SC.

Visit the Linaro Membership page for more information.

The performance scaling with SCMI project will extend support for the SCMI perf-domain protocol in the Linux kernel and in the firmware.

Today, the current support in the Linux kernel for the SCMI perf-domain protocol, is limited to be used for CPU frequency scaling, through the cpufreq subsystem. However, the SCMI perf-domain protocol isn't really limited to CPUs, but fits well for other generic peripheral devices too. Extended support avoids the need for SoC specific protocols/interfaces, while scaling performance for non-CPU devices.

The Linux kernel already has generic support for DVFS (Dynamic Voltage Frequency Scaling), through a mixture of subsystems/libraries. Without going into details, it should be possible to tap into the existing infrastructures, to add support for the SCMI perf-protocol. In this way, the support would be generic and nicely abstracted from lower layer drivers/subsystems.

Project Homepage

https://linaro.atlassian.net/wiki/spaces/PERFSCMI/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by TSC.

Visit the Linaro Membership page for more information.

Performance and Power Management have always been tightly linked because the power consumption often arises as a variable of the performance of the system. Mobile Phone world has been one of the most active contributors in this area with the aim to run always more powerful systems on always more constrained batteries. In fact, most of systems can’t afford to simply put everything to its maximum performance level but has to follow either a thermal budget or a maximum power budget. In this way, large systems also have to deal with those constraints in order to use their power budget efficiently and reach maximum performances. This project aims to improve the efficiency of all ARM based Linux systems, small or large, by improving Linux subsystems that influence its performance or power consumption, which includes the scheduler or the thermal framework in addition to the traditional power management subsystems.

Project Homepage

https://linaro.atlassian.net/wiki/spaces/PERF/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by TSC.

Visit the Linaro Membership page for more information.

SQUAD is a Software Quality Dashboard written in Python 3. It uses Django.

See the documentation folder for more documentation, or go browse the documentation online

Project Homepage

https://github.com/linaro/squad

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by TSC.

Visit the Linaro Membership page for more information.

Hardware with good software support, such as 96Boards, is a critical tool both for testing and validation of the latest AOSP and latest stable and upstream kernels, but also key for prototyping both new hardware and software. 

While, with the Google Pixel Phones, there are a number of form-factor devices which are supported in AOSP, those devices are (for the most part) locked to a specific vendor BSP kernel. Given the time required to go from early bringup to shipping a product, the kernel supported by the form factor devices are always one and a half to two years old by the time they ship. This means these devices have little value for testing the current upstream kernel, and each device is really only useful for testing updates to the -stable kernel release it shipped with. This makes them less than ideal for developing any functionality that can be pushed upstream into the mainline kernel. 

Additionally, because the form-factor devices are enclosed, there is little ability to prototype hardware that didn’t ship on the device. 

Hardware with a well implemented software stack integrated into AOSP is able to solve both of these issues, as we prioritize devices that are close to upstream and continually push to upstream any board specific patches needed, so we are able to always move forward to newer kernels and continue to support a wide array of stable kernels. 

This allows us to quickly find and report regressions that come up in the mainline or -stable branches that might affect Android/AOSP.

Also hardware in the form of developer boards (devboards) are useful platforms for developing new functionality. The DMABUF Heaps interface, which replaces ION in future kernels, was prototyped and validated on the AOSP devboards, allowing us to confidently know that the patches we were submitting upstream would work well with Android. Additionally, initial prototyping of Google’s GKI effort was done on AOSP devboards, in order to work out issues and to minimize issues that vendors might run into and slow product shipping. Google developers have also used these boards to validate changes such as filesystem and UFS crypto changes that they were pushing upstream.  This is much better than having to develop in Android against an older device kernel and then forward porting the patch to the latest upstream kernel and, having no other way to validate it, hoping it works properly when it makes it upstream.

Since the devboards have a wider array of expansion ports that often can be used to prototype and validate new hardware designs that are targeting Android, making it easier for vendors to validate their kernel drivers and Android HALs against the latest mainline kernels and AOSP userland.

Project Homepage

https://linaro.atlassian.net/wiki/spaces/SDEFAU/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by LCG SC.

Visit the Linaro Membership page for more information.

There is a growing trend towards virtualization in areas other than the tradition server environment. The server enviroment is uniform in nature but as we move towards a richer echosystem in automotive, medical and general mobile and the IoT spaces, the rich array of hypervisors and SoCs become a problem.

Project Stratos is working towards developing hypervisor agnostic Virtio interfaces and standards.
The four key areas of interest are

  • High performance Virtio interfaces
  • Virtual Machine Monitors with a safety island
  • Boot Orchestration
  • Written Standards for the hypercalls

Project Homepage

https://linaro.atlassian.net/wiki/spaces/STR/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by TSC.

Visit the Linaro Membership page for more information.

System Control and Management Interface (SCMI) has been designed to standardize the interface between a power coprocessor and other parts of a SoC. That includes the application processor (AP) on which we can have both rich OS like Linux but also a TEE like OP-TEE.
Each client of the power coprocessor has its own access point with specific control permissions on the power resources. But on some “medium/small” systems, the power coprocessor may not be present or doesn’t provide enough access points. In such a case, the AP itself has to control and filter the access to the power resources.
For security reason, the TEE must have the control of shared resources and populate the authorized resources to the non secure world. The TEE acts as a power coprocessor from Linux PoV and we can keep the SCMI interface.

Project Homepage

https://linaro.atlassian.net/wiki/spaces/SCMI/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by TSC.

Visit the Linaro Membership page for more information.

The thermal framework in the Linux kernel is designed to protect the silicon and exports the
thermal zone information to userspace. That includes the temperature but
also the different notifications telling about the cooling device state
changes as well as the temperature trip point crossed the way up or down.

Even though the thermal framework works well, some features are missing
and some parts can be improved to prevent overshoots leading to a
performance drop action.

These changes are found in out of tree kernels and needs to be carried
into the upstream kernel conforming to the Linux coding, design and
implementation standards.

Some issues with the current implementation have also been found and need to be fixed to allow the thermal daemons to act correctly and in time to mitigate the thermal situation on different devices.

Project Homepage

https://linaro.atlassian.net/wiki/spaces/TE/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by TSC.

Visit the Linaro Membership page for more information.

Trusted Substrate project ambition is to upstream all necessary technologies in multiple projects to enable SystemReady compliance. Projects can be Trusted Firmware, OP-TEE, U-Boot, SCP, Linux kernel (EFI stub) and others.

Trusted Substrate is a BIOS that brings standards based secure booting and over-the-air (OTA) updates to the most trust demanding embedded computing projects such as automotive and robotics. OTA is a key value of Trusted Substrate as it allows any firmware components to be updated with anti-bricking and anti-roll back protections, and will allow transactional updates in asymmetric computing, Cortex-A + Cortex-M solutions.

Project Homepage

https://linaro.atlassian.net/wiki/spaces/TS/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by LEDGE SC.

Visit the Linaro Membership page for more information.

TuxSuite™ delivers on-demand APIs and tools for building Linux kernels in parallel and at scale.

Project Homepage

https://tuxsuite.com/

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by TSC.

Visit the Linaro Membership page for more information.

Linaro's engineers are actively participating in upstream engineering communities. As a result, as maintainers, they become responsible for keeping their code upstream in sync with the overall development of respective upstream projects.

Project Homepage

https://linaro.atlassian.net/wiki/spaces/UM/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by TSC.

Visit the Linaro Membership page for more information.

Adding support for Windows on Arm into open source projects requires official builds in CI, a long-term commitment to maintainership, and a solid, trusted relationship with the upstream project maintainers.

For each tool, language or framework

  • Determine if the package can be built for WoA - upstream fixes
  • Set up CI and testing in package maintainers CI system, or support upstream CI via Linaro surfaceProX pool
  • Migrate WoA CI towards WOA servers as they become available.
  • Coordinate with each vendor to analyse and fix regressions (Triage)
  • Establish trusted relationships with each project maintainer
  • Help the community establish WoA as a supported platform

Project Homepage

https://linaro.atlassian.net/wiki/spaces/WOAR/overview

How to participate

Participation in this project can be achieved through Linaro Membership. The project is managed by WOA SC.

Visit the Linaro Membership page for more information.