]> git.sur5r.net Git - u-boot/commitdiff
ppc4xx: Fix crash on sequoia with cache enabled
authorAnatolij Gustschin <agust@denx.de>
Thu, 17 Apr 2008 16:15:27 +0000 (18:15 +0200)
committerWolfgang Denk <wd@denx.de>
Fri, 18 Apr 2008 07:48:02 +0000 (00:48 -0700)
Currently U-Boot crashes on sequoia board in CPU POST if
cache is enabled (CONFIG_4xx_DCACHE defined). The cache
won't be disabled by change_tlb before CPU POST because
there is an insufficient adress range check since
CFG_MEM_TOP_HIDE was introduced. This patch tries to fix
this problem.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
cpu/ppc4xx/tlb.c

index 2bfcba19bdbaf500a1d92496b0382eb32c778020..f44822dbab0dcfddbf4b4ce5ac34e65fa47b8258 100644 (file)
@@ -149,7 +149,9 @@ void change_tlb(u32 vaddr, u32 size, u32 tlb_word2_i_value)
                        /*
                         * Now check the end-address if it's in the range
                         */
-                       if ((tlb_vaddr + tlb_size - 1) <= (vaddr + size - 1)) {
+                       if (((tlb_vaddr + tlb_size - 1) <= (vaddr + size - 1)) ||
+                           ((tlb_vaddr < (vaddr + size - 1)) &&
+                            ((tlb_vaddr + tlb_size - 1) > (vaddr + size - 1)))) {
                                /*
                                 * Found a TLB in the range.
                                 * Change cache attribute in tlb2 word.