-
Notifications
You must be signed in to change notification settings - Fork 641
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Completing the manual's ARM virtualisation section #1083
Comments
Now that SMC forwarding is in the kernel, that should also be mentioned. |
I keep saying this, but: SMC forwarding has nothing to do with virtualisation as such and forwarding is a bad name to being with, because it just makes it possible to make SMC calls from user space. So the "forwarding" bit is forwarding SMC calls upwards from the kernel to the system monitor. This should be documented separately for ARM and not in the virtualisation section, because that will be just confusing. When a guest VM calls SMC, it traps into the VMM, so SMC calls from the guest are a way to communicate with the host. This you could document in the virtualisation section. The VMM can implement e.g. ARM's standard PSCI calls any way it wants, a reboot could restart the VM for instance. That it wants to implement an SMC call by doing the real SMC call is more or less coincidence (and the chance of that happening increases with obscure platform specific SMC calls needed to make specific hardware work). It's fine to have a reference to the SMC forwarding section. |
That's what I meant yes. |
As well as when you have a guest that needs access to some firmware that's only available via SMC and it is not possible/realistic to emulate the SMC call in the VMM. |
Documentation should be limited mostly to what seL4 provides and does, it should not be a generic guide on how to write a virtual monitor for ARM.
In that case it's obvious that a real SMC call must be done, no need to point it out in the documentation. That will only confuse people by conflating emulated SMC calls with real ones. |
This resolves issue seL4#1083. Signed-off-by: Indan Zupancic <indan@nul.nu>
This resolves issue seL4#1083. Signed-off-by: Indan Zupancic <indan@nul.nu>
This resolves issue seL4#1083. Signed-off-by: Indan Zupancic <indan@nul.nu>
This resolves issue seL4#1083. Signed-off-by: Indan Zupancic <indan@nul.nu>
Do you mean the default values of all system registers? That seems too much details for the manual. Also, they can be retrieved before starting the VM.
That List Registers can't be fully read/written by the VMM should be documented.
I think the only difference is the name of the registers in
ARM does not support hosting 64-bit guests on a 32-bit host (does anyone? How would you read or write 64-bit registers?). I'm not sure whether seL4 supports 32-bit guests on 64-bit hosts. You can change the mode to 32-bit and I suspect things will probably just work. That said, seL4 doesn't support 32-bit user space on a 64-bit kernel either AFAIK, but whether that's just missing a way of changing the mode to 32-bit I don't know. |
Yes, agreed.
Whoops, sorry, don't why I wrote 'vice versa'. |
This resolves issue seL4#1083. Signed-off-by: Indan Zupancic <indan@nul.nu>
This resolves issue seL4#1083. Signed-off-by: Indan Zupancic <indan@nul.nu>
This resolves issue seL4#1083. Signed-off-by: Indan Zupancic <indan@nul.nu>
This resolves issue #1083. Signed-off-by: Indan Zupancic <indan@nul.nu>
I'd be keen to have this section finished/fleshed out, but I'm only familiar with virtualising ARM guests on seL4 from a user-space perspective, which is probably not enough to do the manual section properly. This is a list of things I would put in the manual section, but am looking for things that are missing from the list:
The text was updated successfully, but these errors were encountered: