}
 static DEVICE_ATTR_RW(addr_exlevel_s_ns);
 
+static const char * const addr_type_names[] = {
+       "unused",
+       "single",
+       "range",
+       "start",
+       "stop"
+};
+
+static ssize_t addr_cmp_view_show(struct device *dev,
+                                 struct device_attribute *attr, char *buf)
+{
+       u8 idx, addr_type;
+       unsigned long addr_v, addr_v2, addr_ctrl;
+       struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
+       struct etmv4_config *config = &drvdata->config;
+       int size = 0;
+       bool exclude = false;
+
+       spin_lock(&drvdata->spinlock);
+       idx = config->addr_idx;
+       addr_v = config->addr_val[idx];
+       addr_ctrl = config->addr_acc[idx];
+       addr_type = config->addr_type[idx];
+       if (addr_type == ETM_ADDR_TYPE_RANGE) {
+               if (idx & 0x1) {
+                       idx -= 1;
+                       addr_v2 = addr_v;
+                       addr_v = config->addr_val[idx];
+               } else {
+                       addr_v2 = config->addr_val[idx + 1];
+               }
+               exclude = config->viiectlr & BIT(idx / 2 + 16);
+       }
+       spin_unlock(&drvdata->spinlock);
+       if (addr_type) {
+               size = scnprintf(buf, PAGE_SIZE, "addr_cmp[%i] %s %#lx", idx,
+                                addr_type_names[addr_type], addr_v);
+               if (addr_type == ETM_ADDR_TYPE_RANGE) {
+                       size += scnprintf(buf + size, PAGE_SIZE - size,
+                                         " %#lx %s", addr_v2,
+                                         exclude ? "exclude" : "include");
+               }
+               size += scnprintf(buf + size, PAGE_SIZE - size,
+                                 " ctrl(%#lx)\n", addr_ctrl);
+       } else {
+               size = scnprintf(buf, PAGE_SIZE, "addr_cmp[%i] unused\n", idx);
+       }
+       return size;
+}
+static DEVICE_ATTR_RO(addr_cmp_view);
+
 static ssize_t vinst_pe_cmp_start_stop_show(struct device *dev,
                                            struct device_attribute *attr,
                                            char *buf)
        &dev_attr_addr_ctxtype.attr,
        &dev_attr_addr_context.attr,
        &dev_attr_addr_exlevel_s_ns.attr,
+       &dev_attr_addr_cmp_view.attr,
        &dev_attr_vinst_pe_cmp_start_stop.attr,
        &dev_attr_seq_idx.attr,
        &dev_attr_seq_state.attr,