Linux on the K6-2+/K6-III+

Created on December 3, 2000. Last updated on May 11, 2001.

The Mobile K6-2 (K6-2+) and the Mobile K6-III (K6-III+) are relatively new processors from AMD. They were designed primarily for laptops, but they have become quite popular among do-it-yourselfers with older motherboards, such as the ASUS (430HX, Socket 7) P55T2P4 series (including newer revisions of the P55T2P4 and all revisions of the P55T2P4S). In general, the fastest processor these motherboards supported without overclocking or hardware modifications was the Intel Pentium 233. With the K6-2+/K6-III+, all that is needed is to change a few jumpers (or less) to achieve 400 MHz without running any components out of spec. Note that you may have to drive the processor at a voltage level undocumented in your motherboard's manual. Please see this article for more information. The K6-2+/K6-III+ will not be set up for optimal performance by a BIOS unaware of it, but it will still function. Non-optimal BIOS settings are generally not a problem with Linux because the kernel can set up hardware regardless of the BIOS. On the other hand, if you own a computer whose BIOS was designed to support the K6-2+/K6-III+, the Linux kernel could override the BIOS settings or not recognize the K6-2+/K6-III+'s features. Proper support for these processors now exists in the 2.2.18 (and later) kernel releases.

Besides giving many motherboards a new lease on life, the K6-2+/K6-III+ processors eliminate the common problem of a few years ago of caching memory beyond 64 megabytes. You can now equip these motherboards with a more modern amount of memory like 128 or 256 MB without worrying about a performance degredation or the onboard cache configuration. Of course you're still saddled somewhat by the 66 MHz memory bus. If you're a real experimenter, you can try running your motherboard at 75 or 83 MHz to clock your processor at 450 or 500 MHz, respectively, but overclock other components of your system. I don't recommend overclocking, but if you can make it through several Linux kernel compilations your system will probably be stable in this configuration. The K6-2+/K6-III+ processors still aren't bad with the more modern Super Socket 7 motherboards, though they won't give you a huge maximum MHz boost. The K6-2+ has more cache than the K6-2 and both the K6-2+ and the K6-III+ consume less power than the K6-2 and the K6-III, respectively, so they're better for the environment (and your electricity bill.)

The K6-2+ and K6-III+ processors, according to AMD, feature Power Now!, which slows the processor down when it's on battery power like Intel's competing SpeedStep. This utility allows you to control Power Now! under Linux. These processors also feature new DSP instructions (3dnowext).

Be sure that you've updated to your distribution's release of 2.2.18 or higher of the kernel.

You will see
Enabling new style K6 write allocation for 256 Mb
during the boot sequence informing you that write allocation is now enabled (256 Mb (which really means 256 MB) will be replaced by your system's available memory) and your /proc/cpuinfo will show the following:
flags		: fpu vme de pse tsc msr mce cx8 sep mtrr pge mmx 3dnowext 3dnow
As you can see, the MTRR feature is available. You will need to set it up yourself. For example, I use
echo "base=0xe6000000 size=0x1000000 type=write-combining" > /proc/mtrr
to speed up my Matrox G400 video card. 0x1000000 is just hex for 16 MB (the amount of memory present on my video card) and 0xe6000000 is the location of its linear framebuffer. To determine the latter value, check the output of startx or gdm/xdm's log file (e.g. /var/gdm/:0.log) for a line like this:
(--) SVGA: Linear framebuffer at 0xE6000000
or
(--) MGA(0): Linear framebuffer at 0xE6000000
Take a look at mtrr.txt in the Documentation subdirectory of the Linux kernel tree for more information on this feature. Note that XFree86 4.x will set up MTRR's automatically.

Final thoughts: If only the K6-2+/K6-III+ could work in a dual processor 430HX motherboard...

Comments? Flames? Send them to me at jgotts@linuxsavvy.com.