OpenWrt Forum Archive

Topic: WRT54G V2 with 32MB RAM

The content of this topic has been archived on 30 Mar 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Some WRT54G V2 have 32MB of Ram, but it will only recognise 16MB of Ram (probably for firmware compatibility). It looks like the Ram size is hardcoded into the bootloader (cfe/pmon). Is there any way to enable the full 32MB of Ram?

The ram size is determined atleast partially by the sdram_* variables in nvram. Setting these variables wrong will prevent cfe from booting, even to the point of recovery. The result is a bricked WRT54GV2 -- it's been tried.

A better strategy would be to extract the ram initialization code from cfe and run it again after bootup, which would allow you to safely play with ram options without breaking cfe. It's entirely possible that the ram isn't even wired to allow access to the full capacity.

It's entirely possible that the ram isn't even wired to allow access to the full capacity.

Interesting point, I already asked if is possible to solder more Flash/RAM myself on the board:
http://www.openwrt.org/forum/viewtopic.php?t=316
The SDRAM is adressed with 16 Bit (x16) and I would be possible to find SDRAM chips for upgrade up to 256 MB. (two 512Mx16). But my question are:
- Does the Broadcom BCM47x2 do support this?
- What is the maximum what the chip can adress?
- I there a signalisation on the board which inform the chip how much memory could be used (like in SDRAM modules of your PC)
- Does the length of the "words" changed by adressing more memory?
Is there any tools to run on the box to get more information about the memory? like:
http://www.pl-berichte.de/work/tuning/dimm.html
But /proc/sys/dev/sensors/ will only exist when the kernel has the module "lm_sensors". Any other ways to get more informations about the RAM?

Greetings, rob

PS: "Avenger 2.0" or sombody else, could you please publish a photo of the board with 32 MB?

The SDRAM chips used is addressed with 16 bit, but as you may know SDRAM chips use address multiplexing with row/column addressing to select a specific word.
It is usually up to the CPU at a very early stage (assembler in bootloader) to set the correct row/column parameters in the SDRAM controller..

On a normal PC the SDRAM module contains a small EEPROM with
the correct memory parameters, these are the values read by the BIOS as startup as well as displayed by the lm_sensors package.

Without any Broadcom datasheet and info about their SDRAM controller I would say that it is very hard to get another memory chip to work.

The following nvram variables on the WRT54GS could perhaps be  of interest to you if you're still not convinced.

sdram_config=0x0022
sdram_refresh=0x0000
sdram_ncdl=0x25
sdram_init=0x0008
pmon_ver=CFE 3.61.13.0

I've got an European version, perhaps there are different memories depending on when/where it's manufactured ?

SDRAM Winbond - W981216BH-75L -  http://www.winbond-usa.com/products/win … 1216bh.pdf

sdram_config=0x0022
sdram_refresh=0x0000
sdram_ncdl=0x25
sdram_init=0x0008

Odd...

sdram_config=0x0022
sdram_refresh=0x0000
sdram_ncdl=0x20
sdram_init=0x0008

sdram_config=0x0022
sdram_refresh=0x0000
sdram_ncdl=0x20421
sdram_init=0x0008

[code]sdram_config=0x0022
sdram_refresh=0x0000
sdram_ncdl=0x20624
sdram_init=0x0008[/code]

That is my GS.  It should be mentioned that I used the "hold reset during power on" method for a clean wipe.  I don't know if it was different beforehand.
[/code]

sdram_config=0x0032 
sdram_refresh=0x0000 
sdram_ncdl=0x3081f
sdram_init=0x0000

My WRT54G with 32MB ram but only 16MB available.

Is there any way of determining from Linux whether the 32mb memory enablement is possible?  I'm looking at giving people firmware to download and don't really want them opening boxes or peering through the case trying to determine what memory chipset there is.

Cheers, Paul.

AFAIK there's no 100% reliable way to determine how much ram the machine has without opening it. You shouldn't play around with that unless you're either 100% certain or got your device JTAG-ready...

sdram_config=0x0062
sdram_refresh=0x0000
sdram_ncdl=0xfd000a
sdram_init=0x000b

WRT54G V2.2 EU

The discussion might have continued from here.