- Mar 02, 2009
-
-
Michael Brown authored
-
Michael Brown authored
-
- Feb 27, 2009
-
-
Thomas Miletich authored
Following the example of the Linux driver, we add a check and delay to make sure that the NIC has finished resetting before the driver issues any additional commands. Signed-off-by: Marty Connor <mdc@etherboot.org>
-
- Feb 25, 2009
-
-
Michael Brown authored
This directory contains the old Etherboot implementation of IPoIB boot from Mellanox, which has long been obsoleted by gPXE's own implementation.
-
- Feb 24, 2009
-
-
Michael Brown authored
Having a default script containing #!gpxe autoboot can cause problems when entering commands to load and start a kernel manually; the default script image will still be present when the kernel is started and so will be treated as an initrd. It is possible to work around this by typing "imgfree" before any other commands, but this is counter-intuitive. Fix by allowing the embedded image list to be empty (in which case we just call autoboot()), and making this the default. Reported by alkisg@gmail.com.
-
Shao Miller authored
The "chain" command combines the functions of "imgfetch", "imgload", and "boot". chain http://etherboot.org/gtest/gtest.gpxe is equivalent to: kernel http://etherboot.org/gtest/gtest.gpxe boot
-
- Feb 23, 2009
-
-
Michael Brown authored
This is not strictly an entry requirement, but it does mean that a PXE NBP returning without setting %ax will appear to have returned success.
-
H. Peter Anvin authored
Search for the PXE entry points (via the !PXE or PXENV+ structures) through all known combinations of search methods. Furthermore, if we find a PXENV+ structure, attempt to use it to find the !PXE structure if at all possible.
-
- Feb 20, 2009
-
-
Michael Brown authored
Avoid passing credentials in the iBFT that were available but not required for login. This works around a problem in the Microsoft iSCSI initiator, which will refuse to initiate sessions if the CHAP password is fewer than 12 characters, even if the target ends up not asking for CHAP authentication.
-
- Feb 19, 2009
-
-
Michael Brown authored
-
Michael Brown authored
Given any block cipher, a corresponding CBC mode of behaviour for the cipher can be created using the CBC_CIPHER() macro.
-
Michael Brown authored
-
Michael Brown authored
It is a programming error, not a runtime error, if we attempt to use block ciphers with an incorrect blocksize, so use an assert() rather than an error status return.
-
- Feb 18, 2009
-
-
Michael Brown authored
The various types of cryptographic algorithm are fundamentally different, and it was probably a mistake to try to handle them via a single common type. pubkey_algorithm is a placeholder type for now.
-
Michael Brown authored
Although the nature of the hack is essentially unchanged, this allows us to remove the hardcoded assumption in tls.c that the RX cipher is AES.
-
Michael Brown authored
-
H. Peter Anvin authored
The PXE 1.x spec specifies that on NBP entry or on return from INT 1Ah AX=5650h, EDX shall point to the physical address of the PXENV+ structure. The PXE 2.x spec drops this requirement, simply stating that EDX is clobbered. Given the principle "be conservative in what you send, liberal in what you accept", however, we should implement this anyway.
-
Michael Brown authored
Certain combinations of PXE stack and BIOS result in a broken INT 18 call, which will leave the system displaying a "PRESS ANY KEY TO REBOOT" message instead of proceeding to the next boot device. On these systems, returning via the PXE stack is the only way to continue to the next boot device. Returning via the PXE stack works only if we haven't already blown away the PXE base code in pxeprefix.S. In most circumstances, we do want to blow away the PXE base code. Base memory is a limited resource, and it is desirable to reclaim as much as possible. When we perform an iSCSI boot, we need to place the iBFT above the 512kB mark, because otherwise it may not be detected by the loaded OS; this may not be possible if the PXE base code is still occupying that memory. Introduce a new prefix type .kkpxe which will preserve both the PXE base code and the UNDI driver (as compared to .kpxe, which preserves the UNDI driver but uninstalls the PXE base code). This prefix type can be used on systems that are known to experience the specific problem of INT 18 being broken, or in builds (such as gpxelinux.0) for which it is particularly important to know that returning to the BIOS will work. Written by H. Peter Anvin <hpa@zytor.com> and Stefan Hajnoczi <stefanha@gmail.com>, minor structural alterations by Michael Brown <mcb30@etherboot.org>.
-
Michael Brown authored
-
- Feb 17, 2009
-
-
Michael Brown authored
This change makes it possible to break the PXE-chaining infinite loop even when restricted to a Windows DHCP server.
-
Michael Brown authored
-
Michael Brown authored
-
Michael Brown authored
-
Michael Brown authored
Send authentication information if the username is present, even if the password is empty.
-
Michael Brown authored
-
Michael Brown authored
Other vendor PXE stacks tend to allow the Escape key to be used to abort menu selection. Allow Escape (as well as Ctrl-C) to abort selection.
-
Michael Brown authored
-
Daniel Verkamp authored
-
Michael Brown authored
COMBOOT images use INTs to issue API calls; these end up making calls into gPXE from real mode, and so temporarily change the real-mode stack pointer. When our COMBOOT code uses a longjmp() to implement the various "exit COMBOOT image" API calls, this leaves the real-mode stack pointer stuck with its temporary value, which causes problems if we eventually try to exit out of gPXE back to the BIOS. Fix by adding rmsetjmp() and rmlongjmp() calls (analogous to sigsetjmp()/siglongjmp()); these save and restore the additional state needed for real-mode calls to function correctly.
-
Michael Brown authored
-
Michael Brown authored
When chaining COMBOOT images, the old images now get freed correctly.
-
Michael Brown authored
Multi-level menus via COMBOOT rely on the COMBOOT program being able to exit and invoke a new COMBOOT program (the next menu). This works, but rapidly (within about five iterations) runs out of space in gPXE's internal stack, since each new image is executed in a new function context. Fix by allowing tail recursion between images; an image can now specify a replacement image for itself, and image_exec() will perform the necessary tail recursion.
-
- Feb 16, 2009
-
-
Michael Brown authored
-
Michael Brown authored
The version of the GNU assembler shipped with Fedora 10 (2.18.50.0.9-8.fc10) complains about character literals in some of our assembly code. Changing $'x' to $( 'x' ) seems to fix the problem. Yes, the whitespace is required; using just $('x') does not work. Reported by Kevin O'Connor <kevin@koconnor.net>.
-
Michael Brown authored
GCC did not support #pragma GCC visibility until version 4.0.
-
Michael Brown authored
-
Michael Brown authored
Both the script and PXE images types will claim a zero-length image. Inhibit this to avoid end-user surprises.
-
Michael Brown authored
This patch extends the embedded image feature to allow multiple embedded images instead of just one. gPXE now always boots the first embedded image on startup instead of doing the hardcoded DHCP boot (aka autoboot). Based heavily upon a patch by Stefan Hajnoczi <stefanha@gmail.com>.
-
- Feb 15, 2009
-
-
Michael Brown authored
There are code paths other than PMM allocation that can result in our changing the ROM checksum. For example, we attempt to update our product string to incorporate the PCI bus:dev.fn number. In a system that does not support PMM, we could therefore end up with an incorrect checksum. Fix by attempting to update the checksum unconditionally.
-
Michael Brown authored
Add --fatal-warnings to ASFLAGS; this is the equivalent of -Werror in CFLAGS (which we have used since July 2007).
-