From 20bc19abb788a062c45e270fb7ea1596afd69b22 Mon Sep 17 00:00:00 2001 From: Tom Rini Date: Fri, 10 Apr 2020 15:53:01 -0400 Subject: [PATCH 1/9] Azure/GitLab: Move to latest Docker images - Based on newer 'bionic' snapshot - GCC 9.0 - RISCV GRUB binaries Signed-off-by: Tom Rini --- .azure-pipelines.yml | 2 +- .gitlab-ci.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 192c7ef5fe6..969d49b4093 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -1,7 +1,7 @@ variables: windows_vm: vs2017-win2016 ubuntu_vm: ubuntu-18.04 - ci_runner_image: trini/u-boot-gitlab-ci-runner:bionic-20200112-21Feb2020 + ci_runner_image: trini/u-boot-gitlab-ci-runner:bionic-20200311-10Apr2020 # Add '-u 0' options for Azure pipelines, otherwise we get "permission # denied" error when it tries to "useradd -m -u 1001 vsts_azpcontainer", # since our $(ci_runner_image) user is not root. diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ae158aa17c1..ada9293c15b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,7 +2,7 @@ # Grab our configured image. The source for this is found at: # https://gitlab.denx.de/u-boot/gitlab-ci-runner -image: trini/u-boot-gitlab-ci-runner:bionic-20200112-21Feb2020 +image: trini/u-boot-gitlab-ci-runner:bionic-20200311-10Apr2020 # We run some tests in different order, to catch some failures quicker. stages: From 091b48e07a20a49e668e9422759cc3a5393188fe Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Sat, 28 Mar 2020 07:25:25 -0700 Subject: [PATCH 2/9] travis: Replace pre-built ARM/ARM64 GRUB images with the one built from source As of today travis uses the pre-built GRUB ARM/ARM64 images from opensuse. But azure/gitlab are using images built from GRUB 2.04 source. This updates travis to build GRUB ARM/ARM64 UEFI targets from source, to keep in sync with azure/gitlab. Signed-off-by: Bin Meng --- .travis.yml | 55 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 49 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8a4a45c7345..ca5e6124a8d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,6 +14,7 @@ addons: - ubuntu-toolchain-r-test - llvm-toolchain-bionic-7 packages: + - autopoint - cppcheck - sloccount - sparse @@ -55,10 +56,6 @@ install: - cat ~/.buildman - grub-mkimage --prefix="" -o ~/grub_x86.efi -O i386-efi normal echo lsefimmap lsefi lsefisystab efinet tftp minicmd - grub-mkimage --prefix="" -o ~/grub_x64.efi -O x86_64-efi normal echo lsefimmap lsefi lsefisystab efinet tftp minicmd - - mkdir ~/grub2-arm - - ( cd ~/grub2-arm; wget -O - http://download.opensuse.org/ports/armv7hl/distribution/leap/42.2/repo/oss/suse/armv7hl/grub2-arm-efi-2.02~beta2-87.1.armv7hl.rpm | rpm2cpio | cpio -di ) - - mkdir ~/grub2-arm64 - - ( cd ~/grub2-arm64; wget -O - http://download.opensuse.org/ports/aarch64/distribution/leap/42.2/repo/oss/suse/aarch64/grub2-arm64-efi-2.02~beta2-87.1.aarch64.rpm | rpm2cpio | cpio -di ) - wget http://mirrors.kernel.org/ubuntu/pool/main/m/mpfr4/libmpfr4_3.1.4-1_amd64.deb && sudo dpkg -i libmpfr4_3.1.4-1_amd64.deb && rm libmpfr4_3.1.4-1_amd64.deb env: @@ -112,6 +109,48 @@ before_script: popd; fi + # Build GRUB UEFI targets + - if [[ "${QEMU_TARGET}" == "arm-softmmu" ]]; then + git clone git://git.savannah.gnu.org/grub.git /tmp/grub && + pushd /tmp/grub && + git checkout grub-2.04 && + ./bootstrap && + ./configure --target=arm --with-platform=efi + CC=gcc + TARGET_CC=~/.buildman-toolchains/gcc-7.3.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc + TARGET_OBJCOPY=~/.buildman-toolchains/gcc-7.3.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-objcopy + TARGET_STRIP=~/.buildman-toolchains/gcc-7.3.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-strip + TARGET_NM=~/.buildman-toolchains/gcc-7.3.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-nm + TARGET_RANLIB=~/.buildman-toolchains/gcc-7.3.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-ranlib && + make -j4 && + ./grub-mkimage -O arm-efi -o ~/grub_arm.efi --prefix= -d + grub-core cat chain configfile echo efinet ext2 fat halt help linux + lsefisystab loadenv lvm minicmd normal part_msdos part_gpt reboot + search search_fs_file search_fs_uuid search_label serial sleep test + true && + popd; + fi + - if [[ "${QEMU_TARGET}" == "aarch64-softmmu" ]]; then + git clone git://git.savannah.gnu.org/grub.git /tmp/grub && + pushd /tmp/grub && + git checkout grub-2.04 && + ./bootstrap && + ./configure --target=aarch64 --with-platform=efi + CC=gcc + TARGET_CC=~/.buildman-toolchains/gcc-7.3.0-nolibc/aarch64-linux/bin/aarch64-linux-gcc + TARGET_OBJCOPY=~/.buildman-toolchains/gcc-7.3.0-nolibc/aarch64-linux/bin/aarch64-linux-objcopy + TARGET_STRIP=~/.buildman-toolchains/gcc-7.3.0-nolibc/aarch64-linux/bin/aarch64-linux-strip + TARGET_NM=~/.buildman-toolchains/gcc-7.3.0-nolibc/aarch64-linux/bin/aarch64-linux-nm + TARGET_RANLIB=~/.buildman-toolchains/gcc-7.3.0-nolibc/aarch64-linux/bin/aarch64-linux-ranlib && + make -j4 && + ./grub-mkimage -O arm64-efi -o ~/grub_arm64.efi --prefix= -d + grub-core cat chain configfile echo efinet ext2 fat halt help linux + lsefisystab loadenv lvm minicmd normal part_msdos part_gpt reboot + search search_fs_file search_fs_uuid search_label serial sleep test + true && + popd; + fi + script: # Comments must be outside the command strings below, or the Travis parser # will get confused. @@ -133,8 +172,12 @@ script: - export UBOOT_TRAVIS_BUILD_DIR=`cd .. && pwd`/.bm-work/${TEST_PY_BD}; cp ~/grub_x86.efi $UBOOT_TRAVIS_BUILD_DIR/; cp ~/grub_x64.efi $UBOOT_TRAVIS_BUILD_DIR/; - cp ~/grub2-arm/usr/lib/grub2/arm-efi/grub.efi $UBOOT_TRAVIS_BUILD_DIR/grub_arm.efi; - cp ~/grub2-arm64/usr/lib/grub2/arm64-efi/grub.efi $UBOOT_TRAVIS_BUILD_DIR/grub_arm64.efi; + if [[ -e ~/grub_arm.efi ]]; then + cp ~/grub_arm.efi $UBOOT_TRAVIS_BUILD_DIR/; + fi; + if [[ -e ~/grub_arm64.efi ]]; then + cp ~/grub_arm64.efi $UBOOT_TRAVIS_BUILD_DIR/; + fi; if [[ "${TEST_PY_BD}" != "" ]]; then virtualenv -p /usr/bin/python3 /tmp/venv; . /tmp/venv/bin/activate; From 9eed8cdd3d3e77eb8c84bcf123ec437d0964bb47 Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Sat, 28 Mar 2020 07:25:26 -0700 Subject: [PATCH 3/9] travis: Build GRUB image for RISC-V 32-bit and 64-bit This adds the GRUB image build for RISC-V 32-bit and 64-bit. Signed-off-by: Bin Meng --- .travis.yml | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/.travis.yml b/.travis.yml index ca5e6124a8d..179b78a7464 100644 --- a/.travis.yml +++ b/.travis.yml @@ -97,6 +97,7 @@ before_script: fi - if [[ "${TOOLCHAIN}" == "powerpc" ]]; then ./tools/buildman/buildman --fetch-arch powerpc; fi - if [[ "${TOOLCHAIN}" == "riscv" ]]; then + ./tools/buildman/buildman --fetch-arch riscv32 && ./tools/buildman/buildman --fetch-arch riscv64; fi - if [[ "${QEMU_TARGET}" != "" ]]; then @@ -150,6 +151,46 @@ before_script: true && popd; fi + - if [[ "${QEMU_TARGET}" == "riscv32-softmmu" ]]; then + git clone git://git.savannah.gnu.org/grub.git /tmp/grub && + pushd /tmp/grub && + git checkout grub-2.04 && + ./bootstrap && + ./configure --target=riscv32 --with-platform=efi + CC=gcc + TARGET_CC=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv32-linux/bin/riscv32-linux-gcc + TARGET_OBJCOPY=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv32-linux/bin/riscv32-linux-objcopy + TARGET_STRIP=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv32-linux/bin/riscv32-linux-strip + TARGET_NM=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv32-linux/bin/riscv32-linux-nm + TARGET_RANLIB=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv32-linux/bin/riscv32-linux-ranlib && + make -j4 && + ./grub-mkimage -O riscv32-efi -o ~/grub_riscv32.efi --prefix= -d + grub-core cat chain configfile echo efinet ext2 fat halt help linux + lsefisystab loadenv lvm minicmd normal part_msdos part_gpt reboot + search search_fs_file search_fs_uuid search_label serial sleep test + true && + popd; + fi + - if [[ "${QEMU_TARGET}" == "riscv64-softmmu" ]]; then + git clone git://git.savannah.gnu.org/grub.git /tmp/grub && + pushd /tmp/grub && + git checkout grub-2.04 && + ./bootstrap && + ./configure --target=riscv64 --with-platform=efi + CC=gcc + TARGET_CC=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv64-linux/bin/riscv64-linux-gcc + TARGET_OBJCOPY=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv64-linux/bin/riscv64-linux-objcopy + TARGET_STRIP=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv64-linux/bin/riscv64-linux-strip + TARGET_NM=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv64-linux/bin/riscv64-linux-nm + TARGET_RANLIB=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv64-linux/bin/riscv64-linux-ranlib && + make -j4 && + ./grub-mkimage -O riscv64-efi -o ~/grub_riscv64.efi --prefix= -d + grub-core cat chain configfile echo efinet ext2 fat halt help linux + lsefisystab loadenv lvm minicmd normal part_msdos part_gpt reboot + search search_fs_file search_fs_uuid search_label serial sleep test + true && + popd; + fi script: # Comments must be outside the command strings below, or the Travis parser @@ -178,6 +219,12 @@ script: if [[ -e ~/grub_arm64.efi ]]; then cp ~/grub_arm64.efi $UBOOT_TRAVIS_BUILD_DIR/; fi; + if [[ -e ~/grub_riscv32.efi ]]; then + cp ~/grub_riscv32.efi $UBOOT_TRAVIS_BUILD_DIR/; + fi; + if [[ -e ~/grub_riscv64.efi ]]; then + cp ~/grub_riscv64.efi $UBOOT_TRAVIS_BUILD_DIR/; + fi; if [[ "${TEST_PY_BD}" != "" ]]; then virtualenv -p /usr/bin/python3 /tmp/venv; . /tmp/venv/bin/activate; From a379d330a963236d3202e8824a07c06e2e204f26 Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Sat, 28 Mar 2020 07:25:27 -0700 Subject: [PATCH 4/9] azure/gitlab/travis: Add qemu-riscv32 testing This adds the qemu-riscv32_defconfig test configuration. Signed-off-by: Bin Meng --- .azure-pipelines.yml | 5 +++++ .gitlab-ci.yml | 9 +++++++++ .travis.yml | 7 +++++++ 3 files changed, 21 insertions(+) diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 969d49b4093..86828e9f3ca 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -216,6 +216,10 @@ jobs: TEST_PY_BD: "qemu-ppce500" TEST_PY_TEST_SPEC: "not sleep" BUILDMAN: "^qemu-ppce500$" + qemu_riscv32: + TEST_PY_BD: "qemu-riscv32" + TEST_PY_TEST_SPEC: "not sleep" + BUILDMAN: "^qemu-riscv32$" qemu_riscv64: TEST_PY_BD: "qemu-riscv64" TEST_PY_TEST_SPEC: "not sleep" @@ -264,6 +268,7 @@ jobs: grub-mkimage --prefix=\"\" -o ~/grub_x86.efi -O i386-efi normal echo lsefimmap lsefi lsefisystab efinet tftp minicmd grub-mkimage --prefix=\"\" -o ~/grub_x64.efi -O x86_64-efi normal echo lsefimmap lsefi lsefisystab efinet tftp minicmd cp /opt/grub/grubriscv64.efi ~/grub_riscv64.efi + cp /opt/grub/grubriscv32.efi ~/grub_riscv32.efi cp /opt/grub/grubaa64.efi ~/grub_arm64.efi cp /opt/grub/grubarm.efi ~/grub_arm.efi # the below corresponds to .gitlab-ci.yml "script" diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ada9293c15b..d414140974f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,6 +21,7 @@ stages: - grub-mkimage --prefix="" -o ~/grub_x86.efi -O i386-efi normal echo lsefimmap lsefi lsefisystab efinet tftp minicmd - grub-mkimage --prefix="" -o ~/grub_x64.efi -O x86_64-efi normal echo lsefimmap lsefi lsefisystab efinet tftp minicmd - cp /opt/grub/grubriscv64.efi ~/grub_riscv64.efi + - cp /opt/grub/grubriscv32.efi ~/grub_riscv32.efi - cp /opt/grub/grubaa64.efi ~/grub_arm64.efi - cp /opt/grub/grubarm.efi ~/grub_arm.efi @@ -297,6 +298,14 @@ qemu-ppce500 test.py: BUILDMAN: "^qemu-ppce500$" <<: *buildman_and_testpy_dfn +qemu-riscv32 test.py: + tags: [ 'all' ] + variables: + TEST_PY_BD: "qemu-riscv32" + TEST_PY_TEST_SPEC: "not sleep" + BUILDMAN: "^qemu-riscv32$" + <<: *buildman_and_testpy_dfn + qemu-riscv64 test.py: tags: [ 'all' ] variables: diff --git a/.travis.yml b/.travis.yml index 179b78a7464..52ce104bc1c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -572,6 +572,13 @@ matrix: QEMU_TARGET="ppc-softmmu" BUILDMAN="^qemu-ppce500$" TOOLCHAIN="powerpc" + - name: "test/py qemu-riscv32" + env: + - TEST_PY_BD="qemu-riscv32" + TEST_PY_TEST_SPEC="not sleep" + QEMU_TARGET="riscv32-softmmu" + BUILDMAN="^qemu-riscv32$" + TOOLCHAIN="riscv" - name: "test/py qemu-riscv64" env: - TEST_PY_BD="qemu-riscv64" From b2c2608161c997a1ffeb2091ff77c845f602524d Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Sat, 28 Mar 2020 07:25:28 -0700 Subject: [PATCH 5/9] test/py: Update u_boot_utils.find_ram_base to bypass the low 2MiB memory On some RISC-V targets the low memory is protected that prevents S-mode U-Boot from access. Signed-off-by: Bin Meng --- test/py/u_boot_utils.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/test/py/u_boot_utils.py b/test/py/u_boot_utils.py index bf2a0fc0e24..939d82eec12 100644 --- a/test/py/u_boot_utils.py +++ b/test/py/u_boot_utils.py @@ -237,10 +237,11 @@ def find_ram_base(u_boot_console): raise Exception('Failed to find RAM bank start in `bdinfo`') # We don't want ram_base to be zero as some functions test if the given - # address is NULL (0). Let's add 2MiB then (size of an ARM LPAE/v8 section). + # address is NULL (0). Besides, on some RISC-V targets the low memory + # is protected that prevents S-mode U-Boot from access. + # Let's add 2MiB then (size of an ARM LPAE/v8 section). - if ram_base == 0: - ram_base += 1024 * 1024 * 2 + ram_base += 1024 * 1024 * 2 return ram_base From 49fb28a4b29ee40e38eb92a1dcb69058ce4637af Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Sat, 28 Mar 2020 07:25:29 -0700 Subject: [PATCH 6/9] azure/gitlab/travis: Add RISC-V SPL testing This adds QEMU RISC-V 32/64 SPL testing. Unlike QEMU RISC-V 32/64, we test SPL running in M-mode and U-Boot proper running in S-mode, with a 4-core SMP configuration. Signed-off-by: Bin Meng --- .azure-pipelines.yml | 16 ++++++++++++++++ .gitlab-ci.yml | 24 ++++++++++++++++++++++++ .travis.yml | 22 ++++++++++++++++++++++ 3 files changed, 62 insertions(+) diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 86828e9f3ca..65e07bf20a8 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -224,6 +224,14 @@ jobs: TEST_PY_BD: "qemu-riscv64" TEST_PY_TEST_SPEC: "not sleep" BUILDMAN: "^qemu-riscv64$" + qemu_riscv32_spl: + TEST_PY_BD: "qemu-riscv32_spl" + TEST_PY_TEST_SPEC: "not sleep" + BUILDMAN: "^qemu-riscv32_spl$" + qemu_riscv64_spl: + TEST_PY_BD: "qemu-riscv64_spl" + TEST_PY_TEST_SPEC: "not sleep" + BUILDMAN: "^qemu-riscv64_spl$" qemu_x86: TEST_PY_BD: "qemu-x86" TEST_PY_TEST_SPEC: "not sleep" @@ -271,6 +279,14 @@ jobs: cp /opt/grub/grubriscv32.efi ~/grub_riscv32.efi cp /opt/grub/grubaa64.efi ~/grub_arm64.efi cp /opt/grub/grubarm.efi ~/grub_arm.efi + if [[ "${TEST_PY_BD}" == "qemu-riscv32_spl" ]]; then + wget -O - https://github.com/riscv/opensbi/releases/download/v0.6/opensbi-0.6-rv32-bin.tar.xz | tar -C /tmp -xJ; + export OPENSBI=/tmp/opensbi-0.6-rv32-bin/platform/qemu/virt/firmware/fw_dynamic.bin; + fi + if [[ "${TEST_PY_BD}" == "qemu-riscv64_spl" ]]; then + wget -O - https://github.com/riscv/opensbi/releases/download/v0.6/opensbi-0.6-rv64-bin.tar.xz | tar -C /tmp -xJ; + export OPENSBI=/tmp/opensbi-0.6-rv64-bin/platform/qemu/virt/firmware/fw_dynamic.bin; + fi # the below corresponds to .gitlab-ci.yml "script" cd ${WORK_DIR} if [[ "${BUILDMAN}" != "" ]]; then diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d414140974f..bf394356319 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -24,6 +24,14 @@ stages: - cp /opt/grub/grubriscv32.efi ~/grub_riscv32.efi - cp /opt/grub/grubaa64.efi ~/grub_arm64.efi - cp /opt/grub/grubarm.efi ~/grub_arm.efi + - if [[ "${TEST_PY_BD}" == "qemu-riscv32_spl" ]]; then + wget -O - https://github.com/riscv/opensbi/releases/download/v0.6/opensbi-0.6-rv32-bin.tar.xz | tar -C /tmp -xJ; + export OPENSBI=/tmp/opensbi-0.6-rv32-bin/platform/qemu/virt/firmware/fw_dynamic.bin; + fi + - if [[ "${TEST_PY_BD}" == "qemu-riscv64_spl" ]]; then + wget -O - https://github.com/riscv/opensbi/releases/download/v0.6/opensbi-0.6-rv64-bin.tar.xz | tar -C /tmp -xJ; + export OPENSBI=/tmp/opensbi-0.6-rv64-bin/platform/qemu/virt/firmware/fw_dynamic.bin; + fi after_script: - rm -rf /tmp/uboot-test-hooks /tmp/venv @@ -314,6 +322,22 @@ qemu-riscv64 test.py: BUILDMAN: "^qemu-riscv64$" <<: *buildman_and_testpy_dfn +qemu-riscv32_spl test.py: + tags: [ 'all' ] + variables: + TEST_PY_BD: "qemu-riscv32_spl" + TEST_PY_TEST_SPEC: "not sleep" + BUILDMAN: "^qemu-riscv32_spl$" + <<: *buildman_and_testpy_dfn + +qemu-riscv64_spl test.py: + tags: [ 'all' ] + variables: + TEST_PY_BD: "qemu-riscv64_spl" + TEST_PY_TEST_SPEC: "not sleep" + BUILDMAN: "^qemu-riscv64_spl$" + <<: *buildman_and_testpy_dfn + qemu-x86 test.py: tags: [ 'all' ] variables: diff --git a/.travis.yml b/.travis.yml index 52ce104bc1c..26368470499 100644 --- a/.travis.yml +++ b/.travis.yml @@ -191,6 +191,14 @@ before_script: true && popd; fi + - if [[ "${TEST_PY_BD}" == "qemu-riscv32_spl" ]]; then + wget -O - https://github.com/riscv/opensbi/releases/download/v0.6/opensbi-0.6-rv32-bin.tar.xz | tar -C /tmp -xJ; + export OPENSBI=/tmp/opensbi-0.6-rv32-bin/platform/qemu/virt/firmware/fw_dynamic.bin; + fi + - if [[ "${TEST_PY_BD}" == "qemu-riscv64_spl" ]]; then + wget -O - https://github.com/riscv/opensbi/releases/download/v0.6/opensbi-0.6-rv64-bin.tar.xz | tar -C /tmp -xJ; + export OPENSBI=/tmp/opensbi-0.6-rv64-bin/platform/qemu/virt/firmware/fw_dynamic.bin; + fi script: # Comments must be outside the command strings below, or the Travis parser @@ -586,6 +594,20 @@ matrix: QEMU_TARGET="riscv64-softmmu" BUILDMAN="^qemu-riscv64$" TOOLCHAIN="riscv" + - name: "test/py qemu-riscv32_spl" + env: + - TEST_PY_BD="qemu-riscv32_spl" + TEST_PY_TEST_SPEC="not sleep" + QEMU_TARGET="riscv32-softmmu" + BUILDMAN="^qemu-riscv32_spl$" + TOOLCHAIN="riscv" + - name: "test/py qemu-riscv64_spl" + env: + - TEST_PY_BD="qemu-riscv64_spl" + TEST_PY_TEST_SPEC="not sleep" + QEMU_TARGET="riscv64-softmmu" + BUILDMAN="^qemu-riscv64_spl$" + TOOLCHAIN="riscv" - name: "test/py qemu-x86" env: - TEST_PY_BD="qemu-x86" From a0c91fe241d6dd10ac0fd2a9f2e4e40f4851c9bd Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Mon, 6 Apr 2020 06:06:58 -0700 Subject: [PATCH 7/9] video: sunxi: Change sunxi_get_mon_desc() to not return NULL for the default case When building with gcc 9.2.0, the following build warning was seen: drivers/video/sunxi/sunxi_display.c: In function 'video_hw_init': drivers/video/sunxi/sunxi_display.c:1217:2: error: '%s' directive argument is null [-Werror=format-overflow=] Change sunxi_get_mon_desc() to not return NULL for the default case, to fix the compiler warning. Signed-off-by: Bin Meng Reviewed-by: Tom Rini --- drivers/video/sunxi/sunxi_display.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/video/sunxi/sunxi_display.c b/drivers/video/sunxi/sunxi_display.c index 31f0aa7ddcc..4e1720ef7ea 100644 --- a/drivers/video/sunxi/sunxi_display.c +++ b/drivers/video/sunxi/sunxi_display.c @@ -1014,7 +1014,6 @@ static void sunxi_mode_set(const struct ctfb_res_modes *mode, static const char *sunxi_get_mon_desc(enum sunxi_monitor monitor) { switch (monitor) { - case sunxi_monitor_none: return "none"; case sunxi_monitor_dvi: return "dvi"; case sunxi_monitor_hdmi: return "hdmi"; case sunxi_monitor_lcd: return "lcd"; @@ -1023,8 +1022,9 @@ static const char *sunxi_get_mon_desc(enum sunxi_monitor monitor) case sunxi_monitor_composite_ntsc: return "composite-ntsc"; case sunxi_monitor_composite_pal_m: return "composite-pal-m"; case sunxi_monitor_composite_pal_nc: return "composite-pal-nc"; + case sunxi_monitor_none: /* fall through */ + default: return "none"; } - return NULL; /* never reached */ } ulong board_get_usable_ram_top(ulong total_size) From 205254eab8050eb0f6cbb0e0ff6e2b54fa04b853 Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Mon, 6 Apr 2020 06:06:59 -0700 Subject: [PATCH 8/9] buildman: Support fetching gcc 9.2.0 This adds support to fetch gcc 9.2.0 toolchains. Signed-off-by: Bin Meng Reviewed-by: Tom Rini --- tools/buildman/toolchain.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/buildman/toolchain.py b/tools/buildman/toolchain.py index 89c54d688a8..4456a805c74 100644 --- a/tools/buildman/toolchain.py +++ b/tools/buildman/toolchain.py @@ -490,7 +490,7 @@ class Toolchains: if arch == 'aarch64': arch = 'arm64' base = 'https://www.kernel.org/pub/tools/crosstool/files/bin' - versions = ['7.3.0', '6.4.0', '4.9.4'] + versions = ['9.2.0', '7.3.0', '6.4.0', '4.9.4'] links = [] for version in versions: url = '%s/%s/%s/' % (base, arch, version) From ddd4d99247182a8ec3f86c8cf8099f0f138f319e Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Mon, 6 Apr 2020 06:07:00 -0700 Subject: [PATCH 9/9] travis: Switch to gcc 9.2.0 Use gcc 9.2.0 to do the build testing. Signed-off-by: Bin Meng Reviewed-by: Tom Rini --- .travis.yml | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/.travis.yml b/.travis.yml index 26368470499..5309a0bf4e2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -118,11 +118,11 @@ before_script: ./bootstrap && ./configure --target=arm --with-platform=efi CC=gcc - TARGET_CC=~/.buildman-toolchains/gcc-7.3.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc - TARGET_OBJCOPY=~/.buildman-toolchains/gcc-7.3.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-objcopy - TARGET_STRIP=~/.buildman-toolchains/gcc-7.3.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-strip - TARGET_NM=~/.buildman-toolchains/gcc-7.3.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-nm - TARGET_RANLIB=~/.buildman-toolchains/gcc-7.3.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-ranlib && + TARGET_CC=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc + TARGET_OBJCOPY=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-objcopy + TARGET_STRIP=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-strip + TARGET_NM=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-nm + TARGET_RANLIB=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-ranlib && make -j4 && ./grub-mkimage -O arm-efi -o ~/grub_arm.efi --prefix= -d grub-core cat chain configfile echo efinet ext2 fat halt help linux @@ -138,11 +138,11 @@ before_script: ./bootstrap && ./configure --target=aarch64 --with-platform=efi CC=gcc - TARGET_CC=~/.buildman-toolchains/gcc-7.3.0-nolibc/aarch64-linux/bin/aarch64-linux-gcc - TARGET_OBJCOPY=~/.buildman-toolchains/gcc-7.3.0-nolibc/aarch64-linux/bin/aarch64-linux-objcopy - TARGET_STRIP=~/.buildman-toolchains/gcc-7.3.0-nolibc/aarch64-linux/bin/aarch64-linux-strip - TARGET_NM=~/.buildman-toolchains/gcc-7.3.0-nolibc/aarch64-linux/bin/aarch64-linux-nm - TARGET_RANLIB=~/.buildman-toolchains/gcc-7.3.0-nolibc/aarch64-linux/bin/aarch64-linux-ranlib && + TARGET_CC=~/.buildman-toolchains/gcc-9.2.0-nolibc/aarch64-linux/bin/aarch64-linux-gcc + TARGET_OBJCOPY=~/.buildman-toolchains/gcc-9.2.0-nolibc/aarch64-linux/bin/aarch64-linux-objcopy + TARGET_STRIP=~/.buildman-toolchains/gcc-9.2.0-nolibc/aarch64-linux/bin/aarch64-linux-strip + TARGET_NM=~/.buildman-toolchains/gcc-9.2.0-nolibc/aarch64-linux/bin/aarch64-linux-nm + TARGET_RANLIB=~/.buildman-toolchains/gcc-9.2.0-nolibc/aarch64-linux/bin/aarch64-linux-ranlib && make -j4 && ./grub-mkimage -O arm64-efi -o ~/grub_arm64.efi --prefix= -d grub-core cat chain configfile echo efinet ext2 fat halt help linux @@ -158,11 +158,11 @@ before_script: ./bootstrap && ./configure --target=riscv32 --with-platform=efi CC=gcc - TARGET_CC=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv32-linux/bin/riscv32-linux-gcc - TARGET_OBJCOPY=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv32-linux/bin/riscv32-linux-objcopy - TARGET_STRIP=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv32-linux/bin/riscv32-linux-strip - TARGET_NM=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv32-linux/bin/riscv32-linux-nm - TARGET_RANLIB=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv32-linux/bin/riscv32-linux-ranlib && + TARGET_CC=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv32-linux/bin/riscv32-linux-gcc + TARGET_OBJCOPY=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv32-linux/bin/riscv32-linux-objcopy + TARGET_STRIP=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv32-linux/bin/riscv32-linux-strip + TARGET_NM=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv32-linux/bin/riscv32-linux-nm + TARGET_RANLIB=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv32-linux/bin/riscv32-linux-ranlib && make -j4 && ./grub-mkimage -O riscv32-efi -o ~/grub_riscv32.efi --prefix= -d grub-core cat chain configfile echo efinet ext2 fat halt help linux @@ -178,11 +178,11 @@ before_script: ./bootstrap && ./configure --target=riscv64 --with-platform=efi CC=gcc - TARGET_CC=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv64-linux/bin/riscv64-linux-gcc - TARGET_OBJCOPY=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv64-linux/bin/riscv64-linux-objcopy - TARGET_STRIP=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv64-linux/bin/riscv64-linux-strip - TARGET_NM=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv64-linux/bin/riscv64-linux-nm - TARGET_RANLIB=~/.buildman-toolchains/gcc-7.3.0-nolibc/riscv64-linux/bin/riscv64-linux-ranlib && + TARGET_CC=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv64-linux/bin/riscv64-linux-gcc + TARGET_OBJCOPY=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv64-linux/bin/riscv64-linux-objcopy + TARGET_STRIP=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv64-linux/bin/riscv64-linux-strip + TARGET_NM=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv64-linux/bin/riscv64-linux-nm + TARGET_RANLIB=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv64-linux/bin/riscv64-linux-ranlib && make -j4 && ./grub-mkimage -O riscv64-efi -o ~/grub_riscv64.efi --prefix= -d grub-core cat chain configfile echo efinet ext2 fat halt help linux