device tree

Enabling Watchdog Timers on the Zynq Ultrascale+ MPSoC: Step by Step

Reading Time: 5 minutes Introduction Today’s Embedded systems have become quite complex, often containing multiple processors and software. As such, the risk of a system locking up becomes more of a concern. To that end, watchdog timer peripherals have become an integral part of these systems. A hardware watchdog timer is a type of timer that, once enabled, requires […]

Enabling Watchdog Timers on the Zynq Ultrascale+ MPSoC: Step by Step Read More »

Kernel Drivers vs. Userspace Drivers: A Guide for Embedded Linux Developers

Reading Time: 4 minutes Introduction In Embedded Linux projects, developers dedicate a substantial amount of time to managing external hardware interfaces. A common dilemma they face is deciding between developing a custom kernel driver (kernel module) or a userspace driver/application for a specific device. This decision can be intricate, as the optimal approach hinges on multiple factors. Making the

Kernel Drivers vs. Userspace Drivers: A Guide for Embedded Linux Developers Read More »

Demystifying PL-PS Interrupts and Device Tree Configuration on the Zynq UltraScale+

Reading Time: 3 minutes Introduction and Problem The AMD Zynq Ultrascale+ contains many available interrupt sources in its design. Most notably, are the interrupt channels available between the PL (Programmable Logic / FPGA) and the PS (processing system). This enables FPGA IP within the device to trigger interrupts in software. Although this high-level concept is relatively simple, the intricate

Demystifying PL-PS Interrupts and Device Tree Configuration on the Zynq UltraScale+ Read More »