Showing 1,817 changed files with 38,870 additions and 26,047 deletions.
1 change: 0 additions & 1 deletion .gitlab-ci/regression.sh
Expand Up @@ -2,7 +2,6 @@

git clone https://$GITLAB_ROBOT_USERNAME:$GITLAB_ROBOT_TOKEN@$TESTS_REPO_GIT
cd $TESTS_REPO_DIR
git checkout a20523022bdd6ecdb419bc952f866babce77a179

sed -i 's+git@gitlab.com:3mdeb/rte/rtectrl-rest-api.git+https://'$GITLAB_ROBOT_USERNAME':'$GITLAB_ROBOT_TOKEN'@gitlab.com/3mdeb/rte/rtectrl-rest-api.git+' .gitmodules
sed -i 's+git@gitlab.com:3mdeb/rte/snipeit-rest-api.git+https://'$GITLAB_ROBOT_USERNAME':'$GITLAB_ROBOT_TOKEN'@gitlab.com/3mdeb/rte/snipeit-rest-api.git+' .gitmodules
Expand Down
2 changes: 1 addition & 1 deletion 3rdparty/amd_blobs
Submodule amd_blobs updated from 75c8cb to f63876
8 changes: 8 additions & 0 deletions CHANGELOG.md
Expand Up @@ -12,6 +12,14 @@ official [coreboot repository](https://review.coreboot.org/cgit/coreboot.git)
Please use [pce-fw-builder](https://github.com/pcengines/pce-fw-builder)

## [Unreleased]
## [v4.15.0.1] - 2021-11-26
### Changed
- rebased with official coreboot repository commit 6973a3e7

## [v4.14.0.6] - 2021-10-29
### Changed
- rebased with official coreboot repository commit d06c0917

## [v4.14.0.5] - 2021-10-08
### Changed
- rebased with official coreboot repository commit d4c55353
Expand Down
2 changes: 1 addition & 1 deletion Documentation/RFC/chip.tex
Expand Up @@ -7,7 +7,7 @@

\section{Scope}
This document defines how LinuxBIOS programmers can specify chips that
are used, specified, and initalized. The current scope is for superio
are used, specified, and initialized. The current scope is for superio
chips, but the architecture should allow for specification of other chips such
as southbridges. Multiple chips of same or different type are supported.

Expand Down
2 changes: 1 addition & 1 deletion Documentation/acpi/devicetree.md
Expand Up @@ -5,7 +5,7 @@
ACPI exposes a platform-independent interface for operating systems to perform
power management and other platform-level functions. Some operating systems
also use ACPI to enumerate devices that are not immediately discoverable, such
as those behind I2C or SPI busses (in contrast to PCI). This document discusses
as those behind I2C or SPI buses (in contrast to PCI). This document discusses
the way that coreboot uses the concept of a "device tree" to generate ACPI
tables for usage by the operating system.

Expand Down
9 changes: 0 additions & 9 deletions Documentation/acpi/gpio.md
Expand Up @@ -84,15 +84,6 @@ the raw Rx gpio value.

## Implementation Details

ACPI library in coreboot will provide weak definitions for all the
above functions with error messages indicating that these functions
are being used. This allows drivers to conditionally make use of GPIOs
based on device-tree entries or any other config option. It is
recommended that the SoC code in coreboot should provide
implementations of all the above functions generating ACPI AML code
irrespective of them being used in any driver. This allows mainboards
to use any drivers and take advantage of this common infrastructure.

Platforms are restricted to using Local5, Local6 and Local7 variables
only in implementations of the above functions. Any AML methods called
by the above functions do not have any such restrictions on use of
Expand Down
4 changes: 2 additions & 2 deletions Documentation/arch/x86/index.md
Expand Up @@ -92,6 +92,6 @@ Here's a list of known issues:
page tables in ROM will be loaded and used, which breaks code and data as
the page table doesn't contain the expected data. This in turn leads to
undefined behaviour whenever the 'wrong' address is being read.
* Disabling paging in compability mode crashes the CPU.
* Returning from long mode to compability mode crashes the CPU.
* Disabling paging in compatibility mode crashes the CPU.
* Returning from long mode to compatibility mode crashes the CPU.
* Entering long mode crashes on AMD host platforms.
4 changes: 3 additions & 1 deletion Documentation/community/forums.md
Expand Up @@ -17,7 +17,9 @@ We also have a real time chat room on [IRC](ircs://irc.libera.chat/#coreboot),
also bridged to [Matrix](https://matrix.to/#/#coreboot:libera.chat) and a
[Discord](https://discord.gg/JqT8NM5Zbg) presence. You can also find us on
[OSF Slack](https://osfw.slack.com/), which has channels on many open source
firmware related topics.
firmware related topics. Slack requires that people come from specific domains
or are explicitly invited. To work around that, there's an
[invite bot](https://slack.osfw.dev/) to let people in.

## Fortnightly coreboot leadership meeting

Expand Down
2 changes: 1 addition & 1 deletion Documentation/conf.py
Expand Up @@ -185,7 +185,7 @@
enable_auto_toc_tree = True

class MyCommonMarkParser(CommonMarkParser):
# remove this hack once upsteam RecommonMark supports inline code
# remove this hack once upstream RecommonMark supports inline code
def visit_code(self, mdnode):
from docutils import nodes
n = nodes.literal(mdnode.literal, mdnode.literal)
Expand Down
4 changes: 2 additions & 2 deletions Documentation/contributing/coding_style.md
@@ -1,6 +1,6 @@
# Coding Style

This is a short document describing the preferred coding style for the
This document describes the preferred C coding style for the
coreboot project. It is in many ways exactly the same as the Linux
kernel coding style. In fact, most of this document has been copied from
the [Linux kernel coding style](http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/Documentation/CodingStyle?id=HEAD)
Expand Down Expand Up @@ -801,7 +801,7 @@ There are a LOT of cpu cycles that can go into these 5 milliseconds.

A reasonable rule of thumb is to not put inline at functions that have
more than 3 lines of code in them. An exception to this rule are the
cases where a parameter is known to be a compiletime constant, and as a
cases where a parameter is known to be a compile time constant, and as a
result of this constantness you *know* the compiler will be able to
optimize most of your function away at compile time. For a good example
of this later case, see the kmalloc() inline function.
Expand Down
4 changes: 2 additions & 2 deletions Documentation/contributing/project_ideas.md
Expand Up @@ -202,9 +202,9 @@ Build an open source replacement written in Golang using existing tools
and libraries, consisting of a backend, a frontend and client side
scripts. The backend should connect to an SQL database with can be
controlled using a RESTful API. The RESTful API should have basic authentication
for managment tasks and new board status uploads.
for management tasks and new board status uploads.

At least one older test result should be keept in the database.
At least one older test result should be kept in the database.

The frontend should use established UI libraries or frameworks (for example
Angular) to display the current board status, that is if it's working or not
Expand Down
5 changes: 0 additions & 5 deletions Documentation/distributions.md
Expand Up @@ -17,11 +17,6 @@ running on the Embedded Controller (EC) – a small microcontroller which provid
functions like battery management, keyboard support, and sensor interfacing –
is open source as well.

### Libretrend

[Libretrend](https://libretrend.com) sells the Librebox, a NUC-like PC which
ships with coreboot firmware.

### PC Engines APUs

[PC Engines](https://pcengines.ch) designs and sells embedded PC hardware that
Expand Down
2 changes: 1 addition & 1 deletion Documentation/drivers/index.md
Expand Up @@ -2,7 +2,7 @@

The drivers can be found in `src/drivers`. They are intended for onboard
and plugin devices, significantly reducing integration complexity and
they allow to easily reuse existing code accross platforms.
they allow to easily reuse existing code across platforms.

* [Intel DPTF](dptf.md)
* [IPMI KCS](ipmi_kcs.md)
Expand Down
2 changes: 1 addition & 1 deletion Documentation/flash_tutorial/index.md
Expand Up @@ -7,7 +7,7 @@ flash IC.

## Contents

* [Flashing internaly](int_flashrom.md)
* [Flashing internally](int_flashrom.md)
* [Flashing firmware standalone](ext_standalone.md)
* [Flashing firmware externally supplying direct power](ext_power.md)
* [Flashing firmware externally without supplying direct power](no_ext_power.md)
Expand Down
2 changes: 1 addition & 1 deletion Documentation/gcov.txt
Expand Up @@ -19,7 +19,7 @@ time). The file gcov-io.c is unchanged.
+#define BITS_PER_UNIT 8
+#define LONG_LONG_TYPE_SIZE 64
+
+/* There are many gcc_assertions. Set the vaule to 1 if we want a warning
+/* There are many gcc_assertions. Set the value to 1 if we want a warning
+ message if the assertion fails. */
+#ifndef ENABLE_ASSERT_CHECKING
+#define ENABLE_ASSERT_CHECKING 1
Expand Down
4 changes: 2 additions & 2 deletions Documentation/getting_started/architecture.md
Expand Up @@ -41,7 +41,7 @@ The bootblock loads the romstage or the verstage if verified boot is enabled.

### Cache-As-Ram
The *Cache-As-Ram*, also called Non-Eviction mode, or *CAR* allows to use the
CPU cache like regular SRAM. This is particullary usefull for high level
CPU cache like regular SRAM. This is particullary useful for high level
languages like `C`, which need RAM for heap and stack.

The CAR needs to be activated using vendor specific CPU instructions.
Expand Down Expand Up @@ -85,7 +85,7 @@ The ramstage does the main device init:
* CPU init (like set up SMM)

After initialization tables are written to inform the payload or operating system
about the current hardware existance and state. That includes:
about the current hardware existence and state. That includes:

* ACPI tables (x86 specific)
* SMBIOS tables (x86 specific)
Expand Down
2 changes: 1 addition & 1 deletion Documentation/getting_started/writing_documentation.md
Expand Up @@ -6,7 +6,7 @@
That said please always try to write documentation! One problem in the
firmware development is the missing documentation. In this document
you will get a brief introduction how to write, submit and publish
documenation to coreboot.
documentation to coreboot.

## Preparations

Expand Down
6 changes: 6 additions & 0 deletions Documentation/index.md
Expand Up @@ -45,6 +45,12 @@ to the payload), but it's also a value that is deeply ingrained in the
project. We fearlessly rip out parts of the architecture and remodel it
when a better way of doing the same was identified.

That said, since there are attempts to coerce coreboot to move in various
directions by outside "standardization", long-established practices of
coreboot as well as aligned projects can be documented as best practices,
making them standards in their own right. However we reserve the right to
retire them as the landscape shifts around us.

### One tree for everything

Another difference to various other firmware projects is that we try
Expand Down
2 changes: 1 addition & 1 deletion Documentation/lib/payloads/fit.md
Expand Up @@ -25,7 +25,7 @@ The section must be named in order to be found by the FIT parser:

## Architecture specifics

The FIT parser needs architecure support.
The FIT parser needs architecture support.

### aarch32
The source code can be found in `src/arch/arm/fit_payload.c`.
Expand Down
2 changes: 1 addition & 1 deletion Documentation/lib/timestamp.md
Expand Up @@ -99,7 +99,7 @@ exist and an entry structure to hold variable number of entries.

### entries

This field holds the details of each timestamp entry, upto a maximum
This field holds the details of each timestamp entry, up to a maximum
of `MAX_TIMESTAMP_CACHE` which is defined as 16 entries. Each entry is
defined by:

Expand Down
2 changes: 1 addition & 1 deletion Documentation/mainboard/amd/padmelon/padmelon.md
Expand Up @@ -43,7 +43,7 @@ Three items are marked in this picture
+---------------------+--------------------+
| Size | 8 MiB |
+---------------------+--------------------+
| Flash programing | dediprog header |
| Flash programming | dediprog header |
+---------------------+--------------------+
| Package | SOIC-8 |
+---------------------+--------------------+
Expand Down
2 changes: 1 addition & 1 deletion Documentation/mainboard/emulation/qemu-aarch64.md
@@ -1,5 +1,5 @@
# QEMU AArch64 emulator
This page discribes how to build and run coreboot for QEMU/AArch64.
This page describes how to build and run coreboot for QEMU/AArch64.
You can use LinuxBoot via `make menuconfig` or an arbitrary FIT image
as a payload for QEMU/AArch64.

Expand Down
4 changes: 4 additions & 0 deletions Documentation/mainboard/index.md
Expand Up @@ -182,15 +182,19 @@ The boards in this section are not real mainboards, but emulators.

- [Adder Workstation 1](system76/addw1.md)
- [Adder Workstation 2](system76/addw2.md)
- [Bonobo Workstation 14](system76/bonw14.md)
- [Darter Pro 6](system76/darp6.md)
- [Darter Pro 7](system76/darp7.md)
- [Galago Pro 4](system76/galp4.md)
- [Galago Pro 5](system76/galp5.md)
- [Gazelle 15](system76/gaze15.md)
- [Gazelle 16](system76/gaze16.md)
- [Lemur Pro 9](system76/lemp9.md)
- [Lemur Pro 10](system76/lemp10.md)
- [Oryx Pro 5](system76/oryp5.md)
- [Oryx Pro 6](system76/oryp6.md)
- [Oryx Pro 7](system76/oryp7.md)
- [Oryx Pro 8](system76/oryp8.md)

## Texas Instruments

Expand Down
2 changes: 1 addition & 1 deletion Documentation/mainboard/lenovo/Ivy_Bridge_series.md
Expand Up @@ -76,7 +76,7 @@ region. The update is then written into the EC once.

[fl]: flashlayout_Ivy_Bridge.svg

## Reducing Intel Managment Engine firmware size
## Reducing Intel Management Engine firmware size

It is possible to reduce the Intel ME firmware size to free additional
space for the `bios` region. This is usually referred to as *cleaning the ME* or
Expand Down
2 changes: 1 addition & 1 deletion Documentation/mainboard/lenovo/Sandy_Bridge_series.md
Expand Up @@ -48,7 +48,7 @@ region. The update is then written into the EC once.

[fl]: flashlayout_Sandy_Bridge.svg

## Reducing Intel Managment Engine firmware size
## Reducing Intel Management Engine firmware size

It is possible to reduce the Intel ME firmware size to free additional
space for the `bios` region. This is usually referred to as *cleaning the ME* or
Expand Down
2 changes: 1 addition & 1 deletion Documentation/mainboard/lenovo/vboot.md
Expand Up @@ -28,7 +28,7 @@ to boot and flash a working image to the A/B partition.

## 8 MiB ROM limitation
*Lenovo* devices with 8 MiB ROM only have a `RO`+`A` partition enabled in the
default FMAP. They are missing the `B` partition, due to size constaints.
default FMAP. They are missing the `B` partition, due to size constraints.
You can still provide your own FMAP if you need `RO`+`A`+`B` partitions.

## CMOS
Expand Down
16 changes: 14 additions & 2 deletions Documentation/mainboard/ocp/deltalake.md
Expand Up @@ -7,15 +7,24 @@ Delta Lake server platform.

OCP Delta Lake server platform is a component of multi-host server system
Yosemite-V3. Both [Delta Lake server design spec] and [Yosemite-V3 design
spec] were contributed to [OCP].
spec] were [OCP] accepted.

On the other hand, Wiwynn's Yosemite-V3 system and Delta Lake server product
along with its OSF implementation, which is based on FSP/coreboot/LinuxBoot
stack, was [OCP] accepted; For details, check:
- [The OCP blog]
- [The Wiwynn Press Release]
- [The Wiwynn's Yosemite-V3 product in OCP market place]
Wiwynn and 9Elements formed a partnership to offer the Wiwynn's Yosemite-V3
product and OSF for it.

Delta Lake server is a single socket Cooper Lake Scalable Processor (CPX-SP) server.
Intel Cooper Lake Scalable Processor was launched in Q2 2020.

Yosemite-V3 has multiple configurations. Depending on configurations, it may
host up to 4 Delta Lake servers (blades) in one sled.

The Yosemite-V3 system is in mass production. Facebook, Intel and partners
The Yosemite-V3 system is in mass production. Meta, Intel and partners
jointly develop Open System Firmware (OSF) solution on Delta Lake as an alternative
solution. The OSF solution is based on FSP/coreboot/LinuxBoot stack. The
OSF solution reached production quality for some use cases in July, 2021.
Expand Down Expand Up @@ -187,6 +196,9 @@ and [u-root] as initramfs.
[OCP]: https://www.opencompute.org
[Delta Lake server design spec]: https://www.opencompute.org/documents/delta-lake-1s-server-design-specification-1v05-pdf
[Yosemite-V3 design spec]: https://www.opencompute.org/documents/ocp-yosemite-v3-platform-design-specification-1v16-pdf
[The OCP blog]: https://www.opencompute.org/blog/open-system-firmware-for-ocp-server-deltalake-is-published
[The Wiwynn Press Release]: https://www.prnewswire.com/news-releases/wiwynn-successfully-implemented-open-system-firmware-on-its-ocp-yosemite-v3-server-301417374.html?tc=eml_cleartime
[The Wiwynn's Yosemite-V3 product in OCP market place]: https://www.opencompute.org/products/423/wiwynn-yosemite-v3-server
[osf-builder]: https://github.com/facebookincubator/osf-builder
[OCP virtual summit 2020]: https://www.opencompute.org/summit/virtual-summit/schedule
[flashrom]: https://flashrom.org/Flashrom
Expand Down
2 changes: 1 addition & 1 deletion Documentation/mainboard/ocp/tiogapass.md
Expand Up @@ -51,7 +51,7 @@ To connect to console through SOL (Serial Over Lan):

## Known issues / feature gaps
- C6 state is not supported. Workaround is to disable C6 support through
target OS and Linuxboot kernel paramter, such as "cpuidle.off=1".
target OS and Linuxboot kernel parameter, such as "cpuidle.off=1".
- SMI handlers are not implemented.
- xSDT tables are not fully populated, such as processor/socket devices,
PCIe bridge devices.
Expand Down