Launched in 2005, Embedded Linux Conference (ELC) is for companies and developers using Linux in embedded products. It gathers the technical experts working on embedded systems and applications for education and collaboration, paving the way for transformation in these important and far reaching areas. Register for the event here.
ELC will be co-located with Open Source Summit North America, held on June 21-24 in Austin, TX and virtually. The Zephyr Project will be featured in several sessions:
Thursday, June 23
12-12:40 pm CDT: System Device Tree and Lopper: Concrete Examples – Bruce Ashfield & Stefano Stabellini, AMD
System Device Tree is an extension to Device Tree to describe all the hardware on an SoC, including heterogeneous CPU clusters and secure resources not typically visible to an Operating System like Linux. This full view allows the System Device Tree to be the “One true source” of the entire hardware description and helps to prevent the common (and hard-to-debug) problem of conflicting resources and system consistency. Lopper is an Open Source framework to parse and manipulate System Device Tree. With Lopper, it is possible to generate multiple traditional Device Trees from a single larger System Device Tree. This presentation will provide an overview of System Device Tree and will discuss the latest updates of the specification and tooling. The talk will illustrate multiple use-cases for System Device Tree with concrete examples, such as Linux running on the more powerful CPU cluster and Zephyr running on a smaller Cortex-R cluster. It will also show how to use Lopper to generate multiple traditional Device Trees targeting different OSes, not just Linux but also Zephyr/other RTOSes. Finally, an end-to-end demo based on Yocto to build a complete heterogeneous system with multiple OSes and RTOSes running on different clusters on a single reference board will be shown. Add this to your schedule here.
Static partitioning enables multiple domains to run alongside each other with no interference. They could be running Linux, an RTOS, or another OS, and all of them have direct access to different portions of the SoC. In the last five years, the Xen community introduced several new features to make Xen-based static partitioning possible. Dom0less to start multiple static domains in parallel at boot, and Cache Coloring to minimize cache interference effects are among them. Static inter-domain communications mechanisms were introduced this year, while “ImageBuilder” has been making system-wide configurations easier. An easy-to-use complete solution is within our grasp. This talk will show the progress made on Xen static partitioning. The audience will learn to configure a realistic reference design with multiple partitions: a LinuxRT partition, a Zephyr partition, and a larger Linux partition. The presentation will show how to set up communication channels and direct hardware access for the domains. It will explain how to measure interrupt latency and use cache coloring to zero cache interference effects. The talk will include a live demo of the reference design. Add this to your schedule here
Friday, June 24:
This talk is a deep dive into the AMP/HMP topic showing both the Cortex-A as well as the Cortex-M4/M7 side of things. The first part looks at the evolution of the microcontroller and its integration into the Linux ecosystem. Both independent uCs, their interfacing, as well as AMP/HMP integrated ones, are covered. It also gives a quick overview of open-source real-time OS’ suitable to the task. The second part looks at the various options how to actually launch code at various stages throughout the lifetime of a system, be it directly from a boot container by the boot ROM, later by the boot loader using U-Boot’s bootaux command or once Linux is booted on the Cortex-A core using the remote processor framework (remoteproc). How mainline Linux and Zephyr work in unison is covered in the third part by further discussing concepts like the remote processor messaging (rpmsg) framework using the virtio-based messaging bus which allows kernel drivers to communicate with remote processors available in the system. Communication libraries like OpenAMP are also briefly covered. My talk is mostly SoC agnostic but concludes with a real-life demo using NXP i.MX 7/8M Mini and 8M Plus-based systems running the fully open-source software stacks previously introduced. Add it to your schedule here