xref: /aosp_15_r20/external/coreboot/Documentation/tutorial/flashing_firmware/ext_standalone.md (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1# Flashing firmware standalone
2
3If none of the other methods work, there are three possibilities:
4
5## Desolder
6You must remove or desolder the flash IC before you can flash it.
7It's recommended to solder a socket in place of the flash IC.
8
9When flashing the IC, always connect all input pins.
10If in doubt, pull /WP, /HOLD, /RESET and alike up towards Vcc.
11
12## SPI flash emulator
13If you are a developer, you might want to use an [EM100Pro] instead, which sets
14the onboard flash on hold, and allows to run custom firmware.
15It provides a very fast development cycle without actually writing to flash.
16
17## SPI flash overwrite
18It is possible to set the onboard flash on hold and use another flash chip.
19Connect all lines one-to-one, except /HOLD. Pull /HOLD of the soldered flash IC
20low, and /HOLD of your replacement flash IC high.
21
22### SPI header
23Some boards feature a pin header which is connected to the SPI bus. This can
24also be used to connect a secondary flash chip.
25
26#### HP boards
27Many HP desktop mainboards have a 2x8 or 2x10 block of header pins which
28can be used to connect a second flash chip. One pin is connected to the
29onboard flash's /CS pin, and another is connected to the chipset's /CS
30pin. Normally a jumper cap is placed between these pins, allowing the
31chipset to access the onboard flash. To use this header, remove this
32jumper and connect all lines except /CS one-to-one with the
33corresponding pin on the header. The secondary flash chip's /CS line
34should be connected to the chipset /CS pin on the header. By doing this
35the secondary SPI flash, rather than the onboard flash, will respond to
36accesses from the chipset.
37
38![][hp_spi_header_pinout]
39
40![][hp_spi_header_mainboard]
41
42Note that on boards where this header is unpopulated, a jumper resistor
43will be populated nearby which serves the purpose of the jumper cap. One
44end should have continuity with the /CS pin on the flash, and the other
45end should have continuity with the chipset /CS pin on the unpopulated
46header. It may also be possible to find this resistor through visual
47inspection of the traces on the /CS pins. This resistor should be
48desoldered if you wish to solder a pin header to the board and connect a
49secondary flash, otherwise the onboard flash will always respond to
50accesses.
51
52#### Other boards
53Other boards may have similar headers, but will likely use a different
54pinout than the ones explicitly mentioned here. Usually such a header
55will be located near the onboard SPI flash. If schematics are available,
56the pinout for the header will likely be found in it, but it could also
57be determined using a multimeter in continuity mode to map out the
58connections between the SPI flash and the header.
59
60
61[EM100Pro]: https://www.dediprog.com/product/EM100Pro
62[hp_spi_header_pinout]: hp_spi_header.svg
63[hp_spi_header_mainboard]: hp_spi_header_mb.jpg
64