mbox series

[v2,00/39] Enable build of full Xen for RISC-V

Message ID cover.1700761381.git.oleksii.kurochko@gmail.com (mailing list archive)
Headers show
Series Enable build of full Xen for RISC-V | expand

Message

Oleksii Kurochko Nov. 24, 2023, 10:30 a.m. UTC
This patch series performs all of the additions necessary to drop the
build overrides for RISCV and enable the full Xen build. Except in cases
where compatibile implementations already exist (e.g. atomic.h and
bitops.h), the newly added definitions are simple.

The patch series is based on the following patch series:
- [PATCH v2] xen: remove <asm/delay.h> [1]
- [PATCH v3 00/14] Introduce generic headers [2]

[1] https://lore.kernel.org/xen-devel/3d55bce44bd6ab9973cbe0ea2fc136cc44d35df2.1698759633.git.oleksii.kurochko@gmail.com/
[2] https://lore.kernel.org/xen-devel/cover.1700221559.git.oleksii.kurochko@gmail.com/

---
Changes in V2:
  - Drop the following patches as they are the part of [2]:
      [PATCH v1 06/57] xen/riscv: introduce paging.h
      [PATCH v1 08/57] xen/riscv: introduce asm/device.h
      [PATCH v1 10/57] xen/riscv: introduce asm/grant_table.h
      [PATCH v1 12/57] xen/riscv: introduce asm/hypercall.h
      [PATCH v1 13/57] xen/riscv: introduce asm/iocap.h
      [PATCH v1 15/57] xen/riscv: introduce asm/mem_access.h
      [PATCH v1 18/57] xen/riscv: introduce asm/random.h
      [PATCH v1 21/57] xen/riscv: introduce asm/xenoprof.h
      [PATCH v1 24/57] xen/riscv: introduce asm/percpu.h
      [PATCH v1 29/57] xen/riscv: introduce asm/hardirq.h
      [PATCH v1 33/57] xen/riscv: introduce asm/altp2m.h
      [PATCH v1 38/57] xen/riscv: introduce asm/monitor.h
      [PATCH v1 39/57] xen/riscv: introduce asm/numa.h
      [PATCH v1 42/57] xen/riscv: introduce asm/softirq.h
  - xen/lib.h in most of the cases were changed to xen/bug.h as
    mostly functionilty of bug.h is used.
  - align arch-riscv.h with Arm's version of it.
  - change the Author of commit with introduction of asm/atomic.h.
  - update some definition from spinlock.h.
  - code style changes.
---

Bobby Eshleman (1):
  xen/riscv: introduce asm/atomic.h

