[autoboot] Enable infrastructure to specify an autoboot device location

iPXE will currently attempt to boot from every network device for
which it has a driver.  Where a system has more than one network
device supported by iPXE, this renders BIOS IPL lists ineffective.

Allow an autoboot device location to be specified.  If such a location
is specified, then only devices matching that location will be used as
part of the automatic boot sequence.  If no such location is
specified, then all devices will be used.

Note that this does not affect the "autoboot" command, which will
continue to use all devices.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Modified-by: Michael Brown <mcb30@ipxe.org>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Alex Williamson
2014-02-25 16:00:23 -07:00
committed by Michael Brown
parent 27d1b40ee9
commit 123bae9d93
2 changed files with 29 additions and 18 deletions

View File

@@ -10,6 +10,7 @@
FILE_LICENCE ( GPL2_OR_LATER );
#include <ipxe/in.h>
#include <ipxe/device.h>
struct net_device;
struct uri;
struct settings;
@@ -25,12 +26,13 @@ enum uriboot_flags {
URIBOOT_NO_SAN_BOOT | \
URIBOOT_NO_SAN_UNHOOK )
extern struct device_description autoboot_device;
extern int uriboot ( struct uri *filename, struct uri *root_path, int drive,
unsigned int flags );
extern struct uri *
fetch_next_server_and_filename ( struct settings *settings );
extern int netboot ( struct net_device *netdev );
extern int autoboot ( void );
extern void ipxe ( struct net_device *netdev );
extern int pxe_menu_boot ( struct net_device *netdev );