瀏覽代碼

[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>
tags/v1.20.1
Michael Brown 9 年之前
父節點
當前提交
ae01462b79
共有 2 個文件被更改,包括 3 次插入0 次删除
  1. 2
    0
      src/arch/i386/prefix/romprefix.S
  2. 1
    0
      src/config/general.h

+ 2
- 0
src/arch/i386/prefix/romprefix.S 查看文件

@@ -775,7 +775,9 @@ exec:	/* Set %ds = %cs */
775 775
 
776 776
 	/* Store PCI bus:dev.fn, if applicable */
777 777
 .ifeqs	BUSTYPE, "PCIR"
778
+#ifdef AUTOBOOT_ROM_FILTER
778 779
 	movw	%ax, autoboot_busdevfn
780
+#endif /* AUTOBOOT_ROM_FILTER */
779 781
 .endif
780 782
 
781 783
 	/* Call main() */

+ 1
- 0
src/config/general.h 查看文件

@@ -140,6 +140,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
140 140
  *
141 141
  */
142 142
 #undef	NONPNP_HOOK_INT19	/* Hook INT19 on non-PnP BIOSes */
143
+#define	AUTOBOOT_ROM_FILTER	/* Autoboot only devices matching our ROM */
143 144
 
144 145
 /*
145 146
  * Error message tables to include

Loading…
取消
儲存