I-Appliance BBS
The Official Source for Internet Appliance Upgrades and Mods
Amazon Honor System Click Here to Pay Learn More
BBS Main List | Sign In | Sign Up | Search | Help | Linux-Hacker.netReply to Thread | Printer |

Home / I-Opener Areas / I-Opener Technical Info Reference (MODERATED)
IO hard drive speed fix - triple your HDD transfer speeds - works in any OS !!
Can be added to the BIOS

New MessageIO hard drive speed fix - triple your HDD transfer speeds - works in any OS !! (modified 0 times) Georgie
Profile
Responding to several people's requests, here it is.

Since this HDD speed tuneup is one of the first optimizations I routinely do on any new PCs, and there were no specific posts about the laughably slow IDE transfer on the IO, I actually didn't know that this fix would be really helpful to others as well. This is why I haven't even thought of letting all of you know about it just until recently. So I actually apologize for not making it public earlier, but I know most of you will still find it very helpful.

Cheers,

Georgie

10-28-2001 20:18:10

New MessageWarnings and disclaimer of liability (modified 0 times) Georgie
Profile
OK Guys, here it is.

This fix can effectively triple your HDD transfer speeds. As always, your milage may vary, but you can count on a dramatic increase in speed.

Basically, by changing a few registers in the IDE controller's PCI configuration space, one can optimize the communication between the IDE controller and the HDD(s). In our case it means speeding it up. It seems that the I-Opener BIOS does not configure the IDE controller at all at boot time. So the IDE controller uses some really slow default timing values. Between each IDE transfer the chipset waits for 9-11 PCI cycles !!! Obviously, it hurts performance really badly.

Now, a few important notes:

WARNING AND DISCLAIMER

Changing IDE timing values involves a certain amount of risk. Applying the wrong values may lead to - almost - irrecoverable data loss. So please, do yourself a favour, and do read the following notes and recommendations. I do try to do my best for you to avoid data loss, but because of differences between our hard drives or some other factors involved, I may be limited in what I can anticipate. So basically: if you blow your HDD, don't blame me, it will always be your fault.

OK, now on to the subject.

There is just one basic rule you must, MUST and once again MUST play by:

Never ever run Windows without first testing that your HDD works flawlessly in DOS. This would be the perfect way to blow all your data.

And a second rule:

The almost certain way to blow all your data: set IDE timings to the speediest setting, Windows to DMA switched on, AND PCI frequency to at least 40 MHz. In other words: prior to even doing anything, please, check that you are not running your system at 83.3MHz synchronuous FSB (that adds up to 41.5 MHz PCI speed). If you are, don't even try to play with this...

37.5MHz PCI speed is OK (75MHz FSB synchronuous).

A note about the IDE cable: well, space is really precious inside the IO, so those of us without a IMOD-2/3 kit have our hard drives connected through the IDE cable folded repeatedly, rolled or forced into the box some other way. Now here is the tricky part: if your folding work is not really HQ, you might have twists and turns which severely hurt signal strength along the cable. So, as a general rule: try to have your cable as clean as possible. One or two clean folds is enough, no overtwisted coil-like superstructures and the like. It won't work. Improvise, but do it nicely.

One last note: please, those of you with older hard drives, models prior to the UDMA-33 era: begin with the least aggressive timing, test for flawless operation in DOS, and only then advance on to the next speedier setting.

OK, that should cover it. Moving on to the more interesting stuff...

Georgie

10-28-2001 20:36:18

New MessageTools and steps to do (modified 0 times) Georgie
Profile
Here are the tools needed, or at least highly recommended:

For reading/manipulating the PCI registers I use John Fine's PCI. You can find it at http://www.execpc.com/~geezer/johnfine/

For quick hard drive speed testing in DOS I use Coretest. Get it here:
http://www.sheridanc.on.ca/~jollymor/hwsw/programs/coretest.exe

To test hard drive transfer data integrity in DOS I use a pair of small com programs from Safebench 2.34, fullnull.com and nullchk.com. Get the package here: http://www.iki.fi/safari/qssb-234.zip

I will describe what to do using these particular tools. You are encouraged to use other software provided that for each timing value you try you do test for data integrity of HDD transfer in DOS prior to going any further.

Now comes the work plan. You are highly recommended to do every part of this operation in DOS. Please, do so.

To be on the safe side, you should - temporarily - stop Windows from loading at startup. Edit msdos.sys in your boot partition's root directory. Inside the file you will see a line saying BootGUI=1. Change that 1 to 0. If no such line exists, add BootGUI=0 under the Options section.

Once in DOS, without Windows auto-loading, you can finally safely try the different timing values.

