[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Xfree 4, I can't get it working.



Hi.

In <[🔎] 20001103091005.A4944@warande1124.warande.ruu.nl>,
  on Fri, 3 Nov 2000 09:10:05 +0100,
    on Re: Xfree 4, I can't get it working.,
 Michiel Meeuwissen <M.Meeuwissen@warande.uu.nl> wrote:

> (II) ATI: ATI driver (version 6.0.7) for chipsets: ati, ativga
> (II) Primary Device is: PCI 01:00:0
> (II) ATI:  Candidate "Device" section "Generic Graphics Device".
> (II) ATI:  Shared PCI/AGP Mach64 in slot 1:0:0 detected.
> (II) ATI:  Shared PCI/AGP Mach64 in slot 1:0:0 assigned to active "Device" section "Generic Graphics Device".

> (II) ATI(0): Primary V_BIOS segment is: 0xf000

Is this right setting ?  I think some BIOS can change the base address
of Video BIOS.

> (II) Loading sub module "vbe"
> (II) LoadModule: "vbe"
> (II) Reloading /usr/X11R6/lib/modules/libvbe.a
> (EE) ATI(0): unknown reason for exception
> X86_IP:0000 X86_AX:4f00 X86_BX:0000 X86_CX:0000 X86_DX:0000 X86_SI:0000 X86_DI:1000 X86_BP:0000 
> X86_SP:00fa X86_CS:c000 X86_SS:0030 X86_ES:0000 X86_DS:0040 X86_FS:0000 X86_GS:0000 X86_EFLAGS:00033282 
> stack at 0x000003fa:
> 00 00 60 00 00 32 f8 03 f8 02 00 00 00 00 78 03 
> code at 0x000c0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
>                     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
> (EE) ATI(0): cannot continue
> (II) ATI(0): VESA BIOS not detected
> (WW) ATI(0): Unable to correctly retrieve adapter BIOS.

BIOS detection failed, thus

> (--) ATI(0): ATI 3D Rage Pro graphics controller detected.
> (--) ATI(0): Chip type 4742 "GB", version 4, foundry UMC, class 0, revision 0x01.
> (--) ATI(0): AGP bus interface detected;  block I/O base is 0xD000.
> (==) ATI(0): Using gamma correction (1.0, 1.0, 1.0)
> (II) ATI(0): Using Mach64 accelerator CRTC.

> (--) ATI(0): ATI Mach64 adapter detected.
> (--) ATI(0): Internal RAMDAC (subtype 1) detected.
> (==) ATI(0): RGB weight 888
> (==) ATI(0): Default visual is TrueColor
> (WW) ATI(0): Cannot shadow an accelerated frame buffer.
> (WW) ATI(0): Unknown programmable clock generator type (0xFFFFFFFF) detected.
> (--) ATI(0): Pixel clocks available:
> (--) ATI(0): pixel clocks:   0.000   0.000   0.000   0.000

This problem happened.  Rejections of the specified video modes below
was mainly caused by this mis-configured pixel clock.

> (II) ATI(0): Generic Monitor: Using hsync range of 30.00-70.00 kHz
> (II) ATI(0): Generic Monitor: Using vrefresh range of 50.00-160.00 Hz

> (WW) ATI(0): Default mode "800x600" deleted (bad mode clock/interlace/doublescan)
> (WW) ATI(0): Default mode "800x600" deleted (bad mode clock/interlace/doublescan)
> (WW) ATI(0): Default mode "800x600" deleted (bad mode clock/interlace/doublescan)
> (WW) ATI(0): Default mode "800x600" deleted (bad mode clock/interlace/doublescan)
> (WW) ATI(0): Default mode "1024x768" deleted (bad mode clock/interlace/doublescan)
> (WW) ATI(0): Default mode "1024x768" deleted (bad mode clock/interlace/doublescan)
> (WW) ATI(0): Default mode "1024x768" deleted (bad mode clock/interlace/doublescan)
> (WW) ATI(0): Default mode "1024x768" deleted (bad mode clock/interlace/doublescan)
> (WW) ATI(0): Default mode "1024x768" deleted (bad mode clock/interlace/doublescan)
> (WW) ATI(0): Default mode "1152x864" deleted (bad mode clock/interlace/doublescan)
> (WW) ATI(0): Default mode "1280x960" deleted (bad mode clock/interlace/doublescan)
> (WW) ATI(0): Default mode "1280x960" deleted (bad mode clock/interlace/doublescan)
> (WW) ATI(0): Default mode "1280x1024" deleted (bad mode clock/interlace/doublescan)
> (WW) ATI(0): Default mode "1280x1024" deleted (bad mode clock/interlace/doublescan)
> (WW) ATI(0): Default mode "1280x1024" deleted (bad mode clock/interlace/doublescan)
> (WW) ATI(0): Default mode "1600x1200" deleted (bad mode clock/interlace/doublescan)
> (WW) ATI(0): Default mode "1600x1200" deleted (bad mode clock/interlace/doublescan)
> (WW) ATI(0): Default mode "1600x1200" deleted (bad mode clock/interlace/doublescan)
> (WW) ATI(0): Default mode "1600x1200" deleted (bad mode clock/interlace/doublescan)
> (WW) ATI(0): Default mode "1600x1200" deleted (bad mode clock/interlace/doublescan)

> (WW) ATI(0): Mode pool is empty
> (II) UnloadModule: "ati"
> (II) UnloadModule: "vbe"
> (II) UnloadModule: "ddc"
> (II) UnloadModule: "int10"
> (EE) Screen(s) found, but none have a usable configuration.

Since there are no usable mode lines, Xserver exits with error.

drivers/ati/aticlock.c in ph2v23 source tree (sorry older one,
I have not catch up with the current one) said:

 * The oldest Mach64's use one of the non-programmable clock generators
 * described above.  In this case, the driver will handle clocks in much the
 * same way as it would for a Mach32.
 *
 * All other Mach64 adapters use a programmable clock generator.  BIOS
 * initialisation programmes an initial set of frequencies.  Two of these are
 * reserved to allow for the setting of modes that do not use a frequency from
 * this initial set.  One of these reserved slots is used by the BIOS mode set
 * routine, the other by the particular accelerated driver used (MS-Windows,
 * AutoCAD, etc.).  The slots reserved in this way are dependent on the
 * particular clock generator used by the adapter.

And drivers/ati/atipreinit.c:

/*
 * ATIPreInit --
 *
 * This function is only called once per screen at the start of the first
 * server generation.
 */
Bool
ATIPreInit
(
    ScrnInfoPtr pScreenInfo,
    int flags
)
{
#   define           BIOS_SIZE       0x00010000U     /* 64kB */
    CARD8            BIOS[BIOS_SIZE];
#   define           BIOSByte(_n)    (BIOS[_n])
#   define           BIOSWord(_n)    (BIOS[_n] |                \
                                      (BIOS[(_n) + 1] << 8))
#   define           BIOSLong(_n)    (BIOS[_n] |                \
                                      (BIOS[(_n) + 1] << 8) |   \
                                      (BIOS[(_n) + 2] << 16) |  \
                                      (BIOS[(_n) + 3] << 24))
    unsigned int     BIOSSize = 0;
    unsigned int     ROMTable = 0, ClockTable = 0, FrequencyTable = 0;
    unsigned int     LCDTable = 0, LCDPanelInfo = 0;
