Engineering blog
Kernel & Drivers
Operating-system kernels, device drivers, buses and the bugs that live between them.
-
Bringing an OS up on Raspberry Pi 5: what the RP1, PCIe and the GIC demand from your kernel
Notes from an ARM64 kernel bring-up on the Raspberry Pi 5: almost every peripheral sits behind a PCIe link, DMA is not coherent with the CPU caches, MSIs go through the GIC ITS, secondary…
-
ARM64 SMP bugs are memory-ordering bugs until proven otherwise
Code that ran for years on x86 falls over one boot in fifty on a four-core Cortex-A76. The six patterns behind almost every such failure we have chased, the barriers that fix them, and…
-
Where the packets per second go: SDIO Wi-Fi throughput on a Broadcom CYW43455
A Wi-Fi link that tops out around one megabit with an idle CPU is not a radio problem. Six host-side causes, from missing receive glomming to a byte-mode CMD53 bug, and how to count…
-
Porting device drivers between Linux and Windows: what actually changes
The hardware does not care which kernel is driving it. Everything else does: request models, interrupt contexts, IRQL versus atomic context, DMA mapping, power management and how a driver reaches users. A side-by-side map…