Hi all,
This series introduces a minimal build for RISCV. It is based on Bobby's
previous work from last year[0] rebased onto current Xen.
This series provides the patches necessary to get a minimal build
working. The build is "minimal" in the sense that it only supports
building TARGET=riscv64/head.o. The arch/riscv/riscv64/head.S is just
a simple while(1).
The first patch is a mod to non-RISCV bits that enable building a
config with !CONFIG_HAS_NS16550.
The second patch adds the make/Kconfig boilerplate alongside head.S and
asm-riscv/config.h (head.S references ENTRY that is defined in
asm-riscv/config.h).
[0] https://lore.kernel.org/xen-devel/cover.1579615303.git.bobbyeshleman@gmail.com/
Thanks,
Connor
--
Changes since v4:
- Dropped patches 2 and 4 as these have been applied
- Moved arch/riscv/head.S to arch/riscv/riscv64/head.S for consistency
with ARM.
- Added Bob and myself to MAINTAINERS
Changes since v3:
- Dropped "xen: Fix build when !CONFIG_GRANT_TABLE" since this was
applied by Jan
- Adjusted Kconfig condition for building NS16550
- Use bool rather than bool_t
- Removed riscv memory map, as this should probably be done later once
the frametable size is figured out
- Consolidated 64-bit #defines in asm-riscv/config.h
- Renamed riscv64_defconfig to tiny64_defconfig, added CONFIG_DEBUG
and CONFIG_DEBUG_INFO
- Fixed logic/alignment/whitespace issues in Kconfig files
- Use upstream archlinux riscv64 cross-compiler packages instead of
custom built toolchain in docker container
Changes since v2:
- Reduced number of riscv files added to ease review
Changes since v1:
- Dropped "xen/sched: Fix build when NR_CPUS == 1" since this was
fixed for 4.15
- Moved #ifdef-ary around iommu_enabled to iommu.h
- Moved struct grant_table declaration above ifdef CONFIG_GRANT_TABLE
instead of defining an empty struct when !CONFIG_GRANT_TABLE
--
Connor Davis (2):
xen/char: Default HAS_NS16550 to y only for X86 and ARM
xen: Add files needed for minimal riscv build
MAINTAINERS | 8 +++++
config/riscv64.mk | 5 +++
xen/Makefile | 8 +++--
xen/arch/riscv/Kconfig | 47 +++++++++++++++++++++++++
xen/arch/riscv/Kconfig.debug | 0
xen/arch/riscv/Makefile | 2 ++
xen/arch/riscv/Rules.mk | 0
xen/arch/riscv/arch.mk | 14 ++++++++
xen/arch/riscv/configs/tiny64_defconfig | 13 +++++++
xen/arch/riscv/riscv64/asm-offsets.c | 0
xen/arch/riscv/riscv64/head.S | 6 ++++
xen/drivers/char/Kconfig | 1 +
xen/include/asm-riscv/config.h | 47 +++++++++++++++++++++++++
13 files changed, 149 insertions(+), 2 deletions(-)
create mode 100644 config/riscv64.mk
create mode 100644 xen/arch/riscv/Kconfig
create mode 100644 xen/arch/riscv/Kconfig.debug
create mode 100644 xen/arch/riscv/Makefile
create mode 100644 xen/arch/riscv/Rules.mk
create mode 100644 xen/arch/riscv/arch.mk
create mode 100644 xen/arch/riscv/configs/tiny64_defconfig
create mode 100644 xen/arch/riscv/riscv64/asm-offsets.c
create mode 100644 xen/arch/riscv/riscv64/head.S
create mode 100644 xen/include/asm-riscv/config.h
--
2.31.1