(snip)
    /*
     * For Mach64 adapters, pick up, from the BIOS, the type of programmable
     * clock generator (if any), and various information about it.
     */
(snip)
        /* Set up non-zero defaults */
        pATI->ClockDescriptor = ATIClockDescriptors[ATI_CLOCK_FIXED];
        pATI->ClockNumberToProgramme = -1;

        ROMTable = BIOSWord(0x48U);
        if ((ROMTable + 0x12U) > BIOSSize)
            ROMTable = 0;

        if (ROMTable > 0)
        {
            ClockTable = BIOSWord(ROMTable + 0x10U);
            if ((ClockTable + 0x20U) > BIOSSize)
                ClockTable = 0;
        }

        if (ClockTable > 0)
        {
            FrequencyTable = BIOSWord(ClockTable - 0x02U);
            if ((FrequencyTable > 0) &&
                ((FrequencyTable + 0x20U) <= BIOSSize))
            {
                for (i = 0;  i < 16;  i++)
                {
                    pATI->BIOSClocks[i] = BIOSWord(FrequencyTable);
                    FrequencyTable += 2;
                }
            }
            pATI->ProgrammableClock = BIOSByte(ClockTable);
            pATI->ClockNumberToProgramme = BIOSByte(ClockTable + 0x06U);
            switch (BIOSWord(ClockTable + 0x08U) / 10)


So if BIOS detection failed, then it will cause the failure of Clock 
detection, I think.

see doc/README.ati also.

Regards.
-- 
  Taketoshi Sano: <sano@debian.org>,<sano@debian.or.jp>,<kgh12351@nifty.ne.jp>



Reply to: