Michael Brown
12f203c606
[PXE] Add PMM support to romprefix.S (untested)
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.
16 years ago
Michael Brown
f8a0b5f682
Use internal 16-bit stack for added safety.
17 years ago
Michael Brown
1949641d10
Fix compiler warnings that appear only on OpenBSD.
17 years ago
Michael Brown
89eaab79c8
Replace "Etherboot" strings with "gPXE".
17 years ago
Michael Brown
b8a8eea850
Minor refactoring to eliminate duplication.
17 years ago
Michael Brown
dec325fe43
Use full protected mode for access to high memory within prefix, to
work around limitations in real-mode virtualisation support on Intel
VT-capable chips.
17 years ago
Michael Brown
2cfe0dee1f
Don't trash the %ecx value returned by relocate(). This was causing
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).
17 years ago
Michael Brown
c94cdf2b7d
Move .zinfo to libprefix.S; it doesn't belong with the decompression code.
17 years ago
Michael Brown
84551d485e
Update all prefixes currently referring to _load_size to include a
compressor fixup section.
17 years ago
Michael Brown
0929142a15
Rename _rom_size to _load_size_sect, since hdprefix.S also uses it.
17 years ago
Michael Brown
048bbeeebc
Compressed ROM images now work.
17 years ago
Michael Brown
ab859a5355
Use a single _payload_offset linker-defined variable to locate the
start of the non-prefix blocks in the loaded image, and rely on the
image ordering. This should make introducing compression much easier.
17 years ago
Michael Brown
0b5059c40b
Skip the length field prepended by util/nrv2b.c
17 years ago
Michael Brown
b37e267d1b
Modified calling convention: we now update %esi and %edi just like a
"rep movsb".
17 years ago
Michael Brown
3feac9465e
"not" doesn't affect flags, "xor $-1" does.
17 years ago
Marty Connor
28d8d828b3
Rename .lilo extension to .lkrn and updated dependencies
17 years ago
Michael Brown
07ea125213
Use partition type 0xeb ("EtherBoot"), to avoid any attempts to mount
the Etherboot partition.
17 years ago
Michael Brown
6e082c9b81
Add .usb target
17 years ago
Michael Brown
a0f078d7f5
Working with multi-sector reads
17 years ago
Michael Brown
66208dd65d
hdprefix that works for LBA only
17 years ago
Michael Brown
839960276d
Miscellaneous efficiency improvements, and extend read_sectors to
handle multiple sectors.
17 years ago
Michael Brown
3c2d50e5de
Added active partition locator, and simple MBR built using it.
17 years ago
Michael Brown
738ebaf4a5
Revert "Added master boot record capable of locating active partition"
This reverts commit 844d088c51 .
17 years ago
Michael Brown
844d088c51
Added master boot record capable of locating active partition
(including logical partitions).
17 years ago
Michael Brown
ac69b85adb
UNDI loader entry point implemented; seems to work.
17 years ago
Marty Connor
79238335b0
remove obsolete file: src/arch/i386/prefix/int19exit.c
17 years ago
Marty Connor
9b3c4e4d79
Warnings purge: src/arch/i386, src/core/disk.c, ramdisk, autoboot
17 years ago
Michael Brown
045fb24557
Use internal real-mode stack from non-returnable prefixes
17 years ago
Michael Brown
00473f0952
Revert "Move stack to below 0x7c00; leaving it at the default location"
This reverts commit 03ca71c38d .
17 years ago
Michael Brown
03ca71c38d
Move stack to below 0x7c00; leaving it at the default location
(0x7ef4) tends to really screw up anything that loads at 0x7c00...
17 years ago
Michael Brown
37127ea90c
Added .nbi as a format.
17 years ago
Michael Brown
520d9c36af
Updated ISAPnP, EISA, MCA and ISA buses to current device model.
ISA 3c509 is currently non-functional, although the EISA (3c509-eisa) and
MCA (3c529) variants should build OK.
None of this code is yet tested.
17 years ago
Michael Brown
7d9267561b
Don't call PXENV_STOP_UNDI in the kpxeprefix. This slighy breaks the
clean separation between loading and starting, but does mean that more
PXE stacks survive the process.
18 years ago
Michael Brown
b04b0ddc31
.lilo and derived targets (e.g. .iso) now load properly.
18 years ago
Michael Brown
dca369ddc3
Call hide_etherboot() from startup(), rather than requiring the prefix to
do it.
18 years ago
Michael Brown
86171c53f4
Damn Broadcom and their damned incorrect assumptions about x86 memory
allocation.
18 years ago
Michael Brown
fdc97499bf
Add device description fields to struct device.
18 years ago
Michael Brown
a2be828a33
Avoid leaving preloaded_undi with invalid PXENV+/!PXE structure
addresses if the signature checks fail.
18 years ago
Michael Brown
697bcc9d24
Since we now always unload the base code stack (even if we keep UNDI),
we can never return to the PXE stack and must always use INT 18.
18 years ago
Michael Brown
2436dac281
Populate preloaded_undi device when applicable.
18 years ago
Michael Brown
47222d5ed8
Call PXENV_UNDI_GET_NIC_TYPE to identify NIC physical device.
Record all information required for populating a struct undi_device.
Make debugging output more human-readable.
18 years ago
Michael Brown
fbdebac5f4
Copy pxelinux's shutdown sequence: use UNLOAD_STACK without STOP_BASE,
and call UNDI_SHUTDOWN first to make sure the NIC is in a safe state.
18 years ago
Michael Brown
8f8af10b22
New strategy: always stop both base code and UNDI. Always free base code
memory (unless we get an error while stopping the base code). Leave UNDI
resident (though stopped) for .kpxe.
Still need to add code to record the device identification parameters
prior to stopping UNDI.
18 years ago
Michael Brown
de2fc50f4c
Add as a separate file so that we can do "make bin/xxxx.kpxe" rather than
having to edit PXELOADER_KEEP_ALL as a config option.
18 years ago
Michael Brown
6abfaa153b
Towards making KEEP_IT_REAL work again.
Fix bug that caused over-allocation of .text16 and .data16 memory areas
by a factor of 16.
18 years ago
Michael Brown
ef37f78cbe
Cut out almost all the optional code paths, drastically simplifying the
flow of control through this code.
We now always add PCI and PnP headers even for ISA ROMs; there's no harm
in doing so.
UNDI loader is still missing.
18 years ago
Michael Brown
e7eca7b7cb
Code segment may not be writable; create the temporary pointer to the GDT
on the stack.
18 years ago
Michael Brown
041a04335e
Fixed assembly on old versions of gas
18 years ago
Michael Brown
9f86754f90
Updated to work with libprefix.
18 years ago
Michael Brown
89da833c5d
init_librm() and prot_call() are now real-mode far calls.
install() now calls relocate(), moves the protected-mode code to the new
location, and calls hide_etherboot().
18 years ago