diff options
author | Andi Kleen <ak@suse.de> | 2006-09-26 04:52:37 -0400 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-09-26 04:52:37 -0400 |
commit | 8380aabb99719af583447133f19a4d8074b5c337 (patch) | |
tree | e26bcd8130199db5c7b978532534a006503b9a95 /arch/x86_64 | |
parent | b3698c03eb6d4581e879d6bb0f183ed8dda96d37 (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')
-rw-r--r-- | arch/x86_64/kernel/e820.c | 28 |
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 | ||
539 | void __init setup_memory_region(void) | 539 | void early_panic(char *msg) |
540 | { | 540 | { |
541 | char *who = "BIOS-e820"; | 541 | early_printk(msg); |
542 | panic(msg); | ||
543 | } | ||
542 | 544 | ||
545 | void __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 | ||
570 | static int __init parse_memopt(char *p) | 560 | static int __init parse_memopt(char *p) |