Oleksii Kurochko (38):
  xen/riscv: disable unnecessary configs
  xen/riscv: use some asm-generic headers
  xen/riscv:introduce asm/byteorder.h
  xen/riscv: add public arch-riscv.h
  xen/riscv: introduce spinlock.h
  xen/riscv: introduce fence.h
  xen/riscv: introduce arch-riscv/hvm/save.h
  xen/riscv: introduce asm/cpufeature.h
  xen/riscv: introduce asm/guest_atomics.h
  xen/riscv: introduce asm/iommu.h
  xen/riscv: introduce asm/nospec.h
  xen/riscv: introduce asm/setup.h
  xen/riscv: introduce asm/system.h
  xen/riscv: introduce bitops.h
  xen/riscv: introduce flushtlb.h
  xen/riscv: introduce asm/smp.h
  xen/riscv: introduce cmpxchg.h
  xen/riscv: introduce asm/io.h
  xen/riscv: define bug frame tables in xen.lds.S
  xen/riscv: introduce bit operations
  xen/riscv: introduce asm/domain.h
  xen/riscv: introduce asm/guest_access.h
  xen/riscv: introduce asm/irq.h
  xen/riscv: introduce asm/p2m.h
  xen/riscv: introduce asm/regs.h
  xen/riscv: introduce asm/time.h
  xen/riscv: introduce asm/event.h
  xen/riscv: add definition of __read_mostly
  xen/riscv: define an address of frame table
  xen/riscv: add required things to asm/current.h
  xen/riscv: add minimal stuff to asm/page.h to build full Xen
  xen/riscv: add minimal stuff to asm/processor.h to build full Xen
  xen: add RISCV support for pmu.h
  xen: add necessary headers to common to build full Xen for RISC-V
  xen/riscv: add minimal stuff to asm/mm.h to build full Xen
  xen/rirscv: add minimal amount of stubs to build full Xen
  xen/riscv: enable full Xen build
  xen: fix compilation issue of serial.c

 automation/gitlab-ci/build.yaml            | 122 ++++++
 automation/scripts/build                   |   4 +-
 xen/arch/riscv/Makefile                    |  18 +-
 xen/arch/riscv/arch.mk                     |   4 -
 xen/arch/riscv/configs/tiny64_defconfig    |  19 +-
 xen/arch/riscv/early_printk.c              | 168 --------
 xen/arch/riscv/include/asm/Makefile        |  14 +
 xen/arch/riscv/include/asm/atomic.h        | 375 ++++++++++++++++++
 xen/arch/riscv/include/asm/bitops.h        | 288 ++++++++++++++
 xen/arch/riscv/include/asm/byteorder.h     |  16 +
 xen/arch/riscv/include/asm/cache.h         |   2 +
 xen/arch/riscv/include/asm/cmpxchg.h       | 379 ++++++++++++++++++
 xen/arch/riscv/include/asm/config.h        |  21 +
 xen/arch/riscv/include/asm/cpufeature.h    |  22 ++
 xen/arch/riscv/include/asm/current.h       |  20 +
 xen/arch/riscv/include/asm/domain.h        |  43 +++
 xen/arch/riscv/include/asm/event.h         |  34 ++
 xen/arch/riscv/include/asm/fence.h         |  12 +
 xen/arch/riscv/include/asm/flushtlb.h      |  31 ++
 xen/arch/riscv/include/asm/guest_access.h  |  29 ++
 xen/arch/riscv/include/asm/guest_atomics.h |  48 +++
 xen/arch/riscv/include/asm/io.h            | 134 +++++++
 xen/arch/riscv/include/asm/iommu.h         |   7 +
 xen/arch/riscv/include/asm/irq.h           |  37 ++
 xen/arch/riscv/include/asm/mm.h            | 270 ++++++++++++-
 xen/arch/riscv/include/asm/nospec.h        |  25 ++
 xen/arch/riscv/include/asm/p2m.h           | 105 +++++
 xen/arch/riscv/include/asm/page.h          |  21 +
 xen/arch/riscv/include/asm/processor.h     |  15 +
 xen/arch/riscv/include/asm/regs.h          |  26 ++
 xen/arch/riscv/include/asm/setup.h         |   6 +
 xen/arch/riscv/include/asm/smp.h           |  23 ++
 xen/arch/riscv/include/asm/spinlock.h      |  15 +
 xen/arch/riscv/include/asm/system.h        |  79 ++++
 xen/arch/riscv/include/asm/time.h          |  19 +
 xen/arch/riscv/lib/Makefile                |   1 +
 xen/arch/riscv/lib/find_next_bit.c         | 278 ++++++++++++++
 xen/arch/riscv/mm.c                        |  52 ++-
 xen/arch/riscv/setup.c                     |   9 +-
 xen/arch/riscv/stubs.c                     | 426 +++++++++++++++++++++
 xen/arch/riscv/traps.c                     |  25 ++
 xen/arch/riscv/xen.lds.S                   |  10 +
 xen/drivers/char/serial.c                  |   2 +
 xen/include/public/arch-riscv.h            |  93 +++++
 xen/include/public/arch-riscv/hvm/save.h   |  20 +
 xen/include/public/hvm/save.h              |   2 +
 xen/include/public/pmu.h                   |   2 +
 xen/include/public/xen.h                   |   2 +
 xen/include/xen/domain.h                   |   1 +
 49 files changed, 3194 insertions(+), 180 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/Makefile
 create mode 100644 xen/arch/riscv/include/asm/atomic.h
 create mode 100644 xen/arch/riscv/include/asm/bitops.h
 create mode 100644 xen/arch/riscv/include/asm/byteorder.h
 create mode 100644 xen/arch/riscv/include/asm/cmpxchg.h
 create mode 100644 xen/arch/riscv/include/asm/cpufeature.h
 create mode 100644 xen/arch/riscv/include/asm/domain.h
 create mode 100644 xen/arch/riscv/include/asm/event.h
 create mode 100644 xen/arch/riscv/include/asm/fence.h
 create mode 100644 xen/arch/riscv/include/asm/flushtlb.h
 create mode 100644 xen/arch/riscv/include/asm/guest_access.h
 create mode 100644 xen/arch/riscv/include/asm/guest_atomics.h
 create mode 100644 xen/arch/riscv/include/asm/io.h
 create mode 100644 xen/arch/riscv/include/asm/iommu.h
 create mode 100644 xen/arch/riscv/include/asm/irq.h
 create mode 100644 xen/arch/riscv/include/asm/nospec.h
 create mode 100644 xen/arch/riscv/include/asm/p2m.h
 create mode 100644 xen/arch/riscv/include/asm/regs.h
 create mode 100644 xen/arch/riscv/include/asm/setup.h
 create mode 100644 xen/arch/riscv/include/asm/smp.h
 create mode 100644 xen/arch/riscv/include/asm/spinlock.h
 create mode 100644 xen/arch/riscv/include/asm/system.h
 create mode 100644 xen/arch/riscv/include/asm/time.h
 create mode 100644 xen/arch/riscv/lib/Makefile
 create mode 100644 xen/arch/riscv/lib/find_next_bit.c
 create mode 100644 xen/arch/riscv/stubs.c
 create mode 100644 xen/include/public/arch-riscv.h
 create mode 100644 xen/include/public/arch-riscv/hvm/save.h

