This should be fairly trivial to fix as pretty much all the problems you are describing are just endian related. I've CC'd the main Virge developer so he can try the following suggestions and give you perhaps a test driver to use.
For the Virge chipset, you will have to use the Big Endian aperture, the upper 32 megs of the MMIO space, for bswap registers you can set CR53 bits 2:1, where 01 is word swap, and 10 is dword swap. I believe this will set the LFB into big endian mode also, if not try CR54 1:0. CR61 will do data swapping (for images writes) bits 6:5 need to be set. Regarding the cursor, one will need to manually swap the data in LoadCursorImage since its apparent that the virge driver manually copies the image over. ani On Thu, 15 Aug 2002, Meelis Roos wrote: > (no answer from newbie list, asking from xpert now) > > I have a powermac 7300 with s3virge pci card (Formac GA6). The card has > F-code ROM so OpenFirmware recognizes and initializes it. I boot to > Linux (through macos), Linux sees it as a unknown 1024x768 openfirmware > framebuffer and it works OK in console. Linux 2.2.20 and 2.4.19 tested. > > Now I try to run X on it (latest 4.2.99 CVS - tried 4.1 also, no > difference). The screen comes up garbled - it has vertical stripes, > mouse cursor is a big square with random pattern, usually the lower 1/3 > of screen is just garbage where even mouse cursor is not shown (but it > flickers when moving mouse or scrolling text). When drawing windows > (xterm for example), some pixels are missing or garbled and scrolling > distorts all the image. Sometimes (maybe always) also the color palette > is wrong. Some letters are also flipped left-to-right in addition to > being garbled. > > 24-bit, 16-bit and 15-bit depth ar all the same; 8-bit depth does have > correct colors an no garbage in the lower third of the screen but mouse > cursor and fonts are still garbled. > > Using software cursor cures the cursor image but this is just one > detail. > > Has anybody run s3virge on powerpc successfully? Any hints to get it > running? I'm open to trying patches, patch ideas etc. > > Selected interesting lines from the log: > > (EE) S3VIRGE(0): Cannot read V_BIOS (5) > (II) S3VIRGE: driver (version 1.8.3) for S3 ViRGE chipsets: virge, 86C325, > virge vx, 86C988, virge dx, virge gx, 86C375, 86C385, virge gx2, > 86C357, virge mx, 86C260, virge mx+, 86C280, trio 3d, 86C365, > trio 3d/2x, 86C362, 86C368 > (--) Chipset virge found > (**) S3VIRGE(0): Depth 24, (--) framebuffer bpp 24 > (==) S3VIRGE(0): RGB weight 888 > (==) S3VIRGE(0): Default visual is TrueColor > (==) S3VIRGE(0): Using HW Cursor > (==) S3VIRGE(0): Using fb. > (==) S3VIRGE(0): mx_cr3a_fix. > (==) S3VIRGE(0): XVideo allowed (depends on chipset). > (II) S3VIRGE(0): initializing int10 > (EE) S3VIRGE(0): Cannot read V_BIOS (5) > (--) S3VIRGE(0): Chipset: "virge" > (II) S3VIRGE(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x0000 > (II) S3VIRGE(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x0000 > (--) S3VIRGE(0): No DDC signal > (II) S3VIRGE(0): I2C bus "I2C bus" initialized. > (II) S3VIRGE(0): I2C device "I2C bus:ddc2" registered at address 0xA0. > (II) S3VIRGE(0): I2C device "I2C bus:ddc2" removed. > (==) S3VIRGE(0): Using gamma correction (1.0, 1.0, 1.0) > (--) S3VIRGE(0): videoram: 4096k > (--) S3VIRGE(0): Detected current MCLK value of 79.943 MHz > (II) S3VIRGE(0): Monitor0: Using hsync range of 30.00-64.00 kHz > (II) S3VIRGE(0): Monitor0: Using vrefresh range of 50.00-120.00 Hz > (II) S3VIRGE(0): Clock range: 20.00 to 270.00 MHz > (--) S3VIRGE(0): Virtual size is 1280x1024 (pitch 1280) > (**) S3VIRGE(0): Default mode "1280x1024": 108.0 MHz, 64.0 kHz, 60.0 Hz > (==) Depth 24 pixmap format is 32 bpp > (II) do I need RAC? No, I don't. > (II) S3VIRGE(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x0000 > (II) S3VIRGE(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x0000 > (**) S3VIRGE(0): Using FB > (II) S3VIRGE(0): Using XFree86 Acceleration Architecture (XAA) > Screen to screen bit blits > Solid filled rectangles > 8x8 mono pattern filled rectangles > CPU to Screen color expansion > Solid Horizontal and Vertical Lines > Offscreen Pixmaps > Setting up tile and stipple cache: > 10 128x68 slots > (==) S3VIRGE(0): Backing store disabled > (==) S3VIRGE(0): Silken mouse enabled > (**) Option "dpms" > (**) S3VIRGE(0): DPMS enabled > > And from XF86Config: > > Section "Module" > Load "extmod" > Load "glx" > Load "dri" > Load "dbe" > Load "record" > Load "xtrap" > Load "speedo" > Load "type1" > EndSection > > Section "Monitor" > Identifier "Monitor0" > VendorName "Monitor Vendor" > ModelName "Monitor Model" > HorizSync 30-64 > VertRefresh 50-120 > Option "DPMS" > EndSection > > Section "Device" > Identifier "Card0" > Driver "s3virge" > VendorName "S3 Inc." > BoardName "86c325 [ViRGE]" > BusID "PCI:0:13:0" > EndSection > > Section "Screen" > Identifier "Screen0" > Device "Card0" > Monitor "Monitor0" > DefaultDepth 24 > SubSection "Display" > Depth 1 > EndSubSection > SubSection "Display" > Depth 4 > EndSubSection > SubSection "Display" > Depth 8 > EndSubSection > SubSection "Display" > Depth 15 > EndSubSection > SubSection "Display" > Depth 16 > EndSubSection > SubSection "Display" > Depth 24 > EndSubSection > EndSection > > -- > Meelis Roos ([EMAIL PROTECTED]) > > _______________________________________________ > Xpert mailing list > [EMAIL PROTECTED] > http://XFree86.Org/mailman/listinfo/xpert > _______________________________________________ Xpert mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/xpert
