Kernel almost hangs when CONFIG_DRM_RADEON=y

Borislav Petkov bp at
Sat Aug 27 22:36:24 PDT 2011

On Sat, Aug 27, 2011 at 06:50:37PM -0400, Pavel Ivanov wrote:
> 2011/8/27 Michel Dänzer <michel at>:
> >> 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.



More information about the dri-devel mailing list