<p>Tristan Corrick has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/c/coreboot/+/30356">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Documentation/nb/intel: Add Haswell documentation<br><br>At the moment, this just gives some details on the MRC.<br><br>Change-Id: I84e8ca2543b2e19b84a24f7d7032a4aedb6e9272<br>Signed-off-by: Tristan Corrick <tristan@corrick.kiwi><br>---<br>M Documentation/mainboard/asrock/h81m-hds.md<br>A Documentation/northbridge/intel/haswell/index.md<br>A Documentation/northbridge/intel/haswell/mrc.bin.md<br>M Documentation/northbridge/intel/index.md<br>4 files changed, 46 insertions(+), 16 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/56/30356/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/Documentation/mainboard/asrock/h81m-hds.md b/Documentation/mainboard/asrock/h81m-hds.md</span><br><span>index 0338aa1..460af8f 100644</span><br><span>--- a/Documentation/mainboard/asrock/h81m-hds.md</span><br><span>+++ b/Documentation/mainboard/asrock/h81m-hds.md</span><br><span>@@ -4,24 +4,10 @@</span><br><span> </span><br><span> ## Required proprietary blobs</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-This board currently requires a proprietary blob in order to initialise</span><br><span style="color: hsl(0, 100%, 40%);">-the RAM and a few other components. The blob largely consists of Intel's</span><br><span style="color: hsl(0, 100%, 40%);">-Memory Reference Code (shortened to mrc), and is just under 200 KiB</span><br><span style="color: hsl(0, 100%, 40%);">-in size. It is also known as a system agent binary. Unfortunately,</span><br><span style="color: hsl(0, 100%, 40%);">-it is not currently possible to distribute this as part of coreboot.</span><br><span style="color: hsl(0, 100%, 40%);">-However, the mrc can be obtained from a Haswell Chromebook firmware</span><br><span style="color: hsl(0, 100%, 40%);">-image, and you might find one online. The mrc from a ChromeOS image can</span><br><span style="color: hsl(0, 100%, 40%);">-be extracted with the following command. If extracting from a "standard"</span><br><span style="color: hsl(0, 100%, 40%);">-coreboot image, omit `-r RO_SECTION`.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-```bash</span><br><span style="color: hsl(0, 100%, 40%);">-cbfstool coreboot.rom extract -f mrc.bin -n mrc.bin -r RO_SECTION</span><br><span style="color: hsl(120, 100%, 40%);">+```eval_rst</span><br><span style="color: hsl(120, 100%, 40%);">+Please see :doc:`../../northbridge/intel/haswell/mrc.bin`.</span><br><span> ```</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-Now, place mrc.bin in the root of the coreboot directory.</span><br><span style="color: hsl(0, 100%, 40%);">-Alternatively, place it anywhere you want, and set `MRC_FILE` to its</span><br><span style="color: hsl(0, 100%, 40%);">-location when building coreboot.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> ## Building coreboot</span><br><span> </span><br><span> A fully working image should be possible just by setting your MAC</span><br><span>diff --git a/Documentation/northbridge/intel/haswell/index.md b/Documentation/northbridge/intel/haswell/index.md</span><br><span>new file mode 100644</span><br><span>index 0000000..3eb8059</span><br><span>--- /dev/null</span><br><span>+++ b/Documentation/northbridge/intel/haswell/index.md</span><br><span>@@ -0,0 +1,8 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# Intel Haswell documentation</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This section describes the Intel Haswell architecture as it relates to</span><br><span style="color: hsl(120, 100%, 40%);">+coreboot.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+## Proprietary blobs</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+- [mrc.bin](mrc.bin.md)</span><br><span>diff --git a/Documentation/northbridge/intel/haswell/mrc.bin.md b/Documentation/northbridge/intel/haswell/mrc.bin.md</span><br><span>new file mode 100644</span><br><span>index 0000000..e27e9d6</span><br><span>--- /dev/null</span><br><span>+++ b/Documentation/northbridge/intel/haswell/mrc.bin.md</span><br><span>@@ -0,0 +1,35 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# mrc.bin</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+All Haswell boards supported by coreboot currently require a proprietary</span><br><span style="color: hsl(120, 100%, 40%);">+blob in order to initialise the DRAM and a few other components. The</span><br><span style="color: hsl(120, 100%, 40%);">+blob, named `mrc.bin`, largely consists of Intel's memory reference code</span><br><span style="color: hsl(120, 100%, 40%);">+(MRC), but it has been tailored specifically for Chrome OS. It is just</span><br><span style="color: hsl(120, 100%, 40%);">+under 200 KiB in size. Another name for `mrc.bin` is the system agent</span><br><span style="color: hsl(120, 100%, 40%);">+binary.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Having a replacement for `mrc.bin` using native coreboot code is very</span><br><span style="color: hsl(120, 100%, 40%);">+much desired, but it is not an easy task.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+## Obtaining mrc.bin</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Unfortunately, it is not currently possible to distribute `mrc.bin` as</span><br><span style="color: hsl(120, 100%, 40%);">+part of coreboot. Though, it can be obtained from a Haswell Chromebook</span><br><span style="color: hsl(120, 100%, 40%);">+or Chromebox firmware image, and you might find one online. `mrc.bin`</span><br><span style="color: hsl(120, 100%, 40%);">+can be extracted with the following command. If extracting from a</span><br><span style="color: hsl(120, 100%, 40%);">+"standard" coreboot image, omit `-r RO_SECTION`.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+```bash</span><br><span style="color: hsl(120, 100%, 40%);">+cbfstool coreboot.rom extract -f mrc.bin -n mrc.bin -r RO_SECTION</span><br><span style="color: hsl(120, 100%, 40%);">+```</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Now, place `mrc.bin` in the root of the coreboot directory.</span><br><span style="color: hsl(120, 100%, 40%);">+Alternatively, place `mrc.bin` anywhere you want, and set `MRC_FILE` to</span><br><span style="color: hsl(120, 100%, 40%);">+its location when building coreboot.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+## ECC DRAM</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+When `mrc.bin` has finished executing, ECC is active on the channels</span><br><span style="color: hsl(120, 100%, 40%);">+populated with ECC DIMMs. However, `mrc.bin` was tailored specifically</span><br><span style="color: hsl(120, 100%, 40%);">+for Haswell Chromebooks and Chomeboxes, none of which support ECC DRAM.</span><br><span style="color: hsl(120, 100%, 40%);">+While ECC likely functions correctly, it is advised to further validate</span><br><span style="color: hsl(120, 100%, 40%);">+the correct operation of ECC if data integrity is absolutely critical.</span><br><span>diff --git a/Documentation/northbridge/intel/index.md b/Documentation/northbridge/intel/index.md</span><br><span>index 6cca1da..da7634b 100644</span><br><span>--- a/Documentation/northbridge/intel/index.md</span><br><span>+++ b/Documentation/northbridge/intel/index.md</span><br><span>@@ -4,4 +4,5 @@</span><br><span> </span><br><span> ## Platforms</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+- [Haswell](haswell/index.md)</span><br><span> - [Sandy Bridge](sandybridge/index.md)</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/c/coreboot/+/30356">change 30356</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/c/coreboot/+/30356"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I84e8ca2543b2e19b84a24f7d7032a4aedb6e9272 </div>
<div style="display:none"> Gerrit-Change-Number: 30356 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Tristan Corrick <tristan@corrick.kiwi> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>