|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v5 1/4] xen/riscv: add VM space layout
Also it was added explanation about ignoring of top VA bits
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>
---
Changes in V5:
* the patch was introduced in the current patch series.
---
xen/arch/riscv/include/asm/config.h | 31 +++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/xen/arch/riscv/include/asm/config.h
b/xen/arch/riscv/include/asm/config.h
index 763a922a04..0c860e88ce 100644
--- a/xen/arch/riscv/include/asm/config.h
+++ b/xen/arch/riscv/include/asm/config.h
@@ -4,6 +4,37 @@
#include <xen/const.h>
#include <xen/page-size.h>
+/*
+ * RISC-V64 Layout:
+ *
+ * From the riscv-privileged doc:
+ * When mapping between narrower and wider addresses,
+ * RISC-V zero-extends a narrower physical address to a wider size.
+ * The mapping between 64-bit virtual addresses and the 39-bit usable
+ * address space of Sv39 is not based on zero-extension but instead
+ * follows an entrenched convention that allows an OS to use one or
+ * a few of the most-significant bits of a full-size (64-bit) virtual
+ * address to quickly distinguish user and supervisor address regions.
+ *
+ * It means that:
+ * top VA bits are simply ignored for the purpose of translating to PA.
+ *
+ * The similar is true for other Sv{32, 39, 48, 57}.
+ *
+ * ============================================================================
+ * Start addr | End addr | Size | VM area description
+ * ============================================================================
+ * FFFFFFFFC0000000 | FFFFFFFFC0200000 | 2 MB | Xen
+ * FFFFFFFFC0200000 | FFFFFFFFC0600000 | 4 MB | FDT
+ * FFFFFFFFC0600000 | FFFFFFFFC0800000 | 2 MB | Fixmap
+ * .................. unused ..................
+ * 0000003200000000 | 0000007f40000000 | 331 GB | Direct map(L2 slot: 200-509)
+ * 0000003100000000 | 0000003140000000 | 1 GB | Frametable(L2 slot: 196-197)
+ * 0000003080000000 | 00000030c0000000 | 1 GB | VMAP (L2 slot: 194-195)
+ * .................. unused ..................
+ * ============================================================================
+ */
+
#if defined(CONFIG_RISCV_64)
# define LONG_BYTEORDER 3
# define ELFSIZE 64
--
2.39.2
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |