WRT 3200ACM replace 1G RAM

Sudden fantasy, the WRT3200ACM changed 1G RAM. But memory has identified a bit of a problem, only 512M. Ask for help%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20180515152253

You will likely need to patch the DTS file coming from Linux kernel, as it defines the memory size to be only 512 MB.


memory {
	device_type = "memory";
	reg = <0x00000000 0x20000000>; /* 512 MiB */

You should place the patch in target/linux/mvebu/patches-4.14
Example of such a patch


Hmm I wonder how one can figure out the amount of RAM without disassembling the device

To be honest i'd love to have 1GB ram with my WRT3200ACM but is it really useful atm ?
I'm using my Router for pppoe@50mbps, SQM-QoS, VPN and DynDNS and therefore 512mb should be allright ?

Imho Linksys should use 1GB of RAM right from the start of the WRT3200acm and announce that their TOP end Home Router got twice as much ram compared to a Netgear X4S R7800 for example...
Well ram is very expensive these days, maybe thats why the only put 512MB :wink:

Well, if you solder a new larger RAM chip into the device, like OP did (based on the photo), I guess that you will need to open the case in any case... :yum:

1 Like

Ah, got it wrong, misinterpret that manufacturer had changed its specification on recent supplies :slight_smile:

According to what you said was not successful, an error occurred in the compilation process. It may be because I am a novice.

Show us the exact patch that you tried.
Filename and contents, as well as the exact error.

(one typical mistake: space vs. tabs)


Your screen shot shows as the first line "a-385-large..." the last line of the actual relevant error message from patch handling. The lines before that are the actual error.

Patch itself looks ok, assuming that you have the space in beginning of each line (before the first tab character. except of course those + - lines.)


Can you write a correct patch for me?

Based on your screenshot:

  • error: line 7 of the patch is malformed. error message shows text "1024", but that is not shown right on the patch text. So, you show different patch here than you have used for the compilation try.

But here is a try for you:

--- /arch/arm/boot/dts/armada-385-linksys.dtsi
+++ /arch/arm/boot/dts/armada-385-linksys.dtsi
@@ -52,7 +52,7 @@
 	memory {
 		device_type = "memory";
-		reg = <0x00000000 0x20000000>; /* 512 MiB */
+		reg = <0x00000000 0x40000000>; /* 1024 MiB */
 	soc {

But I have not tried to evaluate, if some other patch already modifies that file ealier. (that is based directly on the original Linux kernel). but the error message said malformed patch, so it was more about patch technical format than unmatch with the source file. My guess is missing "first space" on empty-looking lines.

Thank you, no error is being compiled, wait for the next test

Brother, I have found no other reason.
The original factory "uboot" cannot be identified.
Memory should be soldered,
First remove 1 256M and replace 256M memory.
Then the second 256M memory cannot be switched on.
Both of them are replaced with 512M memory to boot up. So there is nothing wrong with welding.
Here is the screenshot of my uboot startup.QQ%E6%88%AA%E5%9B%BE20180522201901

Can someone help me solve uboot's problem?

I do not understand your last three posts...
Which uboot problem?
It's okay if uboot detects only 512M istead of 1024M.
Linux dont rely on uboot if it's setup correctly in dts...

Here you go 999-armada-385-linksys-1024M-RAM.patch

Looking at your picture, it seems to me that boot_count is now 3.
You might need to reset it to 0 in order to avoid recovery mode.

The dual firmware system maintains a counter of failed boots and the counter is normally reset after a successful boot. It is possible that you need to clear it now. You might need help from actual wrt1900 series specialists.

But you did not explain what your actual problem is. Boot process stops there?

Once I tried to increase the memory from 256 MB to 512 MB on WRT1900AC v1, and as you patch the kernel, but alas, it did not work. Most likely a limitation at the iron level, but perhaps U-boot.
Disassemble and assemble U-boot, I did not have enough experience.

I found that the original firmware startup sequence is u-boot> similar to OpenWrt> linksys
Because u-boot limits the memory address size, the boot firmware can only recognize 512M