summaryrefslogtreecommitdiff
path: root/Documentation/mainboard/apple/macbookpro10_1.md
blob: b27e887b853d1a575a1ba5185f3098fd8446199a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# Apple MacBook Pro 10,1

This page describes how to run coreboot on MacBook Pro 10,1, also known
as 15'' Mid 2012/Early 2013 with Retina Display.

```eval_rst
+-------------+-------------+
| Model No.   | Motherboard |
+=============+=============+
| A1398       | 820-3332    |
+-------------+-------------+
```

## RAM configuration

This laptop comes with 15 different memory module configurations. Not all of
them are supported at the moment. To determine which configuration you have in
your MacBook Pro 10,1, you can use inteltool and
[this script](https://github.com/gch1p/get_macbook_ramcfg). You need to run them
on the target machine.

First, build inteltool:
```console
$ cd util/inteltool
$ make -j4
```

Download the script and make it executable. Then run:
```console
sudo ./inteltool -g | /path/to/get_macbook_ramcfg -m mbp101
```

You should get a name of RAM configuration installed in your MacBook. Use the
table below to determine if it's supported.

```eval_rst
+-------------------+-----------+
| RAM configuration | Supported |
+===================+===========+
| 4g_hynix_1600s    | No        |
+-------------------+-----------+
| 1g_samsung_1600   | No        |
+-------------------+-----------+
| 4g_samsung_1600s  | No        |
+-------------------+-----------+
| 1g_hynix_1600     | No        |
+-------------------+-----------+
| 4g_elpida_1600s   | No        |
+-------------------+-----------+
| 2g_samsung_1600   | No        |
+-------------------+-----------+
| 2g_samsung_1333   | No        |
+-------------------+-----------+
| 2g_hynix_1600     | **Yes**   |
+-------------------+-----------+
| 4g_samsung_1600   | No        |
+-------------------+-----------+
| 4g_hynix_1600     | **Yes**   |
+-------------------+-----------+
| 2g_elpida_1600s   | No        |
+-------------------+-----------+
| 2g_elpida_1600    | No        |
+-------------------+-----------+
| 4g_elpida_1600    | No        |
+-------------------+-----------+
| 2g_samsung_1600s  | No        |
+-------------------+-----------+
| 2g_hynix_1600s    | No        |
+-------------------+-----------+
```

If your RAM configuration is not supported, you can help supporting it. Run
`sudo inteltool -m`, save output to a text file and send a message to coreboot
[mailing list](/community/forums.html) specifying your memory configuration name
with the text file attached.

## Flashing instructions

The board has one 8 MiB Macronix flash chip. To access the chip, you need to
remove the back cover.

![](mbp101_board.jpg)

The flash layout of the OEM firmware is as follows:

    00000000:00000fff fd
    00190000:007fffff bios
    00001000:0018ffff me

## Working

- Some memory configurations (see above)
- libgfxinit
- VGA ROM loading
- Integrated GPU
- Discrete GPU
- SeaBIOS, GRUB, TianoCore
- Linux 4.9, Linux 5.8
- Wi-Fi
- Both USB ports
- Trackpad
- me_cleaner
- Integrated/Discrete graphics selection via nvramtool
- Camera
- Mic
- SD card reader
- Speaker
- usbdebug (the usb port on the right side)
- Backlight control via gmux (/sys/class/backlight/gmux_backlight),
  works out of box on Ubuntu 20.04

## Untested

- Thunderbolt
- FireWire

## TODOs
- Support other memory configurations