Message ID | cover.1687178053.git.oleksii.kurochko@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | xen/riscv: introduce identity mapping | expand |
Hello Bobby and Alistair, Some patches of the current patch series were merged, but some still require your Ack-by/Reviewed-by. Could you please look at the following patches: 1. [PATCH v2 3/6] xen/riscv: introduce function for physical offset calculation 2. [PATCH v2 4/6] xen/riscv: introduce identity mapping Thank you so much for your attention and participation. ~ Oleksii On Mon, 2023-06-19 at 16:34 +0300, Oleksii Kurochko wrote: > The patch series introduces things necessary to implement identity > mapping: > 1. Make identity mapping for the entire Xen. > 2. Enable MMU. > 3. Jump to the virtual address world > 4. Remove identity mapping. > > Also current patch series introduces the calculation of physical > offset before > MMU is enabled as access to physical offset will be calculated wrong > after > MMU will be enabled because access to phys_off variable is PC- > relative and > in the case when linker address != load address, it will cause MMU > fault. > > One more thing that was done is: > * Added SPDX tags. > * move extern of cpu0_boot_stack to a header. > > The reason for this patch series can be found here: > https://lore.kernel.org/xen-devel/4e336121-fc0c-b007-bf7b-430352563d55@citrix.com/ > > --- > Changes in V2: > - update the patch series message. > - drop patches from the previous version of the patch series: > * xen/riscv: add __ASSEMBLY__ guards". ( merged ) > * xen/riscv: make sure that identity mapping isn't bigger then > page size > ( entire Xen is 1:1 mapped so there is no need for the checks > from the patch ) > - add .sbss.* and put it befor .bss* . > - move out reset_stack() to .text section. > - add '__ro_after_init' for phys_offset variable. > - add '__init' for calc_phys_offset(). > - declaring variable phys_off as non static as it will be used in > head.S. > - update definition of PGTBL_INITIAL_COUNT and the comment above. > - code style fixes. > - remove id_addrs array becase entire Xen is mapped. > - reverse condition for cycle inside remove_identity_mapping(). > - fix page table walk in remove_identity_mapping(). > - save hart_id and dtb_addr before call MMU related C functions > - use phys_offset variable instead of doing calcultations to get > phys offset > in head.S file. ( it can be easily done as entire Xen is 1:1 > mapped now ) > - declare enable_muu() as __init. > - Update SPDX tags. > - Add Review-By/Suggested-By for some patches. > - code style fixes. > > Oleksii Kurochko (6): > xen/riscv: add .sbss section to .bss > xen/riscv: introduce reset_stack() function > xen/riscv: introduce function for physical offset calculation > xen/riscv: introduce identity mapping > xen/riscv: add SPDX tags > xen/riscv: move extern of cpu0_boot_stack to header > > xen/arch/riscv/include/asm/config.h | 2 + > xen/arch/riscv/include/asm/current.h | 2 + > xen/arch/riscv/include/asm/early_printk.h | 2 + > xen/arch/riscv/include/asm/mm.h | 9 +- > xen/arch/riscv/include/asm/page-bits.h | 2 + > xen/arch/riscv/include/asm/page.h | 2 + > xen/arch/riscv/include/asm/traps.h | 2 + > xen/arch/riscv/include/asm/types.h | 2 + > xen/arch/riscv/mm.c | 104 +++++++++++++------- > -- > xen/arch/riscv/riscv64/head.S | 46 +++++++++- > xen/arch/riscv/setup.c | 16 +--- > xen/arch/riscv/xen.lds.S | 2 +- > 12 files changed, 136 insertions(+), 55 deletions(-) >