[Bug 205970] New: Xserver freezes on IA64 during start-up.
https://bugzilla.novell.com/show_bug.cgi?id=205970 Summary: Xserver freezes on IA64 during start-up. Product: SUSE LINUX 10.0 Version: unspecified Platform: IA64 OS/Version: SLES 10 Status: NEW Severity: Blocker Priority: P5 - None Component: X.Org AssignedTo: sndirsch@novell.com ReportedBy: eiichiro.oiwa.nm@hitachi.com QAContact: sndirsch@novell.com Test Machine Enviroment: Processor: Itanium2 (dual core) VGA: ATI ES1000 I couldn't start X Window system on our IA64 machine. On our IA64 machine, embedded VGA hasn't PCI ROM. However System BIOS includes Video BIOS and system BIOS copies the Video BIOS image to 0xC0000 in system RAM. Therefore, our machine is correct. Fortunately, Xorg is able to read the Video BIOS from the sysfs rom on x86 platform because x86 Linux kernel has pci_fixup_video. On the other hand, IA64 Linux kernel doesn't include pci_fixup_video. Unfortunately, in first step, Xorg program copies Video BIOS image from the sysfs rom and xf86ReadDomainMemroy function always returns the value of success regardless of rom-read failed. As a result, Xorg fall into unexpected infinite loop and VGA screen never appear. The other IA64 machine such as SGI altix is different from our memory map. And it is true that our integrated VGA device hasn't PCI ROM. And then, I am thinking that IA64 Linux kernel shouldn't have pci_fixup_video. Therefore, We need the following patch for SUSE LINUX 10. (Related bug reports are https://bugs.freedesktop.org/show_bug.cgi?id=2373 and https://bugs.freedesktop.org/show_bug.cgi?id=8221) --- bus.org/linuxPci.c 2006-08-29 18:41:22.000000000 +0900 +++ bus/linuxPci.c 2006-08-29 18:41:28.000000000 +0900 @@ -758,9 +758,9 @@ int xf86ReadDomainMemory(PCITAG Tag, ADDRESS Base, int Len, unsigned char *Buf) { unsigned char *ptr, *src; - ADDRESS offset; + ADDRESS offset, TmpBase; unsigned long size; - int len, pagemask = getpagesize() - 1; + int len, read_len, pagemask = getpagesize() - 1; unsigned int i, dom, bus, dev, func; unsigned int fd; @@ -779,6 +779,7 @@ xf86ReadDomainMemory(PCITAG Tag, ADDRESS * try to use it instead of reading it from /proc/bus/pci. */ if (((Base & 0xfffff) == 0xC0000) && (stat(file, &st) == 0)) { + TmpBase = Base; if ((fd = open(file, O_RDWR))) Base = 0x0; @@ -789,13 +790,21 @@ xf86ReadDomainMemory(PCITAG Tag, ADDRESS len = min(Len, st.st_size); /* copy the ROM until we hit Len, EOF or read error */ - for (; len && (size = read(fd, Buf, len)) > 0 ; Buf+=size, len-=size) + for (read_len = 0 ; len && (size = read(fd, Buf, len)) > 0 ; + Buf+=size, len-=size, read_len+=size) ; write(fd, "0", 2); close(fd); - return Len; + if (read_len != 0) + return Len; + + /* + * unable to retrieve all from the sysfs rom. We will try to copy */ + * the ROM from system BIOS. + */ + Base = TmpBase; } /* Ensure page boundaries */ -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=205970 eiichiro.oiwa.nm@hitachi.com changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P5 - None |P2 - High -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
Fortunately, Xorg is able to read the Video BIOS from the sysfs rom on x86 platform because x86 Linux kernel has pci_fixup_video. On the other hand, IA64 Linux kernel doesn't include pci_fixup_video. Do you mean the call of ValidatePci() in xf86Bus.c? We just updated our X.Org
https://bugzilla.novell.com/show_bug.cgi?id=205970 sndirsch@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mhopf@novell.com, eich@novell.com Status|NEW |NEEDINFO Info Provider| |eiichiro.oiwa.nm@hitachi.com ------- Comment #1 from sndirsch@novell.com 2006-09-17 22:18 MST ------- packges to no longer use this on all platforms to fix different issues. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=205970 ------- Comment #2 from eiichiro.oiwa.nm@hitachi.com 2006-09-18 21:34 MST ------- (In reply to comment #1)
Fortunately, Xorg is able to read the Video BIOS from the sysfs rom on x86 platform because x86 Linux kernel has pci_fixup_video. On the other hand, IA64 Linux kernel doesn't include pci_fixup_video. Do you mean the call of ValidatePci() in xf86Bus.c? We just updated our X.Org packges to no longer use this on all platforms to fix different issues.
No, I mean pci_fixup_video() in Linux kernel points to Video BIOS (0xC0000) copied from System BIOS as PCI ROM Video image. If Linux kernel doesn't call the pci_fixup_video() at system boot, the sysfs rom (/sys/devices/pci????:??/????:??:??.?/rom) is empty file. IA64 Linux kernel doesn't call the pci_fixup_video, because pci_fixup_video() doesn't exist in IA64 Linux kernel. On IA64 platform, as a result, if Video BIOS is integrated into System BIOS and VGA PCI ROM is empty, the sysfs rom is empty file. Video BIOS is normally integrated into System BIOS. Therefore, on many IA64 machines except in using extended VGA card, the sysfs rom is empty file and xf86ReadDomainMemory() cannot read correct Video BIOS. There is the call of xf86ReadDomainMemory() in int10/generic.c. We need this call during loading int10 module, and ATI video driver needs int10 module. Therefore, we need this patch for SUSE Linux10 on IA64 platform. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=205970 sndirsch@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |ASSIGNED Info Provider|eiichiro.oiwa.nm@hitachi.com| ------- Comment #3 from sndirsch@novell.com 2006-09-18 23:20 MST ------- Sorry, I didn't read carefully. Thanks for explanation. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=205970 sndirsch@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |NEEDINFO Info Provider| |eiichiro.oiwa.nm@hitachi.com ------- Comment #4 from sndirsch@novell.com 2006-09-18 23:27 MST ------- BTW, we never released SUSE LINUX 10.0 for IA64. Is this against our SLES10 (SUSE LINUX Enterprise Server 10) prodcut? -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=205970 ------- Comment #5 from eiichiro.oiwa.nm@hitachi.com 2006-09-18 23:41 MST ------- (In reply to comment #4)
BTW, we never released SUSE LINUX 10.0 for IA64. Is this against our SLES10 (SUSE LINUX Enterprise Server 10) prodcut?
I am sorry. This report is against SLES10 for IA64. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
participants (1)
-
bugzilla_noreply@novell.com