[Bug 16264] New: rhdAtomGetTables: No AtomBios signature found for second card
http://bugs.freedesktop.org/show_bug.cgi?id=16264 Summary: rhdAtomGetTables: No AtomBios signature found for second card Product: xorg Version: git Platform: x86-64 (AMD64) OS/Version: Linux (All) Status: NEW Severity: normal Priority: medium Component: Driver/radeonhd AssignedTo: lverhaegen@suse.de ReportedBy: bartlebooth@telenet.be QAContact: xorg-team@lists.x.org Created an attachment (id=16982) --> (http://bugs.freedesktop.org/attachment.cgi?id=16982) xorg configuration file I have a AMD64 with two pci-e graphics cards : Sapphire ATI HD 2600 XT Sapphire ATI HD 2600 Pro I'm running Fedora 9. Configuration of the second card fails. I tried without HPD option, with HPD swap, and HPD off, but the same result in any case. I uploaded the Xorg.0.log file, and the xorg.conf file. The xorg.conf contains a line about livna installation, but this driver has been removed before trying the radeonhd driver. Is there a workaround ? -- Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. _______________________________________________ xorg-team mailing list xorg-team@lists.x.org http://lists.x.org/mailman/listinfo/xorg-team -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org
http://bugs.freedesktop.org/show_bug.cgi?id=16264
--- Comment #1 from Bart
http://bugs.freedesktop.org/show_bug.cgi?id=16264
Egbert Eich
http://bugs.freedesktop.org/show_bug.cgi?id=16264
--- Comment #3 from Egbert Eich
http://bugs.freedesktop.org/show_bug.cgi?id=16264
--- Comment #4 from Bart
http://bugs.freedesktop.org/show_bug.cgi?id=16264
Egbert Eich
http://bugs.freedesktop.org/show_bug.cgi?id=16264
Wayne Whitney
http://bugs.freedesktop.org/show_bug.cgi?id=16264
--- Comment #7 from Wayne Whitney
http://bugs.freedesktop.org/show_bug.cgi?id=16264
--- Comment #8 from Wayne Whitney
http://bugs.freedesktop.org/show_bug.cgi?id=16264
--- Comment #9 from Wayne Whitney
http://bugs.freedesktop.org/show_bug.cgi?id=16264
--- Comment #10 from Wayne Whitney
http://bugs.freedesktop.org/show_bug.cgi?id=16264
--- Comment #11 from Wayne Whitney
http://bugs.freedesktop.org/show_bug.cgi?id=16264
Egbert Eich
The suggestion to boot with "pci=rom" and then to execute "echo 1 > /sys/bus/pci/devices/0000:02:00.0/rom" did not enable the expansion ROM, although I believe the address changed slightly.
I'm not sure why this isn't working for you. It is outside of the domain of X or the X driver, though.
When I try my default ServerLayout that attempts to use both cards, the second card fails to initialize with "rhdAtomGetTables: No AtomBios signature found". I will attach both the xorg.conf and the Xorg.log.
This indeed means that no ROM is found.
Now I read somewhere about some PCI configuration commands I don't really understand. So I tried executing "setpci -s 02:00.0 ROM_ADDRESS=fbdc0001;
This enables to ROM. It doesn't mean that you will be able to read it out.
setpci -s 02:00.0 COMMAND=3". This causes lspci to show the Expansion ROM as enabled. When I now try the dual card ServerLayout, the primary card now falis
Don't do this! This enables the card. Thus the Xserver will assume it's primary and won't POST it any more.
to initialize with "Cannot allocate 0 bytes of memory for BIOS image". The secondary card starts to initialize properly but ultimately fails with
rhd_mc.c:671: RHDRestoreMC: Assertion '(RHDRegRead(rhdPtr, D1CRTC_CONTROL) & 0x1) != 0x1' failed
Not sure why you are seeing this. It's probably due to a non-POSTed card.
I will attach the full Xorg.log for this attempt.
Lastly I tried running two separate instances of X, one for each card using ServerLayouts with the appropriate IsolateDevice options. The result without the setpci magic above was uninformative, each card responded the same as it did jointly. After executing the setpci magic, though, the response to the IsolateDevice layouts differed from the joint layout. X on the primary card worked fine. X on the secondary card found the ATOM BIOS rom this time, but then failed with "No Video RAM detected." Presumably this is because the card was not ever POSTed? I'll attach the Xorg.logs
That's what I also assume. I don't think what you see are driver issues. But in any case part of the PCI magic you did caused the second card to not be POSTed. Please retry and reopen in case there are still problems. -- Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. _______________________________________________ xorg-team mailing list xorg-team@lists.x.org http://lists.x.org/mailman/listinfo/xorg-team -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org
http://bugs.freedesktop.org/show_bug.cgi?id=16264
--- Comment #13 from Egbert Eich
http://bugs.freedesktop.org/show_bug.cgi?id=16264
Wayne Whitney
From a fresh boot, if I do the setpci commands and then try the patched radeonhd_drv with an xorg.conf containing active sections for both cards, then I am able to get both cards running together. This is the first time I've achieved that. However, if I exit X and then try the same thing again, it crashes. Looking at the log, it finds the wrong BIOS for the secondary card during the second execution. The first time X is run, the secondary card doesn't have its VRAM enabled, so the patch takes the correct path in rhdAtomInit(). But the second time X runs, the VRAM has already been enabled, so the legacy VBIOS path is taken for the secondary card, which causes radeonhd to find the BIOS for the primary card. That is presumably the root of the crash.
If I understand correctly the problem is to find the correct BIOS image for the card, and in particular to know when to use the legacy VBIOS path in rhdAtomInit(). As I understand it, the legacy VBIOS path should work for the boot video device, so the question is how to determine if we are dealing with the boot video device. Without the patch, rhdAtomInit() uses xf86IsEntityPrimary() to decide whether to check the legacy VBIOS path. According to http://www.x.org/archive/X11R6.8.1/doc/DESIGN9.html, this is the right thing to do: "This function returns TRUE if the entity referenced by entityIndex is the primary display device (i.e., the one initialised at boot time and used in text mode)". But in practice, sometimes the Xserver is uncertain (I get "(!!) More than one possible primary device found" in Xorg.log), and sometimes it is just wrong--when using IsolateDevice for a multi-seat setup (separate X processes driving each card individually), Xserver only sees one card and flags it as Primary. At least that is the behavior with the package xorg-x11-server-Xorg-1.5.2-10.fc10.x86_64. A couple questions: (1) Should I log a bug on xfIsEntityPrimary() against Xserver? I'm not sure if that interface ever worked, since I'm new to this. The reference I found is rather old. (2) Is there any other way to determine whether a card is the boot video device? (3) Some code could be added to verify that the BIOS image file found matches the card being configured, and if not rhdAtomInit() could keep looking. (4) Can we use /sys/bus/pci/devices/..../rom? Lastly let me say I don't know anything about libpciaccess or whatever problems its integration into Xorg has caused, so I may not have things straight here. Thanks, Wayne -- Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. _______________________________________________ xorg-team mailing list xorg-team@lists.x.org http://lists.x.org/mailman/listinfo/xorg-team -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org
http://bugs.freedesktop.org/show_bug.cgi?id=16264
Peter Hercek
http://bugs.freedesktop.org/show_bug.cgi?id=16264
--- Comment #16 from Sagi Ben-Akiva
From Xorg.0.log :
(II) RADEONHD(0): Unknown card detected: 0x94C1:0x1458:0x2190. If - and only if - your card does not work or does not work optimally please contact radeonhd@opensuse.org to help rectify this. Use the subject: 0x94C1:0x1458:0x2190: <name of board> and *please* describe the problems you are seeing in your message. (--) RADEONHD(0): Detected an RV610 on an unidentified card (II) RADEONHD(0): FUNCTION: rhdMapMMIO (II) RADEONHD(0): Mapped IO @ 0xf5000000 to 0x7f24169a8000 (size 0x00010000) (II) RADEONHD(0): PCIE Card Detected (II) RADEONHD(0): FUNCTION: RHDAtomBiosFunc (II) RADEONHD(0): FUNCTION: rhdAtomInit (II) RADEONHD(0): Getting BIOS copy from PCI ROM (II) RADEONHD(0): FUNCTION: rhdAtomGetTables (EE) RADEONHD(0): rhdAtomGetTables: No AtomBios signature found (II) RADEONHD(0): Query for AtomBIOS Init: failed (II) RADEONHD(0): FUNCTION: RHDAtomBiosFunc (**) RADEONHD(0): Call to Analog TV Default Mode failed (II) RADEONHD(0): FUNCTION: rhdGetVideoRamSize (II) RADEONHD(0): The detected amount of videoram exceeds the PCI BAR aperture. (II) RADEONHD(0): Using only 262144kB of the total 4194303kB. (--) RADEONHD(0): VideoRAM: 262144 kByte (II) RADEONHD(0): FUNCTION: RHDDRIPreInit (II) RADEONHD(0): Direct rendering turned off by default. Use Option "DRI" to enable. I found out that even if I run the following command : # echo 1 > /sys/bus/pci/devices/0000\:02\:00.0/rom X fails to run on the RV610 card, and I can't even 'cat' the content of the rom, but if I run the following commands : # echo 1 > /sys/bus/pci/devices/0000\:02\:00.0/enable # echo 1 > /sys/bus/pci/devices/0000\:02\:00.0/rom I am able to run X on the second card Sagi. -- Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. _______________________________________________ xorg-team mailing list xorg-team@lists.x.org http://lists.x.org/mailman/listinfo/xorg-team -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org
http://bugs.freedesktop.org/show_bug.cgi?id=16264
--- Comment #17 from Egbert Eich
but if I run the following commands : # echo 1 > /sys/bus/pci/devices/0000\:02\:00.0/enable # echo 1 > /sys/bus/pci/devices/0000\:02\:00.0/rom
I am able to run X on the second card
This is correct. The first one enables the card the second one enables reading from the ROM bar. Maybe libpciaccess should do this for us... -- Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. _______________________________________________ xorg-team mailing list xorg-team@lists.x.org http://lists.x.org/mailman/listinfo/xorg-team -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org
http://bugs.freedesktop.org/show_bug.cgi?id=16264
Michael Cree
but if I run the following commands : # echo 1 > /sys/bus/pci/devices/0000\:02\:00.0/enable # echo 1 > /sys/bus/pci/devices/0000\:02\:00.0/rom
I am able to run X on the second card
This is correct. The first one enables the card the second one enables reading from the ROM bar. Maybe libpciaccess should do this for us...
It does. Libpciaccess provides a function to enable the card and a function to copy the PCI ROM. Its routine to copy the PCI ROM enables the ROM, copies the ROM, then finishes up by disabling the ROM (as it should). The AtomBIOS init code, if it fails to get the BIOS at the legacy VBIOS position, calls rhdDoReadPCIBios() in rhd_driver.c to attempt a load from the PCI ROM. That calls the libpciaccess function to copy the PCI ROM (assuming compilation of radeonhd with libpciaccess). Since libpciacess does the enable and disable of the PCI ROM one shouldn't need to do it manually. I am not sure though if the libpciaccess PCI enable function is called - I am still looking through the radeonhd/xserver initialisation code to locate that. There may be other issues with reading the PCI ROM at kernel level. My kernel log, for example, contains: radeon 0000:01:00.0: Invalid ROM contents whenever the X server accesses the PCI ROM (or I do through a little utility I have written to access the ROM with libpciaccess). To see this message one must run the v. latest Linux kernel (2.6.29 release candidate). It's generated when the PCI ROM is detected by the kernel to have an invalid PCI ROM marker (0x55 0xAA as the first two bytes). I would be interested to know if anyone else is seeing such messages in the kernel logs (though probably unlikely since it requires a yet unreleased kernel!). Michael. -- Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. _______________________________________________ xorg-team mailing list xorg-team@lists.x.org http://lists.x.org/mailman/listinfo/xorg-team -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org
http://bugs.freedesktop.org/show_bug.cgi?id=16264
--- Comment #19 from Michael Cree
I am not sure though if the libpciaccess PCI enable function is called - I am still looking through the radeonhd/xserver initialisation code to locate that.
Nah. The radeonhd driver does not call pci_device_enable(). In contrast, the ati driver does call pci_device_enable(). I intend to write a patch, but want to first study and better understand the initialisation code of both the ati and radeonhd drivers. I suspect there are other issues involved. Michael. -- Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. _______________________________________________ xorg-team mailing list xorg-team@lists.x.org http://lists.x.org/mailman/listinfo/xorg-team -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org
http://bugs.freedesktop.org/show_bug.cgi?id=16264
--- Comment #20 from Wayne Whitney
https://bugs.freedesktop.org/show_bug.cgi?id=16264
--- Comment #21 from Jeremy Huddleston
https://bugs.freedesktop.org/show_bug.cgi?id=16264
Jeremy Huddleston
participants (1)
-
bugzilla-daemon@freedesktop.org