mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-22 15:47:37 +00:00
A long, long time ago in a CVS branch far away (specifically, HEAD prior
to 4.0 and RELENG_3), the BTX mini-kernel used paging rather than flat mode and clients were limited to a virtual address space of 16 megabytes. Because of this limitation, boot2 silently masked all physical addresses in any binaries it loaded so that they were always loaded into the first 16 Meg. Since BTX no longer has this limitation (and hasn't for a long time), remove the masking from boot2. This allows boot2 to load kernels larger than about 12 to 14 meg (12 for non-PAE, 14 for PAE). Submitted by: Sergey Lyubka devnull at uptsoft dot com MFC after: 1 month
This commit is contained in:
parent
cede9ec016
commit
ca9b2364c3
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=135410
@ -321,7 +321,7 @@ load(void)
|
||||
return;
|
||||
}
|
||||
if (fmt == 0) {
|
||||
addr = hdr.ex.a_entry & 0xffffff;
|
||||
addr = hdr.ex.a_entry;
|
||||
p = PTOV(addr);
|
||||
fs_off = PAGE_SIZE;
|
||||
if (xfsread(ino, p, hdr.ex.a_text))
|
||||
@ -355,7 +355,7 @@ load(void)
|
||||
j++;
|
||||
}
|
||||
for (i = 0; i < 2; i++) {
|
||||
p = PTOV(ep[i].p_paddr & 0xffffff);
|
||||
p = PTOV(ep[i].p_paddr);
|
||||
fs_off = ep[i].p_offset;
|
||||
if (xfsread(ino, p, ep[i].p_filesz))
|
||||
return;
|
||||
@ -376,7 +376,7 @@ load(void)
|
||||
p += es[i].sh_size;
|
||||
}
|
||||
}
|
||||
addr = hdr.eh.e_entry & 0xffffff;
|
||||
addr = hdr.eh.e_entry;
|
||||
}
|
||||
bootinfo.bi_esymtab = VTOP(p);
|
||||
bootinfo.bi_kernelname = VTOP(kname);
|
||||
|
@ -321,7 +321,7 @@ load(void)
|
||||
return;
|
||||
}
|
||||
if (fmt == 0) {
|
||||
addr = hdr.ex.a_entry & 0xffffff;
|
||||
addr = hdr.ex.a_entry;
|
||||
p = PTOV(addr);
|
||||
fs_off = PAGE_SIZE;
|
||||
if (xfsread(ino, p, hdr.ex.a_text))
|
||||
@ -355,7 +355,7 @@ load(void)
|
||||
j++;
|
||||
}
|
||||
for (i = 0; i < 2; i++) {
|
||||
p = PTOV(ep[i].p_paddr & 0xffffff);
|
||||
p = PTOV(ep[i].p_paddr);
|
||||
fs_off = ep[i].p_offset;
|
||||
if (xfsread(ino, p, ep[i].p_filesz))
|
||||
return;
|
||||
@ -376,7 +376,7 @@ load(void)
|
||||
p += es[i].sh_size;
|
||||
}
|
||||
}
|
||||
addr = hdr.eh.e_entry & 0xffffff;
|
||||
addr = hdr.eh.e_entry;
|
||||
}
|
||||
bootinfo.bi_esymtab = VTOP(p);
|
||||
bootinfo.bi_kernelname = VTOP(kname);
|
||||
|
Loading…
Reference in New Issue
Block a user