diff options
author | Michael Brown <mcb30@ipxe.org> | 2021-07-26 15:42:00 +0100 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2021-07-26 15:47:47 +0100 |
commit | db6310c3e5948a327a1c6f5706f727fd6cd67c70 (patch) | |
tree | a657114850d193442b4d4cbcc7697575b6358a1f | |
parent | b33cc1efe33ecf55017bb4ca7e8355e7b9c6e50c (diff) | |
download | ipxe-db6310c3e5948a327a1c6f5706f727fd6cd67c70.tar.gz |
[efi] Use zero for PCI vendor/device IDs when no applicable ID exists
When building an EFI ROM image for which no PCI vendor/device ID is
applicable (e.g. bin-x86_64-efi/ipxe.efirom), the build process will
currently construct a command such as
./util/efirom -v -d -c bin-x86_64-efi/ipxe.efidrv \
bin-x86_64-efi/ipxe.efirom
which gets interpreted as a vendor ID of "-0xd" (i.e. 0xfff3, after
truncation to 16 bits).
Fix by using an explicit zero ID when no applicable ID exists, as is
already done when constructing BIOS ROM images.
Reported-by: Konstantin Aladyshev <aladyshev22@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
-rw-r--r-- | src/Makefile.efi | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/Makefile.efi b/src/Makefile.efi index 11e29dd58..bd479b3da 100644 --- a/src/Makefile.efi +++ b/src/Makefile.efi @@ -43,7 +43,8 @@ $(BIN)/%.drv.efi : $(BIN)/%.efidrv $(BIN)/%.efirom : $(BIN)/%.efidrv $(EFIROM) $(QM)$(ECHO) " [FINISH] $@" - $(Q)$(EFIROM) -v $(TGT_PCI_VENDOR) -d $(TGT_PCI_DEVICE) -c $< $@ + $(Q)$(EFIROM) -v $(firstword $(TGT_PCI_VENDOR) 0) \ + -d $(firstword $(TGT_PCI_DEVICE) 0) -c $< $@ $(BIN)/efidrv.cab : $(BIN)/alldrv.efis # $(ALL_drv.efi) is not yet defined $(QM)$(ECHO) " [CAB] $@" |