]> xenbits.xensource.com Git - people/tklengyel/xen.git/commitdiff
xen/arm, device-tree: Make static-mem use #{address,size}-cells
authorHenry Wang <Henry.Wang@arm.com>
Fri, 9 Sep 2022 05:23:57 +0000 (05:23 +0000)
committerStefano Stabellini <stefano.stabellini@amd.com>
Fri, 9 Sep 2022 20:49:02 +0000 (13:49 -0700)
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>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
docs/misc/arm/device-tree/booting.txt
docs/misc/arm/passthrough-noiommu.txt
xen/arch/arm/bootfdt.c
xen/arch/arm/domain_build.c

index 12c5e1d189ae723b04038c472215b678d0779dce..c47a05e0daca23898c9e38bb499a2053f5811ff1 100644 (file)
@@ -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>;
                 ...
             };
index 3e2ef21ad70af3799240dde12c829bc5b00055e9..69b8de1975b32233522c0736b569a9587164ea1e 100644 (file)
@@ -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;
                        ...
index f8b88ee3daa517d8ceb7b2c8e65d303073dbcfb0..6014c0f85254a65b737ff27e687dd264bd2b90bf 100644 (file)
@@ -371,11 +371,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);
index 1e4b5d2df868ba673b838835a778d1ec1df3c20e..01c2aaccd82df968014176ba4a6c5c85fa0832c7 100644 (file)
@@ -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;