Hi Christopher,
On 11/22/2024 8:11 AM, Christopher Clark via lists.yoctoproject.org wrote:
Hi Sandeep,
This series is promoting some of the Xen hypervisor launch
configuration from the hardware-specific dynamic layers into the
common layer, and introducing a class that defines interfaces to the
hypervisor and its guest virtual machines that should be applicable
across all architectures, hence my comments from a
non-architecture-specific perspective.
There's a lot of opportunity for development in this layer to extend
and improve this area of configuration -- thanks for your contribution.
[Sandeep]: Yes that's the main goal and I've already discussed with
Bruce on this topic.
On Thu, Nov 21, 2024 at 10:49 PM Sandeep Gundlupet Raju via
lists.yoctoproject.org <http://lists.yoctoproject.org>
<[email protected]> wrote:
Add a new bbclass for xen boot script variables. This bbclass provides
common xen u-boot boot script variables which can be inherited by any
vendor specific u-boot boot script recipes. Also these variable are
configurable from recipes, global and machine configuration files.
Variable nomenclature is aligned with xen documentation.
https://xenbits.xen.org/docs/unstable/misc/xen-command-line.html
Currently it supports Xen Dom0 boot and can be extended for DomU
or Dom0less boot.
I think that none of the variables in the file are specific to the
u-boot bootloader, so: could this class be given a non-u-boot-specific
name, with a view to this configuration being plumbed into all Xen
system configurations?
[Sandeep]: Good catch these variables are not specific to u-boot, I will
rename and send a v3 patch. Does xen-configuration.bbclass name works?
Some of the values defined are specific to Arm64 platforms: could
those default values be moved into an Arm64-specific class? If the
variables themselves are also arch-specific, they could be moved too.
[Sandeep]: Can you specify which variables are arm65 specific?
Declaring the Dom0-specific variables as an interface is a bit
unfortunate, given dom0less (and hyperlaunch) systems where there
needs to be a method for providing the same configuration memory and
vcpu values for multiple guest VMs, rather than just dom0. Do you have
a design in mind for the extension to DomU or Dom0less that you mention?
[Sandeep]: I assume dom0 and dom0less variables are same, to enable
dom0less boot all we need is to enable CONFIG_DOM0LESS_BOOT from xen
configuration. As per Stefano, dom0less is supported for ARM64 today and
Stefano is working to implement dom0less for x86 and will be upstream
soon(not sure on timeline.)
Christopher
Signed-off-by: Sandeep Gundlupet Raju <[email protected]>
---
.../xen-u-boot-scr-configuration.bbclass | 43
+++++++++++++++++++
1 file changed, 43 insertions(+)
create mode 100644
classes-recipe/xen-u-boot-scr-configuration.bbclass
diff --git a/classes-recipe/xen-u-boot-scr-configuration.bbclass
b/classes-recipe/xen-u-boot-scr-configuration.bbclass
new file mode 100644
index 00000000..df8287e1
--- /dev/null
+++ b/classes-recipe/xen-u-boot-scr-configuration.bbclass
@@ -0,0 +1,43 @@
+# Copyright (C) 2024, Advanced Micro Devices, Inc. All rights
reserved.
+#
+# SPDX-License-Identifier: MIT
+#
+# This bbclass defines u-boot script variables required for xen
boot which can be
+# inherited u-boot boot scripts recipes and also allows to
configure these variables
+# from recipes, global and machine configurations files.
+
+# Variable nomenclature is aligned with
+# https://xenbits.xen.org/docs/unstable/misc/xen-command-line.html
+
+# Image Load Address for Xen Dom0 boot
+KERNEL_LOAD_ADDRESS ??= "0x00400000"
+XEN_LOAD_ADDRESS ??= "0x00200000"
+DEVICETREE_LOAD_ADDRESS ??= "0xC000000"
+RAMDISK_LOAD_ADDRESS ??= "0x2600000"
+
+# Xen boot image types.
+# KERNEL_IMAGETYPE: Specifies DomU kernel image file to be loaded
by u-boot.
+# XEN_IMAGETYPE: Specifies xen hypervisor binary to be loaded by
u-boot.
+# Example: xen or xen.efi or xen.gz
+# DOM0_RAMDISK_IMAGETYPE: Specifies DOM0 ramdisk to be used,
Example: cpio.gz
+XEN_IMAGETYPE ??= "xen"
+DOM0_RAMDISK_IMAGETYPE ??= "rootfs.cpio.gz"
+
+# Set the amount of memory for dom0 depending on total available
memory size(DDR).
+DOM0_MEM ??= "256M"
+
+# Specify which UART console Xen should use. You can sepecify the
devicetree
+# alias or full path to a node in the devicetree
+# XEN_SERIAL_CONSOLES = "/soc/serial@7e215040" or
+# XEN_SERIAL_CONSOLES = "serial0" or
+# XEN_SERIAL_CONSOLES = "/axi/serial@ff000000"
+XEN_SERIAL_CONSOLES ??= "/soc/serial@7e215040"
+
+# Specify additional command line arguments used for Xen and this
will be appended
+# to xen-bootargs cariable. This can also be used for passing
debug cmd line arguments.
+# Examples: XEN_CMDLINE_APPEND ?= "sched=credit loglvl=all
guest_loglvl=debug"
+XEN_CMDLINE_APPEND ??= "sync_console bootscrub=0"
+
+# Specify the max number of vcpus for dom0
+# Example usage: DOM0_MAX_VCPUS = "2" or DOM0_MAX_VCPUS = "2-4"
+DOM0_MAX_VCPUS ??= "1"
--
2.34.1
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#9010):
https://lists.yoctoproject.org/g/meta-virtualization/message/9010
Mute This Topic: https://lists.yoctoproject.org/mt/109713423/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-virtualization/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-