Bug 98798 - Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff
Summary: Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff
Status: RESOLVED NOTOURBUG
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/AMDgpu (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: xf86-video-ati maintainers
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-11-20 16:39 UTC by Matthias Nagel
Modified: 2017-11-27 17:18 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
dmesg | egrep -i -e 'amd|fb|drm|graphic' (6.75 KB, text/plain)
2016-11-20 16:39 UTC, Matthias Nagel
no flags Details
other amd|fb|drm|graphic (9.95 KB, text/plain)
2017-05-01 15:30 UTC, soyasi
no flags Details
possible fix (1.65 KB, patch)
2017-11-27 17:18 UTC, Alex Deucher
no flags Details | Splinter Review

Description Matthias Nagel 2016-11-20 16:39:24 UTC
Created attachment 128089 [details]
dmesg | egrep -i -e 'amd|fb|drm|graphic'

The driver reports

Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff

during initialization.
Comment 1 Alex Deucher 2016-11-21 14:25:06 UTC
This is a message from the pci subsystem, not the driver and it's harmless.  The driver is able to access the rom and load successfully.
Comment 2 Matthias Nagel 2016-11-21 20:10:38 UTC
If it is the pci subsystem where should I report the issue instead?
Comment 3 soyasi 2017-05-01 15:30:47 UTC
Created attachment 131169 [details]
other amd|fb|drm|graphic

the same problem or message from the pci subsystem.

System:    Host: linux Kernel: 4.11.0-rc8-2.g540c429-default x86_64 (64 bit gcc: 6.3.1)
           Desktop: KDE Plasma 5.9.5 (Qt 5.8.0) Distro: openSUSE Leap 42.2
Machine:   Device: desktop Mobo: ASUSTeK model: CROSSHAIR VI HERO v: Rev 1.xx UEFI: American Megatrends v: 1002 date: 03/24/2017
CPU:       Octa core AMD Ryzen 7 1700X Eight-Core (-HT-MCP-) cache: 4096 KB
           flags: (lm nx sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm) bmips: 54296
           clock speeds: max: 3400 MHz 1: 2200 MHz 2: 3400 MHz 3: 2200 MHz 4: 2200 MHz 5: 2200 MHz 6: 2200 MHz
           7: 2200 MHz 8: 2200 MHz 9: 3400 MHz 10: 2200 MHz 11: 2200 MHz 12: 2200 MHz 13: 2200 MHz 14: 2200 MHz
           15: 2200 MHz 16: 2200 MHz
Graphics:  Card: Advanced Micro Devices [AMD/ATI] Ellesmere [Polaris10] bus-ID: 29:00.0
           Display Server: X.org 1.18.3 drivers: modesetting,ati (unloaded: fbdev,vesa,radeon)
           tty size: 271x68 Advanced Data: N/A for root
Comment 4 fin4478 2017-10-09 06:48:12 UTC
The error message comes from the drivers/pci/rom.c file. A solution is to change dev_err to dev_info in the pci_get_rom_size function. Amd should manage to make this happen.
Comment 5 Joseph Olstad 2017-11-27 01:19:52 UTC
I also have this issue with Debian Stretch 
linux kernel 4.13.0-0.bpo.1-amd64

I upgraded to this kernel because the default kernel wouldn't give me dual screen mode , probably same issue.

my graphics card is a Radeon RX550 brand new just openned the box.
My previous R200 series works flawlessly, but the new one isn't.

Wish AMD would treat Linux first class like Intel does with their graphics drivers.


So if the answer is: "drivers/pci/rom.c file. A solution is to change dev_err to dev_info in the pci_get_rom_size function."

sounds like a recompile required.  C'mon, that's not resolved for me, it's resolved when the testing is done successfully, the code gets committed to source repo and the builds get it.
Comment 6 Joseph Olstad 2017-11-27 01:23:37 UTC
Originally trying to get dual screen to work on Debian Stretch kernel 4.9.x

Led me to kernel update , Debian Stretch with latest 4.13.x kernel
I didn't log the issue that 4.9.x had but maybe similar to 4.13.x
:see following:
dmesg | grep amdgpu

[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.13.0-0.bpo.1-amd64 root=UUID=551d61d5-886e-43dc-9cc8-0d5493d0514a ro quiet
[    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-4.13.0-0.bpo.1-amd64 root=UUID=551d61d5-886e-43dc-9cc8-0d5493d0514a ro quiet
[    3.460211] [drm] amdgpu kernel modesetting enabled.
[    3.502361] amdgpu 0000:01:00.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff
[    3.513075] amdgpu 0000:01:00.0: firmware: failed to load amdgpu/polaris12_mc.bin (-2)
[    3.513120] amdgpu 0000:01:00.0: Direct firmware load for amdgpu/polaris12_mc.bin failed with error -2
[    3.513122] mc: Failed to load firmware "amdgpu/polaris12_mc.bin"
[    3.513219] [drm:gmc_v8_0_sw_init [amdgpu]] *ERROR* Failed to load mc firmware!
[    3.513290] [drm:amdgpu_device_init [amdgpu]] *ERROR* sw_init of IP block <gmc_v8_0> failed -2
[    3.513330] amdgpu 0000:01:00.0: amdgpu_init failed
[    3.513369] amdgpu 0000:01:00.0: Fatal error during GPU init
Comment 7 Alex Deucher 2017-11-27 02:18:11 UTC
(In reply to Joseph Olstad from comment #6)
> Originally trying to get dual screen to work on Debian Stretch kernel 4.9.x
> 
> Led me to kernel update , Debian Stretch with latest 4.13.x kernel
> I didn't log the issue that 4.9.x had but maybe similar to 4.13.x
> :see following:
> dmesg | grep amdgpu
> 
> [    0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.13.0-0.bpo.1-amd64
> root=UUID=551d61d5-886e-43dc-9cc8-0d5493d0514a ro quiet
> [    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-4.13.0-0.bpo.1-amd64
> root=UUID=551d61d5-886e-43dc-9cc8-0d5493d0514a ro quiet
> [    3.460211] [drm] amdgpu kernel modesetting enabled.
> [    3.502361] amdgpu 0000:01:00.0: Invalid PCI ROM header signature:
> expecting 0xaa55, got 0xffff
> [    3.513075] amdgpu 0000:01:00.0: firmware: failed to load
> amdgpu/polaris12_mc.bin (-2)
> [    3.513120] amdgpu 0000:01:00.0: Direct firmware load for
> amdgpu/polaris12_mc.bin failed with error -2
> [    3.513122] mc: Failed to load firmware "amdgpu/polaris12_mc.bin"
> [    3.513219] [drm:gmc_v8_0_sw_init [amdgpu]] *ERROR* Failed to load mc
> firmware!
> [    3.513290] [drm:amdgpu_device_init [amdgpu]] *ERROR* sw_init of IP block
> <gmc_v8_0> failed -2
> [    3.513330] amdgpu 0000:01:00.0: amdgpu_init failed
> [    3.513369] amdgpu 0000:01:00.0: Fatal error during GPU init

It looks like the firmware is not available at driver load time.  If you are using an initrd, make sure the firmware is in the initrd.  If you have the driver compiled into the kernel, you need to build the firmware into the kernel as well.
Comment 8 Michel Dänzer 2017-11-27 10:21:57 UTC
Joseph, before the steps outlined by Alex, make sure the firmware-amd-graphics package from stretch-backports is installed.
Comment 9 Alex Deucher 2017-11-27 17:18:46 UTC
Created attachment 135739 [details] [review]
possible fix

The attached patch makes the change.  Whether the pci maintainers will accept it or not remains to be seen.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.