diff options
| -rw-r--r-- | arch/arm/kernel/setup.c | 48 |
1 files changed, 17 insertions, 31 deletions
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 056bf1878f8a..6ce80106316e 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
| @@ -325,28 +325,6 @@ static void __init early_print(const char *str, ...) | |||
| 325 | printk("%s", buf); | 325 | printk("%s", buf); |
| 326 | } | 326 | } |
| 327 | 327 | ||
| 328 | static struct machine_desc * __init lookup_machine_type(unsigned int type) | ||
| 329 | { | ||
| 330 | extern struct machine_desc __arch_info_begin[], __arch_info_end[]; | ||
| 331 | struct machine_desc *p; | ||
| 332 | |||
| 333 | for (p = __arch_info_begin; p < __arch_info_end; p++) | ||
| 334 | if (type == p->nr) | ||
| 335 | return p; | ||
| 336 | |||
| 337 | early_print("\n" | ||
| 338 | "Error: unrecognized/unsupported machine ID (r1 = 0x%08x).\n\n" | ||
| 339 | "Available machine support:\n\nID (hex)\tNAME\n", type); | ||
| 340 | |||
| 341 | for (p = __arch_info_begin; p < __arch_info_end; p++) | ||
| 342 | early_print("%08x\t%s\n", p->nr, p->name); | ||
| 343 | |||
| 344 | early_print("\nPlease check your kernel config and/or bootloader.\n"); | ||
| 345 | |||
| 346 | while (true) | ||
| 347 | /* can't use cpu_relax() here as it may require MMU setup */; | ||
| 348 | } | ||
| 349 | |||
| 350 | static void __init feat_v6_fixup(void) | 328 | static void __init feat_v6_fixup(void) |
| 351 | { | 329 | { |
| 352 | int id = read_cpuid_id(); | 330 | int id = read_cpuid_id(); |
| @@ -463,21 +441,29 @@ void cpu_init(void) | |||
| 463 | 441 | ||
| 464 | static struct machine_desc * __init setup_machine(unsigned int nr) | 442 | static struct machine_desc * __init setup_machine(unsigned int nr) |
| 465 | { | 443 | { |
| 466 | struct machine_desc *list; | 444 | extern struct machine_desc __arch_info_begin[], __arch_info_end[]; |
| 445 | struct machine_desc *p; | ||
| 467 | 446 | ||
| 468 | /* | 447 | /* |
| 469 | * locate machine in the list of supported machines. | 448 | * locate machine in the list of supported machines. |
| 470 | */ | 449 | */ |
| 471 | list = lookup_machine_type(nr); | 450 | for (p = __arch_info_begin; p < __arch_info_end; p++) |
| 472 | if (!list) { | 451 | if (nr == p->nr) { |
| 473 | printk("Machine configuration botched (nr %d), unable " | 452 | printk("Machine: %s\n", p->name); |
| 474 | "to continue.\n", nr); | 453 | return p; |
| 475 | while (1); | 454 | } |
| 476 | } | ||
| 477 | 455 | ||
| 478 | printk("Machine: %s\n", list->name); | 456 | early_print("\n" |
| 457 | "Error: unrecognized/unsupported machine ID (r1 = 0x%08x).\n\n" | ||
| 458 | "Available machine support:\n\nID (hex)\tNAME\n", nr); | ||
| 459 | |||
| 460 | for (p = __arch_info_begin; p < __arch_info_end; p++) | ||
| 461 | early_print("%08x\t%s\n", p->nr, p->name); | ||
| 479 | 462 | ||
| 480 | return list; | 463 | early_print("\nPlease check your kernel config and/or bootloader.\n"); |
| 464 | |||
| 465 | while (true) | ||
| 466 | /* can't use cpu_relax() here as it may require MMU setup */; | ||
| 481 | } | 467 | } |
| 482 | 468 | ||
| 483 | static int __init arm_add_memory(unsigned long start, unsigned long size) | 469 | static int __init arm_add_memory(unsigned long start, unsigned long size) |
