Skip to content

Commit fc28a8b

Browse files
committed
deploy: dc8a6a4
1 parent b444ed4 commit fc28a8b

11 files changed

Lines changed: 70 additions & 57 deletions

application-processors.html

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -176,22 +176,27 @@ <h1 class="menu-title">Platform System Interface Specification</h1>
176176

177177
<div id="content" class="content">
178178
<main>
179-
<h2 id="application-processors"><a class="header" href="#application-processors">Application Processors</a></h2>
179+
<h1 id="application-processors"><a class="header" href="#application-processors">Application Processors</a></h1>
180180
<p>An <em>Application Processor</em> (AP) is the main processing unit of a system,
181181
commonly designed as a <em>System on Chip</em> (SoC). APs are sometimes also considered
182182
microprocessors, as opposed to microcontrollers. Another regularly used term is
183183
<em>Central Processing Unit</em> (CPU). While design approaches and names have changed
184184
over the years, psi-spec is concerned with the kind of processors that feature a
185185
<em>Memory Management Unit</em> (MMU) and DRAM, allowing for many concurrent tasks and
186186
processing large amounts of data.</p>
187-
<h3 id="system-on-chip"><a class="header" href="#system-on-chip">System on Chip</a></h3>
188-
<p>An SoC integrates application processing units with <a href="./peripherals">peripherals</a>
189-
via internal system buses, all packaged into one chip. Common buses are defined
190-
by the <a href="https://developer.arm.com/Architectures/AMBA">AMBA</a> standards and the
191-
<a href="https://opencores.org/howto/wishbone">WISHBONE Interconnect Architecture</a>. Some
192-
vendors have their own designs, such as AMD's <a href="https://www.amd.com/content/dam/amd/en/documents/instinct-tech-docs/other/56978.pdf">Infinity Fabric</a>.
193-
A bus is generally a set of physical interfaces and corresponding protocols.
194-
Parts of an SoC are called blocks.</p>
187+
<h2 id="system-on-chip"><a class="header" href="#system-on-chip">System on Chip</a></h2>
188+
<p>An SoC integrates processing units with IO <a href="peripherals.html">peripherals</a> via
189+
internal system buses and networks, all packaged into one chip.</p>
190+
<p>Common buses are defined by the
191+
<a href="https://developer.arm.com/Architectures/AMBA">AMBA</a> standards, the
192+
<a href="https://opencores.org/howto/wishbone">WISHBONE Interconnect Architecture</a>, and
193+
<a href="https://en.wikipedia.org/wiki/CoreConnect">CoreConnect</a>.
194+
Some vendors have their own designs, such as AMD's <a href="https://www.amd.com/content/dam/amd/en/documents/instinct-tech-docs/other/56978.pdf">Infinity Fabric</a>.
195+
A bus is generally a set of physical interfaces and corresponding protocols.</p>
196+
<p>A <a href="https://en.wikipedia.org/wiki/Network_on_a_chip">Network on a Chip (NoC)</a>
197+
improves the scalability of SoC components and its power efficiency over shared
198+
buses.</p>
199+
<p>Parts of an SoC are called blocks.</p>
195200
<p><img src="images/simple-soc.png" alt="logical view of a simple SoC" /></p>
196201

197202
</main>

boot-environments.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ <h1 class="menu-title">Platform System Interface Specification</h1>
176176

177177
<div id="content" class="content">
178178
<main>
179-
<h2 id="boot-environments"><a class="header" href="#boot-environments">Boot Environments</a></h2>
179+
<h1 id="boot-environments"><a class="header" href="#boot-environments">Boot Environments</a></h1>
180180
<p>A <em>boot environment</em> is the hosting system of a <em>boot loader</em>.</p>
181181
<p>Boot processes may be interactive, or automatic, or static, set up in many ways.</p>
182182
<p>The following table classifies various approaches with example implementations.</p>

index.html

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,11 +176,12 @@ <h1 class="menu-title">Platform System Interface Specification</h1>
176176

