| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
Explicitly state that we are using 32-bit addressing in 16-bit code.
GNU as 2.15 (FreeBSD/amd64 7-STABLE) got confused that 32-bit registers
are used in the code that was declared as 16-bit. Add explicit modifier
'addr32' to make assembler happy.
Signed-off-by: Eygene Ryabinkin <rea-fbsd@codelabs.ru>
|
|
|
|
|
| |
This allows multiple gPXE ROMs in a system to be disambiguated at boot
time; the PCI ID will show up in the boot menu for a BBS-compliant BIOS.
|
|
|
|
|
|
| |
When PMM is used, the gPXE image source will no longer be in base memory.
Decompression of .text16 and .data16 can therefore no longer be done in
real mode.
|
|
|
|
|
| |
Move the printing functions from pxeprefix.S into libprefix.S, so they
are available for debug from any prefix.
|
|
|
|
|
|
|
|
|
|
| |
ROM initialisation vector now attempts to allocate a 2MB block using
PMM. If successful, it copies the ROM image to this block, then
shrinks the ROM image to allow for more option ROMs. If unsuccessful,
it leaves the ROM as-is.
ROM BEV now attempts to return to the BIOS, resorting to INT 18 only
if the BIOS stack has been corrupted.
|
| |
|
|
|
|
|
| |
work around limitations in real-mode virtualisation support on Intel
VT-capable chips.
|
|
|
|
|
|
| |
us to round down the size for the relocation copy to the nearest 64kB
(+0x10 bytes); this just happened to work on most machines because the
last 64kB of the image is all-zeroes anyway (it's the .bss).
|
| |
|
| |
|
|
|
|
|
| |
start of the non-prefix blocks in the loaded image, and rely on the
image ordering. This should make introducing compression much easier.
|
|
|
|
| |
do it.
|
|
|
|
| |
allocation.
|
|
|
|
|
| |
Fix bug that caused over-allocation of .text16 and .data16 memory areas
by a factor of 16.
|
|
|
|
| |
on the stack.
|
| |
|
|
|
|
|
| |
install() now calls relocate(), moves the protected-mode code to the new
location, and calls hide_etherboot().
|
|
|
|
|
|
|
|
|
| |
from protected-mode code.
Set up %ds to point to .data16 in prot_to_real, so that code specified
via REAL_EXEC() and friends can access variables in .data16.
Move most real-mode librm variables from .text16 to .data16.
|
| |
|
|
|
|
|
| |
install_prealloc. I *think* these will suffice for all the 16-bit
prefixes.
|
| |
|
|
|
|
|
| |
highmem data, so decompress16 will be able to unpack blocks bigger
than 64kB.
|
|
running the decompresser in 16:16 protected mode using the real-mode
stack. However, there's an even simpler way to do it...
|