[PATCH v5 0/2] Minimal build for RISCV

Connor Davis posted 2 patches 2 years, 10 months ago
Test gitlab-ci failed
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/cover.1622675569.git.connojdavis@gmail.com
There is a newer version of this series
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
[PATCH v5 0/2] Minimal build for RISCV
Posted by Connor Davis 2 years, 10 months ago
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 v5:
  - Added missing A-by from Jan to patch 1

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


Re: [PATCH v5 0/2] Minimal build for RISCV
Posted by Connor Davis 2 years, 10 months ago
Sigh.. lets try this again with the version numbers in sync

On 6/2/21 5:20 PM, Connor Davis wrote:
> 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 v5:
>    - Added missing A-by from Jan to patch 1
>
> 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
>