Changeset e49e234 in mainline for kernel/arch/ia32/src/mm/page.c


Ignore:
Timestamp:
2009-02-27T11:32:31Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c1f7f6ea
Parents:
5f0f29ce
Message:

kernel memory management revisited (phase 2): map physical memory according to zones

  • ia32: register reserved and ACPI zones
  • pareas are now used only for mapping of present physical memory (hw_area() is gone)
  • firmware zones and physical addresses outside any zones are allowed to be mapped generally
  • fix nasty antient bug in zones_insert_zone()
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia32/src/mm/page.c

    r5f0f29ce re49e234  
    3535#include <arch/mm/page.h>
    3636#include <genarch/mm/page_pt.h>
    37 #include <genarch/drivers/ega/ega.h>
    38 #include <genarch/drivers/legacy/ia32/io.h>
    3937#include <arch/mm/frame.h>
    4038#include <mm/frame.h>
     
    5149#include <print.h>
    5250#include <interrupt.h>
    53 #include <ddi/ddi.h>
    54 
    55 /** Physical memory area for devices. */
    56 static parea_t dev_area;
    57 static parea_t ega_area;
    5851
    5952void page_arch_init(void)
     
    6154        uintptr_t cur;
    6255        int flags;
    63 
     56       
    6457        if (config.cpu_active == 1) {
    6558                page_mapping_operations = &pt_mapping_operations;
     
    7467                        page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, flags);
    7568                }
    76 
     69               
    7770                exc_register(14, "page_fault", (iroutine) page_fault);
    7871                write_cr3((uintptr_t) AS_KERNEL->genarch.page_table);
    7972        } else
    8073                write_cr3((uintptr_t) AS_KERNEL->genarch.page_table);
    81 
     74       
    8275        paging_on();
    8376}
     
    9992       
    10093        return virtaddr;
    101 }
    102 
    103 void hw_area(void)
    104 {
    105         dev_area.pbase = end_frame;
    106         dev_area.frames = SIZE2FRAMES(0xffffffff - end_frame);
    107         ddi_parea_register(&dev_area);
    108        
    109         ega_area.pbase = EGA_VIDEORAM;
    110         ega_area.frames = SIZE2FRAMES(EGA_VRAM_SIZE);
    111         ddi_parea_register(&ega_area);
    11294}
    11395
Note: See TracChangeset for help on using the changeset viewer.