[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2] xen/arm: Skip Xen specific nodes/properties from hwdom /chosen node



On Tue, 12 Sep 2023, Michal Orzel wrote:
> Skip the following Xen specific host device tree nodes/properties
> from being included into hardware domain /chosen node:
>  - xen,static-heap: this property informs Xen about memory regions
>    reserved exclusively as static heap,
>  - xen,domain-shared-memory-v1: node with this compatible informs Xen
>    about static shared memory region for a domain. Xen exposes a different
>    node (under /reserved-memory with compatible "xen,shared-memory-v1") to
>    let domain know about the shared region,
>  - xen,evtchn-v1: node with this compatible informs Xen about static
>    event channel configuration for a domain. Xen does not expose
>    information about static event channels to domUs and dom0 case was
>    overlooked (by default nodes from host dt are copied to dom0 fdt unless
>    explicitly marked to be skipped), since the author's idea was not to
>    expose it (refer docs/misc/arm/device-tree/booting.txt, "Static Event
>    Channel"). Even if we wanted to expose the static event channel
>    information, the current node is in the wrong format (i.e. contains
>    phandle to domU node not visible by dom0). Lastly, this feature is
>    marked as tech-preview and there is no Linux dt binding in place.
> 
> Signed-off-by: Michal Orzel <michal.orzel@xxxxxxx>

Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>

Do we need Henry's explicit approval on bug fixes at this point?


> ---
> Changes in v2:
>  - update commit msg with better reasoning
> ---
>  xen/arch/arm/domain_build.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 29dcbb8a2ee6..413568c0e2fd 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -1149,7 +1149,7 @@ static int __init write_properties(struct domain *d, 
> struct kernel_info *kinfo,
>           * * remember xen,dom0-bootargs if we don't already have
>           *   bootargs (from module #1, above).
>           * * remove bootargs,  xen,dom0-bootargs, xen,xen-bootargs,
> -         *   linux,initrd-start and linux,initrd-end.
> +         *   xen,static-heap, linux,initrd-start and linux,initrd-end.
>           * * remove stdout-path.
>           * * remove bootargs, linux,uefi-system-table,
>           *   linux,uefi-mmap-start, linux,uefi-mmap-size,
> @@ -1158,7 +1158,8 @@ static int __init write_properties(struct domain *d, 
> struct kernel_info *kinfo,
>           */
>          if ( dt_node_path_is_equal(node, "/chosen") )
>          {
> -            if ( dt_property_name_is_equal(prop, "xen,xen-bootargs") ||
> +            if ( dt_property_name_is_equal(prop, "xen,static-heap") ||
> +                 dt_property_name_is_equal(prop, "xen,xen-bootargs") ||
>                   dt_property_name_is_equal(prop, "linux,initrd-start") ||
>                   dt_property_name_is_equal(prop, "linux,initrd-end") ||
>                   dt_property_name_is_equal(prop, "stdout-path") ||
> @@ -2300,6 +2301,8 @@ static int __init handle_node(struct domain *d, struct 
> kernel_info *kinfo,
>      static const struct dt_device_match skip_matches[] __initconst =
>      {
>          DT_MATCH_COMPATIBLE("xen,domain"),
> +        DT_MATCH_COMPATIBLE("xen,domain-shared-memory-v1"),
> +        DT_MATCH_COMPATIBLE("xen,evtchn-v1"),
>          DT_MATCH_COMPATIBLE("xen,xen"),
>          DT_MATCH_COMPATIBLE("xen,multiboot-module"),
>          DT_MATCH_COMPATIBLE("multiboot,module"),
> -- 
> 2.25.1
> 



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.