You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
REG_PMEVTRYPER is currently set to always have an offset of 4 * mon_inst:
/* Calculate the register offset based on selected monitor */
offset = 4 * mon_inst;
/* Write the received details into PMEVTYPER */
val_mmio_write(base + offset + REG_PMEVTYPER, data);
Later on the file, we calculate the offset based on size:
/* The width of the register PMEVCNTR depends on the size of the largest
implemented counter. if size if PMCFGR.SIZE <= 0b011111, all monitors are
32 bits or smaller else at least one monitor is larger than 32 bits. The
offset is then calculated accordingly. */
if (val_pmu_get_max_monitor_size(node_index) > 0b011111) {
offset = 8 * mon_inst;
count = (uint64_t)val_mmio_read(base + offset + REG_PMEVCNTR_H) << 32 |
val_mmio_read(base + offset + REG_PMEVCNTR_L);
}
else {
offset = 4 * mon_inst;
count = val_mmio_read(base + offset + REG_PMEVCNTR);
}
Shouldn't this rule apply to the first offset? We observed failures when we didn't change the offset to 8 * mon_inst.
The text was updated successfully, but these errors were encountered:
REG_PMEVTRYPER is currently set to always have an offset of 4 * mon_inst:
/* Calculate the register offset based on selected monitor */
offset = 4 * mon_inst;
Later on the file, we calculate the offset based on size:
Shouldn't this rule apply to the first offset? We observed failures when we didn't change the offset to 8 * mon_inst.
The text was updated successfully, but these errors were encountered: