summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2010-05-06 10:21:47 +0200
committerGerd Hoffmann <kraxel@redhat.com>2010-06-18 12:13:23 +0200
commitbb44e12f7b1b7ccd040c58ddb0e8cdaf2f9f5a67 (patch)
tree89a1baa06c8e52b9c6c0309a56d9b59958f488cb
parent4daf1128d4bb2c7e30b0c2f3d279c8fa5759bb39 (diff)
Add defines for PCI IDs.
This patch allows to set PCI vendor and device IDs using defines (PCI_VID and PCI_DID). Use it for vgabios.bin.
-rw-r--r--Makefile4
-rw-r--r--vbe.c6
-rw-r--r--vgabios.c5
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