Commit 8380aabb99719af583447133f19a4d8074b5c337
Committed by
Andi Kleen
1 parent
b3698c03eb
Exists in
master
and in
4 other branches
[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>
Showing 2 changed files with 9 additions and 23 deletions Side-by-side Diff
arch/x86_64/kernel/e820.c
| ... | ... | @@ -536,10 +536,14 @@ |
| 536 | 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 | 548 | * Try to copy the BIOS-supplied E820-map. |
| 545 | 549 | * |
| 546 | 550 | |
| ... | ... | @@ -547,24 +551,10 @@ |
| 547 | 551 | * the next section from 1mb->appropriate_mem_k |
| 548 | 552 | */ |
| 549 | 553 | sanitize_e820_map(E820_MAP, &E820_MAP_NR); |
| 550 | - if (copy_e820_map(E820_MAP, E820_MAP_NR) < 0) { | |
| 551 | - unsigned long mem_size; | |
| 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 | - } | |
| 554 | + if (copy_e820_map(E820_MAP, E820_MAP_NR) < 0) | |
| 555 | + early_panic("Cannot find a valid memory map"); | |
| 566 | 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 | 560 | static int __init parse_memopt(char *p) |
include/asm-x86_64/e820.h
| ... | ... | @@ -22,10 +22,6 @@ |
| 22 | 22 | #define E820_ACPI 3 /* usable as RAM once ACPI tables have been read */ |
| 23 | 23 | #define E820_NVS 4 |
| 24 | 24 | |
| 25 | -#define HIGH_MEMORY (1024*1024) | |
| 26 | - | |
| 27 | -#define LOWMEMSIZE() (0x9f000) | |
| 28 | - | |
| 29 | 25 | #ifndef __ASSEMBLY__ |
| 30 | 26 | struct e820entry { |
| 31 | 27 | u64 addr; /* start of memory segment */ |