Browse Source

[undi] Try matching UNDI ROMs in BIOS enumeration order

When searching for an UNDI ROM to match against a PCI device, search
in order of increasing ROM address (within the 128kB BIOS option ROM
area).  This is likely (though not guaranteed) to match the order of
the original enumeration performed by the BIOS, which is in turn
likely to match the order of enumeration on the PCI bus.

Since we load at most one UNDI ROM, the net result is that we increase
our chances of loading the ROM corresponding to the selected PCI
device (rather than loading a ROM corresponding to a higher-numbered
PCI device with the same vendor and device IDs.)

Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown 8 years ago
parent
commit
e09331a4c6
1 changed files with 1 additions and 1 deletions
  1. 1
    1
      src/arch/x86/drivers/net/undirom.c

+ 1
- 1
src/arch/x86/drivers/net/undirom.c View File

168
 
168
 
169
 	/* Add to UNDI ROM list and return */
169
 	/* Add to UNDI ROM list and return */
170
 	DBGC ( undirom, "UNDIROM %p registered\n", undirom );
170
 	DBGC ( undirom, "UNDIROM %p registered\n", undirom );
171
-	list_add ( &undirom->list, &undiroms );
171
+	list_add_tail ( &undirom->list, &undiroms );
172
 	return 0;
172
 	return 0;
173
 
173
 
174
  err:
174
  err:

Loading…
Cancel
Save