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
You need to make sure the VM has access to the PCI rom.
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?
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.
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?
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:
This isn't really a driver bug. I think this bug can be closed.
For the workaround, I meant the driver ignoring the vbios ROM, and instead loading it from a firmware file. ;)
That's not something I'd like to support in the driver. If you can't get the vbios, you probably have bigger problems.
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.