Kernel almost hangs when CONFIG_DRM_RADEON=y

Arnaud Lacombe lacombar at gmail.com
Mon Aug 29 09:10:45 PDT 2011


Hi,

On Mon, Aug 29, 2011 at 11:55 AM, Borislav Petkov <bp at alien8.de> wrote:
> On Mon, Aug 29, 2011 at 11:47:24AM -0400, David Airlie wrote:
>> > On Mon, Aug 29, 2011 at 09:48:22AM -0400, Alex Deucher wrote:
>> > > >> Should we make Kconfig pop up a dialog and ask for the
>> > > >> whereabouts of
>> > > >> these firmware thingies when you mark the driver =y?
>> > > >>
>> > > >> This all sounds like magic to me, having to know you need to add
>> > > >> to
>> > > >> EXTRA_FIRMWARE, having to know what file it needs etc.. For all
>> > > >> intents
>> > > >> and purposes =y just doesn't work and that's broken.
>> > > >
>> > > > Yep, you make a lot of sense. I had to fumble the build/reboot
>> > > > cycle a
>> > > > couple of times and do some code staring even to figure this out.
>> > > > In
>> > > > the end, I copied the whole radeon/ folder from David's firmware
>> > > > git
>> > > > repo into /lib/firmware and made radeon.ko =m again so that I
>> > > > don't have
>> > > > to add *.bin entries to CONFIG_EXTRA_FIRMWARE each time I'm
>> > > > building a
>> > > > kernel on a different machine.
>> > > >
>> > > > Besides, there was this other issue on lkml today where
>> > > > CONFIG_EXTRA_FIRMWARE can cause nconf to segfault when you
>> > > > overflow
>> > > > its length of 256 by trying to include a bunch of firmware *bin
>> > > > files:
>> > > > http://lkml.org/lkml/2011/8/29/86
>> > >
>> > > If you are going to build the ucode into your kernel you'll need to
>> > > pick the ones you want to include or increase the limit regardless
>> > > of
>> > > whether it's radeon ucode or ucode for some other chip. For a
>> > > particular card you only need the ones for that card (e.g.,
>> > > CEDAR_*.bin or REDWOOD_*.bin, etc.)
>> >
>> > Alex, Dave, yeah, that's all fine.
>> >
>> > The question Peter asked is, how to make this much more understandable
>> > to the user so that she/he doesn't have to figure it out on their own.
>> > IOW, if one sets RADEON to =y in Kconfig, it should automatically
>> > generate a selection menu with all the firmware required so that
>> > the user can select from it either the CEDAR* or the REDWOOD* (or
>> > the DOUGHNUT* :-)) ones for her/his card and when the user selects
>> > one entry, the required strings are added to CONFIG_EXTRA_FIRMWARE
>> > _automatically_.
>> >
>> > Maybe even Kbuild should try to find them on the system, and, if
>> > unable
>> > to, remind the user to install the needed firmware package.
>> >
>> > Anyway, something to that effect, the above is just to illustrate the
>> > intention, I don't know whether it would work. In any case, we're
>> > lacking user help there and we don't want to put every user through
>> > the process of finding which firmware files she/he needs when setting
>> > RADEON=y.
>> >
>> > Does that make more sense?
>>
>> Oh it makes sense, just neither of us are Kbuild hackers and I'm not sure that'll change at any point :)
>>
>> It also sounds like something that could apply to any driver with external firmware.
>
> So it seems like all the request_firmware() drivers could use a Kbuild
> functionality of some sort which presents the user with an option to
> select the firmware blobs for his hw when those drivers are =y. Hairy.
>
> Adding kbuild ML.
>
do you want something ala:

config EXTRA_FIRMWARE
    string
    default ""
    append "FOO" if BAR
    append "FOZ" if BAZ

or maybe a new type "list" which would behave as a comma/space separated value.

config EXTRA_FIRMWARE
    list "bla"
    append "FOO" if BAR
    append "FOZ" if BAZ

?

Thanks,
 - Arnaud

> --
> Regards/Gruss,
> Boris.
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>


More information about the dri-devel mailing list