10
10
11
11
strategy :
12
12
matrix :
13
- arch : [arm, arm64, ppc64le, x86_64]
13
+ arch : [arm, arm64, ppc64le, x86_64, riscv64 ]
14
14
toolchain : [gcc, clang, llvm]
15
15
config : [debug, release]
16
16
rustc : [2021-02-20]
25
25
# Exclude `LLVM=1` where not supported.
26
26
- arch : ppc64le
27
27
toolchain : llvm
28
+ - arch : riscv64
29
+ toolchain : llvm
28
30
29
31
# A few independent combinations to avoid exploding the matrix:
30
32
# - The other option for `output`.
92
94
echo 'QEMU_ARCH=arm' >> $GITHUB_ENV
93
95
echo 'QEMU_MACHINE=virt' >> $GITHUB_ENV
94
96
echo 'QEMU_CPU=cortex-a7' >> $GITHUB_ENV
97
+ - if : matrix.arch == 'riscv64'
98
+ run : |
99
+ echo 'MAKE_ARCH=ARCH=riscv' >> $GITHUB_ENV
100
+ echo 'MAKE_CROSS_COMPILE=CROSS_COMPILE=riscv64-linux-gnu-' >> $GITHUB_ENV
101
+ echo 'IMAGE_PATH=arch/riscv/boot/Image' >> $GITHUB_ENV
102
+ echo 'QEMU_ARCH=riscv64' >> $GITHUB_ENV
103
+ echo 'QEMU_MACHINE=virt' >> $GITHUB_ENV
104
+ echo 'QEMU_CPU=rv64' >> $GITHUB_ENV
105
+ echo 'QEMU_ARGS=-bios /usr/lib/riscv64-linux-gnu/opensbi/generic/fw_jump.elf' >> $GITHUB_ENV
95
106
96
107
- if : matrix.toolchain == 'clang'
97
108
run : echo 'MAKE_TOOLCHAIN=CC=clang-11' >> $GITHUB_ENV
@@ -122,6 +133,12 @@ jobs:
122
133
run : sudo apt-get install -y gcc-aarch64-linux-gnu
123
134
- if : matrix.arch == 'ppc64le'
124
135
run : sudo apt-get install -y gcc-powerpc64le-linux-gnu
136
+ - if : matrix.arch == 'riscv64'
137
+ run : sudo apt-get install -y gcc-riscv64-linux-gnu
138
+
139
+ # Setup OpenSBI
140
+ - if : matrix.arch == 'riscv64'
141
+ run : sudo apt-get install -y opensbi
125
142
126
143
# Setup: libelf
127
144
- run : sudo apt-get install -y libelf-dev
@@ -133,6 +150,8 @@ jobs:
133
150
run : sudo apt-get install -y qemu-system-arm
134
151
- if : matrix.arch == 'ppc64le'
135
152
run : sudo apt-get install -y qemu-system-ppc
153
+ - if : matrix.arch == 'riscv64'
154
+ run : sudo apt-get install -y qemu-system-misc
136
155
137
156
# Setup: rustc
138
157
- if : matrix.install == 'rustup'
@@ -205,6 +224,7 @@ jobs:
205
224
206
225
- run : |
207
226
qemu-system-${{ env.QEMU_ARCH }} \
227
+ ${{ env.QEMU_ARGS }} \
208
228
-kernel ${{ env.BUILD_DIR }}${{ env.IMAGE_PATH }} \
209
229
-initrd qemu-initramfs.img \
210
230
-M ${{ env.QEMU_MACHINE }} \
0 commit comments