[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [RISC-V] Switch to H-mode
On Mon, Jan 23, 2023 at 06:56:19PM +0200, Oleksii wrote: > Hi Alistair and community, > > I am working on RISC-V support upstream for Xen based on your and Bobby > patches. > > Adding the RISC-V support I realized that Xen is ran in S-mode. Output > of OpenSBI: > ... > Domain0 Next Mode : S-mode > ... > So the first my question is shouldn't it be in H-mode? > > If I am right than it looks like we have to do a patch to OpenSBI to > add support of H-mode as it is not supported now: > [1] > https://github.com/riscv-software-src/opensbi/blob/master/lib/sbi/sbi_domain.c#L380 > [2] > https://github.com/riscv-software-src/opensbi/blob/master/include/sbi/riscv_encoding.h#L110 > Please correct me if I am wrong. > > The other option I see is to switch to H-mode in U-boot as I understand > the classical boot flow is: > OpenSBI -> U-boot -> Xen -> Domain{0,...} > If it is at all possible since U-boot will be in S mode after OpenSBI. > > Thanks in advance. > > ~ Oleksii > Ah, what you are seeing there is that the openSBI's Next Mode excludes the virtualization mode (it treats HS and S synonymously) and it is only used for setting the mstatus MPP. The code also has next_virt for setting the MPV but I don't think that is exposed via the device tree yet. For Xen, you'd want next_mode = PRIV_S and next_virt = 0 (HS mode, not VS mode). The relevant setup prior to mret is here for interested readers: https://github.com/riscv-software-src/opensbi/blob/001106d19b21cd6443ae7f7f6d4d048d80e9ecac/lib/sbi/sbi_hart.c#L759 As long as the next_mode and next_virt are set correctly, then Xen should be launching in HS mode. I do believe this should be default for the stock build too for Domain0, unless something has changed. Thanks, Bobby
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |