Xen ARM with Virtualization Extensions/Salvator-X: Difference between revisions
Deadwitcher (talk | contribs) No edit summary |
No edit summary |
||
(8 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== General information == |
|||
The Salvator-X board based on Renesas R-Car H3 SoC is now supported in Xen upstream. |
|||
This wiki describes how to run XEN on Renesas Salvator-X board with R-Car H3 SoC. |
|||
<div style="color: red;"> Only minimal configuration - for core-image-minimal are now supported & tested! </div> |
|||
Due to the fact that Renesas provide their reference software in form of [http://elinux.org/index.php?title=R-Car/Boards/Yocto-Gen3&oldid=446036 Yocto build instruction], it is provided additional steps in order to add XEN to the system being built. Those steps add meta-virtualization layer and a glue layer to the Yocto build. |
|||
= Setup = |
|||
XEN hypervisor is taken from a master branch of [http://xenbits.xen.org/gitweb/?p=xen.git xen.git]. |
|||
Follow setup are based & tested on official Renesas Yocto 2.12.0 release (https://github.com/renesas-rcar/meta-renesas/releases/tag/Renesas-Yocto-v2.12.0) |
|||
This wiki relies on Renesas Yocto version [http://elinux.org/index.php?title=R-Car/Boards/Yocto-Gen3&oldid=446036 2.19.0]. |
|||
* Checkout on follow commits: |
|||
poky - 40376446904ae3529be41737fed9a0b650ed167d |
|||
meta-linaro - 9b1fd178309544dff1f7453e796a9437125bc0d9 |
|||
meta-openembedded - 8ab04afbffb4bc5184cfe0655049de6f44269990 |
|||
meta-renesas - 522efd09043aa8af1eec01af2b9e025df424d9a5 |
|||
* Clone some additional yocto layers are required: |
|||
meta-selinux - 4c75d9cbcf1d75043c7c5ab315aa383d9b227510 |
|||
meta-virtualizaion - 042425c1d98bdd7e44a62789bd03b375045266f5 |
|||
* Clone meta-platform-xen repository in the same directory |
|||
⚫ | |||
* Initialize yocto build environment |
|||
source poky/oe-init-build-env |
|||
* Copy local.conf & bblayers.conf from supplied xen layer |
|||
cp meta-platform-xen/meta-rcar-gen3-xen/doc/*.conf ./conf/ </pre> |
|||
== Known limitations == |
|||
= Check u-boot environment variables = |
|||
Due to different XEN specifics there is a list of system deviations from Renesas'es reference software: |
|||
Set follow configuration in u-boot command prompt. |
|||
* ATF exits to bootloader in EL2 mode |
|||
<pre> |
|||
* TEE client is not functional |
|||
bootargs=dom0_mem=512M console=dtuart dtuart=serial0 dom0_max_vcpus=1 bootscrub=0 flask_enforcing=1 |
|||
* reserved memory is not supported |
|||
bootcmd=tftp 0x78080000 xen-salvator-x-xen.uImage; tftp 0x738000000 Image-r8a7795-salvator-x-dom0.dtb; tftp 0x7a000000 Image; tftp 0x7c000000 xenpolicy-salvator-x-xen; bootm 0x78080000 - 0x738000000 |
|||
* adsp, mmngr, mmngrbuf are dropped because they rely on reserved memory |
|||
</pre> |
|||
Because of the fact that Renesas BSP u-boot uses cli-simple, adequate manual updating of fdt is not possible. So within the glue layer it is provided a [https://github.com/xen-troops/meta-demo/blob/master/meta-rcar-gen3-xen/recipes-kernel/linux/linux-renesas/r8a7795-salvator-x-xen.dts device tree] with changes required for XEN. |
|||
Please consider changes to dts and appropriate dtb load in case you want system configuration changes (i.e. nfs server ip, dom0 root option, xen command line, etc.) |
|||
== System build == |
|||
* Follow the [http://elinux.org/index.php?title=R-Car/Boards/Yocto-Gen3&oldid=446036 instruction] to the system build step 10, including it. |
|||
* Add meta-virtualization layer with its dependencies: |
|||
git clone git://git.yoctoproject.org/meta-virtualization -b morty ../meta-virtualization |
|||
bitbake-layers add-layer ../meta-virtualization |
|||
git clone git://git.yoctoproject.org/meta-selinux -b jethro ../meta-selinux |
|||
bitbake-layers add-layer ../meta-selinux |
|||
bitbake-layers add-layer ../meta-openembedded/meta-networking |
|||
bitbake-layers add-layer ../meta-openembedded/meta-python |
|||
* Add the glue layer |
|||
⚫ | |||
bitbake-layers add-layer ../meta-demo/meta-rcar-gen3-xen |
|||
* Continue build steps from [http://elinux.org/index.php?title=R-Car/Boards/Yocto-Gen3&oldid=446036 instruction] |
|||
== BL2 & U-boot update procedure == |
|||
It is crucial to update ATF on the board in order to get XEN start in EL2. |
|||
Please follow your board manual to find out ATF update procedure. |
|||
== Running the system == |
|||
Setup tftp and nfs as described in [http://elinux.org/index.php?title=R-Car/Boards/Yocto-Gen3&oldid=446036#Running_Yocto_images instruction]. |
|||
Please consider that default expected nfs server setup is ''nfsroot=192.168.1.100:/srv/dom0''. |
|||
For the system boot issue from u-boot cli: |
|||
setenv bootargs #empties the bootargs added by u-boot |
|||
tftp 0x48000000 Image-r8a7795-salvator-x-xen.dtb |
|||
tftp 0x48080000 xen-salvator-x.uImage |
|||
tftp 0x7a000000 Image |
|||
bootm 0x48080000 - 0x48000000 |
|||
[[Category:XenARM]] |
[[Category:XenARM]] |
||
⚫ | |||
[[Category:Developers]] |
[[Category:Developers]] |
||
[[Documentation Type: Manual]] |
|||
⚫ | |||
[[Category:Xen 4.8]] |
Latest revision as of 16:43, 14 July 2017
General information
This wiki describes how to run XEN on Renesas Salvator-X board with R-Car H3 SoC.
Due to the fact that Renesas provide their reference software in form of Yocto build instruction, it is provided additional steps in order to add XEN to the system being built. Those steps add meta-virtualization layer and a glue layer to the Yocto build.
XEN hypervisor is taken from a master branch of xen.git.
This wiki relies on Renesas Yocto version 2.19.0.
Known limitations
Due to different XEN specifics there is a list of system deviations from Renesas'es reference software:
- ATF exits to bootloader in EL2 mode
- TEE client is not functional
- reserved memory is not supported
- adsp, mmngr, mmngrbuf are dropped because they rely on reserved memory
Because of the fact that Renesas BSP u-boot uses cli-simple, adequate manual updating of fdt is not possible. So within the glue layer it is provided a device tree with changes required for XEN.
Please consider changes to dts and appropriate dtb load in case you want system configuration changes (i.e. nfs server ip, dom0 root option, xen command line, etc.)
System build
- Follow the instruction to the system build step 10, including it.
- Add meta-virtualization layer with its dependencies:
git clone git://git.yoctoproject.org/meta-virtualization -b morty ../meta-virtualization bitbake-layers add-layer ../meta-virtualization git clone git://git.yoctoproject.org/meta-selinux -b jethro ../meta-selinux bitbake-layers add-layer ../meta-selinux bitbake-layers add-layer ../meta-openembedded/meta-networking bitbake-layers add-layer ../meta-openembedded/meta-python
- Add the glue layer
git clone https://github.com/xen-troops/meta-demo -b master ../meta-demo bitbake-layers add-layer ../meta-demo/meta-rcar-gen3-xen
- Continue build steps from instruction
BL2 & U-boot update procedure
It is crucial to update ATF on the board in order to get XEN start in EL2.
Please follow your board manual to find out ATF update procedure.
Running the system
Setup tftp and nfs as described in instruction.
Please consider that default expected nfs server setup is nfsroot=192.168.1.100:/srv/dom0.
For the system boot issue from u-boot cli:
setenv bootargs #empties the bootargs added by u-boot tftp 0x48000000 Image-r8a7795-salvator-x-xen.dtb tftp 0x48080000 xen-salvator-x.uImage tftp 0x7a000000 Image bootm 0x48080000 - 0x48000000