summaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorFelix Singer <felix.singer@9elements.com>2019-05-22 18:32:46 +0200
committerPatrick Rudolph <siro@das-labor.org>2019-06-17 14:26:42 +0000
commit9b7e990d18d5f6212df6ea967428c28b802e1b64 (patch)
tree213c9755fa5ff12865fed7a80b5db57c3539d320 /Documentation
parent9065657957f5cb8c5a02695af7528263cfdceeaa (diff)
downloadcoreboot-9b7e990d18d5f6212df6ea967428c28b802e1b64.tar.gz
coreboot-9b7e990d18d5f6212df6ea967428c28b802e1b64.tar.bz2
coreboot-9b7e990d18d5f6212df6ea967428c28b802e1b64.zip
doc/mb/upsquared: Add documentation
This patch adds documentation about the UPĀ² mainboard and the IFWI used by Apollolake platform. Change-Id: Ic708ddbd2616eee4e5ec2740b3eac18b408bde38 Signed-off-by: Felix Singer <felix.singer@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/32935 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Rudolph <siro@das-labor.org>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/mainboard/up/squared/bottom.diabin0 -> 1112 bytes
-rw-r--r--Documentation/mainboard/up/squared/bottom.jpgbin38689 -> 48761 bytes
-rw-r--r--Documentation/mainboard/up/squared/header_40pin_gpio_uart1.diabin0 -> 1853 bytes
-rw-r--r--Documentation/mainboard/up/squared/header_40pin_gpio_uart1.svg126
-rw-r--r--Documentation/mainboard/up/squared/header_cn16_10pin_uart0.diabin0 -> 1752 bytes
-rw-r--r--Documentation/mainboard/up/squared/header_cn16_10pin_uart0.svg112
-rw-r--r--Documentation/mainboard/up/squared/header_cn22_12pin_spi.diabin0 -> 2240 bytes
-rw-r--r--Documentation/mainboard/up/squared/header_cn22_12pin_spi.svg165
-rw-r--r--Documentation/mainboard/up/squared/index.md102
-rw-r--r--Documentation/soc/intel/apollolake/flash_layout.diabin0 -> 1988 bytes
-rw-r--r--Documentation/soc/intel/apollolake/flash_layout.svg122
-rw-r--r--Documentation/soc/intel/apollolake/index.md17
-rw-r--r--Documentation/soc/intel/index.md1
13 files changed, 629 insertions, 16 deletions
diff --git a/Documentation/mainboard/up/squared/bottom.dia b/Documentation/mainboard/up/squared/bottom.dia
new file mode 100644
index 000000000000..f298d669ab7f
--- /dev/null
+++ b/Documentation/mainboard/up/squared/bottom.dia
Binary files differ
diff --git a/Documentation/mainboard/up/squared/bottom.jpg b/Documentation/mainboard/up/squared/bottom.jpg
index f9aa85db50a2..3c066a23ad98 100644
--- a/Documentation/mainboard/up/squared/bottom.jpg
+++ b/Documentation/mainboard/up/squared/bottom.jpg
Binary files differ
diff --git a/Documentation/mainboard/up/squared/header_40pin_gpio_uart1.dia b/Documentation/mainboard/up/squared/header_40pin_gpio_uart1.dia
new file mode 100644
index 000000000000..4efc0183e41d
--- /dev/null
+++ b/Documentation/mainboard/up/squared/header_40pin_gpio_uart1.dia
Binary files differ
diff --git a/Documentation/mainboard/up/squared/header_40pin_gpio_uart1.svg b/Documentation/mainboard/up/squared/header_40pin_gpio_uart1.svg
new file mode 100644
index 000000000000..16f6397de40f
--- /dev/null
+++ b/Documentation/mainboard/up/squared/header_40pin_gpio_uart1.svg
@@ -0,0 +1,126 @@
+<?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="14cm" height="10cm" viewBox="399 -216 262 199" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:700" x="460" y="-20">
+ <tspan x="460" y="-20">40 pin GPIO header</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="520" y="-175.575">
+ <tspan x="520" y="-175.575">GND</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="560" y="-203.575">
+ <tspan x="560" y="-203.575">UART1</tspan>
+ <tspan x="560" y="-187.575">TX</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="600" y="-183.575">
+ <tspan x="600" y="-183.575">UART1</tspan>
+ <tspan x="600" y="-167.575">RX</tspan>
+ </text>
+ <g>
+ <rect style="fill: #ffffff" x="400" y="-140" width="260" height="100"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="400" y="-140" width="260" height="100"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="420" y="-120" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="420" y="-120" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="420" y="-80" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="420" y="-80" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #00ff00" x="500" y="-120" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="500" y="-120" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="500" y="-80" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="500" y="-80" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="460" y="-120" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="460" y="-120" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="460" y="-80" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="460" y="-80" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #00ff00" x="540" y="-120" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="540" y="-120" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="540" y="-80" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="540" y="-80" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #00ff00" x="580" y="-120" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="580" y="-120" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="580" y="-80" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="580" y="-80" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="620" y="-120" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="620" y="-120" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="620" y="-80" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="620" y="-80" width="20" height="20"/>
+ </g>
+ <g>
+ <polyline style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="420,-40 420,-49 "/>
+ <polygon style="fill: #000000" points="425,-49 420,-59 415,-49 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="425,-49 420,-59 415,-49 "/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="430" y="-65.575">
+ <tspan x="430" y="-65.575">1</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="470" y="-105.575">
+ <tspan x="470" y="-105.575">4</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="430" y="-105.575">
+ <tspan x="430" y="-105.575">2</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="470" y="-65.575">
+ <tspan x="470" y="-65.575">3</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="510" y="-65.575">
+ <tspan x="510" y="-65.575">5</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="550" y="-65.575">
+ <tspan x="550" y="-65.575">7</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="550" y="-105.575">
+ <tspan x="550" y="-105.575">8</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="510" y="-105.575">
+ <tspan x="510" y="-105.575">6</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="590" y="-65.575">
+ <tspan x="590" y="-65.575">9</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="630" y="-65.575">
+ <tspan x="630" y="-65.575">11</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="630" y="-105.575">
+ <tspan x="630" y="-105.575">12</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="590" y="-105.575">
+ <tspan x="590" y="-105.575">10</tspan>
+ </text>
+ <g>
+ <polyline style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="520,-160 520,-131 "/>
+ <polygon style="fill: #000000" points="515,-131 520,-121 525,-131 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="515,-131 520,-121 525,-131 "/>
+ </g>
+ <g>
+ <polyline style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="560,-180 560,-131 "/>
+ <polygon style="fill: #000000" points="555,-131 560,-121 565,-131 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="555,-131 560,-121 565,-131 "/>
+ </g>
+ <g>
+ <polyline style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="600,-160 600,-131 "/>
+ <polygon style="fill: #000000" points="595,-131 600,-121 605,-131 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="595,-131 600,-121 605,-131 "/>
+ </g>
+</svg>
diff --git a/Documentation/mainboard/up/squared/header_cn16_10pin_uart0.dia b/Documentation/mainboard/up/squared/header_cn16_10pin_uart0.dia
new file mode 100644
index 000000000000..a35245b9cc4d
--- /dev/null
+++ b/Documentation/mainboard/up/squared/header_cn16_10pin_uart0.dia
Binary files differ
diff --git a/Documentation/mainboard/up/squared/header_cn16_10pin_uart0.svg b/Documentation/mainboard/up/squared/header_cn16_10pin_uart0.svg
new file mode 100644
index 000000000000..43efc77ac528
--- /dev/null
+++ b/Documentation/mainboard/up/squared/header_cn16_10pin_uart0.svg
@@ -0,0 +1,112 @@
+<?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="22cm" height="9cm" viewBox="416 112 425 163" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <g>
+ <rect style="fill: #ffffff" x="420" y="140" width="420" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="420" y="140" width="420" height="60"/>
+ </g>
+ <g>
+ <rect style="fill: #00ff00" x="440" y="160" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="440" y="160" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #00ff00" x="480" y="160" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="480" y="160" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #00ff00" x="520" y="160" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="520" y="160" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="560" y="160" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="560" y="160" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="600" y="160" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="600" y="160" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="640" y="160" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="640" y="160" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="680" y="160" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="680" y="160" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="720" y="160" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="720" y="160" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="760" y="160" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="760" y="160" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="800" y="160" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="800" y="160" width="20" height="20"/>
+ </g>
+ <g>
+ <polyline style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="820,140 820,149 "/>
+ <polygon style="fill: #000000" points="815,149 820,159 825,149 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="815,149 820,159 825,149 "/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="810" y="174.425">
+ <tspan x="810" y="174.425">1</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="770" y="174.425">
+ <tspan x="770" y="174.425">2</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="650" y="174.425">
+ <tspan x="650" y="174.425">5</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="690" y="174.425">
+ <tspan x="690" y="174.425">4</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="730" y="174.425">
+ <tspan x="730" y="174.425">3</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="610" y="174.425">
+ <tspan x="610" y="174.425">6</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="490" y="174.425">
+ <tspan x="490" y="174.425">9</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="530" y="174.425">
+ <tspan x="530" y="174.425">8</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="570" y="174.425">
+ <tspan x="570" y="174.425">7</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="450" y="174.425">
+ <tspan x="450" y="174.425">10</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="520" y="264.425">
+ <tspan x="520" y="264.425">GND</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="480" y="236.425">
+ <tspan x="480" y="236.425">UART0</tspan>
+ <tspan x="480" y="252.425">RX</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="440" y="256.425">
+ <tspan x="440" y="256.425">UART0</tspan>
+ <tspan x="440" y="272.425">TX</tspan>
+ </text>
+ <g>
+ <polyline style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="440,240 440,191 "/>
+ <polygon style="fill: #000000" points="445,191 440,181 435,191 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="445,191 440,181 435,191 "/>
+ </g>
+ <g>
+ <polyline style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="480,220 480,191 "/>
+ <polygon style="fill: #000000" points="485,191 480,181 475,191 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="485,191 480,181 475,191 "/>
+ </g>
+ <g>
+ <polyline style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="520,240 520,191 "/>
+ <polygon style="fill: #000000" points="525,191 520,181 515,191 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="525,191 520,181 515,191 "/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="640" y="124.425">
+ <tspan x="640" y="124.425">10 pin UART0/USB2 header (CN16)</tspan>
+ </text>
+</svg>
diff --git a/Documentation/mainboard/up/squared/header_cn22_12pin_spi.dia b/Documentation/mainboard/up/squared/header_cn22_12pin_spi.dia
new file mode 100644
index 000000000000..ab556ff819f3
--- /dev/null
+++ b/Documentation/mainboard/up/squared/header_cn22_12pin_spi.dia
Binary files differ
diff --git a/Documentation/mainboard/up/squared/header_cn22_12pin_spi.svg b/Documentation/mainboard/up/squared/header_cn22_12pin_spi.svg
new file mode 100644
index 000000000000..7853fb7e7c99
--- /dev/null
+++ b/Documentation/mainboard/up/squared/header_cn22_12pin_spi.svg
@@ -0,0 +1,165 @@
+<?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="14cm" height="12cm" viewBox="294 -68 267 236" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <g>
+ <rect style="fill: #ffffff" x="300" y="0" width="260" height="99"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="300" y="0" width="260" height="99"/>
+ </g>
+ <g>
+ <rect style="fill: #00ff00" x="320" y="20" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="320" y="20" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="360" y="20" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="360" y="20" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #00ff00" x="400" y="20" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="400" y="20" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="440" y="20" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="440" y="20" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="480" y="20" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="480" y="20" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #ffffff" x="520" y="20" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="520" y="20" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #00ff00" x="320" y="60" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="320" y="60" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #00ff00" x="360" y="60" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="360" y="60" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #00ff00" x="400" y="60" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="400" y="60" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #00ff00" x="440" y="60" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="440" y="60" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #00ff00" x="480" y="60" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="480" y="60" width="20" height="20"/>
+ </g>
+ <g>
+ <rect style="fill: #00ff00" x="520" y="60" width="20" height="20"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x="520" y="60" width="20" height="20"/>
+ </g>
+ <g>
+ <polyline style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="540,0 540,9 "/>
+ <polygon style="fill: #000000" points="535,9 540,19 545,9 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="535,9 540,19 545,9 "/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="370" y="34.425">
+ <tspan x="370" y="34.425">9</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="450" y="34.425">
+ <tspan x="450" y="34.425">5</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="410" y="34.425">
+ <tspan x="410" y="34.425">7</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="410" y="74.425">
+ <tspan x="410" y="74.425">8</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="530" y="34.425">
+ <tspan x="530" y="34.425">1</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="490" y="74.425">
+ <tspan x="490" y="74.425">4</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="490" y="34.425">
+ <tspan x="490" y="34.425">3</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="530" y="74.425">
+ <tspan x="530" y="74.425">2</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="450" y="74.425">
+ <tspan x="450" y="74.425">6</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="330" y="34.425">
+ <tspan x="330" y="34.425">11</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="330" y="74.425">
+ <tspan x="330" y="74.425">12</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="370" y="74.425">
+ <tspan x="370" y="74.425">10</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:700" x="420" y="-20">
+ <tspan x="420" y="-20">SPI header (CN22)</tspan>
+ </text>
+ <g>
+ <polyline style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="520,140 520,91 "/>
+ <polygon style="fill: #000000" points="525,91 520,81 515,91 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="525,91 520,81 515,91 "/>
+ </g>
+ <g>
+ <polyline style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="360,140 360,91 "/>
+ <polygon style="fill: #000000" points="365,91 360,81 355,91 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="365,91 360,81 355,91 "/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="360" y="164.425">
+ <tspan x="360" y="164.425">GND</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="520" y="164.425">
+ <tspan x="520" y="164.425">GND</tspan>
+ </text>
+ <g>
+ <polyline style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="400,120 400,91 "/>
+ <polygon style="fill: #000000" points="405,91 400,81 395,91 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="405,91 400,81 395,91 "/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="400" y="144.425">
+ <tspan x="400" y="144.425">MISO</tspan>
+ </text>
+ <g>
+ <polyline style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="480,120 480,91 "/>
+ <polygon style="fill: #000000" points="485,91 480,81 475,91 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="485,91 480,81 475,91 "/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="480" y="136.425">
+ <tspan x="480" y="136.425">VCC</tspan>
+ <tspan x="480" y="152.425">1.8V</tspan>
+ </text>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="320" y="144.425">
+ <tspan x="320" y="144.425">#HOLD</tspan>
+ </text>
+ <g>
+ <polyline style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="320,120 320,91 "/>
+ <polygon style="fill: #000000" points="325,91 320,81 315,91 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="325,91 320,81 315,91 "/>
+ </g>
+ <g>
+ <polyline style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="400,-40 400,9 "/>
+ <polygon style="fill: #000000" points="395,9 400,19 405,9 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="395,9 400,19 405,9 "/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="400" y="-55.575">
+ <tspan x="400" y="-55.575">CLK</tspan>
+ </text>
+ <g>
+ <polyline style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="320,-20 320,9 "/>
+ <polygon style="fill: #000000" points="315,9 320,19 325,9 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="315,9 320,19 325,9 "/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="320" y="-35.575">
+ <tspan x="320" y="-35.575">MOSI</tspan>
+ </text>
+ <g>
+ <line style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" x1="440" y1="140" x2="440" y2="91"/>
+ <polygon style="fill: #000000" points="445,91 440,81 435,91 "/>
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="445,91 440,81 435,91 "/>
+ </g>
+ <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:700" x="440" y="164.238">
+ <tspan x="440" y="164.238">#CS</tspan>
+ </text>
+</svg>
diff --git a/Documentation/mainboard/up/squared/index.md b/Documentation/mainboard/up/squared/index.md
index dcf3ed192ded..9242f76d8d17 100644
--- a/Documentation/mainboard/up/squared/index.md
+++ b/Documentation/mainboard/up/squared/index.md
@@ -7,6 +7,12 @@
### Bottom
![][overview_bottom]
+* **Legend**
+ * [BLUE][header_cn16_link]: UART0 / USB connector
+ * [GREEN][header_gpio_link]: UART1 / GPIO header
+ * [RED][header_cn22_link]: SPI header
+ * YELLOW: Indicates pin 1
+
## Mainboard components
### Platform
```eval_rst
@@ -46,6 +52,79 @@
+---------------------+------------+
```
+### Debugging
+#### UART0 (CN16)
+This connector is located on the **bottom** side (see [here][overview_bottom_link]).
+![][header_cn16]
+
+
+#### UART1 (GPIO header)
+The GPIO header is located on the **bottom** side (see [here][overview_bottom_link]).
+![][header_gpio]
+
+## Building and flashing coreboot
+### Using the SPI header
+The SPI header is located on the **bottom** side (see [here][overview_bottom_link]).
+![][header_cn22]
+
+### Preperations
+In order to build coreboot, it's neccessary to extract some files from the vendor firmware. Make sure that you have a fully working dump.
+```bash
+[upsquared]$ ls
+firmware_vendor.rom
+```
+
+```bash
+[upsquared]$ mkdir extracted && cd extracted
+[extracted]$ ifdtool -x ../firmware_vendor.rom
+File ../firmware_vendor.rom is 16777216 bytes
+Peculiar firmware descriptor, assuming Ibex Peak compatibility.
+ Flash Region 0 (Flash Descriptor): 00000000 - 00000fff
+ Flash Region 1 (BIOS): 00001000 - 00efefff
+ Flash Region 2 (Intel ME): 07fff000 - 00000fff (unused)
+ Flash Region 3 (GbE): 07fff000 - 00000fff (unused)
+ Flash Region 4 (Platform Data): 07fff000 - 00000fff (unused)
+ Flash Region 5 (Reserved): 00eff000 - 00ffefff
+ Flash Region 6 (Reserved): 07fff000 - 00000fff (unused)
+ Flash Region 7 (Reserved): 07fff000 - 00000fff (unused)
+ Flash Region 8 (EC): 07fff000 - 00000fff (unused)
+```
+
+```bash
+flashregion_0_flashdescriptor.bin
+flashregion_1_bios.bin
+flashregion_5_reserved.bin
+```
+
+### Clean up
+```bash
+[coreboot]$ make distclean
+```
+
+### Configuring
+```bash
+[coreboot]$ touch .config
+[coreboot]$ ./util/scripts/config --enable VENDOR_UP
+[coreboot]$ ./util/scripts/config --enable BOARD_UP_SQUARED
+[coreboot]$ ./util/scripts/config --enable NEED_IFWI
+[coreboot]$ ./util/scripts/config --enable HAVE_IFD_BIN
+[coreboot]$ ./util/scripts/config --set-str IFWI_FILE_NAME "<flashregion_1_bios.bin>"
+[coreboot]$ ./util/scripts/config --set-str IFD_BIN_PATH "<flashregion_0_flashdescriptor.bin>"
+[coreboot]$ make olddefconfig
+```
+
+### Building
+```bash
+[coreboot]$ make
+```
+
+Now you should have a working and ready to use coreboot build at `build/coreboot.rom`.
+
+### Flashing
+```bash
+[coreboot]$ flashrom -p <your_programmer> -w build/coreboot.rom
+```
+
## Board status
### Working
- bootblock, romstage, ramstage
@@ -78,22 +157,13 @@
- mini PCIe
- flashing with flashrom internally using Linux
-## Building and flashing coreboot
-### Building
-
-```bash
-make distclean
-touch .config
-./util/scripts/config --enable VENDOR_UP
-./util/scripts/config --enable BOARD_UP_SQUARED
-./util/scripts/config --enable NEED_IFWI
-./util/scripts/config --enable HAVE_IFD_BIN
-./util/scripts/config --set-str IFWI_FILE_NAME "<path_to_your_bios_region>"
-./util/scripts/config --set-str IFD_BIN_PATH "<path_to_your_ifd_region>"
-make olddefconfig
-```
-
-### Flashing
+[header_cn16]: header_cn16_10pin_uart0.svg
+[header_cn16_link]: #uart0-cn16
+[header_cn22]: header_cn22_12pin_spi.svg
+[header_cn22_link]: #using-the-spi-header
+[header_gpio]: header_40pin_gpio_uart1.svg
+[header_gpio_link]: #uart1-gpio-header
[overview_top]: top.jpg
[overview_bottom]: bottom.jpg
+[overview_bottom_link]: #bottom
diff --git a/Documentation/soc/intel/apollolake/flash_layout.dia b/Documentation/soc/intel/apollolake/flash_layout.dia
new file mode 100644
index 000000000000..4ea544061906
--- /dev/null
+++ 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
new file mode 100644
index 000000000000..9322875d90f5
--- /dev/null
+++ b/Documentation/soc/intel/apollolake/flash_layout.svg
@@ -0,0 +1,122 @@
+<?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">
+ <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="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"/>
+ </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>
+ <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 240 C 700,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>
+ <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: #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"/>
+ </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>
+ <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="420" height="60"/>
+ <rect style="fill: none; fill-opacity:0; stroke-width: 3; stroke: #000000" x="280" y="240" width="420" 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>
+ <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 "/>
+ </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 "/>
+ </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>
+</svg>
diff --git a/Documentation/soc/intel/apollolake/index.md b/Documentation/soc/intel/apollolake/index.md
new file mode 100644
index 000000000000..d4a5ee51ae76
--- /dev/null
+++ b/Documentation/soc/intel/apollolake/index.md
@@ -0,0 +1,17 @@
+# Apollolake
+## SPI flash layout
+
+![][apl_flash_layout]
+
+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
+moved into the IFWI region, which is a subregion of "BIOS", since it allows to
+store multiple firmware components.
+
+The IFWI region can be manipulated by `ifwitool`.
+
+[apl_flash_layout]: flash_layout.svg
+
+
diff --git a/Documentation/soc/intel/index.md b/Documentation/soc/intel/index.md
index 86f4de715599..f30ff9a1d607 100644
--- a/Documentation/soc/intel/index.md
+++ b/Documentation/soc/intel/index.md
@@ -9,3 +9,4 @@ This section contains documentation about coreboot on specific Intel SOCs.
- [Ice Lake/9th Gen Core-i series](icelake/index.md)
- [MP Initialization](mp_init/mp_init.md)
- [Firmware Interface Table](fit.md)
+- [Apollolake](apollolake/index.md)