Notes on the new XNU source release

Yet another one… and this time in buildable form on Apple M1 devices. (tarball at https://opensource.apple.com/tarballs/xnu/xnu-7195.81.3.tar.gz) What are the Apple CPU extensions not supported though on the OSS codebase? Turns out that the answer is almost all of them. A non exhaustive list: APRR (was explicitly removed for this release): permission removal mechanism, notably used… Continue reading Notes on the new XNU source release

New XNU source release

A new XNU release appeared at: https://opensource.apple.com/tarballs/xnu/xnu-7195.60.75.tar.gz. What’s not there: Tunables for Apple Firestorm/Icestorm. Hypervisor support for Apple Silicon-based Macs doesn’t seem to be there and Rosetta support …and some parts of the source code. AMX support is not present either The shiny new things: Apart from tunables, support for A14/M1. Look at the SETUP… Continue reading New XNU source release

Linux on Apple Silicon Macs: first RFC submission

The first RFC got submitted to upstream to solicit comments about it. It’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’t include a UART driver. It isn’t ready for mainline inclusion yet. For technical reasons evaluated on iPhones… Continue reading Linux on Apple Silicon Macs: first RFC submission

A look at Windows 10X on Arm

From a quick look at Windows 10X build 20279 (fe_release_10x) on 64-bit Arm: No x86(_64) backwards compatibility for UWP apps Which brings us to the next point… Arm 32-bit compatibility is not only there but required, base applications such as the Microsoft Store rely on it. This also applies to 64-bit Arm Windows desktop SKUs.… Continue reading A look at Windows 10X on Arm

Thoughts on Linux for Apple Silicon Macs: part 2

After iBoot, code execution is controlled by us. What should be used as a second stage after that though? One of the constraints is that servicing such a third-stage boot loader needs to go through macOS Recovery. That means that this stage is not easily serviceable. Running regular kernels would require an abstraction layer in… Continue reading Thoughts on Linux for Apple Silicon Macs: part 2

Thoughts on Linux for Apple Silicon Macs: part 1

For this part, one question is paramount, will flattened device tree or ACPI be used? or will Linux on Apple Silicon Macs use Apple device trees? This question is not devoid of consequences. Traditionally, Linux on PowerPC Macs directly parsed Apple device trees instead of a standardised format. For the Apple Silicon Macs, everyone currently… Continue reading Thoughts on Linux for Apple Silicon Macs: part 1

Disabling boot-time security: lines to not cross

Let’s assume that we are on a platform which actually allows to boot unsigned operating systems. What are the bad things that such a platform can have? The most ubiquitous issue is reminding the user at each boot that their device has a reduced security policy. Such a tamper-evident mechanism annoys users and is ineffective… Continue reading Disabling boot-time security: lines to not cross

Ghidra for Arm 64-bit Linux systems

Disclaimer: Note that those builds are provided without any warranty. Feel free to polish the patchset and submit it upstream, I don’t have the time for that right now. Ghidra 9.2.1 Linux AArch64 (built on Fedora 33): https://threedots.ovh/bubbles/ghidra_9.2.1_DEV_20210113_linuxarm64.zip Ghidra patchset: https://threedots.ovh/bubbles/ghidra_9.2.1_dev_20210113_diff.patch