[U-Boot-Users] SDRAM cache inhibit

David Clark dlclark at chtech.com
Wed Mar 7 00:51:45 CET 2007

Hopefully this is an easy one.  At first glance this looks like the FAQ
question but there is a difference.

First the background:

I have what I believe is an SDRAM issue.  Linux intermittently locks up
upon boot and I have verified that when this happens there is bad or
invalid instructions at certain memory locations after U-boot
uncompresses the image and loads it into RAM.  I have a few boards that
have never exhibited this problem and some boards that intermittently
exhibit this problem.  I have written a test that uncompress and loads
the image into SDRAM then, rather that booting it, compares the
uncompressed image to a copy of the uncompressed image residing in a
higher area of flash.  This way I can run it in a loop and see the
intermittent failures.

The real reason I'm writing here is because to verify that it is an
SDRAM issue I wanted to inhibit caching of the SDRAM figuring that this
would allow thing to work without all the SDRAM bursting.  When I do
this however I get a crash at the "U-boot relocating to..." line.  I'm
using an MPC8245 and have tried the following combination of iBAT and
dBAT settings for the SDRAM with the following results:

- iBAT = memory coherence, dBAT = memory coherence, U-boot works
- iBAT = cache inhibit, dBAT = memory coherence, U-boot works
- iBAT = memory coherence, dBAT = cache inhibit, U-boot fails
- iBAT = cache inhibit, dBAT = cache inhibit, U-boot fails

In summary U-boot works with caching but it fails whenever the dBAT is
set to cache inhibit for the SDRAM.  Is this expected operation or is it
further indication of an SDRAM problem?

David Clark
Senior Software Engineer
C&H Technologies, Inc
Web: http:\\www.chtech.com
Phone: 512-733-2621
Fax: 512-733-2629
Email: dlclark at chtech.com

More information about the U-Boot mailing list