Showing 1,349 changed files with 26,662 additions and 19,821 deletions.
63 changes: 60 additions & 3 deletions .gitlab-ci.yml
Expand Up @@ -10,6 +10,7 @@ stages:
- test_rom
- sign_rom
- publish_rom
- run_regression

check_dependencies:
stage: check_dependencies
Expand All @@ -29,7 +30,7 @@ check_dependencies:
- git clone https://github.com/pcengines/pce-fw-builder.git /home/coreboot/pce-fw-builder
- cd /home/coreboot/pce-fw-builder
- git checkout `git describe --tags --abbrev=0`
- ./build.sh release-CI "${CI_COMMIT_REF_NAME}" "${PLATFORM}"
- bash -x ./build.sh release-CI "${CI_COMMIT_REF_NAME}" "${PLATFORM}"
- cp -v /home/coreboot/${PLATFORM}_${CI_COMMIT_REF_NAME}.rom ${RELEASE_DIR}
artifacts:
name: ${PLATFORM}
Expand Down Expand Up @@ -59,8 +60,8 @@ check_dependencies:
- docker
script:
- cd ${RELEASE_DIR}
- sha256sum ${PLATFORM}_${CI_COMMIT_REF_NAME}.rom > ${PLATFORM}_${CI_COMMIT_REF_NAME}.SHA256
- ls -la
- sha256sum ${PLATFORM}_${CI_COMMIT_REF_NAME}.rom > ${PLATFORM}_${CI_COMMIT_REF_NAME}.SHA256
- ls -la ${RELEASE_DIR}
artifacts:
name: ${PLATFORM}
paths:
Expand All @@ -75,6 +76,9 @@ check_dependencies:
stage: publish_rom
tags:
- docker
before_script:
- apt-get update
- apt-get install curl
script:
- ls -al ${RELEASE_DIR}
- curl -u ${UPLOADER_USERNAME}:${UPLOADER_PASSWORD} -X MKCOL ${UPLOADER_URL}/releases/
Expand All @@ -84,6 +88,31 @@ check_dependencies:
only:
- tags

.run_regression: &run_regression
image:
name: 3mdeb/rf-docker:0.4.2
# https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#overriding-the-entrypoint-of-an-image
# https://gitlab.com/gitlab-org/gitlab-runner/-/issues/2692
# use EMPTY ENTRYPOINT for docker >17.06
entrypoint: [""]
variables:
PLATFORM:
RTE_IP:
CONFIG:
AUTOFILL: 1
FIRMWARE_VERSION: $CI_COMMIT_REF_NAME
stage: run_regression
tags:
- local
timeout: 12h
before_script:
- apt-get update
- apt-get install binutils
script:
- bash -x .gitlab-ci/regression.sh
only:
- tags


build:apu1:
<<: *build_rom_apu
Expand Down Expand Up @@ -126,6 +155,13 @@ publish:apu2:
variables:
PLATFORM: apu2

regression:apu2:
<<: *run_regression
variables:
PLATFORM: apu2
CONFIG: apu2
RTE_IP: $RTE_IP_APU2


build:apu3:
<<: *build_rom_apu
Expand All @@ -147,6 +183,13 @@ publish:apu3:
variables:
PLATFORM: apu3

regression:apu3:
<<: *run_regression
variables:
PLATFORM: apu3
CONFIG: apu3
RTE_IP: $RTE_IP_APU3


build:apu4:
<<: *build_rom_apu
Expand All @@ -168,6 +211,13 @@ publish:apu4:
variables:
PLATFORM: apu4

regression:apu4:
<<: *run_regression
variables:
PLATFORM: apu4
CONFIG: apu4
RTE_IP: $RTE_IP_APU4


build:apu5:
<<: *build_rom_apu
Expand All @@ -188,3 +238,10 @@ publish:apu5:
<<: *publish_rom
variables:
PLATFORM: apu5

regression:apu5:
<<: *run_regression
variables:
PLATFORM: apu5
CONFIG: apu5
RTE_IP: $RTE_IP_APU5
18 changes: 18 additions & 0 deletions .gitlab-ci/regression.sh
@@ -0,0 +1,18 @@
#!/bin/bash

git clone https://$GITLAB_ROBOT_USERNAME:$GITLAB_ROBOT_TOKEN@gitlab.com/3mdeb/rte/open-firmware-rte.git
cd open-firmware-rte

git checkout gitlabci-regression
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
git submodule update --init --checkout

# legacy or mainline?
if [[ $FIRMWARE_VERSION =~ v4\.0.* ]]; then
export FIRMWARE="l"
else
export FIRMWARE="m"
fi

