We observed initialization failures on Xorg 6.9 and on closer inspection of the
log file it looked like PCI scanning was getting confused and mixing up IO
address ranges with a disabled ROM BAR on a SATA device. I tracked the problems
down to xf86GetOSOffsetFromPCI. I'm about to attach a patch that fixes our
issues. See the comments in the code for details. The patch is against Xorg 6.9,
but I believe it should still apply to CVS HEAD.
ATI Technologies Inc.
Created attachment 5044 [details] [review]
Fix various issues in xf86GetOSOffsetFromPCI
This fixes matching of IO BARs with less than 16-byte alignment. It also
ignores disabled BARS. These two problems together lead to problems where the
start and end address of the same IO BAR were matched by different BARS and
translated differently. The change of <= to < fixes a potential problem when
two BARS are immediately adjacent in address space. The base address of one BAR
may have been matched by a BAR immediately preceeding it.
Tentatively block Xorg 7.1 release tracker. I'd like my patch reviewed by
someone more competent than me (PCI spec, different platforms, especially Altix
that introduced the problem) before committing it.
Ping. Is anyone going to look at this before the Xorg 7.1 release?
This looks correct to me, I think. I'm doing a final round of testing today
with this included, so if it smokechecks I think it's good to include.
(In reply to comment #4)
> This looks correct to me, I think. I'm doing a final round of testing today
> with this included, so if it smokechecks I think it's good to include.
Thank you! I had already given up hope of seeing this in 7.1. :-)
works on everything i could test on. applied, thanks!
*** Bug 7799 has been marked as a duplicate of this bug. ***