We are using the NS9360. Until now we did use it with 16MB of SDRAM, organized as 1M x 16 bit x 4 banks (Micron MT48LC4M16A2) like it was on the NS9360 StartKit.
Two of this SDRAM chips are connected to CS4, giving the 32 bit bus width.
The Dynamic Memory Configuration Register 0 of the NS9360 is initialized with the value 0x00004280 - 32 bit bus, high-performance SDRAM, 64Mb (4M x 16) size, which does work perfectly.
Now we wanted to increase the SDRAM size to 64MB. We decided to replace the MT48LC4M16A2 with a M12L2561616A (4M x 16 bit x 4 banks), which should give us the 64MB of SDRAM. The address line A12, which wasn’t needed yet, was additionally connected.
In order to support the new SDRAM, we do initialize the Dynamic Memory Configuration Register 0 of the NS9360 with the value 0x00004680, as only the size did change to 256Mb (16M x 16).
The result is however frustrating, as the system doesn’t work at all and isn’t starting up.
Shouldn’t it be enough to just change the Dynamic Memory Configuration Register, as the rest of the SDRAM parameters seem to be more or less equal?
An interesting thing is, that the new SDRAM does work, when we leave the Dynamic Memory Configuration Register as it was for the 16MB of SDRAM - problem is however, that we loose the additional memory [;)]
Even more interesting: if we initialize the Dynamic Memory Configuration Register with the value 0x00004700 (meaning 256 Mb - 8M x 32, which is wrong, as we have two chips to give the 32 bit bus width), we can successfully use 32MB of SDRAM without a problem.
So what are we doing wrong?
By the way: We use Net+OS 7.4.2. In order to get the correct SDRAM initialization, we change the file “init_settings.h” in the corresponding platform folder.