Bug 34192 - (Mobility 7500) Early KMS start during boot leaves Software Rasterizer
Summary: (Mobility 7500) Early KMS start during boot leaves Software Rasterizer
Status: RESOLVED INVALID
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/Radeon (show other bugs)
Version: 7.6 (2010.12)
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: xf86-video-ati maintainers
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-02-11 12:54 UTC by Daniel
Modified: 2018-06-12 19:10 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
lspci -vvv (8.09 KB, text/plain)
2011-02-11 12:54 UTC, Daniel
no flags Details
less kernel.log | grep drm (21.67 KB, text/plain)
2011-02-11 12:57 UTC, Daniel
no flags Details
Xorg.0.log (49.86 KB, text/plain)
2011-03-01 09:02 UTC, Daniel
no flags Details
dmesg (32.25 KB, text/plain)
2011-03-04 05:58 UTC, Daniel
no flags Details

Description Daniel 2011-02-11 12:54:20 UTC
Created attachment 43265 [details]
lspci -vvv

I'm using this wiki page to enable KMS:
https://wiki.archlinux.org/index.php/Ati#Kernel_mode-setting_.28KMS.29

When using the "late KMS start" hardware rasterizer is started well.

But upon enabling the "early KMS start" (radeon is built into kernel), I'm left with software rastering.

I'm using Arch Linux (i686), fully up to date:
Kernel-2.6.37
xorg 11R7.0-1
xorg-server 1.9.4

Had already opened a bug here:
https://bugs.freedesktop.org//show_bug.cgi?id=27663
But I think a new one is better!
Comment 1 Daniel 2011-02-11 12:57:12 UTC
Created attachment 43266 [details]
less kernel.log | grep drm
Comment 2 Alex Deucher 2011-02-11 16:20:26 UTC
If you build radeon into your kernel, you need to build the firmware into the kernel as well or you will get delays in boot while the kernel searched for the firmware and no accel due to the lack of firmware.
Comment 3 Oldrich Jedlicka 2011-02-12 08:54:20 UTC
Just an example. I have this in my kernel config in order to have the driver working:

CONFIG_FW_LOADER=y
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE="radeon/R600_rlc.bin radeon/R700_rlc.bin"
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"

