Xen ARM with Virtualization Extensions/Lager
The Lager board based on Renesas R-Car H2 SoC is now supported in Xen upstream.
Prepare U-boot
Get u-boot sources
Clone sources from: git://git.denx.de/u-boot.git Checkout on commit, hash: f7ca1f7, net: sh-eth: Add cache writeback control after setting bit of DMA descriptor
Apply additional patches
Download archive with needed patches (renesas_uboot_patches.tar) from: [1]
Apply patches from renesas_uboot_patches.tar
Build u-boot
Build u-boot with "lager_xen_defconfig" configuration:
# make lager_xen_defconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- # make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
Flash u-boot
Flash u-boot to QSPI as described in Start-Up Guide fot Renesas Lager board.
Check u-boot environment variables
bootargs=console=ttySC6,38400 bootcmd=tftp 0x70007fc0 xen-uImage;tftp 0x70f00000 uImage-r8a7790-lager.dtb;tftp 0x72000000 zImage-uImage;tftp 0x74000000 xenpolicy;bootm 0x70007fc0 – 0x70f00000
where:
- xen-uImage – Xen image
- uImage-r8a7790-lager.dtb – device tree blob
- zImage-uImage – Dom0 kernel image
- xenpolicy – Xen policy binary
Prepare Xen
Get Xen source
Clone sources from upstream: git://xenbits.xen.org/xen.git Checkout on branch: stable-4.5
Build Xen
Build Xen with command with earlyprintk support:
# make xen XEN_TARGET_ARCH=arm32 CROSS_COMPILE=arm-linux-gnueabihf- debug=y XSM_ENABLE=y CONFIG_EARLY_PRINTK=lager
Build Xen with command without earlyprintk support:
# make xen XEN_TARGET_ARCH=arm32 CROSS_COMPILE=arm-linux-gnueabihf- debug=y XSM_ENABLE=y
Make uImage for Xen
Make uImage for Xen with command:
# mkimage -A arm -C none -T kernel -a 0x90000000 -e 0x90000000 -n "XEN" -d xen/xen xen-uImage
Build xenpolicy
Build xenpolicy binary:
# make -C tools/flask/policy
Prepare Dom0 / Device Tree
(TBD)
Prepare other domains
(TBD)