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

[PATCH v1 0/6] Unflattening and relocation of host device tree



The current patch series introduces the relocation of the host device tree file
to free up low memory and also it is expected that discard_initial_modules()
will be called sooner or later, it will discard the FDT boot module,
and remove_early_mappings() will destroy the early mappings.

In addition to relocation, unflattening is introduced to create the tree of
struct device_node for the host device tree.

To implement this, several things have been introduced:
 - destroy_xen_mappings() function, which removes page mappings from Xen's
   page tables. This is necessary for clear_fixmap().
 - {set,clear}_fixmap() functions to manage mappings in the fixmap region,
   which are expected to be used in copy_from_paddr() to copy the FDT to Xen's
   heap.
 - A new config HAS_CMO is introduced (in anticipation of future use). This is
   despite the fact that hardware ( "available" to me ) with the hypervisor
   extension is generally I/O-coherent ( and it is preferred way mentioned in
   the RISC-V spec ) and should not be an issue in QEMU as it doesn't emulate
   caches.
   This config introduces stubs for clean_and_invalidate_dcache_va_range()
   and clean_dcache_va_range(), which are expected to be used in
   copy_from_paddr() and flush_page_to_ram(), which in turn are expected to be
   used during the call to xmalloc_bytes() in relocate_fdt().
 - The introduction of copy_from_paddr() to copy the FDT to an address
   allocated in Xen's heap.

Oleksii Kurochko (6):
  xen/riscv: add destroy_xen_mappings() to remove mappings in Xen page
    tables
  xen/riscv: reorder includes in asm/page.h alphabetically
  xen/riscv: add {set,clear}_fixmap() functions for managing fixmap
    entries
  xen/riscv: introduce cache management operations (CMO)
  xen/riscv: implement relocate_fdt()
  xen/riscv: relocating and unflattening host device tree

 xen/arch/riscv/Kconfig              |  3 ++
 xen/arch/riscv/include/asm/fixmap.h |  5 +++
 xen/arch/riscv/include/asm/mm.h     | 10 ++++-
 xen/arch/riscv/include/asm/page.h   | 30 +++++++++++++--
 xen/arch/riscv/mm.c                 |  9 ++---
 xen/arch/riscv/pt.c                 | 27 ++++++++++++++
 xen/arch/riscv/setup.c              | 57 ++++++++++++++++++++++++++++-
 7 files changed, 128 insertions(+), 13 deletions(-)

-- 
2.47.0




 


Rackspace

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