[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v4 0/4] Minimal build for RISCV
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=head.o. The arch/riscv/head.S is just a simple while(1). The first 2 patches are mods to non-RISCV bits that enable building a config with: !CONFIG_HAS_NS16550 !CONFIG_HAS_PASSTHROUGH respectively. The third 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). The last 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=riscv SUBSYSTEMS=xen -C xen tiny64_defconfig $ make XEN_TARGET_ARCH=riscv SUBSYSTEMS=xen -C xen TARGET=head.o [0] https://lore.kernel.org/xen-devel/cover.1579615303.git.bobbyeshleman@xxxxxxxxx/ Thanks, Connor -- 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 (4): xen/char: Default HAS_NS16550 to y only for X86 and ARM xen/common: Guard iommu symbols with CONFIG_HAS_PASSTHROUGH xen: Add files needed for minimal riscv build automation: Add container for riscv64 builds automation/build/archlinux/riscv64.dockerfile | 19 ++++++++ automation/scripts/containerize | 1 + config/riscv.mk | 4 ++ xen/Makefile | 8 +++- xen/arch/riscv/Kconfig | 47 +++++++++++++++++++ xen/arch/riscv/Kconfig.debug | 0 xen/arch/riscv/Makefile | 0 xen/arch/riscv/Rules.mk | 0 xen/arch/riscv/arch.mk | 14 ++++++ xen/arch/riscv/asm-offsets.c | 0 xen/arch/riscv/configs/tiny64_defconfig | 13 +++++ xen/arch/riscv/head.S | 6 +++ xen/common/memory.c | 10 ++++ xen/drivers/char/Kconfig | 1 + xen/include/asm-riscv/config.h | 47 +++++++++++++++++++ xen/include/xen/iommu.h | 8 +++- 16 files changed, 175 insertions(+), 3 deletions(-) create mode 100644 automation/build/archlinux/riscv64.dockerfile create mode 100644 config/riscv.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/asm-offsets.c create mode 100644 xen/arch/riscv/configs/tiny64_defconfig create mode 100644 xen/arch/riscv/head.S create mode 100644 xen/include/asm-riscv/config.h base-commit: d4fb5f166c2bfbaf9ba0de69da0d411288f437a9 -- 2.31.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |