Patrick Rudolph has uploaded this change for review.

View Change

Documentation: Update soc/intel/apollolake

Explaing LBPs and how to disable dual partition mode.

Change-Id: I0b609f802d96aa90d0c1479ffeccf3aaaa70a85d
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
---
M Documentation/soc/intel/apollolake/flash_layout.dia
M Documentation/soc/intel/apollolake/flash_layout.svg
A Documentation/soc/intel/apollolake/flash_layout2.dia
A Documentation/soc/intel/apollolake/flash_layout2.svg
M Documentation/soc/intel/apollolake/index.md
5 files changed, 272 insertions(+), 27 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/40/33740/1
diff --git a/Documentation/soc/intel/apollolake/flash_layout.dia b/Documentation/soc/intel/apollolake/flash_layout.dia
index 4ea5440..a329620 100644
--- a/Documentation/soc/intel/apollolake/flash_layout.dia
+++ b/Documentation/soc/intel/apollolake/flash_layout.dia
Binary files differ
diff --git a/Documentation/soc/intel/apollolake/flash_layout.svg b/Documentation/soc/intel/apollolake/flash_layout.svg
index 9322875..07b3a58 100644
--- a/Documentation/soc/intel/apollolake/flash_layout.svg
+++ b/Documentation/soc/intel/apollolake/flash_layout.svg
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/PR-SVG-20010719/DTD/svg10.dtd">
-<svg width="38cm" height="18cm" viewBox="118 98 744 344" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="38cm" height="19cm" viewBox="118 61 744 380" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g>
<rect style="fill: #ffffff" x="620" y="100" width="180" height="60"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="620" y="100" width="180" height="60"/>
@@ -16,18 +16,18 @@
<tspan x="460" y="134.425">BIOS</tspan>
</text>
<g>
- <rect style="fill: #ffffff" x="240" y="100" width="60" height="60"/>
- <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="240" y="100" width="60" height="60"/>
+ <rect style="fill: #ffffff" x="227.633" y="99.4585" width="60" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="227.633" y="99.4585" width="60" height="60"/>
</g>
- <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="270" y="134.425">
- <tspan x="270" y="134.425">IFD</tspan>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="257.633" y="133.884">
+ <tspan x="257.633" y="133.884">IFD</tspan>
</text>
<g>
<rect style="fill: #ffffff" x="200" y="240" width="80" height="60"/>
<rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="200" y="240" width="80" height="60"/>
</g>
- <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="240" y="274.425">
- <tspan x="240" y="274.425">IFWI</tspan>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="240" y="274.238">
+ <tspan x="240" y="274.238">IFWI</tspan>
</text>
<g>
<path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 200 240 C 200,160 460,220 460,169.736"/>
@@ -35,7 +35,7 @@
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="460,162.236 465,172.236 460,169.736 455,172.236 "/>
</g>
<g>
- <path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 700 240 C 700,160 460,220 460,169.736"/>
+ <path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 700.289 239.999 C 700.289,159.999 460,220 460,169.736"/>
<polygon style="fill: #000000" points="460,162.236 465,172.236 460,169.736 455,172.236 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="460,162.236 465,172.236 460,169.736 455,172.236 "/>
</g>
@@ -65,11 +65,11 @@
<tspan x="620" y="414.425">COREBOOT(CBFS)</tspan>
</text>
<g>
- <rect style="fill: #ffffff" x="700" y="380" width="140" height="60"/>
- <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="700" y="380" width="140" height="60"/>
+ <rect style="fill: #d8e5e5" x="495.265" y="102.433" width="122.658" height="54.6579"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="495.265" y="102.433" width="122.658" height="54.6579"/>
</g>
- <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="770" y="414.425">
- <tspan x="770" y="414.425">BIOS_UNUSABLE</tspan>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="556.594" y="134.187">
+ <tspan x="556.594" y="134.187">BIOS_UNUSABLE</tspan>
</text>
<g>
<rect style="fill: #ffffff" x="380" y="380" width="60" height="60"/>
@@ -79,21 +79,21 @@
<tspan x="410" y="414.425">MRC</tspan>
</text>
<g>
- <rect style="fill: #ffffff" x="280" y="240" width="420" height="60"/>
- <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="280" y="240" width="420" height="60"/>
+ <rect style="fill: #ffffff" x="280" y="240" width="420.151" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="280" y="240" width="420.151" height="60"/>
</g>
- <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="490" y="274.425">
- <tspan x="490" y="274.425">OBB</tspan>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="490.076" y="274.425">
+ <tspan x="490.076" y="274.425">OBB</tspan>
</text>
<g>
- <path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 320 380 C 320,300 490,360 490,311"/>
- <polygon style="fill: #000000" points="495,311 490,301 485,311 "/>
- <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="495,311 490,301 485,311 "/>
+ <path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 320 380 C 320,300 490.076,360 490.076,311"/>
+ <polygon style="fill: #000000" points="495.076,311 490.076,301 485.076,311 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="495.076,311 490.076,301 485.076,311 "/>
</g>
<g>
- <path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 840 380 C 840,300 490,360 490,311"/>
- <polygon style="fill: #000000" points="495,311 490,301 485,311 "/>
- <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="495,311 490,301 485,311 "/>
+ <path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 728.771 380.768 C 728.771,300.768 490.076,360 490.076,311"/>
+ <polygon style="fill: #000000" points="495.076,311 490.076,301 485.076,311 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="495.076,311 490.076,301 485.076,311 "/>
</g>
<g>
<rect style="fill: #ffffff" x="120" y="380" width="60" height="60"/>
@@ -119,4 +119,39 @@
<polygon style="fill: #000000" points="245,311 240,301 235,311 "/>
<polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="245,311 240,301 235,311 "/>
</g>
+ <text font-size="12.7998" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="385.009" y="232.505">
+ <tspan x="385.009" y="232.505">Logical Boot Partition 1</tspan>
+ </text>
+ <text font-size="12.7998" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="644.3" y="90.55">
+ <tspan x="644.3" y="90.55">TXE private partition</tspan>
+ </text>
+ <text font-size="12.7998" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="768" y="77.25">
+ <tspan x="768" y="77.25"></tspan>
+ </text>
+ <text font-size="12.7998" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="739" y="77.25">
+ <tspan x="739" y="77.25"></tspan>
+ </text>
+ <text font-size="12.7998" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="389.3" y="90.55">
+ <tspan x="389.3" y="90.55">TXE / BIOS shared partition</tspan>
+ </text>
+ <g>
+ <rect style="fill: #ffffff" x="288.321" y="99.2493" width="11.6609" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="288.321" y="99.2493" width="11.6609" height="60"/>
+ </g>
+ <text font-size="12.7998" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="232.975" y="73.4916">
+ <tspan x="232.975" y="73.4916">ME region (unused)</tspan>
+ </text>
+ <g>
+ <line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="295.223" y1="77.2138" x2="295.229" y2="86.6145"/>
+ <polygon style="fill: #000000" points="295.234,94.1145 290.228,84.1176 295.229,86.6145 300.228,84.1113 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="295.234,94.1145 290.228,84.1176 295.229,86.6145 300.228,84.1113 "/>
+ </g>
+ <g>
+ <rect style="fill: #d8e5e5" x="669.038" y="243.016" width="28.5491" height="54.6579"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="669.038" y="243.016" width="28.5491" height="54.6579"/>
+ </g>
+ <g>
+ <rect style="fill: #d8e5e5" x="700.222" y="380.768" width="28.5491" height="58.0215"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="700.222" y="380.768" width="28.5491" height="58.0215"/>
+ </g>
</svg>
diff --git a/Documentation/soc/intel/apollolake/flash_layout2.dia b/Documentation/soc/intel/apollolake/flash_layout2.dia
new file mode 100644
index 0000000..0bde2e5
--- /dev/null
+++ b/Documentation/soc/intel/apollolake/flash_layout2.dia
Binary files differ
diff --git a/Documentation/soc/intel/apollolake/flash_layout2.svg b/Documentation/soc/intel/apollolake/flash_layout2.svg
new file mode 100644
index 0000000..15c7a8d
--- /dev/null
+++ b/Documentation/soc/intel/apollolake/flash_layout2.svg
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/PR-SVG-20010719/DTD/svg10.dtd">
+<svg width="38cm" height="19cm" viewBox="118 61 744 380" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <g>
+ <rect style="fill: #ffffff" x="620" y="100" width="180" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="620" y="100" width="180" height="60"/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="710" y="134.425">
+ <tspan x="710" y="134.425">DEVICE_EXTENSION</tspan>
+ </text>
+ <g>
+ <rect style="fill: #ffffff" x="300" y="100" width="320" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="300" y="100" width="320" height="60"/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="460" y="134.425">
+ <tspan x="460" y="134.425">BIOS</tspan>
+ </text>
+ <g>
+ <rect style="fill: #ffffff" x="227.632" y="99.4586" width="60" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="227.632" y="99.4586" width="60" height="60"/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="257.632" y="133.884">
+ <tspan x="257.632" y="133.884">IFD</tspan>
+ </text>
+ <g>
+ <rect style="fill: #ffffff" x="200" y="240" width="80" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="200" y="240" width="80" height="60"/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="240" y="274.425">
+ <tspan x="240" y="274.425">IFWI</tspan>
+ </text>
+ <g>
+ <path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 200 240 C 200,160 460,220 460,169.736"/>
+ <polygon style="fill: #000000" points="460,162.236 465,172.236 460,169.736 455,172.236 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="460,162.236 465,172.236 460,169.736 455,172.236 "/>
+ </g>
+ <g>
+ <path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 700.288 240 C 700.288,159.999 460,220 460,169.736"/>
+ <polygon style="fill: #000000" points="460,162.236 465,172.236 460,169.736 455,172.236 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="460,162.236 465,172.236 460,169.736 455,172.236 "/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="800" y="100" width="60" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="800" y="100" width="60" height="60"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="320" y="380" width="60" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="320" y="380" width="60" height="60"/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="350" y="414.425">
+ <tspan x="350" y="414.425">FMAP</tspan>
+ </text>
+ <g>
+ <rect style="fill: #ffffff" x="440" y="380" width="100" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="440" y="380" width="100" height="60"/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="490" y="414.425">
+ <tspan x="490" y="414.425">CONSOLE</tspan>
+ </text>
+ <g>
+ <rect style="fill: #ffffff" x="540" y="380" width="160" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="540" y="380" width="160" height="60"/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="620" y="414.425">
+ <tspan x="620" y="414.425">COREBOOT(CBFS)</tspan>
+ </text>
+ <g>
+ <rect style="fill: #d8e5e5" x="495.264" y="102.433" width="122.658" height="54.6579"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="495.264" y="102.433" width="122.658" height="54.6579"/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="556.594" y="134.187">
+ <tspan x="556.594" y="134.187">BIOS_UNUSABLE</tspan>
+ </text>
+ <g>
+ <rect style="fill: #ffffff" x="380" y="380" width="60" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="380" y="380" width="60" height="60"/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="410" y="414.425">
+ <tspan x="410" y="414.425">MRC</tspan>
+ </text>
+ <g>
+ <rect style="fill: #ffffff" x="280" y="240" width="161.104" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="280" y="240" width="161.104" height="60"/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="360.552" y="274.425">
+ <tspan x="360.552" y="274.425">OBB</tspan>
+ </text>
+ <g>
+ <path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 320 380 C 320,300 360.552,360 360.552,311"/>
+ <polygon style="fill: #000000" points="365.552,311 360.552,301 355.552,311 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="365.552,311 360.552,301 355.552,311 "/>
+ </g>
+ <g>
+ <path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 700 380 C 700,300 360.552,360 360.552,311"/>
+ <polygon style="fill: #000000" points="365.552,311 360.552,301 355.552,311 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="365.552,311 360.552,301 355.552,311 "/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="120" y="380" width="60" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="120" y="380" width="60" height="60"/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="150" y="414.425">
+ <tspan x="150" y="414.425">TXE</tspan>
+ </text>
+ <g>
+ <rect style="fill: #ffffff" x="180" y="380" width="120" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="180" y="380" width="120" height="60"/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="240" y="414.425">
+ <tspan x="240" y="414.425">BOOTBLOCK</tspan>
+ </text>
+ <g>
+ <path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 300 380 C 300,320 240,360 240,311"/>
+ <polygon style="fill: #000000" points="245,311 240,301 235,311 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="245,311 240,301 235,311 "/>
+ </g>
+ <g>
+ <path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 120 380 C 120,320 240,360 240,311"/>
+ <polygon style="fill: #000000" points="245,311 240,301 235,311 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="245,311 240,301 235,311 "/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="247.944" y="231.664">
+ <tspan x="247.944" y="231.664">Logical Boot Partition 1</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="644.3" y="90.55">
+ <tspan x="644.3" y="90.55">TXE private partition</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="768" y="77.25">
+ <tspan x="768" y="77.25"></tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="739" y="77.25">
+ <tspan x="739" y="77.25"></tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="389.3" y="90.55">
+ <tspan x="389.3" y="90.55">TXE / BIOS shared partition</tspan>
+ </text>
+ <g>
+ <rect style="fill: #ffffff" x="288.32" y="99.2492" width="11.6609" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="288.32" y="99.2492" width="11.6609" height="60"/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="232.974" y="73.4916">
+ <tspan x="232.974" y="73.4916">ME region (unused)</tspan>
+ </text>
+ <g>
+ <line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="295.224" y1="77.2138" x2="295.23" y2="86.6145"/>
+ <polygon style="fill: #000000" points="295.235,94.1145 290.228,84.1177 295.23,86.6145 300.228,84.1114 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="295.235,94.1145 290.228,84.1177 295.23,86.6145 300.228,84.1114 "/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="511.814" y="240" width="188.474" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="511.814" y="240" width="188.474" height="60"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="440.696" y="240.49" width="71.1194" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="440.696" y="240.49" width="71.1194" height="60"/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="606.052" y="274.425">
+ <tspan x="606.052" y="274.425">OBB</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="476.254" y="274.915">
+ <tspan x="476.254" y="274.915">IFWI</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="493.642" y="231.092">
+ <tspan x="493.642" y="231.092">Logical Boot Partition 2</tspan>
+ </text>
+ <line style="fill: none; fill-opacity:0; stroke-width: 2; stroke-dasharray: 4; stroke: #000000" x1="439.69" y1="207.594" x2="440.696" y2="240.49"/>
+ <g>
+ <rect style="fill: #d8e5e5" x="668.7" y="241.9" width="28.5491" height="54.6579"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="668.7" y="241.9" width="28.5491" height="54.6579"/>
+ </g>
+</svg>
diff --git a/Documentation/soc/intel/apollolake/index.md b/Documentation/soc/intel/apollolake/index.md
index d4a5ee5..3ff0027 100644
--- a/Documentation/soc/intel/apollolake/index.md
+++ b/Documentation/soc/intel/apollolake/index.md
@@ -1,9 +1,7 @@
# Apollolake
-## SPI flash layout

