Bug 58731

Summary: radeon_uvd: Can't load firmware "radeon/RV710_uvd.bin"
Product: Drivers Reporter: Stuart Foster (smf-linux)
Component: Video(DRI - non Intel)Assignee: drivers_video-dri
Status: RESOLVED INVALID    
Severity: normal CC: adam, christian.koenig
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.10.0-rc2 Subsystem:
Regression: No Bisected commit-id:
Attachments: dmesg output and other supporting information

Description Stuart Foster 2013-05-23 21:52:48 UTC
Created attachment 102361 [details]
dmesg output and other supporting information

[AMD/ATI] RV710 [Radeon HD 4350/4550] on M5A97 PRO and AMD Phenom(tm) II X6 1100T Processor (16Gbyte RAM) fails to load RV710_uvd.bin at boot. I have found that "request_firmware" call is returning -2 (ENOENT) though the correct file is available in /lib/firmware/radeon. On further investigation this appears to stem from "assign_firmware_buf" not having a buffer available (buf->size=0). I have attached an instrumented dmesg (lines tagged with SMF), lspci and /lib/firmware/radion listings for information. I am assuming that this video card should support the UVD functionality.
Please advise.

regards

Stuart Foster
Comment 1 Christian König 2013-05-24 08:05:10 UTC
This isn't a bug, but a configuration error.

You compile the radeon module directly into the kernel, but don't include the RV710_uvd.bin firmware into your kernel image. See CONFIG_EXTRA_FIRMWARE in your kernel configuration for details.

Regards,
Christian.
Comment 2 Stuart Foster 2013-05-24 09:12:01 UTC
(In reply to comment #1)
> This isn't a bug, but a configuration error.
> 
> You compile the radeon module directly into the kernel, but don't include the
> RV710_uvd.bin firmware into your kernel image. See CONFIG_EXTRA_FIRMWARE in
> your kernel configuration for details.
> 
> Regards,
> Christian.

Christian,

Thanks for the info, that has got me passed the firmware loading stage, I am still a little confused has to the criterion for including firmware in the kernel image, for example in this case radeon/R700_rlc.bin and radeon/RV710_uvd.bin seem to be a "must include" where as   radeon/RV710_pfp.bin and radeon/RV710_me.bin seem to be happy loaded from the file system at boot time. Obviously early in the boot sequence there are less resources to perform things like file loading but to me it seems some what arbitrary, the documentation suggest to me that within certain constraints it is a developers choice. What is your view ?

Thanks

Stuart Foster
Comment 3 Christian König 2013-05-24 09:31:53 UTC
No idea why your kernel ends up like it does, but the firmware isn't loaded from the harddisk.

The RV710_me.bin and RV710_pfp.bin are definitely inside your kernel image, take a look at your dmesg the disk is initialized why after the radeon module.

Looks like your distribution does something to get the RV710_me.bin and RV710_pfp.bin into the kernel, otherwise I can't explain what happens here.

Christian.
Comment 4 Stuart Foster 2013-05-24 09:43:18 UTC
On 05/24/13 10:31, bugzilla-daemon@bugzilla.kernel.org wrote:
> https://bugzilla.kernel.org/show_bug.cgi?id=58731
>
>
>
>
>
> --- Comment #3 from Christian König <christian.koenig@amd.com>  2013-05-24
> 09:31:53 ---
> No idea why your kernel ends up like it does, but the firmware isn't loaded
> from the harddisk.
>
> The RV710_me.bin and RV710_pfp.bin are definitely inside your kernel image,
> take a look at your dmesg the disk is initialized why after the radeon
> module.
>
> Looks like your distribution does something to get the RV710_me.bin and
> RV710_pfp.bin into the kernel, otherwise I can't explain what happens here.
>
> Christian.
>
Christian,

Ok its a mystery, I will dig deeper later, there are more interesting 
things to look at in the mean time.

thanks again.

Stuart Foster
Comment 5 Adam J. Richter 2013-07-16 02:49:32 UTC
Please try remaking your initial ramdisk.