[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [RFC PATCH] xen/design: Add design for EFI dom0less system start
Add a design describing a proposal to improve the EFI configuration file, adding keywords to describe domU guests and allowing to start a dom0less system. Signed-off-by: Luca Fancellu <luca.fancellu@xxxxxxx> --- docs/designs/efi-arm-dom0less.md | 105 +++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 docs/designs/efi-arm-dom0less.md diff --git a/docs/designs/efi-arm-dom0less.md b/docs/designs/efi-arm-dom0less.md new file mode 100644 index 0000000000..8d8fa2243f --- /dev/null +++ b/docs/designs/efi-arm-dom0less.md @@ -0,0 +1,105 @@ +# Xen EFI configuration file + +The current configuration file used by Xen when it is started as an EFI +application is considering only the dom0 guest and doesn't have any +property to describe and load in memory domU guests. +Hence currently it's impossible to start a dom0less system using EFI. + +# Objective + +This document describes the proposed improvement to the Xen EFI +configuration file to list properly both the dom0 guest and the domU +guests as well. +The final goal is to be able to start a dom0less system using EFI. + +# Current Xen EFI configuration file + +The current configuration file is described by the documentation page +https://xenbits.xenproject.org/docs/unstable/misc/efi.html. + +Here an example: + +``` +[global] +default=section1 + +[section1] +options=console=vga,com1 com1=57600 loglvl=all noreboot +kernel=vmlinuz-3.0.31-0.4-xen [domain 0 command line options] +ramdisk=initrd-3.0.31-0.4-xen +xsm=<filename> +dtb=devtree.dtb +``` + +# Proposed improvement + +The proposed improvement to the current configuration file is the +introduction of new keywords to describe additional domUs. + +Here follows the proposed new keywords: + - domu#_kernel=<kernel file> [domU command line options] + - Mandatory kernel file for the domU# + - domu#_ramdisk=<ramdisk file> + - Optional ramdisk file for the domU# + - domu#_dtb=<dtb file> + - Optional dtb fragment file for the domU#, it is used for device + assignment (passthrough). + - domu#_property=cpus=2 + - Properties that should be added to the dtb in the domU node to + properly describe the domU guest. Refer to the documentation: + https://xenbits.xenproject.org/docs/unstable/misc/arm/device-tree/booting.txt, + section "Creating Multiple Domains directly from Xen". + +For all the keywords above, the # is a number that uniquely identifies +the guest. +The keywords domu#_kernel, domu#_ramdisk, domu#_dtb are unique, therefore there +must not be specified the same keyword twice in a section. +The # number is not enforcing any domid, it is just used to link each property +to the right guest, so there can be domu1_* guests that are started with domid 2 +and so on. + +The domu#_property can appear multiple times and it specifies an additional +property to be listed in the domU node inside the device tree, Xen will +not check if the same content is specified multiple times. + +There are some property whose name starts with an hash symbol (#address-cells, +#size-cells), in this case the line will be considered as a comment, so to +specify them, they have to be listed without the hash symbol, the documentation +will be updated as well to see the implemented handling of these special +properties. + +# Example of a configuration file describing a dom0less system + +The following configuration file is describing a dom0less system starting two +guests. + +``` +[global] +default=xen + +[xen] +# Xen boot arguments +options=noreboot console=dtuart dtuart=serial0 bootscrub=0 +# Xen device tree +dtb=devtree.dtb + +# Guest 1 +domu1_property=address-cells=2 +domu1_property=size-cells=2 +domu1_kernel=Image-domu1.bin console=ttyAMA0 root=/dev/ram0 rw +domu1_property=cpus=1 +domu1_property=memory=0xC0000 +domu1_dtb=domu.dtb + +# Guest 2 +domu2_kernel=Image-domu2.bin console=ttyAMA0 root=/dev/ram0 rw +domu2_property=cpus=2 +domu2_property=memory=0x100000 +domu2_property=vpl011 +``` + +In this example the Guest 1 is loading Image-domu1.bin as kernel and it is using +the passed boot arguments, it is also loading a device tree snippet for device +passthrough. +The second guest, Guest 2, is using another kernel and it will use the vpl011 +device. -- 2.17.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |