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.