Notes on upgrading system with Asus M3A rev 1.x motherboard

The Asus M3A 1.xx (not to be confused with the M3A-H) is a decent Socket AM2+ motherboard.  Despite being dated (having been released in 2007), it’s still part of a usable — if trailing-edge — desktop system today.  The main limitations are DDR2 RAM, SATA II, PCIe 2.0, HyperTransport 3.0, and those of the Phenom CPU platform itself.  Here is a small guide for upgrading this system to the maximum.

CPU

While the M3A is a Socket AM2+ motherboard, as long as the BIOS is compatible and the motherboard supports the voltage requirements, a socket AM3 CPU can be used in it.  The caveats as versus a native AM3 system will be that it is physically impossible to use DDR3 RAM in a system without DDR3 slots.

The best CPUs that are available for this system are:

* Phenom II “Thuban” hexa-core – the Phenom II X6 1065T is the fastest 95W TDP model

* Phenom II “Deneb” quad-core – the Phenom II X4 B99 is the fastest 95W TDP model.

Several faster 125W TDP models are available and should work, but the best price/performance and operating cost come in the 95W range.

The Phenom II X4 B99 (AMD part number HDXB99WFK4DGM) can be found for around $50 on eBay today, and I have tested it to be fully compatible with the last BIOS (1206) released by Asus in 2010, despite that the CPU release date came after that BIOS release.

There is one caveat with this CPU: Cool ‘n Quiet, AMD’s dynamic clock scaling feature, may have to be disabled to prevent the system from occasionally, and randomly, hanging.  No other solution was found, even improving cooling or attempting to restrict the range of clock speeds available for scaling.

Cool ‘n Quiet can be disabled in the BIOS settings. To disable Cool ‘n Quiet at runtime on Linux instead, simply add the following to /etc/rc.local or other startup script:

$ for core_policy in /sys/devices/system/cpu/cpufreq/policy*; do echo performance > ${core_policy}/scaling_governor; done

CPU cooler

I found that despite the Phenom II X4 B99 being rated for 70C maximum case temperature in the AMD Power and Thermal Data Sheet (see section 2.3.13), it becomes unstable once the motherboard thermal diode reads above 62C or the internal sensor reads above 49C or so.

As it turns out, the Phenom internal temperature sensor cannot be trusted due to Erratum 319 (discussion here). The Linux k10temp driver tries to blacklist the known non-working cores (stepping C2 and below), but the blacklist does not include the X4 B99 because it’s a C3 stepping.

To reason about this, you can safely assume that the core temperature is actually higher than whatever temperature the external motherboard thermal diode is reporting, even if the on-die sensor presumes to report a lower temperature.  So ignore k10temp in that case (and I filed a bug to investigate this).

One very effective CPU cooler for the M3A is the Arctic Freezer 13 CO. It is easy to install; just make sure it is oriented in such a way that the fan airflow direction is correct. With this cooler the motherboard thermal diode temperature stayed consistently at or under 60C even while the CPU was at max clockspeed, eight burnP6/burnMMX instances were running, and two HD 60fps fullscreen YouTube videos were simultaneously playing. One thing to note with this cooler is that the DIMM clearance is tight; the fan will have to be popped off to access the 1st DIMM slot. If your DIMMs have heat spreaders that extend past the top of a normal-height DIMM stick, the first DIMM slot will likely be unusable. Otherwise it is a great choice.

RAM

Both Socket AM2+ and Socket AM3 CPUs support DDR2-1066 (PC2-8500) RAM.  However, I was unable to make any PC2-8500 RAM that I tried actually work reliably at 1066MHz speed, regardless of limiting the number of modules, setting looser timings, or adding voltage.  All modules would eventually fail memtest86 or become unstable in operation.

The best configuration I was able to install is this:

* 8GB (4x2GB) OCZ Platinum OCZ2P10662G, running at 800MHz CL5 despite being rated for 1066MHz CL5 (strangely, 1066MHz CL5 is not a JEDEC standard configuration)

Any attempt to run this or any other memory at 1066MHz, regardless of slower timings and higher voltage, eventually failed.

It is conceivable that 1066MHz actually cannot work on this motherboard.  While Asus’ marketing material advertises that “Dual Channel DDR2 1066″ is possible, no 1066MHz module is actually listed as qualified in the “Qualified Vendor List” in the motherboard manual.

If you can figure out how to make this work, tell me!

 

Leave a Reply