Hi Michael, On Tue, Oct 6, 2009 at 9:16 PM, Michael Cree <mc...@orcon.net.nz> wrote: > 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 <mc...@orcon.net.nz> >>> 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.
Ahh! You're exactly right! Throught cgit.freedesktop.org I went to the server-1.5 branch and changed the commit id to the one you specified and it loaded... evidently this does _not_ mean it exists in the specified branch... > 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); Right here breaks it. Excellent catch. > } > > 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. I'm going to get my xserver repository working ASAP and get these patches in it. I'll respond when I've got it set up. Thanks! Matt _______________________________________________ xorg-devel mailing list xorg-devel@lists.x.org http://lists.x.org/mailman/listinfo/xorg-devel