Messages in this thread | | | Date | Mon, 11 Mar 2024 15:13:25 +0800 | From | Inochi Amaoto <> | Subject | Re: [PATCH] perf: RISC-V: fix IRQ detection on T-Head C908 |
| |
On Mon, Mar 11, 2024 at 02:30:18PM +0800, Qingfang Deng wrote: > T-Head C908 has the same IRQ num and CSR as previous C9xx cores, but > reports non-zero marchid and mimpid. Remove the ID checks. >
Hi, Qingfang,
IIRC, the existed C908 SoC (such as K230) have an early version of C908 core. But C908 core itself may support Sscofpmf. So I do not think removing the ID checks is a good idea. Instead, I suggest adding CPUID of your SoC to this check.
Regards, Inochi
> Fixes: 65e9fb081877 ("drivers/perf: riscv_pmu_sbi: add support for PMU variant on T-Head C9xx cores") > Signed-off-by: Qingfang Deng <dqfext@gmail.com> > --- > arch/riscv/errata/thead/errata.c | 4 ---- > drivers/perf/riscv_pmu_sbi.c | 4 +--- > 2 files changed, 1 insertion(+), 7 deletions(-) > > diff --git a/arch/riscv/errata/thead/errata.c b/arch/riscv/errata/thead/errata.c > index b1c410bbc1ae..49ccad5b21bb 100644 > --- a/arch/riscv/errata/thead/errata.c > +++ b/arch/riscv/errata/thead/errata.c > @@ -125,10 +125,6 @@ static bool errata_probe_pmu(unsigned int stage, > if (!IS_ENABLED(CONFIG_ERRATA_THEAD_PMU)) > return false; > > - /* target-c9xx cores report arch_id and impid as 0 */ > - if (arch_id != 0 || impid != 0) > - return false; > - > if (stage == RISCV_ALTERNATIVES_EARLY_BOOT) > return false; > > diff --git a/drivers/perf/riscv_pmu_sbi.c b/drivers/perf/riscv_pmu_sbi.c > index 452aab49db1e..87b83184383a 100644 > --- a/drivers/perf/riscv_pmu_sbi.c > +++ b/drivers/perf/riscv_pmu_sbi.c > @@ -811,9 +811,7 @@ static int pmu_sbi_setup_irqs(struct riscv_pmu *pmu, struct platform_device *pde > riscv_pmu_irq_num = RV_IRQ_PMU; > riscv_pmu_use_irq = true; > } else if (IS_ENABLED(CONFIG_ERRATA_THEAD_PMU) && > - riscv_cached_mvendorid(0) == THEAD_VENDOR_ID && > - riscv_cached_marchid(0) == 0 && > - riscv_cached_mimpid(0) == 0) { > + riscv_cached_mvendorid(0) == THEAD_VENDOR_ID) { > riscv_pmu_irq_num = THEAD_C9XX_RV_IRQ_PMU; > riscv_pmu_use_irq = true; > } > -- > 2.34.1 > > > _______________________________________________ > linux-riscv mailing list > linux-riscv@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-riscv
| |