On 6/10/2009, at 12:28 PM, Michael Cree wrote:
> On 6/10/2009, at 11:16 AM, Matt Turner wrote:
>> On Sat, Oct 3, 2009 at 7:05 PM, Michael Cree <[email protected]>
>> wrote:
>>>
>>> With commit c7680befe5ae on the xserver 1.7 branch only support for
>>> Alphas
>>> with sparse I/O remains. I have already sent you and the list a
>>> patch that
>>> reenables the code path for Alphas with dense I/O mapping.
>>
>> I can't see anything in this commit that would break dense systems.
>> It
>> just removed Jensen support (which is a _third_ memory mapping model,
>> i.e., not the same as sparse or dense). This commit was present in
>> xserver-1.5, which I can confirm works on alpha, so I don't think
>> it's
>> got anything to do with the problems we've seen.
I can't find commit c7680befe5ae on the xserver-1.5-branch or in its
ancestral commits so I am a little confused as to why you say it is
present in xserver-1.5.
As part of the commit the functions xf86SlowBCopyFromBus() and
xf86SlowBCopyToBus() are modified, e.g., part of the commit is:
xf86SlowBCopyFromBus(unsigned char *src, unsigned char *dst, int
count)
{
- if (isJensen())
- {
- unsigned long addr;
- long result;
-
- addr = (unsigned long) src;
- while( count ){
- result = *(volatile int *) addr;
- result >>= ((addr>>SPARSE) & 3) * 8;
- *dst++ = (unsigned char) (0xffUL & result);
- addr += 1<<SPARSE;
- count--;
- outb(0x80, 0x00);
- }
+ unsigned long addr;
+ long result;
+
+ addr = (unsigned long) src;
+ while( count ){
+ result = *(volatile int *) addr;
+ result >>= ((addr>>SPARSE) & 3) * 8;
+ *dst++ = (unsigned char) (0xffUL & result);
+ addr += 1<<SPARSE;
+ count--;
+ outb(0x80, 0x00);
}
- else
- xf86SlowBcopy(src,dst,count);
}
The above not only removed the Jensen support but also removes the
dense path (the call to xf86SlowBcopy), thus leaving the sparse code
(since SPARSE is defined as 7 which is correct for sparse memory
mapping only).
It is possible that the commit elsewhere protects against
xf86SlowBCopyFromBus() being called at all on a dense memory mapped
system - I didn't thoroughly check the rest of the commit - but even
if so, somehow xf86SlowBCopyFromBus() is being called on dense memory
mapped systems on the xserver 1.6 branch and on the xserver 1.7 branch
and it results in a segmentation violation since the pointer addr is
incremented by a far too big a value.
> I should really test
> the SIS card with 1.5 to completely verify and eliminate any
> surprises. I haven't compiled the 1.5 xserver for quite a while and I
> think I have lost the list of proto/lib/etc versions that was required
> for it. Is there someway I can get all the proto and lib modules set
> to the correct versions for xserver 1.5 branch build efficiently?
OK, I have found that the xorg git supermodule has the versions of all
modules necessary for the xserver 1.5 branch. I will confirm within
the next day or two that the SIS video card and the Radeon HD2400 card
do indeed work on the xserver 1.5 branch.
Cheers
Michael.
_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel