xen/arm, device-tree: Make static-mem use #{address,size}-cells

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>
This commit is contained in:
Henry Wang authored and Stefano Stabellini committed 2022-09-09 13:49:02 -07:00
1 parent cc80e2bab0
commit 942ac5fc15
4 files changed
+10 -29

No files matched your search

+5 -6
View 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>;
...
};
+3 -4
View 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;
...
-5
View 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);
+2 -14
View 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;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.