177177
<div id="content" class="content">
178178
<main>
179-
<h2 id="introduction"><a class="header" href="#introduction">Introduction</a></h2>
179+
<h1 id="introduction"><a class="header" href="#introduction">Introduction</a></h1>
180180
<p><img src="images/logo.svg" alt="PSI logo" /></p>
181181
<p>The Platform System Interface Specification, or <em>psi-spec</em>, is
182-
a collection of documents for <a href="#">hardware and software co-design</a> from a general perspective.
183-
It describes how <a href="./application-processors">microprocessors</a> provide an
182+
a collection of documents for [hardware and software co-design](</p>
183+
<h1 id="-from-a-general-perspective"><a class="header" href="#-from-a-general-perspective">) from a general perspective.</a></h1>
184+
<p>It describes how <a href="./application-processors">microprocessors</a> provide an
184185
<a href="boot-environments.html">environment for booting</a> operating systems or otherwise
185186
bare-metal applications, typically starting from intermediate, rewritable code
186187
that initializes clocks, DRAM and peripherals, commonly referred to as boot

intro.html

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,11 +176,12 @@ <h1 class="menu-title">Platform System Interface Specification</h1>
176176

177177
<div id="content" class="content">
178178
<main>
179-
<h2 id="introduction"><a class="header" href="#introduction">Introduction</a></h2>
179+
<h1 id="introduction"><a class="header" href="#introduction">Introduction</a></h1>
180180
<p><img src="images/logo.svg" alt="PSI logo" /></p>
181181
<p>The Platform System Interface Specification, or <em>psi-spec</em>, is
182-
a collection of documents for <a href="#">hardware and software co-design</a> from a general perspective.
183-
It describes how <a href="./application-processors">microprocessors</a> provide an
182+
a collection of documents for [hardware and software co-design](</p>
183+
<h1 id="-from-a-general-perspective"><a class="header" href="#-from-a-general-perspective">) from a general perspective.</a></h1>
184+
<p>It describes how <a href="./application-processors">microprocessors</a> provide an
184185
<a href="boot-environments.html">environment for booting</a> operating systems or otherwise
185186
bare-metal applications, typically starting from intermediate, rewritable code
186187
that initializes clocks, DRAM and peripherals, commonly referred to as boot

mask-roms-loaders.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ <h1 class="menu-title">Platform System Interface Specification</h1>
176176

177177
<div id="content" class="content">
178178
<main>
179-
<h2 id="mask-roms-and-loaders"><a class="header" href="#mask-roms-and-loaders">Mask ROMs and Loaders</a></h2>
179+
<h1 id="mask-roms-and-loaders"><a class="header" href="#mask-roms-and-loaders">Mask ROMs and Loaders</a></h1>
180180
<p>Many SoCs have initial pieces of code baked into them to bootstrap the system.
181181
Some may call them boot ROMs, otherwise known as mask ROMs or Zero Stage Boot
182182
Loaders (ZSBL). They define a low-level access channel for development and would
@@ -191,7 +191,7 @@ <h2 id="mask-roms-and-loaders"><a class="header" href="#mask-roms-and-loaders">M
191191
of such a mechanism, they also have their own software utilities that understand
192192
the respective protocol. With that software, one may read out chip information,
193193
perform MMIO access, transfer data into memory and execute it, set fuses, etc.</p>
194-
<h3 id="generic-protocols-variants-and-tools"><a class="header" href="#generic-protocols-variants-and-tools">Generic protocols, variants and tools</a></h3>
194+
<h2 id="generic-protocols-variants-and-tools"><a class="header" href="#generic-protocols-variants-and-tools">Generic protocols, variants and tools</a></h2>
195195
<ul>
196196
<li><a href="https://www.usb.org/document-library/device-firmware-upgrade-11-new-version-31-aug-2004">USB Device Firmware Upgrade (DFU)</a>
197197
<ul>
@@ -207,7 +207,7 @@ <h3 id="generic-protocols-variants-and-tools"><a class="header" href="#generic-p
207207
</ul>
208208
</li>
209209
</ul>
210-
<h3 id="vendor-specific-protocols-and-tools"><a class="header" href="#vendor-specific-protocols-and-tools">Vendor specific protocols and tools</a></h3>
210+
<h2 id="vendor-specific-protocols-and-tools"><a class="header" href="#vendor-specific-protocols-and-tools">Vendor specific protocols and tools</a></h2>
211211
<ul>
212212
<li>Allwinner: FEL mode, usable with
213213
<ul>

peripherals.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ <h1 class="menu-title">Platform System Interface Specification</h1>
176176

177177
<div id="content" class="content">
178178
<main>
179-
<h2 id="peripherals"><a class="header" href="#peripherals">Peripherals</a></h2>
179+
<h1 id="peripherals"><a class="header" href="#peripherals">Peripherals</a></h1>
180180
<p>Systems connect with external hardware components, also known as <em>peripherals</em>,
181181
using buses and controllers. A controller is a unit driving a bus, such as the
182182
high-speed USB and PCIe buses or the slower SPI and I2C. Hardware platforms may

