Erik Andersen is trying to expand the RAM on Codepoet.org. Right now it has just 64M. Because I am running on a NetWinder, I know I can expand the memory to 256 Megs, but apparently this requires that I modify a SODIMM. I currently own a 256Meg SODIMM that contains 8 Samsung K4S560832C chips on it that I hope to make work on my NetWinder.... These chips seem to be 256 Mbit (32M x 8, organized as 4 banks x 8M x 8). Unfortunately, The FAQ answer on how to expand your NetWinder's memory leaves something to be desired. This pages is an effort to fill in some of the details....
As far as I can tell, the current 64 Meg memory module on the NetWinder uses 8
Hynix HY57V651620 chips, which seem to be 64 Mbit (4M x 16,
organized as 4 banks x 1M X 16), making them exchangable with the Micron MT48LC4M16A2, and NEC UPD4564163.
I have taken several pictures of the current memory, which I have annotated for clarity.
Here is a copy of the 66/100 MHz PC100 SDRAM SODIMM Specification,
and here is a copy of the 133MHz PC133 SDRAM SODIMM Specification.
Here is a copy of the 21285 Core Logic for SA-110 Microprocessor spec, which describes in Chapter 4 the Netwinder's Footbridge to which RAM is connected.
For a 256 Meg SODIMM to work, you must have NeTTrom Ver. 2.3.3 or better installed on your Netwinder. To check what your NetWinder is doing, plug in a null-modem serial cable to the NetWinder's serial port, then run minicom (9600bps, 8N1, no flow control) and watch what you see at bootup.
This is what I see on my Netwinder:
Checking 256 megs/ 4 banks...no Checking 128 megs/ 2 banks...no Checking 128 megs/ 4 banks...no Checking 64 megs/ 2 banks...no Checking 64 megs/ 4 banks...yes [NeTTrom] Ver. 2.3.3 (c) 1997,1998,1999,2000 REBEL.COM [NeTTrom] Built on Aug 1 2000 18:52:29This is what I see on my Netwinder when I plug in my 256 Meg SODIMM with no modifications:
Checking 256 megs/ 4 banks...no Checking 128 megs/ 2 banks...no Checking 128 megs/ 4 banks...no Checking 64 megs/ 2 banks...no Checking 64 megs/ 4 banks...no Checking 32 megs/ 2 banks...no Checking 32 megs/ 4 banks...yes [NeTTrom] Ver. 2.3.3 (c) 1997,1998,1999,2000 REBEL.COM [NeTTrom] Built on Aug 1 2000 18:52:29
Now here is the problem. A SODIMM is 64 bits wide, but the ARM memory bus is just 32 bits wide. However, the NetWinder's footbridge (the 21285) has 4 chip select lines, while the SODIMM has just two. So the designers of the NetWinder decided that they would hack the SODIMMs for the NetWinder, making them run with a 32-bit but, but with twice as many banks.
The SODIMM hack seems to modify the SODIMM so that 4 of the chips (2 on the front and 2 on the back) seem to have been left stock, while 2 of the chips on the back side of the SODIMM have their Chip Select line wired to pin 70 on the SODIMM (with the original CS trace most likely cut), and 2 of the chips on the frontside have their Chip Select line wired to pin 72 on the SODIMM (also with the original CS line probably cut). The SODIMM specs say that pin 70 is A12 and SODIMM pin 72 is A13. This initially struct me as being pretty strange -- what are the address lines for? I then realized that they are not using them as address lines at all! This also means that, since address line A12 is being used for bank switching, it cannot be used for addressing RAM. This means that, according to Table 4-1 and 4-2 of the NetWinder's footbridge docs, we cannot use RAM that requires multiplexor mode 010 (ie. we can use up to 4M chips, but 8M chips (such as are used in my Samsung K4S560832C based SODIMM) simply will not work at all). Looks like I will need to buy a different SODIMM. Bummer. :-(
As near as I can tell, I believe that prior to the hardware hack, all 4 chips on the front of the SODIMM had the chip select lines wired to S0# (Chip Select line 0 -- SODIMM pin 69), and all 4 chips on the back of the SODIMM had their chip select lines wired to to S1# (Chip Select line 1 -- SODIMM pin 71). After the hardware hack it looks like 1/2 the RAM on the front of the SODIMM is wired to S0#, and the other half is wired to A12 (which is presumably acting now as Chip select 2 -- S2#). Same deal with the back of the SODIMM -- after the hardware hack it looks like 1/2 the RAM is wired to S1#, and the other half is wired to A13 (which is presumably now acting as Chip select 3 -- S3#). In this way, they would get 4 banks of memory -- with each bank being 32 bits wide.
I think that if I buy a 256 Meg SODIMM that uses 16 chips, and has no PLL on it, I should get 128 Megs from it unmodified. And if I cut half the CS lines, and then wire together 1/2 of those to SODIMM pin 70, and the other half to SODIMM pin 72, then I should get a 256 Meg SODIMM working on the NetWinder. So far, I have had some sucess searching Google with the string "256MB 32M x 64 144-pin SODIMM".
I would like to thank Andrew E. Mileski and Ralph Siemsen for helping me figure
out all this stuff (at least as far as I have things figured out).
Last modified: Tuesday, 30-Oct-2001 20:11:34 MST
Mail all comments, insults, suggestions and bribes to Erik Andersen email@example.com