On 5/13/21 10:43 PM, Alistair Francis wrote:
On Fri, May 14, 2021 at 2:18 PM Connor Davis <connojda...@gmail.com> wrote:
Hi all,
This series introduces a minimal build for RISCV. It is based on Bobby's
previous work from last year[0]. I have worked to rebase onto current Xen,
as well as update the various header files borrowed from Linux.
This series provides the patches necessary to get a minimal build
working. The build is "minimal" in the sense that 1) it uses a
minimal config and 2) files, functions, and variables are included if
and only if they are required for a successful build based on the
config. It doesn't run at all, as the functions just have stub
implementations.
My hope is that this can serve as a useful example for future ports as
well as inform the community of exactly what is imposed by common code
onto new architectures.
The first 3 patches are mods to non-RISCV bits that enable building a
config with:
!CONFIG_HAS_NS16550
!CONFIG_HAS_PASSTHROUGH
!CONFIG_GRANT_TABLE
respectively. The fourth patch adds the RISCV files, and the last patch
adds a docker container for doing the build. To build from the docker
container (after creating it locally), you can run the following:
$ make XEN_TARGET_ARCH=riscv64 SUBSYSTEMS=xen
The sources taken from Linux are documented in arch/riscv/README.sources.
There were also some files copied from arm:
asm-arm/softirq.h
asm-arm/random.h
asm-arm/nospec.h
asm-arm/numa.h
asm-arm/p2m.h
asm-arm/delay.h
asm-arm/debugger.h
asm-arm/desc.h
asm-arm/guest_access.h
asm-arm/hardirq.h
lib/find_next_bit.c
I imagine some of these will want some consolidation, but I put them
under the respective RISCV directories for now.
Awesome!
Do you have a public branch I could pull these from to try out?
Alistair
Yes you can find the latest here:
https://gitlab.com/connojd/xen/-/commits/riscv-build
Thanks,
Connor