Skip to content

sg2042: fixup dtb console args #30

sg2042: fixup dtb console args

sg2042: fixup dtb console args #30

Workflow file for this run

name: SOPHGO SG204x
on:
push:
paths:
- '.github/workflows/sophgo-sg204x.yml'
- 'sophgo-sg204x/**'
jobs:
build-zsbl:
name: Build ZSBL
runs-on: ubuntu-latest
strategy:
matrix:
include:
- target_name: sophgo-sg2044-srd3-10
zsbl_defconfig: sg2044_defconfig
- target_name: sophgo-sg2042-milkv-pioneer
zsbl_defconfig: sg2042_defconfig
env:
ZSBL_COMMIT_ID: 45054e711d81fbfa1c2167829402d26795199ae7
steps:
- name: Cache ZSBL Build
id: cache-zsbl-build
uses: actions/cache@v5
with:
path: dist
key: cache-zsbl-build-${{ matrix.target_name }}-${{ env.ZSBL_COMMIT_ID }}
- uses: actions/checkout@v5
if: ${{ steps.cache-zsbl-build.outputs.cache-hit != 'true' }}
- name: Setup Toolchains
if: ${{ steps.cache-zsbl-build.outputs.cache-hit != 'true' }}
id: setup-gcc-toolchain
uses: ./.github/actions/riscv64-gcc-toolchain
- name: Checkout ZSBL
if: ${{ steps.cache-zsbl-build.outputs.cache-hit != 'true' }}
uses: actions/checkout@v6
with:
repository: revyos/zsbl
path: zsbl
# Branch sg204x as of 20260224
ref: ${{ env.ZSBL_COMMIT_ID }}
fetch-depth: 1
- name: Build ZSBL
if: ${{ steps.cache-zsbl-build.outputs.cache-hit != 'true' }}
working-directory: zsbl
run: |
make -j"$(nproc)" CROSS_COMPILE=${{ steps.setup-gcc-toolchain.outputs.full-prefix }} "${{ matrix.zsbl_defconfig }}"
make -j"$(nproc)" CROSS_COMPILE=${{ steps.setup-gcc-toolchain.outputs.full-prefix }} USE_LINUX_BOOT=1 zsbl.bin
- name: Collect ZSBL Binary
if: ${{ steps.cache-zsbl-build.outputs.cache-hit != 'true' }}
run: |
mkdir dist
cp zsbl/zsbl.bin dist/zsbl.bin
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: "zsbl-${{ matrix.target_name }}"
path: dist
build-opensbi:
name: Build OpenSBI
runs-on: ubuntu-latest
strategy:
matrix:
include:
- target_name: sophgo-sg2044-rva23
opensbi_repo: revyos/opensbi
# Branch sg204x-v1.8.1-rva23 as of 20260225
opensbi_ref: 1a59a37c667dde717c26abf02c9a54c7c5d9212a
- target_name: sophgo-sg2044
opensbi_repo: revyos/opensbi
# Branch sg204x-v1.8.1 as of 20260225
opensbi_ref: 175cafd0ca69534c5a6943e1e427150e65fbec23
- target_name: sophgo-sg2042
opensbi_repo: sophgo/opensbi
# Branch sg2042-dev as of 20260225
opensbi_ref: adc7ba17f3726aee599bc6fc879fbc569fbbba71
steps:
- name: Cache OpenSBI Build
id: cache-opensbi-build
uses: actions/cache@v5
with:
path: dist
key: cache-opensbi-build-${{ matrix.target_name }}-${{ matrix.opensbi_ref }}
- uses: actions/checkout@v5
if: ${{ steps.cache-opensbi-build.outputs.cache-hit != 'true' }}
- name: Setup Toolchains
if: ${{ steps.cache-opensbi-build.outputs.cache-hit != 'true' }}
id: setup-gcc-toolchain
uses: ./.github/actions/riscv64-gcc-toolchain
- name: Checkout OpenSBI
if: ${{ steps.cache-opensbi-build.outputs.cache-hit != 'true' }}
uses: actions/checkout@v6
with:
repository: ${{ matrix.opensbi_repo }}
path: opensbi
# Branch sg204x as of 20260224
ref: ${{ matrix.opensbi_ref }}
fetch-depth: 1
- name: Build OpenSBI
if: ${{ steps.cache-opensbi-build.outputs.cache-hit != 'true' }}
run: |
make -j"$(nproc)" -C opensbi O=$(pwd)/build CROSS_COMPILE=${{ steps.setup-gcc-toolchain.outputs.full-prefix }} PLATFORM=generic FW_PIC=y BUILD_INFO=y
- name: Collect OpenSBI Binary
if: ${{ steps.cache-opensbi-build.outputs.cache-hit != 'true' }}
run: |
mkdir dist
cp build/platform/generic/firmware/fw_dynamic.bin dist/fw_dynamic.bin
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: "opensbi-${{ matrix.target_name }}"
path: dist
build-u-root:
name: Build u-root for LinuxBoot
runs-on: ubuntu-latest
env:
U_ROOT_COMMIT_ID: 69595b5c67cb59b0afb9744d13625b9df6869a64
steps:
- name: Cache u-root Build
id: cache-u-root-build
uses: actions/cache@v5
with:
path: dist
key: cache-u-root-build-${{ env.U_ROOT_COMMIT_ID }}
- name: Setup Golang
if: ${{ steps.cache-u-root-build.outputs.cache-hit != 'true' }}
uses: actions/setup-go@v6
with:
go-version: '1.17'
cache: true
- name: Checkout u-root
if: ${{ steps.cache-u-root-build.outputs.cache-hit != 'true' }}
uses: actions/checkout@v6
with:
repository: openeuler-riscv/u-root
path: u-root
# Branch sg204x-v0.15 as of 20260225
ref: "${{ env.U_ROOT_COMMIT_ID }}"
fetch-depth: 1
- name: Build u-root
if: ${{ steps.cache-u-root-build.outputs.cache-hit != 'true' }}
working-directory: u-root
run: |
go build
GOOS=linux GOARCH=riscv64 ./u-root -uroot-source . -build bb -uinitcmd="boot" -o initrd.img core boot
- name: Collect u-root Binary
if: ${{ steps.cache-u-root-build.outputs.cache-hit != 'true' }}
run: |
mkdir dist
cp u-root/initrd.img dist/initrd.img
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: "u-root-sophgo-sg204x"
path: dist
build-kernel:
name: Build Linux Kernel
runs-on: ubuntu-latest
strategy:
matrix:
include:
- target_name: sophgo-sg2044
kernel_repo: revyos/linux
# Branch revyos/6.18.y as of 20260226
kernel_ref: a7aa9547d2b946aee64e68ff46ad0f61196fe798
kernel_defconfig: kexec_defconfig
- target_name: sophgo-sg2042
kernel_repo: sophgo/linux-riscv
# Branch sg2042-dev-6.6 as of 20260226
kernel_ref: 15143c39ba8d2ebd6c47e7eabcbf2a3b19960532
kernel_defconfig: sophgo_mango_normal_defconfig
steps:
- name: Cache Kernel Build
id: cache-kernel-build
uses: actions/cache@v5
with:
path: dist
key: cache-kernel-build-${{ matrix.kernel_repo }}-${{ matrix.kernel_defconfig }}-${{ matrix.kernel_ref }}
- uses: actions/checkout@v5
if: ${{ steps.cache-kernel-build.outputs.cache-hit != 'true' }}
- name: Setup Toolchains
if: ${{ steps.cache-kernel-build.outputs.cache-hit != 'true' }}
id: setup-gcc-toolchain
uses: ./.github/actions/riscv64-gcc-toolchain
- name: Checkout Kernel
if: ${{ steps.cache-kernel-build.outputs.cache-hit != 'true' }}
uses: actions/checkout@v6
with:
repository: ${{ matrix.kernel_repo }}
path: linux
# Branch sg204x as of 20260224
ref: ${{ matrix.kernel_ref }}
fetch-depth: 1
- name: Build Kernel
if: ${{ steps.cache-kernel-build.outputs.cache-hit != 'true' }}
run: |
make -j"$(nproc)" -C linux O=$(pwd)/build ARCH=riscv CROSS_COMPILE=${{ steps.setup-gcc-toolchain.outputs.full-prefix }} ${{ matrix.kernel_defconfig }}
make -j"$(nproc)" -C linux O=$(pwd)/build ARCH=riscv CROSS_COMPILE=${{ steps.setup-gcc-toolchain.outputs.full-prefix }} Image dtbs
- name: Collect Kernel Binary
if: ${{ steps.cache-kernel-build.outputs.cache-hit != 'true' }}
run: |
mkdir dist
cp build/arch/riscv/boot/Image dist/riscv64_Image
cp build/arch/riscv/boot/dts/sophgo/*.dtb dist
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: "kernel-${{ matrix.target_name }}"
path: dist
pack-sdimage-sg2042:
name: Pack SD Card Boot Image for SG2042
needs:
- build-zsbl
- build-opensbi
- build-u-root
- build-kernel
runs-on: ubuntu-latest
strategy:
matrix:
include:
# - zsbl_target_name: sophgo-sg2044-srd3-10
# opensbi_target_name: sophgo-sg2044-rva23
# kernel_target_name: sophgo-sg2044
# - zsbl_target_name: sophgo-sg2044-srd3-10
# opensbi_target_name: sophgo-sg2044
# kernel_target_name: sophgo-sg2044
- zsbl_target_name: sophgo-sg2042-milkv-pioneer
opensbi_target_name: sophgo-sg2042
kernel_target_name: sophgo-sg2042
output_filename: firmware-linuxboot-sophgo-sg2042.img
steps:
- name: Checkout This Repo
uses: actions/checkout@v5
with:
fetch-depth: 1
path: u-boot-build
- name: Setup Work Dirs
run: |
mkdir -p staging/riscv64
mkdir -p dist
- name: Fetch Pre-built ZSBL
uses: actions/download-artifact@v5
with:
name: "zsbl-${{ matrix.zsbl_target_name }}"
path: staging
merge-multiple: true
- name: Copy fip.bin
run: |
cp u-boot-build/sophgo-sg204x/blobs/sg2042/fip.bin staging
- name: Fetch Pre-built OpenSBI
uses: actions/download-artifact@v5
with:
name: "opensbi-${{ matrix.opensbi_target_name }}"
path: staging/riscv64
merge-multiple: true
- name: Fetch Pre-built Kernel
uses: actions/download-artifact@v5
with:
name: "kernel-${{ matrix.kernel_target_name }}"
path: staging/riscv64
merge-multiple: true
- name: Install dtc
run: |
sudo apt-get update
sudo apt-get install -y device-tree-compiler
- name: Fixup dtb name
run: |
dtc staging/riscv64/mango-milkv-pioneer.dtb | sed 's/console=tty1 //' | dtc > staging/riscv64/sg2042-milkv-pioneer.dtb
- name: Fetch Pre-built u-root
uses: actions/download-artifact@v5
with:
name: "u-root-sophgo-sg204x"
path: staging/riscv64
merge-multiple: true
- name: Create SD Card Image
run: |
truncate -s 128M dist/${{ matrix.output_filename }}
echo "type=c" | sfdisk dist/${{ matrix.output_filename }}
LOOP_DEV="$(sudo losetup -Pf --show dist/${{ matrix.output_filename }})"
sudo mkfs.vfat -n BOOTFIRM "${LOOP_DEV}p1"
TEMP_MNT="$(mktemp -d)"
sudo mount "${LOOP_DEV}p1" "${TEMP_MNT}"
sudo cp -r staging/* "${TEMP_MNT}/"
sudo umount "${TEMP_MNT}"
sudo losetup -d "${LOOP_DEV}"
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: "${{ matrix.output_filename }}"
path: dist