I designed my MPC8360E board with 1GBytes DDR-1 memory, I built two demo
boards, one is 533/266/400, the other is 660/330/400. The lower frequancy board 
is
no problem for our program, but the higher frequency board is always problem 
about
the data transmit on ethernet. I want to test 1GBytes DDR-1 memory, I want to know whether or not the DDR is stable and accuracy. Could you tell me a simple way that test my DDR memory?

I use MPC8349E, so the following should be similar.

1) If your board is a PCI agent.

   You can run code on a host CPU that can view the MPC8360 board
   over the PCI bus.

   Setup the MPC8360 to come out of reset with the core held
   in reset.

   Program the DDR controller from the host CPU.

   Program the DMA controller to move data to/from the board DDR
   from/to the host memory (PCI transactions).

   Sweep the DDR MCK and DQS clock skew registers across their
   ranges and check for memory errors.

   You should get two or three settings that work ok.

2) If your board is a PCI host, then its a bit trickier, as you
   ideally want to generate burst traffic to test the DDR controller,
   and since you need to reprogram the DDR controller, you can not
   be running code there, eg. U-Boot.

   If the MPC8360 has an I/O Sequencer (IOS) as on the MPC8349E, then
   I think you should be able to write some code that DMAs from
   Flash to DDR. The IOS should copy the data first to its FIFO,
   and then to the DDR, so it should generate a burst.

   If you have a BDI2000, you should be able to manually program
   the DDR controller and the DMA controller. If you don't, just
   write some simple code that runs from the startup vector,
   eg. copy the contents of start.S up until the stack-in-dcache
   trick, and then you can write some C-code.

Hope that helps.
Cheers,
Dave


_______________________________________________
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded

Reply via email to