diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cdb3a93c4a..9986e0e42a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -176,6 +176,11 @@ jobs: kernel/hermit-builtins - name: Download loader run: gh release download --repo hermit-os/loader --pattern hermit-loader-${{ matrix.arch }} + - name: Dowload OpenSBI + if: matrix.arch == 'riscv64' + run: | + gh release download v1.4 --repo riscv-software-src/opensbi --pattern 'opensbi-*-rv-bin.tar.xz' + tar -xvf opensbi-*-rv-bin.tar.xz opensbi-1.4-rv-bin/share/opensbi/lp64/generic/firmware/fw_jump.bin - name: Install virtiofsd run: cargo install --locked virtiofsd if: matrix.arch == 'x86_64' diff --git a/xtask/src/ci/qemu.rs b/xtask/src/ci/qemu.rs index 5cb343b9b4..aefc56c0da 100644 --- a/xtask/src/ci/qemu.rs +++ b/xtask/src/ci/qemu.rs @@ -145,7 +145,12 @@ impl Qemu { } else if self.build.cargo_build.artifact.arch == Arch::Aarch64 { vec!["-machine".to_string(), "virt,gic-version=3".to_string()] } else if self.build.cargo_build.artifact.arch == Arch::Riscv64 { - vec!["-machine".to_string(), "virt".to_string()] + vec![ + "-machine".to_string(), + "virt".to_string(), + "-bios".to_string(), + "opensbi-1.4-rv-bin/share/opensbi/lp64/generic/firmware/fw_jump.bin".to_string(), + ] } else { vec![] } @@ -203,7 +208,7 @@ impl Qemu { fn memory(&self) -> usize { let mut memory = 32usize; if self.build.cargo_build.artifact.arch == Arch::Riscv64 { - memory *= 2; + memory *= 4; } if self.build.cargo_build.artifact.profile() == "dev" { memory *= 4;