5 XF86Config

Contents of this section

Entries and Options Currently Supported:

Ramdac

Be sure to check the clock rating of the RAMDAC(s) on your video board and don't exceed that rating even if the server allows it, overclocking RAMDACs will damage them.

The clock rating generally appears as suffix to part number, may only have the most significant digit(s), and may be mixed with other codes (e.g. package type). For example, an 85Mhz Bt481 in a plastic J-lead package has a part number of Bt481KPJ85 and a 135Mhz AT&T20C505 has a part number of ATT20C505-13. Sierra stamps the rated speed below the part numbers in a dark ink.

"normal"

normal VGA style RAMDAC (6-bit DAC), default if none specified. Most boards should work with this parm, but some capabilities will be unavailable.

"bt481"

bt481 RAMDAC (supports 8-bit DAC)

"bt482"

bt482 RAMDAC (supports 8-bit DAC) The Hercules Graphite HG210 uses the BT481 or BT482, the only difference between these two is the BT482's HW cursor (not yet supported). The BT481/2 are limited to 85Mhz.

"SC15025"

Sierra SC15025 and SC15021 RAMDAC (support 8-bit DAC). The SC15025 is limited to 125Mhz, and the SC15021 135Mhz. Check the RAMDAC's actual rating, some SC15025's used in AGX based boards are only rated to 110Mhz.

"herc_dual_dac"

Hercules Graphite Pro RAMDAC probe. If the 84-pin Big-RAMDAC is installed (2MB models), will use the Big RAMDAC, but only clocks-doubled, pixel- multiplexed modes (higher clock values only!). Lower clocks and resolutions are supported by switching to the Small 44-pin RAMDAC. Clocks differ significantly for this option, and a clock probe should be run with this option specified if you are going to use it (see additional notes in the clock section).

There has been one report of the "dac-8-bit" option not working with a Graphite Pro equipped with a BT485 RAMDAC, puzzling since it should be identical to the AT&T20C505 in this regard. No startup messages or XF86Config were submitted to aid problem isolation.

Not supported by the HG210 Graphite.

"herc_small_dac"

Hercules Graphite Pro RAMDAC probe. Forces use of only the BT481/482 RAMDAC.

Not supported by the HG210 Graphite.

Ramdac related Option Flags:

"dac_8_bit"

Sets supported RAMDAC's to 8-bit DAC mode (all but "normal").

"sync_on_green"

Composite sync on green for DAC's that support this feature (currently BT481 &BT482).

Chipset:

Must be specified, possible values: "AGX-016", "AGX-015", "AGX-014", "AGX-010", "XGA-2", "XGA-1". Some vendors place stickers over the chip, in general, if it's a VLB board it's probably an AGX-015 and if it's an ISA board it may be an AGX-014. The Hercules Graphite Power Pro and Spider Black Widow Plus use the AGX-016 chipset. In general, specifying a lower revision in the AGX-0{14,15,16} series does not seem to causes problems (except lower performance from the AGX-014 non-accelerated line drawing).

Note: Only the AGX-016, AGX-015, and AGX-014 have had any testing. Most of the development has been with an AGX-015 based 2MB Hercules Graphite VL PRO (HG720) and most of testers have AGX-014 based 1MB Hercules Graphite (HG210).

The limited documentation I have for the AGX-010 is that is is a full clone of the XGA architecture (I assume XGA-1) with a few additional configuration registers that are not yet supported. See the notes below on the XGA configuration.

VideoRam:

Will be probed if not specified, but the probe is unreliable and the startup will be a little faster if specified.

Tuning Option flags:

Bus I/O interface:

"8_bit_bus"

Force 8-bit I/O bus.

"wait_state", "no_wait_state"

Set or clear CPU access wait state, default is the POST setting.

"fifo_conserv"

