[U-Boot] Problem with U-Boot with running in RAM

Lasse Skov lasko at kk-electronic.com
Wed Dec 2 21:22:16 CET 2009


Hi

I have a problem with running the U-Boot on my own board.
The target porcesser is a MPC8377E with DDR2 ram.

The problem is that the U-Boot has a problem when it try to rellocate itself to RAM.
I know that this could be some timing settings for the SDRAM and the RAM controller.
But the thing is that this is not every time uboot try to relocate itself to RAM.

It is only sometimes it fails, and it is not the same place in the RAM.
If i use my J-Tag (lauterbach), to see what data there is in the RAM, where register r7
point to when the rellocate fails. And also look at the data on the r8 which is in FLASH.
Then I see that my data in RAM is not steady. But if I stop with reading this data.
And instead look another place in ram(0x0). It is steady. If I then view where the
register r7 point to then the data on place 0x0 start switching.

Little example on how the data is switching place.

0x1FF80000  _ _ _ _  _ _ _ _   _ _ _ _  _ _ X X _ _
0x1FF80008  _ _ _ _  _ _ _ _   _ _ _ _  _ _ X X _ _
0x1FF80010  _ _ _ _  _ _ _ _   _ _ _ _  _ _ X X _ _
0x1FF80018  _ _ _ _  _ _ _ _   _ _ _ _  _ _ X X _ _

The data on place X X
Correct   Switched
  data         data
   12           34
   23           56 
   34           12
   56           23

All other data is steady, and I tried to write different pattern in the RAM.
When U-Boot is up running correct I had tried to do some mtest with the 
uboot memory testcommand.

In the FAQ there is this.
"Standard memory tests are not effective in identifying this type of problem
because they do not cause stressful cache burst read/write operations. "

But what exactly does this mean? On my target I has DDR2 ram.
And I thought that only bursted mode access was possible to the RAM on 
DDR2?

So a lot of information hope anyone will help me a little bit. Or maybe 
someone has seen a problem seminary.

Thanks for your time.

/LSkov


More information about the U-Boot mailing list