AMD K6, K6-2, K6-2/CXT K6-III-Utility SetK6, V3 c't, Andreas Stiller March 99 ********************************************************************** SetK6.exe 32 Bit version for Win95/98 and Win NT SetK6D.exe DOS version Direct95.VXD Driver for Win95/98 DirectNT.SYS Driver for NT (V3 hats little corrections against V2, mainly the default size of the frame buffer is changed to 16 MByte) SetK6 controls and sets the internal processor registers for Write Allokation and Write Combining (K6-2/CXT, K6-III only). If the BIOS does not recognize and does not correctly intitialize the processor, it runs about 5 % slower than necessary. Under Windows setk6 is a consol application, which normaly should be started from the MSDOS shell, at least if you want to pass parameters. SetK6, Setk6D without parameters show the actual state. Setk6 /on : activates Write Allocation under Windows for the complete system memory Setk6 /off : deactivates Write Allocation Setk6 /on:xxM: activates WA for memory until xx MByte oder shortform: Setk6 xxM with xx: decimal with suffix M means xx MByte i.e. setk6 64M (without M setk6 interpretes the number hexadecimal in MByte, i.e setk6 64 => setk6 100M) under DOS you always have to specify the maximal memory ! Extension for the K6-2/CXT and K6-III The K6-2/CXT and K6III processors support a so called Write Combining for uncached memory. This enables a much faster access to the linear frame buffer (LFB) of the grafic card. For this the processor offers two Memory Type Range Registers (MTRR), where you can program the physical address and size of the LFBs. Modern grafic cards usually support two LFBs, one for direct accesses and one for the hardware accelerator. setk6 looks into the PCI header of the grafic card, where normally these resources are stored. setk6 /M0:LFB,xxM sets MTRR0 according to the first entry in the PCI header with the size xxM (default 16M) and with attribut WC (Write Combining) setk6 /M1:LFB2,xxM sets MTRR1 to the second Entry You even can specify an attribut, i.e. setk6 /M0:LFB,16M,WC or ...,UC (uncached) ...NE (No effect) If the entries in the PCI header are not conform with the real address of the framebuffer or you have other hardware with PCI-memory, you can specify directly a wanted address (in hex): setk6 /M0:E0000000 which is the same as /M0:3584M If you do not specify a Number with MTRR, setk6 looks for the next unused MTRR: setk6 /M:LFB : first unused MTRR is set for LFB according to the PCI header with default size 16M Mostly the typical setting under Windows looks like this: setk6 /on /M0:LFB /M1:LFB2 and so under DOS with 64 MByte memory: setk6D /on:64M /M0:LFB /M1:LFB2 Andreas Stiller/c't March 1999