]> git.ipfire.org Git - thirdparty/ipxe.git/log
thirdparty/ipxe.git
14 years ago[list] Add list_check_contains()
Michael Brown [Tue, 3 May 2011 19:02:07 +0000 (20:02 +0100)] 
[list] Add list_check_contains()

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[netdevice] Move high-frequency debug messages to DBGLVL_EXTRA
Michael Brown [Tue, 3 May 2011 19:01:11 +0000 (20:01 +0100)] 
[netdevice] Move high-frequency debug messages to DBGLVL_EXTRA

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[efi] Ensure that each HII package list and formset has a unique GUID
Michael Brown [Tue, 3 May 2011 17:52:56 +0000 (18:52 +0100)] 
[efi] Ensure that each HII package list and formset has a unique GUID

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[build] Fix building on mildly deranged versions of binutils
Michael Brown [Fri, 29 Apr 2011 00:27:36 +0000 (01:27 +0100)] 
[build] Fix building on mildly deranged versions of binutils

Some versions of binutils have curious concepts of what constitutes
subtraction.  For example:

  0x00000000000000f0 _text16_late = .
  0x0000000000000898 _mtext16 = .
  0x0000000000000898 _etext16 = .
  0x0000000000000898 _text16_late_filesz = ABSOLUTE ((_mtext16 - _text16_late))
  0x00000000000007a8 _text16_late_memsz = ABSOLUTE ((_etext16 - _text16_late))

This has interesting side-effects such as producing sizes for .bss
segments that are negative, causing the majority of addressable memory
to be zeroed out.

Fix by using the form

  ABSOLUTE ( x ) - ABSOLUTE ( y )

rather than

  ABSOLUTE ( x - y )

Reported-by: H. Peter Anvin <hpa@zytor.com>
Suggested-by: H. Peter Anvin <hpa@zytor.com>
Tested-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[int13] Catch INT 13,4b when no explicit drive number is present
Michael Brown [Thu, 28 Apr 2011 12:05:40 +0000 (13:05 +0100)] 
[int13] Catch INT 13,4b when no explicit drive number is present

This allows older versions of ELTORITO.SYS (such as the version found
on the FreeDOS installation CD-ROM) to use iPXE's emulated CD-ROM
drive.

Reported-by: Robin Smidsrød <robin@smidsrod.no>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[build] Accept EMBED=... as a synonym for EMBEDDED_IMAGE=...
Michael Brown [Thu, 28 Apr 2011 10:56:27 +0000 (11:56 +0100)] 
[build] Accept EMBED=... as a synonym for EMBEDDED_IMAGE=...

Make the build command line less cumbersome by accepting

  make DEBUG=int13 EMBED=test.ipxe

rather then

  make DEBUG=int13 EMBEDDED_IMAGE=test.ipxe

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[int13] Add support for INT 13,4b
Michael Brown [Wed, 27 Apr 2011 23:02:53 +0000 (00:02 +0100)] 
[int13] Add support for INT 13,4b

This allows the ELTORITO.SYS driver for MS-DOS to access our emulated
CD-ROM drives.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[int13] Add support for El Torito bootable CD-ROM images
Michael Brown [Wed, 27 Apr 2011 17:01:25 +0000 (18:01 +0100)] 
[int13] Add support for El Torito bootable CD-ROM images

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[linux] Avoid building Linux-specific prefix on non-Linux builds
Michael Brown [Tue, 26 Apr 2011 23:07:42 +0000 (00:07 +0100)] 
[linux] Avoid building Linux-specific prefix on non-Linux builds

Reported-by: David Yeske <dyeske@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[sanboot] Add "sanhook" and "sanunhook" commands
Michael Brown [Sat, 23 Apr 2011 08:50:38 +0000 (09:50 +0100)] 
[sanboot] Add "sanhook" and "sanunhook" commands

Expose the multiple-SAN-drive capability of the iPXE core via the iPXE
command line by adding commands to hook and unhook additional drives.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[parseopt] Allow for pre-initialised option sets
Michael Brown [Sun, 24 Apr 2011 14:19:31 +0000 (15:19 +0100)] 
[parseopt] Allow for pre-initialised option sets

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[undi] Assume that interrupts are not supported if IRQ=0
Michael Brown [Fri, 22 Apr 2011 22:31:25 +0000 (23:31 +0100)] 
[undi] Assume that interrupts are not supported if IRQ=0

Some PXE stacks (notably old Etherboot/gPXE stacks) will claim to use
the timer interrupt, rather than reporting that interrupts are not
supported.  Since using the timer interrupt is equivalent to polling
anyway, we may as well genuinely poll these stacks.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[build] Run parserom.pl only on potential driver files
Michael Brown [Sat, 9 Apr 2011 22:34:34 +0000 (23:34 +0100)] 
[build] Run parserom.pl only on potential driver files

