aboutsummaryrefslogtreecommitdiffstats
path: root/xen/common
diff options
context:
space:
mode:
authorJulien Grall <julien.grall@linaro.org>2013-04-26 19:14:10 +0100
committerIan Campbell <ian.campbell@citrix.com>2013-05-13 11:59:58 +0100
commit71fa862f21e7097c479095274e87e846ce8e29c7 (patch)
tree07dbecf6adea3a3b96aed33e5587170805950e83 /xen/common
parenta55acb35cbef4ea50f91fb05915e3934754ad4de (diff)
downloadxen-71fa862f21e7097c479095274e87e846ce8e29c7.tar.gz
xen-71fa862f21e7097c479095274e87e846ce8e29c7.tar.bz2
xen-71fa862f21e7097c479095274e87e846ce8e29c7.zip
xen/arm: Use hierarchical device tree to retrieve GIC information
- Remove early parsing for GIC addresses - Remove hard coded maintenance IRQ number Signed-off-by: Julien Grall <julien.grall@linaro.org> Acked-by: Ian Campbell <ian.campbell@citrix.com>
Diffstat (limited to 'xen/common')
-rw-r--r--xen/common/device_tree.c42
1 files changed, 0 insertions, 42 deletions
diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c
index 7f632b94ef..84d704dc3d 100644
--- a/xen/common/device_tree.c
+++ b/xen/common/device_tree.c
@@ -434,46 +434,6 @@ static void __init process_cpu_node(const void *fdt, int node,
cpumask_set_cpu(start, &cpu_possible_map);
}
-static void __init process_gic_node(const void *fdt, int node,
- const char *name,
- u32 address_cells, u32 size_cells)
-{
- const struct fdt_property *prop;
- const u32 *cell;
- paddr_t start, size;
- int interfaces;
-
- if ( address_cells < 1 || size_cells < 1 )
- {
- early_printk("fdt: node `%s': invalid #address-cells or #size-cells",
- name);
- return;
- }
-
- prop = fdt_get_property(fdt, node, "reg", NULL);
- if ( !prop )
- {
- early_printk("fdt: node `%s': missing `reg' property\n", name);
- return;
- }
-
- cell = (const u32 *)prop->data;
- interfaces = device_tree_nr_reg_ranges(prop, address_cells, size_cells);
- if ( interfaces < 4 )
- {
- early_printk("fdt: node `%s': not enough ranges\n", name);
- return;
- }
- device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
- early_info.gic.gic_dist_addr = start;
- device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
- early_info.gic.gic_cpu_addr = start;
- device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
- early_info.gic.gic_hyp_addr = start;
- device_tree_get_reg(&cell, address_cells, size_cells, &start, &size);
- early_info.gic.gic_vcpu_addr = start;
-}
-
static void __init process_multiboot_node(const void *fdt, int node,
const char *name,
u32 address_cells, u32 size_cells)
@@ -525,8 +485,6 @@ static int __init early_scan_node(const void *fdt,
process_memory_node(fdt, node, name, address_cells, size_cells);
else if ( device_tree_type_matches(fdt, node, "cpu") )
process_cpu_node(fdt, node, name, address_cells, size_cells);
- else if ( device_tree_node_compatible(fdt, node, "arm,cortex-a15-gic") )
- process_gic_node(fdt, node, name, address_cells, size_cells);
else if ( device_tree_node_compatible(fdt, node, "xen,multiboot-module" ) )
process_multiboot_node(fdt, node, name, address_cells, size_cells);