On 5/7/10, Gerd Hoffmann <kra...@redhat.com> wrote: > 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
-DPCI_DID missing... > vgabios-cirrus.bin : VGAFLAGS := -DCIRRUS -DPCIBIOS > vgabios-cirrus.debug.bin : VGAFLAGS := -DCIRRUS -DPCIBIOS -DCIRRUS_DEBUG > > diff --git a/vbe.c b/vbe.c > index f925c35..f9a77f0 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 3b09c92..a575b7b 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 ... so this generates: .word 0x1234 .word PCI_DID I read only this patch, so sorry for the noise if I missed something. > +#else > #error "Unknown PCI vendor and device id" > #endif > +#endif > .word 0 // reserved > .word 0x18 // dlen > .byte 0 // revision > > -- > 1.6.6.1 > > > >