Hi. In <[EMAIL PROTECTED]>, on Fri, 3 Nov 2000 09:10:05 +0100, on Re: Xfree 4, I can't get it working., Michiel Meeuwissen <[EMAIL PROTECTED]> 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: <[EMAIL PROTECTED]>,<[EMAIL PROTECTED]>,<[EMAIL PROTECTED]>