Staff Embedded Firmware & System Software Engineer — Platform Controller and SoC Stack
TYLsemi · 4 days ago
About the role
We are building the software stack that runs on next-generation silicon. Based on Zephyr-platform management controller responsible for secure boot, system software on the application processor — bootloader, kernel drivers, PCIe subsystem, and IOMMU configuration — that turns raw silicon into a platform an operating system can run on.
What you’ll do
Firmware and platform control
-
Design, implement, and maintain Zephyr RTOS firmware for a platform management controllers, including device drivers, subsystem integration, and application-level services.
-
Write and upstream-quality-review drivers against Zephyr's driver model — devicetree bindings, Kconfig, init levels and priorities, struct device APIs.
System software and high-speed interconnect
-
Bring up and debug PCIe links on first silicon — LTSSM progression, link training failures, lane reversal and polarity, equalization, speed and width negotiation.
-
Implement and maintain PCIe host controller and endpoint drivers: enumeration, configuration space, BAR allocation, MSI/MSI-X interrupt routing, AER and error handling, ASPM and link power states.
-
Configure and validate IOMMU behavior — address translation, DMA remapping, device isolation domains, page-table management, fault reporting and recovery.
-
Develop system software across the boot and runtime path: bootloader, firmware-to-OS handoff, ACPI or device tree description, kernel drivers, and the DMA and memory-management interfaces they depend on.
-
Debug DMA correctness and coherency problems end to end, from device transaction through translation to system memory.
Silicon and process
-
Perform post-silicon bring-up: first-boot debug, clock and reset validation, bus enumeration, triage of RTL-versus-firmware ambiguity with design teams.
-
Debug hard problems using JTAG/SWD, ETM/ITM trace, protocol analyzers, and logic analyzers — including intermittent, timing-dependent, and multi-master failures.
Required qualifications
-
8–10 years of professional embedded firmware and/or system software development in C, with meaningful exposure to modern C++ or Rust.
-
Deep, hands-on RTOS experience on 32-bit microcontrollers (Arm Cortex-M or RISCV) scheduling, priority assignment, ISR design, synchronization primitives, and the failure modes each one produces.
-
Proven driver development experience against a formal driver model, including bus drivers and interrupt-driven peripherals.
-
System software fundamentals: virtual memory and address translation, DMA and cache coherency, the kernel/users pace boundary, and how a platform gets from reset vector to a running OS.
-
Working knowledge of PCIe architecture — enumeration, configuration space, BARs, MSI/MSI-X, and the transaction model — sufficient to debug why a device is not appearing or not moving data.
-
Understanding of what an IOMMU is for and what it costs: translation, isolation, and the DMA failure modes that appear when it is misconfigured.
-
Demonstrated ability to read a hardware specification or register map and translate it into correct, testable software without handholding.
-
Applied AI/ML knowledge — Strong AI based coding.
-
BS or MS in Electrical Engineering, Computer Engineering, Computer Science, or equivalent practical experience.
Preferred qualifications
Strong candidates will have direct experience with several or some of the following.
· PCIe and interconnect
· IOMMU and virtualization
· System software
· RTOS and platform
· Peripherals and subsystems
