Platform forum

system boot problem because of DDR2

Andrius , 06-25-2016, 04:04 AM

My device consists of :
-SoC (processor with integrated LAN, WiFi)
-SPI flash memory for program code
- 2x DDR2 memories
-Linux (openWRT) is running in the device, with uboot bootloader

Problem: sometimes (about 1 time of a 50) device doesn't boot at all. There is no output from UART.I see that CPU tries to read data from Flash and flash memory responds with some short answer. But after a few repeated reads from flash everything stops.

My guess is that device stops because it fails communicating with RAM. I have also found that it works perfectly with another brand of DDR2. But i have to use the current brand.
The device works perfectely when it boots up..

1) Could you guess what is problem root cause here?
2) Maybe i need to tweak bootloder to adapt it to my current RAM? What main parameters should i change?
3) Is there some good ram tests on opwnWRT to tell me if my layout is good? I know that layout isn't optimal (some track lenghs are not matched, some of them has different topology than others..) i tied "mtest" command on bootloder but it tells everything is ok.

I'm looking forward to your relies
robertferanec , 06-26-2016, 10:26 AM
Hello @Andrius.

This can be anything

If your board would not even try to read the flash, it cloud be a problem with oscillators not coming up, power leaking (e.g. if you have it connected to different system for example through serial port), wrong power sequencing etc.

What is unusual, that you can see CPU trying to read from FLASH.

Is the problem consist? I mean, if a board has this problem, can you easily repeat it or it is completely random? Is it always the same board (if the board has problem, it keeps having it, if it doenst have the problem, it never has it)?

Changing DRAM may influence more parameters, but it doesn't have to mean it is DRAM (e.g. it still can be power seqeuncing, reset timing, power consumption, soldering, ...)

Does the bootloader always come up (even on the faulty boards)?

Have a great day,
Andrius , 06-26-2016, 12:21 PM
Hello, Robert,

I can repeat the problem easily for the boards that have it (Winbond RAM), but for the boards with different type of RAM the problem never appears. Checked the power sequencing, reset timing- all is OK (at least it is the same for the boards that start and for the boards that don't)

Bootloader for the faulty PCBs comes up when the device starts, but when it don't - i don't see any bootloader output on UART..

Any ideas?
robertferanec , 06-26-2016, 12:28 PM
Does the bootloader run from internal CPU SRAM? What CPU do you actually use?
Andrius , 06-26-2016, 12:39 PM
The bootloader runs from external SPI flash memory, CPU is Atheros AR9344 http://cykey.ca/~cykey/airport/AR9344.pdf
robertferanec , 06-26-2016, 01:19 PM
I had a look around a little bit, but could not find a document describing the booting process (you know, the kind of document which describes what happens after reset step-by-step). Have you found this kind of document?
Andrius , 07-05-2016, 09:27 AM
Hello, i don't have boot sequence document. But i found the problem - modifying bootloader (RAM initialisation) helped.Now it starts everytime. I am improving layout a bit now. Are the series termination resistors always necessary? I have no space for them, because DDR2 is close to CPU.
robertferanec , 07-05-2016, 07:44 PM
That is perfect!

I almost never use series termination resistors, but you may ask you chip manufacturer what they recommend.
Use our interactive Discord forum to reply or ask new questions.
Discord invite
Discord forum link (after invitation)

Didn't find what you were looking for?