aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64/kernel
diff options
context:
space:
mode:
authorRob Herring <rob.herring@calxeda.com>2013-08-26 11:14:32 -0400
committerRob Herring <rob.herring@calxeda.com>2013-10-09 12:38:11 -0400
commitd5189cc57b1d231b6dc745de6b68881901d0c5c4 (patch)
tree34f320b0493fe082cb31d764d8e98b99a38321ae /arch/arm64/kernel
parent56dc1f474add364b07254ad9690f4e244ca65ef4 (diff)
arm64: use early_init_dt_scan
Convert arm64 to use new early_init_dt_scan function. Signed-off-by: Rob Herring <rob.herring@calxeda.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will.deacon@arm.com> Cc: linux-arm-kernel@lists.infradead.org
Diffstat (limited to 'arch/arm64/kernel')
-rw-r--r--arch/arm64/kernel/setup.c31
1 files changed, 3 insertions, 28 deletions
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index 055cfb80e05c..4a5f6243ade2 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -124,37 +124,19 @@ static void __init setup_processor(void)
124 124
125static void __init setup_machine_fdt(phys_addr_t dt_phys) 125static void __init setup_machine_fdt(phys_addr_t dt_phys)
126{ 126{
127 struct boot_param_header *devtree;
128 unsigned long dt_root; 127 unsigned long dt_root;
129 128
130 /* Check we have a non-NULL DT pointer */ 129 if (!dt_phys || !early_init_dt_scan(phys_to_virt(dt_phys))) {
131 if (!dt_phys) {
132 early_print("\n"
133 "Error: NULL or invalid device tree blob\n"
134 "The dtb must be 8-byte aligned and passed in the first 512MB of memory\n"
135 "\nPlease check your bootloader.\n");
136
137 while (true)
138 cpu_relax();
139
140 }
141
142 devtree = phys_to_virt(dt_phys);
143
144 /* Check device tree validity */
145 if (be32_to_cpu(devtree->magic) != OF_DT_HEADER) {
146 early_print("\n" 130 early_print("\n"
147 "Error: invalid device tree blob at physical address 0x%p (virtual address 0x%p)\n" 131 "Error: invalid device tree blob at physical address 0x%p (virtual address 0x%p)\n"
148 "Expected 0x%x, found 0x%x\n" 132 "The dtb must be 8-byte aligned and passed in the first 512MB of memory\n"
149 "\nPlease check your bootloader.\n", 133 "\nPlease check your bootloader.\n",
150 dt_phys, devtree, OF_DT_HEADER, 134 dt_phys, phys_to_virt(dt_phys));
151 be32_to_cpu(devtree->magic));
152 135
153 while (true) 136 while (true)
154 cpu_relax(); 137 cpu_relax();
155 } 138 }
156 139
157 initial_boot_params = devtree;
158 dt_root = of_get_flat_dt_root(); 140 dt_root = of_get_flat_dt_root();
159 141
160 machine_name = of_get_flat_dt_prop(dt_root, "model", NULL); 142 machine_name = of_get_flat_dt_prop(dt_root, "model", NULL);
@@ -163,13 +145,6 @@ static void __init setup_machine_fdt(phys_addr_t dt_phys)
163 if (!machine_name) 145 if (!machine_name)
164 machine_name = "<unknown>"; 146 machine_name = "<unknown>";
165 pr_info("Machine: %s\n", machine_name); 147 pr_info("Machine: %s\n", machine_name);
166
167 /* Retrieve various information from the /chosen node */
168 of_scan_flat_dt(early_init_dt_scan_chosen, boot_command_line);
169 /* Initialize {size,address}-cells info */
170 of_scan_flat_dt(early_init_dt_scan_root, NULL);
171 /* Setup memory, calling early_init_dt_add_memory_arch */
172 of_scan_flat_dt(early_init_dt_scan_memory, NULL);
173} 148}
174 149
175void __init early_init_dt_add_memory_arch(u64 base, u64 size) 150void __init early_init_dt_add_memory_arch(u64 base, u64 size)