
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@chtech.com