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:
Marcel Moolenaar 2003-09-06 05:15:36 +00:00
parent 468cf6f61a
commit dfbd7790d4
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=119793

View File

@ -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: */