You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit fc4b7fd
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: 2026/08/progress-report-7-2/index.html
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -92,7 +92,7 @@ <h1 class=entry-title>Progress Report: Linux 7.2</h1><ul class=blog-nav>
92
92
bits in mBoot and then locks down the registers controlling them starting with the M4 series.
93
93
This makes our life a little easier as m1n1 now has marginally less work to do, however it also
94
94
means that we cannot fine tune low level CPU behaviour. This is an issue on M4 particularly, as
95
-
calling WFI causes the core to lose its state and crash whatever was running on it.</p><p>Yurkea noticed this while doing M4 bringup work, and added a kernel command line parameter
95
+
calling WFI causes the core to lose its state and crash whatever was running on it.</p><p>Yureka noticed this while doing M4 bringup work, and added a kernel command line parameter
96
96
to make idle loop behaviour configurable. The parameter allows us to tell the kernel how
97
97
it should park cores in idle loops, including by doing a basic no-op loop. This prevents
98
98
M4 machines from crashing during early kernel initialisation, before our cpuidle driver
@@ -113,7 +113,7 @@ <h1 class=entry-title>Progress Report: Linux 7.2</h1><ul class=blog-nav>
113
113
behind an IOMMU. Nothing in macOS userspace nor in XNU can reach it, except via a defined
114
114
set of IPC functions. Taking inspiration from this approach, PPL eventually morphed into
115
115
SPTM. SPTM takes PPL and places it inside Apple’s Guarded Execution Framework (GXF), a set
116
-
of Exception Levels that run parallel to the standard ARM64 EL1 and EL2 (there is no GL0).
116
+
of Exception Levels that run parallel to the standard ARM64 Exception Levels.
117
117
GXF also comes with SPRR, a custom pagetable permissions system used when the CPU is running
118
118
code in GL1 or GL2.</p><p>When a modern Apple Silicon device starts up, iBoot or mBoot will detect if the configured
119
119
boot payload is an XNU image. If it is, it will first load SPTM into GL2. There, SPTM
@@ -206,7 +206,7 @@ <h1 class=entry-title>Progress Report: Linux 7.2</h1><ul class=blog-nav>
206
206
mode, and any compression applied to it. If they cannot agree on this, copies and conversions
207
207
must be done in software.</p><p>One might be inclined to ask why such “shared” framebuffers can’t just be created
208
208
with “raw” pixel data. Consider a 1920x1080 framebuffer containing raw 8-bit ARGB
209
-
pixel data. That is just over 66 MiB of data. At 4K, this balloons to just under 214 MiB.
209
+
pixel data. That is around 8 MiB of data. At 4K, this balloons to just under 32 MiB.
210
210
Even without the added penalty of copies, reading and writing this much data at 30,
211
211
60, 165, or even 240 frames per second is an <em>enormous</em> strain on the memory bus and therefore
212
212
an enormous power drain. Even if we somehow had an infinitely performant and efficient
0 commit comments