This is an automated email from Gerrit.

Antonio Borneo ([email protected]) just uploaded a new patch set to 
Gerrit, which you can find at http://openocd.zylin.com/4602

-- gerrit

commit b2e80333de41af8716116fe5ded6119795112ee3
Author: Antonio Borneo <[email protected]>
Date:   Fri Jul 13 09:01:47 2018 +0200

    armv7a: s/LOG_ERROR/LOG_WARNING/ on address translation failure
    
    When GDB analyses the status of the target it try to guess the
    current stack frame and issues few memory read.
    E.g. on ARM targets GDB uses R11 value as a potential frame-pointer
    and reads at the address pointed by R11.
    The address of such memory read is not always valid and can trigger
    an address translation failure.
    
    Replace LOG_ERROR with LOG_WARNING in case the virtual address does
    not have a hit in TTB; print the virtual address in the warning
    message and discriminate the two identical messages with [1]/[2].
    
    Change-Id: I288b8cd26bec2543c4f1c16b7c06dc47d5d843d1
    Signed-off-by: Antonio Borneo <[email protected]>

diff --git a/src/target/armv7a.c b/src/target/armv7a.c
index eecfa70..e7c626e 100644
--- a/src/target/armv7a.c
+++ b/src/target/armv7a.c
@@ -226,7 +226,8 @@ int armv7a_mmu_translate_va(struct target *target,  
uint32_t va, uint32_t *val)
        LOG_DEBUG("1st lvl desc: %8.8" PRIx32 "", first_lvl_descriptor);
 
        if ((first_lvl_descriptor & 0x3) == 0) {
-               LOG_ERROR("Address translation failure");
+               /* Avoid LOG_ERROR, probably GDB is guessing the stack frame */
+               LOG_WARNING("Address translation failure [1]: va %8.8" PRIx32 
"", va);
                return ERROR_TARGET_TRANSLATION_FAULT;
        }
 
@@ -258,7 +259,8 @@ int armv7a_mmu_translate_va(struct target *target,  
uint32_t va, uint32_t *val)
        LOG_DEBUG("2nd lvl desc: %8.8" PRIx32 "", second_lvl_descriptor);
 
        if ((second_lvl_descriptor & 0x3) == 0) {
-               LOG_ERROR("Address translation failure");
+               /* Avoid LOG_ERROR, probably GDB is guessing the stack frame */
+               LOG_WARNING("Address translation failure [2]: va %8.8" PRIx32 
"", va);
                return ERROR_TARGET_TRANSLATION_FAULT;
        }
 

-- 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to