mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
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:
1 parent
cc80e2bab0
commit
942ac5fc15
4 files changed
+10
-29
No files matched your search
@@ -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>;
|
||||
...
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
...
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||