Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[romprefix] Allow autoboot device filter to be disabled
Our current behaviour when booting as a ROM is to autoboot only from
devices which are attached via the PCI bus:dev.fn address passed to
the ROM's initialisation vector.

Add a build configuration option AUTOBOOT_ROM_FILTER (enabled by
default) to control this behaviour.  This allows for ROMs to be built
which will attempt to boot from any detected device, even if not
attached via the original PCI bus:dev.fn address.  (This is
particularly useful when building combined EHCI/xHCI ROMs for USB
network boot, since the BIOS may request a boot via the EHCI
controller but the xHCI driver will reroute the root hub ports to the
xHCI controller.)

Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
mcb30 committed Apr 13, 2015
1 parent 867e3ee commit ae01462
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/arch/i386/prefix/romprefix.S
Expand Up @@ -775,7 +775,9 @@ exec: /* Set %ds = %cs */

/* Store PCI bus:dev.fn, if applicable */
.ifeqs BUSTYPE, "PCIR"
#ifdef AUTOBOOT_ROM_FILTER
movw %ax, autoboot_busdevfn
#endif /* AUTOBOOT_ROM_FILTER */
.endif

/* Call main() */
Expand Down
1 change: 1 addition & 0 deletions src/config/general.h
Expand Up @@ -140,6 +140,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
*
*/
#undef NONPNP_HOOK_INT19 /* Hook INT19 on non-PnP BIOSes */
#define AUTOBOOT_ROM_FILTER /* Autoboot only devices matching our ROM */

/*
* Error message tables to include
Expand Down

0 comments on commit ae01462

Please sign in to comment.