NSLU2- | HowTo / OverClockTheSlug http://www.nslu2-linux.org/wiki/HowTo/OverClockTheSlug?action=print

From NSLU2-Linux HowTo: OverClockTheSlug

There appear to be two models around -- please verify that you are running at 133 before doing anything else ''' Tired of sluggish performance? Want to squeeze a bit more out of your slug? Feel that you're not getting the dish you paid for? Overclocking (De-underclocking) the NSLU2! (or how to get your own TurboSlug)

Notes on Slugs supplied at 266Mhz:

Edit: My brand new Slug comes from factory with BogoMIPS : 263.78, so it is already running at 266 MHz ?. The Slug is marked with a sticker: Manufactured 05/2006. Maybe someone from Linksys has read this page :) Edit: Mine also comes from factory running at 266Mhz ;) - Manufactured 05/2006 Edit by Bullfrog: Mine also comes from factory running at 266Mhz ;) - Manufactured 05/2006 - R64 is also now no longer fitted next to flash chip near which with R83 fitted and R81 missing - gives the undocumented code for 266Mhz Edit by Charly: Mine also comes from factory running at 266Mhz ;) - Manufactured 05/2006. Also the French power adapter is twice smaller for same power (5V 2.0A) Edit by halfer: purchased 10/May/2007 and found that the " XScale ??-IXP425/IXC1100 " is already running at 263.78 BogoMIPS

Notes on Slugs supplied at the standard half speed:

Edit by Steve 2/25/2007: Purchased yesterday. Mine came with V2.3R73. Only a windows guy so couldn't verify speed. Task manager showed 31% network usage on large files (>2 GBytes ?). Opened case and found R83. Removed it with my soldering iron with no problems. Closed case and started NSLU2 again and found that task manager showed 48% network usage on large files.

Edit by ambanmba 6/14/2007: Purchased at a high volume retail store in downtown Sydney, Australia with Slug supplied at half-speed. No MFG date on the box or motherboard, the serial number is SGA00F101272 ?. Performed mod with a razor blade as per the instructions below and all is well now at 266Mhz.

Warning: This is EXPERIMENTAL. Follow these instructions at your own risk!

Warning: This WILL void your NSLU2's warranty!

The NSLU2 as supplied from Linksys actually runs the IXP420 at half its rated clockspeed using an undocumented setting. You can fix the NSLU2 to run the IXP420 at the full 266MHz by removing a single SMD resistor which sets the IXP420 at a documented and recommended setting. Restoring the rated clockspeed only affects the XScale core inside the IXP420. The external interfaces will stay at their respective speeds.

Procedure

1 of 10 27.06.2007 08:03 NSLU2-Linux | HowTo / OverClockTheSlug http://www.nslu2-linux.org/wiki/HowTo/OverClockTheSlug?action=print

This is really, really simple (If you've got the proper tools). All you need to do is to desolder one resistor (albeit small , it's rather easy). You might need some solderwick, if you make a mess.

The process goes like this:

1. Read the whole procedure first. Make sure you understand what you're doing.

2. Optional: To verify that your slug is slow; from a telnet window, cat /proc/cpuinfo You should see a BogoMIPS value of around 133. Bogo means "Bogus", so don't worry if it's +/- 10!

3. Plug in your soldering iron.

4. While waiting for it to heat up, unplug your slug and open the case .

5. Locate R83. It's just right of the flash chip (The one that says ). Between the flash and the power button there is a row of resistors, with an empty space on the bottom. The one just above the empty space is R83. You can confirm this by looking at the legend on the top right of the flash chip.

6. Use soldering iron, tweezers, solderwick or whatever means necessary to remove the resistor. Just make sure you don't damage anything else or drop it on the floor as it's pretty small. You may wish to keep the SMD resistor just in case in the future you want to add it back. Not that there is any good reason you'd want to.

7. Make sure you haven't shorted anything. Check again.

8. Plug in your slug.

9. Power up and enjoy your MHz*2 slug. The slug, as manufactured by Linksys, is running at ½ the default speed.

10. While you're waiting for it to boot, add your entry to the database .

2 of 10 27.06.2007 08:03 NSLU2-Linux | HowTo / OverClockTheSlug http://www.nslu2-linux.org/wiki/HowTo/OverClockTheSlug?action=print

11. Optional: To verify that your slug is now faster; from a telnet window, again cat /proc/cpuinfo You should see a BogoMIPS value of around 266. Bogo still means "Bogus", so don't worry if it's +/- 10! This is actually the result of a delay loop calibration in the kernel, and certainly not the total perfomance story. But it will confirm that you made the change that you thought you did.

--- If you just cannot wait until the soldering iron heats up: Alternative method of removal of the resistor requires sharp box cutter or a scalpel. Position of the resistor on the board makes it easy to simply cut the resistor in half. Resistor is fragile, it will shatter and pieces will fall out. Make sure pieces do not stick around on the board. Enjoy ! Andrei Volkov --

--- I used a small cutter (looks like a wire cutter) that came with screw driver kit to shatter the R83. I found this to be a little safer than using a box cutter or exacto knife because there is less of a chance of damaging the PCB. With one snip, it was quickly and cleanly cut in two. Lastly, I used one of those 'dust off' cans to clear the dust and fragments. -Martin J. Hsu

--- I have around ... zero soldering skills so I didn't want to accidentilly destroy anything else on the board. So I used a razor blade (the kinds you can get in those 50 packs). I picked at the solder joint on the left side, and eventually broke that whole joint. then just lifted the resistor up, and it snapped off. Fairly quick, took about ... 10 minutes all togeather. -Sharth

--- After seeing Martin's post above, I realized that a simple, cheap 0.99c pair of small pharmacy-store nail clippers would do the trick in cleanly removing the resistor without cutting or with heavy force. Same idea as using a pair of pliers: carefully position the "mouth" of the clipper perpedicular to the resistor and apply consistant pressure. A slight twist and the surface mouth resistor should come off quite happily. "- Wei A. Tsang"

--- Just want to second Wei Tsang's recommendation about nail clippers. First thing I did with my slug, before I even plugged it in, was to crack open the case and clip off R83. It worked perfectly and was really easy to do. The resistor's small enough that it took me one or two tries to get the clippers to grab on, but once I'd found the proper angle (YMMV) it took one snip and that was it. Reassembled the case and the slug booted perfectly. -acm.

--- Ditto to success with Nail Clippers. Resistor just ends up as dust. Very quick and easy. -mjed.

--- I sawed off R83 with an XActo ? knife, and it worked perfectly. Be aware that increasing the clock frequency will also shorten (to about 0.8 seconds) the window within which RedBoot is open to a telnet connection, making it that much more difficult to gain access (see HowToTelnetIntoRedBoot ). -Ian

--- Cut with a standard cutter, After I go from 3.94mb/sec to 5,35mb/sec -overlord

If you're happy about overclocking your slug, you may want to send in a donation to the project.

You might want to keep an eye on the temperature, especially if you're running the slug inside its casing. In my experience running outside the case, it keeps a comfortable temperature around 40°C. YMMV!

--- The easiest way might be the 'solder ball trick'. Get a soldering iron (no more than 25W or you'll tear the tracks off the board) and melt a blob of solder onto the tip. Move it into position so that the blob is touching both ends of the resistor simultaneously. Wait for the resistor to stick to the solder, then just lift off the iron. Use some desolder wick to remove any solder left on the pads, check for shorts, then put the Slug back together again. Beats trying to melt one side, then flip to the other before the solder cools down. It also pretty much removes the risk of destroying tracks on the board that the knife/boxcutter method carries. Unless you decide to use a 100W solder gun instead of a 25W iron (or a temperature controlled

3 of 10 27.06.2007 08:03 NSLU2-Linux | HowTo / OverClockTheSlug http://www.nslu2-linux.org/wiki/HowTo/OverClockTheSlug?action=print

iron set to about 330 Celsius).

--- Tried the nail clippers trick - but found it v difficult to get a grip. I eventually used the point of a compass to destroy the resistor - probably not to be recommended. Rebooted, and it took ages, with the "ready LED" flashing continuously - I thought I'd squashed my slug!. Eventually it came up, and everything is OK and BogoMips confirmed I has performed the procedure successfully. - Luke

--- I also used a nail clipper. The angle is not so obvious: I just got the jaws to make slight contact with the resistor and lightly twisted. Very easy. Runs much smoother now. -The Phil

--- I've done this with no cutting anything. Check the table, just added a new 10 K resistors (R81) on the empty slot (A22) (just below the red rectangle on the picture). Like this just, to remove it if I want to go back. Like this A21,A22 and A23 are set to 0. Charly

--- I couldn't managed to cut the resistor with a blade (perhaps mine was slightly blunt) so I used a pair or small embroidery scissors to get a grip on the resistor and pull it off. End result was just the same. -Ed

---Complete idiot success. I had no idea really what I was doing and I somehow did it. Used the nail clipper method.

---One more noob success. Sharp little blade of a Swiss Army Knife® and 3minutes time = turbo-slug!

---Performance frustration success. One evening when it went slow on me I just went and did it nailclipper style. Its a new slug on steroids. Why didnt I do this before?! Hardest part was opening the case. The instructions were a bit vague.

---Did it with very sharp nail scissors. I just cut R83 into two pieces. The slug works without problems, but you can hear a verry quiet sound at a verry high frequency. Almost not hearable for me. Can anyone exlpain to me, where this sound comes from?

---I managed to get the resistor off using a nail clipper after some preliminary cutting of the solder using a utility knife. Everything seems to be running fine at 266 MHz ?. Opening the case without breaking the tabs was the hardest part. I'm running NSLU2 ? (Etch). 2007-04-07.

Logo

This was easy - thanks for the info! I used an exacto knife and a magnifying glass. Here's an overclock logo to match. Originals and Photoshop files at michaelebrown's site .

Temperature and power considerations

The slight increase in power consumption (see Power measurements below) is negligible. The increase in core temperature caused by this is also negligible. The maximum temperature measured by using IR thermometers on the IXP has been 52°C. The maximum temperature of the IXP core power regulation circuitry has been 42°C. All power and temperature values have been well below the rated maximums given in the various datasheets and will comfortably support operation for extended periods of time with

4 of 10 27.06.2007 08:03 NSLU2-Linux | HowTo / OverClockTheSlug http://www.nslu2-linux.org/wiki/HowTo/OverClockTheSlug?action=print

the case on and in a hot room.

We are not overclocking the IXP420. It has been tested for operation at 266MHz by Intel and marked as so. There are no signs that the IXP420 used in the NSLU2 is anything other than a standard part. All the markings and CPU IDs have been exactly as they should be.

It is currently unknown why Linksys decided to halve the clockspeed using an undocumented setting but we have not found any reason to not reset it to 266MHz. At the time of this writing, there have been over 530 modified NSLU2's and each one has been operating under heavy load with no problems.

The small change in power consumption can have some effect. For example, I can get it to boot with a Fujitsu 20GB (5V .55A), but can't get it to boot with a Samsung 40GB (5V 0.7A). (michaelebrown)

<<<<<<< WARNING: My overclocked slug repeatedly crashed on hot days this summer. Room temerature was always beyond 27° C and the slug crashed during longer read/write operations. Under these conditions the behaviour was absolutely reproducible, that is, I could not get it to read or write larger sets of data without crashing. At cooler temeratures the bahaviour was gone, so it looks like a clearly heat-induced problem. I do not know about the bahaviour of a non-modified slug at these conditions (joerg107) As for the comments below: Others seem to have better luck with their O/C slug. However, it was my slug that crashed, not the HD. I did test for that. I run the slug from a Flash Memory and it also crashed, when the (additional) HD was removed. I did not test, however, whether my Flash Memory still works at 30+°C. (joerg107)

As aside the above warning...I currently have two slugs O/C to 266 with 3 drives on each. This summer when my A/C was being replaced it was 99F (37C) in my house for about 4 days and my two slugs never crashed and functioned properly. So you mileage may vary due to room temp (shiett)

I live in Rio, where temperatures easily reach more than 35C and my O/C 266 slug never crashed, even during long (more than an our) backup sessions, I recommend checking the harddisk temperature before blaming the slug itself. A good heat dissipation enclosure choice is fundamental for no-power-off use. (marcelo vianna). >>>>>>>

I live in Denmark, have only 22C in my rooms. My 133 slug crash every time I do "long" sessins (50Mb - 1Gb). If I cool it down with a little fan it nevver crash at all. ( TomKirk ?)

Another sucsess, using very small screwdriver to simply crush the resistor. Also made about 8 small holes in the top of the casing to allow a little more air though, just in case overheating becomes an issue - 17/2/2007).

Technical

The XScale core in the IXP420 can be forced to operate at a lower speed than the factory set speed. This is done by a series of pull down resistors connected to the IXP expansion bus which are read at reset. The expansion bus pins on the IXP420 are internally pulled up so default to 1. A 10K pull down resistor is used to set it to 0.

The core speed can not be changed once started so it is a hardware only mod. The part on the current revision NSLU2s is a B0 stepping IXP420 rated for operation at 266MHz.

Strapping For 133MHz operation (Linksys For 266MHz Expansion bus resistor default) operation

5 of 10 27.06.2007 08:03 NSLU2-Linux | HowTo / OverClockTheSlug http://www.nslu2-linux.org/wiki/HowTo/OverClockTheSlug?action=print

A21 R83 10K pull down Removed A22 R81 Empty Empty A23 R64 10K pull down 10K pull down

The NSLU2 as from Linksys is set for 133MHz operation using the undocumented setting of 010. This causes the IXP420 to divide the core speed by 2.

Removing R83 changes the configuration to 011 which is documented on page 325 of the http://www.intel.com/design/network/manuals/252480.htm IXP420 Developers Manual for operation at 266MHz.

Settings for core clock speed

A23 A22 A21 Speed 0 0 0 266MHz 0 0 1 266MHz 0 1 0 133MHz - Linksys default (Undocumented) 0 1 1 266MHz - Recommended modification 1 0 0 266MHz 1 0 1 ?? (Undocumented) 1 1 0 266MHz (Undocumented) 1 1 1 ?? (Undocumented)

It is unknown whether the last two combinations will produce a greater than 266MHz speed but it is very unlikely. Chances are that it'll set for 266MHz operation.

A turbo-button alternative to removing R83:

Rather than removing R83, I added a switch + 10K resistor in the pads for A22/R81 (see picture above, switch+resistor wires are soldered in the space below the red box). I positioned my turbo-button at the back of the slug, next to the Ethernet plug. The switch can change the speed of the slug from 133 to 266MHz and back. This is great if you want some oomf for development but also need to test software at the original speed. Unlike a PC turbo-button, speed is set before switching on the device. Speed cannot be changed once the Slug is on. This is my own experience with a single device, take with a pinch salt: In terms of current consumption, I noticed that my slug hooked to a 2.5" 12GB Toshiba hard drive (USB powered) will not boot with the original 5V 2A power supply. It will boot fine however, with a 5V 2.5A power supply.

Potential for overclock to > 266MHz

The IXP420 is locked to a specific maximum frequency at the time of manufacture by Intel. There is no known way to override this frequency lock. There are two unknown combinations for the clock setting strapping resistors but it is unlikely to cause the IXP420 to run at greater than 266MHz.

One possible method is to change the 33MHz oscillator used in the NSLU2 for a higher frequency part. This will cause the IXP420 to run at a high core speed but this will also have the unfortunate outcome of increasing the PCI, expansion and SDRAM bus. The Intel flash attached to the expansion bus and the

6 of 10 27.06.2007 08:03 NSLU2-Linux | HowTo / OverClockTheSlug http://www.nslu2-linux.org/wiki/HowTo/OverClockTheSlug?action=print

SDRAM attached to the SDRAM bus should be capable of working at a higher speed but the NEC USB 2.0 host controller on the PCI bus is known to be very particular about bus speed.

A NSLU2 with a new 36MHz oscillator (I desoldered the old 33MHz one) is still working fine, but the frequency reportet via dmesg (OpenSlug) and cat /proc/cpuinfo is still 266MHz resp. BogoMIPS . :-(

The above isn't really too surprising - The time will also be running 10% fast unless the kernel was modified to calculate a different value for the timer that generates the jiffy counter.

Benchmarks

Some (simple) test results:

Time spent finding 9009 digits of e:

OC'ed slug: real 0m26.250s user 0m26.140s sys 0m0.070s

Normal slug: real 0m 52.80s user 0m 52.22s sys 0m 0.02s

133MHz core speed: Dhrystone Benchmark, Version 2.1 (Language: C) Register option not selected. Microseconds for one loop: 5.8 Dhrystones per second: 173913.0 VAX MIPS rating: 98.983

266MHz core speed: Dhrystone Benchmark, Version 2.1 (Language: C) Register option not selected. Microseconds for one loop: 2.9 Dhrystones per second: 345065.6 VAX MIPS rating: 196.395

Pre modification: $ hdparm -tT /dev/sda

/dev/sda: Timing cached reads: 148 MB in 2.04 seconds = 72.55 MB/sec Timing buffered disk reads: 24 MB in 3.06 seconds = 7.84 MB/sec

Post modification: # hdparm -tT /dev/sda

/dev/sda: Timing cached reads: 184 MB in 2.03 seconds = 90.64 MB/sec Timing buffered disk reads: 26 MB in 3.16 seconds = 8.23 MB/sec

LMBench Results:

7 of 10 27.06.2007 08:03 NSLU2-Linux | HowTo / OverClockTheSlug http://www.nslu2-linux.org/wiki/HowTo/OverClockTheSlug?action=print

L M B E N C H 2 . 0 S U M M A R Y ------Basic system parameters ------Host OS Description Mhz

------slug2 Linux 2.6.11. armv5teb-linux-gnu 133 slugracer Linux 2.6.12 armv5teb-linux-gnu 266

Processor, Processes - times in microseconds - smaller is better ------Host OS Mhz null null open selct sig sig fork exec sh call I/O stat clos TCP inst hndl proc proc proc ------slug2 Linux 2.6.11. 133 2.09 4.29 40.1 47.7 261.1 7.72 22.2 4921 15.K 65.K slugracer Linux 2.6.12 266 0.63 2.12 24.4 28.2 126.9 3.99 10.9 2504 8619 42.K

Context switching - times in microseconds - smaller is better ------Host OS 2p/0K 2p/16K 2p/64K 8p/16K 8p/64K 16p/16K 16p/64K ctxsw ctxsw ctxsw ctxsw ctxsw ctxsw ctxsw ------slug2 Linux 2.6.11. 186.7 337.8 736.1 361.1 763.6 361.9 753.3 slugracer Linux 2.6.12 126.3 253.4 584.8 272.4 600.3 266.7 593.2

*Local* Communication latencies in microseconds - smaller is better ------Host OS 2p/0K Pipe AF UDP RPC/ TCP RPC/ TCP ctxsw UNIX UDP TCP conn ------slug2 Linux 2.6.11. 186.7 407.6 1148 833.3 2065 slugracer Linux 2.6.12 126.3 238.4 503. 598.6 1482

File & VM system latencies in microseconds - smaller is better ------Host OS 0K File 10K File Mmap Prot Page Create Delete Create Delete Latency Fault Fault ------slug2 Linux 2.6.11. 1062.7 1356.9 3759.4 2008.0 1959.0 1.539 83.0 slugracer Linux 2.6.12 499.3 771.0 1865.7 1075.3 1135.0 1.471 66.0

*Local* Communication bandwidths in MB/s - bigger is better ------Host OS Pipe AF TCP File Mmap Bcopy Bcopy Mem Mem UNIX reread reread (libc) (hand) read write ------slug2 Linux 2.6.11. 19.6 24.2 21.3 30.9 64.4 36.9 43.3 64.4 68.3 slugracer Linux 2.6.12 26.6 26.8 24.4 38.3 97.1 44.5 50.6 97.1 79.0

Memory latencies in nanoseconds - smaller is better (WARNING - may not be correct, check graphs) ------Host OS Mhz L1 $ L2 $ Main mem Guesses ------slug2 Linux 2.6.11. 133 22.5 242.7 252.5 No L2 cache? slugracer Linux 2.6.12 266 11.3 175.2 186.7 No L2 cache?

Power measurements

Idle: Running idle in RedBoot

Running: Running a small prog which does:

Some arithmetic (mul,add,sub) Write data to the SDRAM Toggle a LED (occasionally)

Current: Calculated current supplied at the 5V line, while running

8 of 10 27.06.2007 08:03 NSLU2-Linux | HowTo / OverClockTheSlug http://www.nslu2-linux.org/wiki/HowTo/OverClockTheSlug?action=print

Temp: Temperature measured at the center of the IXP420 after 30 minutes in state "Running"

Core-Clock Idle Running Current Temp 133MHz 8.1W 8.6W 1.72A 42.0°C 266MHz 8.2W 9.0W 1.8A 43.6°C

note: These measurements were taken at the mains-side of the PSU and thus include the power-consumption (loss) of the PSU.

Further note: Measuring the AC draw with a Kill-a-watt meter, a total draw of 5W including a laptop hardrive (Samsung MP0603H) was measured on a 266MHz slug, so this is a very different measurement. The Power factor was bad, so the VA draw (the apparent usage) was 9-11, but it's Watts you're billed on. More data points required! For explanation of VA, PF, etc., Google "Power Factor" VA Watts .

More Power measurements

These measurements courtesy of yahpn.

Measurements taken on the low voltage (5V) side, post power supply.

nsieve is an old benchmark that uses more memory as it goes along. It shows peak power usage when the L1 D-cache thrashing but no swapping is happening. gzip is "cat /dev/zero |gzip - |gunzip - > /dev/null"

Test Core-Clock Installed OS Current Idle 133Mhz Unslung-3.18 0.50A Idle 266Mhz Unslung-3.18 0.51A Idle 266Mhz Openslug-2.0 0.51A nsieve 133Mhz Unslung-3.18 0.59A nsieve 266Mhz Unslung-3.18 0.59A nsieve 266Mhz Openslug-2.0 0.57A gzip 133Mhz Unslung-3.18 0.52A gzip 266Mhz Unslung-3.18 0.54A gzip 266Mhz Openslug-2.0 0.52A

Benchmarking on Unslung with nbench

To install nbench:

install nbench-byte

My sad results on a new nslu2 clocked to 266mhz by Linksys:

nbench ? BYTEmark * Native Mode Benchmark ver. 2 (10/95) Index-split by Andrew D. Balsa (11/97) Linux/Unix* port by Uwe F. Mayer (12/96,11/97)

TEST : Iterations/sec. : Old Index : New Index

9 of 10 27.06.2007 08:03 NSLU2-Linux | HowTo / OverClockTheSlug http://www.nslu2-linux.org/wiki/HowTo/OverClockTheSlug?action=print

: : Pentium 90* : AMD K6/233* ------:------:------:------NUMERIC SORT : 92.96 : 2.38 : 0.78 STRING SORT : 4.517 : 2.02 : 0.31 BITFIELD : 1.8905e+07 : 3.24 : 0.68 FP EMULATION : 8.6342 : 4.14 : 0.96

Thanks

Thanks to dyoung, beewoolie, jbowler, ep1220, rwhitby, jacques, [g2], VoodooZ.

Retrieved from http://www.nslu2-linux.org/wiki/HowTo/OverClockTheSlug Page last modified on June 17, 2007, at 12:54 AM

10 of 10 27.06.2007 08:03