You would set the values using PCI. Then you would test speed and operation with Coretest. If all OK, you would test data transfer reliability using fullnull.com and nullchk.com. Fullnull creates a giant file in the current directory, it works until you stop it by presssing escape. You can verify the data in that file by just starting nullchk from the same directory.

Now it's time to talk about those timing values....

Georgie

10-28-2001 21:44:09

New MessageIO hard drive speed fix - the values (modified 0 times) Georgie
Profile
Well, here is the hard drive speedup fix itself.

Sooooo....

Step 1: Run coretest once, and note the speed data it gives you. It is not the speed you would actually experience under Windows, because in DOS there is no UDMA driver, so it is simple PIO mode.

Step 2: Set the IDE timings using PCI. You can read more about the usage of pci.exe here.

Here is the command, the IDE speedup fix:

pci r43,7,1=1a r44,7,1=8 r4c,7,1=3f r53,7,1=1 r4b,7,1=X

That big, red X at the end is the most important value. This one makes it or brakes it. Of course, you are supposed to supply a hex number instead of "X". It's default value at boot time is "a8", which leaves a lot of room for improvements. So, here are my recommendations:

Value (X): Recommended for:

a8 Default. NOT recommended. Excessively slow.
54 Very conservative, but still fast. Old HDDs, under 1 GB.
32 Safe, but speedy. UDMA HDDs, over 1 GB.
21 Very speedy! UDMA-33+ HDDs, over 2 GB. All modern drives.
10 For true Speed Freaks with UDMA-66+ drives!!

These are only recommendations. You may want to try other values than what is in this table, and it may work perfectly for you. As a matter of fact, most modern HDDs should work flawlessly with a setting of "10", so yes, you can always try, but do it safely. (No, don't try "0" !) So the next step would be:

Step 3: Test the speed improvement and operational status using Coretest. When using coretest, once again, the speed data are only indicative, and only in comparison to the value at the start.

If coretest fails to complete, hangs, it means that you've gone too far, the timings you chose are too aggressive for your hardware. Take back a notch or two, and try again. If coretest runs like a champ, without a hickup, you are on to something. This is the time to test for the reliability of transfer.

Step 4: Test the reliability of HDD transfer. Run fullnull.com, and wait about a minute or so for it to create a data file of at least 100MB, then stop it by pressing Esc. Check this data file by running nullchk.com. If the data is OK, everything is OK, and should be.

If you have your setting of choice, put it in your autoexec.bat, re-enable Windows to load automatically, reset your IO once, watch as it advances through the boot process, and just as it would start loading Windows, do wish that everything goes well....

Once in Windows, check that the DMA box is checked for the drive, as it should be, and once checked it should stay checked. And did I tell you that you are done? ;)

...........

If you have 2 IDE HDDs on one cable, you can set the timings for each. The timings for the slave drive can be set by adding the value for register "4a" as well, so it should look like this:

pci r43,7,1=1a r44,7,1=8 r4c,7,1=3f r53,7,1=1 r4b,7,1=X r4a,7,1=Y

X is for the master, Y for the slave drive. Again, the value in place of X and Y should be determined based on the table above, or on experimenting. Just never beleive it works without actually testing whether it is reliable.

[........]

BTW, I use my HDD - a 10GB ATA-66 Toshiba - with a value of "10", so I obviously am a speed freak. ;)) Using this configuration gives me maximum speed in this little box. My minimum HDD transfer speeds (!) are above 15MB/s, and Sandra puts my HDD well into the desktop ATA-66 category with an index of more than 11000. So, it is chugging along very nicely....

I hope it will work out for you just as well, but I know it should. Just don't hurry with this, and don't risk your data. Test prior to moving on.

This should be enough to get everyone up to speed. In case you need somewhat more information, or want to ask me something off line, send an email to

"my BBS ID" at chez.com

Good luck to Everyone,

Georgie

10-29-2001 00:30:03

New MessageDiscussion open in the Technical Stuff area ! (modified 0 times) Georgie
Profile
Greetings Everybody,

I just wanted to ask you not to dilute this Reference area with questions and discussing the fix. We should divert that part to the Technical Stuff area. This HDD speed fix is open for discussion over there.

Thank you for your understanding.

See you all there.

Georgie

10-29-2001 21:03:17

Reply to Thread | Printer |
All times are PSTPowered by UltraBoard v1.62



Copyright © 2000, Netmake Inc. All Rights Reserved.
See Terms and Conditions for more information.




i-opener opener laptop notebook computer help drivers dll free windows dos repair fix linux mac macintosh 2000 95 98 nt pc configure hardware software sound video netscape explorer network networking lan wan software cmos fat bios printer card mouse modem ide scsi cd rom controllers scanner tape hard drive cgi scripts source code mp3