PCI_ROM() and ISA_ROM() macros occur only within driver files.
Running parserom.pl on non-driver files is therefore redundant.

Skip running parserom.pl on any files outside a "drivers" directory.
This reduces the time taken to generate build rules and dependencies
after a "make veryclean" by around 12%.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[cmdline] Add "iseq" command
Greg Jednaszewski [Fri, 8 Apr 2011 18:33:51 +0000 (19:33 +0100)] 
[cmdline] Add "iseq" command

Modified-by: Michael Brown <mcb30@ipxe.org>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[cmdline] Simplify "isset" command
Michael Brown [Fri, 8 Apr 2011 02:19:06 +0000 (03:19 +0100)] 
[cmdline] Simplify "isset" command

There is no plausible scenario I can think of in which "isset" would
be used with more than one argument.  Simplify the code by specifying
that exactly one argument is required.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[hermon] Work around missing mport support in current BOFM implementations
Michael Brown [Thu, 7 Apr 2011 12:53:28 +0000 (13:53 +0100)] 
[hermon] Work around missing mport support in current BOFM implementations

Current BOFM versions are unable to create entries with mport>1, which
means that only the port 1 MAC address can be explicitly specified.

Work around this by using the provided MAC address as a base address
for all subsequent ports.  For example, if BOFM assigns the address

   00:1A:64:76:00:09 for port 1

then we will assign the addresses

   00:1A:64:76:00:09 for port 1
   00:1A:64:76:00:0a for port 2

Future BOFM versions that may correctly support mport will work with
this scheme without modification provided that the BOFM entries are
created in increasing order of mport.  Since BOFM tools tend to
generate entries in increasing order (of slot, port, etc), this is not
an unreasonable compromise.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[arbel] Stop firmware only once on shutdown
Michael Brown [Thu, 7 Apr 2011 23:51:02 +0000 (00:51 +0100)] 
[arbel] Stop firmware only once on shutdown

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[hermon] Stop firmware only once on shutdown
Michael Brown [Thu, 7 Apr 2011 23:50:49 +0000 (00:50 +0100)] 
[hermon] Stop firmware only once on shutdown

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[efi] Add support for HII
Michael Brown [Thu, 7 Apr 2011 22:03:05 +0000 (23:03 +0100)] 
[efi] Add support for HII

Some EFI platforms expect us to provide an HII interface to display
information about the driver.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[efi] Include MdeModulePkg directory in header import list
Michael Brown [Thu, 7 Apr 2011 21:58:37 +0000 (22:58 +0100)] 
[efi] Include MdeModulePkg directory in header import list

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[efi] Add EFI string formatting functions
Michael Brown [Thu, 7 Apr 2011 22:01:05 +0000 (23:01 +0100)] 
[efi] Add EFI string formatting functions

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[device] Make driver name a generic device property
Michael Brown [Thu, 7 Apr 2011 19:59:47 +0000 (20:59 +0100)] 
[device] Make driver name a generic device property

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[build] Refuse to attempt building with the GNU gold linker
Michael Brown [Tue, 5 Apr 2011 13:59:27 +0000 (14:59 +0100)] 
[build] Refuse to attempt building with the GNU gold linker

GNU gold (part of newer binutils builds) does not appear to be
designed to support generic linker functionality, since its source
code contains several Linux-specific hard-coded assumptions about the
layout of ELF binaries.  Attempting to build iPXE using GNU gold will
generally cause some kind of "linker internal error".

Provide an explicit error message suggesting the use of GNU ld
instead.

Reported-by: Chris Hills <chaz@chaz6.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[build] Perform tool checks on each make invocation
Michael Brown [Tue, 5 Apr 2011 13:51:03 +0000 (14:51 +0100)] 
[build] Perform tool checks on each make invocation

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[tcp] Update ts_recent whenever window is advanced
Michael Brown [Sat, 2 Apr 2011 23:37:27 +0000 (00:37 +0100)] 
[tcp] Update ts_recent whenever window is advanced

Commit 3f442d3 ("[tcp] Record ts_recent on first received packet")
failed to achieve its stated intention.

Fix this (and reduce the code size) by moving the ts_recent update to
tcp_rx_seq().  This is the code responsible for advancing the window,
called by both tcp_rx_syn() and tcp_rx_data(), and so the window check
is now redundant.

Reported-by: Frank Weed <zorbustheknight@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[cmdline] Fix "isset" command
Michael Brown [Fri, 1 Apr 2011 19:07:17 +0000 (20:07 +0100)] 
[cmdline] Fix "isset" command

