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]
92
92
echo 'QEMU_ARCH=arm' >> $GITHUB_ENV
93
93
echo 'QEMU_MACHINE=virt' >> $GITHUB_ENV
94
94
echo 'QEMU_CPU=cortex-a7' >> $GITHUB_ENV
95
+ - if : matrix.arch == 'riscv64'
96
+ run : |
97
+ echo 'MAKE_ARCH=ARCH=riscv' >> $GITHUB_ENV
98
+ echo 'MAKE_CROSS_COMPILE=CROSS_COMPILE=riscv64-linux-gnu-' >> $GITHUB_ENV
99
+ echo 'IMAGE_PATH=arch/riscv/boot/Image' >> $GITHUB_ENV
100
+ echo 'QEMU_ARCH=riscv64' >> $GITHUB_ENV
101
+ echo 'QEMU_MACHINE=virt' >> $GITHUB_ENV
102
+ echo 'QEMU_CPU=rv64' >> $GITHUB_ENV
103
+ echo 'QEMU_ARGS=-bios /usr/lib/riscv64-linux-gnu/opensbi/generic/fw_jump.elf' >> $GITHUB_ENV
95
104
96
105
- if : matrix.toolchain == 'clang'
97
106
run : echo 'MAKE_TOOLCHAIN=CC=clang-11' >> $GITHUB_ENV
@@ -122,6 +131,12 @@ jobs:
122
131
run : sudo apt-get install -y gcc-aarch64-linux-gnu
123
132
- if : matrix.arch == 'ppc64le'
124
133
run : sudo apt-get install -y gcc-powerpc64le-linux-gnu
134
+ - if : matrix.arch == 'riscv64'
135
+ run : sudo apt-get install -y gcc-riscv64-linux-gnu
136
+
137
+ # Setup OpenSBI
138
+ - if : matrix.arch == 'riscv64'
139
+ run : sudo apt-get install -y opensbi
125
140
126
141
# Setup: libelf
127
142
- run : sudo apt-get install -y libelf-dev
@@ -133,6 +148,8 @@ jobs:
133
148
run : sudo apt-get install -y qemu-system-arm
134
149
- if : matrix.arch == 'ppc64le'
135
150
run : sudo apt-get install -y qemu-system-ppc
151
+ - if : matrix.arch == 'riscv64'
152
+ run : sudo apt-get install -y qemu-system-misc
136
153
137
154
# Setup: rustc
138
155
- if : matrix.install == 'rustup'
@@ -205,6 +222,7 @@ jobs:
205
222
206
223
- run : |
207
224
qemu-system-${{ env.QEMU_ARCH }} \
225
+ ${{ env.QEMU_ARGS }} \
208
226
-kernel ${{ env.BUILD_DIR }}${{ env.IMAGE_PATH }} \
209
227
-initrd qemu-initramfs.img \
210
228
-M ${{ env.QEMU_MACHINE }} \
0 commit comments