Hi all!
In a custom designed board I have an AM3359 cpu with a ddr2 ram from Micron (part is MT47H128M16). I've found that, despite of high cpu core clock, ddr2 throughput is quite poor.
As a test bench I modified the boot example project (no sys/bios, no dma, no cache) as provided with sdk (1.0.0.4 through 1.0.0.6, no differences) with dummy read from/write to extarnal ddr2 ram:
while (1)
{
unsigned int index;
volatile unsigned short int *p_data;
volatile unsigned short int data;
p_data=(volatile unsigned short int*)0x80000000;
for (index=0; index<(1<<26); index++)
{
p_data[index]=index; //dummy write op.
}
}
This is how WR# signal looks like:

The time between two write operations is about 740ns. I can't figure out the reason.
Same behaviour when reading (instead of writing):
while (1)
{
unsigned int index;
volatile unsigned short int *p_data;
volatile unsigned short int data;
p_data=(volatile unsigned short int*)0x80000000;
for (index=0; index<(1<<26); index++)
{
dummy=p_data[index]; //dummy read op.
}
}
Time between CS# pulses (OE# is differential and I've no hi speed differential probes) is about 820ns.
There is no signal integrity issue: all ram write&read tests perform nicely.
Hints to speedup?