Load the kernel at a 64M instead of 5M. The advantage of this is that
we can switch to 64M-sized identity mappings and not having to map the first 64M. This is especially important because the first 1M contains the VGA frame buffer and is otherwise a legacy memory range. Best to make as little assumptions about it as possible. Switching to 64M-sized mappings is important to avoid creating overlapping translations, which have the side-effect of triggering machine checks. This is currently what's preventing us to boot on an Intel Tiger 4. Note that since we currently use 256M-sized identity mappings, we would reduce the size of the mappings and consequently increase the TLB pressure. The performance implications of this are minimal if measurable at all because identify mappings are not our primary means for memory management. Also note that there's no guarantee that physical memory exists at 64M. Then again, we didn't had the guarantee when we were loading at 5M. We'll deal with this when it's a problem. Discussed with: arun@
This commit is contained in:
parent
0960ba26a2
commit
ee8ad8e3cf
@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf64-ia64-little", "elf64-ia64-little", "elf64-ia64-little")
|
||||
OUTPUT_ARCH(ia64)
|
||||
ENTRY(__start)
|
||||
SEARCH_DIR(/usr/lib);
|
||||
kernel_text = 0xe000000000500000;
|
||||
kernel_text = 0xe000000004000000;
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
|
Loading…
Reference in New Issue
Block a user