platform: generic: allwinner: correct mhpmevent count

Only the CSR mhpmevent 3-9,13-17 of D1 have valid function, so change
the mhpm_mask to a valid value to avoid invalid usage.

Due to the openc906 pmu code
https://github.com/T-head-Semi/openc906/blob/main/C906_RTL_FACTORY/gen_rtl/pmu/rtl/aq_hpcp_top.v

Signed-off-by: Inochi Amaoto <inochiama@outlook.com>
Reviewed-by: Anup Patel  <anup@brainfault.org>
This commit is contained in:
Inochi Amaoto 2023-08-11 08:13:01 +08:00 committed by Anup Patel
parent 7aabeee93e
commit e7e73aa532

View file

@ -272,7 +272,8 @@ static int sun20i_d1_extensions_init(const struct fdt_match *match,
sbi_pmu_set_device(&thead_c9xx_pmu_device);
/* auto-detection doesn't work on t-head c9xx cores */
hfeatures->mhpm_count = 29;
/* D1 has 29 mhpmevent csrs, but only 3-9,13-17 have valid value */
hfeatures->mhpm_mask = 0x0003e3f8;
hfeatures->mhpm_bits = 64;
return 0;