diff mbox series

[v3] gitlab: x86: Add a coreboot test

Message ID 20220120204314.v3.1.I8f451123c2dd44a736c22995284b926cfdfe5ccd@changeid
State Superseded
Delegated to: Tom Rini
Headers show
Series [v3] gitlab: x86: Add a coreboot test | expand

Commit Message

Simon Glass Jan. 21, 2022, 3:43 a.m. UTC
Coreboot supports U-Boot as a payload and this recently got a bit of a
facelist. Add a test for this.

For now this uses a binary build of coreboot (v4.15). Future work could
potentially build it from source, but we need to figure out the
toolchain problems first, since coreboot uses its own toolchain. It
turns out that this is tricky, because coreboot fails to build with a
vanilla gcc.

This needs some changes to the hooks scripts as well. An example build
is at https://source.denx.de/u-boot/custodians/u-boot-dm/-/jobs/359687

Signed-off-by: Simon Glass <sjg@chromium.org>
---

Changes in v3:
- Drop RFC tag

Changes in v2:
- Drop the local CI changes; we need the real ones applied first anyway

 .gitlab-ci.yml | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

Comments

Tom Rini Jan. 21, 2022, 2:54 p.m. UTC | #1
On Thu, Jan 20, 2022 at 08:43:25PM -0700, Simon Glass wrote:
> Coreboot supports U-Boot as a payload and this recently got a bit of a
> facelist. Add a test for this.
> 
> For now this uses a binary build of coreboot (v4.15). Future work could
> potentially build it from source, but we need to figure out the
> toolchain problems first, since coreboot uses its own toolchain. It
> turns out that this is tricky, because coreboot fails to build with a
> vanilla gcc.
> 
> This needs some changes to the hooks scripts as well. An example build
> is at https://source.denx.de/u-boot/custodians/u-boot-dm/-/jobs/359687
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
> 
> Changes in v3:
> - Drop RFC tag
> 
> Changes in v2:
> - Drop the local CI changes; we need the real ones applied first anyway
> 
>  .gitlab-ci.yml | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)

We need to do similar in Azure.  Due to the nature of what hosts are
available, GitLab ends up being a subset of Azure in terms of whats
tested (we can't easily do Windows/macOS host tools in GitLab).
Simon Glass Jan. 21, 2022, 4:53 p.m. UTC | #2
Hi Tom,

On Fri, 21 Jan 2022 at 07:54, Tom Rini <trini@konsulko.com> wrote:
>
> On Thu, Jan 20, 2022 at 08:43:25PM -0700, Simon Glass wrote:
> > Coreboot supports U-Boot as a payload and this recently got a bit of a
> > facelist. Add a test for this.
> >
> > For now this uses a binary build of coreboot (v4.15). Future work could
> > potentially build it from source, but we need to figure out the
> > toolchain problems first, since coreboot uses its own toolchain. It
> > turns out that this is tricky, because coreboot fails to build with a
> > vanilla gcc.
> >
> > This needs some changes to the hooks scripts as well. An example build
> > is at https://source.denx.de/u-boot/custodians/u-boot-dm/-/jobs/359687
> >
> > Signed-off-by: Simon Glass <sjg@chromium.org>
> > ---
> >
> > Changes in v3:
> > - Drop RFC tag
> >
> > Changes in v2:
> > - Drop the local CI changes; we need the real ones applied first anyway
> >
> >  .gitlab-ci.yml | 26 ++++++++++++++++++++++++++
> >  1 file changed, 26 insertions(+)
>
> We need to do similar in Azure.  Due to the nature of what hosts are
> available, GitLab ends up being a subset of Azure in terms of whats
> tested (we can't easily do Windows/macOS host tools in GitLab).

Oops I forgot to add that, will do.

Regards,
Simon
diff mbox series

Patch

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4c44c01e7bf..75ad67fab03 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -52,6 +52,16 @@  stages:
         genimage --inputpath . --config board/sifive/unleashed/genimage_spi-nor.cfg;
         cp images/spi-nor.img ${UBOOT_TRAVIS_BUILD_DIR}/;
       fi
+    - if [[ "${TEST_PY_BD}" == "coreboot" ]]; then
+        wget -O -
+          "https://drive.google.com/uc?id=1x6nrtWIyIRPLS2cQBwYTnT2TbOI8UjmM&export=download" |
+          xz -dc >${UBOOT_TRAVIS_BUILD_DIR}/coreboot.rom;
+        wget -O -
+          "https://drive.google.com/uc?id=149Cz-5SZXHNKpi9xg6R_5XITWohu348y&export=download" >
+          cbfstool;
+        chmod a+x cbfstool;
+        ./cbfstool ${UBOOT_TRAVIS_BUILD_DIR}/coreboot.rom add-flat-binary -f ${UBOOT_TRAVIS_BUILD_DIR}/u-boot.bin -n fallback/payload -c LZMA -l 0x1110000 -e 0x1110000;
+      fi
     - virtualenv -p /usr/bin/python3 /tmp/venv
     - . /tmp/venv/bin/activate
     - pip install -r test/py/requirements.txt
@@ -61,6 +71,10 @@  stages:
       ./test/py/test.py -ra --bd ${TEST_PY_BD} ${TEST_PY_ID}
         ${TEST_PY_TEST_SPEC:+"-k ${TEST_PY_TEST_SPEC}"}
         --build-dir "$UBOOT_TRAVIS_BUILD_DIR"
+    # It seems that the files in /tmp go away, so copy out what we need
+    - if [[ "${TEST_PY_BD}" == "coreboot" ]]; then
+        cp -v /tmp/coreboot/*.{html,css} .;
+      fi
 
 build all 32bit ARM platforms:
   stage: world build
@@ -387,3 +401,15 @@  xtfpga test.py:
     TEST_PY_TEST_SPEC: "not sleep"
     TEST_PY_ID: "--id qemu"
   <<: *buildman_and_testpy_dfn
+
+coreboot test.py:
+  variables:
+    TEST_PY_BD: "coreboot"
+    TEST_PY_TEST_SPEC: "not sleep"
+    TEST_PY_ID: "--id qemu"
+  artifacts:
+    paths:
+      - "*.html"
+      - "*.css"
+    expire_in: 1 week
+  <<: *buildman_and_testpy_dfn