Overview of Lopper

Lopper is a versatile tool developed by AMD and released to the open-source community, specifically the Devicetree Project. Its development was tied to creating the System Device Tree specification, reflecting AMD’s commitment to simplifying and automating multi-domain software designs. Lopper is hosted on GitHub and is a valuable resource for developers working with complex device tree configurations.

.xsa FileSDTGenSystem Device TreeLoppergen-machine-conf (embeds Lopper)Other Build Systems / OSesYocto / Linux

Lopper in the SHEL flow.

Functionality

Lopper takes an input device tree—typically a system device tree—applies a series of operations to that tree, and outputs one or more modified or processed trees. This capability makes it an essential tool for managing and transforming device tree data in various development environments.

Integration and Usage

Lopper is included in and used by several tools and platforms, including:

  • gen-machine-conf: Lopper is used as a library for device tree parsing, aiding in the translation of system-level design information into specific configurations for different build environments.

  • AMD Vitis Unified Software Platform: Lopper is integrated as a library to help with device tree parsing, supporting the platform’s comprehensive development capabilities.

  • Zephyr Build Tool “West”: Lopper is employed as a library within the Zephyr build tool “west,” enhancing its ability to manage device tree data.

Independent Tool Availability

Beyond its integration into these platforms, Lopper is available as an independent tool. This availability lets AMD partners and customers leverage Lopper for greater control over their build environments and to add support for other operating systems. By using Lopper independently, developers can customize and extend their device tree processing capabilities to suit their specific needs.

Conclusion

Lopper represents a significant advancement in the management of device tree data, offering flexibility and automation for multi-domain software designs. Its integration into major development tools and its availability as an independent resource make it an invaluable asset for developers seeking to optimize their build environments.

For more information and to access Lopper, visit the Lopper GitHub repository.