Recent -current breaks XFree886 4.3 Radeon Auto-detection of Attached Monitors

From: Chuck McCrobie <mccrobie2000_at_yahoo.com>
Date: Mon, 5 May 2003 08:53:44 -0700 (PDT)
Hello,

It seems either -current or XFree86 has broken the
auto-detection of attached monitors for Radeon
Mobility chipsets.

I get an X server crash of:

----------- XServer crash

Program terminated with signal 6, Aborted.
Reading symbols from /usr/lib/libz.so.2...done.
Loaded symbols for /usr/lib/libz.so.2
Reading symbols from /usr/lib/libm.so.2...done.
Loaded symbols for /usr/lib/libm.so.2
Reading symbols from /usr/lib/libc.so.5...done.
Loaded symbols for /usr/lib/libc.so.5
Reading symbols from /usr/libexec/ld-elf.so.1...done.
Loaded symbols for /usr/libexec/ld-elf.so.1
#0  0x2829e393 in kill () from /usr/lib/libc.so.5
(gdb) bt
#0  0x2829e393 in kill () from /usr/lib/libc.so.5
#1  0x2830916c in abort () from /usr/lib/libc.so.5
#2  0x0806cc55 in ddxGiveUp () at xf86Init.c:1139
#3  0x0806cd28 in AbortDDX () at xf86Init.c:1190
#4  0x080ff054 in AbortServer () at utils.c:436
#5  0x08100bbe in FatalError (f=0x81ed0e0 "Caught
signal %d.  Server aborting\n") at utils.c:1392
#6  0x0808732e in xf86SigHandler (signo=11) at
xf86Events.c:1222
#7  <signal handler called>
#8  0x088dbcf1 in ?? ()
#9  0x088dc142 in ?? ()
#10 0x088e1b3d in ?? ()
#11 0x0806bbb7 in InitOutput (pScreenInfo=0x82462e0,
argc=1, argv=0xbfbffbd4) at xf86Init.c:540
#12 0x080df965 in main (argc=1, argv=0xbfbffbd4,
envp=0xbfbffbdc) at main.c:361
#13 0x0806af85 in _start ()

---------------

Frames 8, 9, and 10 are in the radeon_driver.c module.

I can run the XServer, get the crash, then
gdb> call LoaderPrintAddress(0x088dbcf1) (from Frame
8).  This produces, eventually,  RADEONMinBits+d69,
which is the line below:

1360:   (info->VBIOS && (INREG(RADEON_BIOS_4_SCRATCH)
& 4))) {

INREG is defined as:

radeon_macros.h:#define INREG(addr)        
MMIO_IN32(RADEONMMIO, addr)

and MMIO_IN32 is defined as:
xc/programs/Xserver/hw/xfree86/common/compiler.h:1714

#  define MMIO_IN32(base, offset) \
        *(volatile CARD32 *)(void *)(((CARD8*)(base))
+ (offset))

RADEON_BIOS_4_SCRATCH is defined as:  

radeon_reg.h:#define RADEON_BIOS_4_SCRATCH            
  0x0020

XFree86.0.log reports:

(--) RADEON(0): MMIO registers at 0xe8100000

---------------- dmesg output attached -------------

Specifically:

May  5 11:08:38 falcon kernel: agp0: <Intel 82845 host
to AGP bridge> mem 0xec000000-0xefffffff at device 0.0
on pci0
May  5 11:08:38 falcon kernel: pcib1: <ACPI PCI-PCI
bridge> at device 1.0 on pci0
May  5 11:08:38 falcon kernel: pci1: <ACPI PCI bus> on
pcib1
May  5 11:08:38 falcon kernel: pcib1: slot 0 INTA is
routed to irq 9
May  5 11:08:38 falcon kernel: drm0: <ATI Radeon LW
Mobility 7500 M7> port 0x3000-0x30ff mem
0xe8100000-0xe810ffff,0xf0000000-0xf7ff
ffff irq 9 at device 0.0 on pci1
May  5 11:08:38 falcon kernel: info: [drm] AGP at
0xec000000 64MB
May  5 11:08:38 falcon kernel: info: [drm] Initialized
radeon 1.8.0 20020828 on minor 0

----------

The radeon_driver.c does support the Screen option of:

Option "MonitorLayout" "LVDS, NONE"

If I use this, the auto-detection is skipped and the X
Server starts normally.

At this point, I assume this is some type of bus space
reference problem.  Unfortunately, the rest of the
driver seems to reference INREG successfully, etc.

Help is appreciated,

Chuck McCrobie
mccrobie2000_at_yahoo.com





__________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
http://search.yahoo.com
Received on Mon May 05 2003 - 06:53:45 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:06 UTC