You might need different firmware files compiled in-kernel depending on your chipset (I don't know exactly what you need).
Comment 4 Daniel 2011-03-01 09:00:45 UTC
Thank you for your help!

My card is a Radeon Mobility 7500. According to the DRI wiki it is a rv200 based card. 
In the kernel, I didn't find any according firmware (in /lib/firmware/radeon). But I did compile a kernel with this options:

CONFIG_FW_LOADER=y
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE="radeon/R100_cp.bin radeon/R200_cp.bin"
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware/"

When booting that kernel, I still have software rasterizer:

$ glxinfo | grep render
direct rendering: Yes
OpenGL renderer string: Gallium 0.4 on softpipe



Part of kernel.log:

$ dmesg | grep radeon
Linux version 2.6.37-radeon (doehni@firefly) (gcc version 4.5.2 20110127 (prerelease) (GCC) ) #1 SMP PREEMPT Sun Feb 27 21:40:56 CET 2011
Kernel command line: root=/dev/hda2 resume=/dev/hda5 radeon.modeset=1 vga=0x342 ro
radeonfb 0000:01:05.0: power state changed by ACPI to D0
radeonfb 0000:01:05.0: power state changed by ACPI to D0
radeonfb 0000:01:05.0: PCI INT A -> Link[LNK0] -> GSI 10 (level, low) -> IRQ 10
radeonfb: Retrieved PLL infos from BIOS
radeonfb: Reference=14.32 MHz (RefDiv=31) Memory=183.00 Mhz, System=133.00 MHz
radeonfb: PLL min 12000 max 35000
radeonfb: Monitor 1 type LCD found
radeonfb: Monitor 2 type no found
radeonfb: panel ID string: Samsung LTN150P1-L02    
radeonfb: detected LVDS panel size from BIOS: 1400x1050
radeondb: BIOS provided dividers will be used
radeonfb: Dynamic Clock Power Management enabled
radeonfb (0000:01:05.0): ATI Radeon 4337 "C7"
[drm] radeon kernel modesetting enabled.

And part of Xorg.0.log:

[    47.459] (EE) RADEON(0): [dri] RADEONDRIGetVersion failed to open the DRM
...
[    48.896] (WW) RADEON(0): Direct rendering disabled
Comment 5 Daniel 2011-03-01 09:02:03 UTC
Created attachment 43972 [details]
Xorg.0.log
Comment 6 Michel Dänzer 2011-03-01 09:06:36 UTC
(In reply to comment #4)
> CONFIG_EXTRA_FIRMWARE="radeon/R100_cp.bin radeon/R200_cp.bin"

Confusingly, the RV200 is an R100 family GPU.


> radeonfb 0000:01:05.0: power state changed by ACPI to D0

radeonfb conflicts with radeon KMS. Disable it.
Comment 7 Daniel 2011-03-03 07:16:02 UTC
Still no direct rendering.

I recompiled the kernel without radeonfb:
$ less .config | grep RADEON
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_KMS=y
# CONFIG_FB_RADEON is not set


$ dmesg | grep radeon
Linux version 2.6.37-radeon (doehni@firefly) (gcc version 4.5.2 20110127 (prerelease) (GCC) ) #2 SMP PREEMPT Tue Mar 1 22:25:44 CET 2011
Kernel command line: root=/dev/hda2 resume=/dev/hda5 radeon.modeset=1 vga=0x342 ro
[drm] radeon kernel modesetting enabled.
fb: conflicting fb hw usage radeondrmfb vs VESA VGA - removing generic driver
radeon 0000:01:05.0: power state changed by ACPI to D0
radeon 0000:01:05.0: power state changed by ACPI to D0
radeon 0000:01:05.0: PCI INT A -> Link[LNK0] -> GSI 10 (level, low) -> IRQ 10
[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19
radeon 0000:01:05.0: VRAM: 64M 0x000000001C000000 - 0x000000001FFFFFFF (64M used)
radeon 0000:01:05.0: GTT: 512M 0x0000000020000000 - 0x000000003FFFFFFF
[drm] radeon: irq initialized.
[drm] radeon: 64M of VRAM memory ready
[drm] radeon: 512M of GTT memory ready.
radeon 0000:01:05.0: WB enabled
[drm] radeon: ring at 0x0000000020001000
[drm:r100_ring_test] *ERROR* radeon: ring test failed (sracth(0x15E4)=0xCAFEDEAD)
[drm:r100_cp_init] *ERROR* radeon: cp isn't working (-22).
radeon 0000:01:05.0: failled initializing CP (-22).
radeon 0000:01:05.0: Disabling GPU acceleration
[drm] radeon: cp finalized
fb0: radeondrmfb frame buffer device
[drm] Initialized radeon 2.7.0 20080528 for 0000:01:05.0 on minor 0

And Xorg.0.log:
[    47.578] (WW) RADEON(0): Direct rendering disabled
Comment 8 Michel Dänzer 2011-03-04 01:54:04 UTC
(In reply to comment #7)
> [drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19

What does

 grep AGP .config

say?

If the radeon kernel module is loaded from the initrd, that might be missing the ati-agp kernel module.

If that's not it, there might be more output related to this failure in dmesg, can you attach the whole thing?

Does booting with radeon.agpmode=-1 work around the problem?
Comment 9 Daniel 2011-03-04 05:57:53 UTC
$ grep AGP .config
CONFIG_AGP=y
CONFIG_AGP_ALI=m
CONFIG_AGP_ATI=m
CONFIG_AGP_AMD=m
CONFIG_AGP_AMD64=m
# CONFIG_AGP_INTEL is not set
# CONFIG_AGP_NVIDIA is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_SWORKS is not set
# CONFIG_AGP_VIA is not set
# CONFIG_AGP_EFFICEON is not set

Should I compile with CONFIG_AGP_ATI=y?

>Does booting with radeon.agpmode=-1 work around the problem?
This doesn't work.

dmesg output following.
Comment 10 Daniel 2011-03-04 05:58:32 UTC
Created attachment 44118 [details]
dmesg
Comment 11 Michel Dänzer 2011-03-04 06:25:32 UTC
(In reply to comment #9)
> Should I compile with CONFIG_AGP_ATI=y?

If that helps, the problem is probably that the ati-agp kernel module is missing from the initrd or wherever the radeon kernel module is getting loaded from.
Comment 12 Daniel 2011-03-04 16:34:29 UTC
It works! :)

$ glxinfo | grep render
direct rendering: Yes
OpenGL renderer string: Mesa DRI R100 (RS200 4337) 20090101 x86/MMX/SSE2 NO-TCL DRI2

That are the kernel configuations that are working for me:

CONFIG_FW_LOADER=y
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE="radeon/R100_cp.bin radeon/R200_cp.bin"
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware/"
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_KMS=y
# CONFIG_FB_RADEON is not set
CONFIG_AGP_ATI=y


Thank you all for your nice and fast help! :)
Comment 13 Adam Jackson 2018-06-12 19:10:39 UTC
Mass closure: This bug has been untouched for more than six years, and is not
obviously still valid. Please reopen this bug or file a new report if you continue to experience issues with current releases.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.