LinuxBIOS information wrote:
The developer "stepan" checked in revision 2587 to
the LinuxBIOS source repository and caused the following changes:

Change Log:
This patch makes sure that VGA is initialized before it is used. Without
this fix, LinuxBIOS crashes if the CONSOLE_LOG_LEVEL is high enough.

Build Log:
Compilation of artecgroup:dbe61 has been broken
Compilation of technologic:ts5300 has been broken

The patch was wrong. It was taken from here:
http://www.linuxbios.org/pipermail/linuxbios/2007-February/018257.html
This patch does not initialize VGA when CONFIG_CONSOLE_VGA==0 and
CONFIG_PCI_ROM_RUN==1.

The patch should have been taken from here:
http://www.linuxbios.org/pipermail/linuxbios/2007-February/018284.html

The attached patch corrects the head revision.


I tried to build the broken compilations using the default procedure
"buildtarget && make -C <directory>" and I am confused:

1.
~/linuxbios/targets>./buildtarget technologic/ts5300/Config.lb && make
-C technologic/ts5300/technologic_ts5300
completes without an error for both r2586 and r2587 (dies looking for
the payload).
2.
~/linuxbios/targets>./buildtarget technologic/ts5300/Config-abuild.lb
gives
===> ERROR: Option __COMPRESSION__ undefined (missing use command?)
for both r2586 and r2587.

I conclude that it brakes for unrelated reasons.

Regargs,
Roman

This patch corrects r2587. It makes sure that the VGA is initialized
when CONFIG_CONSOLE_VGA==0 and CONFIG_PCI_ROM_RUN==1

Signed-off-by: Roman Kononov <[EMAIL PROTECTED]>

Index: src/devices/pci_rom.c
===================================================================
--- src/devices/pci_rom.c	(revision 2598)
+++ src/devices/pci_rom.c	(working copy)
@@ -62,10 +62,6 @@
 
 static void *pci_ram_image_start = (void *)PCI_RAM_IMAGE_START;
 
-#if CONFIG_CONSOLE_VGA == 1 && CONFIG_CONSOLE_VGA_MULTI == 0
-extern device_t vga_pri;	// the primary vga device, defined in device.c
-#endif
-
 struct rom_header *pci_rom_load(struct device *dev, struct rom_header *rom_header)
 {
 	struct pci_data * rom_data;
@@ -86,15 +82,14 @@
 	rom_size = rom_header->size * 512;
 
 	if (PCI_CLASS_DISPLAY_VGA == rom_data->class_hi) {
-#if CONFIG_CONSOLE_VGA == 1
-	#if CONFIG_CONSOLE_VGA_MULTI == 0
+#if CONFIG_CONSOLE_VGA == 1 && CONFIG_CONSOLE_VGA_MULTI == 0
+		extern device_t vga_pri;	// the primary vga device, defined in device.c
 		if (dev != vga_pri) return NULL; // only one VGA supported
-	#endif
+#endif
 		printk_debug("copying VGA ROM Image from 0x%x to 0x%x, 0x%x bytes\n",
 			    rom_header, PCI_VGA_RAM_IMAGE_START, rom_size);
 		memcpy(PCI_VGA_RAM_IMAGE_START, rom_header, rom_size);
 		return (struct rom_header *) (PCI_VGA_RAM_IMAGE_START);
-#endif
 	} else {
 		printk_debug("copying non-VGA ROM Image from 0x%x to 0x%x, 0x%x bytes\n",
 			    rom_header, pci_ram_image_start, rom_size);

-- 
linuxbios mailing list
linuxbios@linuxbios.org
http://www.linuxbios.org/mailman/listinfo/linuxbios

Reply via email to