ATI HACK From qb.rhein-main.de!vhs@odb.rhein-main.de Wed Jul 6 05:17 CDT 1994 Return-Path: Received: from ki1.chemie.fu-berlin.de by slowhand (5.0/SMI-SVR4) id AA27098; Wed, 6 Jul 94 05:16:58 CDT Received: by ki1.chemie.fu-berlin.de (Smail3.1.28.1) from odb.rhein-main.de (193.141.47.4) with smtp id ; Wed, 6 Jul 94 12:16 MEST Received: from qb.rhein-main.de by odb.rhein-main.de with uucp (Smail3.1.28.1 #4) id m0qLU2W-000aShC; Wed, 6 Jul 94 12:17 MET DST Received: by qb.rhein-main.de (Smail3.1.28.1 #2) id m0qLUTP-0027eAC; Wed, 6 Jul 94 11:45 GMT+0100 Received: by NeXT.Mailer (1.100) Received: by NeXT Mailer (1.100) Message-Id: Date: Wed, 6 Jul 94 11:45 GMT+0100 From: vhs@qb.rhein-main.de (Volker Herminghaus-Shirai) To: longsg01@slowhand.nmb.com (Gary Longsine) Subject: Re: ATI Mach32 PCI driver??? Reply-To: vhs@qb.rhein-main.de Content-Type: text Content-Length: 6340 In comp.sys.next.misc article <2vc3l1$2kk@slowhand.nmb.com> you wrote: > Does anyone know where I can get the alleged > beta driver for the ATI Mach 32 PCI video? > Please respond via email... > Thanks! > Gary Longsine > longsg01@slowhand.nmb.com (ascii mail only) Try [info|drivers]@talus.com. I know they released one end April, but also heard it's hard to get unless you buy a bundle of drivers from them. If you hear of any alternatives, please let me know. I've been struggling with mine for a while now, and getting tired. BTW I have a Zenith 500 with mach32 and an STG1700 RAMDAC. There is a patch that someone posted a while ago to make ATI/PCI running, but it probably only works if you have one of the NeXT-supported RAMDACs (mine isn't supported, of course :-(. You need the development system, though. Good luck. --------- Cut here ------- >From: keiblin@cs.tu-berlin.de (Alexander Keiblinger) >Newsgroups: comp.sys.next.hardware >Subject: Re: ATI GUP on PCI WORKS!!! ,any interest ? >Date: 28 Jan 1994 13:21:20 GMT >Organization: Technical University of Berlin, Germany > > >Here the howto for the ATI GUP PCI card: >-You need the Developer Package to use it. I am not able to give you self > configuring binaries, because I do not have documentation for different > flavours of ATI PCI card registers. It should work with different RAMDACS. > Mostly the ones you find in the NeXT Code. > > Use this only if you understand the code and/or are sure that your card maps > in at 1GB and has a Video Port Adress of 0x2e0-0x2ef. > I use this pseudo-diff, to let you do some work in the interesting area of the > code, so you can understand what you are doing. You will see the places where > you have to change values to get it working for your own card. > >What to do: > >1) be sure you know, that you can reboot cleanly with RightAlt+RCtrl+NumLock > and then pressing "r" blind. This is for the case your window server comes > up with a wrong aperature address. Then you can reboot with "config=Default" > and fix it in VGA mode. > >2) Change >*** /NextDeveloper/Examples/DriverKit/ATI/Default.table >--- /NextDeveloper/Examples/DriverKit/MyATI/Default.table >* "Memory Maps" = "0x7e00000-0x7ffffff 0xa0000-0xbffff 0xc0000-0xcffff"; >! "I/O Ports" = "0x100-0x105 0x2e8-0x2ef 0x3b0-0x3e0 0x6e8-0x6ef 0xae8-0xaef 0xee8-0xeef 0x12e8-0x12ef 0x16e8-0x42ef 0x46ee-0x46ef 0x4ae8-0x4aef 0x52ee-0xfeef"; > >to: > >! "Memory Maps" = "0x40000000-0x401fffff 0xa0000-0xbffff 0xc0000-0xcffff"; >! "I/O Ports" = "0x2e0-0x2ef"; > >to get new values as Default in Configure.app. The second and third values in >Memory Maps should stay the way they are. > >3) Change > >*** /NextDeveloper/Examples/DriverKit/ATI/ATI_reloc.tproj/ATIModes.h >--- /NextDeveloper/Examples/DriverKit/MyATI/ATI_reloc.tproj/ATIModes.h >* #define INTEL_CORSAIR_FB_ADDR 0x7a000000 >to: >! #define INTEL_CORSAIR_FB_ADDR 0x40000000 > >to burn in my Memory Aperature Address > >4) Add > >*** /NextDeveloper/Examples/DriverKit/ATI/ATI_reloc.tproj/ATI.m >--- /NextDeveloper/Examples/DriverKit/MyATI/ATI_reloc.tproj/ATI.m >*************** >*** 119,126 **** > { > unsigned char *ip; > unsigned int location; /* Base address in Mbytes */ >! > /* > * The PC BIOS is broken into 2 Kb slices. On startup, the ATI BIOS > * stashes away which 2 Kb slice it live in in scratch reg 0. >--- 119,133 ---- > { > unsigned char *ip; > unsigned int location; /* Base address in Mbytes */ >! >! >! #if DEBUG >! IOLog("MemoryAperatureBaseAddress() == 0x%x\n", INTEL_CORSAIR_FB_ADDR); >! #endif >! return(INTEL_CORSAIR_FB_ADDR); /* Return phys address in bytes, not Mb */ >! >! > /* > * The PC BIOS is broken into 2 Kb slices. On startup, the ATI BIOS > >to get burned in configured Aperature Adress and nothing else! > >5) Add > >*** /NextDeveloper/Examples/DriverKit/ATI/ATI_reloc.tproj/ATI.m >--- /NextDeveloper/Examples/DriverKit/MyATI/ATI_reloc.tproj/ATI.m >*************** >*** 160,166 **** >--- 167,180 ---- > { > unsigned char *ip; > unsigned int location; >+ >+ /* >+ * It's never safe to reprogram Corsair Style Bios, as we don't know >+ * how to set the off-chip decoding logic. >+ */ >+ return NO; >+ > #if DEBUG > IOLog("SetMemoryAperatureBaseAddress(0x%x)\n", newLocation ); > #endif > >6) Add > >*** /NextDeveloper/Examples/DriverKit/ATI/ATI_reloc.tproj/ATI.m >--- /NextDeveloper/Examples/DriverKit/MyATI/ATI_reloc.tproj/ATI.m >*************** >*** 510,516 **** >--- 524,534 ---- > * DriverKit which prevents setting addresses in the high 2 Gb of > * address space. > */ >+ >+ break; >+ /* We dont want the following */ >+ > if (range->start != physLoc || range->size < length) { > IOLog("%s: FB addr decodes as 0x%x, overriding configured " > "addr 0x%x.\n", [self name], physLoc, range->start); > >to come around bus logic tests. > >7) Add > >*** /NextDeveloper/Examples/DriverKit/ATI/ATI_reloc.tproj/ATI.m >--- /NextDeveloper/Examples/DriverKit/MyATI/ATI_reloc.tproj/ATI.m >*************** >*** 619,625 **** >--- 637,649 ---- > { > int slot; > unsigned int product_id; >+ >+ /* This is what we want */ >+ IOLog("%s: Assuming a PCI bus ATI card.\n", [self name]); >+ ati_flavor = ATICorsair; >+ return TRUE; >+ > > /* First, scan for a board in an EISA slot. */ > if ([self isEISAPresent] == TRUE) { > >for card id. > >Now you can build the project. Build DEBUG recommended. > >That were the changes in the Driver Kit ATI code to get it going. Now you have >to as root: > >-mv /usr/Devices/ATI.config to /usr/Devices/ATI.config.original >-double click on your new /NextDeveloper/Examples/DriverKit/MyATI/ATI.config > this will install the new Driver. You can choose the resolution and colors. > With colors I get about 0.89 NXBench-marks, monochrome 1.3 NXBench-marks. >-Reboot and press Return on the boot prompt to get around the grafic boot up, > to see all that happens. Mostly the debugging output. >-Be happy or remember point 1) (that one about dirty shutdown). > > > That was it ... Good luck ... Bye > >-- > "I'm sorry Dave, I'm afraid I can't do that" > -- Volker Herminghaus-Shirai (vhs@qb.rhein-main.de) Cogito ergo NeXT - Save the Whales -- Harpoon a Honda