armv7a_mmu: Check earlier for PAR read

Check earlier that the read of the PAR register was successful instead
of starting the decoding and then checking for an error reading that
register.

Change-Id: Id96c2b2f76d2d1c745fcfa55ad4c1e6db92106f9
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-on: http://openocd.zylin.com/5215
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
bscan_optimization
Florian Fainelli 2019-06-05 15:23:33 -07:00 committed by Matthias Welwarsky
parent 6f87df80fe
commit ba11adb833
1 changed files with 2 additions and 2 deletions

View File

@ -143,14 +143,14 @@ int armv7a_mmu_translate_va_pa(struct target *target, uint32_t va,
retval = dpm->instr_read_data_r0(dpm, retval = dpm->instr_read_data_r0(dpm,
ARMV4_5_MRC(15, 0, 0, 7, 4, 0), ARMV4_5_MRC(15, 0, 0, 7, 4, 0),
val); val);
if (retval != ERROR_OK)
goto done;
/* decode memory attribute */ /* decode memory attribute */
NOS = (*val >> 10) & 1; /* Not Outer shareable */ NOS = (*val >> 10) & 1; /* Not Outer shareable */
NS = (*val >> 9) & 1; /* Non secure */ NS = (*val >> 9) & 1; /* Non secure */
INNER = (*val >> 4) & 0x7; INNER = (*val >> 4) & 0x7;
OUTER = (*val >> 2) & 0x3; OUTER = (*val >> 2) & 0x3;
if (retval != ERROR_OK)
goto done;
*val = (*val & ~0xfff) + (va & 0xfff); *val = (*val & ~0xfff) + (va & 0xfff);
if (meminfo) { if (meminfo) {
LOG_INFO("%" PRIx32 " : %" PRIx32 " %s outer shareable %s secured", LOG_INFO("%" PRIx32 " : %" PRIx32 " %s outer shareable %s secured",