soc/intel/xeon_sp/util: Enhance lock_pam0123
[coreboot2.git] / Documentation / mainboard / supermicro / x10slm-f.md
blob97c78d6c3b9d6fcf14f64c2ba1feaa5b762136b4
1 # Supermicro X10SLM+-F
3 This section details how to run coreboot on the [Supermicro X10SLM+-F].
5 ## Required proprietary blobs
7 ```eval_rst
8 Please see :doc:`../../northbridge/intel/haswell/mrc.bin`.
9 ```
11 ## Building coreboot
13 ```eval_rst
14 If you haven't already, build the coreboot toolchain as described in
15 :doc:`../../tutorial/part1`.
16 ```
18 A fully working image should be possible so long as you have the
19 Haswell `mrc.bin` file. You can set the basic config with the following
20 commands. However, it is strongly advised to use `make menuconfig`
21 afterwards (or instead), so that you can see all of the settings.
23 ```bash
24 make distclean # Note: this will remove your current config, if it exists.
25 touch .config
26 ./util/scripts/config --enable VENDOR_SUPERMICRO
27 ./util/scripts/config --enable BOARD_SUPERMICRO_X10SLM_PLUS_F
28 ./util/scripts/config --enable HAVE_MRC
29 make olddefconfig
30 ```
32 If you don't plan on using coreboot's serial console to collect logs,
33 you might want to disable it at this point (`./util/scripts/config
34 --disable CONSOLE_SERIAL`). It should reduce the boot time by several
35 seconds. However, a more flexible method is to change the console log
36 level from within an OS using `util/nvramtool`, or with the `nvramcui`
37 payload.
39 Now, run `make` to build the coreboot image.
41 ## Flashing coreboot
43 ```eval_rst
44 In addition to the information here, please see the
45 :doc:`../../tutorial/flashing_firmware/index`.
46 ```
48 ### Internal programming
50 Under the vendor firmware, the BIOS region of the flash chip is
51 write-protected. Additionally, the vendor flashing tool does not work
52 with a coreboot image. So, [external programming](#external-programming)
53 needs to be used when first installing coreboot. By default, coreboot is
54 not configured to write-protect the BIOS region, so internal programming
55 can be used thereafter.
57 [flashrom] may be used to flash coreboot internally:
59 ```bash
60 sudo flashrom -p internal --ifd -i bios --noverify-all -w coreboot.rom
61 ```
63 The use of `--noverify-all` is required since the Management Engine
64 region is not readable even by the host.
66 ### External programming
68 The main firmware flash chip is an SOIC-8 package located near the CMOS
69 battery and SATA ports. It should come with a sticker attached that
70 states the firmware revision (e.g. "X10SLH 4.424"). The chip model is
71 an N25Q128A ([datasheet][N25Q128A]).
73 As with [internal programming](#internal-programming), [flashrom] works
74 reliably:
76 ```bash
77 flashrom -p <your-programmer> --ifd -i bios -w coreboot.rom
78 ```
80 For flashing to work, power to the board should be disconnected (ACPI
81 G3), and power should be supplied from the external programmer. There is
82 a diode attached to Vcc, so such flashing should not damage the board.
83 During testing, a single X10SLM+-F has been flashed dozens of times this
84 way without issue.
86 ## BMC (IPMI)
88 This board has an ASPEED [AST2400], which has BMC functionality. The
89 BMC firmware resides in a 32 MiB SOIC-16 chip just above the [AST2400].
90 This chip is an MX25L25635F ([datasheet][MX25L25635F]).
92 ### Removing the BMC functionality
94 The BMC functionality on this board can be removed. If you do not need
95 its features, removing the BMC functionality might increase security.
96 This topic has not been widely explored, and you should only **undertake
97 this process at your own risk.**
99 There is a jumper labelled `JPB1` on the board that states the ability
100 to disable the BMC. Though, pins 1 and 2 are fixed together, keeping
101 the BMC enabled. It might be possible to disable the BMC by cutting the
102 connection between pins 1 and 2 (and then connecting pins 2 and 3). This
103 has not been tested so far.
105 Another approach is to erase the entire BMC firmware chip. However, if
106 this is done, and the board's power cycled, the voltage changes on some
107 pins of the flash chip, **so it will be harder to flash it again!**
109 To remove the firmware, connect an external programmer to the BMC
110 firmware chip. Vcc should **not** be connected via the external
111 programmer. The system should be turned off, but the power still
112 connected (ACPI S5). Then, erase the chip with [flashrom]. Power cycle
113 the board, and the BMC should no longer be active.
115 If you erase the BMC firmware while using the **vendor BIOS**, you
116 will need to cut the connection between pins 1 and 2 of `JPB1`. The
117 system will stall for two minutes each time when booting, but it will
118 eventually start. There is no such delay when running coreboot.
120 ## ECC DRAM
122 ```eval_rst
123 ECC DRAM seems to work, but please see
124 :doc:`../../northbridge/intel/haswell/mrc.bin`
125 for caveats.
128 ## Known issues
130 - Broadwell CPUs are not supported. They might work with minimal changes
131   to the code, but this has not been tested.
133 - The PCH thermal sensor doesn't yet have a driver in coreboot, so it
134   can't be used for temperature readings.
136 - There is no automatic, OS-independent fan control. This is because
137   the Super I/O hardware monitor can only obtain valid CPU temperature
138   readings from the PECI agent, but the required driver doesn't exist
139   in coreboot. The `coretemp` driver can still be used for accurate CPU
140   temperature readings from an OS, and hence the OS can do fan control.
142 ```eval_rst
143 Please also see :doc:`../../northbridge/intel/haswell/known-issues`.
146 ## Untested
148 - TPM
149 - PCIe (likely to work, but maybe not at Gen 3 speeds)
150 - BMC (IPMI) functionality
151 - internal serial port
152 - chassis intrusion header
153 - SATA DOM header
154 - standby power header
155 - serial GPIO headers
156 - power supply SMBus header
157 - jumpers not otherwise mentioned
158 - LEDs
160 ## Working
162 - USB
163 - S3 suspend/resume
164 - Gigabit Ethernet
165 - SATA
166 - external serial port
167 - VGA graphics
168 - disabling VGA graphics using the jumper
169 - hiding the AST2400 using the CMOS setting
170 - Super I/O hardware monitor (see [Known issues](#known-issues))
171 - initialisation with Haswell MRC version 1.6.1 build 2
172 - flashrom under coreboot
173 - Wake-on-LAN
174 - front panel header
175 - internal buzzer
177 ## Technology
179 ```eval_rst
180 +------------------+--------------------------------------------------+
181 | CPU              | :doc:`../../northbridge/intel/haswell/index`     |
182 +------------------+--------------------------------------------------+
183 | PCH              | Intel Lynx Point (C224)                          |
184 +------------------+--------------------------------------------------+
185 | Super I/O        | Nuvoton NCT6776                                  |
186 +------------------+--------------------------------------------------+
187 | Coprocessor      | Intel SPS (server version of the ME)             |
188 +------------------+--------------------------------------------------+
189 | Coprocessor      | ASPEED AST2400                                   |
190 +------------------+--------------------------------------------------+
193 ## Extra links
195 - [Board manual]
197 [AST2400]: https://www.aspeedtech.com/products.php?fPath=20&rId=376
198 [Board manual]: https://www.supermicro.com/manuals/motherboard/C224/MNL-1500.pdf
199 [flashrom]: https://flashrom.org/Flashrom
200 [MX25L25635F]: https://media.digikey.com/pdf/Data%20Sheets/Macronix/MX25L25635F.pdf
201 [N25Q128A]: https://www.micron.com/~/media/Documents/Products/Data%20Sheet/NOR%20Flash/Serial%20NOR/N25Q/n25q_128mb_3v_65nm.pdf
202 [Supermicro X10SLM+-F]: https://www.supermicro.com/products/motherboard/xeon/c220/x10slm_-f.cfm