Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rel 24.08.00.01 #9

Open
wants to merge 67 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
8bf3e89
0010-mainboard-pcengines-add-support-for-getting-sku-and-.patch: make…
pietrushnic Nov 4, 2024
bc62f14
shift config name change ealier
pietrushnic Nov 4, 2024
e2cd250
add build.sh patches
pietrushnic Nov 5, 2024
bce183a
0001-configs-sort-apu5-config-and-move-apu2-3-4-to-seabio.patch: make…
pietrushnic Nov 5, 2024
253077f
gitignore: initial commit, ignore patches backup files
pietrushnic Nov 5, 2024
f4f3a03
gitignore: add patches/status and default branch dir patchqueue
pietrushnic Nov 5, 2024
5bc399c
improve initial series to not touch upstream files
pietrushnic Nov 5, 2024
f340576
remove not needed 0001-configs-remove-apu1-and-add-apu2-4.patch
pietrushnic Nov 5, 2024
0320761
add-memtestv5-to-apu3-and-apu5-configs.patch: remove apu5 mods
pietrushnic Nov 5, 2024
8590e85
replace memtest change patch with one that does not touch apu5
pietrushnic Nov 5, 2024
e21287c
0002-payloads-seabios-use-PC-Engines-repository.patch: make sure to u…
pietrushnic Nov 5, 2024
acc13fb
0003-payloads-add-support-for-sortbootorder.patch: remove apu5 and bu…
pietrushnic Nov 5, 2024
dda0508
0001-configs-add-memtest-v5-as-payload-for-apu3.patch: remove redunda…
pietrushnic Nov 5, 2024
e412d71
patches/series: mak sure to apply 0001-payloads-ipxe-bump-iPXE-to-202…
pietrushnic Nov 5, 2024
0e9a225
0001-configs-add-pcengines_seabios_apu-2-4.patch: remove redundant me…
pietrushnic Nov 5, 2024
1cbad75
patches/0001-configs-add-pcengines_seabios_apu3.patch: add fully feat…
pietrushnic Nov 5, 2024
2c663a6
0003-payloads-add-support-for-sortbootorder.patch: metadata bump
pietrushnic Nov 5, 2024
67e993b
0012-mainboard-pcengines-add-memory-configuration-and-sta.patch: make…
pietrushnic Nov 5, 2024
09ac165
modify only apu3 related configuration do not touch apu5
pietrushnic Nov 5, 2024
6031a95
0002-payloads-seabios-use-PC-Engines-repository.patch: align with cha…
pietrushnic Nov 5, 2024
62e5ef6
0003-payloads-add-support-for-sortbootorder.patch: align with changed…
pietrushnic Nov 5, 2024
bf02ce4
0005-configs-add-support-for-bootorder-files-for-PC-Engin.patch: boot…
pietrushnic Nov 5, 2024
8514886
patches/series: remove patch 19
pietrushnic Nov 6, 2024
83fedc1
0010-mainboard-pcengines-add-support-for-getting-sku-and-.patch: adju…
pietrushnic Nov 6, 2024
f245809
0012-mainboard-pcengines-add-memory-configuration-and-sta.patch: adju…
pietrushnic Nov 6, 2024
dfb6039
0023-payloads-SeaBIOS-provide-help-for-added-SeaBIOS-opti.patch: remo…
pietrushnic Nov 6, 2024
51ee503
0025-mb-pcengines-apu2-mainboard.c-do-not-proceed-with-en.patch: adju…
pietrushnic Nov 6, 2024
f968a32
0028-src-mb-pcengines-apu-add-custom-SeaBIOS-config.patch: adjust for…
pietrushnic Nov 6, 2024
e5fc7dd
0030-payloads-external-iPXE-menu.ipxe-enable-autoboot-for.patch: appl…
pietrushnic Nov 6, 2024
a910a6c
adjustments for 24.08
pietrushnic Nov 6, 2024
7c35828
fix apu4 bootorder and remove apu5 bootorder and other mods
pietrushnic Nov 6, 2024
4ddba66
0060-coreboot_table-include-DRTM-TPM-log-in-coreboot-tabl.patch: adju…
pietrushnic Nov 6, 2024
9b5cce6
0070-mainboard-pcengines-Use-FMAP-layout.patc: adjust for 24.08
pietrushnic Nov 6, 2024
dfcfcda
add support for dasharo(coreboot+seabios) for qemu q35
pietrushnic Nov 7, 2024
4a81c2a
add_support_for_dasharo(coreboot+seabios)_for_qemu_q35.patch: decreas…
pietrushnic Nov 14, 2024
3401708
remove apu7 from patches
pietrushnic Nov 14, 2024
96c14dd
use v24.08.00.01 localversion and correct refs for seabios and sortbo…
pietrushnic Nov 14, 2024
07518af
move configs/config.pcengines_apu6 -> configs/config.pcengines_seabio…
pietrushnic Nov 14, 2024
f287934
.github/workflows/build.yml: add support for pcengines_seabios_apu{2,…
pietrushnic Nov 22, 2024
91242e3
update seabios version
pietrushnic Nov 23, 2024
9be3058
.github/workflows/build.yml: use dasharo-sdk:v1.6.0-rc4
pietrushnic Nov 24, 2024
7153c7b
.github/workflows/build.yml: enable qemu build
pietrushnic Nov 24, 2024
73b8e3c
.github/workflows/build.yml: correct image for build_q35
pietrushnic Nov 24, 2024
ad749ab
.github/workflows/build.yml: correct build path
pietrushnic Nov 24, 2024
5982c58
.github/workflows/build.yml: do make BUILD_TIMELESS and search fro co…
pietrushnic Nov 24, 2024
d95c45c
add_support_for_dasharo(coreboot+seabios)_for_qemu_q35.patch: seabios…
pietrushnic Nov 24, 2024
9a55b6d
.github/workflows/build.yml: try to correctly point to coreboot.rom
pietrushnic Nov 24, 2024
71ebca9
patches/add_support_for_dasharo(coreboot+seabios)_for_qemu_q35.patch:…
pietrushnic Nov 24, 2024
87ecf86
.github/workflows/build.yml: add annoted tag before build
pietrushnic Nov 24, 2024
a5810ce
patches/add_support_for_dasharo(coreboot+seabios)_for_qemu_q35.patch:…
pietrushnic Nov 24, 2024
9e878fe
0002-build.sh-add-support-for-uefi-seabios-_apuX-builds.patch: use da…
pietrushnic Nov 24, 2024
de3be01
add_support_for_dasharo(coreboot+seabios)_for_qemu_q35.patch: use das…
pietrushnic Nov 25, 2024
660d167
make libpayload reproducible
pietrushnic Nov 25, 2024
632beb8
.github/workflows/build.yml: improve qemu artifacts
pietrushnic Nov 25, 2024
b30070e
.github/workflows/build.yml: correct paths of qemu rom
pietrushnic Nov 25, 2024
dbf8fc1
.github/workflows/build.yml: add VERSION to env
pietrushnic Nov 25, 2024
0ad0430
.github/workflows/build.yml: set VERSION in first action
pietrushnic Nov 25, 2024
4a4cd22
.github/workflows/build.yml: set version also for qemu
pietrushnic Nov 25, 2024
b7e6737
.github/workflows/build.yml: fix paths to qemu rom
pietrushnic Nov 25, 2024
5be5d52
.github/workflows/build.yml: correct paths and env usage
pietrushnic Nov 25, 2024
f6bc99e
.github/workflows/build.yml: adjust paths for qemu build
pietrushnic Nov 25, 2024
b98e014
patches/add-dasharo-blobs-submodule: add new patch
pietrushnic Dec 2, 2024
c14f592
patches/use-dasharo-blobs-dasharo.ipxe: add new patch
pietrushnic Dec 2, 2024
cd7eec8
README.md: update with 24.08.00.01 procedure
pietrushnic Dec 26, 2024
5dcfdc4
README.md: spelling and formatting corrections, removal of depecated …
pietrushnic Dec 27, 2024
087a7ed
README.md: add release process notes
pietrushnic Dec 27, 2024
55785d7
patches/0002-build.sh-add-support-for-uefi-seabios-_apuX-builds.patch…
pietrushnic Dec 27, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
129 changes: 129 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
name: Dasharo
on:
push:
branches:
- rel_*

jobs:
build_pcengines:
runs-on: ubuntu-22.04
container:
image: ghcr.io/dasharo/dasharo-sdk:v1.6.0-rc4
options: --user 1001
strategy:
matrix:
vendor: [ pcengines ]
model: [ apu2, apu3, apu4, apu6 ]
payload: [ seabios ]
steps:
- name: Checkout coreboot
run: |
echo "VERSION=$(echo ${GITHUB_REF#refs/heads/rel_} | tr '/' '_')" >> $GITHUB_ENV
VERSION=$(echo ${GITHUB_REF#refs/heads/rel_} | tr '/' '_')
CORELABEL=$(echo $VERSION | awk -F '.' '{if ($3 == "00") print $1"."$2; else print $1"."$2"."$3}')
echo "Extracted Coreboot version: $CORELABEL"
git clone https://review.coreboot.org/coreboot
cd coreboot
git checkout $CORELABEL -b patchqueue
- name: Checkout repository
uses: actions/checkout@v4
with:
# Checkout pull request HEAD commit instead of merge commit
# See: https://github.com/actions/checkout#checkout-pull-request-head-commit-instead-of-merge-commit
ref: ${{ github.event.pull_request.head.sha }}
# Fetch complete history
fetch-depth: 0
path: coreboot/.git/patches
- name: Set Up Git
run: |
cd $GITHUB_WORKSPACE/coreboot
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
ln -s patches .git/patches/patchqueue
touch .git/patches/patchqueue/status
- name: Apply Patches Using Guilt
run: |
cd $GITHUB_WORKSPACE/coreboot
guilt push -a
- name: Checkout coreboot submodules and add annoted tag
run: |
cd $GITHUB_WORKSPACE/coreboot
git submodule update --init --recursive --checkout
# this is for verification of reproducibility in local builds
git tag -a github-actions-bot-tag -m "$GITHUB_REF_NAME"
- name: Build Dasharo
run: |
cd $GITHUB_WORKSPACE/coreboot
cp configs/config.${{ matrix.vendor }}_${{ matrix.payload }}_${{ matrix.model }} .config
make olddefconfig
make BUILD_TIMELESS=1
- name: Save artifacts
uses: actions/upload-artifact@v4
with:
name: "dasharo-${{ matrix.vendor }}-${{ matrix.model }}-${{ matrix.payload }}"
path: |
coreboot/build/coreboot.rom
retention-days: 30
build_q35:
runs-on: ubuntu-22.04
container:
image: ghcr.io/dasharo/dasharo-sdk:v1.6.0-rc4
options: --user 1001
strategy:
matrix:
vendor: [ emulation_qemu ]
model: [ x86_q35 ]
payload: [ smm_tseg_seabios ]
steps:
- name: Checkout coreboot
run: |
echo "VERSION=$(echo ${GITHUB_REF#refs/heads/rel_} | tr '/' '_')" >> $GITHUB_ENV
VERSION=$(echo ${GITHUB_REF#refs/heads/rel_} | tr '/' '_')
CORELABEL=$(echo $VERSION | awk -F '.' '{if ($3 == "00") print $1"."$2; else print $1"."$2"."$3}')
echo "Extracted Coreboot version: $CORELABEL"
git clone https://review.coreboot.org/coreboot
cd coreboot
git checkout $CORELABEL -b patchqueue
- name: Checkout repository
uses: actions/checkout@v4
with:
# Checkout pull request HEAD commit instead of merge commit
# See: https://github.com/actions/checkout#checkout-pull-request-head-commit-instead-of-merge-commit
ref: ${{ github.event.pull_request.head.sha }}
# Fetch complete history
fetch-depth: 0
path: coreboot/.git/patches
- name: Set Up Git
run: |
cd $GITHUB_WORKSPACE/coreboot
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
ln -s patches .git/patches/patchqueue
touch .git/patches/patchqueue/status
- name: Apply Patches Using Guilt
run: |
cd $GITHUB_WORKSPACE/coreboot
guilt push -a
- name: Checkout coreboot submodules and add annoted tag
run: |
cd $GITHUB_WORKSPACE/coreboot
git submodule update --init --recursive --checkout
# this is for verification of reproducibility in local builds
git tag -a github-actions-bot-tag -m "$GITHUB_REF_NAME"
- name: Build Dasharo
run: |
cd $GITHUB_WORKSPACE/coreboot
cp configs/config.${{ matrix.vendor }}_${{ matrix.model }}_${{ matrix.payload }} .config
make olddefconfig
make BUILD_TIMELESS=1
mv build/coreboot.rom build/qemu_q35_${VERSION}.rom
sha256sum build/qemu_q35_${VERSION}.rom > build/qemu_q35_${VERSION}.rom.sha256
- name: Save artifacts
uses: actions/upload-artifact@v4
with:
name: "dasharo-${{ matrix.vendor }}-${{ matrix.model }}-${{ matrix.payload }}_${{ env.VERSION }}"
path: |
coreboot/build/qemu_q35_${{ env.VERSION }}.rom
coreboot/build/qemu_q35_${{ env.VERSION }}.rom.sha256
retention-days: 30

3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
*.*~
patches/status
patchqueue
44 changes: 20 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ information on contributing to the Dasharo project.

## Usage

Following procedure was created while testing PC Engines v24.05.00.01. It
should be generalized after gaining better understanding of the Dasharo
Patchqueue Initiative.
Following procedure was created while testing PC Engines v24.05.00.01 and
retested while releasing v24.08.00.01. It should be generalized after gaining
better understanding of the Dasharo Patchqueue Initiative.

### Prepare code base

Expand All @@ -29,7 +29,7 @@ cd coreboot
Checkout branch on tag on which you would like to apply patchqueue:

```bash
git checkout 24.05 -b patchqueue
git checkout 24.08 -b patchqueue
```

Clone this repo:
Expand All @@ -44,10 +44,11 @@ Go to `.git/patches` and checkout correct patchqueue version:
cd .git/patches
```

In this case we plan to build Dasahro (coreboot+SeaBIOS) v24.05.00.01 for PC Engines:
In this case we plan to build Dasharo (coreboot+SeaBIOS) v25.08.00.01 for PC
Engines:

```bash
git checkout v25.05.00.01
git checkout v25.08.00.01
```

Get back to coreboot main directory:
Expand Down Expand Up @@ -114,24 +115,29 @@ Tag repository, otherwise hash of the build will not match since coreboot use
tag during build process:

```sh
git tag -a v24.05.00.01 -m "Some annotation which conten really doesn't matter"
git tag -a v24.08.00.01 -m "Some annotation which conten really doesn't matter"
```

**NOTE:** It has to be annotated tag, coreboot does not pick others.

### Compile
## Release process notes

To compile created code base please use [pce-fw-builder](https://github.com/pcengines/pce-fw-builder).
After applying all patches binaries for all platforms can be build:

```sh
./build.sh seabios_apu2 && ./build.sh seabios_apu3 && ./build.sh seabios_apu4 \
&& ./build.sh seabios_apu6
```

## Development

### How to handle bug in patches ?
### How to handle bug in patches?

- pop patches using `guilt pop` until you will have broken one on top of stack,
- modify files,
- Pop patches using `guilt pop` until you will have broken one on top of stack,
- Modify files,
- `guilt refresh` - this will store changes in required patch
- `guilt push -a` - to make sure all patches on top apply without problems
- commit changes to this repository
- Commit changes to this repository

Read `man guilt-pop` for efficient popping.

Expand Down Expand Up @@ -159,16 +165,6 @@ application issues. After resolving issues for given patch use `git add` to
stage required changes and `guilt refresh` to update patch, so it reflects
cleanly applicable change.

At this point you may need to check if code still compiles at this point, that
why [pce-fw-builder update](#pce-fw-builder-update) may be useful.

#### pce-fw-builder update

To understood what changes may be needed to
[pce-fw-builder](https://github.com/pcengines/pce-fw-builder) when updating to
new coreboot version, please check [this
MR](https://github.com/pcengines/pce-fw-builder/pull/66).

## Background

The `dasharo-pq` repository was created as a proof of concept to address issues
Expand Down Expand Up @@ -219,7 +215,7 @@ mentioned in [#310](https://github.com/Dasharo/dasharo-issues/issues/310).

### Why Track Patches in Git Instead of Just Using Branches?

> Follwing list of arguments was heavily influenced by discussion in
> Following list of arguments was heavily influenced by discussion in
> [#5](https://github.com/Dasharo/dasharo-pq/pull/5). Kudos to:
> [@krystian-hebel](https://github.com/krystian-hebel),
> [@andyhhp](https://github.com/andyhhp),
Expand Down
Loading