Will you pls give a detail tutorial with pics when you are free,
that be greatly appreciated by all the dir-825 users.
Sorry for my bad English ;-(
Objective: Increase the amount of RAM from 64 MB to 128 MB by soldering memory chips in a router.
Reason: I'm using a router as a small NAS server with P2P download/upload station. I have internet connection at my home via twisted pair with static addressing at 100 Mbps rate.
Router was flashed under OpenWRT, installed Transmission Daemon, Samba 3.
At speeds under 100Mbit and 64MB of RAM on the router speed of download/upload of Transmission varies from 512K to 4MB, and I can see that the router does not have enough memory and it starts to swap to an USB stick which mounted as swap partition.
Attention: If you want this mod you necessary open a router that has a loss of warranty!
If you want make this mod yourself you must have good soldering skills!
Whatever you do with the router, YOU DO AT YOUR OWN RISK!
This article - a compilation of my posts from the IXBT forum (http://forum.ixbt.com/topic.cgi?id=14:49819) with some modifications.
1. Flashing full flash from a router Netgear WNDR3700 to a DIR-825 Rev:B2. Because standard DIR-825 U-boot can’t load Linux kernel of the firmware and abort firmware loading process without any error messages when 128MB RAM installed.
2. Soldering ICs.
Re-flash I performed by the method of direct programming SPI Flash via LPT port.
1. Disassemble router
2. Install and solder in the empty holes JP1 connector pins for Serial console (you can use the pins from the old motherboard, etc.), in order to monitor the boot process after flashing full flash.
Pinout connector JP1 is: PIN1-> 3.3V; PIN2-> RX; PIN3-> TX; PIN4-> GND.
3. Use a serial cable on MAX232 to connect to serial console, or another cable which can be made from old cable for mobile phone, I used a USB cable from an old mobile phone Siemens M55 assembled on the PL-2303 chip.
4. Check the work of serial console. Connect cable to your PC and router and run terminal client, I used PuTTy http://www.chiark.greenend.org.uk/~sgtatham/putty/
COM port settings: 115200/8/1/0/none
After turning on the router with connected serial cable you should see a messages in terminal client during boot the router like this:
U-Boot 1.1.4 (Apr September 2009 - 12:01:01)
AP94 (ar7100) U-boot 0.0.12
HTTP-UID AP94: DRAM: b8050000: 0xc0140180
Top of RAM usable for U-Boot at: 84000000
Reserving 214k for U-Boot at: 83fc8000
Reserving 192k for malloc () at: 83f98000
If you do not see these messages, then something is wrong with your cable, port, etc .... locate the errors and correct it.
5. Find a IC SPI Flash Spansion S25FL064A (Package SO3 016 wide), it is located on the backside of the router PCB.
Datasheet for flash chip here: http://www.spansion.com/Support/Datasheets/S25FL064A_00_C4_e.pdf
6. You can use various ways to flashing SPI chip, I use self-made simple LPT adapter.
Make adapter for LPT port, the circuit here http://rayer.ic.cz/elektro/spipgm.htm , but these article for another type of chip (thanks for the links user lprot from IXBT forum).
In our case, pins connections are follows:
DB25 # PIN IC S25FL064A # PIN
7 -----------[ 150R ]----------- 7
10--------- [150R ]----------- 8
8 -----------[ 150R ]---------- 16
9 -----------[ 150R ]---------- 15
18----------- ----------------- 10 GND or "GND" on JTAG pads.
I used a ribbon cable with stranded wire from the old 40 pin ATA cable, alternating signal wires with the ground for better noise immunity and DB25 connector from standard LPT cable.
It should be noted that the cable should be as short as possible, I got about 10-12 cm
Photos of the cable: http://images.4m.net.ua/images/86098268307367770773.jpg
7. Connection to the flash chip:
If there is no external power supply for +3,3 V then necessary carefully lift the IC’s pins listed above over PCB.
WARNING: Beware of lifting the pins of flash IC, they are very fragile and are more likely to snap off at the body.
In order not to break off IC’s pins, I made an external power supply for +3,3 V, using the integrated voltage regulator for +3,3 V from the old motherboard and power supply from the external HDD with +5V and +12V. «+3,3V» power supply should be connected to the pin “2” of IC S25FL064A. Perhaps you can use two large size batteries type «D» 1,5V instead of the power supply, but with the batteries I have not tried ...
9. Connect the LPT adapter to the chip and computer and connect +3,3V external power supply, or batteries you must see light of some LEDs on the board.
10. So, if everything is done properly download the program software from the link http://rayer.ic.cz/programm/programm.htm#SPIPGM
Run DOS session, I use a FAR manager under Win XP SP3 and try determine the chip with the key “i”
Program should show:
SPI connected to LPT port at I / O base address: 378h, SCK pulse width: t 0us FlashROM JEDEC ID, type: 010216h Spansion S25FL064A (8MB)
If you see “unknown chip” there is a problem with LPT cable connection, check connections and try again.
Dump content of the chip twice in to files and compare it between each other.
(for example: fc / b test_1 test_2) if no differences, then you can read/write the chip’s content without errors. If you see differences then shorten the LPT cable.
11. Download and save the full flash Netgear WNDR3700 from here: http://upload.com.ua/get/901949950/128M-dir-825-to-N ... gear-WNDR3700.zip
This is a firmware with bootloader from Netgear WNDR3700 with default password.
12. Before flashing the firmware allow record in chip with the key “u”
13. Erase chip with the key “e”
14. Program chip with key “p”
SPIPGMW.EXE /p file_name
15. Dump chip content to a file with key file “d”
SPIPGMW.EXE /d filename_1
16. Check the programming, by comparing recorded file and recently dumped file
fc / b filename_1 filename_2.
Files must be equal.
17. Disconnect LPT cable and external power supply, try to boot. Look at the serial console terminal program you will see a standard boot log of Netgear WNDR3700
(Below is the log with the already soldered 128MB memory)
U-Boot 1.1.4DNI1.6 (May 22 2009 - 16:37:44)
WNDR3700U (ar7100) U-boot 0.0.12
DRAM: b8050000: 0xc0140180
Top of RAM usable for U-Boot at: 88000000
Reserving 315k for U-Boot at: 87fb0000
Reserving 192k for malloc () at: 87f80000
Reserving 44 Bytes for Board Info at: 87f7ffd4
Reserving 36 Bytes for Global Data at: 87f7ffb0
Reserving 128k for boot params () at: 87f5ffb0
Stack Pointer at: 87f5ff98
Now running in RAM - U-Boot at: 87fb0000
id read 0x100000ff
flash size 8MB, sector count = 128
Flash: 8 MB
*** Warning - bad CRC, using default environment
Net: ag7100_enet_initialize ...
CHH: mac: 0 if: 2
CHH: mac: verify: 0 if: 00,000,002
: Cfg1 0xf cfg2 0x7014
eth0: c0: 3f: 0e: 7f: 26:1 f
CHH: mac: 1 if: 1
CHH: mac: verify: 1 if: 00,000,001
: Cfg1 0xf cfg2 0x7014
eth1: c0: 3f: 0e: 7f: 26:20
: Unit 0 phy is up ... RGMii 1000Mbps full duplex
# 259: ag7100_set_mac_from_link
: Pll reg 0x18050010: 0x11110000
: Cfg_1: 0x1ff0000
: Cfg_2: 0x3ff
: Cfg_3: 0x8001ff
: Cfg_4: 0xffff
: Cfg_5: 0xfffef
: Done cfg2 0x7215 ifctl 0x40605060 miictrl 0x22
Client starts ... [Listening] for ADVERTISE ... TTT
Retry count exceeded; boot the image as usual
nmrp server is stopped or failed!
Hit any key to stop autoboot: 1 0
Verifying Checksum ... OK
# # # SQUASHFS loading 'image / uImage' to 0x80800000
# # # SQUASHFS load complete: 886690 bytes loaded to 0x80800000
# # Booting image at 80800000 ...
Image Name: MIPS OpenWrt Linux-126.96.36.199
Created: 2010-08-25 22:27:19 UTC
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 886626 Bytes = 865.8 kB
Load Address: 80060000
Entry Point: 80060000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
# # Transferring control to Linux (at address 80060000) ...
# # Giving linux memsize in bytes, 134217728
At this stage we have received from the WNDR3700 Netgear instead of DIR-825.
Then you can start resoldering memory chips if you have a good soldering skills:
In the DIR-825 rev.: B2 uses two DDR chips in TSOP 66 with 16Mx16 organization for a total of 64MB, MOSEL VITELIC V58C2256164SC15 Datasheet for them here: http://pdf1.alldatasheet.net/datasheet-pdf/view/2414/MOSEL/V58C2256164S.html
Original memory chip on the PCB DIR-825
I used for mod chips from the Samsung DDR SO-DIMM 512MB with 32Mx16 organization IC type K4H511638D-UCB3 photo: http://images.4m.net.ua/images/43227162731589091754.jpg
Possible to use chips from other manufacturers only organization must be 32Mx16, chips with another organization, such as 64Mx8 not suitable.
If both chips normally resolder the router must wake up as the Netgear WNDR3700 with 128MB of memory, You need only install OpenWRT in order to use all 128MB.
TIP: Firmware from Netgear cannot use 128MB, just only 64M.