From: Oleksii Kurochko <oleksii.kurochko@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Oleksii Kurochko <oleksii.kurochko@gmail.com>,
Alistair Francis <alistair.francis@wdc.com>,
Bob Eshleman <bobbyeshleman@gmail.com>,
Connor Davis <connojdavis@gmail.com>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>,
Stefano Stabellini <sstabellini@kernel.org>
Subject: [PATCH v1 0/6] Unflattening and relocation of host device tree
Date: Wed, 27 Nov 2024 13:50:09 +0100 [thread overview]
Message-ID: <cover.1732709650.git.oleksii.kurochko@gmail.com> (raw)
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
next reply other threads:[~2024-11-27 12:50 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-27 12:50 Oleksii Kurochko [this message]
2024-11-27 12:50 ` [PATCH v1 1/6] xen/riscv: add destroy_xen_mappings() to remove mappings in Xen page tables Oleksii Kurochko
2024-12-09 14:23 ` Jan Beulich
2024-12-10 11:14 ` Oleksii Kurochko
2024-12-10 12:21 ` Jan Beulich
2024-11-27 12:50 ` [PATCH v1 2/6] xen/riscv: reorder includes in asm/page.h alphabetically Oleksii Kurochko
2024-12-09 14:24 ` Jan Beulich
2024-11-27 12:50 ` [PATCH v1 3/6] xen/riscv: add {set,clear}_fixmap() functions for managing fixmap entries Oleksii Kurochko
2024-12-09 14:29 ` Jan Beulich
2024-12-10 11:22 ` Oleksii Kurochko
2024-11-27 12:50 ` [PATCH v1 4/6] xen/riscv: introduce cache management operations (CMO) Oleksii Kurochko
2024-12-09 14:38 ` Jan Beulich
2024-12-10 12:19 ` Oleksii Kurochko
2024-12-10 12:39 ` Jan Beulich
2024-12-10 15:31 ` Oleksii Kurochko
2024-11-27 12:50 ` [PATCH v1 5/6] xen/riscv: implement relocate_fdt() Oleksii Kurochko
2024-12-09 15:00 ` Jan Beulich
2024-12-10 15:20 ` Oleksii Kurochko
2024-12-10 16:20 ` Jan Beulich
2024-12-11 10:26 ` Oleksii Kurochko
2024-12-11 10:33 ` Jan Beulich
2024-11-27 12:50 ` [PATCH v1 6/6] xen/riscv: relocating and unflattening host device tree Oleksii Kurochko
2024-12-09 15:56 ` Jan Beulich
2024-12-09 15:57 ` Jan Beulich
2024-12-10 15:21 ` Oleksii Kurochko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1732709650.git.oleksii.kurochko@gmail.com \
--to=oleksii.kurochko@gmail.com \
--cc=alistair.francis@wdc.com \
--cc=andrew.cooper3@citrix.com \
--cc=bobbyeshleman@gmail.com \
--cc=connojdavis@gmail.com \
--cc=jbeulich@suse.com \
--cc=julien@xen.org \
--cc=sstabellini@kernel.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.