xf86-video-geode: driver initialization fails on Geode LX if DDC pins are configured for serial console

Bug #873942 reported by Rudolf Leitgeb on 2011-10-14
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
X.Org X server
Unknown
Medium
xserver-xorg-video-geode (Debian)
New
Unknown
xserver-xorg-video-geode (Fedora)
Won't Fix
Medium
xserver-xorg-video-geode (Ubuntu)
Undecided
Unassigned

Bug Description

I have a pITX Kontron board which I want to install linux on. None of the live CDs provided by Xubuntu so far has booted into graphical due to an X server crash. In the attached files I (hopefully) provide necessary details to help you track down the problem.

ProblemType: Bug
DistroRelease: Ubuntu 11.10
Package: xserver-xorg 1:7.6+7ubuntu7
ProcVersionSignature: Ubuntu 3.0.0-12.20-generic 3.0.4
Uname: Linux 3.0.0-12-generic i586
ApportVersion: 1.23-0ubuntu3
Architecture: i386
CasperVersion: 1.287
Date: Fri Oct 14 08:05:31 2011
LiveMediaBuild: Xubuntu 11.10 "Oneiric Ocelot" - Release i386 (20111012)
ProcEnviron:
 SHELL=/bin/bash
 LANG=en_US.UTF-8
SourcePackage: xorg
UpgradeStatus: No upgrade log present (probably fresh install)

Since the RANDR1.2 port in xf86-video-geode-2.11 the driver crashes on X.org startup immediately if the firmware has set up the DDC/UART muxed GPIO to serial port (UART) mode.

Before there was code made to detect the GPIO mode and not do any DDC queries if it is in serial port mode. But while that checking still exists and the fact that it is in UART mode gets reported in Xorg.0.log, DDC calls are still made through RANDR impementation vfunc regardless of that, and Xorg crashes on the results that gets to in UART mode.

This bug is the primary reason 2.11 is not packaged in Gentoo Linux yet, as it breaks things for my own geode platform development :(

A workaround is Option "NoDDC" in xorg.conf. Probably just need to add some checks in the right place of the randr1.2 interface implementation to not call into EDID xserver code when we have figured out we are in serial mode.
(and 2.11 series has been packaged in gentoo for quite a long while now)

Does this bug still apply to Geode 2.11.9 or not?

Created attachment 453267
Xorg.0.log for geode on Fit-PC1

X crashes on startup

kernel-2.6.35.6-39.fc14.i686
xorg-x11-drv-geode-2.11.9-1.fc14.i686
xorg-x11-server-common-1.9.0-13.fc14.i686
xorg-x11-server-utils-7.4-19.fc14.i686
xorg-x11-server-Xorg-1.9.0-13.fc14.i686

Nothing X related in dmesg

AMD might be willing to fix this, since this involves a standard Geode feature, but additional details might need to be provided to this bug report.

One solution could be to make our driver bit-bang the GPIO into DDC mode, early in the driver startup pahse, to ensure that DDC probing will always work.

The crash only happens on LX hardware.

LX hardware happens to be the majority of what's left of the Geode market.

Created attachment 473799
Crash on xorg-x11-drv-geode-2.11.11-2.fc14

Still the same crash on 2.11.11

This should help diagnosis:

# yum install gdb xorg-x11-drv-geode-debuginfo
# gdb X

At gdb prompt:

run

Should give a more informative backtrace

Rudolf Leitgeb (rudolf-leitgeb) wrote :
Rudolf Leitgeb (rudolf-leitgeb) wrote :
Rudolf Leitgeb (rudolf-leitgeb) wrote :
Rudolf Leitgeb (rudolf-leitgeb) wrote :

I just checked the Ubuntu live DVD (instead of Xubuntu) and get the exact same behavior. I attached the output of lspci in hopes that this helps track down the source of the problem.

bugbot (bugbot) on 2011-10-15
tags: added: xubuntu
Bryce Harrington (bryce) on 2011-10-28
affects: xorg (Ubuntu) → xserver-xorg-video-geode (Ubuntu)
Martin-Éric Racine (q-funk) wrote :

The issue is caused by the BIOS settings which configured the video output's DDC pins as a serial console. This makes monitor probing fail. The only cure is to specify the desired resolution in /etc/X11/xorg.conf

summary: - Xubuntu LiveCD won't boot into graphical mode with AMD Geode LX
+ xf86-video-geode: driver initialization fails on Geode LX if DDC pins
+ are configured for serial console
Changed in xserver-xorg-video-geode (Ubuntu):
status: New → Triaged
Changed in xserver-xorg-video-geode (Debian):
status: Unknown → New
Changed in xorg-server:
importance: Unknown → Medium
status: Unknown → Confirmed

I don't see anything obviously related to this in the package changelog, so I'm going to assume it's still an issue in rawhide. Is it?

I think so, I'll be upgrading the FitPC to F-17 in the coming week so I'll confirm the status then

This bug appears to have been reported against 'rawhide' during the Fedora 19 development cycle.
Changing version to '19'.

(As we did not run this process for some time, it could affect also pre-Fedora 19 development
cycle bugs. We are very sorry. It will help us with cleanup during Fedora 19 End Of Life. Thank you.)

More information and reason for this action is here:
https://fedoraproject.org/wiki/BugZappers/HouseKeeping/Fedora19

I have two still widely used US-made POS machines with this Geode LX chip.
At least one of them actually makes use of the multiplexed DDC/UART2 gpio line for the serial connected touchscreen. If/when the KMS driver gets included in the kernel, can we have a way to use both DDC control and UART2? E.g. switching to DDC only momentarily while initializing the Geode video and allow the UART2 most of the time?

Created attachment 120261
Possible fix

A bit lower brow than the proposal to always get DDC working.

Thanks for the patch.

This does a fair job of avoiding an explicit crash whenever DDC is unavailable.

When that happens, restricting available modes to those that AMD considers safe i.e. Panel-friendly modes, is indeed a promising strategy.

However, that strategy doesn't guarantee that the selected mode is something that the connected VGA monitor can handle. It's a shot in the dark and the mode we try, 1920x1440, is a large enough size (and an uncommon enough resolution) that we cannot consider that shot in the dark to be a safe one.

Thinking out loud, 800x600, 1024x768 or 1280x1024 would probably be safer modes to attempt whenever DDC is unavailable, pretty much in that order.

Created attachment 121450
Improved fix

You're right. The panel resolution would usually be too big for an external display. This new patch picks the largest mode mentioned in xorg.conf if anything is there. Otherwise it uses those three modes with a preference for 800x600.

Changed in xserver-xorg-video-geode (Fedora):
importance: Unknown → Medium
status: Unknown → Won't Fix

-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/driver/xf86-video-geode/issues/2.

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

Other bug subscribers

Remote bug watches

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