^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * This file contains the generic PMU register description tables
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) * and pmc checker used by perfmon.c.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * Copyright (C) 2002-2003 Hewlett Packard Co
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) * Stephane Eranian <eranian@hpl.hp.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) static pfm_reg_desc_t pfm_gen_pmc_desc[PMU_MAX_PMCS]={
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) /* pmc0 */ { PFM_REG_CONTROL , 0, 0x1UL, -1UL, NULL, NULL, {0UL,0UL, 0UL, 0UL}, {0UL,0UL, 0UL, 0UL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) /* pmc1 */ { PFM_REG_CONTROL , 0, 0x0UL, -1UL, NULL, NULL, {0UL,0UL, 0UL, 0UL}, {0UL,0UL, 0UL, 0UL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) /* pmc2 */ { PFM_REG_CONTROL , 0, 0x0UL, -1UL, NULL, NULL, {0UL,0UL, 0UL, 0UL}, {0UL,0UL, 0UL, 0UL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) /* pmc3 */ { PFM_REG_CONTROL , 0, 0x0UL, -1UL, NULL, NULL, {0UL,0UL, 0UL, 0UL}, {0UL,0UL, 0UL, 0UL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) /* pmc4 */ { PFM_REG_COUNTING, 0, 0x0UL, -1UL, NULL, NULL, {RDEP(4),0UL, 0UL, 0UL}, {0UL,0UL, 0UL, 0UL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) /* pmc5 */ { PFM_REG_COUNTING, 0, 0x0UL, -1UL, NULL, NULL, {RDEP(5),0UL, 0UL, 0UL}, {0UL,0UL, 0UL, 0UL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) /* pmc6 */ { PFM_REG_COUNTING, 0, 0x0UL, -1UL, NULL, NULL, {RDEP(6),0UL, 0UL, 0UL}, {0UL,0UL, 0UL, 0UL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) /* pmc7 */ { PFM_REG_COUNTING, 0, 0x0UL, -1UL, NULL, NULL, {RDEP(7),0UL, 0UL, 0UL}, {0UL,0UL, 0UL, 0UL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) { PFM_REG_END , 0, 0x0UL, -1UL, NULL, NULL, {0,}, {0,}}, /* end marker */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) static pfm_reg_desc_t pfm_gen_pmd_desc[PMU_MAX_PMDS]={
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) /* pmd0 */ { PFM_REG_NOTIMPL , 0, 0x0UL, -1UL, NULL, NULL, {0,}, {0,}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) /* pmd1 */ { PFM_REG_NOTIMPL , 0, 0x0UL, -1UL, NULL, NULL, {0,}, {0,}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) /* pmd2 */ { PFM_REG_NOTIMPL , 0, 0x0UL, -1UL, NULL, NULL, {0,}, {0,}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) /* pmd3 */ { PFM_REG_NOTIMPL , 0, 0x0UL, -1UL, NULL, NULL, {0,}, {0,}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) /* pmd4 */ { PFM_REG_COUNTING, 0, 0x0UL, -1UL, NULL, NULL, {0UL,0UL, 0UL, 0UL}, {RDEP(4),0UL, 0UL, 0UL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) /* pmd5 */ { PFM_REG_COUNTING, 0, 0x0UL, -1UL, NULL, NULL, {0UL,0UL, 0UL, 0UL}, {RDEP(5),0UL, 0UL, 0UL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) /* pmd6 */ { PFM_REG_COUNTING, 0, 0x0UL, -1UL, NULL, NULL, {0UL,0UL, 0UL, 0UL}, {RDEP(6),0UL, 0UL, 0UL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) /* pmd7 */ { PFM_REG_COUNTING, 0, 0x0UL, -1UL, NULL, NULL, {0UL,0UL, 0UL, 0UL}, {RDEP(7),0UL, 0UL, 0UL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) { PFM_REG_END , 0, 0x0UL, -1UL, NULL, NULL, {0,}, {0,}}, /* end marker */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) * impl_pmcs, impl_pmds are computed at runtime to minimize errors!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) static pmu_config_t pmu_conf_gen={
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) .pmu_name = "Generic",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) .pmu_family = 0xff, /* any */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) .ovfl_val = (1UL << 32) - 1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) .num_ibrs = 0, /* does not use */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) .num_dbrs = 0, /* does not use */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) .pmd_desc = pfm_gen_pmd_desc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) .pmc_desc = pfm_gen_pmc_desc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)