
On Fri, 2016-01-29 at 16:54 +0100, Dirk Behme wrote:
On 29.01.2016 10:18, Ian Campbell wrote:
On Fri, 2016-01-29 at 12:04 +0800, Peng Fan wrote:
Hi Dirk,
Cc Ian xen experts.
On Thu, Jan 28, 2016 at 08:06:30PM +0100, Dirk Behme wrote:
Hi,
are there any U-Boot examples/patches to boot Xen on an ARMv8/aarch64 system?
I've found
http://lists.denx.de/pipermail/u-boot/2015-October/230077.html
what might be helpful.
But maybe I missed anything else?
I guess you are asking steps how to boot xen using uboot?
You may need to take this: http://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions
Indeed.
In addition one AArch64 system which uses u-boot and which has concrete instructions is the APM X-Gene/Mustang: http://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/AP MXGeneMustang which would likely be helpful.
Yes, that page is very helpful, thanks!
But I think it misses one information, or most probably the configuration on that board is different. Above page just do a 'run xen_run' which in the end does the necessary tftp loading and finally the bootm to start Xen.
So I'd assume that on that board U-Boot runs at EL3 or EL2 (?).
In my environment, U-Boot runs at EL1. I.e. after loading Xen by tftp I somehow need to switch to EL2 to be able to start Xen.
Once you are in EL1 you cannot get back to EL2 (or EL3) without support from a lower level firmware running in those exception levels. If you have no such underlying firmware then you should arrange for u-boot to run at EL3.
And this is what I think I miss. How to switch from U-Boot running at EL1 to hypervisor mode EL2? Therefore I'd think that
http://lists.denx.de/pipermail/u-boot/2015-October/230077.html
You need to arrange for U-boot to run in EL3 and enter the "kernel" (Xen in this case) in NS EL2. This likely means implementing the PSCI interface for the kernel to use to manage CPUs.
If you were running on a 32-bit system I would direct you towards the CONFIG_ARMV7_PSCI, CONFIG_ARMV7_NONSEC and ARMV7_VIRT u-boot options (which in turn would require your platform code to provide some support). I'm not sure what the equivalent for 64-bit is, sorry.
The link you post is, AFAICT, about the other end i.e. allowing u-boot to talk to an existing secure world firmware beneath it.
Ian.