mirror of
https://github.com/xcat2/xNBA.git
synced 2024-11-22 17:41:55 +00:00
[romprefix] Allow .mrom image to be placed anywhere within the BAR
A .mrom image currently assumes that it is the first image within the expansion ROM BAR, which may not be correct when multiple images are present. Fix by scanning through the BAR until we locate an image matching our build ID. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
parent
9e8d431a0d
commit
b58374fe91
@ -154,6 +154,18 @@ find_mem_bar:
|
||||
movw $PCI_BAR_EXPROM, %di
|
||||
call pci_write_config_dword
|
||||
|
||||
/* Locate our ROM image */
|
||||
1: addr32 es cmpw $0xaa55, (%eax)
|
||||
stc
|
||||
jne 99f
|
||||
addr32 es cmpl $_build_id, build_id(%eax)
|
||||
je 2f
|
||||
addr32 es movzbl 2(%eax), %ecx
|
||||
shll $9, %ecx
|
||||
addl %ecx, %eax
|
||||
jmp 1b
|
||||
2:
|
||||
|
||||
/* Copy payload to buffer, or set buffer address to BAR address */
|
||||
testl %esi, %esi
|
||||
jz 1f
|
||||
|
Loading…
Reference in New Issue
Block a user