This patch allows to set PCI vendor and device IDs using defines (PCI_VID and PCI_DID). Use it for vgabios.bin.
Signed-off-by: Gerd Hoffmann <kra...@redhat.com> --- Makefile | 4 ++-- vbe.c | 6 +++++- vgabios.c | 5 +++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index c3c744c..d440b93 100644 --- a/Makefile +++ b/Makefile @@ -31,8 +31,8 @@ VGA_FILES := vgabios.c vgabios.h vgafonts.h vgatables.h VBE_FILES := vbe.h vbe.c vbetables.h # build flags -vgabios.bin : VGAFLAGS := -DVBE -vgabios.debug.bin : VGAFLAGS := -DVBE -DDEBUG +vgabios.bin : VGAFLAGS := -DVBE -DPCI_VID=0x1234 +vgabios.debug.bin : VGAFLAGS := -DVBE -DPCI_VID=0x1234 -DDEBUG vgabios-cirrus.bin : VGAFLAGS := -DCIRRUS -DPCIBIOS vgabios-cirrus.debug.bin : VGAFLAGS := -DCIRRUS -DPCIBIOS -DCIRRUS_DEBUG diff --git a/vbe.c b/vbe.c index ecff90d..1fab2f9 100644 --- a/vbe.c +++ b/vbe.c @@ -925,7 +925,11 @@ Bit16u *AX;Bit16u CX; Bit16u ES;Bit16u DI; if (using_lfb) { info.NumberOfBanks = 1; } - lfb_addr = pci_get_lfb_addr(0x1234); // experimental vendor +#ifdef PCI_VID + lfb_addr = pci_get_lfb_addr(PCI_VID); +#else + lfb_addr = 0; +#endif if (lfb_addr > 0) { info.PhysBasePtr = ((Bit32u)lfb_addr << 16); } diff --git a/vgabios.c b/vgabios.c index ea3aae8..2e8b5d7 100644 --- a/vgabios.c +++ b/vgabios.c @@ -210,8 +210,13 @@ vgabios_pci_data: .word 0x1013 .word 0x00b8 // CLGD5446 #else +#ifdef PCI_VID +.word PCI_VID +.word PCI_DID +#else #error "Unknown PCI vendor and device id" #endif +#endif .word 0 // reserved .word 0x18 // dlen .byte 0 // revision -- 1.7.1