Project Findings and Conclusions

August 4th, 2025

Introduction

This project was inspired by ch1p's article about coreboot support on macbooks. After i acquired 2 different macbooks that both had an unsupported memory configuration, i was interested in making it a project to support all (or most at least) memory configurations on the Macbook Air 4,2, Macbook Air 5,2 and Macbook Pro 10,1.

Macbooks

This seemed like a realistic goal at the time. As i was already 2 for 2 with finding unsupported models (1 Macbook Air 5,2 and 1 Macbook Pro 10,1) and looking at Apple's documentation, at least the Macbook Pro 10,1 still had many more unsupported configurations. In practice this turned out to be somewhat different.

This piece will go into detail of memory configurations of the apple macbooks in coreboot. It is recommended to read Memory, SPD and Coreboot on Intel Macbooks and ch1p's blogpost on coreboot macbook support first to understand the material mentioned and referenced.

Macbook Air 4,2

This was the first Macbook Air supported by coreboot. The original port only had support for the Samsung 4GB chips. Although the port never checked for the GPIO values since only one SPD configuration was included and the port would always fall back on that. In my search for different configurations i would always find the Samsung 4GB version (with GPIO 1 0 0 1 value or hex 0x00000f60). It is probable that there is at least 1 different configuration out there that comes with a total of 2GB of ram and could have a different SPD (but may not), but both I7 and I5 4GB models had the Samsung 4GB chips with the same GPIO values and SPD configuration. Either Apple never released a 4GB model with different chips and/or SPD or they are very rare (at least in europe). According to Apple's documentation, there are 5 other configurations out there. But at this point they are theoretical and may even use the same SPD, making them already supported.

Macbook Air 5,2

The Macbook Air 5,2 already has 4 different memory configurations/chips supported although the weird thing is the SPD configs are the same between brands of memory chips. For example the Hynix 8GB chips and the Samsung 4GB use the exact same spd.bin, which in my findings was the only SPD used for 8GB models. The same goes for the 4GB Hynix and 4GB Micron chips that use the same spd.bin, which in my findings was the only SPD used for 4GB models. So in total 2 different SPD configs for 4 different chips. Although it has not been checked if the hardware may be mislabeled. It is something we are going to see in other models too. According to Apple's documentation there are 3 more different configurations out there, including 2 using elpida chips. At this point they have not been found and it's always possible apple never used them in their production machines. See early_init.c and the files in /spd/ in this coreboot patch to see the memory module configuration and SPDs for this model.

Macbook Pro 10,1

According to Apple this model had the most different Memory module configurations, 15 to be exact. It should have been easy to find different models. There are many different CPU's used in this model (I7-3615QM, I7-3720QM, I7-3820QM, I7-3635QM, I7-3740QM and I7-3840QM) all paired with either 8GB or 16GB of ram. Also they were produced both in mid-2012 and early-2013, so there may have been differences in them as well.

When this project started only 4 out of the 15 in apple's documentation were supported. In my search towards the different memory module configuration i went out to seek models with different cpu's, different amount of ram and both models from mid-2012 and early-2013. I thought this would give me the best chance to find the different configurations.

To my dissapointment, every single one i came accross had an already supported memory configuration. The 8GB models were always the 2G Hynix 1600 chips, while the 16GB models always had either the 4G Hynix 1600 chips or 2G Samsung 1333 chips, which for some reason have the exact same SPD configuration. Suspecting again they could actually be the same chips but mislabeled by Apple's documentation. See early_init.c and the files in /spd/ in this coreboot patch to see the memory module configuration and SPDs for this model.

Conclusions

While the results of this project are somewhat disappointing, it does have some interesting possible conclusions. There may be fewer memory configurations for these models than initially thought OR Apple used different chips for different regions. Overlapping SPD configurations for seemingly very different memory modules is very interesting and may be a sign that the chips used were not so different after all. These are things we will find out now that these Macbooks will be merged into Libreboot and can be internally flashed by a wider audience. The installation guide still highly recommends to check if the model is supported with inteltool. We will see if there are going to be user reports of unsupported configurations, but with the findings so far it seems that the most common configurations are supported.

nlnet

Contact information

You can contact mlp [at] privm.org for any questions regarding this project.

This project is funded by nlnet and NGI0 Entrust. Project page.