• Yinghai Lu's avatar
    x86_32: trim memory by updating e820 · 093af8d7
    Yinghai Lu authored
    
    
    when MTRRs are not covering the whole e820 table, we need to trim the
    RAM and need to update e820.
    
    reuse some code on 64-bit as well.
    
    here need to add early_get_cap and use it in early_cpu_detect, and move
    mtrr_bp_init early.
    
    The code successfully trimmed the memory map on Justin's system:
    
    from:
    
     [    0.000000]  BIOS-e820: 0000000100000000 - 000000022c000000 (usable)
    
    to:
    
     [    0.000000]   modified: 0000000100000000 - 0000000228000000 (usable)
     [    0.000000]   modified: 0000000228000000 - 000000022c000000 (reserved)
    
    According to Justin it makes quite a difference:
    
    |  When I boot the box without any trimming it acts like a 286 or 386,
    |  takes about 10 minutes to boot (using raptor disks).
    Signed-off-by: default avatarYinghai Lu <yinghai.lu@sun.com>
    Tested-by: default avatarJustin Piszcz <jpiszcz@lucidpixels.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    093af8d7
main.c 23.4 KB