Documentation/nb/intel: Add Haswell documentation
At the moment, this just gives some details on the MRC.
Signed-off-by: Tristan Corrick <firstname.lastname@example.org>
Tested-by: build bot (Jenkins) <email@example.com>
Reviewed-by: Nico Huber <firstname.lastname@example.org>
diff --git a/Documentation/mainboard/asrock/h81m-hds.md b/Documentation/mainboard/asrock/h81m-hds.md
index 0338aa1..460af8f 100644
@@ -4,24 +4,10 @@
## Required proprietary blobs
-This board currently requires a proprietary blob in order to initialise
-the RAM and a few other components. The blob largely consists of Intel's
-Memory Reference Code (shortened to mrc), and is just under 200 KiB
-in size. It is also known as a system agent binary. Unfortunately,
-it is not currently possible to distribute this as part of coreboot.
-However, the mrc can be obtained from a Haswell Chromebook firmware
-image, and you might find one online. The mrc from a ChromeOS image can
-be extracted with the following command. If extracting from a "standard"
-coreboot image, omit `-r RO_SECTION`.
-cbfstool coreboot.rom extract -f mrc.bin -n mrc.bin -r RO_SECTION
+Please see :doc:`../../northbridge/intel/haswell/mrc.bin`.
-Now, place mrc.bin in the root of the coreboot directory.
-Alternatively, place it anywhere you want, and set `MRC_FILE` to its
-location when building coreboot.
## Building coreboot
A fully working image should be possible just by setting your MAC
diff --git a/Documentation/northbridge/intel/haswell/index.md b/Documentation/northbridge/intel/haswell/index.md
new file mode 100644
@@ -0,0 +1,8 @@
+# Intel Haswell documentation
+This section describes the Intel Haswell architecture as it relates to
+## Proprietary blobs
diff --git a/Documentation/northbridge/intel/haswell/mrc.bin.md b/Documentation/northbridge/intel/haswell/mrc.bin.md
new file mode 100644
@@ -0,0 +1,35 @@
+All Haswell boards supported by coreboot currently require a proprietary
+blob in order to initialise the DRAM and a few other components. The
+blob, named `mrc.bin`, largely consists of Intel's memory reference code
+(MRC), but it has been tailored specifically for Chrome OS. It is just
+under 200 KiB in size. Another name for `mrc.bin` is the system agent
+Having a replacement for `mrc.bin` using native coreboot code is very
+much desired, but it is not an easy task.
+## Obtaining mrc.bin
+Unfortunately, it is not currently possible to distribute `mrc.bin` as
+part of coreboot. Though, it can be obtained from a Haswell Chromebook
+or Chromebox firmware image, and you might find one online. `mrc.bin`
+can be extracted with the following command. If extracting from a
+"standard" coreboot image, omit `-r RO_SECTION`.
+cbfstool coreboot.rom extract -f mrc.bin -n mrc.bin -r RO_SECTION
+Now, place `mrc.bin` in the root of the coreboot directory.
+Alternatively, place `mrc.bin` anywhere you want, and set `MRC_FILE` to
+its location when building coreboot.
+## ECC DRAM
+When `mrc.bin` has finished executing, ECC is active on the channels
+populated with ECC DIMMs. However, `mrc.bin` was tailored specifically
+for Haswell Chromebooks and Chomeboxes, none of which support ECC DRAM.
+While ECC likely functions correctly, it is advised to further validate
+the correct operation of ECC if data integrity is absolutely critical.
diff --git a/Documentation/northbridge/intel/index.md b/Documentation/northbridge/intel/index.md
index 6cca1da..da7634b 100644
@@ -4,4 +4,5 @@
- [Sandy Bridge](sandybridge/index.md)