symbolize.py: strip MTE tag

When the Armv8.5 Memory Tagging Extension is enabled, the address shown
in data-abort messages may include a non-zero tag. For example (xtest
1038):

 E/TC:? 0 User mode data-abort at address 0x2000000401824f0 (tag check fault)

The tag needs to be cleared before the address can be translated into
symbol + offset.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
diff --git a/scripts/symbolize.py b/scripts/symbolize.py
index 91d0681..d763fb0 100755
--- a/scripts/symbolize.py
+++ b/scripts/symbolize.py
@@ -215,9 +215,16 @@
             ret = '!!!'
         return ret
 
+    # Armv8.5 with Memory Tagging Extension (MTE)
+    def strip_armv85_mte_tag(self, addr):
+        i_addr = int(addr, 16)
+        i_addr &= ~(0xf << 56)
+        return '0x{:x}'.format(i_addr)
+
     def symbol_plus_offset(self, addr):
         ret = ''
         prevsize = 0
+        addr = self.strip_armv85_mte_tag(addr)
         reladdr = self.subtract_load_addr(addr)
         elf_name = self.elf_for_addr(addr)
         if elf_name is None: