Bugzilla: PCI resource address mismatch



Ben Kibbey reported that vesafb has stopped working for him for kernels newer than
2.6.12. His display is completely blanked. After a long debugging session, we noted
that the address of resource 0 of his VGA controller as reported by lspci does not
match what is reported by the BIOS.

More details:

In the working kernel (2.6.12.x), vesafb correctly ioremap's the framebuffer memory
located at 0xff000000. lspci reports the same thing:

PCI: Using IRQ router SIS [1039/0008] at 0000:00:01.0
PCI: Cannot allocate resource region 9 of bridge 0000:00:02.0
...
vesafb: framebuffer at 0xff000000, mapped to 0xc4080000, using 1875k, total 8192k
vesafb: mode is 800x600x16, linelength=1600, pages=7
vesafb: protected mode interface info at c7bd:0000
vesafb: scrolling: redraw
vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
Console: switching to colour frame buffer device 100x37
fb0: VESA VGA frame buffer device

0000:01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 530/620
PCI/AGP VGA Display Adapter (rev a2) (prog-if 00 [VGA])
Subsystem: Silicon Integrated Systems [SiS] SiS530,620 GUI Accelerator+3D
Flags: bus master, 66MHz, medium devsel, latency 32
Memory at ff000000 (32-bit, prefetchable) [size=8M]
Memory at e7ef0000 (32-bit, non-prefetchable) [size=64K]
I/O ports at cc00 [size=128]
Capabilities: <available only to root>

In the non-working kernel, his dmesg has this:

PCI: Using IRQ router SIS [1039/0008] at 0000:00:01.0
PCI: Cannot allocate resource region 9 of bridge 0000:00:02.0
PCI: Cannot allocate resource region 0 of device 0000:01:00.0
PCI: Ignore bogus resource 6 [0:0] of 0000:01:00.0
...
vesafb: framebuffer at 0xff000000, mapped to 0xc4080000, using 1875k, total
8192k
vesafb: mode is 800x600x16, linelength=1600, pages=7
vesafb: protected mode interface info at c7bd:0000
vesafb: pmi: set display start = c00c7c25, set palette = c00c7c99
vesafb: scrolling: ywrap using protected mode interface, yres_virtual=1200
vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
vesafb: Mode is VGA compatible
Console: switching to colour frame buffer device 100x37
fb0: VESA VGA frame buffer device

Note the message "Cannot allocate resource region 0 of device 0000:01:00.0"
This is the framebuffer memory of his VGA controller.

His lspci reports:

0000:01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS]
530/620 PCI/AGP VGA Display Adapter (rev a2) (prog-if 00 [VGA])
Subsystem: Silicon Integrated Systems [SiS] SiS530,620 GUI Accelerator+3D
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping-
SERR- FastB2B-
Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
Latency: 32 (500ns min)
Region 0: Memory at 10000000 (32-bit, prefetchable) [size=8M]
Region 1: Memory at e7ef0000 (32-bit, non-prefetchable) [size=64K]
Region 2: I/O ports at cc00 [size=128]
Capabilities: <available only to root>

In the non-working kernel, the addresses do not match:

"vesafb: framebuffer at 0xff000000"

vs

"Region 0: Memory at 10000000 (32-bit, prefetchable) [size=8M]"

He also tried hard-coding the address to 0x10000000 in vesafb.c, but he still
is not getting any display.

Any ideas?

Tony

PS: Please see http://bugzilla.kernel.org/show_bug.cgi?id=5769 for more details.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: vesa-framebuffer is not working
    ... I didn't notice any strange behaviour, ... "All of problem looks kernelloads vesafb in spite of it ... reports an error." ... So you may want to check if vesafb is loaded correctly after all. ...
    (Debian-User)
  • Problem with framebuffer in 2.6.0-test3
    ... If I compile with framebuffer I get weird results during boot. ... vesafb: framebuffer at 0xe6000000, mapped to 0xcf802000, size ... VGA16 VGA frame buffer device ... switching to colour frame buffer device 80x30 ...
    (Linux-Kernel)
  • Re: [RFC] Reliable video POSTing on resume (was: Re: [ACPI] Samsung P35, S3, black screen (radeon))
    ... > suspend vesafb ... > thaw and schedule vesaposter ... > wait for timer or vesaposter termination ... > - the kernel code won't be much more than two dozen lines ...
    (Linux-Kernel)
  • Re: 2.6.10-mm2
    ... vesafb into my kernel and booted and it works fine.. ... switching to colour frame buffer device 128x48 ... Linux agpgart interface v0.101 Dave Jones ... agpgart: Found an AGP 3.0 compliant device at 0000:00:00.0. ...
    (Linux-Kernel)
  • Boot-time loading of modules...
    ... I'm trying to figure out how boot-time loading of modules is ... I'm trying to keep vesafb from loading. ... stock 2.6.8-1-386 kernel from sarge. ... University of Waterlo ...
    (Debian-User)