docs/misc/arm/device-tree/booting.txt | 11 +++++------ docs/misc/arm/passthrough-noiommu.txt | 7 +++---- xen/arch/arm/bootfdt.c | 5 ----- xen/arch/arm/domain_build.c | 16 ++-------------- 4 files changed, 10 insertions(+), 29 deletions(-)
In order to keep consistency in the device tree binding, there is
no need for static memory allocation feature to define a specific
set of address and size cells for "xen,static-mem" property.
Therefore, this commit reuses the regular #{address,size}-cells
for parsing the device tree "xen,static-mem" property. Update
the documentation accordingly.
Also, take the chance to remove the unnecessary "#address-cells"
and "#size-cells" in the domU1 node of the device tree to only
emphasize the related part that the example is showing.
Signed-off-by: Henry Wang <Henry.Wang@arm.com>
---
Changes from v1 to v2:
- Remove the "----" addition, as it is unnecessary to this patch.
- Mention the removal of #address-cells and #size-cells in domU1
node in the commit message.
---
docs/misc/arm/device-tree/booting.txt | 11 +++++------
docs/misc/arm/passthrough-noiommu.txt | 7 +++----
xen/arch/arm/bootfdt.c | 5 -----
xen/arch/arm/domain_build.c | 16 ++--------------
4 files changed, 10 insertions(+), 29 deletions(-)
diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt
index 5395a1077c..10caf4f1af 100644
--- a/docs/misc/arm/device-tree/booting.txt
+++ b/docs/misc/arm/device-tree/booting.txt
@@ -350,8 +350,8 @@ areas are pre-defined by configuration using physical address ranges.
Memory can be statically allocated to a domain using the property "xen,static-
mem" defined in the domain configuration. The number of cells for the address
-and the size must be defined using respectively the properties
-"#xen,static-mem-address-cells" and "#xen,static-mem-size-cells".
+and the size must be defined respectively by the parent node properties
+"#address-cells" and "#size-cells".
The property 'memory' is still needed and should match the amount of memory
given to the guest. Currently, it either comes from static memory or lets Xen
@@ -366,14 +366,13 @@ device-tree:
/ {
chosen {
+ #address-cells = <0x1>;
+ #size-cells = <0x1>;
+ ...
domU1 {
compatible = "xen,domain";
- #address-cells = <0x2>;
- #size-cells = <0x2>;
cpus = <2>;
memory = <0x0 0x80000>;
- #xen,static-mem-address-cells = <0x1>;
- #xen,static-mem-size-cells = <0x1>;
xen,static-mem = <0x30000000 0x20000000>;
...
};
diff --git a/docs/misc/arm/passthrough-noiommu.txt b/docs/misc/arm/passthrough-noiommu.txt
index 3e2ef21ad7..69b8de1975 100644
--- a/docs/misc/arm/passthrough-noiommu.txt
+++ b/docs/misc/arm/passthrough-noiommu.txt
@@ -33,14 +33,13 @@ on static allocation in the device-tree:
/ {
chosen {
+ #address-cells = <0x1>;
+ #size-cells = <0x1>;
+ ...
domU1 {
compatible = "xen,domain";
- #address-cells = <0x2>;
- #size-cells = <0x2>;
cpus = <2>;
memory = <0x0 0x80000>;
- #xen,static-mem-address-cells = <0x1>;
- #xen,static-mem-size-cells = <0x1>;
xen,static-mem = <0x30000000 0x20000000>;
direct-map;
...
diff --git a/xen/arch/arm/bootfdt.c b/xen/arch/arm/bootfdt.c
index 9e1ea60094..59675f086b 100644
--- a/xen/arch/arm/bootfdt.c
+++ b/xen/arch/arm/bootfdt.c
@@ -370,11 +370,6 @@ static int __init process_domain_node(const void *fdt, int node,
/* No "xen,static-mem" present. */
return 0;
- address_cells = device_tree_get_u32(fdt, node,
- "#xen,static-mem-address-cells", 0);
- size_cells = device_tree_get_u32(fdt, node,
- "#xen,static-mem-size-cells", 0);
-
return device_tree_get_meminfo(fdt, node, "xen,static-mem", address_cells,
size_cells, &bootinfo.reserved_mem,
MEMBANK_STATIC_DOMAIN);
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 7412303d20..9040a8c6cb 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -565,21 +565,9 @@ static int __init parse_static_mem_prop(const struct dt_device_node *node,
const struct dt_property *prop;
prop = dt_find_property(node, "xen,static-mem", NULL);
- if ( !dt_property_read_u32(node, "#xen,static-mem-address-cells",
- addr_cells) )
- {
- printk(XENLOG_ERR
- "failed to read \"#xen,static-mem-address-cells\".\n");
- return -EINVAL;
- }
- if ( !dt_property_read_u32(node, "#xen,static-mem-size-cells",
- size_cells) )
- {
- printk(XENLOG_ERR
- "failed to read \"#xen,static-mem-size-cells\".\n");
- return -EINVAL;
- }
+ *addr_cells = dt_n_addr_cells(node);
+ *size_cells = dt_n_size_cells(node);
*cell = (const __be32 *)prop->value;
*length = prop->length;
--
2.17.1
On Fri, 9 Sep 2022, Henry Wang wrote: > In order to keep consistency in the device tree binding, there is > no need for static memory allocation feature to define a specific > set of address and size cells for "xen,static-mem" property. > > Therefore, this commit reuses the regular #{address,size}-cells > for parsing the device tree "xen,static-mem" property. Update > the documentation accordingly. > > Also, take the chance to remove the unnecessary "#address-cells" > and "#size-cells" in the domU1 node of the device tree to only > emphasize the related part that the example is showing. > > Signed-off-by: Henry Wang <Henry.Wang@arm.com> Acked-by: Stefano Stabellini <sstabellini@kernel.org> > --- > Changes from v1 to v2: > - Remove the "----" addition, as it is unnecessary to this patch. > - Mention the removal of #address-cells and #size-cells in domU1 > node in the commit message. > --- > docs/misc/arm/device-tree/booting.txt | 11 +++++------ > docs/misc/arm/passthrough-noiommu.txt | 7 +++---- > xen/arch/arm/bootfdt.c | 5 ----- > xen/arch/arm/domain_build.c | 16 ++-------------- > 4 files changed, 10 insertions(+), 29 deletions(-) > > diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt > index 5395a1077c..10caf4f1af 100644 > --- a/docs/misc/arm/device-tree/booting.txt > +++ b/docs/misc/arm/device-tree/booting.txt > @@ -350,8 +350,8 @@ areas are pre-defined by configuration using physical address ranges. > > Memory can be statically allocated to a domain using the property "xen,static- > mem" defined in the domain configuration. The number of cells for the address > -and the size must be defined using respectively the properties > -"#xen,static-mem-address-cells" and "#xen,static-mem-size-cells". > +and the size must be defined respectively by the parent node properties > +"#address-cells" and "#size-cells". > > The property 'memory' is still needed and should match the amount of memory > given to the guest. Currently, it either comes from static memory or lets Xen > @@ -366,14 +366,13 @@ device-tree: > > / { > chosen { > + #address-cells = <0x1>; > + #size-cells = <0x1>; > + ... > domU1 { > compatible = "xen,domain"; > - #address-cells = <0x2>; > - #size-cells = <0x2>; > cpus = <2>; > memory = <0x0 0x80000>; > - #xen,static-mem-address-cells = <0x1>; > - #xen,static-mem-size-cells = <0x1>; > xen,static-mem = <0x30000000 0x20000000>; > ... > }; > diff --git a/docs/misc/arm/passthrough-noiommu.txt b/docs/misc/arm/passthrough-noiommu.txt > index 3e2ef21ad7..69b8de1975 100644 > --- a/docs/misc/arm/passthrough-noiommu.txt > +++ b/docs/misc/arm/passthrough-noiommu.txt > @@ -33,14 +33,13 @@ on static allocation in the device-tree: > > / { > chosen { > + #address-cells = <0x1>; > + #size-cells = <0x1>; > + ... > domU1 { > compatible = "xen,domain"; > - #address-cells = <0x2>; > - #size-cells = <0x2>; > cpus = <2>; > memory = <0x0 0x80000>; > - #xen,static-mem-address-cells = <0x1>; > - #xen,static-mem-size-cells = <0x1>; > xen,static-mem = <0x30000000 0x20000000>; > direct-map; > ... > diff --git a/xen/arch/arm/bootfdt.c b/xen/arch/arm/bootfdt.c > index 9e1ea60094..59675f086b 100644 > --- a/xen/arch/arm/bootfdt.c > +++ b/xen/arch/arm/bootfdt.c > @@ -370,11 +370,6 @@ static int __init process_domain_node(const void *fdt, int node, > /* No "xen,static-mem" present. */ > return 0; > > - address_cells = device_tree_get_u32(fdt, node, > - "#xen,static-mem-address-cells", 0); > - size_cells = device_tree_get_u32(fdt, node, > - "#xen,static-mem-size-cells", 0); > - > return device_tree_get_meminfo(fdt, node, "xen,static-mem", address_cells, > size_cells, &bootinfo.reserved_mem, > MEMBANK_STATIC_DOMAIN); > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c > index 7412303d20..9040a8c6cb 100644 > --- a/xen/arch/arm/domain_build.c > +++ b/xen/arch/arm/domain_build.c > @@ -565,21 +565,9 @@ static int __init parse_static_mem_prop(const struct dt_device_node *node, > const struct dt_property *prop; > > prop = dt_find_property(node, "xen,static-mem", NULL); > - if ( !dt_property_read_u32(node, "#xen,static-mem-address-cells", > - addr_cells) ) > - { > - printk(XENLOG_ERR > - "failed to read \"#xen,static-mem-address-cells\".\n"); > - return -EINVAL; > - } > > - if ( !dt_property_read_u32(node, "#xen,static-mem-size-cells", > - size_cells) ) > - { > - printk(XENLOG_ERR > - "failed to read \"#xen,static-mem-size-cells\".\n"); > - return -EINVAL; > - } > + *addr_cells = dt_n_addr_cells(node); > + *size_cells = dt_n_size_cells(node); > > *cell = (const __be32 *)prop->value; > *length = prop->length; > -- > 2.17.1 >
Hi Henry, > On 9 Sep 2022, at 06:23, Henry Wang <Henry.Wang@arm.com> wrote: > > In order to keep consistency in the device tree binding, there is > no need for static memory allocation feature to define a specific > set of address and size cells for "xen,static-mem" property. > > Therefore, this commit reuses the regular #{address,size}-cells > for parsing the device tree "xen,static-mem" property. Update > the documentation accordingly. > > Also, take the chance to remove the unnecessary "#address-cells" > and "#size-cells" in the domU1 node of the device tree to only > emphasize the related part that the example is showing. > > Signed-off-by: Henry Wang <Henry.Wang@arm.com> Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com> Cheers Bertrand > --- > Changes from v1 to v2: > - Remove the "----" addition, as it is unnecessary to this patch. > - Mention the removal of #address-cells and #size-cells in domU1 > node in the commit message. > --- > docs/misc/arm/device-tree/booting.txt | 11 +++++------ > docs/misc/arm/passthrough-noiommu.txt | 7 +++---- > xen/arch/arm/bootfdt.c | 5 ----- > xen/arch/arm/domain_build.c | 16 ++-------------- > 4 files changed, 10 insertions(+), 29 deletions(-) > > diff --git a/docs/misc/arm/device-tree/booting.txt b/docs/misc/arm/device-tree/booting.txt > index 5395a1077c..10caf4f1af 100644 > --- a/docs/misc/arm/device-tree/booting.txt > +++ b/docs/misc/arm/device-tree/booting.txt > @@ -350,8 +350,8 @@ areas are pre-defined by configuration using physical address ranges. > > Memory can be statically allocated to a domain using the property "xen,static- > mem" defined in the domain configuration. The number of cells for the address > -and the size must be defined using respectively the properties > -"#xen,static-mem-address-cells" and "#xen,static-mem-size-cells". > +and the size must be defined respectively by the parent node properties > +"#address-cells" and "#size-cells". > > The property 'memory' is still needed and should match the amount of memory > given to the guest. Currently, it either comes from static memory or lets Xen > @@ -366,14 +366,13 @@ device-tree: > > / { > chosen { > + #address-cells = <0x1>; > + #size-cells = <0x1>; > + ... > domU1 { > compatible = "xen,domain"; > - #address-cells = <0x2>; > - #size-cells = <0x2>; > cpus = <2>; > memory = <0x0 0x80000>; > - #xen,static-mem-address-cells = <0x1>; > - #xen,static-mem-size-cells = <0x1>; > xen,static-mem = <0x30000000 0x20000000>; > ... > }; > diff --git a/docs/misc/arm/passthrough-noiommu.txt b/docs/misc/arm/passthrough-noiommu.txt > index 3e2ef21ad7..69b8de1975 100644 > --- a/docs/misc/arm/passthrough-noiommu.txt > +++ b/docs/misc/arm/passthrough-noiommu.txt > @@ -33,14 +33,13 @@ on static allocation in the device-tree: > > / { > chosen { > + #address-cells = <0x1>; > + #size-cells = <0x1>; > + ... > domU1 { > compatible = "xen,domain"; > - #address-cells = <0x2>; > - #size-cells = <0x2>; > cpus = <2>; > memory = <0x0 0x80000>; > - #xen,static-mem-address-cells = <0x1>; > - #xen,static-mem-size-cells = <0x1>; > xen,static-mem = <0x30000000 0x20000000>; > direct-map; > ... > diff --git a/xen/arch/arm/bootfdt.c b/xen/arch/arm/bootfdt.c > index 9e1ea60094..59675f086b 100644 > --- a/xen/arch/arm/bootfdt.c > +++ b/xen/arch/arm/bootfdt.c > @@ -370,11 +370,6 @@ static int __init process_domain_node(const void *fdt, int node, > /* No "xen,static-mem" present. */ > return 0; > > - address_cells = device_tree_get_u32(fdt, node, > - "#xen,static-mem-address-cells", 0); > - size_cells = device_tree_get_u32(fdt, node, > - "#xen,static-mem-size-cells", 0); > - > return device_tree_get_meminfo(fdt, node, "xen,static-mem", address_cells, > size_cells, &bootinfo.reserved_mem, > MEMBANK_STATIC_DOMAIN); > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c > index 7412303d20..9040a8c6cb 100644 > --- a/xen/arch/arm/domain_build.c > +++ b/xen/arch/arm/domain_build.c > @@ -565,21 +565,9 @@ static int __init parse_static_mem_prop(const struct dt_device_node *node, > const struct dt_property *prop; > > prop = dt_find_property(node, "xen,static-mem", NULL); > - if ( !dt_property_read_u32(node, "#xen,static-mem-address-cells", > - addr_cells) ) > - { > - printk(XENLOG_ERR > - "failed to read \"#xen,static-mem-address-cells\".\n"); > - return -EINVAL; > - } > > - if ( !dt_property_read_u32(node, "#xen,static-mem-size-cells", > - size_cells) ) > - { > - printk(XENLOG_ERR > - "failed to read \"#xen,static-mem-size-cells\".\n"); > - return -EINVAL; > - } > + *addr_cells = dt_n_addr_cells(node); > + *size_cells = dt_n_size_cells(node); > > *cell = (const __be32 *)prop->value; > *length = prop->length; > -- > 2.17.1 >
On 09/09/2022 07:23, Henry Wang wrote: > > In order to keep consistency in the device tree binding, there is > no need for static memory allocation feature to define a specific > set of address and size cells for "xen,static-mem" property. > > Therefore, this commit reuses the regular #{address,size}-cells > for parsing the device tree "xen,static-mem" property. Update > the documentation accordingly. > > Also, take the chance to remove the unnecessary "#address-cells" > and "#size-cells" in the domU1 node of the device tree to only > emphasize the related part that the example is showing. > > Signed-off-by: Henry Wang <Henry.Wang@arm.com> Reviewed-by: Michal Orzel <michal.orzel@amd.com> ~Michal
© 2016 - 2024 Red Hat, Inc.