Serkan,

It will be a little difficult to help you debug this problem since you have changed the one thing that you need for a reliable system - the PCB.

But here are a few questions:

How certain are you that the software that you are running is good? How did you program the NAND flash? Make sure you are using the exact same images that work on the EVM - and they are in the same physical locations in NAND. Another possibility is that you are trying to use bad blocks as part of the kernel image. Normally we see that the kernel will not boot because of a bad CRC check, but I think you have gotten past that point (a console print out would be helpful here). There is also a way to use the serial port to download a kernel with zmodem - it's slow but it does work...

Generally we use a JTAG emulator (Olimex or BDI) and download UBL/Uboot and the kernel into memory for our first boot tests. I have also written a a memory test based on UBL that does some simple sanity tests to make sure the hardware can run at speed.

If your Uboot is running without modifying the DDR clocks, you can use the built in commands to modify memory (crude sanity test), dump blocks of NAND, tftp a kernel from the network (if you use the 10/100 PHY on your board) etc.

So here is my suggestion. Back out all of your software changes. Boot to the stock Uboot prompt and load a pristine kernel into memory. Boot the kernel from the memory image and send the results. If all you see is still the "...." then you might very well have a hardware problem.

But, as a long time PCB designer, trace impedance, length matching and very careful layout practices are very important when dealing with DDR. When I designed my dm355 board I was very careful to make sure that the PCB manufacturer gave us boards that matched our impedance goals (in addition to following the layout guidelines). Changing to a 4 layer board, may have altered the impedance of the DDR traces to the point where they have signal integrity issues, which may only show up at very odd times - resulting in instability. Without seeing your PCB stackup, layout (trace width) and other factors relating to trace impedance I can't tell for sure if this is the issue.

At one point I worked on a design done in Taiwan with a DSP that I was familiar with. The design was unstable at several frequencies, and I was able to show that power/ground planes were insufficient to provide a proper return path. The "fix" was to provide a more continuous ground/power plane between the DSP and memory.

I hope all this information helps,

   Steve

Serkan Erdogan wrote:
Hii All,


I have a realy serious problem. Our dm355 based mainboard pcb layout was mainly copied from DM355_EVM so default UBL,Uboot and kernel was were working well on it. But because of high cost of mainboard we decided to redesign mainboard by reducing the pcb-layer count of mainboard. We have designed and produced it with 4 layer pcb. It is working with default UBL and U-BOOT without any problem. Everything to here is perfect but...

After uboot loads kernel to memory and begins to uncompressing kernel kernel never comes to live. It is giving the "Uncompressing kernel........" string to console and than after a lot of ".........." printing out on screen. It stops working. This a lot of dot printing takes nearly 1 minite and than it is freezing.

At first we thought that it is a DDR memory layout problem but after i reduce the CPU and DDR2 speed in UBL to 54MHz for CPU and 43MHz for DDR2 the result is same. u-boot prints out speed information for debugging and so i am sure that PLL clock reducing in UBL is successfull but kernel is still not booting.

Than i have changed the default CAS and READ_LATENCY values of DDR2 controller in UBL code to make DDR2 working on slowest CLOCK speed. The default value of CAS was 4 and READ_LATENCY was 4. I have set CAS to 5 and READ_LATENCY to 7. These are slowest speeds that can be selected according to DM355 DDR2 Controller user-guide. So it must work but no no no. Kernel behaving samely after all.

As Summary; Latest configuration i am trying now is and this configuration is still failing to bring kernel to live:(((
CPU : 54Mhz
DDR2 : 43 Mhz
CAS : 5
READ_LATENCY : 7

I have done the dm355_evm hardware modules testes with CCS 3.3 and XDS510 and RAM and NAND-FLASH testes are passed very easly. Additionally, ubl and u-boot are working problem-free on the board. I think, this point signs that RAM layout is right but WHERE is the problem???

Now, i have no debugger for linux kernel debugging. So i must find the error by hacking and printing-out debug information to console or will flash a led on any gpio line when kernel code execution reached to any known point by me.

Is there any idea from anybody for this problem or any experience on any similar problem? I am deeply in need of any idea for solution. I am ready to consider any point that will speed-up me on the way to solution.

LATEST NOTE : Our pcb layout has an error. It is DDR_DQGATE0 and DDR_DQGATE1 pins are not routed like TI recommends in DDR2 design document (SPRAAR3). They are connected to each other by shortest line on the pcb. But the document says that they should follow the same direction with other DDR2 signals so Dm355 will automatically calculate the best READ_LATENCY value for current RAM layout of special pcb. So i was edited the value of DDRPHYCR1 resigter in UBL code to owercome this layout error. But maybe it is not necessary i dont know.

Because of these layout error and freezing we are still considering that it is a DDR2 problem but after thinking on uboot and ubl are still working on 216MHz CPU and 177MHz DDR2 speed, i am really confused...

Is there any peripheral that can make kernel not-function properly in the early-initialization of linux kernel??? Where can i follw linux kernel boot process more easly without getting lost a very huge number of *.c files. I just wanna learn the place of peripheral initialization triggering file or code??? Where all drivers module init functions are being called in kernel source tree in a defined sequence???

Thank youvery much for reading and further help.


Best Regards,
Serkan Erdoğan...

Best Regards,
Serkan Erdoğan...
------------------------------------------------------------------------

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to