home *** CD-ROM | disk | FTP | other *** search
/ CD Shareware Magazine 1996 December / CD_shareware_12-96.iso / DOS / Ut_sistm / 312FSVGA.ZIP / XFREE86 / LIB / X11 / DOC / README.CIR < prev    next >
Encoding:
Text File  |  1996-08-30  |  36.1 KB  |  861 lines

  1.   Information for Cirrus Chipset Users
  2.   Harm Hanemaayer (hhanemaa@cs.ruu.nl), Randy Hendry (randy@sgi.com),
  3.   Corin Anderson (corina@bdc.cirrus.com)
  4.   15 August 1996
  5.  
  6.   1.  Supported chipsets
  7.  
  8.   There are two different SVGA drivers for Cirrus chipsets, one called
  9.   ``cirrus'' and one called ``cl64xx''.  The ``cirrus'' driver is used
  10.   in the 256-color SVGA server (with acceleration) and the mono server
  11.   (without acceleration). The SVGA server supports 16 and 32 bits-per-
  12.   pixel truecolor modes on some configurations.  The ``cl64xx'' driver
  13.   is used in the 256-color SVGA, 16-color and mono servers.  Note that
  14.   except where stated otherwise, this document is referring to the
  15.   ``cirrus'' driver.  The following chipsets by Cirrus Logic are
  16.   supported:
  17.  
  18.      CL-GD5420
  19.         ISA SVGA chipset, 1Mbyte; maximum dot clock is 45 MHz (256 color
  20.         server). Acceleration with extended write modes (used for
  21.         scrolling and solid filling in this driver). This chipset can
  22.         not support 1024x768 non-interlaced in 256 colors.
  23.  
  24.      CL-GD5422
  25.         Enhanced version of the 5420 (32-bit internal memory interface).
  26.         Maximum dot clock is 80 MHz.
  27.  
  28.      CL-GD6205/6215/6225/6235
  29.         Laptop chipsets more or less compatible with the 5420. The only
  30.         dot clock supported is 25 MHz (more on an external display).
  31.         Some problems have been reported with these chipsets (especially
  32.         on external displays). Take note of the "noaccel" option.
  33.  
  34.      CL-GD6420/6440
  35.         These chipsets are not compatible with the 542x series, but are
  36.         supported by the ``cl64xx'' driver. It is used in recent
  37.         laptops, and bears some similarity to old Cirrus chipsets
  38.         (5410/AVGA2). The driver may also work for other 64xx chips. The
  39.         configuration identifiers for this driver are "cl6420" and
  40.         "cl6440".  This driver is discussed in detail in section ``The
  41.         cl64xx Driver''.
  42.  
  43.      CL-GD5424
  44.         Basically VLB version of the 5422, but resembles the 5426 in
  45.         some respects.
  46.  
  47.      CL-GD5426
  48.         Supports both ISA bus and VLB, and up to 2Mbyte of memory.  Has
  49.         BitBLT engine for improved acceleration (BitBlt, image transfer,
  50.         text). Dot clock limit is 85 MHz.
  51.  
  52.      CL-GD5428
  53.         Enhanced version of the 5426.
  54.  
  55.      CL-GD5429
  56.         Enhanced version of the 5428; officially supports higher MCLK
  57.         and has memory-mapped I/O.
  58.  
  59.      CL-GD5430
  60.         Similar to 5429, but with 543x core (32-bit host interface).
  61.         Does not have 64-bit memory mode.
  62.  
  63.      CL-GD5434
  64.         Next generation `Alpine' family chip with 64-bit internal memory
  65.         interface. Used by the Orchid Kelvin 64. The chip can only
  66.  
  67.         support 64-bit mode if equipped with 2 Mbytes of memory; cards
  68.         with only 1 Mbyte are severely limited.  Supports dot clocks up
  69.         to 110 MHz (recent chips support 135 MHz).
  70.  
  71.      CL-GD5436
  72.         Highly optimized 5434. It is basically treated as a 5434.
  73.  
  74.      CL-GD5446
  75.         Another member of the Alpine family of 2D accelerators.  It is
  76.         treated like a 543X chip.
  77.  
  78.      CL-GD546X
  79.         The Laguna VisualMedia family of 2D  Accelerators.  These chips
  80.         use Rambus RDRAM memory.  The '62 is a 64-bit 2D accelerator,
  81.         including a BitBlit engine, video windows (not currently used by
  82.         the server), and 64x64 HW cursor.  Mono modes have not been
  83.         tested.
  84.  
  85.   Here's a list of maximum dot clocks for each supported depth:
  86.  
  87.  
  88.  
  89.                        mono        8 bpp (256c)    16 bpp____      32 bpp
  90.        CL-GD62x5       45 MHz      45 MHz____
  91.        CL-GD5420       80 MHz      45 MHz (1)
  92.        CL-GD542x/512K  80 MHz      45 MHz____
  93.        CL-GD5422/24    80 MHz      80 MHz____      40 MHz____
  94.        CL-GD5426/28    85 MHz      85 MHz____      45 MHz (2)
  95.        CL-GD5429       85 MHz      85 MHz____      50 MHz____
  96.        CL-GD5430       85 MHz      85 MHz____      45 MHz (2)
  97.        CL-GD5434/1Mb   85 MHz      85 MHz____      45 MHz (2)
  98.        CL-GD5434/2Mb   85 MHz      110/135 MHz     85 MHz____      45/50 MHz (2)
  99.        CL-GD5436/1Mb   85 MHz      110 MHz (3)     60 MHz (3)
  100.        CL-GD5436/2Mb   85 MHz      135 MHz         85 MHz          60 MHz (3)
  101.        CL-GD5446/1Mb   85 MHz      110 MHz (3)     60 MHz (3)
  102.        CL-GD5446/2Mb   85 MHz      135 MHz         85 MHz          60 MHz (3)
  103.        CL-GD5462       170 MHz     170 Mhz         170 MHz         170 MHz
  104.  
  105.        (1) with 512K memory.
  106.        (2) 50 MHz with high MCLK setting.
  107.        (3) Depends on memory clock.
  108.  
  109.  
  110.  
  111.  
  112.   Rough virtual/physical screen resolution limits for different amounts
  113.   of video memory:
  114.  
  115.  
  116.                    mono          8bpp          16 bpp        32 bpp
  117.        256K_       800x600__     640x400__     _________     ________
  118.        512K_       1152x900_     800x600__     640x400__     ________
  119.        1024K       1600x1200     1152x900_     800x600__     ________
  120.        2048K       2304x1728     1600x1200     1152x900_     800x600_
  121.        4096K       2304x1728     2272x1704     1600x1200     1152x900
  122.  
  123.  
  124.  
  125.  
  126.   For 546x chips, the virtual width must be one of the following values:
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.   8bpp:   640, 1024, 1280, 1664, 2048, 2560, 3328, 4096, 5120, 6656
  134.   16bpp:  320, 512, 640, 832, 1024, 1280, 1664, 2048, 2560, 3328
  135.   32bpp:  160, 256, 320, 416, 512, 640, 832, 1024, 1280, 1664
  136.  
  137.  
  138.  
  139.  
  140.   For other Cirrus chips, the virtual width must be a multiple of 32 if
  141.   acceleration is used.  The horizontal monitor timings must be below
  142.   2048.
  143.  
  144.   To run XF86_SVGA at 16 or 32 bpp, pass options to the X server as
  145.   follows:
  146.  
  147.   startx -- -bpp 16               5-6-5 RGB ('64K color', XGA)
  148.   startx -- -bpp 16 -weight 555   5-5-5 RGB ('Hicolor') (not on 546X)
  149.   startx -- -bpp 32               8-8-8 XRGB truecolor (543X/46/6X)
  150.  
  151.  
  152.  
  153.   2.  Basic configuration
  154.  
  155.   It is recommended that you generate an XF86Config file using the
  156.   `xf86config' program, which should produce a working high-resolution
  157.   8bpp configuration. You may want to include mode timings in the
  158.   Monitor section that better fit your monitor (e.g 1152x900 modes). The
  159.   driver options are described in detail in the next section; here the
  160.   basic options are hinted at.
  161.  
  162.   For all chipsets, a Clockchip "cirrus" line in the Device section can
  163.   be useful. This allows the use of any dot clocks, instead of one out
  164.   of the fixed set of dot clocks supported by the driver. This is
  165.   required if you want a 12.6 MHz dot clock for low-resolution modes.
  166.  
  167.   If graphics redrawing goes wrong, first try the "no_bitblt" option if
  168.   your chip has the BitBLT engine, if that doesn't work, try the
  169.   "noaccel"; option, which disables all accelerated functions. The
  170.   "no_imageblt" option may be sufficient.
  171.  
  172.   In order to be able to run at a depth of 16bpp and 32bpp, and to
  173.   improve performance at 8bpp, linear addressing must be enabled. This
  174.   is generally possible on 543x local bus cards, and if you have less
  175.   than 16Mb of system memory, on local bus 542x cards and ISA 543x
  176.   cards. You must specify the "linear" option and possibly a Membase
  177.   address. See the following sections for a detailed description.
  178.  
  179.   Also, on the 543x, it is advisable to use the "mmio" option in the
  180.   Device section for better acceleration (this might also apply to the
  181.   5429, which has not been tested).
  182.  
  183.   Finally, if you have 546X chip, it will be on the PCI bus.  As such,
  184.   there is no problem about memory mapped I/O or linear frame buffer
  185.   address spaces running into system memory.  The PCI spaces are mapped
  186.   way up near the 4GB point.  Because the mmio and linear frame buffer
  187.   don't conflict at all on the system, the "linear", Membase, and "mmio"
  188.   options are ignored.
  189.  
  190.   3.  XF86Config options
  191.  
  192.   Don't use the `Clocks' command. The clocks are fixed (i.e. not
  193.   probed), and there should be no variation between cards (other than
  194.   the maximum supported clock for each chipset).
  195.  
  196.   The following options are of particular interest to the Cirrus driver.
  197.   Each of them must be specified in the `svga' driver section of the
  198.  
  199.   XF86Config file, within the Screen subsections of the depths to which
  200.   they are applicable (you can enable options for all depths by
  201.   specifying them in the Device section).
  202.  
  203.      Option "noaccel"
  204.         This option will disable the use of any accelerated functions.
  205.         This is likely to help with some problems related to DRAM
  206.         timing, high dot clocks, and bugs in accelerated functions, at
  207.         the cost of performance (which will still be reasonable on VLB).
  208.  
  209.      Option "fast_dram" "med_dram" "slow_dram" (5424/6/8/9, 543x, 5446)
  210.         The "fast_dram" option will cause the driver to set the internal
  211.         memory clock (MCLK) register of the video card to a higher
  212.         value.  Normally, this register is not touched but it appears
  213.         that the standard CL-GD542x BIOS initializes it to a value that
  214.         is somewhat on the low side (limited by the chip specification),
  215.         which has a negative influence on performance of high dot clock
  216.         modes. This is especially true if extended RAS timing is being
  217.         used (this is indicated in the server probe).  The actual speed
  218.         of DRAM is not a critical factor in the determining whether this
  219.         option is appropriate; one card with 80ns DRAM using Extended
  220.         RAS timing, which came with a DOS driver utility to set the MCLK
  221.         to this value (0x22), seems to run stable at higher MCLK.
  222.  
  223.         There are also (mainly brand name) cards whose customized BIOS
  224.         does initialize to a higher non-standard value. In this case,
  225.         the use of this option is probably not appropriate.
  226.  
  227.         The "slow_dram" option will set the MCLK to the value used by
  228.         the standard CL-GD542x BIOS (0x1c). Symptoms of a MCLK that is
  229.         too high can be vertical bands of flickering pixels on the
  230.         screen, erroneous pixels appearing in text, and loosing pixels
  231.         in the textmode font after running X (note that very similar
  232.         effects can be caused by an MCLK setting that is too low).
  233.  
  234.         Upon start-up, the driver will report the value of the MCLK
  235.         register (check this first), and also any changes that are made.
  236.  
  237.         Typical MCLK values:
  238.  
  239.         0x1c (50 MHz)
  240.            This is usually the BIOS default.  It is forced by the
  241.            "slow_dram" option.
  242.  
  243.         0x1f (55 MHz)
  244.            Value used by the "med_dram" option.  Highest value that 542x
  245.            based cards seem to be able to handle with linear addressing
  246.            enabled.
  247.  
  248.         0x22 (60 MHz)
  249.            Value that most (Extended RAS) 542x cards seem to be able to
  250.            handle, used by the "fast_dram" option.
  251.  
  252.         The official maximum of the 542x chips is 50 MHz.  The official
  253.         spec. for the 5434 is also 50 MHz (0x1c) and that for the 5429
  254.         and 5430 is probably 60 MHz (0x22). Current revisions of the
  255.         5434 (E and greater) support 60 MHz MCLK in graphics modes, and
  256.         the driver will program this automatically. If it causes
  257.         problems, use the "slow_dram" option.
  258.  
  259.         The driver takes the MCLK into account for clock limits that are
  260.         determined by DRAM bandwidth.
  261.  
  262.         If you are not having any problems (performance or stability at
  263.         high dot clocks), it is best not to use the "fast_dram" option.
  264.  
  265.      Option "no_bitblt"
  266.         This option, when used with a 5426/28/29/3x/46/6x, will have the
  267.         effect of disabling the use of the BitBLT engine (which the 5424
  268.         does not have), while retaining some acceleration. This will be
  269.         useful for problems related to functions that use the BitBLT
  270.         engine.  Performance is significantly decreased.
  271.  
  272.      Option "no_imageblt"
  273.         This option, when used with a 5426/28/29/3x/46, will have the
  274.         effect of disabling the use of BitBLT functions that go from
  275.         system memory to video memory. This is useful for problems
  276.         relating to image write, such as a little white line at the top
  277.         left corner of the screen, or a skewed image after a console
  278.         switch back to the server, which have been observed on some
  279.         configurations, especially VLB 5426 and 5434 with a fast CPU.
  280.         Note that this option results in reduced performance.
  281.  
  282.      chipset "clgd54xx"
  283.         Force detection of the given chipset. Useful if you have a
  284.         supported chipset that is not properly detected, or if you have
  285.         an unsupported chip that might be compatible with a supported
  286.         one.
  287.  
  288.      videoram 1024 (or another value)
  289.         This option will override the detected amount of video memory,
  290.         and pretend the given amount of memory is present on the card.
  291.         This is useful on cards with 2Mbyte of memory whose DRAM
  292.         configuration is not compatible with the way the driver enables
  293.         the upper megabyte of memory, or if the memory detection goes
  294.         wrong. It must be specified in the Device section.
  295.  
  296.      Option "fifo_conservative" (5424/6/8/9/3x/46)
  297.         This option will set the CRT FIFO threshold to a conservative
  298.         value for high dot clocks (>= 65 MHz), reducing performance but
  299.         hopefully alleviating problems with what can be described as
  300.         flashing `streaks', `jitter' or horizontally repeated display
  301.         areas on the screen (especially when a BitBLT operation is in
  302.         progress, e.g.  scrolling).
  303.  
  304.      Option "fifo_aggressive" (5424/6/8/9/3x/46)
  305.         This option will set the CRT FIFO threshold to an aggressive
  306.         value; it will be the same as that used for lower dot clocks. It
  307.         improves performance at high dot clocks.
  308.  
  309.      Option "no_2mb_banksel" (542x)
  310.         This option will cause the driver not to set the `DRAM bank
  311.         select' bit to enable the upper megabyte of memory on a 2Mbyte
  312.         card. This should be helpful with cards equipped with 512Kx8
  313.         DRAMs, as opposed to 256Kx4/16 DRAMs, when using a virtual
  314.         screen configuration that uses more than 1Mbyte of memory.
  315.  
  316.      Option "probe_clocks"
  317.         This option will force probing of dot clocks on the card. This
  318.         should not be necessary, since the clocks are fixed and the same
  319.         for all Cirrus chipsets. However, they do depend on the
  320.         motherboard supplying a proper standard 14.31818 MHz frequency
  321.         on the bus. There may be ill-designed VLB motherboards that do
  322.         not supply this frequency correctly for certain bus speeds (e.g.
  323.         scaled up from 33 MHz). If in doubt, use this option and run `X
  324.         -probeonly'.  If the clocks are very different from the correct
  325.         clocks shown below, you can try a Clocks line in the XF86Config
  326.         with your deviating clocks.  In this situation, the MCLK is
  327.         probably also screwed.
  328.  
  329.         Correct clocks:
  330.  
  331.                 25.2  28.3  41.1  36.1  31.5  40.0  45.1  49.9
  332.                 65.0  72.2  75.0  80.0  85.2
  333.  
  334.  
  335.  
  336.      Clockchip "cirrus"
  337.         This enables programmable clocks. It must be specified in the
  338.         Device section. With this option, the clocks the modes use will
  339.         be automatically selected. Do not specify any Clocks line. This
  340.         option makes a 12.5 MHz clock possible for a 320x200 Doublescan
  341.         mode. Note that some frequencies may be unstable (resulting in a
  342.         `wavy' screen). Only tried and tested frequencies (like the
  343.         default clocks) are guaranteed to be stable.
  344.  
  345.      Option "linear"  (542x/6/8/9/3x/46)
  346.         This enables linear addressing, which is the mapping of the
  347.         entire framebuffer to a high address beyond system memory, so
  348.         that SVGA bank switching is not necessary. It enhances
  349.         performance at 256 colors, and is currently required for 16bpp
  350.         and 32bpp. See section 4 for details.
  351.  
  352.      Membase 0x00e00000 (or a different address) (542x/6/8/9/3x/46)
  353.         This sets the physical memory base address of the linear
  354.         framebuffer. It must be specified in the Device section. It is
  355.         required for most linear addressing configurations.
  356.  
  357.      Option "favour_bitblt" (5426 only)
  358.         This option will, when the BitBLT engine is enabled, favour its
  359.         use over framebuffer color expansion functions that are normally
  360.         faster.  This can give a performance improvement on a heavily
  361.         CPU-loaded system (e.g. running gcc and other programs at the
  362.         same time) in certain situations.
  363.  
  364.      Option "mmio" (543x/46)
  365.         This enables the use of memory-mapped I/O to talk to the BitBLT
  366.         engine on the 543x/5429, which is a bit faster. It also enables
  367.         additional acceleration using memory-mapped I/O. This is option
  368.         has no effect when not using the BitBLT engine (e.g. when using
  369.         "no_bitblt").
  370.  
  371.      Option "sw_cursor" (542x/3x/46)
  372.         This disables use of the hardware cursor provided by the chip.
  373.         Try this if the cursor seems to have problems. In particular,
  374.         use this when using dot clocks greater than 85 MHz on the 5434/6
  375.         since those chips don't fully support the hardware cursor at
  376.         those clocks.
  377.  
  378.      Option "clgd6225_lcd"
  379.         Provides a work-around for problems on the LCD screen of some
  380.         62x5 laptop chipsets with maximum white colors.
  381.  
  382.   4.  Mode issues
  383.  
  384.   The accelerated 256-color driver uses 256 bytes of scratch space in
  385.   video memory, and the hardware cursor also uses 1K (2K on the '6X).
  386.   Consequently, a 1024x1024 virtual resolution should not be used with a
  387.   1Mbyte card.
  388.  
  389.   The use of a higher dot clock frequencies has a negative effect on the
  390.   performance of graphics operations, especially BitBlt, when little
  391.   video memory bandwidth is left for drawing (the amount is displayed
  392.   during start-up for 542x/3x/46 chips).  For the 542x/3x/46 chips, with
  393.   default MCLK setting (0x1c) and a 32-bit memory interface, performance
  394.   with a 65 MHz dot clock can be half of that with a dot clock of 25
  395.   MHz.  So if you are short on memory bandwidth and experience blitting
  396.  
  397.   slowness, try using the lowest dot clock that is acceptable; for
  398.   example, on a 14" or 15" screen 800x600 with high refresh (50 MHz dot
  399.   clock) is not so bad, with a large virtual screen.
  400.  
  401.   It does not make much sense performance-wise to use the highest clock
  402.   (85 MHz) for 1024x768 at 76 Hz on a 542x; the card will almost come to
  403.   a standstill. A 75 MHz dot clock results in 70 Hz which should be
  404.   acceptable. If you have a monitor that supports 1024x768 at 76 Hz with
  405.   a 85 MHz dot clock, a standard 5426/5428 based card is a poor match
  406.   anyway.
  407.  
  408.   5434-based cards with 2Mbyte of memory do much better at high dot
  409.   clocks; the DRAM bandwidth is basically double that of the 542x
  410.   series. The 543x chips also make more efficient use of the available
  411.   DRAM bandwidth.
  412.  
  413.   5.  Linear addressing and 16bpp/32bpp modes
  414.  
  415.   Currently the unaccelerated 16-bit and 32-bit pixel support in the
  416.   SVGA server requires linear addressing. This restriction will
  417.   hopefully be removed in a future version. Option "linear" can be
  418.   specified in a depth-specific screen section to enable linear
  419.   addressing; a MemBase setting (in the device section) is probably also
  420.   required (although they are both automatically selected with PCI
  421.   cards, like 5446, 546x, and some 5436 based cards). There are a number
  422.   of different card configurations.
  423.  
  424.   If you have a 542x/543x on the ISA bus, and you have 16Mb or more of
  425.   system memory, linear addressing is impossible. 16bpp is out, sorry.
  426.   If you have less than 14Mb of memory, you may be able to map the
  427.   framebuffer at 14Mb, using `MemBase 0x00e00000'. That's five zeros
  428.   after the `e'. Unfortunately many ISA cards don't support linear
  429.   addressing.
  430.  
  431.   If you have a 5424/26/28/29 on VESA local bus, the situation is more
  432.   complicated. There are two different types of cards w.r.t. linear
  433.   addressing:
  434.  
  435.      o  Cards that can only map in the lower 16Mb, like cards on the ISA
  436.         bus.  This is the case with most cards. The same restrictions
  437.         apply (i.e. you must have less than 16Mb of memory).
  438.  
  439.      o  Cards that connect address line A26 and always map at 64Mb +
  440.         14Mb or 64Mb. In this case specify `MemBase 0x04e00000' or
  441.         `MemBase 0x04000000'. This assumes you have a VLB motherboard
  442.         implementation that implements A26. Alternatively the card may
  443.         map to 0x2000000, and recent cards like the 5429 usually map to
  444.         0x03e00000 (62Mb).
  445.  
  446.   You will probably have to rely on trial and error. If you have less
  447.   than 16Mb memory, the `wrong' membase setting will result in no graph-
  448.   ics being displayed, but you can probably exit with ctrl-alt-
  449.   backspace.
  450.  
  451.   If you have >= 16Mb memory, the first type of card (and even the
  452.   second type with a stupid VLB motherboard) will result in a crash
  453.   (probably a spontaneous hard reboot).
  454.  
  455.   It may be possible to find out the type by visual inspection. If the
  456.   card has a pin at A26, it is likely to map beyond 64Mb. To do this,
  457.   take the card out. At the VESA local bus pins (this is the smaller
  458.   strip of connector pins at the non-slot side of the card), consider
  459.   the right side (this is the side of the board where all the chips are
  460.   mounted). There are 45 pins here. They are numbered 1 to 45, from the
  461.   inside (i.e. the one nearest to the card end is 45). Counting from the
  462.  
  463.   inside, the 17th pin is probably not present, then there are pins at
  464.   18-20. The 21st is A30, the 22nd is A28 and the 23rd is A26. So, if we
  465.   have no pins at at 21-23, the card doesn't map beyond 64Mb. If there's
  466.   only a gap of two pins at 21 and 22 (or they are both present) and
  467.   there's a pin at 23, the card does probably map beyond 64Mb. If
  468.   there's a little logic near that pin on the card, it's more likely.
  469.  
  470.   With a 543x on the local bus things are simpler (the Cirrus Logic
  471.   windows drivers use it), but it is not quite without problems.
  472.  
  473.   With a card on the PCI bus, there is a PCI configuration register that
  474.   holds the framebuffer base address, which is read automatically by the
  475.   driver if a PCI card is detected. On one system tested, it mapped at
  476.   0xa0000000, and it appeared addresses where assigned in 0x08000000
  477.   increments over the PCI devices. The `scanpci' program can read out
  478.   the PCI configuration and show the base address.
  479.  
  480.   On the VESA local bus, most 543x cards have a default mapping address
  481.   of 64Mb, with jumper options for 2048Mb and 32Mb. This is probably
  482.   described in the documentation that came with the card, or look in the
  483.   MS-Windows system.ini file (something with linearaddr = <offset in
  484.   megabytes>). These different settings were added by Cirrus Logic after
  485.   finding that many VLB motherboard implementations don't implement
  486.   different address pins (however, they failed to handle this smoothly
  487.   in their initial Windows drivers). The driver assumes a default of
  488.   64Mb if MemBase isn't specified. A few examples for MemBase:
  489.  
  490.  
  491.                MemBase 0x02000000      32Mb
  492.                MemBase 0x04000000      64Mb
  493.                MemBase 0x80000000      2048Mb
  494.  
  495.  
  496.  
  497.  
  498.   The 16bpp and 32bpp modes have limited acceleration (scroll, text,
  499.   fill) which means they can be slow, although a good local bus host
  500.   interface (like the 543x has) helps a lot. Note that the standard cfb
  501.   framebuffer code can be very slow for monochrome stipples and bitmaps.
  502.   32bpp mode is only supported on a limited set of cards, and with at
  503.   least 2Mb of memory.
  504.  
  505.   In the XF86Config "Screen" section, a "Display" subsection must be
  506.   defined for each depth that you want to run, with separate Modes and
  507.   virtual screen size. Example (2Mb of video memory):
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.   Section "screen"
  530.       SubSection "Display"
  531.           Depth 8
  532.           Virtual 1280 1024
  533.           ViewPort 0 0
  534.           Modes "640x480" "800x600" "1024x768"
  535.           Option "linear"
  536.       EndSubSection
  537.       SubSection "Display"
  538.           Depth 16
  539.           Virtual 1024 992
  540.           ViewPort 0 0
  541.           Modes "640x480" "800x600" "1024x768"
  542.           Option "linear"
  543.       EndSubSection
  544.       SubSection "Display"
  545.           Depth 32
  546.           Virtual 832 600
  547.           ViewPort 0 0
  548.           Modes "640x480" "800x600"
  549.           Option "linear"
  550.       EndSubSection
  551.   EndSection
  552.  
  553.  
  554.  
  555.  
  556.   6.  The ``cl64xx'' Driver
  557.  
  558.   The cl64xx driver supports the cl-gd6440 found in many laptops.  For
  559.   example, Nan Tan Computer's NP9200, NP3600, etc., which are OEM-ed by
  560.   Sager, ProStar, etc. and Texas Instruments TI4000 series are
  561.   supported.
  562.  
  563.   The driver works in LCD-only, CRT-only, and the chip's SimulScan mode
  564.   which allows one to use both the LCD and external CRT displays
  565.   simultaneously.  The LCD and Simulscan modes' resolution is 640x480
  566.   while, for CRT-only, the standard VESA modes of 640x480, 600x800, and
  567.   1024x768 have been tested.  Interlaced 1024x768 mode has never been
  568.   debugged and does not work on the machines tested.
  569.  
  570.   The chip has a documented maximum operating limit for its dot clock
  571.   that is related to its core voltage.  Specifically, for 5.0V the
  572.   maximum dot clock is 65MHz and for 3.3V the maximum dot clock is
  573.   40MHz.  The driver checks the core voltage and limits the maximum dot
  574.   clock to the corresponding value.  This translates to a maximum
  575.   resolution of about 1024x768 at a 60Hz refresh rate.  The internal
  576.   frequency generator can be programmed higher than these limits and is
  577.   done so during server startup when the clocks are probed which
  578.   momentarily exceeding the chip's operating limit.  Once a set of valid
  579.   clocks is obtained, I would recommend using Clocks lines in
  580.   XF86Config.  Doing so will also decrease startup time significantly.
  581.   The clocks may be obtained by running the X server -probeonly (see the
  582.   XFree86 man page for more information about -probeonly).
  583.  
  584.   The data book indicates that only a configuration of one megabyte of
  585.   video memory is supported by the chip.  This size has been directly
  586.   set in the driver.  If one finds a need, one should be able to
  587.   override the default size in XF86Config.  Also, with 1MB of video
  588.   memory, one should be able to have a virtual screen size of e.g.
  589.   1024x1024 and this is possible in CRT-only screen mode.  However,
  590.   whenever the LCD is in use (LCD and SimulScan), the chip uses a
  591.   portion of upper video ram for its own internal acceleration purposes.
  592.   Thus, the maximum video memory available for virtual resolution in LCD
  593.   modes is about 0.75MB e.g.  1024x768.  If you set the virtual
  594.  
  595.   resolution above this, you will see what might be described as a
  596.   compressed aliased band when the accelerated area is displayed.
  597.  
  598.   Currently, the driver does not support switching of screen modes among
  599.   LCD, CRT, and SimulScan, and, at least on the NP9200, the mode must be
  600.   chosen at OS boot time (e.g. Linux's LILO) while the BIOS is still
  601.   active.  It should be possible to add screen mode type selection as a
  602.   ModeLine flag option in XF86Config to allow for dynamic screen mode
  603.   selection from within the X server.  Finally, the driver does not
  604.   currently support any of the powerdown saving features of the chip nor
  605.   does it shut off the LCD's backlight on screen blank.  I hope to
  606.   implement all these features in future releases.
  607.  
  608.   Some notes regarding the CL-GD6420:
  609.  
  610.   The amount of video memory may not always be detected correctly. The
  611.   driver source code includes two methods, one defined out. Better
  612.   specify the amount of video memory with a VideoRam line in the Device
  613.   section. Use the standard 640x480 60 Hz standard mode timing with
  614.   25.175 MHz dot clock for CRT or SIMulscan mode; for LCD-only
  615.   operation, use the same mode timing but with a dot clock of 16.257
  616.   MHz. Standard 56 Hz 800x600 is also supported on the CRT.
  617.  
  618.   The primary contact for the cl6440 problems with ``cl64xx'' driver is
  619.   Randy Hendry <randy@sgi.com>.
  620.  
  621.   7.  Trouble shooting with the ``cirrus'' driver
  622.  
  623.   First of all, make sure that the default modes selected from your
  624.   XF86Config is supported by your monitor, i.e. make sure the horizontal
  625.   sync limit is correct. It is best to start with standard 640x480x256
  626.   with a 25.175 MHz clock (by specifying a single horizontal sync of
  627.   31.5) to make sure the driver works on your configuration. The default
  628.   mode used will always be the first mode listed in the modes line, with
  629.   the highest dot clock listed for that resolution in the timing
  630.   section.
  631.  
  632.   Note that some VESA standard mode timings may give problems on some
  633.   monitors (try increasing the horizontal sync pulse, i.e. the
  634.   difference between the middle two horizontal timing values, or try
  635.   multiples of 16 or 32 for all of the horizontal timing parameters).
  636.  
  637.      There is a video signal, but the screen doesn't sync.
  638.         You are using a mode that your monitor cannot handle. If it is a
  639.         non-standard mode, maybe you need to tweak the timings a bit. If
  640.         it is a standard mode and frequency that your monitor should be
  641.         able to handle, try to find different timings for a similar mode
  642.         and frequency combination.
  643.  
  644.      Horizontal jitter at high dot clocks.
  645.         This problem shows especially when drawing operations such as
  646.         scrolling are in progress.  If you're using a 542x/3x/46, try
  647.         the "fifo_conservative" option. Failing that, you can try the
  648.         "fast_dram" option, or use a lower dot clock.  If that is not
  649.         sufficient, or if you have a 546X, the "noaccel" option or
  650.         "no_bitblt" will probably help.
  651.  
  652.      `Wavy' screen.
  653.         Horizontal waving or jittering of the whole screen, continuously
  654.         (independent from drawing operations).  You are probably using a
  655.         dot clock that is too high; it is also possible that there is
  656.         interference with a close MCLK. Try a lower dot clock. You can
  657.         also try to tweak the mode timings; try increasing the second
  658.         horizontal value somewhat. Here's a 65 MHz dot clock 1024x768
  659.         mode (about 60 Hz) that might help:
  660.  
  661.          "1024x768"     65      1024 1116 1228 1328     768  783  789  818
  662.  
  663.  
  664.      If you are using programmable clocks with Clockchip "cirrus", try
  665.      disabling it and using the default set of clocks.
  666.  
  667.      Crash or hang after start-up (probably with a black screen).
  668.         Try the "noaccel" option. If that works, try Option "no_bitblt"
  669.         for somewhat better performance. Check that the BIOS settings
  670.         are OK; in particular, disable caching of 0xa0000-0xaffff.
  671.         Disabling hidden DRAM refresh may also help.
  672.  
  673.      Crash, hang, or trash on the screen after a graphics operation.
  674.         This may be related to a bug in one of the accelerated
  675.         functions, or a problem with the BitBLT engine. Try the
  676.         "noaccel" option, or the "no_bitblt" option. Also check the BIOS
  677.         settings.
  678.  
  679.      `Blitter timeout' messages from the server.
  680.         Same as for the above entry.
  681.  
  682.      Screen is `wrapped' vertically. (542x/3x/46)
  683.         This indicates a DRAM configuration problem. If your card has
  684.         two megabytes of memory, try the "no_2mb_banksel" option, or use
  685.         videoram "1024" if you only use 1 Mbyte for the virtual screen.
  686.  
  687.      Screen is `wrapped' horizontally. (546x)
  688.         The 546x chips must have their viewport on the virtual screen
  689.         aligned to tile boundaries, typically 128, 64, or 32 pixels.
  690.         For display modes that are not a multiple of the tile size
  691.         (i.e., 800x600 display on a 1664x1024 virtual desktop), the
  692.         display may wrap about half a tile on the far right hand side.
  693.         This is because the left side of the viewable screen is aligned
  694.         to a tile, but the right side is hanging over the edge of the
  695.         virtual desktop.  The solution is to use a display resolution
  696.         that is a multiple of the tile size.  Horizontal resolutions of
  697.         640, 896, 1024, and 1280 are usually okay.
  698.  
  699.      Screen won't pan over all of virtual desktop. (546x)
  700.         Same as previous entry.
  701.  
  702.      Corrupted text in terminal window.
  703.         This has been reported on non-standard video implementations.
  704.         Use the "no_bitblt" option.
  705.  
  706.      Streaks or hangs with laptop chipset
  707.         This can happen if the dot clock is high enough to leave very
  708.         little bandwidth for drawing (e.g. 40 MHz on a 512K card), and
  709.         (5422-style) acceleration is used.
  710.  
  711.      Occasional erroneous pixels in text, pixel dust when moving window-
  712.         frame
  713.         Probably related to MCLK setting that is too high (can happen
  714.         with linear addressing even though banked mode runs OK).
  715.  
  716.      Chipset is not detected.
  717.         Try forcing the chipset to a type that is most similar to what
  718.         you have.
  719.  
  720.      Incorrect little lines (mostly white) appear occasionally
  721.         This may be related to a problem with system-to-video-memory
  722.         BitBLT operations. Try the "no_imageblt" option if it annoys
  723.         you.
  724.  
  725.  
  726.  
  727.      Textmode is not properly restored
  728.         This has been reported on some configurations. In XFree86 3.1
  729.         the SVGA server probe would corrupt a register on the 543x,
  730.         requiring a Chipset line. Normally you should be able to restore
  731.         the textmode font using a utility that sets it (setfont, runx,
  732.         restorefont on Linux).
  733.  
  734.      Erratic system behaviour at very high dot clocks
  735.         It is possible that high dot clocks on the video card interfere
  736.         with other components in the system (e.g. disk I/O), because of
  737.         a bad card and/or motherboard design. It has been observed on
  738.         some PCI 5428-based cards (which are very rare, since the 5428
  739.         chip doesn't support PCI).
  740.  
  741.   For other screen drawing related problems, try the "noaccel" option
  742.   (if "no_bitblt" doesn't help).
  743.  
  744.   If are having driver-related problems that are not addressed by this
  745.   document, or if you have found bugs in accelerated functions, you can
  746.   try contacting the XFree86 team (the current driver maintainer can be
  747.   reached at hhanemaa@cs.ruu.nl), or post in the Usenet newsgroup
  748.   "comp.windows.x.i386unix".
  749.  
  750.   8.  Driver Changes
  751.  
  752.   Bugs fixed since XFree86 3.1:
  753.  
  754.      o  Accelerated 14-pixel wide font drawing bug.
  755.  
  756.      o  Server crash when switched to another VC with linear addressing
  757.         enabled at 8bpp.
  758.  
  759.      o  DAC programming lock-up at VC switch at 16bpp on a 542x.
  760.  
  761.      o  Driver undoes SVGA probe corruption to 543x register.
  762.  
  763.      o  Linear addressing on a 543x with 8bpp (may have caused grief
  764.         when trying to configure 16/32bpp).
  765.  
  766.      o  Hardware cursor color mapping at 16/32bpp.
  767.  
  768.   New features in XFree86 3.1.1:
  769.  
  770.      o  Some speed improvements.
  771.  
  772.      o  Scrolling/text/fill acceleration at 16/32bpp.
  773.  
  774.      o  Support for programmable clocks.
  775.  
  776.      o  Support for Memory-Mapped I/O on 543x.
  777.  
  778.      o  Support for dot clocks up to 110 MHz on the 5434.
  779.  
  780.      o  Support for the CL6440 in the ``cl64xx'' driver.
  781.  
  782.   Changes since XFree86 3.1.1:
  783.  
  784.      o  Fix memory leak in text drawing function.
  785.  
  786.      o  Support for dot clocks up to 135 MHz on CL-GD5434 revision E and
  787.         later.
  788.  
  789.      o  More balanced FIFO setting to resolve display refresh errors
  790.         (jitter) during drawing operations at high dot clocks.
  791.  
  792.  
  793.      o  Memory-mapped I/O (Option "mmio") operation improved (some side-
  794.         effects eliminated, support for 5429).
  795.  
  796.      o  Sanity check added to avoid potential server crash with negative
  797.         size rectangle fill.
  798.  
  799.      o  Fix display error occurring when scrolling without BitBLT
  800.         engine.
  801.  
  802.      o  543x PCI base address detection.
  803.  
  804.      o  Preliminary support for CL-GD5436.
  805.  
  806.      o  Default VLB base address for 5429 is 0x03e00000.
  807.  
  808.   New features in XFree86 3.2:
  809.  
  810.      o  Support for 5446 chip.
  811.  
  812.      o  Support and accelerated features for 546x chips.
  813.  
  814.  
  815.   Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/cirrus.sgml,v 3.13 1996/08/26 14:08:47 dawes Exp $
  816.  
  817.  
  818.  
  819.  
  820.  
  821.   $XConsortium: cirrus.sgml /main/6 1995/11/12 20:00:36 kaleb $
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860. $XFree86: xc/programs/Xserver/hw/xfree86/doc/README.cirrus,v 3.23 1996/08/26 14:23:42 dawes Exp $
  861.