Rocket chip uses a Makefile-based CI test and it uses old rocket-tools as the toolchain, which is hard to bootstrap, understand, upgrade and extend.
Playground instead uses the latest toolchain from arch and nix. Yet, the binaries from riscv-tests can not be compiled by clang. It is observed that we need rocket-tools because we need the binaries from riscv-tests. So instead of submoduling the whole riscv-gnu-toolchain then compiling riscv-tests from source, we can compile it in another repo (with the binary release from riscv-gnu-toolchain) and only download the artifacts in playground, which is simpler and easier to maintain/bootstrap.
The key rationale is that this is a hardware repo so those tools should not be submoduled.
This supersedes #37
TODO
[ ] openocd
Actually, the latest openocd works, but a patch to rocket-chip is needed.
Also we still need to submodule riscv-tests for its debug/gdbserver.py
Rocket chip uses a Makefile-based CI test and it uses old rocket-tools as the toolchain, which is hard to bootstrap, understand, upgrade and extend.
Playground instead uses the latest toolchain from arch and nix. Yet, the binaries from riscv-tests can not be compiled by clang. It is observed that we need
rocket-tools
because we need the binaries fromriscv-tests
. So instead of submoduling the wholeriscv-gnu-toolchain
then compilingriscv-tests
from source, we can compile it in another repo (with the binary release fromriscv-gnu-toolchain
) and only download the artifacts in playground, which is simpler and easier to maintain/bootstrap.The key rationale is that this is a hardware repo so those tools should not be submoduled.
This supersedes #37
TODO
riscv-tests
for itsdebug/gdbserver.py