76dd035301
between kernel virtual address and physical address anymore. This so that we can link the kernel at some virtual address without having to worry whether the corresponding physical memory exists and is available. The PBVM uses 64KB pages that are mapped to physical addresses using a page table. The page table is at least 1 EFI page in size, but can grow up to 1MB. This effectively gives us a memory size between 32MB and 8GB -- i.e. enough to load a DVD image if one wants to. The loader assigns physical memory based on the EFI memory map and makes sure that all physical memory is naturally aligned and a power of 2. At this time there's no consideration for allocating physical memory that is close to the BSP. The kernel is informed about the physical address of the page table and its size and can locate all PBVM pages through it. The loader does not wire the PBVM page table yet. Instead it wires all of the PBVM with a single translation. This is fine for now, but a follow-up commit will fix it. We cannot handle more than 32MB right now. Note that the loader will map as much of the loaded kernel and modules as possible, but it's up to the kernel to handle page faults for references that aren't mapped. To make that easier, the page table is mapped at a fixed virtual address. |
||
---|---|---|
.. | ||
common | ||
efi | ||
ski | ||
Makefile | ||
Makefile.inc |