diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index e1a3126..1614ca5 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -3,76 +3,29 @@ title: Insert vendor files on Sandybridge/Ivybridge/Haswell x-toc-enable: true ... -**NOTE: This page also applies to PM45 machine Dell Latitude E6400 if it -contains an Nvidia GPU (Libreboot vendor scripts can insert the VGA ROM)** - -This is not a general purpose installation guide, but you *should read it* -before installing Libreboot! *This* guide *must* be followed, no matter what -method you use to install Libreboot; even if you compile from source, you should -still read this page for later reference. - -For how to use an external programmer see the [25xx NOR flashing guide](/docs/install/spi.html) - -Introduction -============ - -**PLEASE MAKE SURE you have build dependencies installed first. Although you -do not need to re-compile release ROMs, you should follow these instructions -before reading the instructions below: -** +Please make sure to install [build dependencies](../build/) if following this +guide, and note that this guide assumes you use [lbmk.git](../git.md), not the +release archives, even if you're using release *ROM images*, which is fine. Coreboot is nominally free software, but requires certain vendor code on some boards, for certain functionalities; we cover this more thoroughly in the [Freedom Status](../../freedom-status.md) page and in the [Binary Blob Reduction Policy](../../news/policy.md). -Well, not all of these files are freely redistributable. Coreboot does provide -vendor files in some cases, if the vendor has allowed it. In other cases, -extraction from factory firmware is required, or you can extract them from -vendor-supplied updates - Libreboot's build system does the latter. +Therefore, you should just follow this guide if in any doubt. Otherwise, the +freedom status page lists all boards that require vendor files, and it says +what they are. This is because Libreboot cannot directly distribute some of them, +but they are extracted from vendor updates at build time, and inserted into +images; when those images are then archived for release, the non-redistributable +filejs are removed. -When you [compile Libreboot ROM images from source](../build/), Libreboot will -automatically download any given files that are required, for any given board -target. This is done without user intervention, and only when absolutely needed -to make the machine boot properly. +The same logic can be used after the fact, to re-download and re-insert these +files; the page that you're reading now will tell you how to do so. -The problem? ------------- - -Well, if the files cannot be freely redistributed, then we can't provide them. -So how do we handle *that*, in the context of Libreboot releases? - -The solution ------------- - -The answer is very simple: these files are **NOT** provided, at all! However, -the very same logic used by the build system can be run standalone, to re-insert -these vendor files on release ROMs. The `inject` script detects what files are -needed for your ROM image. - -The script will detect what board you're inserting on, or you can manually tell -it what board, and it will fetch them for you, inserting them, so that your -board is ready to flash - flashing it without these required files may result in -a brick. - -Vendor file locations --------------- - -During auto-download of files, they are saved to these locations within the -Libreboot build system: - -* ME firmware: `vendor/*/me.bin` - the `*` can be any given directory. Different ones will - be used by given boards, but the directory name may not match the board - target name. -* SMSC SCH5545 fan control firmware (for Dell T1650): `vendor/t1650/sch5545ec.bin` - - ditto 9010/7010 MT/SFF optiplex machines. -* SMSC KBC1126 embedded controller firmware, on HP EliteBooks: `ec/` -* Intel MRC firmware, provides raminit on HP EliteBook 820 G2 - -The above list refers to the *non-redistributable files*, and these are not -directly included in releases. These are auto-downloaded during the build. -The `me.bin` files are produced by extracting them from vendor updates and -neutering them with `me_cleaner` so that Intel ME is disabled during early boot. +*If in doubt, just follow these instructions anyway; if your board doesn't need +vendor files inserted, nothing will happen. You only need to follow this guide +if you use release ROMs; if you're building directly from source, using the +Libreboot build system, then you can just flash the result.* Injecting vendor files into ROM ------------------------------------