{"$schema": "https://c3voc.de/schedule/schema.json", "generator": {"name": "pretalx", "version": "2026.1.1"}, "schedule": {"url": "https://cfp.embedded-recipes.org/er2026/schedule/", "version": "0.5", "base_url": "https://cfp.embedded-recipes.org", "conference": {"acronym": "er2026", "title": "ER2026", "start": "2026-05-27", "end": "2026-05-28", "daysCount": 2, "timeslot_duration": "00:05", "time_zone_name": "Europe/Paris", "colors": {"primary": "#a3d4ee"}, "rooms": [{"name": "Auditorium", "slug": "5099-auditorium", "guid": "c57cf63d-065b-5c0d-99d7-0009b7c9e5cb", "description": "Main Auditorium", "capacity": 200}], "tracks": [], "days": [{"index": 1, "date": "2026-05-27", "day_start": "2026-05-27T04:00:00+02:00", "day_end": "2026-05-28T03:59:00+02:00", "rooms": {"Auditorium": [{"guid": "147d41a4-8470-5dbd-962d-c5a67559e6af", "code": "CUMR8D", "id": 92256, "logo": null, "date": "2026-05-27T09:45:00+02:00", "start": "09:45", "duration": "00:40", "room": "Auditorium", "slug": "er2026-92256-yocto-project-and-the-cyber-resilience-act", "url": "https://cfp.embedded-recipes.org/er2026/talk/CUMR8D/", "title": "Yocto Project and the Cyber Resilience Act", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "The EU Cyber Resilience Act introduces new obligations across the software supply chain, for both manufacturers and for the new category of open source stewards. We've been thinking about what this means for the Yocto Project - what are our obligations? And what can we do to help our users meet their obligations as manufacturers?\r\n\r\nFor manufacturers, the CRA requires the avoidance of known exploitable security issues, tracking of software components & vulnerabilities, reporting to relevant Computer Security Incident Response Teams (CSIRTs) and provision of software updates for the useful lifetime of products. Today, the Yocto Project provides a repeatable build process and tooling that will help manufacturers to meet these requirements. With further development, we could make it easier to achieve the required level of security and vulnerability tracking.\r\n\r\nFor the Yocto Project itself, the requirements on open source stewards are more lightweight. We will need to align the project's cybersecurity policy with the CRA and be prepared to share information with market surveillance authorities if requested.", "description": "This talk will:\r\n- Introduce the challenges and opportunities of the CRA from the Yocto Project perspective.\r\n- Discuss changes needed to our security policy to meet our new obligations.\r\n- Review the existing features that we provide to help manufacturers meet their obligations: SPDX3 SBoM generation, reproducible builds and CVE tracking.\r\n- Present a roadmap of security features that we should adopt to further help our users: secure-by-default software images, improved secure boot support, more comprehensive detail in our SBoMs and more flexible CVE tracking with sbom-cve-check.\r\n- Invite questions and feedback from the audience.", "recording_license": "", "do_not_record": false, "persons": [{"code": "JM37W8", "name": "Paul Barker", "avatar": "https://cfp.embedded-recipes.org/media/avatars/7ZHQSN_yhCCjbv.webp", "biography": "Paul Barker is the Ecosystem Engineering and Operations Lead at the Yocto Project, a Linux Foundation project. He has been working in Open Source and Embedded Linux for over a decade, with experience supporting clients in the automotive, industrial, and telecommunications sectors. Paul has contributed to several open source projects including the Linux kernel, U-Boot, and Yocto Project. He has presented at FOSDEM, Embedded Linux Conference Europe, Linaro Connect, and multiple Yocto Project summits.", "public_name": "Paul Barker", "guid": "20ae6385-9f99-50cb-9e7e-3757e59b922c", "url": "https://cfp.embedded-recipes.org/er2026/speaker/JM37W8/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/CUMR8D/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/CUMR8D/", "attachments": []}, {"guid": "f6dfe5fd-4204-568a-8ca1-f51bc0127747", "code": "M8CYMB", "id": 91880, "logo": null, "date": "2026-05-27T10:30:00+02:00", "start": "10:30", "duration": "00:40", "room": "Auditorium", "slug": "er2026-91880-booting-validated-containers-in-your-car", "url": "https://cfp.embedded-recipes.org/er2026/talk/M8CYMB/", "title": "Booting validated containers in your car", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Bootc is a system to boot regular container image as a full operating system, including a kernel. This gives an extremely flexibly and powerful mechanism to build, manage and deploy images to machines which reuses existing, known infrastructure and tools. However, to use this in embedded systems we also need to support for runtime validation of data (like dm-verity) and signatures (secureboot, android verified boot), which is not typically available for containers.\r\n\r\nThis talk will describe how technologies like bootc, composefs and ukiboot can be used to achive an end-to-end signed and verified boot, and demonstrate how this works in the automotive Linux platform we are building.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "U8TBGD", "name": "Alexander Larsson", "avatar": "https://cfp.embedded-recipes.org/media/avatars/U8TBGD_tsPSOuu.webp", "biography": "Alexander is a redhat developer who has been working on linux desktop and system software for the last 20+ years. Lots of his work has been in the area of the desktop, including major work on Gnome, gtk, and glib. Alex is the primary developer of flatpak, and has also done lots of container work in podman and docker. Recently the primary area of work is around Linux in automotive.", "public_name": "Alexander Larsson", "guid": "d864bc5e-a44d-54af-a647-056a9cb0b46e", "url": "https://cfp.embedded-recipes.org/er2026/speaker/U8TBGD/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/M8CYMB/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/M8CYMB/", "attachments": []}, {"guid": "f9b79366-9966-522e-8a2d-6df638b53be9", "code": "P8A8DR", "id": 91972, "logo": null, "date": "2026-05-27T11:15:00+02:00", "start": "11:15", "duration": "00:40", "room": "Auditorium", "slug": "er2026-91972-mastering-wakeup-sources-in-linux-architecture-apis-and-constraints", "url": "https://cfp.embedded-recipes.org/er2026/talk/P8A8DR/", "title": "Mastering Wakeup Sources in Linux: Architecture, APIs, and Constraints", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "In embedded systems, the ability to efficiently transition from low power states back to active operation is critical. Wakeup events are the mechanism used to communicate to the system to leave a low power state and enter an active state. However, implementing effective wakeup mechanisms requires navigation of hardware constraints, such as understanding signal routing, IRQ configurations, and determining which wakeup sources remain available when various system components are powered down.\r\n\r\nLinux provides architecture to easily model and configure wakeup sources, allowing developers to enable wakeup sources across different platforms. This talk will cover the Linux architecture and APIs behind wakeup sources such as managing wakeup events, wake IRQs, and what considerations are needed when selecting and configuring the right wakeup source.\r\n\r\nAdditionally, this talk will open a discussion and explore the existing frameworks of modeling wakeup sources for devices that wakeup the system even when their power domain is off.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "GLB8TK", "name": "Kendall Willis", "avatar": "https://cfp.embedded-recipes.org/media/avatars/8VEUZE_SuAWwf9.webp", "biography": "Kendall Willis is an Embedded Software Engineer working at Texas Instruments. She primarily focuses on power management in ARM SoCs by enabling various low power modes in the Linux kernel.", "public_name": "Kendall Willis", "guid": "725dc9dc-edbf-5989-9539-49d72352a6de", "url": "https://cfp.embedded-recipes.org/er2026/speaker/GLB8TK/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/P8A8DR/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/P8A8DR/", "attachments": []}, {"guid": "19a5a67a-a35e-5810-b554-42e05825a5b9", "code": "JHLWDM", "id": 92297, "logo": null, "date": "2026-05-27T13:30:00+02:00", "start": "13:30", "duration": "00:15", "room": "Auditorium", "slug": "er2026-92297-rsinit-a-tiny-initramfs-toolbox-for-embedded-systems", "url": "https://cfp.embedded-recipes.org/er2026/talk/JHLWDM/", "title": "rsinit -- a tiny initramfs toolbox for embedded systems", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Traditionally, embedded systems were simple enough that an initramfs was not needed at all.\r\nThis has changed in the last recent years with new requirements, often related to verified boot.\r\nThat means that additional steps are now needed before the rootfs can be mounted.\r\n\r\nExisting solutions, such as the Yocto initramfs-framework have significant drawbacks. The resulting initramfs is quite big (multiple megabytes) which has a noticeable impact on the boot time. And while the shell scripts make it easy to customize, robust error handling is difficult.\r\n\r\nIn this talk, Michael will introduce [rsinit](https://github.com/pengutronix/rsinit), a single-binary-initramfs for embedded systems, written entirely in Rust.\r\nIt is tiny (less than 200 KiB), very fast and \"just works\" for simple use-cases. Alternatively, it can be uses as a library to build a fully custom binary.\r\n\r\nBeyond being small, it brings the full power of Rust to the initramfs, which allows building additional features (such as splash screens or read-ahead) without pulling in further dependencies.\r\n\r\nMichael will present the existing features, explain the design choices and give an overview of what is planed for the future.", "description": "rsinit was briefly introduced in the talk [The Cost of Security: Measuring and Reducing Boot-Time Impact ](https://osseu2025.sched.com/event/25Vso/the-cost-of-security-measuring-and-reducing-boot-time-impact-michael-olbrich-pengutronix) at ELCE 2025.", "recording_license": "", "do_not_record": false, "persons": [{"code": "Y3QNA7", "name": "Michael Olbrich", "avatar": "https://cfp.embedded-recipes.org/media/avatars/PD8AYB_2LsWzDz.webp", "biography": "Michael Olbrich is an open-source developer with a focus on platform integration on embedded Linux. He works as a full-time Linux developer for Pengutronix. His job is to provide a smooth Linux experience on embedded devices from init systems to graphics and multimedia frameworks.", "public_name": "Michael Olbrich", "guid": "f4406744-1423-5f8a-9bdc-da46ce6151fb", "url": "https://cfp.embedded-recipes.org/er2026/speaker/Y3QNA7/"}], "links": [{"title": "rsinit on GitHub", "url": "https://github.com/pengutronix/rsinit", "type": "related"}], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/JHLWDM/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/JHLWDM/", "attachments": []}, {"guid": "79200b94-9bb8-5ef1-b21b-c09d908ba441", "code": "QRSV8Q", "id": 90884, "logo": null, "date": "2026-05-27T13:45:00+02:00", "start": "13:45", "duration": "00:40", "room": "Auditorium", "slug": "er2026-90884-u-boot-running-an-off-the-shelf-distro-on-your-embedded-board", "url": "https://cfp.embedded-recipes.org/er2026/talk/QRSV8Q/", "title": "U-Boot -- Running an off the shelf distro on your embedded board", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Basic UEFI support was added to U-Boot back in 2016. Back then it had\r\n- Rudimentary UEFI support\r\n- Ability to read/store UEFI variables to/from the U-Boot environment\r\n- No UEFI secure boot\r\n- No UEFI measured boot\r\n- No capsule update support, even without authentication\r\n- UEFI Boot Manager was just merged with only basic features\r\n\r\nOver the years the UEFI implementation has matured making it easy to launch standard off the shelf distros in embedded hardware. We'll go through the features, starting from the initial EBBR support in U-Boot up to booting an OS (installing the OS over a disk or HTTPs as well as running live images) and all the problems we solved along the way.\r\n\r\n- A small introduction to UEFI, EBBR and SystemReady\r\n- How to install and boot off the shelf distros on embedded boards\r\n- What is UEFI secure boot and how you can enable it on your hardware. Multiple options exist and it depends on the available storage -- SPI, RPMB, eMMC, SD card only etc\r\n- How to enable and use UEFI measured boot\r\n- EFI HTTPs boot (with lwIP and mbedTLS support)\r\n- Authenticated capsule updates. How to add support for your board and how to use them via LVFS\r\n- A/B update support for firmware\r\n- SetVariable at runtime options and  why distros need it", "description": "I plan to cover the entire lifecycle of booting distros on embedded hardware. \r\nMy team and I have written many blog posts for Linaro over the years (https://www.linaro.org/blog?tags=u-boot) explaining most of the functionality. I'd like to have a presentation on the entire end to end flow.", "recording_license": "", "do_not_record": false, "persons": [{"code": "UDNXPE", "name": "Ilias Apalodimas", "avatar": "https://cfp.embedded-recipes.org/media/avatars/UDNXPE_VJZxBP1.webp", "biography": "I've been working with embedded systems more than 20 years. Lately I've focused on bootloaders, UEFI and security", "public_name": "Ilias Apalodimas", "guid": "bcb4c2dc-de47-551a-993a-b9abe11f5829", "url": "https://cfp.embedded-recipes.org/er2026/speaker/UDNXPE/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/QRSV8Q/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/QRSV8Q/", "attachments": []}, {"guid": "f5fc5645-4d8f-5a7c-8172-d1f6a6cdcb43", "code": "ULWYUJ", "id": 92277, "logo": null, "date": "2026-05-27T14:30:00+02:00", "start": "14:30", "duration": "00:15", "room": "Auditorium", "slug": "er2026-92277-open-source-tools-for-secure-boot-on-rockchip-rk3588", "url": "https://cfp.embedded-recipes.org/er2026/talk/ULWYUJ/", "title": "Open Source Tools for Secure Boot on Rockchip RK3588", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Secure boot is a security feature that enables device manufacturers to ensure that a device only boots trusted and signed software. This feature depends on certain hardware capabilities like a hardware root of trust and signature verification.\r\n\r\nThe Rockchip RK3588 SoC supports these features. However, limited documentation and reliance on a closed-source vendor OP-TEE binary and development tools raise concerns regarding security and maintainability. With OP-TEE 4.9.0 and barebox v2026.02.0, users may enable and use Secure Boot on RK3588 without needing any special Rockchip tools.\r\n\r\nIn this session, Michael will show you how to enable Secure Boot on RK3588 with upstream barebox and upstream OP-TEE. He will also highlight differences between the upstream implementation and Rockchips downstream solution. Lastly, he will briefly explain technical details to help you with adapting the implementation for other Rockchip SoCs and with using the OP-TEE PTA from Linux or U-Boot.", "description": "[OP-TEE Pull Request](https://github.com/OP-TEE/optee_os/pull/7661)\r\n[barebox Patch series](https://lore.kernel.org/all/20260105-rockchip-secure-boot-v1-0-eaf5053a7d7e@pengutronix.de/)", "recording_license": "", "do_not_record": false, "persons": [{"code": "YFGYFU", "name": "Michael Tretter", "avatar": "https://cfp.embedded-recipes.org/media/avatars/QXSZTP_WzEeNtt.webp", "biography": "Michael Tretter works as a software developer at Pengutronix. Even though his main field of work is the Linux graphics infrastructure and media drivers, his interests also include bootloaders and SoC support in the Linux kernel.\r\n\r\nMichael previously gave talks about the internals of the [Linux graphics stack](https://www.youtube.com/watch?v=S_rqgyId9YE) at ELC-E, the [development of the upstream ZynqMP video encoder driver](https://archive.fosdem.org/2021/schedule/event/mainline_zynqmp_vcu_driver/) at FOSDEM, and the [importance of maintainable open source tools](https://www.youtube.com/watch?v=LBQqQFsnoeg) at the FPGA Conference Europe.", "public_name": "Michael Tretter", "guid": "9316cde9-d477-5545-b0ee-82247d127baa", "url": "https://cfp.embedded-recipes.org/er2026/speaker/YFGYFU/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/ULWYUJ/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/ULWYUJ/", "attachments": []}, {"guid": "ca262cb8-50c0-5def-ab51-7b359f7eacf6", "code": "9RX7LL", "id": 92185, "logo": null, "date": "2026-05-27T14:45:00+02:00", "start": "14:45", "duration": "00:40", "room": "Auditorium", "slug": "er2026-92185-u-boot-on-boot-core-as-an-always-on-debug-tool", "url": "https://cfp.embedded-recipes.org/er2026/talk/9RX7LL/", "title": "U-Boot on boot core as an always-on debug tool", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Contemporary SoCs perform initial system boot on a dedicated core and start the additional cores only after the system was fully initialized. This boot core may be a Cortex-M, which is also capable of running U-Boot, and remains active even after the other cores started.\r\n\r\nThis talk first clarifies the specifics of porting U-Boot to Cortex-M, including read-only text and read-write data at offset, limited SRAM size, partial relocation, console access, and start of the additional cores.\r\n\r\nNext, the talk explains how U-Boot running on the boot core can be used as an always-on debug tool, to inspect the state of the other cores, peripherals and memory in the system. This includes interaction with peripherals even if the other cores may have crashed, and the use of DMA to access memory above the 32bit boundary. The talk ends with a real-world example of such a setup.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "GWGFTA", "name": "Marek Vasut", "avatar": "https://cfp.embedded-recipes.org/media/avatars/8HXA3Y_7Cix0pS.webp", "biography": "Marek is an embedded systems consultant, with primary focus on upstream U-Boot bootloader, Linux kernel and OpenEmbedded. Recently, Marek has been working on hardware assisted testing instrumentation for various embedded system components to improve long term maintainability.", "public_name": "Marek Vasut", "guid": "1159b2de-bccb-5fe7-8ed6-f83dd44c8857", "url": "https://cfp.embedded-recipes.org/er2026/speaker/GWGFTA/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/9RX7LL/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/9RX7LL/", "attachments": []}, {"guid": "798d191d-1766-5230-a4d1-34edc54dbf45", "code": "VTTZDS", "id": 92228, "logo": null, "date": "2026-05-27T15:30:00+02:00", "start": "15:30", "duration": "00:15", "room": "Auditorium", "slug": "er2026-92228-watch-your-scope-the-hidden-pitfalls-of-scopedguard-and-other-cleanup-h-macros", "url": "https://cfp.embedded-recipes.org/er2026/talk/VTTZDS/", "title": "Watch your scope! The hidden pitfalls of scoped_guard() and other cleanup.h macros", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Everyone loves \"cleaning up\" code in the Linux kernel using macros from linux/cleanup.h. It's one of the latest fads. There have been hundreds of \"clean up\" patches and these macros are used thousands of times in the kernel now. However, these macros have some hidden secrets that can result in hard-to-spot bugs and mysterious compiler warnings! As these gain wider use and acceptance, let's see what the problems are and what we should do about it.", "description": "Spoiler alert:\r\n\r\nscoped_guard() contains a for loop, so using break and continue keywords in this scope doesn't do what one might think. I've found and reported a number of cases where this mistake made it into the kernel. Even experienced kernel maintainers are missing this and submitting patches with bugs. This makes me wary of using scoped_guard() in general, but I seem to be in the minority.\r\n\r\nThe other cleanup macros introduce local variables. The clang compiler doesn't like this when you use them in a switch statement. I'll show the compiler warning/error and how to avoid it.", "recording_license": "", "do_not_record": false, "persons": [{"code": "VURXFJ", "name": "David Lechner", "avatar": "https://cfp.embedded-recipes.org/media/avatars/ALQYF8_kRDjYZx.webp", "biography": "David is a senior Embedded Software Engineer at BayLibre. He learned (almost) everything he knows about embedded systems from hacking on LEGO MINDSTORMS robots. In the Linux kernel world, he is a reviewer for the IIO subsystem (and is maintainer for some LEGO MINDSTORMS EV3 drivers, of course!). In his spare time, he maintains Bleak, a cross-platform Bluetooth Low Energy library for Python and co-maintains Pybricks, a 3rd-party firmware and IDE for LEGO \"smart hubs\" based on MicroPython.", "public_name": "David Lechner", "guid": "f49917c6-f468-595a-87c6-08faba2b0ca8", "url": "https://cfp.embedded-recipes.org/er2026/speaker/VURXFJ/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/VTTZDS/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/VTTZDS/", "attachments": []}, {"guid": "6c43b503-e306-5238-8370-348186a9d315", "code": "USZT33", "id": 92293, "logo": null, "date": "2026-05-27T16:15:00+02:00", "start": "16:15", "duration": "00:40", "room": "Auditorium", "slug": "er2026-92293-from-track-to-edge-shipping-real-time-ai-on-embedded-linux", "url": "https://cfp.embedded-recipes.org/er2026/talk/USZT33/", "title": "From Track to Edge: Shipping Real-Time AI on Embedded Linux", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Modern motorsport telemetry systems generate massive amounts of data including GPS traces, IMU measurements, CAN signals, and vehicle dynamics. In most cases, analysis happens after the session, often in the cloud. By the time insights are available, the opportunity to correct driving behavior in real time is already gone. For deterministic feedback during a session, cloud-dependent approaches are too slow, too fragile, and sometimes simply unavailable.\r\n\r\nIn this talk, we walk through the engineering journey of building a real-time telemetry analysis system that runs entirely at the edge on embedded Linux. The objective was straightforward: detect driving patterns and performance anomalies during a session without relying on connectivity. Achieving that goal required solving a set of practical system-level challenges that extend far beyond data acquisition and model training.\r\n\r\nWe begin with the development pipeline: training a model offline, exporting to ONNX or TFLite, quantizing for constrained hardware, and deploying to embedded System-on-Modules. We compare CPU-only execution against NPU acceleration, highlighting latency, memory footprint, and sustained-load behavior. Real benchmark results demonstrate where hardware acceleration delivers measurable gains and where it introduces additional constraints.\r\n\r\nRunning inference once is not the hard part. Shipping a complete embedded systems product is.\r\n\r\nThe talk then focuses on the integration and production aspects of edge AI systems. We examine kernel driver and user-space runtime alignment, accelerator operator support limitations, memory pressure under sustained workloads, and thermal behavior during continuous inference. We discuss containerized deployment on embedded Linux, using Torizon OS as a reference implementation, including hardware access from containers, separation of sensor ingestion and inference pipelines, reproducible builds, and safe over-the-air model updates without reflashing the device.\r\n\r\nBy the end of the session, attendees will have a practical blueprint for taking an AI model from experimentation to a production-ready embedded deployment. More importantly, they will gain an honest understanding of what breaks, what scales, and what must be designed early when building real-time intelligence on embedded Linux systems.\r\n\r\nThis is not a showcase of AI capabilities, but a systems engineering story about building, benchmarking, integrating, and maintaining edge AI under real-world constraints.", "description": "Artificial intelligence at the edge is often described as just moving machine learning from the cloud to a local device. In embedded systems, however, it is much more complex than simply running inference. It involves dealing with hardware limitations, operating system constraints, runtime compatibility, power consumption, and long-term maintenance. These challenges make deploying AI on embedded Linux a full systems engineering problem rather than just a data science task.\r\n\r\nThis talk presents a practical, end-to-end workflow for building and deploying a real-time edge AI system on embedded Linux using open-source tools within the Toradex ecosystem. Using a motorsport telemetry use case that requires low-latency analysis without cloud connectivity, we go through the entire development process, including model training and export, quantization for limited hardware, CPU versus NPU trade-offs, sustained performance testing, containerized deployment, reproducible builds, and safe over-the-air updates.", "recording_license": "", "do_not_record": false, "persons": [{"code": "QFDZ9N", "name": "Jo\u00e3o Victor \"Teddy\" Martins", "avatar": "https://cfp.embedded-recipes.org/media/avatars/3JWJC3_ZUFtEod.webp", "biography": "Hello everyone, I'm Jo\u00e3o (but everyone calls me Teddy), and I'm a Field Application Engineer at Toradex! I\u2019m an Computer Engineering undergrad (finishing this semester!) with a deep passion for electrical systems and embedded computing. What really excites me is the intersection between hardware and software.\r\nMy journey into embedded systems started with a classic: with Raspberry Pis and emulators. That curiosity gradually evolved into a professional path focused on System-on-Modules, BSP customization, Yocto builds, device tree debugging, and performance optimization for real-world products.\r\nOutside of work I've always been a DIY person with a love for the outdoors. From camping and gardening to track days with an old Ford Escort 96, for which I even am developing a telemetry platform based on the AM62 from TI!\r\nI love understanding how things work and turning ideas into projects into reality! I'll always be chasing the next project!", "public_name": "Jo\u00e3o Victor \"Teddy\" Martins", "guid": "21135036-45aa-5ea1-a3d6-dc595f56b3c6", "url": "https://cfp.embedded-recipes.org/er2026/speaker/QFDZ9N/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/USZT33/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/USZT33/", "attachments": []}, {"guid": "674e78a4-860d-5450-b051-42c62bb8a457", "code": "NGEGSL", "id": 92281, "logo": null, "date": "2026-05-27T17:00:00+02:00", "start": "17:00", "duration": "00:40", "room": "Auditorium", "slug": "er2026-92281-embedded-war-stories-from-the-bootlin-team", "url": "https://cfp.embedded-recipes.org/er2026/talk/NGEGSL/", "title": "Embedded War Stories from the Bootlin team", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "For the past 20 years, the engineers at Bootlin have been building, fixing, porting, debugging, and occasionally arguing with Embedded Linux systems across many industries and products.\r\n\r\nIn that time, we've met spectacular boot failures, drivers that almost worked, hardware that didn\u2019t quite match the datasheet, race conditions that only appeared on Tuesdays, and bugs that vanished the moment we added a printk().\r\n\r\nIn this end-of-day session, we'll share a carefully curated selection of our favorite war stories. Real bugs. Real root causes. Real debugging techniques. No hindsight magic. We\u2019ll walk through what\r\nbroke, why it broke, how we tracked it down, and what it taught us.\r\n\r\nExpect kernel deep dives, bootloader surprises, hardware-software boundary confusion, and more.\r\n\r\nIf you've ever spent hours chasing a bug that turned out to be one flipped bit, this talk will feel strangely familiar.", "description": "Twenty engineers from Bootlin will be roaming the halls of Embedded Recipes. A subset of us will take the stage to confess our mistakes, celebrate the fixes, and share the lessons learned the hard way, so\r\nyou don\u2019t have to.", "recording_license": "", "do_not_record": false, "persons": [{"code": "3KZVKP", "name": "Bootlin's team", "avatar": "https://cfp.embedded-recipes.org/media/avatars/7RQNZU_L92N2vD.webp", "biography": "Twenty engineers from Bootlin will be roaming the halls of Embedded Recipes. A subset of us will take the stage to confess our mistakes, celebrate the fixes, and share the lessons learned the hard way, so\r\nyou don\u2019t have to.", "public_name": "Bootlin's team", "guid": "b4704f50-32fc-5bb9-b18a-ffb9c73452f2", "url": "https://cfp.embedded-recipes.org/er2026/speaker/3KZVKP/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/NGEGSL/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/NGEGSL/", "attachments": []}]}}, {"index": 2, "date": "2026-05-28", "day_start": "2026-05-28T04:00:00+02:00", "day_end": "2026-05-29T03:59:00+02:00", "rooms": {"Auditorium": [{"guid": "0c7bfe88-a646-57cb-aca8-e57277906c86", "code": "YSADJ9", "id": 92317, "logo": null, "date": "2026-05-28T09:30:00+02:00", "start": "09:30", "duration": "00:40", "room": "Auditorium", "slug": "er2026-92317-op-tee-and-its-many-features", "url": "https://cfp.embedded-recipes.org/er2026/talk/YSADJ9/", "title": "OP-TEE and its many features", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "What is OP-TEE? How does it work? And why are so many features for OP-TEE disabled by default?\r\nThis talk will give an introduction to OP-TEE and than highlight the lesser known features such as asynchronous notifications, Secure Data Path or Function Tracing. It will also take a look into future, where industrial arm64 SoC are no longer limited to ARMv8.2 and with ARMv8.4 can provide virtualization of the secure world to implement the Firmware Framework for A-Profile (FFA) specification.", "description": "The talk aims to provide an introduction to OP-TEE, describe how different boot up flows work and will describe how an execution environment differs from a full operating system implementation.\r\nWith this foundation we will start to look at interesting features implemented into OP-TEE, many of which are disabled by default either because most platforms don't require them or they are primarily aimed for debugging and have a performance impact. Among those features, at least the following will be covered:\r\n- OP-TEE & Linux kernel support for synchronous and asynchronous notifications\r\n- Secure Data Path and the OP-TEE Heap implementation for protected buffer sharing\r\n- Function Tracing for Applications running within OP-TEE\r\n- OP-TEE support to communicate with external secure elements via the Linux kernel\r\nWe will than take a look into the Firmware Framework for A-Profile (FFA) specification which becomes relevant with ARMv8.4 implementations and explain how OP-TEE fits into it. This will also cover other components which are affected by FFA i.e. TF-A & hafnium.", "recording_license": "", "do_not_record": false, "persons": [{"code": "LDKMVN", "name": "Rouven Czerwinski", "avatar": "https://cfp.embedded-recipes.org/media/avatars/NTENJA_GbAlDSk.webp", "biography": "At first building the labgrid hardware access layer, Rouven nowadays works on security solutions for embedded devices.", "public_name": "Rouven Czerwinski", "guid": "be1f4e60-bbd6-55f0-825f-406a7b6d7ebd", "url": "https://cfp.embedded-recipes.org/er2026/speaker/LDKMVN/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/YSADJ9/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/YSADJ9/", "attachments": []}, {"guid": "f0f18b2f-6a46-5a05-9ed8-53c3fb6f4db4", "code": "ZLSMQG", "id": 91811, "logo": null, "date": "2026-05-28T10:15:00+02:00", "start": "10:15", "duration": "00:40", "room": "Auditorium", "slug": "er2026-91811-a-distributed-phone-ci-for-postmarketos", "url": "https://cfp.embedded-recipes.org/er2026/talk/ZLSMQG/", "title": "A Distributed Phone CI for postmarketOS", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "postmarketOS is a community project aiming to bring real mainline linux to your smartphones (and other consumer devices). What was once a far dream, has developed into a vibrant community with many smartphones receiving enough features in mainline kernels for people to daily-drive them. However, community and manual testing can only gets us so far. To be able to scale, avoid regressions, and ensure long-term reliability automated testing is a requirement. \r\n\r\nAfter many years of work and multiple attempts, postmarketOS has been able to build a system to test phones directly into CI. The system is FOSS, distributed, simple enough to be deployed by a hobbyist at a hacker-space for <200\u20ac, and easy to scale-up. It uses [CI-tron](https://docs.ci-tron.dev) for all the orchestration, and a custom PCB as PDU for phone-specific needs.\r\n\r\nIn this talk, we will discuss the different approaches we took over time, lessons learned from successes and failures, current status, and a look into the future.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "LSQLC9", "name": "Pablo Correa Gomez", "avatar": "https://cfp.embedded-recipes.org/media/avatars/LSQLC9_159zF6e.webp", "biography": "I am an Industrial Engineer re-converted to FOSS hacker, re-converted to governance and project manager. I started contributing to postmarketOS in 2021 with a PinePhone in my hand and a dream to replace the Android phones in my and my sister's (a sociologist without IT training) pockets with something we can control. 5 years later, the PinePhone is no longer in my hand, but the dream is getting closer and closer by the day.\r\n\r\nRight now, I am a Core Contributor at postmarketOS, mostly in charge of project coordination, governance and legal topics. At the same time, I have contributed to dozens of FOSS projects, a maintainer of a few, and even became director at the GNOME Foundation.", "public_name": "Pablo Correa Gomez", "guid": "929156eb-162c-52d9-bcdd-8ef47864d43c", "url": "https://cfp.embedded-recipes.org/er2026/speaker/LSQLC9/"}, {"code": "DZH8Y9", "name": "Casey", "avatar": null, "biography": null, "public_name": "Casey", "guid": "1a456a28-a72f-59d8-9ec9-d4c28d790f3c", "url": "https://cfp.embedded-recipes.org/er2026/speaker/DZH8Y9/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/ZLSMQG/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/ZLSMQG/", "attachments": []}, {"guid": "c3f4f34b-e105-572c-8d85-c06258128a5a", "code": "PCYPJP", "id": 92310, "logo": null, "date": "2026-05-28T11:00:00+02:00", "start": "11:00", "duration": "00:40", "room": "Auditorium", "slug": "er2026-92310-rpmsg-kms-a-unified-drm-framework-for-display-sharing-on-heterogeneous-embedded-socs", "url": "https://cfp.embedded-recipes.org/er2026/talk/PCYPJP/", "title": "rpmsg-kms: A Unified DRM Framework for Display Sharing on Heterogeneous Embedded SoCs", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Heterogeneous embedded SoCs increasingly require display hardware sharing between Linux and real-time firmware cores. For e.g., In automotive instrument clusters, safety-critical telltales must be rendered by an RTOS on a real-time core (e.g., R5F) while Linux drives the GPU-composited UI on the same display. No generic upstream solution exists to cleanly bridge these worlds within the DRM/KMS subsystem.\r\n\r\nWe present rpmsg-kms, a vendor-agnostic DRM helper framework that unifies display sharing across heterogeneous cores. The design leverages the kernel's remoteproc/virtio/rpmsg transport chain for automatic driver binding, eliminating manual integration. The framework and firmware communicate through the firmware's resource table and rpmsg name-service announcement, enabling independent development and  deployment.                             \r\n                 \r\nThe session will be addressing two distinct models:\r\nModel 1: Universal Framebuffer Handoff targets platforms where firmware owns the display pipeline. Linux communicates per-frame plane updates (address, geometry, format, Z-order) over rpmsg to firmware, which programs hardware registers. Vsync can be delivered via rpmsg. This suits any processor and display controller where firmware needs complete control and Linux is in charge of passing GPU-rendered framebuffers for firmware-side for post-processing, composition and display.\r\n  \r\nModel 2: Hardware-Assisted Display Partitioning targets SoCs like TI's K3 family with hardware support for partitioning display resources across cores. The hardware enforces isolation, for e.g. one scenario could be where firmware owns specific planes (e.g., overlay1-3) while Linux owns others (e.g., overlay4-7), with hardware Z-ordering ensuring firmware planes appear on top. Here, rpmsg is used at probe time for resource negotiation where Linux requests partition assignments then writes display registers directly using it's own alloted register-space for all runtime updates, achieving zero IPC overhead per frame. rpmsg remains active for system events: suspend/shutdown notifications and fatal error handling ensure display integrity across core transitions.\r\n\r\nFollowing DRM's atomic helper pattern, rpmsg-kms provides a reusable core with vendor-specific callbacks, enabling platform choice between rpmsg-based updates or direct register access.                          \r\nThis talk covers the architecture, protocol, device tree bindings, and vendor-ops interface along with open-challenges such as passing framebuffer addresses over rpmsg.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "F39ZBX", "name": "Devarsh Thakkar", "avatar": "https://cfp.embedded-recipes.org/media/avatars/WXV8AF_B5POwo5.webp", "biography": "Devarsh Thakkar works as an Embedded Linux developer at Texas Instruments. He has 13+ years of experience in software development ranging from open-source bootloaders to the Linux kernel, middleware frameworks and applications. His expertise lies in Audio/Video related multimedia frameworks, Linux media subsystems, Linux device drivers and applications. He has made contributions to open-source projects such as U-boot , Linux Kernel and Gstreamer and also presented in various international conferences in past.", "public_name": "Devarsh Thakkar", "guid": "6e34ef66-9158-5bbe-9ce7-e867b643ee8a", "url": "https://cfp.embedded-recipes.org/er2026/speaker/F39ZBX/"}, {"code": "PAWTQ7", "name": "Beleswar Prasad Padhi", "avatar": "https://cfp.embedded-recipes.org/media/avatars/UZJPC8_RyEUnnj.webp", "biography": "Beleswar is a Senior Software Engineer at Texas Instruments, actively working on Upstream Linux Kernel and U-Boot. His work mainly focuses on Remoteproc, RPMsg, Mailbox, Virtio subsystems, as well as boot-time optimizations. He was listed among the top contributors for Linux 6.18 LTS release. He is a FOSS Enthusiast and has contributed to several Open Source projects like Linux, U-Boot, ZephyrRTOS, Vim, Armbian, Metasploit and Mandiant. He was a mentee under Google Summer of Code program twice.", "public_name": "Beleswar Prasad Padhi", "guid": "b38ec7fe-ebe0-59c9-8dfd-985d908cf5f0", "url": "https://cfp.embedded-recipes.org/er2026/speaker/PAWTQ7/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/PCYPJP/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/PCYPJP/", "attachments": []}, {"guid": "59ebbb52-570e-59d3-8056-b5a5f6768323", "code": "UCD33E", "id": 92322, "logo": null, "date": "2026-05-28T11:45:00+02:00", "start": "11:45", "duration": "00:15", "room": "Auditorium", "slug": "er2026-92322-in-kernel-drm-based-bootsplash-past-present-and-future", "url": "https://cfp.embedded-recipes.org/er2026/talk/UCD33E/", "title": "In-kernel DRM-based bootsplash: past, present and future", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "An in-kernel bootsplash has been part of the TODO list of the Linux DRM subsystem for quite a long time; some attempts to integrate one have been made in the past, without a successful merge.  The talk will present a simple solution that has been recently proposed [0] by the author of the talk itself, the motivation behind the work and why it may be relevant for the embedded field, along with the reviews it received and the open points. But first, a quick detour will be made to present the drm-draw infrastructure and its other in-kernel users.\r\n\r\n[0] https://lore.kernel.org/all/20260106-drm_client_splash-v2-0-6e86a7434b59@valla.it/", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "VHKNCL", "name": "Francesco Valla", "avatar": "https://cfp.embedded-recipes.org/media/avatars/BWXTV8_Sbfhvep.webp", "biography": "Embedded Linux developer with ~10 years of experience in the automotive field, with the daily goal of maintaining the new problems / solutions ratio below 1. Passionate about the Linux kernel and the Yocto project, with a weakness for the hardware bringup phase.", "public_name": "Francesco Valla", "guid": "ff047a8a-f2cd-59e4-97bf-08f2cfedbeae", "url": "https://cfp.embedded-recipes.org/er2026/speaker/VHKNCL/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/UCD33E/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/UCD33E/", "attachments": []}, {"guid": "1596ef16-8828-5d23-8a79-019ba689fdc6", "code": "VFWHFS", "id": 92093, "logo": null, "date": "2026-05-28T13:30:00+02:00", "start": "13:30", "duration": "00:15", "room": "Auditorium", "slug": "er2026-92093-arm-lfa-update-your-firmware-at-runtime", "url": "https://cfp.embedded-recipes.org/er2026/talk/VFWHFS/", "title": "Arm LFA - update your firmware at runtime", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Arm's Live Firmware Activation (LFA) spec (Arm DEN0147) describes an interface to trigger system firmware updates while the system is running. This could include SCP or other board controller firmwares, but also firmware running on the application processors, like Trusted Firmware-A.\r\n\r\nThe talk will describe what the spec covers, which components are involved, and their upstream story. It will also give examples of already existing LFA firmware support, to illustrate what is possible and where the limitations are.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "K7WACY", "name": "Andre Przywara", "avatar": "https://cfp.embedded-recipes.org/media/avatars/AEQHDF_pt7S8rR.webp", "biography": "Andre works in the Linux kernel team at Arm, for more than a decade now, on typically either virtualization or firmware related topics. On the side he maintains the U-Boot and TF-A port for Allwinner SoCs, and is in general involved in the reverse engineering and upstreaming work around those chips.\r\nPrior to Arm Andre worked for AMD, on Open Source virtualization software like Xen, KVM, QEMU.", "public_name": "Andre Przywara", "guid": "fc7ce832-529b-52be-8e1c-3e0eaadaabd6", "url": "https://cfp.embedded-recipes.org/er2026/speaker/K7WACY/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/VFWHFS/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/VFWHFS/", "attachments": []}, {"guid": "f09946a6-8b5e-55b8-9962-c32170c236a1", "code": "8DPKWD", "id": 92141, "logo": null, "date": "2026-05-28T13:45:00+02:00", "start": "13:45", "duration": "00:40", "room": "Auditorium", "slug": "er2026-92141-linux-and-cameras-past-present-and-future", "url": "https://cfp.embedded-recipes.org/er2026/talk/8DPKWD/", "title": "Linux and cameras: past, present and future", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "The Linux camera landscape has transformed drastically since the kernel received its first ISP driver fifteen years ago. New kernel APIs and userspace frameworks have enabled development of fully open-source camera stacks. Constant engagement with vendors has slowly but steadily born fruits. This key combination of technical and non-technical efforts is starting to paint a brighter future for camera support in Linux.\r\n\r\nThis talk will present the current state of the camera landscape, briefly explain the journey we took, and focus on the planned and foreseen evolutions. We will explore the impact on all actors in the industry, including image sensor vendors, ISP (SoC) vendors, and system integrators. Attendees will learn how they should get ready for the future of cameras in Linux and how it will benefit them.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "LXTDJW", "name": "Laurent Pinchart", "avatar": "https://cfp.embedded-recipes.org/media/avatars/LXTDJW_dvz5jV0.webp", "biography": "Laurent Pinchart has been a Linux kernel developer since 2001. He is a seasoned kernel contributor and one of the V4L2 core developers. Laurent is the founder of Ideas on Board, a company specialized in camera support for Linux. He currently leads the libcamera project he has started.", "public_name": "Laurent Pinchart", "guid": "06eabde2-519a-5c58-a0f6-fd12c74e403b", "url": "https://cfp.embedded-recipes.org/er2026/speaker/LXTDJW/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/8DPKWD/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/8DPKWD/", "attachments": []}, {"guid": "39c2ed16-8d67-5b1e-b932-ea0b99265701", "code": "YELFES", "id": 92267, "logo": null, "date": "2026-05-28T14:30:00+02:00", "start": "14:30", "duration": "00:15", "room": "Auditorium", "slug": "er2026-92267-inspect-your-camera-using-camshark", "url": "https://cfp.embedded-recipes.org/er2026/talk/YELFES/", "title": "Inspect your camera using camshark", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Cameras - especially the ones built out of a sensor connected to an embedded board - have a tendency to be hard to develop and debug. After the initial bringup and getting the core mechanics to work it is often time to look at actual images. Connecting external displays or opening single frames saved to the filesystem quickly becomes a tedious task.\r\n\r\nTime to introduce camshark, a tool that makes working on libcamera based cameras easier than ever. Camshark grew from an idea to a tool that is in daily use by many of the core libcamera developers. This talk will give an overview on the underlying concepts and show how camshark can be used for problem analysis and debugging of libcamera based cameras.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "KDEWHY", "name": "Stefan Klug", "avatar": "https://cfp.embedded-recipes.org/media/avatars/KRVP99_VxjuncJ.webp", "biography": "Stefan Klug is a hacker, maker and tinkerer. He has been developing imaging and graphics related software since more than 20 years. After working 10 years in various roles in the Machine Vision industry he joined Ideas on Board to improve the open source camera ecosystem.", "public_name": "Stefan Klug", "guid": "09f57b25-2341-5b64-bb5a-386d731726c4", "url": "https://cfp.embedded-recipes.org/er2026/speaker/KDEWHY/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/YELFES/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/YELFES/", "attachments": []}, {"guid": "e4aadf96-7342-5e90-8771-a4a33773d515", "code": "PDB3ZG", "id": 92245, "logo": null, "date": "2026-05-28T14:45:00+02:00", "start": "14:45", "duration": "00:40", "room": "Auditorium", "slug": "er2026-92245-real-time-networking-with-preemptrt", "url": "https://cfp.embedded-recipes.org/er2026/talk/PDB3ZG/", "title": "Real Time Networking with PREEMPT_RT", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Linux in combination with PREEMPT_RT is a popular operating system for embedded devices in real time environments and Time Sensitive Networks (TSN). Linux Real time networking applications range from industrial fieldbuses like PROFINET and Ethercat, Audio and Video Bridging (AVB) up to Automotive. Over the last years several networking technologies such TSN Qdiscs, XDP, zero-copy and busy polling have been added into the Linux kernel or improved for real time use cases. In this contribution we will show concepts and tools like the RTC-Testbench, evaluate what precision and performance as well as limitations and pitfalls can be expected when deploying Linux as operating system for these devices.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "U8MKJQ", "name": "Kurt Kanzenbach", "avatar": "https://cfp.embedded-recipes.org/media/avatars/BTA79D_e27rT2G.webp", "biography": "Kurt Kanzenbach studied Computer Science at Friedrich-Alexander University in Erlangen-Nuremberg. He is a embedded Linux engineer at Linutronix since 2016. There he is working on Linux based board support packages, real time networking as well as trainings and workshops. He was also involved in various TSN related research projects and is author and maintainer of the Linux RTC-Testbench.", "public_name": "Kurt Kanzenbach", "guid": "cdf970a6-f50d-5c28-ba9d-8f7d56378304", "url": "https://cfp.embedded-recipes.org/er2026/speaker/U8MKJQ/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/PDB3ZG/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/PDB3ZG/", "attachments": []}, {"guid": "13397063-2db5-5c6a-b6f2-faf87adeb53c", "code": "8D7H8V", "id": 92203, "logo": null, "date": "2026-05-28T15:30:00+02:00", "start": "15:30", "duration": "00:15", "room": "Auditorium", "slug": "er2026-92203-when-preemption-exposes-what-you-missed", "url": "https://cfp.embedded-recipes.org/er2026/talk/8D7H8V/", "title": "When Preemption exposes What You Missed", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Ethernet bring\u2011up on embedded hardware is supposed to be predictable: reset the PHY, bring up clocks, negotiate the link, and move on with your life. A routine kernel upgrade on an Arria 10 platform turned into an unexpectedly deep debugging journey through PHY reset sequencing, Ethernet CRC errors, and a behavior that only surfaced reliably with PREEMPT_RT.\r\n\r\nAlong the way, I\u2019ll introduce the basics of the Linux network stack as it applies to embedded devices: how drivers, PHYs, resets, and the kernel\u2019s initialization paths interact, and why ordering matters.\r\nWhat followed was a debugging journey that went much deeper than expected. The symptoms were loud -CRC errors, severe packet loss at boot, and a driver that only behaved after an unbind/rebind but the root cause was hiding behind assumptions we never realized we\u2019d made. The hardware, PHY, and DMA path all appeared to check out, leaving us to suspect something subtle in the initialization order.\r\n\r\nPREEMPT_RT made the failure reproducible, and that was the real clue. It forced us to revisit everything: PHY reset timing, misleading device\u2011tree reset names, and the subtle ways real\u2011time preemption changes how the kernel actually runs. A probe path that had always \u201cworked\u201d was only working because the non\u2011RT kernel had been quietly guaranteeing an execution order it never promised. This talk walks through the investigation, the wrong turns, and where things stand today. While we\u2019ve narrowed the problem to initialization ordering and reset handling, the full picture is still emerging - and the ongoing work highlights how PREEMPT_RT doesn\u2019t break your code, it just stops covering for it.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "UFZ9UY", "name": "Mamta Shukla", "avatar": "https://cfp.embedded-recipes.org/media/avatars/CAZSQH_99m2jsk.webp", "biography": "Mamta Shukla is an Embedded Software Engineer at Leica Geosystems[1]. She began her tech career as an Outreachy intern working on the Linux GPU subsystem and later was a Fellow at CERN. Mamta is passionate about open source and has contributed to U-Boot, Linux kernel[2]. She enjoys working on low-level systems and promoting FOSS. \r\n[1] https://www.linkedin.com/in/mamta-shukla/ [2] https://lore.kernel.org/all/?q=Mamta+Shukla", "public_name": "Mamta Shukla", "guid": "c455e3e0-1d78-523f-a3bf-bd5279acca00", "url": "https://cfp.embedded-recipes.org/er2026/speaker/UFZ9UY/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/8D7H8V/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/8D7H8V/", "attachments": []}, {"guid": "e7580dc5-cb15-51bc-a4a3-4c4eb895147d", "code": "7LYZUY", "id": 93086, "logo": null, "date": "2026-05-28T16:15:00+02:00", "start": "16:15", "duration": "00:40", "room": "Auditorium", "slug": "er2026-93086-four-npus-one-stack-zero-blobs-edge-ai-acceleration-in-mainline", "url": "https://cfp.embedded-recipes.org/er2026/talk/7LYZUY/", "title": "Four NPUs, One Stack, Zero Blobs: Edge AI Acceleration in Mainline", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "For years, utilizing hardware acceleration for machine learning at the edge meant being tethered to a vendor\u2019s Board Support Package (BSP): a world of stagnant kernels, proprietary binary blobs, and zero auditability. The companies that wanted to run a modern ML workload had to accept their outdated software or spend months fighting it, in both situations risking vendor lock-in.\r\n\r\nThat era is ending. Thanks to recent work in the Linux accel subsystem and Mesa, a truly open-source AI stack is now a reality. This talk goes over what is currently supported by the mainline stack and the existing four hardware drivers: Etnaviv (Vivante), Rocket (Rockchip), Ethos-U (Arm), and Thames (TI C7x). I will also explain what is missing and what is coming next.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "UJEVAG", "name": "Tomeu Vizoso", "avatar": "https://cfp.embedded-recipes.org/media/avatars/LBK8LS_iMxYH5G.webp", "biography": "Tomeu Vizoso is an independent consultant that has been working on FOSS since 2007, from kernel infrastructure to drivers and most parts of the desktop and consumer userspace stack.\r\n\r\nSince 2023 consults directly for companies that wish to enable machine-learning workloads with mainline.", "public_name": "Tomeu Vizoso", "guid": "9e443bf4-f69e-5d85-8294-5a7af66aeb2f", "url": "https://cfp.embedded-recipes.org/er2026/speaker/UJEVAG/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/7LYZUY/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/7LYZUY/", "attachments": []}, {"guid": "b4e23689-0ee6-5b36-86bf-64b871f26015", "code": "GMVQHM", "id": 92314, "logo": null, "date": "2026-05-28T17:00:00+02:00", "start": "17:00", "duration": "00:15", "room": "Auditorium", "slug": "er2026-92314-matter-over-thread-taking-full-control-of-your-iot-gadgets", "url": "https://cfp.embedded-recipes.org/er2026/talk/GMVQHM/", "title": "Matter over Thread: Taking Full Control of Your IoT Gadgets", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Is it possible to build a custom IoT device that feels as polished as a\r\ncommercial product but remains entirely under your control? This talk explores a\r\npersonal quest to escape cloud-based ecosystems using Matter over Thread for\r\nlocal-only communication.\r\n\r\nWe will dive into the technical stack required to build your own gadgets\r\nusing Zephyr, or ESP SDK. You\u2019ll learn how to leverage the Matter standard to\r\nachieve seamless local control, avoid the Wi-Fi clutter with Thread and achieve\r\nimpressive battery life. Lessons learned from integrating DIY sensors\r\nwith Home Assistant and existing IKEA hardware, proving that you don't have to\r\nchoose between customization and compatibility.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "AM9GX7", "name": "Stefan Schmidt", "avatar": "https://cfp.embedded-recipes.org/media/avatars/UNLR7R_EmKTEfH.webp", "biography": "Stefan Schmidt is a FOSS contributor for over 20 years. During this time he\r\nworked on different projects and layers of the Linux ecosystem. From\r\nbootloader and Kernel over build systems for embedded to user interfaces. He was\r\nserving as a technical steering committee member of OpenEmbedded during the\r\nmerge with the Yocto project, helped porting a 2.6 kernel to some early\r\nsmartphones, and was the release manager of the Enlightenment Foundation\r\nLibraries. He is also serving as co-maintainer of the Linux IEEE 802.15.4\r\nsubsystem for the last 12 years.\r\n\r\nAfter many years as a freelancer and long-time member of the Samsung Open Source\r\nGroup and Huawei Open Source Technology Center he joined Linaro.", "public_name": "Stefan Schmidt", "guid": "714b84d1-c458-5ab1-b6bf-4da3675410b4", "url": "https://cfp.embedded-recipes.org/er2026/speaker/AM9GX7/"}], "links": [], "feedback_url": "https://cfp.embedded-recipes.org/er2026/talk/GMVQHM/feedback/", "origin_url": "https://cfp.embedded-recipes.org/er2026/talk/GMVQHM/", "attachments": []}]}}]}}}