Bug 57831

Summary: radeon fatal error during GPU init (Radeon 5850, KVM GPU passthrough)
Product: Drivers Reporter: Luke-Jr (luke-jr+linuxbugs)
Component: Video(DRI - non Intel)Assignee: drivers_video-dri
Status: RESOLVED INVALID    
Severity: normal CC: alexdeucher
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.9.0 Subsystem:
Regression: No Bisected commit-id:

Description Luke-Jr 2013-05-09 03:16:40 UTC
Booting on a KVM instance tested to work fine with fglrx:
[    3.771157] [drm] Initialized drm 1.1.0 20060810
[    4.006077] [drm] radeon kernel modesetting enabled.
[    4.006350] ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 11
[    4.006714] [drm] initializing kernel modesetting (CYPRESS 0x1002:0x6899 0x1458:0x21E4).
[    4.006723] [drm] register mmio base: 0xFEB80000
[    4.006724] [drm] register mmio size: 131072
[    4.006785] radeon 0000:00:05.0: Expecting atombios for evergreen GPU
[    4.006786] radeon 0000:00:05.0: Fatal error during GPU init
[    4.006789] [drm] radeon: finishing device.
[    4.006792] [TTM] Memory type 2 has not been initialized
[    4.008077] radeon: probe of 0000:00:05.0 failed with error -22
Comment 1 Alex Deucher 2013-05-09 13:17:59 UTC
You need to make sure the VM has access to the PCI rom.
Comment 2 Luke-Jr 2013-05-09 20:47:30 UTC
I guess I assumed that the hardware end should be working fine since fglrx works. Is needing the PCI ROM something unique to the free drivers?
Comment 3 Alex Deucher 2013-05-09 21:01:41 UTC
No both drivers need the vbios image.  The closed driver either gets the vbios via some alternative means or it has some sort of fallback image if it can't find the actual vbios image.
Comment 4 Luke-Jr 2013-05-09 22:19:33 UTC
Confirmed both the fglrx and radeon systems are getting the Cirrus (emulated) VGA ROM instead of the Radeon ROM.

Is there a way I can override/provide the Radeon ROM to the driver as a workaround?
Comment 5 Alex Deucher 2013-05-09 22:32:47 UTC
You should be able to pass the existing pci rom resource through to the VM, but I'm not really a KVM expert.  Just about every graphics driver is going to need the vbios image so there is presumably a way.  Might want to ask on the KVM mailing lists.  These links may be useful:
http://www.linux-kvm.org/page/VGA_device_assignment
http://thread.gmane.org/gmane.comp.emulators.kvm.devel/71981
This isn't really a driver bug.  I think this bug can be closed.
Comment 6 Luke-Jr 2013-05-09 22:52:11 UTC
For the workaround, I meant the driver ignoring the vbios ROM, and instead loading it from a firmware file. ;)
Comment 7 Alex Deucher 2013-05-09 23:06:32 UTC
That's not something I'd like to support in the driver.  If you can't get the vbios, you probably have bigger problems.
Comment 8 Luke-Jr 2013-05-09 23:16:03 UTC
Well, like I said... this works fine with fglrx, so I'd guess the VBIOS is the only issue.

Seems qemu is mixing up the VBIOS for the two video cards (emulated Cirrus + passthrough Radeon) - the first 64K of the virtualized Radeon's rom is that of the Cirrus, but the 2nd 64K is correct.