Commit b5f5f73 ("[cmdline] Expand settings within each command-line
token individually") introduced a regression into the "isset" command:
it is now possible for command-line arguments to be empty strings, and
so "isset" cannot simply check for a non-empty argument list.

Restore previous behaviour by checking for the presence of any
non-empty arguments, rather than checking for a non-empty argument
list.

Reported-by: Nemtallah Daher <n.daher@csuohio.edu>
Tested-by: Nemtallah Daher <n.daher@csuohio.edu>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[tftp] Avoid setting current working URI to "tftp://0.0.0.0/"
Michael Brown [Thu, 31 Mar 2011 03:52:47 +0000 (04:52 +0100)] 
[tftp] Avoid setting current working URI to "tftp://0.0.0.0/"

Set the current working URI to NULL rather than to "tftp://0.0.0.0/".

Reported-by: Piotr Jaroszyński <p.jaroszynski@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[efi] Synchronise EFI header files
Michael Brown [Wed, 30 Mar 2011 23:39:40 +0000 (00:39 +0100)] 
[efi] Synchronise EFI header files

Synchronised to EDK2 SVN revision 11462.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[cmdline] Add support for shell history
Michael Brown [Wed, 30 Mar 2011 18:44:15 +0000 (19:44 +0100)] 
[cmdline] Add support for shell history

The up and down arrow keys will now function roughly as expected at
the iPXE command line.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[readline] Add history support
Michael Brown [Tue, 29 Mar 2011 17:00:30 +0000 (18:00 +0100)] 
[readline] Add history support

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[readline] Add replace_string()
Michael Brown [Tue, 29 Mar 2011 15:40:23 +0000 (16:40 +0100)] 
[readline] Add replace_string()

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[readline] Add init_editstring() wrapper function
Michael Brown [Tue, 29 Mar 2011 15:34:07 +0000 (16:34 +0100)] 
[readline] Add init_editstring() wrapper function

Standardise on using init_editstring() to initialise an embedded
editable string, to match the coding style used by other embedded
objects.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[build] Add "allmroms" target
Bastian Blank [Wed, 30 Mar 2011 15:19:23 +0000 (16:19 +0100)] 
[build] Add "allmroms" target

Signed-off-by: Bastian Blank <waldi@debian.org>
Modified-by: Michael Brown <mcb30@ipxe.org>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[build] Avoid generating ROMs with "match-any" vendor or device IDs
Michael Brown [Wed, 30 Mar 2011 14:57:33 +0000 (15:57 +0100)] 
[build] Avoid generating ROMs with "match-any" vendor or device IDs

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>
14 years ago[build] Include $(BIN)/errors in "make clean"
Michael Brown [Wed, 30 Mar 2011 14:55:14 +0000 (15:55 +0100)] 
[build] Include $(BIN)/errors in "make clean"

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[build] Include only one copy of each ROM in "make allroms"
Michael Brown [Wed, 30 Mar 2011 14:49:00 +0000 (15:49 +0100)] 
[build] Include only one copy of each ROM in "make allroms"

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>
14 years ago[build] Remove obsolete "allzroms" target
Michael Brown [Wed, 30 Mar 2011 14:20:27 +0000 (15:20 +0100)] 
[build] Remove obsolete "allzroms" target

The .zrom format has not existed since around 2007.  ROMs are now
compressed by default.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[netdevice] Simplify link-down status message
Michael Brown [Wed, 30 Mar 2011 11:45:12 +0000 (12:45 +0100)] 
[netdevice] Simplify link-down status message

For devices that start in a link-down state, the user will see a
message such as:

  [Link status: The socket is not connected (http://ipxe.org/38086001)]
  Waiting for link-up on net0...

This is potentially misleading, since it suggests that there is a
genuine problem.  Add a dedicated error message for "link down",
giving instead:

  [Link status: Down (http://ipxe.org/38086101)]
  Waiting for link-up on net0...

Reported-by: Tal Aloni <tal.aloni.il@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[bofm] Use BOFM protocol version 2 if available
Michael Brown [Wed, 30 Mar 2011 00:34:51 +0000 (01:34 +0100)] 
[bofm] Use BOFM protocol version 2 if available

The original EFI BOFM protocol has a design flaw that limits the size
of the table to 1kB, since the table is embedded within the
IBM_BOFM_DRIVER_CONFIGURATION_PROTOCOL structure.  Version 2 of the
protocol works around this problem.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[forcedeth] Never change the NVREG_TRANSMITPOLL_MAC_ADDR_REV flag
Michael Brown [Tue, 29 Mar 2011 23:33:48 +0000 (00:33 +0100)] 
[forcedeth] Never change the NVREG_TRANSMITPOLL_MAC_ADDR_REV flag

iPXE operates the forcedeth NIC in promiscuous mode, and never changes
the unicast MAC address filter registers.  We should not therefore set
the flag indicating (to other drivers loaded later) that the MAC
address order has already been corrected.

Reported-by: Tal Aloni <tal.aloni.il@gmail.com>
Tested-by: Tal Aloni <tal.aloni.il@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[efi] Ensure that all drivers are shut down before the OS boots
Michael Brown [Tue, 29 Mar 2011 20:35:06 +0000 (21:35 +0100)] 
[efi] Ensure that all drivers are shut down before the OS boots

Reported-by: Itay Gazit <itayg@mellanox.co.il>
Suggested-by: Michael R Turner <mikeyt@us.ibm.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[forcedeth] Remove software unicast MAC address filter
Michael Brown [Tue, 29 Mar 2011 20:55:04 +0000 (21:55 +0100)] 
[forcedeth] Remove software unicast MAC address filter

The forcedeth driver currently implements unicast MAC address
filtering in software.  This is almost invariably the wrong thing to
do (since the network stack must already be able to cope with unwanted
packets) and it breaks FCoE (which requires the card to operate in
promiscuous mode).

Also, the implementation is buggy: is_local_ether_addr() is used to
check for a locally-assigned Ethernet address (not to check for a
unicast address), and the current link-layer address is in
netdev->ll_addr, not netdev->hw_addr.

Fix by removing this code.

Reported-by: Tal Aloni <tal.aloni.il@gmail.com>
Tested-by: Tal Aloni <tal.aloni.il@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[build] Fix compilation when gcc is patched to default to -fPIE -Wl,-pie
Gilles Espinasse [Tue, 29 Mar 2011 14:30:11 +0000 (15:30 +0100)] 
[build] Fix compilation when gcc is patched to default to -fPIE -Wl,-pie

Signed-off-by: Gilles Espinasse <g.esp@free.fr>
Modified-by: Michael Brown <mcb30@ipxe.org>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[settings] Display "delete" option only for locally-originated settings
Michael Brown [Mon, 28 Mar 2011 18:07:31 +0000 (19:07 +0100)] 
[settings] Display "delete" option only for locally-originated settings

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[main] Add the "scriptlet" setting
Michael Brown [Mon, 28 Mar 2011 17:48:48 +0000 (18:48 +0100)] 
[main] Add the "scriptlet" setting

A scriptlet is a single iPXE command that can be stored in
non-volatile option storage and used to override the default
"autoboot" behaviour without having to reflash the iPXE image.

For example, a scriptlet could contain

    autoboot || reboot

to instruct iPXE to reboot the system if booting fails.

Unlike an embedded image, the presence of a scriptlet does not inhibit
the initial "Press Ctrl-B..." prompt.  This allows the user to recover
from setting a faulty scriptlet.

Originally-implemented-by: Glenn Brown <glenn@myri.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[cmdline] Expand settings within each command-line token individually
Michael Brown [Mon, 28 Mar 2011 16:35:23 +0000 (17:35 +0100)] 
[cmdline] Expand settings within each command-line token individually

Perform settings expansion after tokenisation, and only at the point
of executing each command.  This allows statements such as

   dhcp && echo ${net0/ip}

to work correctly.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[cmdline] Allow ";" as an unconditional command separator
Michael Brown [Mon, 28 Mar 2011 15:32:30 +0000 (16:32 +0100)] 
[cmdline] Allow ";" as an unconditional command separator

It is currently possible to construct a sequence of commands to be
executed regardless of success or failure using "|| &&" as the command
separator.  (The "||" captures the failure case, the blank command
converts it to a success case.)

Allow ";" to be used as a more visually appealing (and
space-efficient) alternative.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[linux] Avoid unused-but-set variable warning in gcc 4.6
Thomas Miletich [Mon, 28 Mar 2011 12:43:31 +0000 (14:43 +0200)] 
[linux] Avoid unused-but-set variable warning in gcc 4.6

Temporary modification to prevent valgrind.h from breaking compilation
with gcc 4.6.  When this problem is fixed upstream, a new and
unmodified copy of valgrind.h should be imported.

Signed-off-by: Thomas Miletich <thomas.miletich@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[forcedeth] Avoid unused-but-set variable warning in gcc 4.6
Thomas Miletich [Mon, 28 Mar 2011 12:48:59 +0000 (14:48 +0200)] 
[forcedeth] Avoid unused-but-set variable warning in gcc 4.6

Avoid unused-but-set variable warning in gcc 4.6 which was introduced
by commit 9215b7f ("[forcedeth] Clear the MII link status register on
link status changes").

Signed-off-by: Thomas Miletich <thomas.miletich@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[exeprefix] Add .exe prefix
Michael Brown [Mon, 28 Mar 2011 00:05:40 +0000 (01:05 +0100)] 
[exeprefix] Add .exe prefix

An iPXE .exe image can be loaded from DOS.  Tested using bin/ipxe.exe
to load a Linux kernel and simple initramfs from within MS-DOS 6.22.
(EDD must be disabled using the "edd=off" kernel parameter, since the
loaded kernel image has already overwritten parts of DOS' INT 13
wrapper.)

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[prefix] Avoid using base memory for temporary decompression area
Michael Brown [Sun, 27 Mar 2011 23:55:15 +0000 (00:55 +0100)] 
[prefix] Avoid using base memory for temporary decompression area

In the unlikely (but observable) event that INT 15,88 returns less
memory above 1MB than is required for the temporary decompression
area, ignore it and use the 1MB point anyway.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[build] Generate hybrid ISO images if isohybrid is available
Michael Brown [Sun, 27 Mar 2011 21:32:11 +0000 (22:32 +0100)] 
[build] Generate hybrid ISO images if isohybrid is available

Suggested-by: Gene Cumm <gene.cumm@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[build] Delete incomplete targets if building fails for any reason
Michael Brown [Sun, 27 Mar 2011 21:33:33 +0000 (22:33 +0100)] 
[build] Delete incomplete targets if building fails for any reason

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[linux] Make malloc and linux_umalloc valgrindable
Piotr Jaroszyński [Thu, 1 Jul 2010 01:47:52 +0000 (03:47 +0200)] 
[linux] Make malloc and linux_umalloc valgrindable

Make the allocators used by malloc and linux_umalloc valgrindable.
Include valgrind headers in the codebase to avoid a build dependency
on valgrind.

Signed-off-by: Piotr Jaroszyński <p.jaroszynski@gmail.com>
Modified-by: Michael Brown <mcb30@ipxe.org>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[image] Remove redundant call to basename()
Michael Brown [Sun, 27 Mar 2011 18:36:00 +0000 (19:36 +0100)] 
[image] Remove redundant call to basename()

There is no need to explicitly call basename() to construct an image
name in imgfetch_core_exec(), since image_set_uri() will do so
automatically anyway (and will do so without getting confused by URIs
with query strings).

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[image] Use image_set_name() only if name != NULL
Piotr Jaroszyński [Sun, 27 Mar 2011 18:19:47 +0000 (20:19 +0200)] 
[image] Use image_set_name() only if name != NULL

Signed-off-by: Piotr Jaroszyński <p.jaroszynski@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[netdevice] Mark devices as open only if opening succeeds
Piotr Jaroszyński [Sun, 27 Mar 2011 17:26:28 +0000 (19:26 +0200)] 
[netdevice] Mark devices as open only if opening succeeds

netdev_close() assumes that devices that are open are on the
open_list, which wasn't true if device specific opening failed.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[settings] Add "read" command
Michael Brown [Sun, 27 Mar 2011 12:23:18 +0000 (13:23 +0100)] 
[settings] Add "read" command

The "read" command allows a script to prompt a user to enter a
setting.  For example:

  echo -n Static IP address:
  read net0/ip

Total cost: 17 bytes.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[cmdline] Allow "echo -n" to inhibit trailing newline
Michael Brown [Sun, 27 Mar 2011 11:49:18 +0000 (12:49 +0100)] 
[cmdline] Allow "echo -n" to inhibit trailing newline

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[parseopt] Add support for boolean options
Michael Brown [Sun, 27 Mar 2011 11:46:55 +0000 (12:46 +0100)] 
[parseopt] Add support for boolean options

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[tcp] Record ts_recent on first received packet
Michael Brown [Sat, 26 Mar 2011 14:58:17 +0000 (14:58 +0000)] 
[tcp] Record ts_recent on first received packet

Commit 6861304 ("[tcp] Handle out-of-order received packets")
introduced a regression in which ts_recent would not be updated until
the first packet is received in the ESTABLISHED state, i.e. the
timestamp from the SYN+ACK packet would be ignored.  This causes the
connection to be dropped by strictly-conforming TCP peers, such as
FreeBSD.

Fix by delaying the timestamp window check until after processing the
received SYN flag.

Reported-by: winders@sonnet.com
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[build] Include ipxe.lkrn in default build
Michael Brown [Sat, 26 Mar 2011 14:23:21 +0000 (14:23 +0000)] 
[build] Include ipxe.lkrn in default build

bin/ipxe.lkrn is built anyway in order to create bin/ipxe.iso, so
there is no additional cost to including it within the default build.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[monojob] Avoid overflow when calculating percentage progress
Michael Brown [Sat, 26 Mar 2011 13:13:45 +0000 (13:13 +0000)] 
[monojob] Avoid overflow when calculating percentage progress

Normalise the progress figures to ensure that multiplication by 100
(to produce a percentage) cannot result in integer overflow.

Reported-by: Sven Dreyer <sven@dreyer-net.de>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[settings] Match terminology in online documentation
Michael Brown [Wed, 23 Mar 2011 21:21:12 +0000 (21:21 +0000)] 
[settings] Match terminology in online documentation

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[settings] Avoid memory leak when unregistering autovivified settings blocks
Michael Brown [Wed, 23 Mar 2011 20:17:24 +0000 (20:17 +0000)] 
[settings] Avoid memory leak when unregistering autovivified settings blocks

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[settings] Refer to online documentation for settings help
Michael Brown [Wed, 23 Mar 2011 18:23:42 +0000 (18:23 +0000)] 
[settings] Refer to online documentation for settings help

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[settings] Match terminology used elsewhere
Michael Brown [Wed, 23 Mar 2011 18:11:11 +0000 (18:11 +0000)] 
[settings] Match terminology used elsewhere

iPXE documentation tends to refer to "settings" rather than "options",
since settings can be more general than DHCP options.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[undi] Cope with devices that erroneously claim not to use interrupts
Michael Brown [Wed, 23 Mar 2011 13:51:32 +0000 (13:51 +0000)] 
[undi] Cope with devices that erroneously claim not to use interrupts

Some PXE stacks advertise that interrupts are not supported, despite
requiring the use of interrupts.  Attempt to cope with such cards
without breaking others by always hooking the interrupt, and using the
"interrupts supported" flag only to decide whether or not to wait for
an interrupt before calling PXENV_UNDI_ISR_IN_PROCESS.

The possible combinations are therefore:

1. Card generates interrupts and claims to support interrupts

   iPXE will call PXENV_UNDI_ISR_IN_PROCESS only after an interrupt
   has been observed.  (This is required to avoid lockups in some PXE
   stacks, which spuriously sulk if called before an interrupt has
   been generated.)

   Such a card should work correctly.

2. Card does not generate interrupts and does not claim to support
   interrupts

   iPXE will call PXENV_UNDI_ISR_IN_PROCESS indiscriminately, matching
   the observed behaviour of at least one other PXE NBP (winBoot/i).

   Such a card should work correctly.

3. Card generates interrupts but claims not to support interrupts

   iPXE will call PXENV_UNDI_ISR_IN_PROCESS indiscriminately.  An
   interrupt will still result in a call to PXENV_UNDI_ISR_IN_START.

   Such a card may work correctly.

4. Card does not generate interrupts but claims to support interrupts

   Such a card will not work at all.

Reported-by: Jerry Cheng <jaspers.cheng@msa.hinet.net>
Tested-by: Jerry Cheng <jaspers.cheng@msa.hinet.net>
Reported-by: Mauricio Silveira <mauricio@livreti.com.br>
Tested-by: Mauricio Silveira <mauricio@livreti.com.br>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[settings] Impose a fixed order on settings
Michael Brown [Wed, 23 Mar 2011 11:57:29 +0000 (11:57 +0000)] 
[settings] Impose a fixed order on settings

Improve the appearance of the "config" user interface by ensuring that
settings appear in some kind of logical order.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[settings] Fix setting expansion
Michael Brown [Wed, 23 Mar 2011 10:08:16 +0000 (10:08 +0000)] 
[settings] Fix setting expansion

Commit 5fbd020 ("[settings] Display canonical setting name in output
of "show" command") introduced a regression causing all setting
expansions (e.g. "${net0/mac}") to expand to an empty string.

Fix by returning the formatted value length from
fetchf_named_setting(), as expected by the caller.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[settings] Return to first row on navigating to a new settings block
Michael Brown [Wed, 23 Mar 2011 01:49:00 +0000 (01:49 +0000)] 
[settings] Return to first row on navigating to a new settings block

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[settings] Add hierarchy navigation in "config" user interface
Michael Brown [Tue, 22 Mar 2011 22:58:24 +0000 (22:58 +0000)] 
[settings] Add hierarchy navigation in "config" user interface

Allow the user to browse through the settings block hierarchy.

Originally-implemented-by: Glenn Brown <glenn@myri.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[settings] Reject attempts to change a network device's bus ID
Michael Brown [Wed, 23 Mar 2011 01:24:37 +0000 (01:24 +0000)] 
[settings] Reject attempts to change a network device's bus ID

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[settings] Display locally-originated settings in bold
Michael Brown [Tue, 22 Mar 2011 21:35:08 +0000 (21:35 +0000)] 
[settings] Display locally-originated settings in bold

Originally-implemented-by: Glenn Brown <glenn@myri.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[settings] Display canonical setting name in "config" user interface
Michael Brown [Tue, 22 Mar 2011 21:24:54 +0000 (21:24 +0000)] 
[settings] Display canonical setting name in "config" user interface

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[settings] Display only applicable settings in "config" user interface
Michael Brown [Tue, 22 Mar 2011 21:07:22 +0000 (21:07 +0000)] 
[settings] Display only applicable settings in "config" user interface

Display only settings relevant to the current scope.  For example,
"config net0" no longer displays SMBIOS settings, and "config smbios"
displays only SMBIOS settings.

Originally-implemented-by: Glenn Brown <glenn@myri.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[settings] Display canonical setting name in output of "show" command
Michael Brown [Tue, 22 Mar 2011 19:12:10 +0000 (19:12 +0000)] 
[settings] Display canonical setting name in output of "show" command

Enable the "show" command to display the full, canonicalised name of
the fetched setting.  For example:

  iPXE> show mac
  net0/mac:hex = 52:54:00:12:34:56

  iPXE> dhcp && show ip
  DHCP (net0 52:54:00:12:34:56)... ok
  net0.dhcp/ip:ipv4 = 10.0.0.168

  iPXE> show net0/6
  net0.dhcp/dns:ipv4 = 10.0.0.6

Inspired-by: Glenn Brown <glenn@myri.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[settings] Provide fetch_setting_origin()
Michael Brown [Tue, 22 Mar 2011 17:41:47 +0000 (17:41 +0000)] 
[settings] Provide fetch_setting_origin()

Inspired-by: Glenn Brown <glenn@myri.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[settings] Expose settings_name()
Glenn Brown [Tue, 22 Mar 2011 17:49:03 +0000 (17:49 +0000)] 
[settings] Expose settings_name()

Expose settings_name(), shrink the unnecessarily large static buffer,
properly name root settings block, and simplify.

Modified-by: Michael Brown <mcb30@ipxe.org>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[settings] Use concat_args() in "set" command
Michael Brown [Tue, 22 Mar 2011 17:29:08 +0000 (17:29 +0000)] 
[settings] Use concat_args() in "set" command

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[settings] Formalise notion of setting applicability
Michael Brown [Tue, 22 Mar 2011 16:56:35 +0000 (16:56 +0000)] 
[settings] Formalise notion of setting applicability

Expose a function setting_applies() to allow a caller to determine
whether or not a particular setting is applicable to a particular
settings block.

Restrict DHCP-backed settings blocks to accepting only DHCP-based
settings.

Restrict network device settings blocks to accepting only DHCP-based
settings and network device-specific settings such as "mac".

Inspired-by: Glenn Brown <glenn@myri.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[forcedeth] Clear the MII link status register on link status changes
Yann Cézard [Sun, 20 Mar 2011 12:29:05 +0000 (12:29 +0000)] 
[forcedeth] Clear the MII link status register on link status changes

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[console] Try to avoid problems caused by keycode 86
Michael Brown [Wed, 16 Mar 2011 21:31:16 +0000 (21:31 +0000)] 
[console] Try to avoid problems caused by keycode 86

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>
14 years ago[uri] Avoid unused variable warning in gcc 4.6
Michael Brown [Wed, 16 Mar 2011 20:21:08 +0000 (20:21 +0000)] 
[uri] Avoid unused variable warning in gcc 4.6

Reported-by: Ralph Giles <giles@thaumas.net>
Tested-by: Ralph Giles <giles@thaumas.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[qib7322] Avoid unused variable warning in gcc 4.6
Michael Brown [Wed, 16 Mar 2011 20:19:54 +0000 (20:19 +0000)] 
[qib7322] Avoid unused variable warning in gcc 4.6

Reported-by: Ralph Giles <giles@thaumas.net>
Tested-by: Ralph Giles <giles@thaumas.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[hermon] Avoid unused variable warning in gcc 4.6
Michael Brown [Wed, 16 Mar 2011 20:16:45 +0000 (20:16 +0000)] 
[hermon] Avoid unused variable warning in gcc 4.6

Reported-by: Ralph Giles <giles@thaumas.net>
Tested-by: Ralph Giles <giles@thaumas.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[arbel] Avoid unused variable warning in gcc 4.6
Michael Brown [Wed, 16 Mar 2011 20:15:39 +0000 (20:15 +0000)] 
[arbel] Avoid unused variable warning in gcc 4.6

Reported-by: Ralph Giles <giles@thaumas.net>
Tested-by: Ralph Giles <giles@thaumas.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[vxge] Avoid unused variable warning in gcc 4.6
Michael Brown [Wed, 16 Mar 2011 19:57:38 +0000 (19:57 +0000)] 
[vxge] Avoid unused variable warning in gcc 4.6

Reported-by: Ralph Giles <giles@thaumas.net>
Tested-by: Ralph Giles <giles@thaumas.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[ath5k] Avoid unused variable warning in gcc 4.6
Michael Brown [Wed, 16 Mar 2011 19:54:52 +0000 (19:54 +0000)] 
[ath5k] Avoid unused variable warning in gcc 4.6

Reported-by: Ralph Giles <giles@thaumas.net>
Tested-by: Ralph Giles <giles@thaumas.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[eepro] Avoid unused variable warning in gcc 4.6
Michael Brown [Wed, 16 Mar 2011 19:51:02 +0000 (19:51 +0000)] 
[eepro] Avoid unused variable warning in gcc 4.6

From a cursory examination, it appears as though the calculation of
tx_available is redundant, since eepro_transmit() waits for transmit
completion before returning anyway.

Reported-by: Ralph Giles <giles@thaumas.net>
Tested-by: Ralph Giles <giles@thaumas.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[w89c840] Avoid unused variable warning in gcc 4.6
Michael Brown [Wed, 16 Mar 2011 19:24:29 +0000 (19:24 +0000)] 
[w89c840] Avoid unused variable warning in gcc 4.6

Reported-by: Ralph Giles <giles@thaumas.net>
Tested-by: Ralph Giles <giles@thaumas.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[smc9000] Avoid unused variable warning in gcc 4.6
Michael Brown [Wed, 16 Mar 2011 19:23:47 +0000 (19:23 +0000)] 
[smc9000] Avoid unused variable warning in gcc 4.6

Reported-by: Ralph Giles <giles@thaumas.net>
Tested-by: Ralph Giles <giles@thaumas.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[etherfabric] Avoid unused variable warning in gcc 4.6
Michael Brown [Wed, 16 Mar 2011 19:22:41 +0000 (19:22 +0000)] 
[etherfabric] Avoid unused variable warning in gcc 4.6

Reported-by: Ralph Giles <giles@thaumas.net>
Tested-by: Ralph Giles <giles@thaumas.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[sis190] Avoid unused variable warning in gcc 4.6
Michael Brown [Wed, 16 Mar 2011 19:21:39 +0000 (19:21 +0000)] 
[sis190] Avoid unused variable warning in gcc 4.6

Reported-by: Ralph Giles <giles@thaumas.net>
Tested-by: Ralph Giles <giles@thaumas.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[epic100] Avoid unused variable warning in gcc 4.6
Michael Brown [Wed, 16 Mar 2011 19:20:49 +0000 (19:20 +0000)] 
[epic100] Avoid unused variable warning in gcc 4.6

Reported-by: Ralph Giles <giles@thaumas.net>
Tested-by: Ralph Giles <giles@thaumas.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[sky2] Avoid unused variable warning in gcc 4.6
Michael Brown [Wed, 16 Mar 2011 19:19:36 +0000 (19:19 +0000)] 
[sky2] Avoid unused variable warning in gcc 4.6

Reported-by: Ralph Giles <giles@thaumas.net>
Tested-by: Ralph Giles <giles@thaumas.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[forcedeth] Avoid unused variable warning in gcc 4.6
Michael Brown [Wed, 16 Mar 2011 19:17:59 +0000 (19:17 +0000)] 
[forcedeth] Avoid unused variable warning in gcc 4.6

Reported-by: Ralph Giles <giles@thaumas.net>
Tested-by: Ralph Giles <giles@thaumas.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[ns83820] Update to standard debugging infrastructure
Michael Brown [Wed, 16 Mar 2011 19:15:31 +0000 (19:15 +0000)] 
[ns83820] Update to standard debugging infrastructure

Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[atl1e] Avoid unused variable warning in gcc 4.6
Michael Brown [Wed, 16 Mar 2011 19:08:16 +0000 (19:08 +0000)] 
[atl1e] Avoid unused variable warning in gcc 4.6

Reported-by: Ralph Giles <giles@thaumas.net>
Tested-by: Ralph Giles <giles@thaumas.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
14 years ago[via-velocity] Avoid unused variable warning in gcc 4.6
Michael Brown [Wed, 16 Mar 2011 19:05:53 +0000 (19:05 +0000)] 
[via-velocity] Avoid unused variable warning in gcc 4.6

Reported-by: Ralph Giles <giles@thaumas.net>
Tested-by: Ralph Giles <giles@thaumas.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>