Disable Memory I/O Buffer, AGX-015 and AGX-016. MS-Windows driver default. Required by some VLB systems with `aggressive timing'. The default for this server is to disable the buffer.

"fifo_moderate"

Enable the AGX-015's Memory I/O buffer.

"fifo_aggressive"

Enable the AGX-016's extra-large buffer. Either option result in garbage being left about the screen, disabled by default. A good test is the xbench or x11perf dashed lines tests, if random dots are drawn, fifo_conserv is required. So far, no boards have been reported that worked correctly with the buffers enabled.

Memory Timing:

POST defaults should be ok.

"vram_delay_latch", "vram delay_ras", "vram_extend_ras", "slow_dram"

Set all of the above vram options.

"med_dram"

Set vram latch delay, clear others.

"fast_dram"

All of the vram options are cleared. Should be specified if directly specifying vram options to clear POST settings.

Debugging:

These shouldn't generally be required:

"crtc_delay"

Sets XGA mode CRTC delay. Default and AGX recommended value is VGA CRTC delay.

"engine_delay"

AGX-015 only? adds additional VLB wait state.

"vram_128", "vram_256"

Sets VRAM shift frequency, vram_128 is for 128Kx8 VRAM. Default is to leave this bit unchanged from POST setting.

"refresh_20", "refresh_25"

Number of clock cycles between screen refreshes. Default is to leave this bit unchanged from POST setting.

"screen_refresh"

Disable screen refresh during non-blanked intervals, AGX-016. Default is leave them enabled.

"vlb_a", "vlb_b"

VLB transaction type, default is to leave this bit unchanged from POST value.

Virtual resolution:

The server now accepts any virtual width, however the actual usable CRTC line width is restricted when using the graphics engine and depends upon the chip revision. The CRTC line width and not the virtual width determine the amount of memory used. The server currently does not make use of any of the unused CRTC line's memory. CRTC line width is restricted by the following rules:

AGX-014 : 512, 1024 and 2048.
AGX-015 : 512, 1024, 1280, and 2048.
AGX-016 : 512, 600, 800, 1024, 1280, and 2048.

When panning I occasionally get streaks if the virtual resolution is much greater than the physical resolution. Moving the mouse a little makes it disappear. The Hercules manual indicates this also happens with the MS-Windows drivers.

The server requires at least a 64KB scratchpad. Additional memory is useful for font cache and a larger scratchpad.

Clocks:

Probing is supported, but of course the usual warnings and disclaimers apply. Probing may momentarily subject your monitor to sweep frequencies in excess of it's rating. The cautious may wish to turn off the monitor while the probe is running.

Once clocks are known, they can be entered into XF86Config, then subsequent runs won't probe clocks and will be quicker to startup. For the clock probe it is recommended that the X server be run with the -probeonly option. The RAMDAC option you're going to use should also be specified, as this may affect the results in some cases.

For the 2MB Hercules Graphites with the "herc-dual-dac" RAMDAC specified, the probe will generate an additional 16 clocks with values double the corresponding values from the first set. Unusable values will be zero: for the first 16, clocks that would conflict with values in the second set or are greater than usable by the 44-pin RAMDAC, and for the second 16, clocks outside the 84-pin RAMDAC's clock- doubling range. Clocks from the first set will be used with the 44-pin RAMDAC (BT481 or BT482) and the doubled clocks from the second set by the 84-pin RAMDAC (BT485 or AT&T20C505). For Example:

The AGX-015 2MB Hercules Graphite VL Pro with an ICS1494M 9251-516 clock chip has probed clock values of:

               25.18  28.80  32.70  36.00  40.00  45.00  50.40  64.70
               70.10  76.10  80.60  86.30  90.40  95.90 100.70 109.40
Actual values according to Hercules are:
               25.175 28.322 32.512 36.000 40.00 44.90 50.35 65.00
               70.00  75.00  80.00  85.00  90.00 95.00 100.0 108.0
These are the values to be used in the clock statement if specifying the "normal", "bt481", or "herc_small_dac" RAMDAC in your XF86Config.

BUT, if using the "herc_dual_dac" RAMDAC, and with an AT&T20C505-13 84-pin RAMDAC, the clocks should be (approx):

               25.18  28.32  32.51  36.00  40.00  45.00  50.35  65.00
               70.00  75.00  80.00  85.00   0.00   0.00   0.00   0.00
               0.00   0.00   0.00   0.00    0.00  90.00  100.7  130.0
               0.00   0.00   0.00   0.00    0.00   0.00   0.00   0.00
If equipped with a BT485-135 RAMDAC, the clock statement should be (approx):
               25.18  28.32  32.51  36.00  40.00  45.00  50.35  65.00
               70.00  75.00   0.00  85.00   0.00   0.00   0.00   0.00
               0.00   0.00    0.00  72.00  80.00  90.00  100.7  130.0
               0.00   0.00    0.00   0.00   0.00   0.00   0.00   0.00

NOTE: Clock probing takes care of these details for you, provided the RAMDAC parameter is the same when probing the clocks as when you use the resulting clocks.

Clock probing assumes that the first clock is 25.175Mhz and uses that to derive the rest. A warning is displayed if the second is not near 28.322Mhz. If this warning appears, you should not use the probed clock values without additional verification from other sources.

In the case of the AGX-014 and later AGX's, only the external clock select lines are used, this means the clock values correspond to the values of the video board's clock chip.

For the AGX-010, the first 8 clocks use the standard XGA internal clock selects and the second 8 are based on some AGX extensions. For the XGA-1 only 8 clocks are available. The XGA-2 uses a programmable clock.

The maximum pixel clock generally allowed is 85Mhz, but some RAMDACs support higher values. In any case you, should check your RAMDAC, some RAMDACs used on AGX based boards are produced in versions rated to lesser values than the server assumes. You should check the rating and limit yourself to that value.

Modes:

One difference I've noted from the Mach8, is that the AGX's CRTC doesn't like the start of the horizontal sync to be equal to horz blank start (vert sync may have the same problem, I need to test some more). Interlaced and +/-sync flags are supported but have had very little testing.

The doublescan flag is now supported, however the minimum clock supported is generally 25Mhz, so resolutions of less than 400x300 are not likely to be supported by most monitors. In creating doublescan mode timings, the vertical timings will match the apparent resolutions, e.g. for 400x300 the timings should describe 300 lines, not 600.

Examples:

For the Hercules HG720 (2MB VLB AGX-015, with BT481 and AT&T20C5050 RAMDACs), I use the following XF86Config "Device" section:

             Section "Device"
                 Identifier "HG720"
                 VendorName "Hercules"
                 BoardName  "Graphite VL Pro"
                 Chipset    "AGX-015"
                 Clocks     25.2  28.3  32.5  36.0  40.0  45.0  50.4  65.0
                            70.0  75.0  80.0  85.0  0.00  0.00  0.00  0.00
                            0.00  0.00  0.00  0.00  0.00  90.0  100   130
                            0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00
                 Videoram   2048
                 RamDac     "herc_dual_dac"
                 Option     "dac_8_bit"
                 Option     "no_wait_state"
             EndSection
For the Spider Black Widow Plus (2MB VLB AGX-016, with Sierra SC15021 RAMDAC):
             Section "Device"
                 Identifier "SBWP"
                 VendorName "Spider"
                 BoardName  "Black Widow Plus"
                 Chipset    "AGX-016"
                 Clocks      25.2  28.3  39.9  72.2  50.0  76.9  36.1  44.8
                             89.0  119.8 79.9  31.5 110.0  64.9  74.9  94.9
                 Videoram   2048
                 RamDac     "SC15025"
                 Option     "dac_8_bit"
                 Option     "no_wait_state"
             EndSection

Next Chapter, Previous Chapter

Table of contents of this chapter, General table of contents

Top of the document, Beginning of this Chapter