Author: duwe Date: 2008-01-06 02:10:54 +0100 (Sun, 06 Jan 2008) New Revision: 3034
Modified: trunk/LinuxBIOSv2/src/config/Options.lb trunk/LinuxBIOSv2/src/devices/Config.lb trunk/LinuxBIOSv2/src/devices/pci_device.c Log: Since a VGA console and the need to run any option ROMs are rather independent, lift the implicit (broken) assumption that CONSOLE_VGA would also run the ROMs, and transfer it to a new config option VGA_ROM_RUN.
This change is minimally intrusive, because all board configs that previously assumed CONSOLE_VGA would also run the ROMs didn't compile, they had to also specify PCI_ROM_RUN.
Based on patches by Ron Minnich (fix the compile) and Luc Verhaegen (separate ROM_RUN from VGA console).
Signed-off-by: Torsten Duwe duwe@lst.de Acked-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net Acked-by: Luc Verhaegen libv@skynet.be
Modified: trunk/LinuxBIOSv2/src/config/Options.lb =================================================================== --- trunk/LinuxBIOSv2/src/config/Options.lb 2008-01-04 17:22:44 UTC (rev 3033) +++ trunk/LinuxBIOSv2/src/config/Options.lb 2008-01-06 01:10:54 UTC (rev 3034) @@ -415,7 +415,7 @@ define CONFIG_CONSOLE_VGA default 0 export always - comment "Log messages to VGA" + comment "Log messages to any VGA-compatible device (may require *_ROM_RUN to bring up)" end define CONFIG_CONSOLE_VGA_MULTI default 0 @@ -1027,10 +1027,16 @@ comment "CPU hardware address lines num, for AMD K8 could be 40, and AMD family 10 could be 48" end
+define CONFIG_VGA_ROM_RUN + default 0 + export always + comment "Init x86 ROMs on VGA-class PCI devices" +end + define CONFIG_PCI_ROM_RUN default 0 export always - comment "Init PCI device option rom" + comment "Init x86 ROMs on all PCI devices" end
define CONFIG_PCI_64BIT_PREF_MEM
Modified: trunk/LinuxBIOSv2/src/devices/Config.lb =================================================================== --- trunk/LinuxBIOSv2/src/devices/Config.lb 2008-01-04 17:22:44 UTC (rev 3033) +++ trunk/LinuxBIOSv2/src/devices/Config.lb 2008-01-06 01:10:54 UTC (rev 3034) @@ -1,4 +1,5 @@ uses CONFIG_PCI_ROM_RUN +uses CONFIG_VGA_ROM_RUN object device.o object root_device.o object device_util.o @@ -15,4 +16,9 @@ if CONFIG_PCI_ROM_RUN object pci_rom.o dir emulator +else +if CONFIG_VGA_ROM_RUN + object pci_rom.o + dir emulator end +end
Modified: trunk/LinuxBIOSv2/src/devices/pci_device.c =================================================================== --- trunk/LinuxBIOSv2/src/devices/pci_device.c 2008-01-04 17:22:44 UTC (rev 3033) +++ trunk/LinuxBIOSv2/src/devices/pci_device.c 2008-01-06 01:10:54 UTC (rev 3034) @@ -643,16 +643,14 @@ ((device & 0xffff) << 16) | (vendor & 0xffff)); }
+/** default handler: only runs the relevant pci bios. */ void pci_dev_init(struct device *dev) { -#if CONFIG_CONSOLE_VGA == 1 - extern int vga_inited; -#endif -#if CONFIG_PCI_ROM_RUN == 1 || CONFIG_CONSOLE_VGA == 1 +#if CONFIG_PCI_ROM_RUN == 1 || CONFIG_VGA_ROM_RUN == 1 struct rom_header *rom, *ram;
#if CONFIG_PCI_ROM_RUN != 1 - /* We want to execute VGA option ROMs when CONFIG_CONSOLE_VGA + /* We want to execute VGA option ROMs when CONFIG_VGA_ROM_RUN * is set but CONFIG_PCI_ROM_RUN is not. In this case we skip * all other option ROM types. */ @@ -671,14 +669,13 @@ run_bios(dev, ram);
#if CONFIG_CONSOLE_VGA == 1 - /* vga_inited is a trigger of the VGA console code. - * - * Only set it if we enabled VGA console, and if we - * just initialized a VGA card. - */ - vga_inited|=dev->class==PCI_CLASS_DISPLAY_VGA; -#endif -#endif + /* vga_inited is a trigger of the VGA console code. */ + if (dev->class == PCI_CLASS_DISPLAY_VGA) { + extern int vga_inited; + vga_inited = 1; + } +#endif /* CONFIG_CONSOLE_VGA */ +#endif /* CONFIG_PCI_ROM_RUN || CONFIG_VGA_ROM_RUN */ }
/** Default device operation for PCI devices */