platform-initialization.html

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ <h1 class="menu-title">Platform System Interface Specification</h1>
176176

177177
<div id="content" class="content">
178178
<main>
179-
<h2 id="platform-initialization"><a class="header" href="#platform-initialization">Platform Initialization</a></h2>
179+
<h1 id="platform-initialization"><a class="header" href="#platform-initialization">Platform Initialization</a></h1>
180180
<p>Booting a rich, virtual memory operating system poses challenges. While modern
181181
machines may offer gigabytes or even terabytes of <em>dynamic random access memory</em>
182182
<a href="https://en.wikipedia.org/wiki/Dynamic_random-access_memory">DRAM</a> and extremely
@@ -187,7 +187,7 @@ <h2 id="platform-initialization"><a class="header" href="#platform-initializatio
187187
controllers as needed to load and boot an operating system. Due to the high
188188
diversity of hardware, every SoC, SoM and mainboard comes with specific
189189
necessities.</p>
190-
<h3 id="boot-flows"><a class="header" href="#boot-flows">Boot Flows</a></h3>
190+
<h2 id="boot-flows"><a class="header" href="#boot-flows">Boot Flows</a></h2>
191191
<p>Since memory and storage parts can be complex, additional firmware and loaders
192192
are implemented in software. They would initialize the platform step by step,
193193
phase by phase, or stage by stage; projects differ in naming.</p>
@@ -202,8 +202,8 @@ <h3 id="boot-flows"><a class="header" href="#boot-flows">Boot Flows</a></h3>
202202
</tbody></table>
203203
</div>
204204
<p><strong>Note</strong>:
205-
<a href="https://github.com/oreboot/oreboot/tree/main/Documentation/boot-flow.md">oreboot
206-
</a> and
205+
<a href="https://github.com/oreboot/oreboot/tree/main/Documentation/boot-flow.md">oreboot</a>
206+
and
207207
<a href="https://doc.coreboot.org/getting_started/architecture.html">coreboot</a> do not
208208
implement boot loaders to access external storage themselves. Instead, they
209209
provide options for payloads that could load a final OS or stand for themselves;
@@ -226,8 +226,8 @@ <h3 id="boot-flows"><a class="header" href="#boot-flows">Boot Flows</a></h3>
226226
unless ways to circumvent the verification are found. This is also true for many
227227
OEM products in general, where custom firmware is not part of the product
228228
design. I.e., it is <a href="platform-security.html">protected against modification</a>.</p>
229-
<h3 id="references"><a class="header" href="#references">References</a></h3>
230-
<h4 id="arm-platforms"><a class="header" href="#arm-platforms">Arm platforms</a></h4>
229+
<h2 id="references"><a class="header" href="#references">References</a></h2>
230+
<h3 id="arm-platforms"><a class="header" href="#arm-platforms">Arm platforms</a></h3>
231231
<ul>
232232
<li><a href="https://youtu.be/GXFw8SV-51g">How Arm systems are booted</a></li>
233233
<li><a href="https://youtu.be/u0-swEMDFp0">U-Boot / Amlogic</a></li>
@@ -238,8 +238,8 @@ <h4 id="arm-platforms"><a class="header" href="#arm-platforms">Arm platforms</a>
238238
</ul>
239239
</li>
240240
</ul>
241-
<h4 id="risc-v-platforms"><a class="header" href="#risc-v-platforms">RISC-V platforms</a></h4>
242-
<p><strong>TODO</strong></p>
241+
<h3 id="risc-v-platforms"><a class="header" href="#risc-v-platforms">RISC-V platforms</a></h3>
242+
<p>TODO</p>
243243

244244
</main>
245245

platform-security.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ <h1 class="menu-title">Platform System Interface Specification</h1>
176176

177177
<div id="content" class="content">
178178
<main>
179-
<h2 id="platform-security"><a class="header" href="#platform-security">Platform Security</a></h2>
179+
<h1 id="platform-security"><a class="header" href="#platform-security">Platform Security</a></h1>
180180
<p>In order to design a secure platform, each and every component in the boot
181181
process must be <em>measured</em> and/or <em>verified</em>. In addition, the platform in its
182182
entirety must be modeled so that only desired operations are permitted.</p>

0 commit comments

Comments
 (0)