bash -cx "./regression.sh ${RELEASE_DIR}/${PLATFORM}_${CI_COMMIT_REF_NAME}.rom"
5 changes: 5 additions & 0 deletions .gitmodules
Expand Up @@ -46,3 +46,8 @@
path = 3rdparty/cmocka
url = https://review.coreboot.org/cmocka.git
update = none
[submodule "3rdparty/qc_blobs"]
path = 3rdparty/qc_blobs
url = ../qc_blobs.git
update = none
ignore = dirty
2 changes: 1 addition & 1 deletion 3rdparty/amd_blobs
Submodule amd_blobs updated from 5d4d09 to 1ac6d4
2 changes: 1 addition & 1 deletion 3rdparty/libgfxinit
Submodule libgfxinit updated from 8fc8e4 to 3318bf
2 changes: 1 addition & 1 deletion 3rdparty/libhwbase
Submodule libhwbase updated from bd0ed9 to a3edc6
1 change: 1 addition & 0 deletions 3rdparty/qc_blobs
Submodule qc_blobs added at 126fef
2 changes: 1 addition & 1 deletion 3rdparty/vboot
Submodule vboot updated from c53100 to 68de90
18 changes: 16 additions & 2 deletions CHANGELOG.md
Expand Up @@ -12,8 +12,21 @@ official [coreboot repository](https://review.coreboot.org/cgit/coreboot.git)
Please use [pce-fw-builder](https://github.com/pcengines/pce-fw-builder)

## [Unreleased]
## [v4.12.0.3] - 2020-07-29
### Fixed
- [memory speed values in the DMI table](https://github.com/pcengines/apu2-documentation/issues/176)
- [Cbmem error on apu1 caused by wrong ACPI table](https://github.com/pcengines/coreboot/issues/411)

### Changed
- rebased with official coreboot repository commit 8d5cedf
- [updated sortbootorder to v4.6.19](https://github.com/pcengines/sortbootorder/blob/master/CHANGELOG.md#v4619---2020-07-29)
- [extended flashing documentation with FreeBSD/pfSense guides](https://github.com/pcengines/apu2-documentation/blob/master/docs/firmware_flashing.md)

### Added
- [option in runtime config to reverse PCI addressing order](https://github.com/pcengines/coreboot/issues/392)

## [v4.12.0.2] - 2020-06-28
## Fixed
### Fixed
- [incorrrect serial number in dmidecode for apu1](https://github.com/pcengines/coreboot/issues/402)

### Changed
Expand Down Expand Up @@ -432,7 +445,8 @@ redundant code which was similar for APU2/3/5 boards.
- turn off D4 and D5 leds on boot
- enable power on after power failure

[Unreleased]: https://github.com/pcengines/coreboot/compare/v4.12.0.2...develop
[Unreleased]: https://github.com/pcengines/coreboot/compare/v4.12.0.3...develop
[v4.12.0.3]: https://github.com/pcengines/coreboot/compare/v4.12.0.2...v4.12.0.3
[v4.12.0.2]: https://github.com/pcengines/coreboot/compare/v4.12.0.1...v4.12.0.2
[v4.12.0.1]: https://github.com/pcengines/coreboot/compare/v4.11.0.6...v4.12.0.1
[v4.11.0.6]: https://github.com/pcengines/coreboot/compare/v4.11.0.5...v4.11.0.6
Expand Down
2 changes: 1 addition & 1 deletion Documentation/Makefile.sphinx
Expand Up @@ -2,7 +2,7 @@
#

# You can set these variables from the command line.
SPHINXOPTS =
SPHINXOPTS ?=
SPHINXBUILD = sphinx-build
SPHINXAUTOBUILD = sphinx-autobuild
PAPER =
Expand Down
12 changes: 11 additions & 1 deletion Documentation/arch/x86/index.md
Expand Up @@ -42,13 +42,23 @@ At the moment *$n* is 4, which results in identity mapping the lower 4 GiB.
* Fix compilation errors - *DONE*
* Fix linker errors - *TODO*
* Add x86_64 rmodule support - *DONE*
* Add x86_64 exception handlers - *TODO*
* Add x86_64 exception handlers - *DONE*
* Setup page tables for long mode - *DONE*
* Add assembly code for long mode - *DONE*
* Add assembly code for SMM - *DONE*
* Add assembly code for postcar stage - *TODO*
* Add assembly code to return to protected mode - *TODO*
* Implement reference code for mainboard `emulation/qemu-q35` - *TODO*

## Future work

1. Fine grained page tables for SMM:
* Must not have execute and write permissions for the same page.
* Must allow only that TSEG pages can be marked executable
* Must reside in SMRAM
2. Support 64bit PCI BARs above 4GiB
3. Place and run code above 4GiB

## Porting other boards
* Fix compilation errors
* Test how well CAR works with x86_64 and paging
Expand Down
29 changes: 27 additions & 2 deletions Documentation/conf.py
@@ -1,6 +1,18 @@
# -*- coding: utf-8 -*-
import subprocess
from recommonmark.parser import CommonMarkParser
import sphinx

# Get Sphinx version
major = 0
minor = 0
patchlevel = 0
version = sphinx.__version__.split(".")
if len(version) > 1:
major = int(version[0])
minor = int(version[1])
if len(version) > 2:
patchlevel = int(version[2])

# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
Expand All @@ -25,7 +37,18 @@
# The short X.Y version.
version = release.split("-")[0]

extensions = ['sphinxcontrib.ditaa']
extensions = []
# Load recommonmark, supported since 1.8+
if major >= 2 or (major == 1 and minor >= 8):
extensions += ['recommonmark']

# Try to load DITAA
try:
import sphinxcontrib.ditaa
except ImportError:
print("Error: Please install sphinxcontrib.ditaa for ASCII art conversion\n")
else:
extensions += 'sphinxcontrib.ditaa'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down Expand Up @@ -187,7 +210,9 @@ def visit_code(self, mdnode):

def setup(app):
from recommonmark.transform import AutoStructify
app.add_source_parser('.md', MyCommonMarkParser)
# Load recommonmark on old Sphinx
if major == 1 and minor < 8:
app.add_source_parser('.md', MyCommonMarkParser)

app.add_config_value('recommonmark_config', {
'enable_auto_toc_tree': True,
Expand Down