summaryrefslogtreecommitdiffstats
path: root/src/util
Commit message (Collapse)AuthorAgeFilesLines
...
* [romprefix] Add a dummy ROM header to cover the .mrom payloadMichael Brown2012-06-121-8/+62
| | | | | | | | | | | | | The header of a .mrom image declares its length to be only a few kilobytes; the remainder is accessed via a sideband mechanism. This makes it difficult to append an additional ROM image, such as an EFI ROM. Add a second, dummy ROM header covering the payload portion of the .mrom image, allowing consumers to locate any appended ROM images in the usual way. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [util] Rewrite catrom.pl to use Option::ROM libraryMichael Brown2012-06-121-34/+15Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [util] Allow Option::ROM to access multiple ROM imagesMichael Brown2012-06-123-53/+129
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [util] Remove obsolete Makefile rule for util/prototester.cMarin Hannache2012-04-241-8/+2Star
| | | | | | | | util/prototester.c was removed in commit a6d1815 ("Obsolete for some time now") back in 2006. Signed-off-by: Marin Hannache <mareo@mareo.fr> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [efi] Fix compiler warning in elf2efi.cMichael Brown2012-04-211-0/+4
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [util] Add utility to generate list of supported network cardsRobin Smidsrød2012-04-182-1/+589
| | | | | | | | | | | | | | niclist.pl recursively scans specified source folders and builds a list of supported NICs by looking for ISA_ROM and PCI_ROM lines and outputs the list in text, CSV, JSON, HTML or DokuWiki format. Sorting and column selection is possible. The pci-utils pci.ids file is fetched from SourceForge once a day to also output the "official" vendor/device names associated with the PCI device. Signed-off-by: Robin Smidsrød <robin@smidsrod.no> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Enable warnings when building utilitiesMichael Brown2012-04-106-30/+23Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [console] Ignore unexpected keysyms when generating keyboard mapsMichael Brown2012-03-271-2/+4
| | | | | | | | I am unable to find any definitive documentation on how Linux keyboard symbols work. In the absence of any documentation, I'm going to assume that unexpected keysyms are harmless and should be ignored. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Include UNDI PCI driver within all-drivers buildMichael Brown2011-11-161-1/+1
| | | | | | | | | | | | | Commit 9b99d2a ("[build] Avoid generating ROMs with "match-any" vendor or device IDs") introduced a regression which caused the UNDI PCI driver to be omitted from the list of all drivers, and thus to be excluded from the all-drivers build. Fix by ensuring that the per-driver section of the Makefile is generated even when there are no ROMs to be built. Reported-by: Sven Dreyer <sven@dreyer-net.de> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [util] Add romcheck.plMichael Brown2011-09-191-0/+54
| | | | | | | | | | Provide a utility to quickly determine the ROM size and .mrom format support for attached PCI devices. For example: 01:00.0 (1186:4300) supports a 128kB .rom or .mrom Inspired-by: Wes Frazier <wes.frazier@members.fsf.org> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Allow APPEND lines in ipxe.iso to function as expectedDominic Cleal2011-05-191-1/+1
| | | | | Signed-off-by: Dominic Cleal <dcleal@redhat.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Avoid generating ROMs with "match-any" vendor or device IDsMichael Brown2011-03-301-0/+1
| | | | | | | | | A PCI_ROM() entry containing a vendor or device ID of PCI_ANY_ID (0xffff) indicates to pci_find_driver() that the entry's vendor or device ID should be ignored when matching against the device's vendor or device ID. It does not represent a PCI ROM that should be built. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Include only one copy of each ROM in "make allroms"Michael Brown2011-03-301-4/+4
| | | | | | | | | | | | Each PCI ROM currently ends up appearing twice in the $(ROMS) list: once under its designated name (e.g. "rtl8139.rom"), once under its PCI IDs (e.g. "bin/10ec8139.rom"). Include only the latter of these in the $(ROMS) list, so that doing "make allroms" will generate only one copy of each ROM. Reported-by: Bastian Blank <waldi@debian.org> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Generate hybrid ISO images if isohybrid is availableMichael Brown2011-03-271-0/+7
| | | | | Suggested-by: Gene Cumm <gene.cumm@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [console] Try to avoid problems caused by keycode 86Michael Brown2011-03-161-4/+15
| | | | | | | | | | | | | | | | | The "us" keyboard layout contains a mapping for keycode 86 (which seems not to correspond to any physical key on many US keyboards) to the ASCII character '<'. This mapping causes conflicts with the mapping for keycode 51, which also maps (with shift) to '<'. Change the keyboard mapping generator to choose the lowest keycode for each ASCII character as indicating the relevant mapping to use, on the basis that a lower keycode roughly indicates a "more normal" key. On a German keyboard, which has keys for both keycode 51 and keycode 86 present, this causes '<' to be remapped to ';', which is a closer match to typical user expectations. Reported-by: Sven Dreyer <sven@dreyer-net.de> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [console] Add keymap generatorMichael Brown2011-03-161-0/+224
| | | | | | | | Inspired by LILO's keytab-lilo.pl, genkeymap.pl uses "loadkeys -b" to obtain a Linux keyboard map, and generates a file keymap_xx.c in hci/keymap. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [fnrec] Enhance function recordingMichael Brown2010-12-092-32/+145
| | | | | | | | | | | | | | | | | | | | | | | | | Enhance the information collected by the function recorder to include the call site and entry/exit counts. This allows fnrec.pl to produce a call tree such as: step (from core/getkey.c:46 = 0x17e90) { ref_increment (from core/process.c:93 = 0x73ec) { } net_step (from core/process.c:96 = 0x73f1) { net_poll (from net/netdevice.c:741 = 0xbce6) { netdev_poll (from net/netdevice.c:700 = 0xbc58) { } netdev_rx_dequeue (from net/netdevice.c:709 = 0xbc65) { } } } ref_decrement (from core/process.c:96 = 0x73f9) { } } Note that inlined functions are reported, confusingly, as extra calls to the *containing* function. Minimise this confusion by adding the attribute "no_instrument_function" to all functions declared as inline. (Static functions that have been inlined autonomously by gcc will still be problematic, but these are far fewer in number.) Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [util] Update welcome message in ISO imagesMichael Brown2010-10-181-1/+1
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [efi] Fix the 32-bit version of elf2efi64Geoff Lywood2010-07-211-10/+10
| | | | | | | | | | | | | | | | | | | Currently, if elf2efi.c is compiled using a 32-bit HOST_CC, then the resulting elf2efi64 binary will generate 32-bit EFI binaries instead of 64-bit EFI binaries. The problem is that elf2efi.c uses the MDE_CPU_* definitions to decide whether to output a 32-bit or 64-bit PE binary. However, MDE_CPU_* gets defined in ProcessorBind.h, depending on the compiler's target architecture. Overriding them on the command line doesn't work in the expected way, and you can end up in cases where both MDE_CPU_IA32 and MDE_CPU_X64 are defined. Fix by using a separate definition, EFI_TARGET_IA32/EFI_TARGET_X64, which is specified only on the command line. Signed-off-by: Geoff Lywood <glywood@vmware.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [libc] Enable automated extraction of error usage reportsMichael Brown2010-05-312-0/+168
| | | | | | | Add preprocessor magic to the error definitions to enable every error usage to be tracked. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [efi] Verify object format support in elf2efi.cGeoff Lywood2010-05-271-2/+3
| | | | | | | | | | Currently, if you attempt to build 64-bit EFI binaries on a 32-bit system without a suitable cross-compiling version of libbfd, the iPXE build will die with a segmentation fault in elf2efi64. Fix by properly handling the return value from bfd_check_format(). Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [romprefix] Add .mrom format, allowing loading of large ROMsMichael Brown2010-04-251-1/+2
| | | | | | | | | | | | | | | | | | | | | Add an infrastructure allowing the prefix to provide an open_payload() method for obtaining out-of-band access to the whole iPXE image. Add a mechanism within this infrastructure that allows raw access to the expansion ROM BAR by temporarily borrowing an address from a suitable memory BAR on the same PCI card. For cards that have a memory BAR that is at least as large as their expansion ROM BAR, this allows large iPXE ROMs to be supported even on systems where PMM fails, or where option ROM space pressure makes it impossible to use PMM shrinking. The BIOS sees only a stub ROM of approximately 3kB in size; the remainder (which can be well over 64kB) is loaded only at the time iPXE is invoked. As a nice side-effect, an iPXE .mrom image will continue to work even if its PMM-allocated areas are overwritten between initialisation and invocation. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Replace obsolete makerom.pl with quick script using Option::ROMMichael Brown2010-04-252-226/+34Star
| | | | | | | | | | | The only remaining useful function of makerom.pl is to correct the ROM and PnP checksums; the PCI IDs are set at link time, and padding is performed using padimg.pl. Option::ROM already provides a facility for correcting the checksums, so we may as well just use this instead. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [prefix] Add .text16.early sectionMichael Brown2010-04-201-5/+56
| | | | | | | | | | | | | Add a section .text16.early which is always kept inline with the prefix. This will allow for some code sharing between the .prefix and .text16 sections. Note that the simple solution of just prepending the .prefix section to the .text16 section will not work, because a bug in Wyse Streaming Manager server (WLDRM13.BIN) requires us to place a dummy PXENV+ entry point at the start of .text16. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [romprefix] Remove .xrom prefixMichael Brown2010-04-201-18/+12Star
| | | | | | | | | | | | | | | The .xrom prefix provides an experimental mechanism for loading ROM images greater than 64kB in size by mapping the expansion ROM BAR in at a hopefully-unused address. This is unreliable, and potentially dangerous. In particular, there is no guarantee that any PCI bridges between the CPU and the device will respond to accesses for the "unused" memory region that is chosen, and it is possible that the process of scanning for the "unused" memory region may end up issuing reads to other PCI devices. If this ends up trampling on a register with read side-effects belonging to an unrelated PCI device, this may cause undefined behaviour. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Rename gPXE to iPXEMichael Brown2010-04-207-13/+13
| | | | | | | | | | | Access to the gpxe.org and etherboot.org domains and associated resources has been revoked by the registrant of the domain. Work around this problem by renaming project from gPXE to iPXE, and updating URLs to match. Also update README, LOG and COPYRIGHTS to remove obsolete information. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [util] Hide an expected error from the 'which' commandPiotr Jaroszyński2010-04-161-1/+1
| | | | | Signed-off-by: Piotr Jaroszyński <p.jaroszynski@gmail.com> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [fnrec] Add function recorder for debuggingStefan Hajnoczi2010-03-041-0/+32
| | | | | | | | | | | | | | | | | | The function recorder is a crash and hang debugging tool. It logs each function call into a memory buffer while gPXE runs. After the machine is reset, and if the contents of memory have not been overwritten, gPXE will detect the memory buffer and print out its contents. This allows developers to see a trace of the last functions called before a crash or hang. The util/fnrec.sh script can be used to convert the function addresses back into symbol names. To build with fnrec: make FNREC=1 Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [util] Detect genisoimage as mkisofs replacementStefan Hajnoczi2010-02-131-1/+11
| | | | | | | | | | | | | Debian based systems may have genisoimage(1) instead of mkisofs(1). They are command-line compatible so the util/geniso script should be able to choose either one. This patch also changes the use of the mkisofs quiet (-q) flag to its long form (-quiet). This should be compatible with more versions of cdrtools and cdrkit. Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [prefix] Add .xrom prefix for a ROM that loads itself by PCI accessesJoshua Oreman2010-01-201-12/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The standard option ROM format provides a header indicating the size of the entire ROM, which the BIOS will reserve space for, load, and call as necessary. However, this space is strictly limited to 128k for all ROMs. gPXE ameliorates this somewhat by reserving space for itself in high memory and relocating the majority of its code there, but on systems prior to PCI3 enough space must still be present to load the ROM in the first place. Even on PCI3 systems, the BIOS often limits the size of ROM it will load to a bit over 64kB. These space problems can be solved by providing an artificially small size in the ROM header: just enough to let the prefix code (at the beginning of the ROM image) be loaded by the BIOS. To the BIOS, the gPXE ROM will appear to be only a few kilobytes; it can then load the rest of itself by accessing the ROM directly using the PCI interface reserved for that task. There are a few problems with this approach. First, gPXE needs to find an unmapped region in memory to map the ROM so it can read from it; this is done using the crude but effective approach of scanning high memory (over 0xF0000000) for a sufficiently large region of all-ones (0xFF) reads. (In x86 architecture, all-ones is returned for accesses to memory regions that no mapped device can satisfy.) This is not provably valid in all situations, but has worked well in practice. More importantly, this type of ROM access can only work if the PCI ROM BAR exists at all. NICs on physical add-in PCI cards generally must have the BAR in order for the BIOS to be able to load their ROM, but ISA cards and LAN-on-Motherboard cards will both fail to load gPXE using this scheme. Due to these uncertainties, it is recommended that .xrom only be used when a regular .rom image is infeasible due to crowded option ROM space. However, when it works it could allow loading gPXE images as large as a flash chip one could find - 128kB or even higher. Signed-off-by: Marty Connor <mdc@etherboot.org>
* [util] Add diffsize.pl utility for generating diffs of object sizesJoshua Oreman2010-01-141-0/+101
| | | | | | This is useful when comparing size optimizations. Signed-off-by: Marty Connor <mdc@etherboot.org>
* [zbin] Fix 64-bit compilation warnings for util/zbin.cJoshua Oreman2009-10-201-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recent gcc versions generate more warnings when compiling util/zbin.c on a 64-bit system: util/zbin.c: In function `read_file': util/zbin.c:85: warning: format `%d' expects type `int', but argument 3 has type `size_t' util/zbin.c:91: warning: format `%d' expects type `int', but argument 3 has type `size_t' util/zbin.c: In function `read_zinfo_file': util/zbin.c:119: warning: format `%d' expects type `int', but argument 4 has type `size_t' util/zbin.c: In function `alloc_output_file': util/zbin.c:134: warning: format `%d' expects type `int', but argument 3 has type `size_t' util/zbin.c: In function `process_zinfo_add': util/zbin.c:244: warning: format `%d' expects type `int', but argument 3 has type `size_t' util/zbin.c:266: warning: format `%d' expects type `int', but argument 7 has type `size_t' util/zbin.c:286: warning: format `%#x' expects type `unsigned int', but argument 7 has type `size_t' util/zbin.c: In function `write_output_file': util/zbin.c:348: warning: format `%d' expects type `int', but argument 3 has type `size_t' This patch eliminates these warnings. Signed-off-by: Marty Connor <mdc@etherboot.org>
* [util] Change gensdsk file permissions to include executeMarty Connor2009-10-201-0/+0
| | | | | | src/util/gensdsk is a shell script and should have execute permission. Reported-by: sobtwmxt sobtwmxt@sdf.lonestar.org
* [zbin] Fix compilation warnings for util/zbin.cThomas Miletich2009-10-171-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | Recent gcc versions generate warnings when compiling util/zbin.c ( tested with gcc-4.3.3 ): util/zbin.c: In function ‘process_zinfo_pack’: util/zbin.c:200: warning: format ‘%#zx’ expects type ‘size_t’, but argument 6 has type ‘long unsigned int’ util/zbin.c: In function ‘process_zinfo_add’: util/zbin.c:257: warning: format ‘%#lx’ expects type ‘long unsigned int’, but argument 4 has type ‘int’ util/zbin.c:266: warning: format ‘%#lx’ expects type ‘long unsigned int’, but argument 4 has type ‘int’ util/zbin.c:266: warning: format ‘%d’ expects type ‘int’, but argument 8 has type ‘long unsigned int’ util/zbin.c:286: warning: format ‘%#lx’ expects type ‘long unsigned int’, but argument 6 has type ‘int’ util/zbin.c:286: warning: format ‘%#lx’ expects type ‘long unsigned int’, but argument 7 has type ‘size_t’ This patch eliminates these warnings. Tested with gcc-4.3.3 on Ubuntu 9.04 and gcc-4.1.2 on Debian Etch. Signed-off-by: Marty Connor <mdc@etherboot.org>
* [util] Make mtools check detect new versionsStefan Hajnoczi2009-10-152-2/+2
| | | | | | | | | The mtools version check does not handle GNU mtools 4.0.10. This commit makes the pattern more general so it matches older mtools as well as the newer "mtools (GNU mtools) 4.0.10" string. Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Marty Connor <mdc@etherboot.org>
* [modrom] Avoid clobbering near jump with checksumJoshua Oreman2009-10-151-2/+2
| | | | | | | | | | | | | | A jump instruction starts at the third byte of an option ROM image, and it is required that the bytes in the whole image add up to zero. To achieve this, a checksum byte is usually placed after the jump. The jump can be either a short jump (2 bytes, EB xx) or a near jump (3 bytes, E9 xx xx). gPXE's romprefix.S uses a near jump, but modrom.pl assumed a short jump, and clobbered the high byte of the offset. This caused modrom-modified gPXE ROM images to crash the system during POST. Fix by making modrom.pl place the checksum at byte 6, like makerom.pl does. Signed-off-by: Marty Connor <mdc@etherboot.org>
* [zbin] Change fixup semantics to support ROMs over 128k uncompressedJoshua Oreman2009-08-111-50/+76
| | | | | | | | | | | | | | | | | | | | | | | | The option ROM header contains a one-byte field indicating the number of 512-byte sectors in the ROM image. Currently it is linked to contain the number of uncompressed sectors, with an instruction to the compressor to correct it. This causes link failure when the uncompressed size of the ROM image is over 128k. Fix by replacing the SUBx compressor fixup with an ADDx fixup that adds the total compressed output length, scaled as requested, to an addend stored in the field where the final length value will be placed. This is similar to the behavior of ELF relocations, and ensures that an overflow error will not be generated unless the compressed size is still too large for the field. This also allows us to do away with the _filesz_pgh and _filesz_sect calculations exported by the linker script. Output tested bitwise identical to the old SUBx mechanism on hd, dsk, lkrn, and rom prefixes, on both 32-bit and 64-bit processors. Modified-by: Michael Brown <mcb30@etherboot.org> Signed-off-by: Michael Brown <mcb30@etherboot.org>
* [geniso] Emit proper error message for incorrect location of ISOLINUX_BINvibi sreenivasan2009-08-091-1/+1
| | | | | | | | If isolinux.bin is not installed in the expected location the error message shown is slightly misleading. Signed-off-by: Vibi Sreenivasan <vibi_sreenivasan@cms.com> Signed-off-by: Michael Brown <mcb30@etherboot.org>
* [legal] Add the MIT and ISC licenses to licence.plH. Peter Anvin2009-08-031-0/+25
| | | | | | | | The MIT and ISC licenses are legally equivalent to the bsd2 license, but with slightly different verbiage. Signed-off-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Michael Brown <mcb30@etherboot.org>
* [build] Allow safe concurrent builds of .iso, .liso and .sdsk targetsMichael Brown2009-08-023-8/+5Star
| | | | | | | | The geniso, genliso and gensdsk scripts contain hard-coded temporary directory names, and so could potentially collide with each other when run as part of a concurrent build (e.g. "make -j 4"). Fix by using mktemp to generate suitable temporary directory names.
* [build] Make .liso image generation silent unless errors occurMichael Brown2009-08-021-1/+1
|
* [build] Add syslinux floppy image type .sdskMarty Connor2009-08-022-27/+83
| | | | | | | | | | | | We add a syslinux floppy disk type using parts of the genliso script. This floppy image cat be dd'ed to a physical floppy or used in instances where a virtual floppy with an mountable DOS filesystem is useful. We also modify the genliso script to only generate .liso images rather than creating images depending on how it is called. Signed-off-by: Michael Brown <mcb30@etherboot.org>
* [legal] Add licence.pl and %.licence make targetMichael Brown2009-05-181-0/+124
| | | | | | | | | | | | | It is now possible to run e.g. make bin/rtl8139.dsk.licence in order to see a licensing assessment for any given gPXE build. The assessment will either produce a single overall licence for the build (based on combining all the licences used within the source files for that build), or will exit with an error stating why a licence assessment is not possible (for example, if there are files involved that do not yet contain an explicit FILE_LICENCE() declaration).
* [build] Fix signed/unsigned division in util/zbin.cStefan Hajnoczi2009-04-261-4/+5
| | | | | | | | | | | | | Commit b149a99 ([build] Round up SUBx deltas) introduced a signed/unsigned issue that affects gPXE images built on 32-bit hosts. The zbin fixup utility performed an unsigned division, which led to .usb images with an incorrect number of sectors to load. The issue snuck by on 64-bit hosts since uint32_t is promoted to long. On 32-bit hosts it is promoted to unsigned long. Modified-by: Michael Brown <mcb30@etherboot.org> Signed-off-by: Michael Brown <mcb30@etherboot.org>
* [build] Simplify use of Getopt::Long in padimg.plMichael Brown2009-04-161-4/+3Star
| | | | | | Sometimes it's just so much fun doing things the complicated way that you forget to check the man page for the existence of a simpler syntax.
* [build] Reinstate the .pdsk padded-floppy image formatMichael Brown2009-04-161-3/+4
| | | | | | Some utilities that expect a floppy disk image (e.g. iLO?) may test for a file of the correct size. Reinstate the .pdsk image format in order to provide this if needed.
* [build] Pad .rom, .dsk, and .hd images to 512-byte boundariesMichael Brown2009-04-162-12/+44
| | | | | | | | QEMU will silently round down a disk or ROM image file to the nearest 512 bytes. Fix by always padding .rom, .dsk and .hd images to the nearest 512-byte boundary. Originally-fixed-by: Stefan Hajnoczi <stefanha@gmail.com>
* [build] Round up SUBx deltasStefan Hajnoczi2009-04-151-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The zbin compressor fixup utility rounds down file sizes before calculating their difference. This produces incorrect values and may cause truncated gPXE images to be loaded at boot. The following example explains the problem: ilen = 48 bytes (uncompressed input file) olen = 17 bytes (compressed output file) divisor = 16 bytes (paragraph granularity) fixmeup = 3 paragraphs (value to fix up) olen / divisor - ilen / divisor = 1 - 3 = -2 paragraphs (old delta calculation) ( align ( olen, divisor ) - align ( ilen, divisor ) ) / divisor = 2 - 3 = -1 paragraphs (new delta calculation) If we perform the SUBx operation with old delta: fixmeup + -2 = 1 paragraph gets loaded by the prefix With the new delta: fixmeup + -1 = 2 paragraphs get loaded by the prefix The old delta calculation removes the last paragraph; the prefix will load a truncated copy of gPXE into memory. We need to load 2 paragraphs since olen is 17 bytes. Loading only 1 paragraph (16 bytes) would truncate the last byte. Signed-off-by: Michael Brown <mcb30@etherboot.org>
* [efi] Use POSIX version of basename() in elf2efi.cMichael Brown2009-03-311-1/+6
| | | | | | This is required in order to build on Mac OS X. Suggested-by: Joshua Oreman <oremanj@rwcr.net>
* [pci] Add driver_data field to struct pci_device_idThomas Miletich2009-03-261-1/+2
| | | | | Modified-by: Michael Brown <mcb30@etherboot.org> Signed-off-by: Michael Brown <mcb30@etherboot.org>