summaryrefslogtreecommitdiffstats
path: root/src/arch/i386/prefix
Commit message (Collapse)AuthorAgeFilesLines
* [PXE] PMM now tested and workingMichael Brown2008-03-111-1/+1
| | | | Minor bugfix: 4 x 2 = 8, not 16
* [prefix] Cope with image source addresses outside base memoryMichael Brown2008-03-111-121/+114Star
| | | | | | 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.
* [PXE] Improve PnP/BBS detectionMichael Brown2008-03-111-19/+49
| | | | | | | | | | | | | Use BBS installation check to see if we need to hook INT19 even on a PnP BIOS. Verify that $PnP signature is paragraph-aligned; bochs/qemu BIOS provides a dummy $PnP signature with no valid entry point, and deliberately unaligns the signature to indicate that it is not properly valid. Print message if INT19 is hooked. Attempt to use PMM even if BBS check failed.
* [prefix] Add printing functions to libprefix.SMichael Brown2008-03-113-128/+112Star
| | | | | Move the printing functions from pxeprefix.S into libprefix.S, so they are available for debug from any prefix.
* [PXE] Add PMM support to romprefix.S (untested)Michael Brown2008-03-092-73/+241
| | | | | | | | | | 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.
* Use internal 16-bit stack for added safety.Michael Brown2008-02-111-0/+4
|
* Fix compiler warnings that appear only on OpenBSD.Michael Brown2007-12-061-7/+7
|
* Replace "Etherboot" strings with "gPXE".Michael Brown2007-11-201-4/+4
|
* Minor refactoring to eliminate duplication.Michael Brown2007-09-251-49/+39Star
|
* Use full protected mode for access to high memory within prefix, toMichael Brown2007-09-251-169/+237
| | | | | work around limitations in real-mode virtualisation support on Intel VT-capable chips.
* Don't trash the %ecx value returned by relocate(). This was causingMichael Brown2007-07-191-6/+8
| | | | | | 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).
* Move .zinfo to libprefix.S; it doesn't belong with the decompression code.Michael Brown2007-07-173-39/+29Star
|
* Update all prefixes currently referring to _load_size to include aMichael Brown2007-07-165-21/+55
| | | | compressor fixup section.
* Rename _rom_size to _load_size_sect, since hdprefix.S also uses it.Michael Brown2007-07-162-3/+3
|
* Compressed ROM images now work.Michael Brown2007-07-164-7/+65
|
* Use a single _payload_offset linker-defined variable to locate theMichael Brown2007-07-151-16/+21
| | | | | start of the non-prefix blocks in the loaded image, and rely on the image ordering. This should make introducing compression much easier.
* Skip the length field prepended by util/nrv2b.cMichael Brown2007-07-151-0/+1
|
* Modified calling convention: we now update %esi and %edi just like aMichael Brown2007-07-151-29/+36
| | | | "rep movsb".
* "not" doesn't affect flags, "xor $-1" does.Michael Brown2007-07-151-1/+1
|
* Rename .lilo extension to .lkrn and updated dependenciesMarty Connor2007-07-062-1/+1
|
* Use partition type 0xeb ("EtherBoot"), to avoid any attempts to mountMichael Brown2007-07-051-1/+1
| | | | the Etherboot partition.
* Add .usb targetMichael Brown2007-07-051-0/+23
|
* Working with multi-sector readsMichael Brown2007-07-051-8/+40
|
* hdprefix that works for LBA onlyMichael Brown2007-07-052-311/+82Star
|
* Miscellaneous efficiency improvements, and extend read_sectors toMichael Brown2007-07-051-45/+63
| | | | handle multiple sectors.
* Added active partition locator, and simple MBR built using it.Michael Brown2007-07-052-0/+202
|
* Revert "Added master boot record capable of locating active partition"Michael Brown2007-07-052-203/+0Star
| | | | This reverts commit 844d088c514bb962b3cbd00892db67bad4daa203.
* Added master boot record capable of locating active partitionMichael Brown2007-07-052-0/+203
| | | | (including logical partitions).
* UNDI loader entry point implemented; seems to work.Michael Brown2007-07-041-0/+28
|
* remove obsolete file: src/arch/i386/prefix/int19exit.cMarty Connor2007-07-031-31/+0Star
|
* Warnings purge: src/arch/i386, src/core/disk.c, ramdisk, autobootMarty Connor2007-07-032-2/+2
|
* Use internal real-mode stack from non-returnable prefixesMichael Brown2007-06-282-0/+8
|
* Revert "Move stack to below 0x7c00; leaving it at the default location"Michael Brown2007-06-281-5/+3Star
| | | | This reverts commit 03ca71c38da9cc6df01ecd9ef16e97a0edb6a4e9.
* Move stack to below 0x7c00; leaving it at the default locationMichael Brown2007-06-281-3/+5
| | | | (0x7ef4) tends to really screw up anything that loads at 0x7c00...
* Added .nbi as a format.Michael Brown2007-03-111-0/+65
|
* Updated ISAPnP, EISA, MCA and ISA buses to current device model.Michael Brown2007-03-101-32/+0Star
| | | | | | | 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.
* Don't call PXENV_STOP_UNDI in the kpxeprefix. This slighy breaks theMichael Brown2007-01-291-5/+10
| | | | | clean separation between loading and starting, but does mean that more PXE stacks survive the process.
* .lilo and derived targets (e.g. .iso) now load properly.Michael Brown2007-01-141-23/+29
|
* Call hide_etherboot() from startup(), rather than requiring the prefix toMichael Brown2007-01-141-20/+22
| | | | do it.
* Damn Broadcom and their damned incorrect assumptions about x86 memoryMichael Brown2007-01-131-3/+24
| | | | allocation.
* Add device description fields to struct device.Michael Brown2007-01-101-1/+6
|
* Avoid leaving preloaded_undi with invalid PXENV+/!PXE structureMichael Brown2007-01-091-3/+15
| | | | addresses if the signature checks fail.
* Since we now always unload the base code stack (even if we keep UNDI),Michael Brown2007-01-091-83/+24Star
| | | | we can never return to the PXE stack and must always use INT 18.
* Populate preloaded_undi device when applicable.Michael Brown2007-01-091-0/+9
|
* Call PXENV_UNDI_GET_NIC_TYPE to identify NIC physical device.Michael Brown2007-01-091-136/+480
| | | | | | Record all information required for populating a struct undi_device. Make debugging output more human-readable.
* Copy pxelinux's shutdown sequence: use UNLOAD_STACK without STOP_BASE,Michael Brown2007-01-081-3/+9
| | | | and call UNDI_SHUTDOWN first to make sure the NIC is in a safe state.
* New strategy: always stop both base code and UNDI. Always free base codeMichael Brown2007-01-082-72/+89
| | | | | | | | 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.
* Add as a separate file so that we can do "make bin/xxxx.kpxe" rather thanMichael Brown2007-01-041-0/+7
| | | | having to edit PXELOADER_KEEP_ALL as a config option.
* Towards making KEEP_IT_REAL work again.Michael Brown2006-08-241-4/+16
| | | | | Fix bug that caused over-allocation of .text16 and .data16 memory areas by a factor of 16.
* Cut out almost all the optional code paths, drastically simplifying theMichael Brown2006-06-061-375/+143Star
| | | | | | | | | 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.