|
[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
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |