Skip to content

sophgo-bootloader

sophgo-bootloader #878

Workflow file for this run

name: sophgo-bootloader
on:
push:
pull_request:
workflow_dispatch:
schedule:
- cron: "0 2 * * *"
jobs:
build-bootloader:
runs-on: ubuntu-22.04
strategy:
matrix:
M_CHIP_NUM: [single, multi]
LINUX_BRANCH: [sg2042-dev, sg2042-dev-6.6]
env:
mainline_toolchain: https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/2024.03.01
mainline_toolchain_file_name: riscv64-glibc-ubuntu-22.04-gcc-nightly-2024.03.01-nightly.tar.gz
wget_alias: 'wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0'
ARCH: riscv
KBUILD_BUILD_USER: riscv
KBUILD_BUILD_HOST: riscv-builder
KDEB_COMPRESS: xz
CHIP: mango
CHIP_NUM: ${{ matrix.M_CHIP_NUM }}
BRANCH: ${{ matrix.LINUX_BRANCH }}
TOOLCHAIN_HOME: /opt/riscv/
steps:
- name: Checkout bootloader-riscv
uses: actions/checkout@v4
with:
path: bootloader-riscv
- name: Checkout zsbl
uses: actions/checkout@v4
with:
repository: sophgo/zsbl
path: zsbl
- name: Checkout opensbi
uses: actions/checkout@v4
with:
repository: sophgo/opensbi
path: opensbi
- name: Checkout sophgo-edk2
uses: actions/checkout@v4
with:
repository: sophgo/sophgo-edk2
path: sophgo-edk2
- name: Checkout linux-riscv
uses: actions/checkout@v4
with:
repository: sophgo/linux-riscv
path: linux-riscv
ref: ${{ matrix.LINUX_BRANCH }}
- uses: actions/setup-go@v5
with:
go-version: '1.21.13'
- run: go version
- name: Install software
run: |
sudo apt update && \
sudo apt install -y gdisk dosfstools g++-riscv64-linux-gnu build-essential \
libncurses-dev gawk flex bison openssl libssl-dev tree \
dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf \
device-tree-compiler xz-utils \
qemu binfmt-support qemu-user-static curl wget \
automake autotools-dev python3 libmpc-dev libmpfr-dev libgmp-dev \
texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev \
ninja-build uuid-dev gcc-riscv64-unknown-elf
update-binfmts --display
${wget_alias} ${mainline_toolchain}/${mainline_toolchain_file_name}
tar -xvf ${mainline_toolchain_file_name} -C /opt
- name: prepare
run: mkdir -p artifact
- name: Compile zsbl & sbi
run: |
pushd bootloader-riscv
source scripts/envsetup.sh
# fix build variable in github action
source scripts/github_env.sh
build_rv_zsbl
build_rv_sbi
popd
- name: Compile edk2
run: |
pushd bootloader-riscv
source scripts/envsetup.sh
# fix build variable in github action
source scripts/github_env.sh
build_rv_edk2
popd
- name: Compile kernel
run: |
pushd bootloader-riscv
source scripts/envsetup.sh
# fix build variable in github action
source scripts/github_env.sh
build_rv_kernel
popd
- name: Compile u-root
run: |
pushd bootloader-riscv
source scripts/envsetup.sh
# fix build variable in github action
source scripts/github_env.sh
build_rv_uroot
popd
- name: Packege firmware
run: |
pushd bootloader-riscv
source scripts/envsetup.sh
# fix build variable in github action
source scripts/github_env.sh
build_rv_firmware_bin
build_rv_firmware_image
mkdir ~/firmware_artifact
cp -v $RV_FIRMWARE_INSTALL_DIR/firmware*.bin $GITHUB_WORKSPACE/firmware_${CHIP_NUM}_${BRANCH}.bin
cp -v $RV_FIRMWARE_INSTALL_DIR/firmware.img $GITHUB_WORKSPACE/firmware_${CHIP_NUM}_${BRANCH}.img
popd
- name: 'Upload Build Artifact'
uses: actions/upload-artifact@v3
with:
name: sophgo-bootloader-${{ matrix.M_CHIP_NUM }}-${{ matrix.LINUX_BRANCH }}
path: firmware_*
retention-days: 30