-![][apl_flash_layout]
-
-With Apollolake Intel invented another flash layout for x86 firmware called IFWI (Intel FirmWare Image).
+With Apollolake Intel invented another flash layout for x86 firmware called
+IFWI (Intel FirmWare Image).

Usually on x86 platforms the bootblock is stored at the end of the bios region
and the Intel ME / TXE has its own IFD region. On Apollolake both have been
@@ -12,6 +10,47 @@

The IFWI region can be manipulated by `ifwitool`.

-[apl_flash_layout]: flash_layout.svg
+## SPI flash layout

+IFD regions:
+* The "ME" region isn't used on production boards
+* The "BIOS" region contains one or two logical boot partitions (LBP)
+ * The IFD controls if one or two LBP are active
+ * Each LBP has it's own IFWI and OBB
+ * The last 256 KiB of the "BIOS" region are BIOS_UNUSABLE
+* The "device extension" region is used by TXE as secure filesystem
+
+### SPI layout with single LBP
+
+When configured for single LBP mode, the LBP uses the whole "BIOS" region's
+flash size.
+
+![][apl_flash_layout]
+
+### SPI layout with dual LBP
+
+When configured for dual LBP mode, each LBP uses exactly half of the "BIOS"
+region's flash size.
+
+![][apl_flash_layout2]
+
+### IFWI
+
+The IFWI contains the bootblock, while the OBB contains the CBFS and other
+regions as specified in the FMAP.
+The OBB spans the whole size from IFWI till the end of the LBP.
+
+**Note:** ifwitool doesn't care about LBP2!
+
+### Logical boot partitions
+
+Each LBP has their own IFWI and OBB. It allows failsafe firmware updates.
+
+**Note:** If configured in dual partition mode, the TXE will enter recovery
+mode if LBP2 is missing.
+
+To disable dual partitioning mode, set bit3 in IFD at offset `0x1ff` to 1.
+
+[apl_flash_layout]: flash_layout.svg
+[apl_flash_layout2]: flash_layout2.svg


To view, visit change 33740. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I0b609f802d96aa90d0c1479ffeccf3aaaa70a85d
Gerrit-Change-Number: 33740
Gerrit-PatchSet: 1
Gerrit-Owner: Patrick Rudolph <patrick.rudolph@9elements.com>
Gerrit-MessageType: newchange