Message ID | cover.1686080337.git.oleksii.kurochko@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | xen/riscv: introduce identity mapping | expand |
On 06.06.2023 21:55, Oleksii Kurochko wrote: > The patch series introduces things necessary to implement identity mapping: > 1. Make identity mapping for _start and stack. > 2. Enable MMU. > 3. Jump to the virtual address world > 4. Remove identity mapping for _start and stack. > > 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. > * Added __ASSEMBLY__ guards. These are are, aiui, a response to a comment from Andrew. Hence I think this wants expressing by a {Requested,Suggested,Reported}-by: tag in the respective patch. Jan > * 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/ > > Oleksii Kurochko (8): > xen/riscv: make sure that identity mapping isn't bigger then page size > 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: add __ASSEMBLY__ guards > 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 | 6 ++ > xen/arch/riscv/include/asm/traps.h | 2 + > xen/arch/riscv/include/asm/types.h | 2 + > xen/arch/riscv/mm.c | 119 +++++++++++++++------- > xen/arch/riscv/riscv64/head.S | 40 +++++++- > xen/arch/riscv/setup.c | 16 +-- > xen/arch/riscv/xen.lds.S | 11 +- > 12 files changed, 160 insertions(+), 53 deletions(-) >
On Wed, 2023-06-07 at 09:49 +0200, Jan Beulich wrote: > On 06.06.2023 21:55, Oleksii Kurochko wrote: > > The patch series introduces things necessary to implement identity > > mapping: > > 1. Make identity mapping for _start and stack. > > 2. Enable MMU. > > 3. Jump to the virtual address world > > 4. Remove identity mapping for _start and stack. > > > > 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. > > * Added __ASSEMBLY__ guards. > > These are are, aiui, a response to a comment from Andrew. Hence I > think > this wants expressing by a {Requested,Suggested,Reported}-by: tag in > the > respective patch. Thanks for a remark. ~ Oleksii > > * 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/ > > > > Oleksii Kurochko (8): > > xen/riscv: make sure that identity mapping isn't bigger then page > > size > > 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: add __ASSEMBLY__ guards > > 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 | 6 ++ > > xen/arch/riscv/include/asm/traps.h | 2 + > > xen/arch/riscv/include/asm/types.h | 2 + > > xen/arch/riscv/mm.c | 119 +++++++++++++++--- > > ---- > > xen/arch/riscv/riscv64/head.S | 40 +++++++- > > xen/arch/riscv/setup.c | 16 +-- > > xen/arch/riscv/xen.lds.S | 11 +- > > 12 files changed, 160 insertions(+), 53 deletions(-) > > >