Re: Kernel almost hangs when CONFIG_DRM_RADEON=y

From: Borislav Petkov
Date: Sun Aug 28 2011 - 01:38:19 EST


On Sat, Aug 27, 2011 at 06:50:37PM -0400, Pavel Ivanov wrote:
> 2011/8/27 Michel DÃnzer <michel@xxxxxxxxxxx>:
> >> I observe very strange behavior dependent on value of
> >> CONFIG_DRM_RADEON parameter. When it's set to m everything works very
> >> good, no problem. When I set it to y I see kernel hang during boot. Or
> >> I should better say it "almost hangs" because during last boot attempt
> >> I accidentally waited a little bit longer and saw that after more than
> >> a minute waiting system continued to boot. Dmesg after "hang" shows
> >> these messages:
> >>
> >> [ Â Â8.542639] [drm] Loading CEDAR Microcode
> >> [ Â 69.161605] r600_cp: Failed to load firmware "radeon/CEDAR_pfp.bin"
> >> [ Â 69.161670] [drm:evergreen_startup] *ERROR* Failed to load firmware!
> >>
> >> While during normal boot
> >>
> >> [ Â Â9.898870] [drm] Loading CEDAR Microcode
> >> [ Â Â9.908425] radeon 0000:05:00.0: WB enabled
> >
> > With CONFIG_DRM_RADEON=y, the microcode is needed before it can be
> > loaded from userspace, so it needs to be built into the kernel as well.
>
> How should I do that? I've tried to set all "m"s to "y" in .config and
> still saw this issue. Should I set some special parameter?

You need to add "radeon/CEDAR_pfp.bin" to CONFIG_EXTRA_FIRMWARE when you
configure your kernel and enable CONFIG_FIRMWARE_IN_KERNEL.

The radeon/CEDAR_pfp.bin file (+ leading directory, mind you) should
most probably be located in /lib/firmware or to whatever you have set
CONFIG_EXTRA_FIRMWARE_DIR so that Kbuild can find it (if not, you'll get
a warning at the end of the kernel build). This way, it works for both
radeon being =m and =y.

HTH.

--
Regards/Gruss,
Boris.
--
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/