Comments

Jan Beulich Dec. 7, 2023, 2:30 p.m. UTC | #1
On 24.11.2023 11:30, Oleksii Kurochko wrote:
> Bobby Eshleman (1):
>   xen/riscv: introduce asm/atomic.h
> 
> Oleksii Kurochko (38):
>   xen/riscv: disable unnecessary configs
>   xen/riscv: use some asm-generic headers
>   xen/riscv:introduce asm/byteorder.h
>   xen/riscv: add public arch-riscv.h
>   xen/riscv: introduce spinlock.h
>   xen/riscv: introduce fence.h
>   xen/riscv: introduce arch-riscv/hvm/save.h
>   xen/riscv: introduce asm/cpufeature.h
>   xen/riscv: introduce asm/guest_atomics.h
>   xen/riscv: introduce asm/iommu.h
>   xen/riscv: introduce asm/nospec.h
>   xen/riscv: introduce asm/setup.h
>   xen/riscv: introduce asm/system.h
>   xen/riscv: introduce bitops.h
>   xen/riscv: introduce flushtlb.h
>   xen/riscv: introduce asm/smp.h
>   xen/riscv: introduce cmpxchg.h
>   xen/riscv: introduce asm/io.h
>   xen/riscv: define bug frame tables in xen.lds.S
>   xen/riscv: introduce bit operations
>   xen/riscv: introduce asm/domain.h
>   xen/riscv: introduce asm/guest_access.h
>   xen/riscv: introduce asm/irq.h
>   xen/riscv: introduce asm/p2m.h
>   xen/riscv: introduce asm/regs.h
>   xen/riscv: introduce asm/time.h
>   xen/riscv: introduce asm/event.h

Throughout here, would you please try to be consistent about (not) using asm/
prefixes?

Jan
Oleksii Kurochko Dec. 8, 2023, 9:56 a.m. UTC | #2
On Thu, 2023-12-07 at 15:30 +0100, Jan Beulich wrote:
> On 24.11.2023 11:30, Oleksii Kurochko wrote:
> > Bobby Eshleman (1):
> >   xen/riscv: introduce asm/atomic.h
> > 
> > Oleksii Kurochko (38):
> >   xen/riscv: disable unnecessary configs
> >   xen/riscv: use some asm-generic headers
> >   xen/riscv:introduce asm/byteorder.h
> >   xen/riscv: add public arch-riscv.h
> >   xen/riscv: introduce spinlock.h
> >   xen/riscv: introduce fence.h
> >   xen/riscv: introduce arch-riscv/hvm/save.h
> >   xen/riscv: introduce asm/cpufeature.h
> >   xen/riscv: introduce asm/guest_atomics.h
> >   xen/riscv: introduce asm/iommu.h
> >   xen/riscv: introduce asm/nospec.h
> >   xen/riscv: introduce asm/setup.h
> >   xen/riscv: introduce asm/system.h
> >   xen/riscv: introduce bitops.h
> >   xen/riscv: introduce flushtlb.h
> >   xen/riscv: introduce asm/smp.h
> >   xen/riscv: introduce cmpxchg.h
> >   xen/riscv: introduce asm/io.h
> >   xen/riscv: define bug frame tables in xen.lds.S
> >   xen/riscv: introduce bit operations
> >   xen/riscv: introduce asm/domain.h
> >   xen/riscv: introduce asm/guest_access.h
> >   xen/riscv: introduce asm/irq.h
> >   xen/riscv: introduce asm/p2m.h
> >   xen/riscv: introduce asm/regs.h
> >   xen/riscv: introduce asm/time.h
> >   xen/riscv: introduce asm/event.h
> 
> Throughout here, would you please try to be consistent about (not)
> using asm/
> prefixes?
Sure. I'll skip asm, there is no any sense to use it as it is mentioned
xen/riscv...

~ Oleksii