{"id":288941,"date":"2026-07-13T06:01:00","date_gmt":"2026-07-13T10:01:00","guid":{"rendered":"https:\/\/news-you-need.com\/index.php\/2026\/07\/13\/raspberry-pi-5-iommu-driver-being-worked-on-for-the-mainline-linux-kernel\/"},"modified":"2026-07-13T10:00:16","modified_gmt":"2026-07-13T14:00:16","slug":"raspberry-pi-5-iommu-driver-being-worked-on-for-the-mainline-linux-kernel","status":"publish","type":"post","link":"https:\/\/news-you-need.com\/index.php\/2026\/07\/13\/raspberry-pi-5-iommu-driver-being-worked-on-for-the-mainline-linux-kernel\/","title":{"rendered":"Raspberry Pi 5 IOMMU Driver Being Worked On For The Mainline Linux Kernel"},"content":{"rendered":"<p><a href=\"https:\/\/www.phoronix.com\/news\/Raspberry-Pi-5-IOMMU-Driver\">Raspberry Pi 5 IOMMU Driver Being Worked On For The Mainline Linux Kernel<\/a><\/p>\n<p><a href=\"https:\/\/www.phoronix.com\/news\/Raspberry-Pi-5-IOMMU-Driver\">https:\/\/www.phoronix.com\/news\/Raspberry-Pi-5-IOMMU-Driver<\/a><\/p>\n<p>Publish Date: <a href=\"publish_date]\">2026-07-13 06:01:00<\/a><\/p>\n<p>Source Domain: <a href=\"www.phoronix.com\">www.phoronix.com<\/a><\/p>\n<p>While the Raspberry Pi 5 is already over two and a half years old, one of the missing elements of its support from the mainline Linux kernel has been the IOMMU driver. We are now seeing Raspberry Pi&#8217;s downstream IOMMU driver being adapted for mainline with hopes of getting it into the upstream kernel.<\/p>\n<p>Open-source developer Daniel Drake has been working on the Broadcom BCM2712 IOMMU driver support as used by the Raspberry Pi. The driver is adapted from Raspberry Pi&#8217;s downstream driver but with various improvements as well as some more enhancements to still come.This IOMMU driver integration comes complete with wiring it up to the SBC&#8217;s display controller for efficient graphics memory management.<br \/>\n<\/p>\n<p align=\"center\"><img decoding=\"async\" src=\"https:\/\/www.phoronix.net\/image.php?id=raspberry-pi-5-16gb&#038;image=raspberrypi5_16gb_2_med\" alt=\"Raspberry Pi 5\"\/><\/p>\n<p>Drake explained in the patch series cover letter:<br \/>\n<br \/>&#8220;This series adds a driver for the Broadcom BCM2712 IOMMU found on Raspberry Pi 5, and hooks up the display controller IOMMU for efficient management of graphics memory. This is adapted from the downstream driver from Raspberry Pi (original author Nick Hollinghurst), with main changes:<\/p>\n<p>&#8211; Implement the page table management using generic_pt<br \/>\n<br \/>&#8211; Implement brcm,iova-window and brcm,iommu-cache as standards-compliant DT property names, while maintaining compatibility with existing shipped RPi firmware<br \/>\n<br \/>&#8211; Drop the dma-iova-offset hack, used to work around some issue seen with dma-ranges. This will need to be investigated separately and solved properly. (It&#8217;s not needed for display controller iommu support included here.)<br \/>\n<br \/>&#8211; Misc simplifications\/standardisations\/cleanups\n<\/p>\n<p>The IOMMU works strictly with 4KB pages. This means that unfortunately when the kernel is compiled with PAGE_SIZE=16KB (the Raspberry Pi 5 kernel default), 12KB is wasted in each page that is allocated for page tables. I plan to address this in followup work.\n<\/p>\n<p>It has been tested on Raspberry Pi 5 using a 3D-accelerated graphical environment which causes plenty of IOMMU maps &#038; unmaps.&#8221;<\/p>\n<p>The bcm2712-iommu driver is now undergoing code review for hopefully making it&#8230;<br \/>\n<br \/><a href=\"https:\/\/www.phoronix.com\/news\/Raspberry-Pi-5-IOMMU-Driver\">Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Raspberry Pi 5 IOMMU Driver Being Worked On For The Mainline Linux Kernel https:\/\/www.phoronix.com\/news\/Raspberry-Pi-5-IOMMU-Driver Publish&#8230;<\/p>\n","protected":false},"author":1,"featured_media":288942,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.phoronix.net\/image.php?id=raspberry-pi-5-16gb&image=raspberrypi5_16gb_2","fifu_image_alt":"","footnotes":""},"categories":[48],"tags":[71],"class_list":["post-288941","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","tag-linux"],"_links":{"self":[{"href":"https:\/\/news-you-need.com\/index.php\/wp-json\/wp\/v2\/posts\/288941"}],"collection":[{"href":"https:\/\/news-you-need.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/news-you-need.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/news-you-need.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/news-you-need.com\/index.php\/wp-json\/wp\/v2\/comments?post=288941"}],"version-history":[{"count":1,"href":"https:\/\/news-you-need.com\/index.php\/wp-json\/wp\/v2\/posts\/288941\/revisions"}],"predecessor-version":[{"id":288943,"href":"https:\/\/news-you-need.com\/index.php\/wp-json\/wp\/v2\/posts\/288941\/revisions\/288943"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/news-you-need.com\/index.php\/wp-json\/wp\/v2\/media\/288942"}],"wp:attachment":[{"href":"https:\/\/news-you-need.com\/index.php\/wp-json\/wp\/v2\/media?parent=288941"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/news-you-need.com\/index.php\/wp-json\/wp\/v2\/categories?post=288941"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/news-you-need.com\/index.php\/wp-json\/wp\/v2\/tags?post=288941"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}