david/ipxe
david
/
ipxe
Archived
1
0
Fork 0
This repository has been archived on 2020-12-06. You can view files and clone it, but cannot push or open issues or pull requests.
ipxe/src
Michael Brown 747e9eb6f3 [lkrnprefix] Allow relocation when no initrd is present
Commit 2629b7e ("[pcbios] Inhibit all calls to INT 15,e820 and INT
15,e801 during POST") introduced a regression into .lkrn images when
used with no corresponding initrd.

Specifically, the semantics of the "maximum address for relocation"
value passed to install_prealloc() in %ebp changed so that zero became
a special value meaning "inhibit use of INT 15,e820 and INT 15,e801".
The %ebp value meaing "no upper limit on relocation" was changed from
zero to 0xffffffff, and all prefixes providing fixed values for %ebp
were updated to match the new semantics.

The .lkrn prefix provides the initrd base address as the maximum
address for relocation.  When no initrd is present, this address will
be zero, and so will unintentionally trigger the "inhibit INT 15,e820
and INT 15,e801" behaviour.

Fix by explicitly setting %ebp to 0xffffffff if no initrd is present
before calling install_prealloc().

Reported-by: Ján ONDREJ (SAL) <ondrejj@salstar.sk>
Tested-by: Ján ONDREJ (SAL) <ondrejj@salstar.sk>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
2013-03-15 15:34:50 +00:00
..
arch [lkrnprefix] Allow relocation when no initrd is present 2013-03-15 15:34:50 +00:00
bin Rename .cvsignore files to .gitignore 2007-06-09 22:57:00 +01:00
config [console] Add support for the bochs/qemu debug port console 2012-09-10 15:58:02 +01:00
core [autoboot] Split main control flow out of main() into a new function ipxe() 2013-03-13 22:24:13 +00:00
crypto [crypto] Allow in-place CBC decryption 2012-09-27 01:54:55 +01:00
doc [build] Rename gPXE to iPXE 2010-04-19 23:43:39 +01:00
drivers [tg3] Fix various tg3 issues 2013-03-04 21:56:24 +00:00
hci [menu] Prevent separators with shortcut keys from being selected 2013-03-06 15:11:49 +00:00
image [efi] Expose downloaded images via EFI_SIMPLE_FILE_SYSTEM_PROTOCOL 2013-03-13 22:42:16 +00:00
include [efi] Add our own EFI_LOAD_FILE_PROTOCOL implementation 2013-03-13 23:01:53 +00:00
interface [efi] Add our own EFI_LOAD_FILE_PROTOCOL implementation 2013-03-13 23:01:53 +00:00
libgcc [build] Mark __intel_new_proc_init with __libgcc rather than cdecl 2009-08-03 15:56:10 +01:00
net [tftp] Allow TFTP block size to be controlled via the PXE TFTP API 2013-03-06 17:35:30 +00:00
tests [test] Add self-tests for string functions 2012-11-12 16:58:49 +00:00
usr [autoboot] Split main control flow out of main() into a new function ipxe() 2013-03-13 22:24:13 +00:00
util [efi] Fix building with newer binutils 2013-03-14 00:20:04 +00:00
.gitignore [build] Add support for local configuration files 2010-03-26 19:07:22 +00:00
Makefile [build] Add vmware build target 2013-03-06 19:52:51 +00:00
Makefile.housekeeping [build] Make version.o depend on the git index 2012-11-02 15:00:09 +00:00
doxygen.cfg [build] Remove PACKED macro 2010-05-29 23:49:47 +01:00