aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86_64/kernel/e820.c
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2006-09-26 04:52:37 -0400
committerAndi Kleen <andi@basil.nowhere.org>2006-09-26 04:52:37 -0400
commit8380aabb99719af583447133f19a4d8074b5c337 (patch)
treee26bcd8130199db5c7b978532534a006503b9a95 /arch/x86_64/kernel/e820.c
parentb3698c03eb6d4581e879d6bb0f183ed8dda96d37 (diff)
[PATCH] Remove non e820 fallbacks in high level code
Drop support for non e820 BIOS calls to get the memory map. The boot assembler code still has some support, but not the C code now. Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'arch/x86_64/kernel/e820.c')
-rw-r--r--arch/x86_64/kernel/e820.c28
1 files changed, 9 insertions, 19 deletions
diff --git a/arch/x86_64/kernel/e820.c b/arch/x86_64/kernel/e820.c
index e06c2714ecf3..5d1275a93658 100644
--- a/arch/x86_64/kernel/e820.c
+++ b/arch/x86_64/kernel/e820.c
@@ -536,10 +536,14 @@ static int __init copy_e820_map(struct e820entry * biosmap, int nr_map)
536 return 0; 536 return 0;
537} 537}
538 538
539void __init setup_memory_region(void) 539void early_panic(char *msg)
540{ 540{
541 char *who = "BIOS-e820"; 541 early_printk(msg);
542 panic(msg);
543}
542 544
545void __init setup_memory_region(void)
546{
543 /* 547 /*
544 * Try to copy the BIOS-supplied E820-map. 548 * Try to copy the BIOS-supplied E820-map.
545 * 549 *
@@ -547,24 +551,10 @@ void __init setup_memory_region(void)
547 * the next section from 1mb->appropriate_mem_k 551 * the next section from 1mb->appropriate_mem_k
548 */ 552 */
549 sanitize_e820_map(E820_MAP, &E820_MAP_NR); 553 sanitize_e820_map(E820_MAP, &E820_MAP_NR);
550 if (copy_e820_map(E820_MAP, E820_MAP_NR) < 0) { 554 if (copy_e820_map(E820_MAP, E820_MAP_NR) < 0)
551 unsigned long mem_size; 555 early_panic("Cannot find a valid memory map");
552
553 /* compare results from other methods and take the greater */
554 if (ALT_MEM_K < EXT_MEM_K) {
555 mem_size = EXT_MEM_K;
556 who = "BIOS-88";
557 } else {
558 mem_size = ALT_MEM_K;
559 who = "BIOS-e801";
560 }
561
562 e820.nr_map = 0;
563 add_memory_region(0, LOWMEMSIZE(), E820_RAM);
564 add_memory_region(HIGH_MEMORY, mem_size << 10, E820_RAM);
565 }
566 printk(KERN_INFO "BIOS-provided physical RAM map:\n"); 556 printk(KERN_INFO "BIOS-provided physical RAM map:\n");
567 e820_print_map(who); 557 e820_print_map("BIOS-e820");
568} 558}
569 559
570static int __init parse_memopt(char *p) 560static int __init parse_memopt(char *p)