{"id":175,"date":"2021-01-20T23:09:37","date_gmt":"2021-01-20T22:09:37","guid":{"rendered":"https:\/\/threedots.ovh\/blog\/?p=175"},"modified":"2021-01-21T01:13:40","modified_gmt":"2021-01-21T00:13:40","slug":"linux-on-apple-silicon-macs-first-rfc-submission","status":"publish","type":"post","link":"https:\/\/threedots.ovh\/blog\/2021\/01\/linux-on-apple-silicon-macs-first-rfc-submission\/","title":{"rendered":"Linux on Apple Silicon Macs: first RFC submission"},"content":{"rendered":"\n<p>The first RFC got submitted to <a href=\"https:\/\/lkml.org\/lkml\/2021\/1\/20\/481\">upstream<\/a> to solicit comments about it.<\/p>\n\n\n\n<p>It&#8217;s quite minimal, only including the interrupt controller and secondary CPU startup drivers, with the core kernel changes needed to accommodate the hardware.<\/p>\n\n\n\n<p>Notably, it doesn&#8217;t include a UART driver. It isn&#8217;t ready for mainline inclusion yet. For technical reasons evaluated on iPhones years ago, the Samsung Exynos UART driver wasn&#8217;t used for Project Sandcastle. (it wasn&#8217;t submitted as part of the RFC notably to see if marcan would succeed at adapting the Samsung UART driver as part of the Asahi Linux project)<\/p>\n\n\n\n<p>The device tree isn&#8217;t submitted yet, because without a UART, it isn&#8217;t very useful either.<\/p>\n\n\n\n<p>So what does the Corellium (downstream) tree currently have as working?<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Apple AIC interrupt controller<\/li><li>Apple UART driver<\/li><li>SMP support<\/li><li>PMGR support (power gating)<\/li><li>DART support (Apple IOMMU)<\/li><li>GPIO<\/li><li>I2C<\/li><li>USB Type-C controller adaptation<\/li><li>USB (on the Type C ports only)<\/li><\/ul>\n\n\n\n<p>That&#8217;s still in an early stage, but enough to run desktop Ubuntu. When CPU re-clocking and PCIe support come, it might even start to get actual users at that stage.<\/p>\n\n\n\n<p>As a note, many of the devices on the SoC didn&#8217;t change from the programmers&#8217; perspective since a long time, including the UART, interrupt controller and I2C\/SPI controllers. <\/p>\n\n\n\n<p>This means that this work can potentially benefit older iPhones through checkra1n too. However, this is currently not a priority.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The first RFC got submitted to upstream to solicit comments about it. It&#8217;s quite minimal, only including the interrupt controller and secondary CPU startup drivers, with the core kernel changes needed to accommodate the hardware. Notably, it doesn&#8217;t include a UART driver. It isn&#8217;t ready for mainline inclusion yet. For technical reasons evaluated on iPhones&hellip;&nbsp;<a href=\"https:\/\/threedots.ovh\/blog\/2021\/01\/linux-on-apple-silicon-macs-first-rfc-submission\/\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">Linux on Apple Silicon Macs: first RFC submission<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-175","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/threedots.ovh\/blog\/wp-json\/wp\/v2\/posts\/175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/threedots.ovh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/threedots.ovh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/threedots.ovh\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/threedots.ovh\/blog\/wp-json\/wp\/v2\/comments?post=175"}],"version-history":[{"count":3,"href":"https:\/\/threedots.ovh\/blog\/wp-json\/wp\/v2\/posts\/175\/revisions"}],"predecessor-version":[{"id":179,"href":"https:\/\/threedots.ovh\/blog\/wp-json\/wp\/v2\/posts\/175\/revisions\/179"}],"wp:attachment":[{"href":"https:\/\/threedots.ovh\/blog\/wp-json\/wp\/v2\/media?parent=175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/threedots.ovh\/blog\/wp-json\/wp\/v2\/categories?post=175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/threedots.ovh\/blog\/wp-json\/wp\/v2\/tags?post=175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}