Fatal crash on X startup on Ultra 10

Bug #56427 reported by John Cooper
10
Affects Status Importance Assigned to Milestone
X.Org X server
Fix Released
High
xorg-server (Debian)
Fix Released
Unknown
xorg-server (Ubuntu)
Fix Released
Medium
Unassigned

Bug Description

I have an sun sparc Ultra 10 with an ATI 3D Rage Pro 215GP (rev 5c) and I can install Ubuntu server no probs but when I try to install X the box locks up hard, keyboad and network all stopped.

I can't get any useful logs out as it does not get a chance to write them to disk before it crashes!

Revision history for this message
In , DaveM (davem) wrote :

The code in hw/xfree86/os-support/bus/sparcPci.c:simbaCheckBus()
is trying to mimmick VGA routing by disabling I/O space responses
behind the Simba PCI-PCI controller.

Unfortunately, doing this also happens to disable access to the
IDE controller I/O space registers, thus crashing the system. The
granularity of the I/O disabling in the Simba controller is not
fine enough to disable VGA without also disabling the IDE controller
registers.

What usually happens is that the SIMBA code disables the I/O range,
and the first module to get loaded afterwards which isn't already in
system ram goes out to disk which hangs. We get no console
messages because the console has been put into framebuffer mode
by the X server already.

This took a painfully long time to track down and debug.

In my opinion this Simba code should be just removed outright.
It cannot work properly without also disabling access to critical
system devices, such as the IDE controller.

The code tries to disable I/O space by clearing the lowest
bit of the APB_IO_ADDRESS_MAP register. The effect of this
is to disable the first 2MB of I/O space behind that bridge,
and it's extremely likely that other critical devices will be
sitting in that region, and thus be disabled too.

Bit 0 of this register controls I/O space in the range
0 --> ((1 << 21) - 1), bit 1 controls I/O space in the
range (1 << 21) --> ((2 << 21) - 1), etc.

Revision history for this message
In , Frans Pop (elendil) wrote :

I can confirm this bug.

I have also experienced severe data loss from this bug as on two separate
occasions the partition table on a IDE harddisk (first time hda, second time
hdc) had disappeared!

After the first time I reinstalled the system on hda and the disk showed no
problems during or after the install. I have yet to resurrect hdc.

It would be great if this issue could be given a bit more attention than it
seems to have been given so far.

I have checked and my system (a Sparc Ultra 10) does have the SIMBA Advanced
PCI Bridge.

Revision history for this message
In , Jurij Smakov (jurij) wrote :

As David pointed out, the code in question is very problematic with practically
no added benefit, and can occasionally lead to serious data loss. We have
disabled this code in Debian's X.org packages by applying the patch which I will
attach to the report; nobody has complained so far. I'm taking the liberty to
bump the severity of this bug a notch, in the hope that somebody will care
enough to apply it (or propose an alternative solution).

--
Jurij Smakov
Debian SPARC port maintainer

Revision history for this message
In , Jurij Smakov (jurij) wrote :

Created an attachment (id=7701)
Patch to disable Simba PCI bridge routing code

Revision history for this message
Marc Luethi (netztier) wrote :

Similar on my U5, it's just that X.org won't start.

See Thread from Ubuntu Forums:

http://www.ubuntuforums.org/showthread.php?t=307406

This might be related to

Bug #392312 on bugs.debian.org: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=392312

respectively

Bug #8020 of bugs.freedesktop.org: https://bugs.freedesktop.org/show_bug.cgi?id=8020,

where David S. Miller writes:
"[...] The code in hw/xfree86/os-support/bus/sparcPci.c:simbaCheckBus() is trying to mimmick VGA routing by disabling I/O space responses behind the Simba PCI-PCI controller. [...]"

http://kristof.willen.be/?q=node/689 proposes a workaround, which basically is to get the fixed binaries out of Debian's xserver-xorg-core package and to replace the ubuntu ones in /usr/bin.

Can't help but researching here, I have no clue about programming and package building...

regards

Marc

Revision history for this message
Marc Luethi (netztier) wrote :

There's a workaround:

Replacing /usr/bin/Xorg with the one from Debian Testing's package xserver-xorg-core makes X.org work without further changes to any other file.

Revision history for this message
In , Daniel Stone (daniels) wrote :

Sorry about the phenomenal bug spam, guys. Adding xorg-team@ to the QA contact so bugs don't get lost in future.

Timo Aaltonen (tjaalton)
Changed in xserver-xorg-video-ati:
importance: Undecided → Medium
status: Unconfirmed → Confirmed
Changed in xorg-server:
status: Unknown → Fix Released
Changed in xorg-server:
status: Unknown → Confirmed
Revision history for this message
Will Clark (will-vex) wrote :

bug 103605 shows as a DUP of this bug, but I believe that is incorrect, since the symptom is totally different. On edgy and feisty I get a xf86MapPciMem error (inappropriate ioctl for device) but the system does not hang. With edgy the above work-around did fix the problem, but on feisty this work-around fails.

Revision history for this message
Bas van Ritbergen (ritbit) wrote :

I Agree this is not the same thing as the one described in the fix for edgy.
On my feisty systems I get :

Fatal server error:
xf86MapPciMem: Could not mmap PCI memory [base=0xe2000000,hostbase=0xe2000000,size=2000] (Inappropriate ioctl for device)

lspci shows me:
01:02.0 VGA compatible controller: ATI Technologies Inc 3D Rage Pro 215GP (rev 5c)

And in my xorg.conf I got:
Section "Device"
    Identifier "ATI Technologies, Inc. 3D Rage Pro 215GP"
    Driver "ati"
    BusID "PCI:1:2:0"
    Option "UseFBDev" "true"
    Option "ReferenceClock" "28.636 Mhz"
EndSection

If more details are required please let me know.

Revision history for this message
In , Mhopf-suse (mhopf-suse) wrote :

Committed. git ebaa6c920c82401952a0ccc991b94574306449bd

Changed in xorg-server:
status: Confirmed → Fix Released
Revision history for this message
Bryce Harrington (bryce) wrote :

Debian bug 307406 is marked as fixed with xserver 1.3, which is now in Gutsy.
I'm going to go ahead and assume this to be the case and close the bug, but if someone could test it on gutsy at some point, then please reopen if it still occurs.

Changed in xorg-server:
status: Confirmed → Fix Released
Revision history for this message
Bryce Harrington (bryce) wrote :

Btw, I unlinked the two dupes of this bug, since as others reported, the symptoms of those bugs are very different from this one.

Revision history for this message
kingcharles1666 (kingcharles1666) wrote :

Well, I tested on my Ultra 10 with gutsy and the xserver 1.3 but still the same error:

Fatal server error:
xf86MapPciMem: Could not mmap PCI memory [base=0xe2000000,hostbase=0xe2000000,size=2000] (Inappropriate ioctl for device)

But the machine is not crashed and with ALT+F2 I can log in (CLI only of course)
So the hard lock/crash may be gone but the xserver problem is still there :-(

Revision history for this message
Bryce Harrington (bryce) wrote :

Thanks for confirming the lock/crash is gone. I see you've opened bug 93041 on the server error message, so we can track that issue there.

Changed in xorg-server:
importance: Unknown → High
Changed in xorg-server:
importance: High → Unknown
Changed in xorg-server:
importance: Unknown → High
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.