[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v1 00/57] Enable build of full Xen for RISC-V



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.

Also the patch series has open question described in the patch 57

Patch 56 is only needed for test purposes and will be removed.

Oleksii Kurochko (57):
  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 paging.h
  xen/riscv: introduce asm/cpufeature.h
  xen/riscv: introduce asm/device.h
  xen/riscv: introduce asm/event.h
  xen/riscv: introduce asm/grant_table.h
  xen/riscv: introduce asm/guest_atomics.h
  xen/riscv: introduce asm/hypercall.h
  xen/riscv: introduce asm/iocap.h
  xen/riscv: introduce asm/iommu.h
  xen/riscv: introduce asm/mem_access.h
  xen/riscv: introduce asm/nospec.h
  xen/riscv: introduce asm/pci.h
  xen/riscv: introduce asm/random.h
  xen/riscv: introduce asm/setup.h
  xen/riscv: introduce asm/system.h
  xen/riscv: introduce asm/xenoprof.h
  xen/riscv: introduce bitops.h
  xen/riscv: introduce flushtlb.h
  xen/riscv: introduce asm/percpu.h
  xen/riscv: introduce asm/smp.h
  xen/riscv: introduce asm/atomic.h
  xen/riscv: introduce cmpxchg.h
  xen/riscv: introduce asm/io.h
  xen/riscv: introduce asm/hardirq.h
  xen/riscv: introduce div64.h
  xen/riscv: define bug frame tables in xen.lds.S
  xen/riscv: introduce bit operations
  xen/riscv: introduce asm/altp2m.h
  xen/riscv: introduce asm/delay.h
  xen/riscv: introduce asm/domain.h
  xen/riscv: introduce asm/guest_access.h
  xen/riscv: introduce asm/irq.h
  xen/riscv: introduce asm/monitor.h
  xen/riscv: introduce asm/numa.h
  xen/riscv: introduce asm/p2m.h
  xen/riscv: introduce asm/regs.h
  xen/riscv: introduce asm/softirq.h
  xen/riscv: introduce asm/time.h
  xen/riscv: introduce asm/vm_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/riscv: add minimal stuff to asm/smp.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
  test only riscv
  xxxen/riscv: WIP ( need advise )

 automation/gitlab-ci/analyze.yaml          |  16 -
 automation/gitlab-ci/build.yaml            | 544 ---------------------
 automation/gitlab-ci/test.yaml             | 308 ------------
 xen/arch/riscv/Kconfig                     |   1 +
 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/altp2m.h        |  28 ++
 xen/arch/riscv/include/asm/asm_defns.h     |  44 ++
 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       | 373 ++++++++++++++
 xen/arch/riscv/include/asm/config.h        |  21 +
 xen/arch/riscv/include/asm/cpufeature.h    |  22 +
 xen/arch/riscv/include/asm/current.h       |  17 +
 xen/arch/riscv/include/asm/delay.h         |  17 +
 xen/arch/riscv/include/asm/device.h        |  55 +++
 xen/arch/riscv/include/asm/div64.h         |  22 +
 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/grant_table.h   |  61 +++
 xen/arch/riscv/include/asm/guest_access.h  |  29 ++
 xen/arch/riscv/include/asm/guest_atomics.h |  63 +++
 xen/arch/riscv/include/asm/hardirq.h       |  26 +
 xen/arch/riscv/include/asm/hypercall.h     |   4 +
 xen/arch/riscv/include/asm/io.h            | 132 +++++
 xen/arch/riscv/include/asm/iocap.h         |  16 +
 xen/arch/riscv/include/asm/iommu.h         |   7 +
 xen/arch/riscv/include/asm/irq.h           |  34 ++
 xen/arch/riscv/include/asm/livepatch.h     |   0
 xen/arch/riscv/include/asm/mem_access.h    |   4 +
 xen/arch/riscv/include/asm/mm.h            | 270 +++++++++-
 xen/arch/riscv/include/asm/monitor.h       |  53 ++
 xen/arch/riscv/include/asm/nospec.h        |  25 +
 xen/arch/riscv/include/asm/numa.h          |  38 ++
 xen/arch/riscv/include/asm/p2m.h           | 129 +++++
 xen/arch/riscv/include/asm/page.h          |  37 ++
 xen/arch/riscv/include/asm/paging.h        |   7 +
 xen/arch/riscv/include/asm/pci.h           |   7 +
 xen/arch/riscv/include/asm/percpu.h        |  33 ++
 xen/arch/riscv/include/asm/perfc_defn.h    |   0
 xen/arch/riscv/include/asm/processor.h     |  15 +
 xen/arch/riscv/include/asm/random.h        |   9 +
 xen/arch/riscv/include/asm/regs.h          |  27 +
 xen/arch/riscv/include/asm/setup.h         |   6 +
 xen/arch/riscv/include/asm/smp.h           |  23 +
 xen/arch/riscv/include/asm/softirq.h       |  16 +
 xen/arch/riscv/include/asm/spinlock.h      |  13 +
 xen/arch/riscv/include/asm/system.h        |  83 ++++
 xen/arch/riscv/include/asm/time.h          |  20 +
 xen/arch/riscv/include/asm/vm_event.h      |  52 ++
 xen/arch/riscv/include/asm/xenoprof.h      |   4 +
 xen/arch/riscv/lib/Makefile                |   1 +
 xen/arch/riscv/lib/find_next_bit.c         | 278 +++++++++++
 xen/arch/riscv/mm.c                        |  85 +++-
 xen/arch/riscv/setup.c                     |   9 +-
 xen/arch/riscv/stubs.c                     | 419 ++++++++++++++++
 xen/arch/riscv/traps.c                     |  25 +
 xen/arch/riscv/xen.lds.S                   |  10 +
 xen/common/memory.c                        |   1 +
 xen/common/symbols.c                       |   1 +
 xen/include/public/arch-riscv.h            |  90 ++++
 xen/include/public/arch-riscv/hvm/save.h   |  22 +
 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 +
 xen/include/xen/iommu.h                    |   1 +
 xen/include/xen/sched.h                    |   1 +
 74 files changed, 3625 insertions(+), 1046 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/altp2m.h
 create mode 100644 xen/arch/riscv/include/asm/asm_defns.h
 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/delay.h
 create mode 100644 xen/arch/riscv/include/asm/device.h
 create mode 100644 xen/arch/riscv/include/asm/div64.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/grant_table.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/hardirq.h
 create mode 100644 xen/arch/riscv/include/asm/hypercall.h
 create mode 100644 xen/arch/riscv/include/asm/io.h
 create mode 100644 xen/arch/riscv/include/asm/iocap.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/livepatch.h
 create mode 100644 xen/arch/riscv/include/asm/mem_access.h
 create mode 100644 xen/arch/riscv/include/asm/monitor.h
 create mode 100644 xen/arch/riscv/include/asm/nospec.h
 create mode 100644 xen/arch/riscv/include/asm/numa.h
 create mode 100644 xen/arch/riscv/include/asm/p2m.h
 create mode 100644 xen/arch/riscv/include/asm/paging.h
 create mode 100644 xen/arch/riscv/include/asm/pci.h
 create mode 100644 xen/arch/riscv/include/asm/percpu.h
 create mode 100644 xen/arch/riscv/include/asm/perfc_defn.h
 create mode 100644 xen/arch/riscv/include/asm/random.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/softirq.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/include/asm/vm_event.h
 create mode 100644 xen/arch/riscv/include/asm/xenoprof.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

-- 
2.41.0




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.