From: Julian Pidancet Date: Mon, 19 Dec 2011 05:07:55 +0000 (+0000) Subject: Add a PCI header to the VGA ROM if needed X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=seabios.git;a=commitdiff_plain;h=7c6509cb10417c38334d74c0dff8a3511f6d9c60 Add a PCI header to the VGA ROM if needed Allows the ROM to be extracted from a PCI device. V2: * Declare the PCI header in C * Replace #ifdef CONFIG_VGA_PCI with #if CONFIG_VGA_PCI == 1 Signed-off-by: Julian Pidancet --- diff --git a/vgasrc/vga.c b/vgasrc/vga.c index b515d1d..748ddd4 100644 --- a/vgasrc/vga.c +++ b/vgasrc/vga.c @@ -15,6 +15,8 @@ #include "biosvar.h" // GET_BDA #include "util.h" // memset #include "vgatables.h" // find_vga_entry +#include "optionroms.h" // struct pci_data +#include "config.h" // CONFIG_* // XXX #define CONFIG_VGA_BOCHS 0 @@ -26,6 +28,21 @@ #define SET_VGA(var, val) SET_FARVAR(get_global_seg(), (var), (val)) +/**************************************************************** + * PCI Data + ****************************************************************/ +#if CONFIG_VGA_PCI == 1 +struct pci_data rom_pci_data VAR16VISIBLE = { + .signature = PCI_ROM_SIGNATURE, + .vendor = CONFIG_VGA_VID, + .device = CONFIG_VGA_DID, + .dlen = 0x18, + .class_hi = 0x300, + .irevision = 1, + .type = PCIROM_CODETYPE_X86, + .indicator = 0x80, +}; +#endif /**************************************************************** * Helper functions diff --git a/vgasrc/vgaentry.S b/vgasrc/vgaentry.S index fbfa9f7..2dc07c1 100644 --- a/vgasrc/vgaentry.S +++ b/vgasrc/vgaentry.S @@ -12,6 +12,7 @@ .code16gcc #include "vgaccode.16.s" +#include "config.h" // CONFIG_* #include "entryfuncs.S" // ENTRY_* @@ -30,7 +31,15 @@ _rom_header_entry: _rom_header_checksum: .byte 0 _rom_header_other: - .space 21 + .space 17 +_rom_header_pcidata: +#if CONFIG_VGA_PCI == 1 + .word rom_pci_data +#else + .word 0 +#endif +_rom_header_pnpdata: + .word 0 /****************************************************************