NotebookForums.com › Forums › Notebook Manufacturers › Acer Forums › Acer Notebooks › HOW-TO: Ferrari 4000 DDR400 memory on Linux
New Posts  All Forums:Forum Nav:

HOW-TO: Ferrari 4000 DDR400 memory on Linux

post #1 of 4
Thread Starter 
Hi all,

A few months ago I upgraded the memory of my Ferrari 4005 with two sticks of 1GB DDR400 memory (OCZ4001024VSO) and for sure I wanted to bypass the stupid BIOS defaults and run the memory at the expected 200 Mhz that both the Turion processor and the ATI chipset support. That can be done with the A64tweaker on Windows, but there's no such thing for Linux. I did a bit of research and found a simple solution though.

Disclaimer: I've tested this only on Ubuntu Feisty (AMD64) and on a single machine, my own, so I can't say for sure that it will work for you.

1. First check that the pci utils are installed on your system. On Ubuntu Feisty, they are included in the default installation:

setpci --version

Mine reads: setpci version 2.2.4

2. Use the setpci command to change the value of the RAM frequency:

IMPORTANT: Execute this command on an idle system! If not, this might crash the machine and a cold boot will be required.

Open a terminal console and write:

sudo setpci -v -s 0:18.2 96.b=70:70

Note that the setpci command needs root access; the easiest way in Ubuntu is to prefix it with sudo.

If everything went right, you will see in the terminal something like 5b -> 7b and the RAM will be happily running at 200Mhz... until the next reboot. It would be great if this could be run at boot time, but I haven't found the way yet. If I add it to the rc.local script, the system crashes when starting up the X server Maybe someone here can enlight me?

How to check for improved performance

Run this command a few times before and after the frequency change, with the system idle, to verify the memory performance:

sudo hdparm -T /dev/hda

(As I understand, this won't access the hard disk, but rather do a calculation with a buffer on memory)

I get around a 10% increase in memory bandwitch. Shiny.

What happened here, for the technical inclined

AMD saved the day because the embedded DRAM controller on the processor is programmable through the standard PCI interface. It's even fully documented (gasp!).

The DRAM MEMCLK Frequency setting is located on the byte at the offset 96h (DRAM Configuration High Register) of the PCI bus 0h, device 18h (AMD CPU), function 2h (DRAM controller). The AMD documentation states that the bits we are interested in are bits 6-4. Possible values are:

000 = 100 MHz
010 = 133 MHz
101 = 166 MHz
111 = 200 MHz

We have to apply a mask so that the setpci tool modifies only these three bits and doesn't mess with the other ones. The required mask is 70h (01110000), which coincides with the value we want to set (01110000) since it corresponds to a frequency of 200 Mhz.

Enjoy.

Reference

"BIOS and Kernel Developer's Guide for AMD Athlon 64 and AMD Opteron Processors" Look for Chapter 3, 3.5.11.2 DRAM Configuration High Register
http://www.amd.com/us-en/assets/cont...docs/26094.PDF

The PCI Utilities
http://mj.ucw.cz/pciutils.shtml
post #2 of 4
Great to know, thanks!
post #3 of 4
So I just did the same thing. Bumped my memory up to 2 gig on my ferrari 4005 which is running feisty.

If you add
setpci -v -s 0:18.2 96.b=70:70
to /etc/rc.local ubuntu will run it on boot.
so
sudo gedit /etc/rc.local
and put the setpci thing before the exit 0

bam it fixes your timings on boot

post #4 of 4
wait you said you can tweak the ram in windows to make it run at 400mhz. so what program is it that you use? it you can lmk it be great!
New Posts  All Forums:Forum Nav:
  Return Home
  Back to Forum: Acer Notebooks
NotebookForums.com › Forums › Notebook Manufacturers › Acer Forums › Acer Notebooks › HOW-TO: Ferrari 4000 DDR400 memory on Linux