From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0A97434B435 for ; Wed, 17 Dec 2025 16:24:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988685; cv=none; b=ni/z0oou0MGPAuBV65b+3EDUO0KqJtnUHMTrlldyC3xk+jyG7DXj1hWcTZKJ+KJyDCBD9K+QZQcgfmnHafr6FICLCKH/p9O3GoVXME0cSIzisqQI7XB9OVaBtV9QMklbBugvMe05pPRY2Mz8jlBhVxNZZK/JKaRZpRJ6VCKwW4o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988685; c=relaxed/simple; bh=07n0zpGM1mcRCjmEoORnP+p4Tv6Nx9ryjVOY1OMyuiY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EYNiTDiBDDSyLIByGP9g83OzXGibYBG8YXCGa7Gr+p53zAb1uJNT7i5sskRX9UndUF3FRBQwW5rWXt8xJiGZbjPX3Il0m19xtRyuc5cE9vklU86mxA6ZXjGHe50i17ztqtLcQSaTrRNIUv4CNo2It29Jad1bYB7NXLnU2G0+Qr0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=SlvCNvK8; arc=none smtp.client-ip=209.85.214.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="SlvCNvK8" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-2a081c163b0so46248235ad.0 for ; Wed, 17 Dec 2025 08:24:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988682; x=1766593482; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=CBsTBcVtZ52Xc7+liwX/QWMHum7rwn6gjjvyLUqjbLE=; b=SlvCNvK8QM6e7XWU/ptoxsBs5sD7391zUewVvpX+ORq1tYpgHAZWk9EyEs3fVltefi mo7vUr6sjeZFB4Sp2ZH+1Oxho6A6JuBdbFVW8VQanHarzE9GI7A+/tiUQa1ZcR7sXzZn 4tudeSnPtNvvhtq8SBupyRAhiK99vUN3xkiosyY/FX7vgj2/qcwnlWhehJq3NtwIO0xt vAxqifFzbt1mVhJb/KQuNdLwvy4Nlj9dkvdGLrYtXUL7vXfIDnpV7z3ByBtFS1TTDNjr WD8sQyuGBbkNW7kN2Jvqxkgain/ZOtWOPQp5Y1Faz+38Fv/dmgdXfT6lXBF8YvIH28xC AJXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988682; x=1766593482; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=CBsTBcVtZ52Xc7+liwX/QWMHum7rwn6gjjvyLUqjbLE=; b=hVl7eHJdkGMpYA6pB99461eVfKPg3kPZt0PM2otEa9/4LEq2vzwamWnZKiLvcBTako NRLSWk5LHAZRue7aht70+QfEE80RmGn6O/hVvlYloIP8GzQGmVOe4MpKeZVsAZYglq50 C89CszM210gvW3S5jkiia2Txu5FiFkU9nx6ITIyrKUpjAEKy3Ws46XyylgiYRvv2P8My +sG99LwIT0Y/vSCBamMf9wkLPCWRO0rgrr0LfXSlADYhMRxsKmfWzxFb5Txrm1HMrmFn Z2F57bc4719oNcs65MRU1JiM6b84Z/jiHJyi0gvfyPpIm8PrGWaIDOLu6tSKmgsbDY9D c+5g== X-Forwarded-Encrypted: i=1; AJvYcCXV8bJ5g1hSurk4XgQUqMVNvfmyf2VHayUeZgCVv2VSXnp3meB7/hh+JGhcfUkVcmt/AQtjjbTTrwvcdKU=@vger.kernel.org X-Gm-Message-State: AOJu0YwryqFAti6y470pH8pBUD0/JKNsYEOFU86nEvQLcFuKdXD56KK0 NFuqNgnkHgbqicTiGKd01OCeflQkjfK5LMpZ51inLWKJIWBLF/E2Y406 X-Gm-Gg: AY/fxX59sWmnVgRSLu9sssQPfpNrVjMlXG5TJ/x/6cPxuLlEFjW8RbLdDp4RJ1y2WjY IcdZv+ZSnIaU+EIUltooxUOa+AZbDxXp+Q6nUQuH62UV/gI6LO4XT7qAKaiRZkbxvEEWF9bEPf9 IWPs0ch3+7qI7AUP4HK85WL3xcEsEbf7KuiayWKwxXDkLlaCtdPc1u/FKwxlzr9orsfSgPe7DGq 2KRdQXzODpbgYS2PsPEdZ2I6XToz3wMYq1fOwHmw1FFVbRbloSjMDFiPiWzWi2QiEM8BscaiH3u M3Lr/NdtCIyoPH2HX5f+mDzoqYGJ5fL2gQSPYg8s5nu8/5Z9nG3RYUN6P4mkzhpYVZ+rcZqFAZC rBlBpMZnmpy+A6w8FSmI6V22DRIA0GTSOMvZ2aRzvlqlIFYbSnExHlGNbh/vhX71fKP7wcz8kE8 /mw6W8t8x+skm3 X-Google-Smtp-Source: AGHT+IHerJ40FopgnOq9crZZQAG5AvJv+BI6Pdff7E5Aip3DS5jCH8CIcKubc8M48Ss2JNmpxKhZYg== X-Received: by 2002:a17:902:f789:b0:29f:2734:6ffb with SMTP id d9443c01a7336-29f27347628mr180428125ad.22.1765988682146; Wed, 17 Dec 2025 08:24:42 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.24.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:24:41 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:14 +0800 Subject: [PATCH v9 01/21] dt-bindings: arm: pmu: Add Apple A7-A11 SoC CPU PMU compatibles Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-1-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan , Krzysztof Kozlowski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1102; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=07n0zpGM1mcRCjmEoORnP+p4Tv6Nx9ryjVOY1OMyuiY=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtk/vxtAppGPRI3gSWnHu4Hgsj14l3noyd1EW dyQk74BBouJAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZPwAKCRABygi3psUI JFiAD/0WRDI1uvHw5wnu/YUvKRrNw/aC/10n7dU4nlOOgz+dT2KXA7o+S0CfTGh2NUVNhRrpuoT kiFY0DSNFkJ1kJg2hA+mEg2UGBT8OGcCZB6CZOJo3YseuW989tPXypTy38ESuklM3Tz/XkzyiDs civ3Rx5FQqHxTNS+wm9nYxtKh4U/2boicojfE9ehPkgcQUXXG66QdjjyXyWK1z6wcyJR3wWPOLr leGpDrNP+ObKEOLJIBLDoUiCGWzMqWfDQsSl6dRBtgmNXtFbMukuXkDFDteotZWcTDmh39+2ZEn U7zE8lTV9jRgCuh0RKG6oe4CTRdjtaxgygKITh35fCATqjJUhTpc355eJOuJyFi/OmtiAFSAfEw YA1+50N9Pd4JbRYFovGZSc78FrPMz/Wwx+I9lGOyDf6j3QFnS0zrMB6/06ZMj6HTtPABNlXvzWi qOTBig7MI72khRcL+fEsKZ+yiLg1FryCsvaJZf0CRNQEAocCmCjzcPE8S6QiKVqZQEhICQ+6NTc ZQiZYlal8uS2Z6CNF6LxR3NX8WG6l8DlcNCkft6Lp5NdTMmHdd/cd0u/FefQykKx9TvnButGA04 WwGNHnq04CsmWXXfX0rO+QBhYTbLw2LwCN6FA8HkCXH9fLFB/tY4FDFm5VLA3OgLrbjb7OYAq6J sGEJf5OdJIkDI4w== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Document the compatibles for Apple A7-A11 SoC CPU PMU. Acked-by: Krzysztof Kozlowski Signed-off-by: Nick Chan --- Documentation/devicetree/bindings/arm/pmu.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/pmu.yaml b/Documentation= /devicetree/bindings/arm/pmu.yaml index f47baaefcdacfd37472926ec6994c33603163a44..97800a991f208448aa4bc8dd59b= 45df2ff35b400 100644 --- a/Documentation/devicetree/bindings/arm/pmu.yaml +++ b/Documentation/devicetree/bindings/arm/pmu.yaml @@ -22,8 +22,14 @@ properties: - apm,potenza-pmu - apple,avalanche-pmu - apple,blizzard-pmu + - apple,cyclone-pmu - apple,firestorm-pmu + - apple,fusion-pmu - apple,icestorm-pmu + - apple,monsoon-pmu + - apple,mistral-pmu + - apple,twister-pmu + - apple,typhoon-pmu - arm,armv8-pmuv3 # Only for s/w models - arm,arm1136-pmu - arm,arm1176-pmu --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0EF4A34BA5B for ; Wed, 17 Dec 2025 16:24:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988687; cv=none; b=F9ZoFkr8HgePLkHvXAvCxWn+XdHPPuSuk83/gjDpj94X7ElvYY8SjFkCRjF4XyyqdDkmHjQXesEP4TsdpQcnq/mQxYP+kGy8S2sWCAn/Fww7r0ovvrl6eBoyJ/5vlJGuu6l5KYXzNnFtCMlhdhivFJ552yWW2WR2fqqSwbDDxow= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988687; c=relaxed/simple; bh=T7VIuEp6hEe3RkCETbS7KqP+//z7d2ZDmQMS7i30tSU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=G+vN0pAdK3X0wkCnaRd+U0FocLzKL3927zPTRozKzJL/0KB81vSJJZ4rp+miI2pP861V+BWLBP60LW4kitv5stOgJrul/klwf3+o7pY44PNjN6RAWzHevK6IXkNqocDcQGZABb/sPkJiC8iNq8y90DKBszoqDzrN7AHRzXU9uoY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=cwRENprO; arc=none smtp.client-ip=209.85.214.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cwRENprO" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-2a0834769f0so46490385ad.2 for ; Wed, 17 Dec 2025 08:24:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988685; x=1766593485; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=gnmU0etDq0lcWJuNgsoBFmFUTXG/dt5JQHfVECxG+u0=; b=cwRENprOndkOow5Ty2XXUQ+vpL74uurZMdWOiepGRzbJfY4OrVPfgLur8zoZNqt2c0 AX1IBkNY8oHNRuejOWlud4cQ/HW1sIBTmkaldkQyGOlLEUfHRIUk+pZIOpVeUJqdM45/ 6mhQ3plds0XTSamdr0e6SQtm4NJj4+WNH10fTRks2fWeADwWL+QO/4Pr828zf6aBoUpz BEp4xymS7tGaoPimPy9hEvakQ3HDupOqXXf1BPnRnVPcnXCgLujW7vD0y188y2gVuSZ5 i8oQJPP+XPOIFqEoiyF1ebwIAf7BJQaJCFtLRFICrQeGAw0/g2s6QmPf94ODpkr2sa6v 5Aeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988685; x=1766593485; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=gnmU0etDq0lcWJuNgsoBFmFUTXG/dt5JQHfVECxG+u0=; b=FsvGYnmKWi391aQXo9eBcd2Yv61impOoXPPe42JXkHFD84Kbg5BJkco/gn29an05gu gr2oOnisoYAwr85AR1GLgeDpfFGyZ7+C5JqicIxSIekl8u9dmMuQCSiK3HP7x7YoreSH tUJgEeDzsOepzvLGKA+Wxa7i4ueN8AfFelQEUmvBNOcehOQHFWmDRdni3CI30wH6kS9X xQvZCQmO805ReUUKieAc3BW7rSZT20mOAXq/YD6YoxzVANN2WltAh1k+Jd+MztWtW2OL yMXoP63QB1dZDUJXVX9djVeFsue4Eu8yhcvzWOO4BSidWPVMtC12tmD3jboj+jhOvdh9 8E8g== X-Forwarded-Encrypted: i=1; AJvYcCUojmA87jIuURQ1o+F8TVF2iA+PqJ9mfQfMnKZIWSnu8kK5dhpLwljbJGXYf4q9XXWs7+CHMVv47Tt7Gnk=@vger.kernel.org X-Gm-Message-State: AOJu0YwquzE5AyueoRnMqp6N//ntSKAy/tsHPwQOlVqRxsseIH6i/+Se WDc56ai/tOhD7rwErpwbDAk0o0Gbmzwx2lbOMlEiLILeQw9qIyIvHQD6 X-Gm-Gg: AY/fxX7w5sjPAHzo37SrX5c6WaHJuPjMiepdaecv6psVAxdYapJwPTSzykoVr6n4pd4 jNgZG7IA/7C9bymctNTsbXYKBCTIjilOulkAAB2y7gwgynbaX86cu+Ump5/AgPVQz4lc3KaLlCr RUykh4AF4o6pi83sOKoiCaRnK7eoqi7v39j5qi5uVFS78hT8vrh8C5EbqcIxAOL31xqdgpqJqGc Ns2wDkjXYlXxtoep4s6bDuDxMdHdHv8U+cTm114Y3704qM+VPu9zUO0yLYadzQP6bKuROG7j7QV Ow+DPN9mrsEDyrfHwdNlHMzOEcu9yholXAO3zhz/rVUqG+sglKmqWltmIcYxG/2G8tFbdOY960U VKzdS//LOQD285xYCIsezIYUQ558SFhhdUIbphS42BTmvn/gOB9NzBgr96a2L9qE2xPDbA7GuZc kA8g+q5q/CUg7I X-Google-Smtp-Source: AGHT+IG/nquZVvdb7hdBfthWotpPmdj/WUeQ/0emdMCtPLX4TCGdHlRO8AWzO6VXDeE101kKUDS78A== X-Received: by 2002:a17:903:4b27:b0:295:ceaf:8d76 with SMTP id d9443c01a7336-29f2435b8d6mr184902615ad.47.1765988685325; Wed, 17 Dec 2025 08:24:45 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.24.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:24:44 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:15 +0800 Subject: [PATCH v9 02/21] drivers/perf: apple_m1: Only init PMUv3 remap when EL2 is available Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-2-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1251; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=T7VIuEp6hEe3RkCETbS7KqP+//z7d2ZDmQMS7i30tSU=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlAE5NDqs7fuGSBDfaoYGlzVF4qIaF1lkua9 vndWjdJ4UuJAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQAAKCRABygi3psUI JIu4D/9aF7Vmpryy6HujH92+R1amWBbT29Pk0lgoF+TezSRD2mGenGzsAFgeGPO1uhu6SNcGhLA 9aovgC8dRLUhnM+lq07wJN8mog+EtcMVDUCNPbS+lOF+fm2lUb1E8v+mUh2AiSG98pPOXyxrLVb aX7utsSghAD7AjWd+CDTx4LJxDbLVNs6ZYCNlVMxhz+einkIjKBqs5k1+M1omv7BYR9QSY/kyU4 7yfSx3/VqpK3jdWJnXMhYqLM2a4iwar70Fa8v6zCUI5i4eLqox4VsBNEKcmWiYZk5XKQC1wj0Wk gKs1RVHwkOPaweHbQgnnQQOw2lAl18Ot0vvP49Gg/ZGi3wM5s3C3PXqIBsu+vBYthkDeghuDWod SXN1xtbIfDPrSdruCYMpccow4QJv2+aTLMFutcf37T2prLmgRAuhVEzvsFsQfEmGgL0MWfgxupM 8azf8sRLi5FuFbdShEK9mwZPX9mrhc4/QkSJzYc1VUtX0U4v/jxWTKgFT5mhSegmsIpeP1EqUHB v5L5Jr/PiJ7k2UCXoKOYHLc24hMgpROoVNyWt/DJaY0YKeAu5hohiEPlbz40CCnOa7mQDGw94qq MpvpFbZ5v1p8NCmvBMCDOij33xk0cusBM0Ep7YJmCftcvETI0FZOrnPpHIXcowieMk4zUfpnC1y AURR4XPLwieqCtw== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 The events in the Apple A7 PMU is very different from the ones in M1, and EL2 is not available on Apple A7. Instead of assigning the wrong PMUv3 remap on A7 or declaring a new PMUv3 remap that would never be used in practice, skip initializing PMUv3 remap altogther when EL2 is unavailable. Signed-off-by: Nick Chan --- drivers/perf/apple_m1_cpu_pmu.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/perf/apple_m1_cpu_pmu.c b/drivers/perf/apple_m1_cpu_pm= u.c index 81b6f1a623499566ef04d04075752f34e2cb6a92..f3948528e28e0189efd0f17fde0= d808930d936af 100644 --- a/drivers/perf/apple_m1_cpu_pmu.c +++ b/drivers/perf/apple_m1_cpu_pmu.c @@ -645,8 +645,10 @@ static int m1_pmu_init(struct arm_pmu *cpu_pmu, u32 fl= ags) cpu_pmu->reset =3D m1_pmu_reset; cpu_pmu->set_event_filter =3D m1_pmu_set_event_filter; =20 - cpu_pmu->map_pmuv3_event =3D m1_pmu_map_pmuv3_event; - m1_pmu_init_pmceid(cpu_pmu); + if (is_hyp_mode_available()) { + cpu_pmu->map_pmuv3_event =3D m1_pmu_map_pmuv3_event; + m1_pmu_init_pmceid(cpu_pmu); + } =20 bitmap_set(cpu_pmu->cntr_mask, 0, M1_PMU_NR_COUNTERS); cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] =3D &m1_pmu_events_attr_gr= oup; --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4FB1E34D385 for ; Wed, 17 Dec 2025 16:24:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988690; cv=none; b=aTy3Z7DzvyPUd7afbdR6nlrbfNOjbXjZA3xkh+rvgPIPIp3gPzGZ6SJN/TS/8M+ppN1eS8Pf5cQO/LhYjx2NdLH1AYvUClaNMfg0rTKmF26XJ2yitm9uD/TuzvkWimmtygUexYGvstkrg/MHB87pk8ZwdjeSFVSWXQMdxzso5js= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988690; c=relaxed/simple; bh=GEbwxw7PfrqcXKYl5oW/iB71cJY49weGjklHwoM3hyk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=s7H28oswUIUKHSIg2/jS+9jVs2OZQ5kDwzPfjEM8wglEZdm3iNbDiuRYE2uuwvpRcgzoMfUonzEgxwshcZEafg78KybVwC8iR5nXuVxDUc3bi4OZCAt6vUpdWaZBK/7CGRUAHxMcOrTSvAXKFEiIysLdT3pmAsahfhY8p6os1VE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=L3C4fmFd; arc=none smtp.client-ip=209.85.214.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="L3C4fmFd" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-2a110548cdeso39960385ad.0 for ; Wed, 17 Dec 2025 08:24:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988688; x=1766593488; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=baePLKadh5VeuMN7NIEHaBw4znqNJn9lrkTnuuN/n4Y=; b=L3C4fmFdp+5HNxtZYt3f58IjnXtepQUvA85tgHSn2fLk3CjagZfWI3Y1b5MEpkQvMj iDy+PzdeDTSZ12imaKTEA+wOW8PTfCP3DTv567hYC07eg6p5VdEhSBZlZnOrHEJBrXkY YvraHkFgwTkDSxuSwvGx00C/GKqUtgKPlDGb6HvOzpRVpW4T8wvyKYrJeAltSlEaKpy8 CL2CxTc+a/qBM0h/nYPAtYVPdbFH5qCtx6ROUAMWjn0XQhldA7rrQI1DzYEFUcdDOBSg 2BqTG+vj0EvGsOl7sXT087/JMpfT7oLJhzPvzBideyeaGqqxiGPSvf/mlAo7cLMT7LPe ux5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988688; x=1766593488; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=baePLKadh5VeuMN7NIEHaBw4znqNJn9lrkTnuuN/n4Y=; b=emoJdxwtlYmcOf0pGoD4k7LI1lFXHBpuhca9pTC7c5EXrzWe/Mv3mKXnvgjfd5c4CT tyb1+3083S653dz1sW+S0GRL4s5avY4V10LaNWzD3UsQYHk1xeTtgDkp1cg19gS1kcp+ ZuRTnhGCiF7mH+zSgALxoNFWc2HzbRvkJlOqOPOMp5OAE7RtNeyVCOxN5PP+3nTlIDXL xK/5T0lLZqSfPLOGMwJJv6i69yAH3m4TPD8dBlrPk/IljIwbwmppa56som9sIo8TdrIO gqhbdD4wzxTOjbyFbi4mfYtdA0lI4SC2/Z8QjEJoSkZQ1PGoabq6d7SmJMbuu/Ptpcjw CVzQ== X-Forwarded-Encrypted: i=1; AJvYcCWxCm0KHxHdHx+ndopMAWIBi9r1kXt6IVhkcLsAbdldvKjjU6S8tCVKG4R09M4mG6srKUhdQtzSf2rSHAg=@vger.kernel.org X-Gm-Message-State: AOJu0YwgIcxxFE0sornnxSLm6N2IpAXgvy/B6/tNSx3H+kAh++J6W1c4 ekViVzqWne6EGxHFszx0IDChmX8cfUjT1k+wcXSovEggMzVPKGVzvccaa1zdHtGX X-Gm-Gg: AY/fxX6CQF626C2EY6MuL1OjCSLYDNK/cNIqrX9HcvbgjGpm4PWVB8JKOCrj7wnyAmq f9Pvyk2guA2TEVa7oYzP+EVhlXs7tIHavvpeN2zsZ5cxBaCfFzdl/74VTkTUjjoziEZAYfo+1Rq A88HtvYSAdPEezVszoTeceKEVJRIsdq9Ruy+4y+IlgGUzT3BoBYllVwLfwD2BLBA8TixebTLTPF wHxBTZ9AfSYtwa0JtgCAHZbPVIVQlvGCvkQLGX6E8sfRo7iu4l2oHOH3WVZEH/pRljDixSNsfD6 dVxp7YUqWukfyrkUY1MZ9ScGcYv2UYatVq3NweZQF3SY3dWWWdAZRSa9uY03/C7Hsgb7JNmDu1o lWwg2KhfQKL6ifZRsEQgC5kPtpcIfEjYUTLm/SlcrFwwyaf1R+wtzFNDGDdMWl7He8TwBdLVl9r JdMu5URjiakrdz X-Google-Smtp-Source: AGHT+IFnI76IAZxZQYfdU0cvowu4POt/fXHKU7/xVVfniBzosjklThD5++ABZlM8rP8ORaLE2hP2Rw== X-Received: by 2002:a17:902:d4c4:b0:2a0:b06d:1575 with SMTP id d9443c01a7336-2a0b06d1731mr114240415ad.51.1765988688494; Wed, 17 Dec 2025 08:24:48 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.24.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:24:48 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:16 +0800 Subject: [PATCH v9 03/21] drivers/perf: apple_m1: Support per-implementation event tables Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-3-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5769; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=GEbwxw7PfrqcXKYl5oW/iB71cJY49weGjklHwoM3hyk=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlA+kasIgm1d08qjNIxyta1PI/a/3sOaDdH7 YA5jw2xb7mJAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQAAKCRABygi3psUI JDdwEACPnOcKvw3tvd0H4PzxLqD37zGgX4/vymjIZG3u0NXrwb5zOPTzw8WJKqkHmNqGfnO11Ib scXDgtoGbyWB9s8gBMerBXP4ThOrNXZbv5hR+KklI55lXDp6wD7Fm9uMbC2stuM2AyLDDT4FJQ6 Kg1KdCqLc3pMjU3NY6G+AEI8FCxvU3/um9aRSUHW99YriLwj0JXjzu2LaNSTPdt1DB4JYb1ybe1 5Ge2W4iv61OD7NhK2l+AyvyVMQ9hir4y9EQi4TpmgVIt6HnCAbscER8Ynu3mVSwONZQTC9bjrTo Xgiv2JyYMU6AqjdLKSgY9S2FumujMQuSXrelx8Au4uTtydMNq6/s9kkdq9TdPM6mMORZw88ZmSC Zrm1mXk15raFVffuG/Q+y1wvyH5CzVqqGDo7EiBMkoVIMv6ry1wDSd8ZOIEFf5XckNjkbT9SMLp A1Iu+CESQcJVexLbhZS5fj1trysT5xUjBEeMaPFVj9FZ/HFK8A+JdP/Umq/eDOTdwvqqklqY3Sk 8SbZxkxPnaP3ojeFJCNDjxJfHkxSm8LaOYrFXAwVcFQrM85heU5PqBVGpqGw5I4ukbyJjDKrdWi bVvyyv6jU9dT2ShKSykzKE2E6lUZJPQ03n28lcgq4Ub8g5NP+CBjMOzqLET7BQLVGfjm6ACLC33 YzBMTzWFhphvd4Q== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Use per-implementation event tables to allow supporting implementations with a different list of events and event affinities. Signed-off-by: Nick Chan --- drivers/perf/apple_m1_cpu_pmu.c | 65 +++++++++++++++++++++++++------------= ---- 1 file changed, 40 insertions(+), 25 deletions(-) diff --git a/drivers/perf/apple_m1_cpu_pmu.c b/drivers/perf/apple_m1_cpu_pm= u.c index f3948528e28e0189efd0f17fde0d808930d936af..b4ab6a3e5df965b7ef450d7e533= 995f3cc8633fd 100644 --- a/drivers/perf/apple_m1_cpu_pmu.c +++ b/drivers/perf/apple_m1_cpu_pmu.c @@ -43,9 +43,6 @@ * moment, we don't really need to distinguish between the two because we * know next to nothing about the events themselves, and we already have * per cpu-type PMU abstractions. - * - * If we eventually find out that the events are different across - * implementations, we'll have to introduce per cpu-type tables. */ enum m1_pmu_events { M1_PMU_PERFCTR_RETIRE_UOP =3D 0x1, @@ -493,11 +490,12 @@ static void m1_pmu_write_counter(struct perf_event *e= vent, u64 value) isb(); } =20 -static int m1_pmu_get_event_idx(struct pmu_hw_events *cpuc, - struct perf_event *event) +static int apple_pmu_get_event_idx(struct pmu_hw_events *cpuc, + struct perf_event *event, + const u16 event_affinities[]) { unsigned long evtype =3D event->hw.config_base & M1_PMU_CFG_EVENT; - unsigned long affinity =3D m1_pmu_event_affinity[evtype]; + unsigned long affinity =3D event_affinities[evtype]; int idx; =20 /* @@ -516,6 +514,12 @@ static int m1_pmu_get_event_idx(struct pmu_hw_events *= cpuc, return -EAGAIN; } =20 +static int m1_pmu_get_event_idx(struct pmu_hw_events *cpuc, + struct perf_event *event) +{ + return apple_pmu_get_event_idx(cpuc, event, m1_pmu_event_affinity); +} + static void m1_pmu_clear_event_idx(struct pmu_hw_events *cpuc, struct perf_event *event) { @@ -543,7 +547,8 @@ static void m1_pmu_stop(struct arm_pmu *cpu_pmu) __m1_pmu_set_mode(PMCR0_IMODE_OFF); } =20 -static int m1_pmu_map_event(struct perf_event *event) +static int apple_pmu_map_event_47(struct perf_event *event, + const unsigned int (*perf_map)[]) { /* * Although the counters are 48bit wide, bit 47 is what @@ -551,18 +556,29 @@ static int m1_pmu_map_event(struct perf_event *event) * being 47bit wide to mimick the behaviour of the ARM PMU. */ event->hw.flags |=3D ARMPMU_EVT_47BIT; - return armpmu_map_event(event, &m1_pmu_perf_map, NULL, M1_PMU_CFG_EVENT); + return armpmu_map_event(event, perf_map, NULL, M1_PMU_CFG_EVENT); } =20 -static int m2_pmu_map_event(struct perf_event *event) +static int apple_pmu_map_event_63(struct perf_event *event, + const unsigned int (*perf_map)[]) { /* - * Same deal as the above, except that M2 has 64bit counters. + * Same deal as the above, except with 64bit counters. * Which, as far as we're concerned, actually means 63 bits. * Yes, this is getting awkward. */ event->hw.flags |=3D ARMPMU_EVT_63BIT; - return armpmu_map_event(event, &m1_pmu_perf_map, NULL, M1_PMU_CFG_EVENT); + return armpmu_map_event(event, perf_map, NULL, M1_PMU_CFG_EVENT); +} + +static int m1_pmu_map_event(struct perf_event *event) +{ + return apple_pmu_map_event_47(event, &m1_pmu_perf_map); +} + +static int m2_pmu_map_event(struct perf_event *event) +{ + return apple_pmu_map_event_63(event, &m1_pmu_perf_map); } =20 static int m1_pmu_map_pmuv3_event(unsigned int eventsel) @@ -623,25 +639,16 @@ static int m1_pmu_set_event_filter(struct hw_perf_eve= nt *event, return 0; } =20 -static int m1_pmu_init(struct arm_pmu *cpu_pmu, u32 flags) +static int apple_pmu_init(struct arm_pmu *cpu_pmu) { cpu_pmu->handle_irq =3D m1_pmu_handle_irq; cpu_pmu->enable =3D m1_pmu_enable_event; cpu_pmu->disable =3D m1_pmu_disable_event; cpu_pmu->read_counter =3D m1_pmu_read_counter; cpu_pmu->write_counter =3D m1_pmu_write_counter; - cpu_pmu->get_event_idx =3D m1_pmu_get_event_idx; cpu_pmu->clear_event_idx =3D m1_pmu_clear_event_idx; cpu_pmu->start =3D m1_pmu_start; cpu_pmu->stop =3D m1_pmu_stop; - - if (flags & ARMPMU_EVT_47BIT) - cpu_pmu->map_event =3D m1_pmu_map_event; - else if (flags & ARMPMU_EVT_63BIT) - cpu_pmu->map_event =3D m2_pmu_map_event; - else - return WARN_ON(-EINVAL); - cpu_pmu->reset =3D m1_pmu_reset; cpu_pmu->set_event_filter =3D m1_pmu_set_event_filter; =20 @@ -660,25 +667,33 @@ static int m1_pmu_init(struct arm_pmu *cpu_pmu, u32 f= lags) static int m1_pmu_ice_init(struct arm_pmu *cpu_pmu) { cpu_pmu->name =3D "apple_icestorm_pmu"; - return m1_pmu_init(cpu_pmu, ARMPMU_EVT_47BIT); + cpu_pmu->get_event_idx =3D m1_pmu_get_event_idx; + cpu_pmu->map_event =3D m1_pmu_map_event; + return apple_pmu_init(cpu_pmu); } =20 static int m1_pmu_fire_init(struct arm_pmu *cpu_pmu) { cpu_pmu->name =3D "apple_firestorm_pmu"; - return m1_pmu_init(cpu_pmu, ARMPMU_EVT_47BIT); + cpu_pmu->get_event_idx =3D m1_pmu_get_event_idx; + cpu_pmu->map_event =3D m1_pmu_map_event; + return apple_pmu_init(cpu_pmu); } =20 static int m2_pmu_avalanche_init(struct arm_pmu *cpu_pmu) { cpu_pmu->name =3D "apple_avalanche_pmu"; - return m1_pmu_init(cpu_pmu, ARMPMU_EVT_63BIT); + cpu_pmu->get_event_idx =3D m1_pmu_get_event_idx; + cpu_pmu->map_event =3D m2_pmu_map_event; + return apple_pmu_init(cpu_pmu); } =20 static int m2_pmu_blizzard_init(struct arm_pmu *cpu_pmu) { cpu_pmu->name =3D "apple_blizzard_pmu"; - return m1_pmu_init(cpu_pmu, ARMPMU_EVT_63BIT); + cpu_pmu->get_event_idx =3D m1_pmu_get_event_idx; + cpu_pmu->map_event =3D m2_pmu_map_event; + return apple_pmu_init(cpu_pmu); } =20 static const struct of_device_id m1_pmu_of_device_ids[] =3D { --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B43D934BA2E for ; Wed, 17 Dec 2025 16:24:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988694; cv=none; b=Oxe+hYIwl7YhCXfFCVTZaKU2nIRyN5Dpiyqv89heQjcuES8ZyvzFDa7a3G6jOpNA7DdRV+OJEi1H/CVXCOh2aa0JLBKXZ3qrmSgsFN4Cx8Sbfi+41UBmvQKa5CxghnmbiFePJRQ1xcLoz/jg6jqj7DY2/djf4UEr19POUsM8U20= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988694; c=relaxed/simple; bh=4A+/3Lozln7kmJXLxfl9Ass+jwb1UWj+PPueoGJcx8k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eJ6OL6SRgO9WE1Fg6ua5Zadf72GUrqU8jKK43qor5JwHjUZcTbGdEmQPl2fhBncUVrrBCqdau07AB/Zf9cyLrv2usz237zETPncS1qwPNCA9kE0Po4mnArM5/T1SYNiRFEOsbmYw72a9ThAauWnULkhZW0WVK6gmnE/d0qU3S8I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=YWjzgXBc; arc=none smtp.client-ip=209.85.214.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="YWjzgXBc" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-29f102b013fso73154385ad.2 for ; Wed, 17 Dec 2025 08:24:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988692; x=1766593492; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=D015mK7WSxavVbYzWtuulK3/EPR4luIjSULFnLfast0=; b=YWjzgXBcEBs4pj+taVz2zaG1iT/o4hO28VhE8w/SC7wnEkN+pJYazw1tZEVGniG+fY f90j8Qb+eLxXs53x8FelQ0NvTN5f6iiMf9K3/PufM5QgQyDkIlwhIFC0ll9mYSEBNnfe RPrzMRoNWsMTA8xNe0Yp6rHafV//6iDWTOSOgmlInncZq/atKk2gQWbWN06QaUrMpLgz PpMYFAegnv4t6Djxoh3sbcudst1ydjGF9hPS5K5NY2MI3dG1ZaCTcupnfohgT8+Xfa2i ultl2uwCDUQyDw9qE+Zsk+eTOvE0uTvdg9iYfVTGfoc3Cv4BsBHwqybjsCcOdcY1eAaJ 1lEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988692; x=1766593492; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=D015mK7WSxavVbYzWtuulK3/EPR4luIjSULFnLfast0=; b=UnvsZ3Epa9z0Wh/ye34OPGKlUS5V8nwPuWgGmkOjhJFDRiFxArKPifdouXFw6kQHXm 50d5pDBWwV6gFoKXWr4vAjIdaIrjGebVbXPqGk7DwLsbGMILvuxsTVG3dX3NucrfEEh3 OuWP9f/5sV+vxoly0Bn+RpHonIxzuGT8qAa6EjEhg/wWozXmVsH7CLSAysFRcTZq/+fI MWDChOzcl14c/Dfnwb4Z1ZXmUK/PB39r/aTzygAri+u+9KTupt+7ZUCBsCmbQY/PmHTg 0j1QQyFbzifSKvz5KsWrpqPb0lpyn41TXfiqxq13cBhkLvf8BD4wFxXSuF8M4Ts1FnYD zgMw== X-Forwarded-Encrypted: i=1; AJvYcCU94AvbLYRF5YAL1sR3DWS9chhTDxFSrBE4xUqP3xNzR26+VZ+19JhRd9Upd6qkufFXrdBK9euSrhvTflY=@vger.kernel.org X-Gm-Message-State: AOJu0YwhC93YiMudttFDJ2mxQejPKtaq6m5+KQmXfjlOdX8Tah9h11df /SzzB7LFWU3UnGuOvRZTNCQ15FAB2sQ9NyCW6XYS94G7a8SeHwwfQ0j3 X-Gm-Gg: AY/fxX7OBFJYu0pmdaG2TTbMzownhPPgBqtf4HCz5BkqFwaYIoKGdIugE1WWlD8/WEF lE/NqbL6IFC8N480YIiXkbb0jCcu30CdZONUTXu7cZ/9OekJG2mHVxjTiTs9GVLMVwpF+6NZgJ8 mV0BwEwxmeSIBPEFrotNbU2QCi+/kaPgPo4s4aPMx3gIcw1H5/WpIOh1i/WpstYzpjwULaV2v1h MU0ex/xfn2zqw1Irsrz3VYeXnWeWI6BMTdIspdmPEkz0RjcwQobx4q3ZU+UrfPjdBQ67SoDYvCR 1dOa53pochu29FWZz+wBkhhGK0VA2uR58zN45qq9slH2j8cprUoF/k6YwGfzfnJ06APXJqSVgNB Mur9xUUI5zFV6TBZkE/GlRybDvUVQygU43eTtW1E0by48f/hIQx0uTzumOhflQGM4UAn3QsqmFf QuoEVCPNhw39B0 X-Google-Smtp-Source: AGHT+IFBDhdjBy2ztSMOAWQEhJCi8PCuLD/3d4j/I71RYEGXFxGKEMHoz3QmjpOsdlDcNLlGRzCxhg== X-Received: by 2002:a17:902:da8b:b0:2a0:9755:2e97 with SMTP id d9443c01a7336-2a097553037mr153493005ad.15.1765988691664; Wed, 17 Dec 2025 08:24:51 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.24.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:24:51 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:17 +0800 Subject: [PATCH v9 04/21] drivers/perf: apple_m1: Support a per-implementation number of counters Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-4-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4845; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=4A+/3Lozln7kmJXLxfl9Ass+jwb1UWj+PPueoGJcx8k=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlA5xAEAlJ14/E7Way5r1bm+LE53/0KIRcw2 KRmd6EFnSaJAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQAAKCRABygi3psUI JL7QD/sEfDLO32Y2wh9SQSrGOdG3EEEW+wFpaUCCxyswGBzo0hidSj+n2IS273ssZh8o7Ai8i8i PX0x1FP5kbfmd7o2IOwkWxGJB+eY66l8vixwrAwWJeP0vj4L7uDS1nXyFucOpW1dbNZHNxi7af0 wmdFBD4qEP7BbU7Yzn9YVAsxjuGm20wpI+qH87By8J+wzhlCJ3vImG86bjo7GZmIKnS42QTLCXL tO/RqwFMkXZEYTX01mwQMyWnZsfcNX8Z6Zu2MQMou15IAvV83Xb99Om3zc4Yc0bDqmlW3fyf5El 8Ku033iTpkUAaqICl+S/+ZC+jlO9uwJaXXbHViOIywjTSJGN3A48BJ6hRrsxYBfvUXWtwwud+xf iRydxAVqTxhIEH7bvw00l0IL0dctokysBVl420K7SO2Hk7T5ZWzRBViPNQpytc8zfyDFOfkBHOr 7PFrpHWHt8FAo2FYJz9vio+4lenLZtwY1Es2nrAmL64hGhtFarBbof+WUHXKcr/lA9ptyd6Yo3M 3ebeT5H0ww1sV8RiwkU66ZTDahz41XULxBi+pPvczKCKRi/gC901+BOnhe16aUGHWz8nY6tBlyt wKfD7lmSXvItZeQM9z2c7RuZN9pyT+ST9zj4Ttl3q/Xmz6Ryx35+gOc0+efy13P15kR+02Lfb3P YI+nj+Qfo4XdkIA== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Support a per-implementation number of counters to allow adding support for implementations with less counters. Signed-off-by: Nick Chan --- drivers/perf/apple_m1_cpu_pmu.c | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/drivers/perf/apple_m1_cpu_pmu.c b/drivers/perf/apple_m1_cpu_pm= u.c index b4ab6a3e5df965b7ef450d7e533995f3cc8633fd..b5fe04ef186f04b4af32524fe43= 3afb79979b791 100644 --- a/drivers/perf/apple_m1_cpu_pmu.c +++ b/drivers/perf/apple_m1_cpu_pmu.c @@ -20,6 +20,7 @@ #include =20 #define M1_PMU_NR_COUNTERS 10 +#define APPLE_PMU_MAX_NR_COUNTERS 10 =20 #define M1_PMU_CFG_EVENT GENMASK(7, 0) =20 @@ -459,7 +460,7 @@ static irqreturn_t m1_pmu_handle_irq(struct arm_pmu *cp= u_pmu) =20 regs =3D get_irq_regs(); =20 - for_each_set_bit(idx, cpu_pmu->cntr_mask, M1_PMU_NR_COUNTERS) { + for_each_set_bit(idx, cpu_pmu->cntr_mask, APPLE_PMU_MAX_NR_COUNTERS) { struct perf_event *event =3D cpuc->events[idx]; struct perf_sample_data data; =20 @@ -506,7 +507,7 @@ static int apple_pmu_get_event_idx(struct pmu_hw_events= *cpuc, * counting on the PMU at any given time, and by placing the * most constraining events first. */ - for_each_set_bit(idx, &affinity, M1_PMU_NR_COUNTERS) { + for_each_set_bit(idx, &affinity, APPLE_PMU_MAX_NR_COUNTERS) { if (!test_and_set_bit(idx, cpuc->used_mask)) return idx; } @@ -601,13 +602,13 @@ static void m1_pmu_init_pmceid(struct arm_pmu *pmu) } } =20 -static void m1_pmu_reset(void *info) +static void apple_pmu_reset(void *info, u32 counters) { int i; =20 __m1_pmu_set_mode(PMCR0_IMODE_OFF); =20 - for (i =3D 0; i < M1_PMU_NR_COUNTERS; i++) { + for (i =3D 0; i < counters; i++) { m1_pmu_disable_counter(i); m1_pmu_disable_counter_interrupt(i); m1_pmu_write_hw_counter(0, i); @@ -616,6 +617,11 @@ static void m1_pmu_reset(void *info) isb(); } =20 +static void m1_pmu_reset(void *info) +{ + apple_pmu_reset(info, M1_PMU_NR_COUNTERS); +} + static int m1_pmu_set_event_filter(struct hw_perf_event *event, struct perf_event_attr *attr) { @@ -639,7 +645,7 @@ static int m1_pmu_set_event_filter(struct hw_perf_event= *event, return 0; } =20 -static int apple_pmu_init(struct arm_pmu *cpu_pmu) +static int apple_pmu_init(struct arm_pmu *cpu_pmu, u32 counters) { cpu_pmu->handle_irq =3D m1_pmu_handle_irq; cpu_pmu->enable =3D m1_pmu_enable_event; @@ -649,7 +655,6 @@ static int apple_pmu_init(struct arm_pmu *cpu_pmu) cpu_pmu->clear_event_idx =3D m1_pmu_clear_event_idx; cpu_pmu->start =3D m1_pmu_start; cpu_pmu->stop =3D m1_pmu_stop; - cpu_pmu->reset =3D m1_pmu_reset; cpu_pmu->set_event_filter =3D m1_pmu_set_event_filter; =20 if (is_hyp_mode_available()) { @@ -657,7 +662,7 @@ static int apple_pmu_init(struct arm_pmu *cpu_pmu) m1_pmu_init_pmceid(cpu_pmu); } =20 - bitmap_set(cpu_pmu->cntr_mask, 0, M1_PMU_NR_COUNTERS); + bitmap_set(cpu_pmu->cntr_mask, 0, counters); cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] =3D &m1_pmu_events_attr_gr= oup; cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_FORMATS] =3D &m1_pmu_format_attr_g= roup; return 0; @@ -669,7 +674,8 @@ static int m1_pmu_ice_init(struct arm_pmu *cpu_pmu) cpu_pmu->name =3D "apple_icestorm_pmu"; cpu_pmu->get_event_idx =3D m1_pmu_get_event_idx; cpu_pmu->map_event =3D m1_pmu_map_event; - return apple_pmu_init(cpu_pmu); + cpu_pmu->reset =3D m1_pmu_reset; + return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS); } =20 static int m1_pmu_fire_init(struct arm_pmu *cpu_pmu) @@ -677,7 +683,8 @@ static int m1_pmu_fire_init(struct arm_pmu *cpu_pmu) cpu_pmu->name =3D "apple_firestorm_pmu"; cpu_pmu->get_event_idx =3D m1_pmu_get_event_idx; cpu_pmu->map_event =3D m1_pmu_map_event; - return apple_pmu_init(cpu_pmu); + cpu_pmu->reset =3D m1_pmu_reset; + return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS); } =20 static int m2_pmu_avalanche_init(struct arm_pmu *cpu_pmu) @@ -685,7 +692,8 @@ static int m2_pmu_avalanche_init(struct arm_pmu *cpu_pm= u) cpu_pmu->name =3D "apple_avalanche_pmu"; cpu_pmu->get_event_idx =3D m1_pmu_get_event_idx; cpu_pmu->map_event =3D m2_pmu_map_event; - return apple_pmu_init(cpu_pmu); + cpu_pmu->reset =3D m1_pmu_reset; + return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS); } =20 static int m2_pmu_blizzard_init(struct arm_pmu *cpu_pmu) @@ -693,7 +701,8 @@ static int m2_pmu_blizzard_init(struct arm_pmu *cpu_pmu) cpu_pmu->name =3D "apple_blizzard_pmu"; cpu_pmu->get_event_idx =3D m1_pmu_get_event_idx; cpu_pmu->map_event =3D m2_pmu_map_event; - return apple_pmu_init(cpu_pmu); + cpu_pmu->reset =3D m1_pmu_reset; + return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS); } =20 static const struct of_device_id m1_pmu_of_device_ids[] =3D { --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C4A4A34D4F0 for ; Wed, 17 Dec 2025 16:24:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988697; cv=none; b=tcoIjw1RfQeyy0k+z5U5Cpd5ygdJxhOJMkba2x2LMbow80zQAVjNeRwQT8HcvPtqDQ4cdsCPjpg64nXNKuuR+e+MdCanxsWccVKVjLKWbDR0kyDafLIVQrrShYBjSNs2sSF5S6O40U+JNijgWyFvJMYu95Z8/hcNKzx4iKxTZmE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988697; c=relaxed/simple; bh=7bXhbqBuf3L7P8BkQE01YWRVlFsdM2eh/RfdYjmLgaA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gVYwTOqCTAALsxy8/tJ+GO5HoT/qeZEm0EBYc33yx8rYEimKJH2GOOYA174m65e0MhUp2m4hDlCKrKoDRuHH+FOOK0Gygnpe36hSmxSX8poQOVeZXdjwjKYNciDPpoybAFI/vhkNeSggIMFp7IcX8BkwuS/pgls+6AICwZiCHXw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=SN/pw95p; arc=none smtp.client-ip=209.85.214.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="SN/pw95p" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-2a1022dda33so30703995ad.2 for ; Wed, 17 Dec 2025 08:24:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988695; x=1766593495; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=ZEO9StCrTxXvNpc0CG6gz+jT3FNQyYyGTLdJvKY2VFA=; b=SN/pw95pMnbQuEQxXzQA0/wkVqNbsOpgX+q6fzY7rvuvh5AkFucz6EYeUujsL11zDV 8kW0+ILPCSLQp7hWWoB5cSqX5dFRoN162SMe5MLmPD3zMyetqCdpkZNmyGIGYbWB7xwK ufYItGPOaC2uCL17WF12n0ghPcC9neT8ys4m7fVJ9G+mds2So+RhHpkq+VDewEV2XMiC NqNtDfUCcHI97Jou4eeVOuKWD7wBHJxZhtuCYXaFKbBjcHYxUVS+8KbuenW6V8Cn06wt EGutURvlPF6GhslI448zbURAkGNp3/d6lCy2+Uza5eckBGy2TqpcPstg6kh0xctCYtx9 a+oA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988695; x=1766593495; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=ZEO9StCrTxXvNpc0CG6gz+jT3FNQyYyGTLdJvKY2VFA=; b=hkY7iq+DNu6EQj565XEh+3GlkEd7p1n8AG5+USp0gi+/+O/EWR4Oaeg8pz6Oy4fmfe VcTDP3MKzRPzt89+KAVw6MbzLk1inDxvWpUyJs4F1IvkBHjxCZZA2VXVvr97DNIYy9JE btqUc/se7yAtaX8bq6t1pbzHoNhET4H83LJAIBpYl+y7pakTRsfDVBtQ/Jn9mpv/f2sv MSbwj7wKxvWDzQuMoWrOLKr8GYOihC3JaNXRK2l5hfEucorais6BABLM8PigrLrt0VtC hn1a79YSsKp2Z+prfGh5CVpQ+mWE8NFVbppnUNZo3RkfCsdyyE5ChHaZY2fGSuVmscSl uvsg== X-Forwarded-Encrypted: i=1; AJvYcCUwaO6krQyAevadjLKcAEFajhBv/JDYGqAuiH4zo640f82L3qnRV/mvq54byfXBAK56hud71qTIR6h5E/c=@vger.kernel.org X-Gm-Message-State: AOJu0Yyjlazbg1AV4ftUHzs2rp34bZ+RXqyP/5kOTeZKsFypVI+Opn0B GxJKVpMjl7aBmQULAWMW4jT2QkHoU93lVT42SpRena9SoBXFAo7TxxTDxWS2+ihS X-Gm-Gg: AY/fxX5isANWgOhjgpuouY6NPNkEDxh4uv5zz/3HQMG8+NUq0tiwwGeCbDBY6Rn+mGd HP5GidLRReZcrSGKHHH7ykq5vjJq8U/ijoEDRyq4qX+X5/MswJPqJ5O/8wtiL1upaAIOudrtJHO Fow8jR/Q5AegroefxrEVr10IWID0+5GYtVvghOmmr1jeJsNS/5Xd/+z72kdE5NFzXNhTNjDcYGf CryYqXTxe1H6rt8gCq3TgAFjVKZhHQaA3rNjwSl3r9RhjGUUJTnE4A/HbZGYeThArzejTFQVaUQ PBAr0A1PqodJnyC8gEHnf8mh9stH2QHhR4L9oEFPFcHF6MBnIdCB6n8m81cAH/l9R57uaNHW/dV zWjZfcPAL7eUgauh7XffZqhI3AF7fC/MgpAWx6smVRUR3VpfeAYl5s/iZCPN+7eFJbuWkSamaof xJd53pv4G2BKhk X-Google-Smtp-Source: AGHT+IFmpldl2EnfdJLLNFecnxN4BEn3qLT3U4ZtBOkfTCMmNYM64weQR42jpdgzZIVEBX+DVu2log== X-Received: by 2002:a17:902:ce87:b0:2a1:c72:a41d with SMTP id d9443c01a7336-2a10c72a703mr119320995ad.40.1765988695124; Wed, 17 Dec 2025 08:24:55 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.24.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:24:54 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:18 +0800 Subject: [PATCH v9 05/21] drivers/perf: apple_m1: Support configuring counters for 32-bit EL0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-5-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1977; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=7bXhbqBuf3L7P8BkQE01YWRVlFsdM2eh/RfdYjmLgaA=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlAef+nJhReDRN+pVlLcv8GiPeEbu1GXItBX 8NUJwhDxyuJAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQAAKCRABygi3psUI JJnYEACaUligWBNlh+4Cyx5bBd2haSpcf1uv8Iyz9L80+F6mnLCgzV4ucw5xjJPPSAtsm+v9Dc7 y26/bEmsMHPW+MH6e3CUZCdt6N5juF9tPbRZ5G24neEkbHqq5crgYKZAuv5xmavOxSnzk+fkAiy Ud9v5zCtRqxzrnpiFvPLKE1CmccaHrLi4cM/C+yfeFq8YN5Dp3Nw7xFciXBONr8SUMvErVbRTOg UGTSOuZSsHUH5ZIVzo01laxXoE1ALejU7nDN56soAPhmfI0YwRFZ+Mblz8ncNx51KeSE2QnQFIN vkWiooyVaJFc/NnDqevFvaP7FJ7yyeXs7ZvEVB5J+r5IA4u3YdxnssUbYGiOgPoObRorWtmQVdj IHRC+TT+JBOVs8KYGWv3smgwegxMzqCaRgzSJ4FfezmgUDvocsUL3X/4TSkhl+ZMVjPZm/NTrRQ yAb7ATWidvyGDNSoU87pS+qjW//P4dizYcH1lukjGyUZbgY9M8bOBCuxMKfhwjdcrU24oisCG1Z 0yC0mOJFPzVeBc854OPDSicZ3QnUvkQ/5XhNTln/oTScT6A9/q8rIDNothx5ALBCDqDN86G8KWI 2Q2ZQovR9cQkc1+cxFWZQ4aHYzFuHEdyUv3KVIBR8J9fpuIrmbQESOt/L/oXk/HnE5aQ8CfVTvh QVwkpRwPTp3jEQQ== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Add support for configuring counters for 32-bit EL0 to allow adding support for implementations with 32-bit EL0. Signed-off-by: Nick Chan --- arch/arm64/include/asm/apple_m1_pmu.h | 2 ++ drivers/perf/apple_m1_cpu_pmu.c | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/arch/arm64/include/asm/apple_m1_pmu.h b/arch/arm64/include/asm= /apple_m1_pmu.h index 02e05d05851f739b985bf416f1aa3baeafd691dc..8a667e7f07a517419c22a4f9309= 47347be8546f7 100644 --- a/arch/arm64/include/asm/apple_m1_pmu.h +++ b/arch/arm64/include/asm/apple_m1_pmu.h @@ -38,8 +38,10 @@ =20 #define SYS_IMP_APL_PMCR1_EL1 sys_reg(3, 1, 15, 1, 0) #define SYS_IMP_APL_PMCR1_EL12 sys_reg(3, 1, 15, 7, 2) +#define PMCR1_COUNT_A32_EL0_0_7 GENMASK(7, 0) #define PMCR1_COUNT_A64_EL0_0_7 GENMASK(15, 8) #define PMCR1_COUNT_A64_EL1_0_7 GENMASK(23, 16) +#define PMCR1_COUNT_A32_EL0_8_9 GENMASK(33, 32) #define PMCR1_COUNT_A64_EL0_8_9 GENMASK(41, 40) #define PMCR1_COUNT_A64_EL1_8_9 GENMASK(49, 48) =20 diff --git a/drivers/perf/apple_m1_cpu_pmu.c b/drivers/perf/apple_m1_cpu_pm= u.c index b5fe04ef186f04b4af32524fe433afb79979b791..fb2759069fe9e47146f0342fa46= e40f3ab836926 100644 --- a/drivers/perf/apple_m1_cpu_pmu.c +++ b/drivers/perf/apple_m1_cpu_pmu.c @@ -348,10 +348,16 @@ static void __m1_pmu_configure_event_filter(unsigned = int index, bool user, case 0 ... 7: user_bit =3D BIT(get_bit_offset(index, PMCR1_COUNT_A64_EL0_0_7)); kernel_bit =3D BIT(get_bit_offset(index, PMCR1_COUNT_A64_EL1_0_7)); + + if (system_supports_32bit_el0()) + user_bit |=3D BIT(get_bit_offset(index, PMCR1_COUNT_A32_EL0_0_7)); break; case 8 ... 9: user_bit =3D BIT(get_bit_offset(index - 8, PMCR1_COUNT_A64_EL0_8_9)); kernel_bit =3D BIT(get_bit_offset(index - 8, PMCR1_COUNT_A64_EL1_8_9)); + + if (system_supports_32bit_el0()) + user_bit |=3D BIT(get_bit_offset(index - 8, PMCR1_COUNT_A32_EL0_8_9)); break; default: BUG(); --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2600334D925 for ; Wed, 17 Dec 2025 16:24:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988700; cv=none; b=S2Z6jaKPPOCRuzwgD4lBuxwPpvyG1ReqY7LumdYNUjGde02Uxw+ioOGgBVhq8XbnCQIIOLfKYhg6SlBT+AGV6rYsh+2USGo5hel44nOrs/MxsGpMhZdfXAJKxq8ELaGL4K/pQKqpRik4NqtlFhKJUbETi8BK/xWn3JsEx2eFJRY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988700; c=relaxed/simple; bh=EvpktAwcuUmIVDFq1R1ot/bW7FD9M9oCQoJjxbhIT58=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SpqQHEdEPH7WbDZdTAYjfl6wjKl3Qhsd2WX8ggrw9f3TpMnWgVg6RiPH5eks7xvSWe9hM6Z/naLC5M8+p0iX3nl6/64NCNwZdQHAJ4Nvp9T2/9S5AG+YaRFlF4h84EBiUWEJPYk19uSOMtEr5gFOvKZqaQFNLTZLH8FEstVJZKI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=BEBG9b4j; arc=none smtp.client-ip=209.85.214.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="BEBG9b4j" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-2a110548cdeso39962855ad.0 for ; Wed, 17 Dec 2025 08:24:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988698; x=1766593498; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=VV04TP1qOyPuEJVZ8EkDOfgn7C3GBNsDLm8LDcSrTn4=; b=BEBG9b4j9AP6RRjgrevpe78cspjq4946bwd+f9Jj8YZRM8kcMzw8liwwk4DGToBaIj CzEavRiOPLwFQb5dafIu1SyjItkGm9NMvB5jDVhoprrmMGmGK9d6QBkWiTLxX1aq8MsU F382JO60tCBaO2+MX6mM4vcVt0UrXb32QqJ7ypucvEvmDLpICS9eOWdWRCWXR9uvlGSH f5U5cCmOsu/uNIVEtfu2BFH2EUxmjckkv1HXM6L8AXC352fxx/YhgjcFerO4NEq+wA+K 39rr8vnkO7wIIHoGG4hZTzwggEDn2BnY0JFt+cqyMU001C+eBa8sgwSGpNt1t+Ea04eT I8ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988698; x=1766593498; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=VV04TP1qOyPuEJVZ8EkDOfgn7C3GBNsDLm8LDcSrTn4=; b=CO62ruSjH1JOMfnB4+mC5KncVjJFHmSMq7COa2mA7oFGNiRYUk6m7DOHCwO9jYSUQC p7DfgIb7ab/CpYt9dd28LJw3ckEBG7060WspDhJLRVTynkJxt1aRTTKp6q4NlcgP25j9 I0bm9ncbvA6Knz+3T4JX3S/+5kdXS+RXyfP8j+kY16svpToDz6LOLp9Fan3MD62QzKeK PjuiprWlnCeIunoaatXpKq2ICyUrKTWIe/g1EyzSGKUDtis/nVf277hDJ1KN/5ossjMw h3G62quwY1cEuhO66ol+LIQckqkT/iKh005TttcgAauGrchIFPgr/dekviDUjrsmnq7n WBAA== X-Forwarded-Encrypted: i=1; AJvYcCXUz4MDP5Q9yrSuvgTNOPR0c+L6xug8ww+XDNZH/sQ5Tlp9MVkhqG8sAgPmM6WJQWcwwp7PDx+urS6L56A=@vger.kernel.org X-Gm-Message-State: AOJu0YxLy0ogbn4L1ei5s+izg0kk85yYEebQDW1QVn9JIEaEqkdr2GMs JwSbzmBIetyJms3XLnxKC1I1feKBcSIgUtQ8yxm+o8OhKIc1c1dH7i62 X-Gm-Gg: AY/fxX71+MjAP3IhvO2NTum7GMPfczuUoyo6Rf4gBGpSODcauz3053TsVuWHzqf948M tqoIBZA6REPeuNSianrFzZ94w++WCXRCwWzFyYDfWjv7bJ6GXmHgSU0+/LGKi2s8rk2ltTstoTS PvQxt9zUCpNFn+rLnlvO0ouC9sxShz4kWFQ7e7J9P3TMXfyCxuefCaDgKV8mcRLmsdQlpVIIYf6 0yu65QFwSZn9iXp35N0sKhoEjJh/M7gLlxGWerOQ8l7f2Z3Va3orQtGkpZWgSFUKOPFdQg1iVPi Nnb796OxNZ9V3vkAqOPs09PXwpqtmj+cuMLKTbjtmTEQe+IN4OGB7Ua1YmOYq7n0vTONAnIC7fx mkWvxzf+P5QkA/98SKBf/IDG/xGB6jlyE71jMZkc2jrKsQgmvP/OL32oQE9J1wKOE9YPD5z42uF ygst4s7YKRiEac X-Google-Smtp-Source: AGHT+IEpTD54HFdeMnaw0VjZN9vYnC7ljfIwzHHvSyRXdlKEsVX/LGgWNkU7U3alrGNq/8FyZgpAeA== X-Received: by 2002:a17:903:1b45:b0:27e:dc53:d239 with SMTP id d9443c01a7336-29f26eb2a1cmr188775065ad.35.1765988698277; Wed, 17 Dec 2025 08:24:58 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.24.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:24:57 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:19 +0800 Subject: [PATCH v9 06/21] drivers/perf: apple_m1: Support per-implementation PMU startup Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-6-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2178; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=EvpktAwcuUmIVDFq1R1ot/bW7FD9M9oCQoJjxbhIT58=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlA5q5NsoNM1LMrGXCePOowzgKrUqQ5mi42o JBGkhTTFRqJAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQAAKCRABygi3psUI JE6kD/9DDhF4RO/JQidMPAlnqSVBd/rn9UAjC81WNu/nQnhSoMkXh4rdDE8vZciufv4QYb5SHVt QsALf8hFy8NJUP8+I51BSwqEHtNPQoJAFZzKgAt67v16ZQ/yyDHYPhY9y8ZxmEoljjFGCSsfRoZ 7DzFgEnkPzogAVTazoe17QqJgIuTAEoJMm7TrG+WC97CDwCgUjxJkA9cvt8Ftv7iNgu05124gOz exyhpXoV1ZW9gX7ZDIA9UBTQcm02nK2GekfaInFaWlnULiMfjotmGu+QewVU+GHG7uZO0friYTL ayTSCvbwYwzjw5PODzRpzKQbKyjh/Z3WC5npjLjPOpLAB/evsOiAthhiyhxdYVmd7Zojv2JdpdH XQ0V0AEVjB1Nsh28NwC9IxpbDZdl3k+yOIu3yoKcFftWTWrOAVKcmVsPJZGPWP3T0rDhln8ujk6 Yp2PvnOh9IYT327M0oKe749VDt0oXMT0pL+qxfgRXlCb9cpPlk0iat5MbpCHuLGKeWS3IbRAhE6 i4Ie1S606zj9ud1IC1Uz9YHzG9+LLGt4j2lztc5NbzgcA78gGJLEp2YMHNrwJ2iGLcSe03jyYie gLn5aHAg44Pw2FOdPsvsmk6mgcqXPOQaiRB378X2CHxvOi5j+hw5Q1osulsXl/fucqYcNJYExPA a3XIWmgZ1cngAiQ== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Support for implementations that deliver its interrupts in ways other than FIQ will be added, which requires a per-implementation startup function. Signed-off-by: Nick Chan --- drivers/perf/apple_m1_cpu_pmu.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/perf/apple_m1_cpu_pmu.c b/drivers/perf/apple_m1_cpu_pm= u.c index fb2759069fe9e47146f0342fa46e40f3ab836926..303c0e62432281e899a33fc1973= 65c70078d6ac1 100644 --- a/drivers/perf/apple_m1_cpu_pmu.c +++ b/drivers/perf/apple_m1_cpu_pmu.c @@ -659,7 +659,6 @@ static int apple_pmu_init(struct arm_pmu *cpu_pmu, u32 = counters) cpu_pmu->read_counter =3D m1_pmu_read_counter; cpu_pmu->write_counter =3D m1_pmu_write_counter; cpu_pmu->clear_event_idx =3D m1_pmu_clear_event_idx; - cpu_pmu->start =3D m1_pmu_start; cpu_pmu->stop =3D m1_pmu_stop; cpu_pmu->set_event_filter =3D m1_pmu_set_event_filter; =20 @@ -681,6 +680,7 @@ static int m1_pmu_ice_init(struct arm_pmu *cpu_pmu) cpu_pmu->get_event_idx =3D m1_pmu_get_event_idx; cpu_pmu->map_event =3D m1_pmu_map_event; cpu_pmu->reset =3D m1_pmu_reset; + cpu_pmu->start =3D m1_pmu_start; return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS); } =20 @@ -690,6 +690,7 @@ static int m1_pmu_fire_init(struct arm_pmu *cpu_pmu) cpu_pmu->get_event_idx =3D m1_pmu_get_event_idx; cpu_pmu->map_event =3D m1_pmu_map_event; cpu_pmu->reset =3D m1_pmu_reset; + cpu_pmu->start =3D m1_pmu_start; return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS); } =20 @@ -699,6 +700,7 @@ static int m2_pmu_avalanche_init(struct arm_pmu *cpu_pm= u) cpu_pmu->get_event_idx =3D m1_pmu_get_event_idx; cpu_pmu->map_event =3D m2_pmu_map_event; cpu_pmu->reset =3D m1_pmu_reset; + cpu_pmu->start =3D m1_pmu_start; return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS); } =20 @@ -708,6 +710,7 @@ static int m2_pmu_blizzard_init(struct arm_pmu *cpu_pmu) cpu_pmu->get_event_idx =3D m1_pmu_get_event_idx; cpu_pmu->map_event =3D m2_pmu_map_event; cpu_pmu->reset =3D m1_pmu_reset; + cpu_pmu->start =3D m1_pmu_start; return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS); } =20 --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3079934DB49 for ; Wed, 17 Dec 2025 16:25:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988703; cv=none; b=ObeBxWOTNX+0LirkAalDIndPO05E3YY91nFaZdzmPVzd9k1OKxqdYgvdCTSTVKGiVsyUQorpOk1HKECFq1ocR8F2CABnsh3wJuNXKkFoiBBMY3HtvR6dmtKvJ89oP2tgFlW/MLeiiTwc9x0cJwylHdlWYOpS+LilaeUb6KDXUlw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988703; c=relaxed/simple; bh=ZZrFSnM4qaLIjy+z2U/97ZkDz6A45/CxzWdqdPeWGg4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pUThlTv63Umy8P4m5Lb7si8pFV0AHvbBi6/ytDGoGvXmsYYotNdSMw9AnP+gPD2H7WB2NCrEmDercW7tdpvlfv1W8Xon0BQGs+QFjl27lvPGk/z0E9ifOY045n2UuNnocvdwB8wWGQW/RSmvw51xAEk88MEUdbIntTQeVRfbtXU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=MHf5EvNl; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MHf5EvNl" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2a07fac8aa1so47271805ad.1 for ; Wed, 17 Dec 2025 08:25:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988701; x=1766593501; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=LJBqWPH2nkiaa34J/fXU+ba5HlDmsksob32XTdaDMY4=; b=MHf5EvNlL8SmLc37hVkjSwMX2bwGKRFlxdRE3+519mcGNA2qOX9r2+WGWdrQa2FW4g WkkltgC4A5pZcpPZLgpp7uK4kuB3nMZicCH8UIj5DESfCupyOkoGaVeA+Zwd+Z+2rrk9 dX7DLSQvmMgatZYEofhI7nrTzhE0TGl+VuzzDJEWUed9s63s53v3R6bQo8vMk5RbOKNM DYpRUNHR4fIfy0btNVNdpkuChPQBWSaIUsjsjlT50V/ecJdHCInyFCU0K6fg3gadmN2U ZI6IyIQBjPgnrHs6IOm0h8id34D/kigt7e9RqFLXF6GRQ9klQtNPBymKTDMMS+vkjyh+ 0SDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988701; x=1766593501; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=LJBqWPH2nkiaa34J/fXU+ba5HlDmsksob32XTdaDMY4=; b=hzlgSAxLVkV/5E9jYGYhBSH4OzbM7QDQPJe3ngQbjdUxUZCf1V7LmSSbtnfzvhrwGF i36IC9Yy9lEjAAGgV3R9mXgM3+CMAAeiqn4yVNiBiFfNdJS3p7NU7Knkw73Re6IrotGv iZ89zVojOxvg+xQ0bcNpMuAnqC8m79RC/FLSV1mVBpP0j9lvhiCKDU5y5OagOgvFPP1P UGFuS8gTlKJ0SJ3w7kZ1CvYqJvMx37wLrFocAroBAHc6+HEb6fyXuY1pmiP8IeX8PL9N QuWy9aHW7m9CsNSl2hWS7I/sr5wTvaAWM6Wd8W5QbLf71ZeepJfPwXhmYFy/bpF6UFib 870w== X-Forwarded-Encrypted: i=1; AJvYcCUWfvvztAXLLxdklBttclRHD1ZXQezorPOujB+kiaVk+xzjv4wd8Q/ImT/LSaK3TksqyFYH7UXIbZMg7z8=@vger.kernel.org X-Gm-Message-State: AOJu0Yykb2DCpIDrtQOo6MhVtIy+TrGRaINhJQF2kCdx0waBND3WwOBF IJ4PNKeNQ0Q6WThnkIhAGqxEw22Z8O4L7it9cnkpMUHpIV7yIKv0D97h X-Gm-Gg: AY/fxX4NOTtkQJ50sBMhhNAHnNXaj7fzEVwBu+tHqSGZJ5FJDEhPNRmO2Sg/KY+rWz3 XQD5wli+j3ubY4sNJPshWV/ERkYG6mqOdK2pJpHGPcDe0RH7bmU1xrqOm33/JnHcoT2/XTFfPeK 6zrq+zCrXhd+SRBrKFLMw9hlYKGINkZ+MC43316ITHCxBTGABqJI4RT83MPFE9aTLdocp6a+C3f nQ86TgpAh5qOviqbThOBMl0fLE5aUhKV+BjoOZybf6pxygXMTBiAqeK4gvyteZLaO7MPW6HVtDY jmotMLdeuYc4XnOPUUzKHptXTcgNLfpl5N2xIAxer/heQ81BkQ+ZsYZ16O9cI4j904AoG+6oV7v tKbWIGZ461TLIDEjYmu4Tt+Ya/lXwwKbILh8ZvFazBrtYxIJVxWqSkkjx17SQFIWrEBILmFW88K uTxPlQGkbJVG8QaqKfCO3mBe0= X-Google-Smtp-Source: AGHT+IG0BRya6JcBr0mTcVAqL7t0D9n0v53qOEX5qkYR98IGq7dQZ1TKMwIAOg2C6RQdGKX63TpT6w== X-Received: by 2002:a17:903:2442:b0:2a0:b62e:e016 with SMTP id d9443c01a7336-2a0b62ee12bmr124556125ad.32.1765988701484; Wed, 17 Dec 2025 08:25:01 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.24.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:25:01 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:20 +0800 Subject: [PATCH v9 07/21] drivers/perf: apple_m1: Support per-implementation event attr group Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-7-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2222; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=ZZrFSnM4qaLIjy+z2U/97ZkDz6A45/CxzWdqdPeWGg4=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlAGMO0GGZLpi1zAtxvLgpEJr3Y9rGS2lnzl VwsXzVKlU2JAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQAAKCRABygi3psUI JG0wD/4xjOyi4wclJt98NB5Fro8UHmkJvVz91tpavZ8ogxOXqWdgOt1/EA3rU8KXW+O2rZ5IYHt rGFXDuwHqThtPxSUPe4d30LDij17Eqk09D9s65+BCUfRByroZKPgkuThHAbjGoFncAExxsEAk97 ARE5Obg1xmTvdcNN+MF9YML5wxXzgiWsgZoQwueb5bv+uJDx6mn2Wa82iZL/R3d+2ZXyF3mSXNm nSjF3TvGGee2bmB5yM+aiNq2lhhQIgRjWyyoshfEgccWmWg74iMwXRrqFuyJ7yPvJr5zDateZzw t8AhG+FtAU1ZFQe5I0vNDugjZ7MSbGWF3nycpmLPI6gjrMSJvSXm+x9SN/XuiD9z2qb5LTfBs8S 0zq4bwDU3RLO9d0hlOhqrv7C2bght3tCo0InrHn+7QXPa6kvrqO1KHmWrHY3xPeeX0eAT3F8oRm gBJCDa0cMxCD6SuvnsTGMDaTRZtxodGFwyUTOdrVEiUF4W2dN+66pJZW5p0uWcKSJJdNi4++OmH tY+8H0KaeclNhGqwJvNk3XGtae2UUbHsnbQr58GCGO9fUGOhW+6gEc/nUKhmxdlYKfygk3K6+9A 9EYIinsD867fdYWbjzShMO5ggO3TBzTqmeqdSq9Mv6Qy1VXLyXZxxRKbWlufGEK26lQkutjh8zF SagzGtDXKJl3dXg== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 To support implementations with different event numbers for cycles or instruction events, event attr groups needs to be per-implementation. Signed-off-by: Nick Chan --- drivers/perf/apple_m1_cpu_pmu.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/perf/apple_m1_cpu_pmu.c b/drivers/perf/apple_m1_cpu_pm= u.c index 303c0e62432281e899a33fc197365c70078d6ac1..d0362a1813788776f4210523efe= 33a3018cfef2a 100644 --- a/drivers/perf/apple_m1_cpu_pmu.c +++ b/drivers/perf/apple_m1_cpu_pmu.c @@ -668,7 +668,6 @@ static int apple_pmu_init(struct arm_pmu *cpu_pmu, u32 = counters) } =20 bitmap_set(cpu_pmu->cntr_mask, 0, counters); - cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] =3D &m1_pmu_events_attr_gr= oup; cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_FORMATS] =3D &m1_pmu_format_attr_g= roup; return 0; } @@ -681,6 +680,7 @@ static int m1_pmu_ice_init(struct arm_pmu *cpu_pmu) cpu_pmu->map_event =3D m1_pmu_map_event; cpu_pmu->reset =3D m1_pmu_reset; cpu_pmu->start =3D m1_pmu_start; + cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] =3D &m1_pmu_events_attr_gr= oup; return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS); } =20 @@ -691,6 +691,7 @@ static int m1_pmu_fire_init(struct arm_pmu *cpu_pmu) cpu_pmu->map_event =3D m1_pmu_map_event; cpu_pmu->reset =3D m1_pmu_reset; cpu_pmu->start =3D m1_pmu_start; + cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] =3D &m1_pmu_events_attr_gr= oup; return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS); } =20 @@ -701,6 +702,7 @@ static int m2_pmu_avalanche_init(struct arm_pmu *cpu_pm= u) cpu_pmu->map_event =3D m2_pmu_map_event; cpu_pmu->reset =3D m1_pmu_reset; cpu_pmu->start =3D m1_pmu_start; + cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] =3D &m1_pmu_events_attr_gr= oup; return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS); } =20 @@ -711,6 +713,7 @@ static int m2_pmu_blizzard_init(struct arm_pmu *cpu_pmu) cpu_pmu->map_event =3D m2_pmu_map_event; cpu_pmu->reset =3D m1_pmu_reset; cpu_pmu->start =3D m1_pmu_start; + cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] =3D &m1_pmu_events_attr_gr= oup; return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS); } =20 --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7C08D34CFC7 for ; Wed, 17 Dec 2025 16:25:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988708; cv=none; b=CtL84PKFNlQFyBX/0CMKJcOSqsHRb7G2KeespWzY1nVo5cn0SW3acHB4P7CqQ/+3u3pJAeF5r6yEZKn0MCCUsrXP41unt8xl91FdwILOK77y+3FFacyljT0lqvCQ9xdQf8Uptjdx+1ptkqA3pG8UsIdDWr31x0uEk4UMHR/+yJE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988708; c=relaxed/simple; bh=Ve8JtIZshKhpIu/AxIxi3XNYHQjUq2JBx0/93bWTT3A=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=syhcoBzERdcpC/LB7LsmanS8qs4ymAD0qN7vf33KoreAaFXls/C8+Y+RMyDxGxqBSXHCdjes3CQPKTFSVPGg5jcZgyHe8BRdTt5EPDGIm5DvTmY3wQutJkRruGLmQKF9A6fZAzsRrHc7Vt+dlNTbC+WZFCE8rJpvBE8qNX1N/bc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=jOMr9zJn; arc=none smtp.client-ip=209.85.214.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="jOMr9zJn" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-29f102b013fso73158645ad.2 for ; Wed, 17 Dec 2025 08:25:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988705; x=1766593505; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=wKfsl6TJtV6NVJcVtFFwq5opAYbzEXUdHO64thwZh3g=; b=jOMr9zJnk82m6h3sVgcWGWnCU+6HkelDqYiueg/3fP36VLnwxolgsnJsFMDa87NU/E CjraTbM3tTrZ80kBOZnQzu9WI4xKtvUnpwrD2tUwIpzF+Py1qNHaKbnbY8xZ+KPr7kqD fh6vXYAghevvsbq3+P04MkpCltfKZjXFUPr7SuCzyXfaUeSKLQE8+Zee8PLbD6FNffY/ SQHn8VvHL9vmu5dYonAOJP7k2BZC/QK3FKRBavnqOLz+lfg+PYxZqjEf+MV1u7//snxa yyCWHvXU47XggLh9oOc/fTO9hfvqrAFHLiRwDxXEvqWxTZkW9WSSWifkQ415qOZzyBts U9fA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988705; x=1766593505; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=wKfsl6TJtV6NVJcVtFFwq5opAYbzEXUdHO64thwZh3g=; b=aUQe3YF4uxc8/Jw6n4970PTg/DNgyTlDQ3mtOady2HyoupmjmExNs76I9lFg0tMVdn nxQZZxUrGYxb2qVoY+sDLjffK/bnO/eOlzJq85M0Fy82Z1YuMit2x3YjNz1IHrB0AEXk UiJ3cfYViFc5f8DsMxandPazL5a8T3JUlsfyqmyiMXWwaDQlPhHof+05SMvMFuOB79IH zaxN7BkrhxL2w9OtN7q37W2A2yu0Nk25q/EXZ2zcM6tFDy5K+9YD+7ZP6d0LlNHJ46Em eZU0IZgKgAz8paRUf6NishMKswnXJZuON1wRL7zJHzoqPLlzWc1pawjUYoRnZSA9WNUz xgBg== X-Forwarded-Encrypted: i=1; AJvYcCVyqXdfXePFO49e0bdGCzw7foXqnRnAEL43ljUarHOtYTmzaHgpBvfr5DtQuI2QllDeFtHTqZkWqDVyX+A=@vger.kernel.org X-Gm-Message-State: AOJu0Yx15UBnb1fZrCpMVveYwqwB2dNQFmfkwxQn61wVanENqA0ESMt7 a+HtLVwrgViyESsUSFnmSjAaGBiTOjWiPI9CJIYLyBlf8CkxmHueasUfsfT+ck9N X-Gm-Gg: AY/fxX4N2nNMZDNrw8JURpUbNclb87v0AhREhTRIYbnfLA4uZzOKC9/U9LQNVsLyxlL 0wtelkEcrWkwC5mSQ3ddzX1CVKiy2fHKnugh07MNtLh6L9sE0+wz6T+B73O6ir4o+81A5URAMzL yM8JBcP7/LfgZxJ0wEhJMov2PYYmk7DlYiOEos2W87fTbT5DLTRLg9IPY24g2XR/Fg8q7J1sj9e ofSCmdnsCOfO0RNZOQWjHYVzuBBWzsB8ZUEMO44FzxZ1bgtwfu561N920EA2fdnG7FQQrd1Rsaq 2bM9d9kLl3jaCiNy9Isx+cvtrEE199s2CW9JUsvWbyKyLdeyU3zZorYKk5ETdiYqeuLF/pYWApR mYTAWD+lg0W4rq4u1yRsUe8PuEUp2sGihQcM1Uc8TcjTpJufl4hZq51Il6ANeEfRkkwGEZiYCii eTvFxuygTh5a0s X-Google-Smtp-Source: AGHT+IFAzju75fdcmt1A+y6DBnf43+N+zIEk17KS3YwGYlOMyiRGmnV1iIQQBhZlg7+g+gprgu2e3A== X-Received: by 2002:a17:902:d492:b0:2a0:d431:930 with SMTP id d9443c01a7336-2a0d4310ca7mr125122375ad.47.1765988704690; Wed, 17 Dec 2025 08:25:04 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.25.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:25:04 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:21 +0800 Subject: [PATCH v9 08/21] drivers/perf: apple_m1: Add Apple A7 support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-8-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=11055; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=Ve8JtIZshKhpIu/AxIxi3XNYHQjUq2JBx0/93bWTT3A=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlBbeSve61teZasKSn0crBm80MtNxUNBrxe+ AjlD/tWvu2JAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQQAKCRABygi3psUI JKr6D/0ehO5ZEBORZEgGPR3KXx4FL6QXWwldWahnkPhK9ROqKnuowxHO9ts3Y/cpHco1u/4ZJpe j0qVVHEhiqp702YWB0NLSothbFmIKdiWDCNx+YgvPPZJHRLbTiJjy3wnTrgwdlJStvN9Cmewmz2 BfDV4REaetESalAfbEi5lfJD9vjEwmTvFXLq0PsgK0Aq3s7hsJ4EiPdWrRnDNn76x3S+YkQ5vPy wUeUYwvxzObaQyFa6TRWDuBKUxC8U+dPUtQznqzwWlHDENzw6tBJaAc4gF+L/xt+h9eLfsv84iw BWgWuZVGrlAc3WbD0dTvdNoPDZCNe2CU8F8QxgXDjYiXoH9xL1O+lqV6/gAjeUJjnuM662DbyaP /M6bp3hvYx4V/AM3otkfM80Ejzt5NTjbRMsosODHzVEsm5G3pFwwk76mIV2+k5BggcCoUh3W318 xkDOa8W3bhYcnQulUw02t72FgnlEpvXZmkrZTkbb0H699L0atPZsi7MdP+n3J7gBh/zc8KeEi23 y9EyQK6VlUv03i3JlNkMVWQBujRy5x7FgRGGYi+Hg1e1IYz0OmrnE0IxdHRi+SfXMaCRdCpjueQ ITZvGr2bHfcSKGz/Hk5iw0MawvwWLkckahLj3poKtxwKK4sNU74g3v5u25NgyZEtW5alsudh2sc gy0teAC1Jshb8bQ== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Add support for the CPU PMU found in the Apple A7 SoC. The PMU has 8 counters and a very different event layout compared to the M1 PMU. Interrupts are delivered as IRQs instead of FIQs like on the M1. Signed-off-by: Nick Chan --- drivers/perf/apple_m1_cpu_pmu.c | 190 ++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 190 insertions(+) diff --git a/drivers/perf/apple_m1_cpu_pmu.c b/drivers/perf/apple_m1_cpu_pm= u.c index d0362a1813788776f4210523efe33a3018cfef2a..afcf7c951379698ceff21c1a99c= ca31b3a6177b1 100644 --- a/drivers/perf/apple_m1_cpu_pmu.c +++ b/drivers/perf/apple_m1_cpu_pmu.c @@ -19,6 +19,7 @@ #include #include =20 +#define A7_PMU_NR_COUNTERS 8 #define M1_PMU_NR_COUNTERS 10 #define APPLE_PMU_MAX_NR_COUNTERS 10 =20 @@ -45,6 +46,143 @@ * know next to nothing about the events themselves, and we already have * per cpu-type PMU abstractions. */ + +enum a7_pmu_events { + A7_PMU_PERFCTR_INST_ALL =3D 0x0, + A7_PMU_PERFCTR_UNKNOWN_1 =3D 0x1, + A7_PMU_PERFCTR_CORE_ACTIVE_CYCLE =3D 0x2, + A7_PMU_PERFCTR_L2_TLB_MISS_INSTRUCTION =3D 0x10, + A7_PMU_PERFCTR_L2_TLB_MISS_DATA =3D 0x11, + A7_PMU_PERFCTR_BIU_UPSTREAM_CYCLE =3D 0x19, + A7_PMU_PERFCTR_BIU_DOWNSTREAM_CYCLE =3D 0x20, + A7_PMU_PERFCTR_L2C_AGENT_LD =3D 0x22, + A7_PMU_PERFCTR_L2C_AGENT_LD_MISS =3D 0x23, + A7_PMU_PERFCTR_L2C_AGENT_ST =3D 0x24, + A7_PMU_PERFCTR_L2C_AGENT_ST_MISS =3D 0x25, + A7_PMU_PERFCTR_SCHEDULE_UOP =3D 0x58, + A7_PMU_PERFCTR_MAP_REWIND =3D 0x61, + A7_PMU_PERFCTR_MAP_STALL =3D 0x62, + A7_PMU_PERFCTR_FLUSH_RESTART_OTHER_NONSPEC =3D 0x6e, + A7_PMU_PERFCTR_INST_A32 =3D 0x78, + A7_PMU_PERFCTR_INST_T32 =3D 0x79, + A7_PMU_PERFCTR_INST_A64 =3D 0x7a, + A7_PMU_PERFCTR_INST_BRANCH =3D 0x7b, + A7_PMU_PERFCTR_INST_BRANCH_CALL =3D 0x7c, + A7_PMU_PERFCTR_INST_BRANCH_RET =3D 0x7d, + A7_PMU_PERFCTR_INST_BRANCH_TAKEN =3D 0x7e, + A7_PMU_PERFCTR_INST_BRANCH_INDIR =3D 0x81, + A7_PMU_PERFCTR_INST_BRANCH_COND =3D 0x82, + A7_PMU_PERFCTR_INST_INT_LD =3D 0x83, + A7_PMU_PERFCTR_INST_INT_ST =3D 0x84, + A7_PMU_PERFCTR_INST_INT_ALU =3D 0x85, + A7_PMU_PERFCTR_INST_SIMD_LD =3D 0x86, + A7_PMU_PERFCTR_INST_SIMD_ST =3D 0x87, + A7_PMU_PERFCTR_INST_SIMD_ALU =3D 0x88, + A7_PMU_PERFCTR_INST_LDST =3D 0x89, + A7_PMU_PERFCTR_UNKNOWN_8d =3D 0x8d, + A7_PMU_PERFCTR_UNKNOWN_8e =3D 0x8e, + A7_PMU_PERFCTR_UNKNOWN_8f =3D 0x8f, + A7_PMU_PERFCTR_UNKNOWN_90 =3D 0x90, + A7_PMU_PERFCTR_UNKNOWN_93 =3D 0x93, + A7_PMU_PERFCTR_UNKNOWN_94 =3D 0x94, + A7_PMU_PERFCTR_UNKNOWN_95 =3D 0x95, + A7_PMU_PERFCTR_L1D_TLB_ACCESS =3D 0x96, + A7_PMU_PERFCTR_L1D_TLB_MISS =3D 0x97, + A7_PMU_PERFCTR_L1D_CACHE_MISS_ST =3D 0x98, + A7_PMU_PERFCTR_L1D_CACHE_MISS_LD =3D 0x99, + A7_PMU_PERFCTR_UNKNOWN_9b =3D 0x9b, + A7_PMU_PERFCTR_LD_UNIT_UOP =3D 0x9c, + A7_PMU_PERFCTR_ST_UNIT_UOP =3D 0x9d, + A7_PMU_PERFCTR_L1D_CACHE_WRITEBACK =3D 0x9e, + A7_PMU_PERFCTR_UNKNOWN_9f =3D 0x9f, + A7_PMU_PERFCTR_LDST_X64_UOP =3D 0xa7, + A7_PMU_PERFCTR_L1D_CACHE_MISS_LD_NONSPEC =3D 0xb4, + A7_PMU_PERFCTR_L1D_CACHE_MISS_ST_NONSPEC =3D 0xb5, + A7_PMU_PERFCTR_L1D_TLB_MISS_NONSPEC =3D 0xb6, + A7_PMU_PERFCTR_ST_MEMORY_ORDER_VIOLATION_NONSPEC =3D 0xb9, + A7_PMU_PERFCTR_BRANCH_COND_MISPRED_NONSPEC =3D 0xba, + A7_PMU_PERFCTR_BRANCH_INDIR_MISPRED_NONSPEC =3D 0xbb, + A7_PMU_PERFCTR_BRANCH_RET_INDIR_MISPRED_NONSPEC =3D 0xbd, + A7_PMU_PERFCTR_BRANCH_CALL_INDIR_MISPRED_NONSPEC =3D 0xbf, + A7_PMU_PERFCTR_BRANCH_MISPRED_NONSPEC =3D 0xc0, + A7_PMU_PERFCTR_UNKNOWN_c1 =3D 0xc1, + A7_PMU_PERFCTR_UNKNOWN_c4 =3D 0xc4, + A7_PMU_PERFCTR_UNKNOWN_c5 =3D 0xc5, + A7_PMU_PERFCTR_UNKNOWN_c6 =3D 0xc6, + A7_PMU_PERFCTR_UNKNOWN_c8 =3D 0xc8, + A7_PMU_PERFCTR_UNKNOWN_ca =3D 0xca, + A7_PMU_PERFCTR_UNKNOWN_cb =3D 0xcb, + A7_PMU_PERFCTR_FED_IC_MISS_DEMAND =3D 0xce, + A7_PMU_PERFCTR_L1I_TLB_MISS_DEMAND =3D 0xcf, + A7_PMU_PERFCTR_UNKNOWN_f5 =3D 0xf5, + A7_PMU_PERFCTR_UNKNOWN_f6 =3D 0xf6, + A7_PMU_PERFCTR_UNKNOWN_f7 =3D 0xf7, + A7_PMU_PERFCTR_UNKNOWN_f8 =3D 0xf8, + A7_PMU_PERFCTR_UNKNOWN_fd =3D 0xfd, + A7_PMU_PERFCTR_LAST =3D M1_PMU_CFG_EVENT, + /* + * From this point onwards, these are not actual HW events, + * but attributes that get stored in hw->config_base. + */ + A7_PMU_CFG_COUNT_USER =3D BIT(8), + A7_PMU_CFG_COUNT_KERNEL =3D BIT(9), +}; + +static const u16 a7_pmu_event_affinity[A7_PMU_PERFCTR_LAST + 1] =3D { + [0 ... A7_PMU_PERFCTR_LAST] =3D ANY_BUT_0_1, + [A7_PMU_PERFCTR_INST_ALL] =3D ANY_BUT_0_1 | BIT(1), + [A7_PMU_PERFCTR_UNKNOWN_1] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_CORE_ACTIVE_CYCLE] =3D ANY_BUT_0_1 | BIT(0), + [A7_PMU_PERFCTR_INST_A32] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_INST_T32] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_INST_A64] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_INST_BRANCH] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_INST_BRANCH_CALL] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_INST_BRANCH_RET] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_INST_BRANCH_TAKEN] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_INST_BRANCH_INDIR] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_INST_BRANCH_COND] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_INST_INT_LD] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_INST_INT_ST] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_INST_INT_ALU] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_INST_SIMD_LD] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_INST_SIMD_ST] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_INST_SIMD_ALU] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_INST_LDST] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_UNKNOWN_8d] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_UNKNOWN_8e] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_UNKNOWN_8f] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_UNKNOWN_90] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_UNKNOWN_93] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_UNKNOWN_94] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_UNKNOWN_95] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_L1D_CACHE_MISS_ST] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_L1D_CACHE_MISS_LD] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_UNKNOWN_9b] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_LD_UNIT_UOP] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_UNKNOWN_9f] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_L1D_CACHE_MISS_LD_NONSPEC] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_L1D_CACHE_MISS_ST_NONSPEC] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_L1D_TLB_MISS_NONSPEC] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_ST_MEMORY_ORDER_VIOLATION_NONSPEC] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_BRANCH_COND_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_BRANCH_INDIR_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_BRANCH_RET_INDIR_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_BRANCH_CALL_INDIR_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_BRANCH_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_UNKNOWN_c1] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_UNKNOWN_c4] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_UNKNOWN_c5] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_UNKNOWN_c6] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_UNKNOWN_c8] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_UNKNOWN_ca] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_UNKNOWN_cb] =3D ONLY_5_6_7, + [A7_PMU_PERFCTR_UNKNOWN_f5] =3D ONLY_2_4_6, + [A7_PMU_PERFCTR_UNKNOWN_f6] =3D ONLY_2_4_6, + [A7_PMU_PERFCTR_UNKNOWN_f7] =3D ONLY_2_4_6, + [A7_PMU_PERFCTR_UNKNOWN_fd] =3D ONLY_2_4_6, +}; + enum m1_pmu_events { M1_PMU_PERFCTR_RETIRE_UOP =3D 0x1, M1_PMU_PERFCTR_CORE_ACTIVE_CYCLE =3D 0x2, @@ -165,6 +303,14 @@ static const u16 m1_pmu_event_affinity[M1_PMU_PERFCTR_= LAST + 1] =3D { [M1_PMU_PERFCTR_UNKNOWN_fd] =3D ONLY_2_4_6, }; =20 +static const unsigned int a7_pmu_perf_map[PERF_COUNT_HW_MAX] =3D { + PERF_MAP_ALL_UNSUPPORTED, + [PERF_COUNT_HW_CPU_CYCLES] =3D A7_PMU_PERFCTR_CORE_ACTIVE_CYCLE, + [PERF_COUNT_HW_INSTRUCTIONS] =3D A7_PMU_PERFCTR_INST_ALL, + [PERF_COUNT_HW_BRANCH_MISSES] =3D A7_PMU_PERFCTR_BRANCH_MISPRED_NONSPEC, + [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] =3D A7_PMU_PERFCTR_INST_BRANCH +}; + static const unsigned m1_pmu_perf_map[PERF_COUNT_HW_MAX] =3D { PERF_MAP_ALL_UNSUPPORTED, [PERF_COUNT_HW_CPU_CYCLES] =3D M1_PMU_PERFCTR_CORE_ACTIVE_CYCLE, @@ -199,6 +345,17 @@ static ssize_t m1_pmu_events_sysfs_show(struct device = *dev, #define M1_PMU_EVENT_ATTR(name, config) \ PMU_EVENT_ATTR_ID(name, m1_pmu_events_sysfs_show, config) =20 +static struct attribute *a7_pmu_event_attrs[] =3D { + M1_PMU_EVENT_ATTR(cycles, A7_PMU_PERFCTR_CORE_ACTIVE_CYCLE), + M1_PMU_EVENT_ATTR(instructions, A7_PMU_PERFCTR_INST_ALL), + NULL, +}; + +static const struct attribute_group a7_pmu_events_attr_group =3D { + .name =3D "events", + .attrs =3D a7_pmu_event_attrs, +}; + static struct attribute *m1_pmu_event_attrs[] =3D { M1_PMU_EVENT_ATTR(cycles, M1_PMU_PERFCTR_CORE_ACTIVE_CYCLE), M1_PMU_EVENT_ATTR(instructions, M1_PMU_PERFCTR_INST_ALL), @@ -521,6 +678,12 @@ static int apple_pmu_get_event_idx(struct pmu_hw_event= s *cpuc, return -EAGAIN; } =20 +static int a7_pmu_get_event_idx(struct pmu_hw_events *cpuc, + struct perf_event *event) +{ + return apple_pmu_get_event_idx(cpuc, event, a7_pmu_event_affinity); +} + static int m1_pmu_get_event_idx(struct pmu_hw_events *cpuc, struct perf_event *event) { @@ -544,6 +707,11 @@ static void __m1_pmu_set_mode(u8 mode) isb(); } =20 +static void a7_pmu_start(struct arm_pmu *cpu_pmu) +{ + __m1_pmu_set_mode(PMCR0_IMODE_AIC); +} + static void m1_pmu_start(struct arm_pmu *cpu_pmu) { __m1_pmu_set_mode(PMCR0_IMODE_FIQ); @@ -578,6 +746,11 @@ static int apple_pmu_map_event_63(struct perf_event *e= vent, return armpmu_map_event(event, perf_map, NULL, M1_PMU_CFG_EVENT); } =20 +static int a7_pmu_map_event(struct perf_event *event) +{ + return apple_pmu_map_event_47(event, &a7_pmu_perf_map); +} + static int m1_pmu_map_event(struct perf_event *event) { return apple_pmu_map_event_47(event, &m1_pmu_perf_map); @@ -623,6 +796,11 @@ static void apple_pmu_reset(void *info, u32 counters) isb(); } =20 +static void a7_pmu_reset(void *info) +{ + apple_pmu_reset(info, A7_PMU_NR_COUNTERS); +} + static void m1_pmu_reset(void *info) { apple_pmu_reset(info, M1_PMU_NR_COUNTERS); @@ -673,6 +851,17 @@ static int apple_pmu_init(struct arm_pmu *cpu_pmu, u32= counters) } =20 /* Device driver gunk */ +static int a7_pmu_cyclone_init(struct arm_pmu *cpu_pmu) +{ + cpu_pmu->name =3D "apple_cyclone_pmu"; + cpu_pmu->get_event_idx =3D a7_pmu_get_event_idx; + cpu_pmu->map_event =3D a7_pmu_map_event; + cpu_pmu->reset =3D a7_pmu_reset; + cpu_pmu->start =3D a7_pmu_start; + cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] =3D &a7_pmu_events_attr_gr= oup; + return apple_pmu_init(cpu_pmu, A7_PMU_NR_COUNTERS); +} + static int m1_pmu_ice_init(struct arm_pmu *cpu_pmu) { cpu_pmu->name =3D "apple_icestorm_pmu"; @@ -722,6 +911,7 @@ static const struct of_device_id m1_pmu_of_device_ids[]= =3D { { .compatible =3D "apple,blizzard-pmu", .data =3D m2_pmu_blizzard_init, }, { .compatible =3D "apple,icestorm-pmu", .data =3D m1_pmu_ice_init, }, { .compatible =3D "apple,firestorm-pmu", .data =3D m1_pmu_fire_init, }, + { .compatible =3D "apple,cyclone-pmu", .data =3D a7_pmu_cyclone_init, }, { }, }; MODULE_DEVICE_TABLE(of, m1_pmu_of_device_ids); --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4177D34D386 for ; Wed, 17 Dec 2025 16:25:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988711; cv=none; b=UxL7kGqBUjZ+UgrUGJJ49UsLlZqm4T6+6le/nTWQ8oEJaLyBvTRZKxgNODYcI12AKaw1Ja8+lGUGFKc+MVzFWC/wVfTzEpqGhuJkm4I0FrM355V9IwamrSiPJkVC5Hkv4GEkc+WcxmAj2vM4uDmuWJEF63bk6OnjaVexuiqrjUE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988711; c=relaxed/simple; bh=vLu/+OqRMT1X7TlFdalfyOPG831mJ/wTZfPnuqM9o00=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MXQtECW24uxvlcsRvtqGatIeARRjlgAf6DvGou+75fTfI3d4GqZhKtd6deZpjMDOPBjBsCnKaRh7Nl/U0sCGu/nNMzGJQuOjASeEJykVWMXphA5RaC6mJ1GZZTa4g4Ex5t+7i7/h/E6QAY/vRFTLuFccmtZjTZu/ZezvUgxLXOs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Bhs10ynu; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Bhs10ynu" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2a0d6f647e2so58568785ad.1 for ; Wed, 17 Dec 2025 08:25:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988708; x=1766593508; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=qW3ZbNXx0HHrwclPZikgyrFB8Zc0ZjRt1oD1fmLPJs4=; b=Bhs10ynuFMybSNGNSTROzTa0VC6ZpXaLAsr/DT+5B5r+Y/4ADLDokfqD8rKEsZTgEf OR6MVv6dYlqJTReM3S0NZ0LdyS6x6FYudKwUq7WoOLHSMMFcmRzz5NPHZR6vsbccEIJm RpsQ0zfDe3RzQSy3f7eKkTK3SSDezmTf9onHMTkVfXW4ZDVJnjvl4xHJPulaE3DEjO4p nxklRZ9Qh8ju4G8CCSXwYUpVzjKLt1rGxMTXnke0HPe2ykuN6BC0q1DK/JM+nWvJ6Bu5 fe8QY8c0p7J3jjjP06Ev3OiyDt0juZV3poQM4KfMJUMLX3N5EIjwPtTd9j1fqc7/7rUO YkFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988708; x=1766593508; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=qW3ZbNXx0HHrwclPZikgyrFB8Zc0ZjRt1oD1fmLPJs4=; b=HxQovGjHjqsB4rC3kI79/SDZZV92RXuaP5f3W1Eq8L944zYpArrRaJxAatV6HEsOoT +zC98k3OvWcA0k9J4ddsvtBox4AyCJEzZu8JQXxB7XKgDApBbUAPtA4ml/LzoDqHZ9d5 RkplYUqTDxKAqnwg12BbhBMu3LmQeCJ/GC95soiS6hOpnQIwlJHPvxIy8qzkGlwpyLTk RycwbnkU8OK+Imf0/kBQkPrcNzU2zlyHYZslEeYme4CxcM89r1a6QBR/DULjYyKYqc6A riXZYv3HQW7g68Ytn1SVotS6xyhWVtHV1ERk1EFGi6f8VryPWdHxVAj0VfMHfoffZnN4 G1bg== X-Forwarded-Encrypted: i=1; AJvYcCVbI5FGeH2moxDiGdfQ9UlBeI6pselJVEwq169ZKmJIMRAJRSRUkKAGAQMLAbiEJtvZMjGWP4zLgEZXR7Y=@vger.kernel.org X-Gm-Message-State: AOJu0YzEG6ImOHf4fV7oSbPPeHxxxAnHKcFuGb4Xm/YGelN/9VP4waLp fLnxVE6nIY9yNCPkSWX6cWsQiqCvuCEoD6onulh1S+7SbT3jNaSqHYEu X-Gm-Gg: AY/fxX535AbKc9vv/+GsX3b4VTJot2E+s7YAmldngSCn89KVKepSlcPRQt+Jh1P2Udo LBEf1ZreXgp3AE6534aYYP+mbDmOk0c5SRJ+DDYGrRzPEj3I1Yl6AM9BFH+6J9TTcc/iIkPaySW dU2h6etY8yZU0a30TyqcVN+QikThYQEOtvANXeBD4wMIlIQWT0o8CRew75LihdlW8cr6lLYAFCd HlGT1/XSv7Z7cNdyynlSuS1lNPWlJb0+LYTpR1b2A5/hrJvSmxn+32K2mrDv5b6a+ZngehAA46O 77dSbgWBaCbhkOK30AkdA1UyORk7uBalXmnP90xkswqyj2GSeuo7jQY3MFtK/F7OG9oO83Rs+6I 2NPdNPXasiOF2dL2cL09re5PShEgpe4NgM5Xoy7ACYAWJLX5It1u8G1HhCtktuE/nmOayhe/3Zk zBjV2vGoltgOXt X-Google-Smtp-Source: AGHT+IGjiBD3t+e1hX3Mtu35Xp8NsAoru6D1r6FrRsSn0sY3D+FKw2YdG/jG6iSfBbymnGi7hUIQGA== X-Received: by 2002:a17:902:f651:b0:2a0:f828:24a3 with SMTP id d9443c01a7336-2a0f828262emr119398885ad.28.1765988708015; Wed, 17 Dec 2025 08:25:08 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.25.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:25:07 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:22 +0800 Subject: [PATCH v9 09/21] drivers/perf: apple_m1: Add Apple A8/A8X support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-9-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan , Ivaylo Ivanov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7370; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=vLu/+OqRMT1X7TlFdalfyOPG831mJ/wTZfPnuqM9o00=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlBECo5qDsfU9mK9nHsDsi4SE4nndMlWDpzw CFaoZslATqJAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQQAKCRABygi3psUI JNJpEACiH9/WA0MUZWWAGc7Bt/sDqvehUCoPtQlk/sMKEDSafY8+7Ytpb7/yCrCq5osiNEDyfdm BTELX7Rl4CIHWlcUA2bQ9qzIR+eirubFmGCpnwTIQyca6dZFnnTGufOJMGs+Zi6NRL/+pmmph4o lfPN+3qkQ/n7UI6CFMDsJ69AZcss7pWv/Fkmf3kwxGJIO1uKVF4doRaVpPmdgva5yVKKFlXg1f7 3Hm7jjcCucatBKtEI3Zb9AOhCwB4hkevPRWYYzORoudn3EWxIATI7/grBn+T/byngNLglZ/I/VZ eTl6dHS09I4OOaV38ZcdNUft8X0UwWPT611z/wVmdVmW083H7gtnHanrkuLSo3/GotB3Py55pqX Not/hOe4pZcDTifhSNjRpYGB+JRwua4sN2wTQEOnnKNp/hn2iZnIsWa4TZqbK3exW1vQA7OISf6 l2fK/nrdlCj6Z8wBzFvUJWb6jif7L/vQgUvNGCOEvi+SEEhCPor43mJDphN4dOlk+FV5XaqqJEj 4xOqbF6f2hng+G62tiTh0QTcXGXjMiFUKRM2IWUjsDoyNqRBR5+lrBK7QF1+dxLRPB2S/wBOItt JdmQw4LaEPAeCRMrfGdjq6sQCpuk3k12bHsDUyn2fBiDLokOgYC3U4qJ0MmKGGkNC9uZZs6vdV0 84HX69LjQYywJbg== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Add support for the CPU PMU found on the Apple A8, A8X SoCs. Tested-by: Ivaylo Ivanov Signed-off-by: Nick Chan --- drivers/perf/apple_m1_cpu_pmu.c | 124 ++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 124 insertions(+) diff --git a/drivers/perf/apple_m1_cpu_pmu.c b/drivers/perf/apple_m1_cpu_pm= u.c index afcf7c951379698ceff21c1a99cca31b3a6177b1..a95f4b717857b30284470487827= 954dd4b139010 100644 --- a/drivers/perf/apple_m1_cpu_pmu.c +++ b/drivers/perf/apple_m1_cpu_pmu.c @@ -28,6 +28,7 @@ #define ANY_BUT_0_1 GENMASK(9, 2) #define ONLY_2_TO_7 GENMASK(7, 2) #define ONLY_2_4_6 (BIT(2) | BIT(4) | BIT(6)) +#define ONLY_3_5_7 (BIT(3) | BIT(5) | BIT(7)) #define ONLY_5_6_7 (BIT(5) | BIT(6) | BIT(7)) =20 /* @@ -183,6 +184,111 @@ static const u16 a7_pmu_event_affinity[A7_PMU_PERFCTR= _LAST + 1] =3D { [A7_PMU_PERFCTR_UNKNOWN_fd] =3D ONLY_2_4_6, }; =20 +enum a8_pmu_events { + A8_PMU_PERFCTR_UNKNOWN_1 =3D 0x1, + A8_PMU_PERFCTR_CORE_ACTIVE_CYCLE =3D 0x2, + A8_PMU_PERFCTR_L2_TLB_MISS_INSTRUCTION =3D 0xa, + A8_PMU_PERFCTR_L2_TLB_MISS_DATA =3D 0xb, + A8_PMU_PERFCTR_BIU_UPSTREAM_CYCLE =3D 0x13, + A8_PMU_PERFCTR_BIU_DOWNSTREAM_CYCLE =3D 0x14, + A8_PMU_PERFCTR_L2C_AGENT_LD =3D 0x1a, + A8_PMU_PERFCTR_L2C_AGENT_LD_MISS =3D 0x1b, + A8_PMU_PERFCTR_L2C_AGENT_ST =3D 0x1c, + A8_PMU_PERFCTR_L2C_AGENT_ST_MISS =3D 0x1d, + A8_PMU_PERFCTR_SCHEDULE_UOP =3D 0x52, + A8_PMU_PERFCTR_MAP_REWIND =3D 0x75, + A8_PMU_PERFCTR_MAP_STALL =3D 0x76, + A8_PMU_PERFCTR_MAP_INT_UOP =3D 0x7b, + A8_PMU_PERFCTR_MAP_LDST_UOP =3D 0x7c, + A8_PMU_PERFCTR_MAP_SIMD_UOP =3D 0x7d, + A8_PMU_PERFCTR_FLUSH_RESTART_OTHER_NONSPEC =3D 0x84, + A8_PMU_PERFCTR_INST_A32 =3D 0x8a, + A8_PMU_PERFCTR_INST_T32 =3D 0x8b, + A8_PMU_PERFCTR_INST_ALL =3D 0x8c, + A8_PMU_PERFCTR_INST_BRANCH =3D 0x8d, + A8_PMU_PERFCTR_INST_BRANCH_CALL =3D 0x8e, + A8_PMU_PERFCTR_INST_BRANCH_RET =3D 0x8f, + A8_PMU_PERFCTR_INST_BRANCH_TAKEN =3D 0x90, + A8_PMU_PERFCTR_INST_BRANCH_INDIR =3D 0x93, + A8_PMU_PERFCTR_INST_BRANCH_COND =3D 0x94, + A8_PMU_PERFCTR_INST_INT_LD =3D 0x95, + A8_PMU_PERFCTR_INST_INT_ST =3D 0x96, + A8_PMU_PERFCTR_INST_INT_ALU =3D 0x97, + A8_PMU_PERFCTR_INST_SIMD_LD =3D 0x98, + A8_PMU_PERFCTR_INST_SIMD_ST =3D 0x99, + A8_PMU_PERFCTR_INST_SIMD_ALU =3D 0x9a, + A8_PMU_PERFCTR_INST_LDST =3D 0x9b, + A8_PMU_PERFCTR_UNKNOWN_9c =3D 0x9c, + A8_PMU_PERFCTR_UNKNOWN_9f =3D 0x9f, + A8_PMU_PERFCTR_L1D_TLB_ACCESS =3D 0xa0, + A8_PMU_PERFCTR_L1D_TLB_MISS =3D 0xa1, + A8_PMU_PERFCTR_L1D_CACHE_MISS_ST =3D 0xa2, + A8_PMU_PERFCTR_L1D_CACHE_MISS_LD =3D 0xa3, + A8_PMU_PERFCTR_LD_UNIT_UOP =3D 0xa6, + A8_PMU_PERFCTR_ST_UNIT_UOP =3D 0xa7, + A8_PMU_PERFCTR_L1D_CACHE_WRITEBACK =3D 0xa8, + A8_PMU_PERFCTR_LDST_X64_UOP =3D 0xb1, + A8_PMU_PERFCTR_L1D_CACHE_MISS_LD_NONSPEC =3D 0xbf, + A8_PMU_PERFCTR_L1D_CACHE_MISS_ST_NONSPEC =3D 0xc0, + A8_PMU_PERFCTR_L1D_TLB_MISS_NONSPEC =3D 0xc1, + A8_PMU_PERFCTR_ST_MEMORY_ORDER_VIOLATION_NONSPEC =3D 0xc4, + A8_PMU_PERFCTR_BRANCH_COND_MISPRED_NONSPEC =3D 0xc5, + A8_PMU_PERFCTR_BRANCH_INDIR_MISPRED_NONSPEC =3D 0xc6, + A8_PMU_PERFCTR_BRANCH_RET_INDIR_MISPRED_NONSPEC =3D 0xc8, + A8_PMU_PERFCTR_BRANCH_CALL_INDIR_MISPRED_NONSPEC =3D 0xca, + A8_PMU_PERFCTR_BRANCH_MISPRED_NONSPEC =3D 0xcb, + A8_PMU_PERFCTR_FED_IC_MISS_DEMAND =3D 0xd3, + A8_PMU_PERFCTR_L1I_TLB_MISS_DEMAND =3D 0xd4, + A8_PMU_PERFCTR_FETCH_RESTART =3D 0xde, + A8_PMU_PERFCTR_UNKNOWN_f5 =3D 0xf5, + A8_PMU_PERFCTR_UNKNOWN_f6 =3D 0xf6, + A8_PMU_PERFCTR_UNKNOWN_f7 =3D 0xf7, + A8_PMU_PERFCTR_LAST =3D M1_PMU_CFG_EVENT, + + /* + * From this point onwards, these are not actual HW events, + * but attributes that get stored in hw->config_base. + */ + A8_PMU_CFG_COUNT_USER =3D BIT(8), + A8_PMU_CFG_COUNT_KERNEL =3D BIT(9), +}; + +static const u16 a8_pmu_event_affinity[A8_PMU_PERFCTR_LAST + 1] =3D { + [0 ... A8_PMU_PERFCTR_LAST] =3D ANY_BUT_0_1, + [A8_PMU_PERFCTR_UNKNOWN_1] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_CORE_ACTIVE_CYCLE] =3D ANY_BUT_0_1 | BIT(0), + [A8_PMU_PERFCTR_INST_A32] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_INST_T32] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_INST_ALL] =3D BIT(7) | BIT(1), + [A8_PMU_PERFCTR_INST_BRANCH] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_INST_BRANCH_CALL] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_INST_BRANCH_RET] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_INST_BRANCH_TAKEN] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_INST_BRANCH_INDIR] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_INST_BRANCH_COND] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_INST_INT_LD] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_INST_INT_ST] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_INST_INT_ALU] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_INST_SIMD_LD] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_INST_SIMD_ST] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_INST_SIMD_ALU] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_INST_LDST] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_UNKNOWN_9c] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_UNKNOWN_9f] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_L1D_CACHE_MISS_LD_NONSPEC] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_L1D_CACHE_MISS_ST_NONSPEC] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_L1D_TLB_MISS_NONSPEC] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_ST_MEMORY_ORDER_VIOLATION_NONSPEC] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_BRANCH_COND_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_BRANCH_INDIR_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_BRANCH_RET_INDIR_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_BRANCH_CALL_INDIR_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_BRANCH_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A8_PMU_PERFCTR_UNKNOWN_f5] =3D ANY_BUT_0_1, + [A8_PMU_PERFCTR_UNKNOWN_f6] =3D ONLY_3_5_7, + [A8_PMU_PERFCTR_UNKNOWN_f7] =3D ONLY_3_5_7, +}; + enum m1_pmu_events { M1_PMU_PERFCTR_RETIRE_UOP =3D 0x1, M1_PMU_PERFCTR_CORE_ACTIVE_CYCLE =3D 0x2, @@ -684,6 +790,12 @@ static int a7_pmu_get_event_idx(struct pmu_hw_events *= cpuc, return apple_pmu_get_event_idx(cpuc, event, a7_pmu_event_affinity); } =20 +static int a8_pmu_get_event_idx(struct pmu_hw_events *cpuc, + struct perf_event *event) +{ + return apple_pmu_get_event_idx(cpuc, event, a8_pmu_event_affinity); +} + static int m1_pmu_get_event_idx(struct pmu_hw_events *cpuc, struct perf_event *event) { @@ -862,6 +974,17 @@ static int a7_pmu_cyclone_init(struct arm_pmu *cpu_pmu) return apple_pmu_init(cpu_pmu, A7_PMU_NR_COUNTERS); } =20 +static int a8_pmu_typhoon_init(struct arm_pmu *cpu_pmu) +{ + cpu_pmu->name =3D "apple_typhoon_pmu"; + cpu_pmu->get_event_idx =3D a8_pmu_get_event_idx; + cpu_pmu->map_event =3D m1_pmu_map_event; + cpu_pmu->reset =3D a7_pmu_reset; + cpu_pmu->start =3D a7_pmu_start; + cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] =3D &m1_pmu_events_attr_gr= oup; + return apple_pmu_init(cpu_pmu, A7_PMU_NR_COUNTERS); +} + static int m1_pmu_ice_init(struct arm_pmu *cpu_pmu) { cpu_pmu->name =3D "apple_icestorm_pmu"; @@ -911,6 +1034,7 @@ static const struct of_device_id m1_pmu_of_device_ids[= ] =3D { { .compatible =3D "apple,blizzard-pmu", .data =3D m2_pmu_blizzard_init, }, { .compatible =3D "apple,icestorm-pmu", .data =3D m1_pmu_ice_init, }, { .compatible =3D "apple,firestorm-pmu", .data =3D m1_pmu_fire_init, }, + { .compatible =3D "apple,typhoon-pmu", .data =3D a8_pmu_typhoon_init, }, { .compatible =3D "apple,cyclone-pmu", .data =3D a7_pmu_cyclone_init, }, { }, }; --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1991F34E244 for ; Wed, 17 Dec 2025 16:25:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988714; cv=none; b=K+MeQmTi0X1A2XL8p+AaKwHZGu907HOT3RLsuE253sYV9WMN9KpDpgLgL5fqPnY1aEcn6PJGsyFvCCmi8sE5UXtTEF7ciwFat1DOLwlx7Lx5ko7FaOM26vjtq0n62CIUvcZIwAaCWYYexGN3ge/mvcmhT1QJnzakIEP379FfjT8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988714; c=relaxed/simple; bh=2QlkQ5sdKOme7Mv/q0BFxpV/faYzPgbeDfOS4FED2YU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=g1h3Wr/vwH4MZWATcSCvlOXslKxgOFuHytG48iK3Xz9drcgZU+9ChmMN5Cxf4jaYjhR25bDPTnVl+L/mfrFDlvpAwEcuxR8raW0Z9otJfa9zvBb+JJzz1kLafbTgn5fsWFL05yfzrgn+evPErDgUGQ5xtnuhkfGXUbkg7sXQnZk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=FCEocQEi; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FCEocQEi" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2a1022dda33so30707615ad.2 for ; Wed, 17 Dec 2025 08:25:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988711; x=1766593511; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=AaU4XbWG80z9dgP85MHp1bFwcC8OyOc+ojO7hjR41sA=; b=FCEocQEiNP0wDn3fX/ZCUPVpehUXl/8MVpCykZOhojDNU23T7oO0JREF7A+K9WGOUk 6FIn04MD+bY43cu7uM/I6QDzQRRHfIaueeQxaoayAplRfNlmK1C1Dq1kx5wMPCl2xP2y LmNWZzwI2dgRoW2HR0hCabJm0ay/iCerU8863PkR/G+Mu85jDHoZJO/gdCcbIem1XOD2 N+pt42D7JrbIwnXy8UhHY7jadJCz6k5IpSk8oiRhAHibBfaKc0jTtWGrPfgo5YciMP7Y RYV8KnrSnRo0SXE1CAKiDVMmEdqctMBFdcYHN6t2DUigkGj/4JCzwHClPib81VUP61YC 3PVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988711; x=1766593511; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=AaU4XbWG80z9dgP85MHp1bFwcC8OyOc+ojO7hjR41sA=; b=FEixLQH4HvW/bTFPHbL3j+UMqTGr+wjoyhETkTEiE1o22t+bKcmGOqCvhXs9hhQLK6 oF3TSBgEx91K7CW0bYwu4kt+r6hIBYNf5h292L4b86FWrxTMmy4q6P6hB+F0hBZttjRR vDBpi92bTZjsyOyedETLIxuDNF+XaWPLFl8DC/QBUaWRce12ciyLE8m9ONdaLB+DaB+f lmZll8wGQC4+Bkn9H9dHj3QlVwbhiN+/TFhXNmHkcNzyBo2GiSvHRtoyMZUGYsPSssfm u+46/Y4/vRHaAB8yRlxW/C0b31iQNbGhclpEWiSonmJLmeyA4fOKsGwfEDzLf7GGZxG7 T4IQ== X-Forwarded-Encrypted: i=1; AJvYcCWmLUoiXFUYiInUcCf+O68oKVQFxfnqsGEdNI5CaZrZ4VctyNCl92759BtzkGFO2pLs/VygGlgbXnQrzk8=@vger.kernel.org X-Gm-Message-State: AOJu0Yzm0RJEnayw0OfbAo70/cR0S2KQYD+qPD07gQNC798qXqMEfw6o BDvnBVxYC6jsi27vserHSBUKgsyL0saGZ71TbQvcnU2W8cJfZtIplUvU X-Gm-Gg: AY/fxX6gcVcQ+xJ8oo/XHGXmQnF3CuORZ1ukHONsg3ORA3ZFTX8GYtiEl5Q8IcOKD+V uiCBJZJpQ/IBZlRFDmpVeH2jxbFhMiSmcfJTJMpA1XK2W9+Zz4nqU96mcVlgtjJvLs3H9jAddNH d7KhYnzruTl/RgCLZ3FDYv4MZAouhUPTEaqgyqVB5b+jGevoU5bS6wLBQosDSamr6tga6w4cThn 9R9hGs3TeT3VHB1FIcVWl0DnjHPO319E6OY6PlS6keak2pyYjrkRiDlrsA5VNXVIthom3zq2V29 PS16XQWG90WXzo9zmQVhdN91NbNEo6WhFqnPWnLHJ2BOehCiY39v2+FcQGFOappAn9BBn9YnV2y vo4D3l1itoA4tv3eZpGDv1/wDQxT+RR01juJmyR1HdwIYwNavD5BTOFjlY0UoWy/EGuTjjm4RWG NSkiyzcrjqgNYn X-Google-Smtp-Source: AGHT+IHBSeGjBMMVKRCxLWdVOAH9uuF5V0wqkrC07VW2vnJuwJLyD7X2XjffcbHiQvT3NwN+y1IbMA== X-Received: by 2002:a17:902:f608:b0:295:99f0:6c66 with SMTP id d9443c01a7336-29f240492c0mr166064155ad.36.1765988711170; Wed, 17 Dec 2025 08:25:11 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.25.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:25:10 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:23 +0800 Subject: [PATCH v9 10/21] drivers/perf: apple_m1: Add A9/A9X support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-10-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7158; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=2QlkQ5sdKOme7Mv/q0BFxpV/faYzPgbeDfOS4FED2YU=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlBidVRK8dSsHdFWe1evHRA10AvmORixyLiy k4BRWTPmzCJAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQQAKCRABygi3psUI JFwcEACsbPM4gMa2+Ov3DoR1z5GWXoAUgoUJCkFfl4dKszzPcquP9NtvIY+5MyC2eDvV16DRu5B rTwlktxk1Z38C29vX7FL2Rs2LH3U45BIdVd2DaSVHCiG/9lry+IyPuTvkwkBnq9JE1ETkLOHmP9 X12j/CEJwlpS5VzhfUIQUlHByTnbJXOIYHjHA9HF3rzibLZakH3TuIOw+06Av+jDhlKKEzMsZMf +513ayL4K9n+PicV5BrmS98UkqQ/Cx+DPyN5mxxcU7gr4VRGovqD+CVjQXKu91/vSSsZjbxGra4 Yi3HcpFMMuAVjk0m3izC2dQiTawpVbZPHZrh6EVV5uOfF9hg6zLTMuI25Iy2202AommDsjW6yRp MBEVG4Zu18PZGFIx5zD7UqOhQYdeu9uUQ5ciDWYRXtFe6aEaZbTs+OSMtz0LuXoEb+vYutQ0jDf n688ucD4iuQAKQQ0q2JLdfdK181lXT8zS1Z39FqAWaD+raRoZxM1HiPhdAd0gBBCrU6teqKmq4p Ve06WaVbb8Iu/zZQsAz1r51W1LmSFpgMnpBsvkImOu6cYCx+OH6qlaGiD3/APImQBXzMEuZtmBD lePqhs2g9PPMviE8LFfzxF5SjcdYg0sLskbi+KMm+4UDRsrjuTg4MR6CUT6T0c/hN22xqV5txy5 91CQP0cRLTybh1g== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Add support for CPU PMU found in the Apple A9 and A9X SoCs. Signed-off-by: Nick Chan --- drivers/perf/apple_m1_cpu_pmu.c | 125 ++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 125 insertions(+) diff --git a/drivers/perf/apple_m1_cpu_pmu.c b/drivers/perf/apple_m1_cpu_pm= u.c index a95f4b717857b30284470487827954dd4b139010..0ef39c148dd2ed032e4d14ac01e= 7c7e7e088b394 100644 --- a/drivers/perf/apple_m1_cpu_pmu.c +++ b/drivers/perf/apple_m1_cpu_pmu.c @@ -289,6 +289,113 @@ static const u16 a8_pmu_event_affinity[A8_PMU_PERFCTR= _LAST + 1] =3D { [A8_PMU_PERFCTR_UNKNOWN_f7] =3D ONLY_3_5_7, }; =20 + +enum a9_pmu_events { + A9_PMU_PERFCTR_UNKNOWN_1 =3D 0x1, + A9_PMU_PERFCTR_CORE_ACTIVE_CYCLE =3D 0x2, + A9_PMU_PERFCTR_L2_TLB_MISS_INSTRUCTION =3D 0xa, + A9_PMU_PERFCTR_L2_TLB_MISS_DATA =3D 0xb, + A9_PMU_PERFCTR_L2C_AGENT_LD =3D 0x1a, + A9_PMU_PERFCTR_L2C_AGENT_LD_MISS =3D 0x1b, + A9_PMU_PERFCTR_L2C_AGENT_ST =3D 0x1c, + A9_PMU_PERFCTR_L2C_AGENT_ST_MISS =3D 0x1d, + A9_PMU_PERFCTR_SCHEDULE_UOP =3D 0x52, + A9_PMU_PERFCTR_MAP_REWIND =3D 0x75, + A9_PMU_PERFCTR_MAP_STALL =3D 0x76, + A9_PMU_PERFCTR_MAP_INT_UOP =3D 0x7c, + A9_PMU_PERFCTR_MAP_LDST_UOP =3D 0x7d, + A9_PMU_PERFCTR_MAP_SIMD_UOP =3D 0x7e, + A9_PMU_PERFCTR_FLUSH_RESTART_OTHER_NONSPEC =3D 0x84, + A9_PMU_PERFCTR_INST_A32 =3D 0x8a, + A9_PMU_PERFCTR_INST_T32 =3D 0x8b, + A9_PMU_PERFCTR_INST_ALL =3D 0x8c, + A9_PMU_PERFCTR_INST_BRANCH =3D 0x8d, + A9_PMU_PERFCTR_INST_BRANCH_CALL =3D 0x8e, + A9_PMU_PERFCTR_INST_BRANCH_RET =3D 0x8f, + A9_PMU_PERFCTR_INST_BRANCH_TAKEN =3D 0x90, + A9_PMU_PERFCTR_INST_BRANCH_INDIR =3D 0x93, + A9_PMU_PERFCTR_INST_BRANCH_COND =3D 0x94, + A9_PMU_PERFCTR_INST_INT_LD =3D 0x95, + A9_PMU_PERFCTR_INST_INT_ST =3D 0x96, + A9_PMU_PERFCTR_INST_INT_ALU =3D 0x97, + A9_PMU_PERFCTR_INST_SIMD_LD =3D 0x98, + A9_PMU_PERFCTR_INST_SIMD_ST =3D 0x99, + A9_PMU_PERFCTR_INST_SIMD_ALU =3D 0x9a, + A9_PMU_PERFCTR_INST_LDST =3D 0x9b, + A9_PMU_PERFCTR_INST_BARRIER =3D 0x9c, + A9_PMU_PERFCTR_UNKNOWN_9f =3D 0x9f, + A9_PMU_PERFCTR_L1D_TLB_ACCESS =3D 0xa0, + A9_PMU_PERFCTR_L1D_TLB_MISS =3D 0xa1, + A9_PMU_PERFCTR_L1D_CACHE_MISS_ST =3D 0xa2, + A9_PMU_PERFCTR_L1D_CACHE_MISS_LD =3D 0xa3, + A9_PMU_PERFCTR_LD_UNIT_UOP =3D 0xa6, + A9_PMU_PERFCTR_ST_UNIT_UOP =3D 0xa7, + A9_PMU_PERFCTR_L1D_CACHE_WRITEBACK =3D 0xa8, + A9_PMU_PERFCTR_LDST_X64_UOP =3D 0xb1, + A9_PMU_PERFCTR_ATOMIC_OR_EXCLUSIVE_SUCC =3D 0xb3, + A9_PMU_PERFCTR_ATOMIC_OR_EXCLUSIVE_FAIL =3D 0xb4, + A9_PMU_PERFCTR_L1D_CACHE_MISS_LD_NONSPEC =3D 0xbf, + A9_PMU_PERFCTR_L1D_CACHE_MISS_ST_NONSPEC =3D 0xc0, + A9_PMU_PERFCTR_L1D_TLB_MISS_NONSPEC =3D 0xc1, + A9_PMU_PERFCTR_ST_MEMORY_ORDER_VIOLATION_NONSPEC =3D 0xc4, + A9_PMU_PERFCTR_BRANCH_COND_MISPRED_NONSPEC =3D 0xc5, + A9_PMU_PERFCTR_BRANCH_INDIR_MISPRED_NONSPEC =3D 0xc6, + A9_PMU_PERFCTR_BRANCH_RET_INDIR_MISPRED_NONSPEC =3D 0xc8, + A9_PMU_PERFCTR_BRANCH_CALL_INDIR_MISPRED_NONSPEC =3D 0xca, + A9_PMU_PERFCTR_BRANCH_MISPRED_NONSPEC =3D 0xcb, + A9_PMU_PERFCTR_FED_IC_MISS_DEMAND =3D 0xd3, + A9_PMU_PERFCTR_L1I_TLB_MISS_DEMAND =3D 0xd4, + A9_PMU_PERFCTR_MAP_DISPATCH_BUBBLE =3D 0xd6, + A9_PMU_PERFCTR_FETCH_RESTART =3D 0xde, + A9_PMU_PERFCTR_ST_NT_UOP =3D 0xe5, + A9_PMU_PERFCTR_LD_NT_UOP =3D 0xe6, + A9_PMU_PERFCTR_UNKNOWN_f6 =3D 0xf6, + A9_PMU_PERFCTR_UNKNOWN_f7 =3D 0xf7, + A9_PMU_PERFCTR_LAST =3D M1_PMU_CFG_EVENT, + + /* + * From this point onwards, these are not actual HW events, + * but attributes that get stored in hw->config_base. + */ + A9_PMU_CFG_COUNT_USER =3D BIT(8), + A9_PMU_CFG_COUNT_KERNEL =3D BIT(9), +}; + +static const u16 a9_pmu_event_affinity[A9_PMU_PERFCTR_LAST + 1] =3D { + [0 ... A9_PMU_PERFCTR_LAST] =3D ANY_BUT_0_1, + [A9_PMU_PERFCTR_UNKNOWN_1] =3D BIT(7), + [A9_PMU_PERFCTR_CORE_ACTIVE_CYCLE] =3D ANY_BUT_0_1 | BIT(0), + [A9_PMU_PERFCTR_INST_A32] =3D BIT(7), + [A9_PMU_PERFCTR_INST_T32] =3D BIT(7), + [A9_PMU_PERFCTR_INST_ALL] =3D BIT(7) | BIT(1), + [A9_PMU_PERFCTR_INST_BRANCH] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_INST_BRANCH_CALL] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_INST_BRANCH_RET] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_INST_BRANCH_TAKEN] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_INST_BRANCH_INDIR] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_INST_BRANCH_COND] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_INST_INT_LD] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_INST_INT_ST] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_INST_INT_ALU] =3D BIT(7), + [A9_PMU_PERFCTR_INST_SIMD_LD] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_INST_SIMD_ST] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_INST_SIMD_ALU] =3D BIT(7), + [A9_PMU_PERFCTR_INST_LDST] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_INST_BARRIER] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_UNKNOWN_9f] =3D BIT(7), + [A9_PMU_PERFCTR_L1D_CACHE_MISS_LD_NONSPEC] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_L1D_CACHE_MISS_ST_NONSPEC] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_L1D_TLB_MISS_NONSPEC] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_ST_MEMORY_ORDER_VIOLATION_NONSPEC] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_BRANCH_COND_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_BRANCH_INDIR_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_BRANCH_RET_INDIR_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_BRANCH_CALL_INDIR_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_BRANCH_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A9_PMU_PERFCTR_UNKNOWN_f6] =3D ONLY_3_5_7, + [A9_PMU_PERFCTR_UNKNOWN_f7] =3D ONLY_3_5_7, +}; + enum m1_pmu_events { M1_PMU_PERFCTR_RETIRE_UOP =3D 0x1, M1_PMU_PERFCTR_CORE_ACTIVE_CYCLE =3D 0x2, @@ -796,6 +903,12 @@ static int a8_pmu_get_event_idx(struct pmu_hw_events *= cpuc, return apple_pmu_get_event_idx(cpuc, event, a8_pmu_event_affinity); } =20 +static int a9_pmu_get_event_idx(struct pmu_hw_events *cpuc, + struct perf_event *event) +{ + return apple_pmu_get_event_idx(cpuc, event, a9_pmu_event_affinity); +} + static int m1_pmu_get_event_idx(struct pmu_hw_events *cpuc, struct perf_event *event) { @@ -985,6 +1098,17 @@ static int a8_pmu_typhoon_init(struct arm_pmu *cpu_pm= u) return apple_pmu_init(cpu_pmu, A7_PMU_NR_COUNTERS); } =20 +static int a9_pmu_twister_init(struct arm_pmu *cpu_pmu) +{ + cpu_pmu->name =3D "apple_twister_pmu"; + cpu_pmu->get_event_idx =3D a9_pmu_get_event_idx; + cpu_pmu->map_event =3D m1_pmu_map_event; + cpu_pmu->reset =3D a7_pmu_reset; + cpu_pmu->start =3D a7_pmu_start; + cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] =3D &m1_pmu_events_attr_gr= oup; + return apple_pmu_init(cpu_pmu, A7_PMU_NR_COUNTERS); +} + static int m1_pmu_ice_init(struct arm_pmu *cpu_pmu) { cpu_pmu->name =3D "apple_icestorm_pmu"; @@ -1034,6 +1158,7 @@ static const struct of_device_id m1_pmu_of_device_ids= [] =3D { { .compatible =3D "apple,blizzard-pmu", .data =3D m2_pmu_blizzard_init, }, { .compatible =3D "apple,icestorm-pmu", .data =3D m1_pmu_ice_init, }, { .compatible =3D "apple,firestorm-pmu", .data =3D m1_pmu_fire_init, }, + { .compatible =3D "apple,twister-pmu", .data =3D a9_pmu_twister_init, }, { .compatible =3D "apple,typhoon-pmu", .data =3D a8_pmu_typhoon_init, }, { .compatible =3D "apple,cyclone-pmu", .data =3D a7_pmu_cyclone_init, }, { }, --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 86B2034E74A for ; Wed, 17 Dec 2025 16:25:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988718; cv=none; b=MZxovmPBMCcl2DSTPAVERnaiZ1OFyffCfApfQ/Fmf7WImgyJde2AdDHghwfFIJ9VSqu1n8IxXQn2GARiNbXJ3e1+PjVqT4B46oNsZiFjer86OAT4HUgy9BIx5gP9JtUKeFUxUSUtoceHlAd5ZKCUyrspvljMGlsVlmUBN2Fepj4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988718; c=relaxed/simple; bh=vvhARVvISRkjbUgtSLfeU3ym/rX7ZSMkAa7WIK94EZ0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IATSMvf3GriYXlan6qsU6LOPF+U58hxuGTuI9QVyztfxNUYrKTy0E9chpme+TqHUmX+5VMcVPlXFdNjNhBoPnCaAwcrwd2bb+LhgLZStedbaHKqU4GaO+at8Mz44IDIp7ZgyCFbhxDigGrIahnsi6uPXv11NQSWRL1d7ek2yKZ0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=TfsKMEal; arc=none smtp.client-ip=209.85.214.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TfsKMEal" Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-2a1360e1392so20298335ad.2 for ; Wed, 17 Dec 2025 08:25:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988715; x=1766593515; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=KO9j9wmjye25/aeps0nrIHuAVf4y9/f0VvjmXWc9NhM=; b=TfsKMEalQWbQ0lQTSB9dD8RwwAjzRulnuljrpo/hdA/9NUfiTmNGv7gYIbUteHayRv t4odHMpkEotMdodPNJyv1uSa9nfIe9c6RShr3V8dg/lZGTFkRWrW4jI7GtXdmk31Gd9h OyYib+l2K5Dln+G4P4p9DeMjwRs6HA7aoZF+P/jSUPS/G01SUfMPjBnuuQiGgT6ByCQj fBvwcGEqht/z81VT69yckC/VdpVps9CX6JokUy9W+L1I8KyrX3hyjpg5//vlWnQoD4mE K2+Zo2Biza13cX/o3ZhuksusmY9hLXZnliq2he1FSVyMGVpUJ1LXoysgIfhQys30C4H9 7xWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988715; x=1766593515; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=KO9j9wmjye25/aeps0nrIHuAVf4y9/f0VvjmXWc9NhM=; b=Wk0P+p7g35A3R2M7xHWi7VaeRrIZJaE+vtBAGCBe8tY1y/XGBhv2T0PlyOP9uSlCRJ OPBHZ8Fq4YzsypD7PKgCa5/DSHeQyt2zktx23ONCsPagm9jQn1kBFhgatPW9QoVQ58Xv 77xO8VAy3oIsbyKtGC8shVqOIYSY7yAJM0Hl1Ou3MTkOLdcrmTAVplo9MmCERvPBNOpT rdg0YernL2N3Sg0a1uW1zpzKNSfHpmP8FRBr48dfWMBvoecTIX8nrh14pf9sz5FiGyUC KJzODElAlxK+85AeGos6rj1GLrutv+hSTYiXnLXIeBiKf8HGyhV5bM0brDiwzt90lph6 m/Ww== X-Forwarded-Encrypted: i=1; AJvYcCVN22HGMfFCJ4EDHYgaX/7q4OfjFzl7PkZxEOyIw+xxSipdyLWJDWxk3+EAkiLOwlcGb+qwwGaZvcqQVXo=@vger.kernel.org X-Gm-Message-State: AOJu0YzcCkfMZ6kGHp9APneUiBNJB0OuSOMccmmMBSnfqn4XlwWzVDZu CKcrl0rrj+3toewXv5Al3+bbwF3T6ceMls2ZlCBvl9o9YVLy5eKnFOdb X-Gm-Gg: AY/fxX5ghDyoOvXa7CF6pVO5kTrJv/0tnzwh4Qa9WrnxUHkWENQ/uZs74wqMB+EHr7/ r3vLrrhWJX2qJZ+M8Q5Hw3+6QL47JyXoLWzGYXW1iMko07XdVzY4dsY8JDygQlF59Q35tzYxvrG LB6Vi4nVxmf1NrxoaKjYd0JtWL6DDKL+aJki+fJUoE49Sghv4qtH2w4T6agcnywjt9vAoP/Fg0g Vu+4Gcn60xcMh0i7zVM7sqgOIUsnmTdNG05bsU8F0enZ/TgHI3PNOWFALzT/RVIb4+ekZC6Zzer dkmm7dT2CsYG3PFMPhXeVcVMx0FO7mjCM3HZGKYF0Vi3Kqne6+6c8bGEdkUkIgbuz2qgg1DVday NNZWEUBkbBNlUzh7GVHQeXIZM662QHHHFjjlq4feXZuRlSVuk6kS+zTw+eidsZqzFZQP5NhjIop lmClIpxRZ09OV2 X-Google-Smtp-Source: AGHT+IEoO8pTyxzphENRy8UUjWNt1rSFoq33/M1I4BVNF2CU0HUgKE4FufXy53yDTI/DFN6mVAJlmQ== X-Received: by 2002:a17:902:d481:b0:2a0:c884:7f03 with SMTP id d9443c01a7336-2a0c8849826mr127420025ad.44.1765988714505; Wed, 17 Dec 2025 08:25:14 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.25.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:25:14 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:24 +0800 Subject: [PATCH v9 11/21] drivers/perf: apple_m1: Add Apple A10/A10X/T2 Support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-11-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan , Ivaylo Ivanov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7698; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=vvhARVvISRkjbUgtSLfeU3ym/rX7ZSMkAa7WIK94EZ0=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlB4hEGGkYj7u1r2hpCRyIygPZm9Pnyl/UGd uhaAvnsRzeJAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQQAKCRABygi3psUI JImxD/9xCdPxzoD3syW2/+n0R23H68E7F/eYFywS9FvK/fscHEOv24setgYcrGE1lm+xJ1NvtoM tw6YfcBvoRjpjYC5Ujpq1JEzDM6v+USamixbwEXIsYyTeLDj8MsHiEBcMEKqMCSl+QfpeDCJHFa qs2BLmU33WeUHawiP0guctXavKk/OuhBHlMYl9Ie18WW5hwYiJOTSV503wnOVGXDD3sVJNp8Wk4 jx7RZIZUwxT8GjdooTwyMIhCLU+AkGKOcQPQ4JR9v4wUAfqkYS9uEBvZqWFeemcloO8PWEgvOJB 3U9o4I+pdwZhgrRQcOTzb0RZWj2vqExWa/ywwdKTYRnV6HHBKRnT2JKOR4y/Aq3fOI/GheIn01d p7ApujCkxMZAeCzv+xNm7PoXuFACkxmkkrE8gzIQTxpmMS3uM5QmSAkXYhhB+agwercRay6iyG+ QxN3D9PxFo4jSWTYdRgfKW8PCCEh4ql7FcI3eDIt29W1ze53TqpcmlGHon2Uc8QEb3QvB1eFGwM dzU0sElS9AOBxbtbyVk3PqA9J/ZWZzEn0XN7edLpsXHFWRbMmsCoWW1GiETpfw6/VQuutGXHSiy XqPVVpmFrS0pfrxW+660yWDEis3kz5vJCnyTfMPRaP6KaZnkz6Ld4SLaVzC1yE+eVEHI55Mpx0Z qPHd+4PoxJL/wAA== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Add support for the CPU PMU found in the Apple A10, A10X, T2 SoCs. Tested-by: Ivaylo Ivanov Signed-off-by: Nick Chan --- drivers/perf/apple_m1_cpu_pmu.c | 131 ++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 131 insertions(+) diff --git a/drivers/perf/apple_m1_cpu_pmu.c b/drivers/perf/apple_m1_cpu_pm= u.c index 0ef39c148dd2ed032e4d14ac01e7c7e7e088b394..8c252731408224c3596b4157024= a3ee885d98d9e 100644 --- a/drivers/perf/apple_m1_cpu_pmu.c +++ b/drivers/perf/apple_m1_cpu_pmu.c @@ -396,6 +396,119 @@ static const u16 a9_pmu_event_affinity[A9_PMU_PERFCTR= _LAST + 1] =3D { [A9_PMU_PERFCTR_UNKNOWN_f7] =3D ONLY_3_5_7, }; =20 +enum a10_pmu_events { + A10_PMU_PERFCTR_RETIRE_UOP =3D 0x1, + A10_PMU_PERFCTR_CORE_ACTIVE_CYCLE =3D 0x2, + A10_PMU_PERFCTR_L2_TLB_MISS_INSTRUCTION =3D 0xa, + A10_PMU_PERFCTR_L2_TLB_MISS_DATA =3D 0xb, + A10_PMU_PERFCTR_L2C_AGENT_LD =3D 0x1a, + A10_PMU_PERFCTR_L2C_AGENT_LD_MISS =3D 0x1b, + A10_PMU_PERFCTR_L2C_AGENT_ST =3D 0x1c, + A10_PMU_PERFCTR_L2C_AGENT_ST_MISS =3D 0x1d, + A10_PMU_PERFCTR_SCHEDULE_UOP =3D 0x52, + A10_PMU_PERFCTR_MAP_REWIND =3D 0x75, + A10_PMU_PERFCTR_MAP_STALL =3D 0x76, + A10_PMU_PERFCTR_MAP_INT_UOP =3D 0x7c, + A10_PMU_PERFCTR_MAP_LDST_UOP =3D 0x7d, + A10_PMU_PERFCTR_MAP_SIMD_UOP =3D 0x7e, + A10_PMU_PERFCTR_FLUSH_RESTART_OTHER_NONSPEC =3D 0x84, + A10_PMU_PERFCTR_INST_A32 =3D 0x8a, + A10_PMU_PERFCTR_INST_T32 =3D 0x8b, + A10_PMU_PERFCTR_INST_ALL =3D 0x8c, + A10_PMU_PERFCTR_INST_BRANCH =3D 0x8d, + A10_PMU_PERFCTR_INST_BRANCH_CALL =3D 0x8e, + A10_PMU_PERFCTR_INST_BRANCH_RET =3D 0x8f, + A10_PMU_PERFCTR_INST_BRANCH_TAKEN =3D 0x90, + A10_PMU_PERFCTR_INST_BRANCH_INDIR =3D 0x93, + A10_PMU_PERFCTR_INST_BRANCH_COND =3D 0x94, + A10_PMU_PERFCTR_INST_INT_LD =3D 0x95, + A10_PMU_PERFCTR_INST_INT_ST =3D 0x96, + A10_PMU_PERFCTR_INST_INT_ALU =3D 0x97, + A10_PMU_PERFCTR_INST_SIMD_LD =3D 0x98, + A10_PMU_PERFCTR_INST_SIMD_ST =3D 0x99, + A10_PMU_PERFCTR_INST_SIMD_ALU =3D 0x9a, + A10_PMU_PERFCTR_INST_LDST =3D 0x9b, + A10_PMU_PERFCTR_INST_BARRIER =3D 0x9c, + A10_PMU_PERFCTR_UNKNOWN_9f =3D 0x9f, + A10_PMU_PERFCTR_L1D_TLB_ACCESS =3D 0xa0, + A10_PMU_PERFCTR_L1D_TLB_MISS =3D 0xa1, + A10_PMU_PERFCTR_L1D_CACHE_MISS_ST =3D 0xa2, + A10_PMU_PERFCTR_L1D_CACHE_MISS_LD =3D 0xa3, + A10_PMU_PERFCTR_LD_UNIT_UOP =3D 0xa6, + A10_PMU_PERFCTR_ST_UNIT_UOP =3D 0xa7, + A10_PMU_PERFCTR_L1D_CACHE_WRITEBACK =3D 0xa8, + A10_PMU_PERFCTR_LDST_X64_UOP =3D 0xb1, + A10_PMU_PERFCTR_ATOMIC_OR_EXCLUSIVE_SUCC =3D 0xb3, + A10_PMU_PERFCTR_ATOMIC_OR_EXCLUSIVE_FAIL =3D 0xb4, + A10_PMU_PERFCTR_L1D_CACHE_MISS_LD_NONSPEC =3D 0xbf, + A10_PMU_PERFCTR_L1D_CACHE_MISS_ST_NONSPEC =3D 0xc0, + A10_PMU_PERFCTR_L1D_TLB_MISS_NONSPEC =3D 0xc1, + A10_PMU_PERFCTR_ST_MEMORY_ORDER_VIOLATION_NONSPEC =3D 0xc4, + A10_PMU_PERFCTR_BRANCH_COND_MISPRED_NONSPEC =3D 0xc5, + A10_PMU_PERFCTR_BRANCH_INDIR_MISPRED_NONSPEC =3D 0xc6, + A10_PMU_PERFCTR_BRANCH_RET_INDIR_MISPRED_NONSPEC =3D 0xc8, + A10_PMU_PERFCTR_BRANCH_CALL_INDIR_MISPRED_NONSPEC =3D 0xca, + A10_PMU_PERFCTR_BRANCH_MISPRED_NONSPEC =3D 0xcb, + A10_PMU_PERFCTR_FED_IC_MISS_DEMAND =3D 0xd3, + A10_PMU_PERFCTR_L1I_TLB_MISS_DEMAND =3D 0xd4, + A10_PMU_PERFCTR_MAP_DISPATCH_BUBBLE =3D 0xd6, + A10_PMU_PERFCTR_L1I_CACHE_MISS_DEMAND =3D 0xdb, + A10_PMU_PERFCTR_FETCH_RESTART =3D 0xde, + A10_PMU_PERFCTR_ST_NT_UOP =3D 0xe5, + A10_PMU_PERFCTR_LD_NT_UOP =3D 0xe6, + A10_PMU_PERFCTR_UNKNOWN_f5 =3D 0xf5, + A10_PMU_PERFCTR_UNKNOWN_f6 =3D 0xf6, + A10_PMU_PERFCTR_UNKNOWN_f7 =3D 0xf7, + A10_PMU_PERFCTR_UNKNOWN_f8 =3D 0xf8, + A10_PMU_PERFCTR_UNKNOWN_fd =3D 0xfd, + A10_PMU_PERFCTR_LAST =3D M1_PMU_CFG_EVENT, + + /* + * From this point onwards, these are not actual HW events, + * but attributes that get stored in hw->config_base. + */ + A10_PMU_CFG_COUNT_USER =3D BIT(8), + A10_PMU_CFG_COUNT_KERNEL =3D BIT(9), +}; + +static const u16 a10_pmu_event_affinity[A10_PMU_PERFCTR_LAST + 1] =3D { + [0 ... A10_PMU_PERFCTR_LAST] =3D ANY_BUT_0_1, + [A10_PMU_PERFCTR_RETIRE_UOP] =3D BIT(7), + [A10_PMU_PERFCTR_CORE_ACTIVE_CYCLE] =3D ANY_BUT_0_1 | BIT(0), + [A10_PMU_PERFCTR_INST_A32] =3D BIT(7), + [A10_PMU_PERFCTR_INST_T32] =3D BIT(7), + [A10_PMU_PERFCTR_INST_ALL] =3D BIT(7) | BIT(1), + [A10_PMU_PERFCTR_INST_BRANCH] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_INST_BRANCH_CALL] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_INST_BRANCH_RET] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_INST_BRANCH_TAKEN] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_INST_BRANCH_INDIR] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_INST_BRANCH_COND] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_INST_INT_LD] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_INST_INT_ST] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_INST_INT_ALU] =3D BIT(7), + [A10_PMU_PERFCTR_INST_SIMD_LD] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_INST_SIMD_ST] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_INST_SIMD_ALU] =3D BIT(7), + [A10_PMU_PERFCTR_INST_LDST] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_INST_BARRIER] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_UNKNOWN_9f] =3D BIT(7), + [A10_PMU_PERFCTR_L1D_CACHE_MISS_LD_NONSPEC] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_L1D_CACHE_MISS_ST_NONSPEC] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_L1D_TLB_MISS_NONSPEC] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_ST_MEMORY_ORDER_VIOLATION_NONSPEC] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_BRANCH_COND_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_BRANCH_INDIR_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_BRANCH_RET_INDIR_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_BRANCH_CALL_INDIR_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_BRANCH_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A10_PMU_PERFCTR_UNKNOWN_f5] =3D ONLY_2_4_6, + [A10_PMU_PERFCTR_UNKNOWN_f6] =3D ONLY_2_4_6, + [A10_PMU_PERFCTR_UNKNOWN_f7] =3D ONLY_2_4_6, + [A10_PMU_PERFCTR_UNKNOWN_f8] =3D ONLY_2_TO_7, + [A10_PMU_PERFCTR_UNKNOWN_fd] =3D ONLY_2_4_6, +}; + enum m1_pmu_events { M1_PMU_PERFCTR_RETIRE_UOP =3D 0x1, M1_PMU_PERFCTR_CORE_ACTIVE_CYCLE =3D 0x2, @@ -909,6 +1022,12 @@ static int a9_pmu_get_event_idx(struct pmu_hw_events = *cpuc, return apple_pmu_get_event_idx(cpuc, event, a9_pmu_event_affinity); } =20 +static int a10_pmu_get_event_idx(struct pmu_hw_events *cpuc, + struct perf_event *event) +{ + return apple_pmu_get_event_idx(cpuc, event, a10_pmu_event_affinity); +} + static int m1_pmu_get_event_idx(struct pmu_hw_events *cpuc, struct perf_event *event) { @@ -1109,6 +1228,17 @@ static int a9_pmu_twister_init(struct arm_pmu *cpu_p= mu) return apple_pmu_init(cpu_pmu, A7_PMU_NR_COUNTERS); } =20 +static int a10_pmu_fusion_init(struct arm_pmu *cpu_pmu) +{ + cpu_pmu->name =3D "apple_fusion_pmu"; + cpu_pmu->get_event_idx =3D a10_pmu_get_event_idx; + cpu_pmu->map_event =3D m1_pmu_map_event; + cpu_pmu->reset =3D m1_pmu_reset; + cpu_pmu->start =3D a7_pmu_start; + cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] =3D &m1_pmu_events_attr_gr= oup; + return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS); +} + static int m1_pmu_ice_init(struct arm_pmu *cpu_pmu) { cpu_pmu->name =3D "apple_icestorm_pmu"; @@ -1158,6 +1288,7 @@ static const struct of_device_id m1_pmu_of_device_ids= [] =3D { { .compatible =3D "apple,blizzard-pmu", .data =3D m2_pmu_blizzard_init, }, { .compatible =3D "apple,icestorm-pmu", .data =3D m1_pmu_ice_init, }, { .compatible =3D "apple,firestorm-pmu", .data =3D m1_pmu_fire_init, }, + { .compatible =3D "apple,fusion-pmu", .data =3D a10_pmu_fusion_init, }, { .compatible =3D "apple,twister-pmu", .data =3D a9_pmu_twister_init, }, { .compatible =3D "apple,typhoon-pmu", .data =3D a8_pmu_typhoon_init, }, { .compatible =3D "apple,cyclone-pmu", .data =3D a7_pmu_cyclone_init, }, --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9D8AA34E260 for ; Wed, 17 Dec 2025 16:25:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988721; cv=none; b=RWrKh5Q1P42x8+HOtwb02zAAD9eIpBe0pgAbXDcuR8MQjhVRGca/PBHkGj0TxvnjvokDtde6Jyugs7WLQKialsrFZPbu+5gLG8vmtLaU2L7PSUnnt5etfe6GbkFQr41QfFZacuYeNOm2yAJN6iyDBxrWAsHtp1W3ccG+PsT8ghc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988721; c=relaxed/simple; bh=rT7pSw9B9qpDA5uthGiBGByuYCvdc8tmOM1Erkf2EkY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hco+fKnm24kGStq21WBoUq/KVutXGXG1vTPnXStst+DYF8nMcsV90JffeGHE6rDtmlllKrtdENYVVrdsxK0/0Wg60OfYLqjsIZbsaH/GZSvf0jNiPS6wca1J4QP+X57b1z99jmGk6NHsMSIEsZ/PdQsA6YW5cRj/2Mv63UaLE3Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=VWzUaFME; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="VWzUaFME" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2a0d6f647e2so58571765ad.1 for ; Wed, 17 Dec 2025 08:25:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988718; x=1766593518; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=wCoRZwxAgH5sEhfaNxTmxjkp/QNB8K6lFiXGEg/VuDE=; b=VWzUaFMEtoQeFPx9UbKncofuGPBMNUBUMdW7qbER02c5L20dh1lQcX1y0uP4hfAM6P 5/ZJLLKpgRWerfJV1ME4YnXIppRMbNDaKQFcpe0dXQwx0UZQnzMSss2VCCBuLPUUFEp5 ws6paf6TrUzYqfkIoF3w56l2EmCr4xZAPwXsjtvCpzpg5eI7TwWu1JZ72u01E7o9V1m1 PERbk2cnFBl6Zc99I0ZJM1mdvgmFnzYjnivnl741ewi2v+uWliFV7UCD2Erv9HJy1zaY vhBIiv73OosAY1u17IH6YD1Jje+tjfWWyOoPIdNivOrdGALq42b5BIpzVwaqbj93kPj/ 2hYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988718; x=1766593518; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=wCoRZwxAgH5sEhfaNxTmxjkp/QNB8K6lFiXGEg/VuDE=; b=Hz9KQrZ02Zmt2RQLOUZIzrEL5ZkIiwcvqsp5C5jZu/ob1IDDQdjzMBt2WLrioKPSo3 PMgqRoBmfBuM79vXbCoIsDLvJ7QO6OlCBGAQ7G2Tz5o79DM/8pmII/0zdnDA1KgHcdJr RUJj3vaLJ1dNEMPMQwMLrmdpscOIqNY5h4/lVCkZQYltL1cP7VUgwj0QPCCwkj8cXuMT Ls+TDVHlayPwTx1rQVLA9xu6QoxieuxWy5lNCn1Q4SSewaYG4fwDKnc8t15tAgSI612b nbUrb+qp6YTMY8WgFH5h4sLWYmz84K3fiRDxZKXVxDfFebGJ3MCAmVJX1h4z4YlpYd7R ua4g== X-Forwarded-Encrypted: i=1; AJvYcCX1ReawSIsLxwjR0MbUii/xjrUjfod6tVcrB5XqrlIuwZwbBKiZiRo0B6wqAW7hPH3wgMTCnRtqPXgjG34=@vger.kernel.org X-Gm-Message-State: AOJu0YxOFH7N8/6UgAZAKCYXwUx1cgpB4nwzNFh52ljP5kyq9Rwca79/ f4H/1T8/U2pU8O7D/7uIDG/rnZggwOdgMaO4GnGfeJN2ntdeb7oZVpTC X-Gm-Gg: AY/fxX6vyvLDYmmYiLM+FZ5jdsNMbBccX11niwMSOZph7TCXJKDSUo4+t7eSCn1BJsd F8NgYHOduIVrbHbErQd3Tz+cNmVpoGIgXu/XQfCNnaAVuSr9NJ4Gd8JRyBcJB/Bt1gDeoYQ1VPj rkWfu80/A828ldI+tQoB6wr/i9qWQhfjxfc03Lv1q6AhWLwUU/b6fIN5gGwwvKx3VnKRTHpXHoY xudCdHdwrg7dlzNpqVQKmzwGyZcsMu2atQ/X7mJ9C+5y8vhUNnqeNXN63ctpSTwFD0lQGGJhVqD BNvgZM57XJt0l9zA2JU+a2z3+sHe9nCHXJ7ol0RZ4erwN8BzirNb/skwxQjJBSevrFbTi9H8b5X WiQ6fC8AMPVH0UBHCFgom6sW9ICamjLV+0ggDl1A9hqd9n95IZsp4hIGCkHOhIWSEvzPYJS2hUH 5PCFkrEjlU48Gr X-Google-Smtp-Source: AGHT+IGsxuG66NmPgoGcIvFTuRcGywvfDcaA0oYthZm6gYWypcVNHcjuz76LOTpzG6laa39BqRJfYg== X-Received: by 2002:a17:902:f9c3:b0:295:96bc:8699 with SMTP id d9443c01a7336-29f23b53ef6mr126107535ad.20.1765988717686; Wed, 17 Dec 2025 08:25:17 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.25.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:25:17 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:25 +0800 Subject: [PATCH v9 12/21] drivers/perf: apple_m1: Add Apple A11 Support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-12-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7913; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=rT7pSw9B9qpDA5uthGiBGByuYCvdc8tmOM1Erkf2EkY=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlBlUPZ7CkzZkhTrLF97vH511U5+N08pPC1s 0vcfKOu4KWJAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQQAKCRABygi3psUI JP5QEACK0rNh7Rsd+4HeKfNoraNRSolB86Ftlapris3QF94S1d/QvDbwLYiL9Wb6rH/MdQajB/s FQ/gNnm7e+2PZ9CJpEvNBzGHvOctdyDkvb8v5bX80UI/OYDYa6HnGFNxz20qxEJgfmI4AyHdHz7 ZYPVWwrYF07xReXV5HmPxkqL4lXBwRJCEiVeeMijWf7maH9OhI5Q2nuTND+RfkueeRBVrtMBCIp GvkI66xNAGZ8jnN/savtmD/Uy+TwsMRVfJ1XZfecsUabhvOQD5MSHzpSAzqRwCr1grChvmSUOnn is8DgXELDkKny62HmLAjbJsS9bPc7c95RAwRHJLkUCtBYnn7Q0ZV02xnQSBPPNaam9GgPTeRxsE QdNZShDdgzFHFl35uYPyD+iHwKGVpcZzGg+5HwW37qYu2hRGuvO8EndZaW6XN7Jro+w1knTl2nF llG92Pppxj0l1p0Vmxjeiv3vH9dSYPmXmXXoKdr5NTKhb0oxq5ee/YHudCCq9QkK+vKZ50eAQJ5 PBRFtVq077jnqWa74sh/Fmq17GJmFcafVov9PGYeIfNcjTOdtiUWsa3UkTCtFtnoGt+IN8puIPi DJHCg9nJeVg5VRHl5w+N9qpvMz3BrXBgQBA2cTsjnAQ0C+16gUaRTgfkJQ6HAhtAReu0z5OzXUy ntm+aljNRs2Sy4g== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Add support for the CPU PMU found attached to the performance and efficiency cores of the Apple A11 SoCs. This PMU can deliver its interrupt via IRQ or FIQ. Use FIQ as that is faster. Signed-off-by: Nick Chan --- drivers/perf/apple_m1_cpu_pmu.c | 135 ++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 135 insertions(+) diff --git a/drivers/perf/apple_m1_cpu_pmu.c b/drivers/perf/apple_m1_cpu_pm= u.c index 8c252731408224c3596b4157024a3ee885d98d9e..d6bbf6e43eae58caea025855419= 63dba1ea5a428 100644 --- a/drivers/perf/apple_m1_cpu_pmu.c +++ b/drivers/perf/apple_m1_cpu_pmu.c @@ -509,6 +509,111 @@ static const u16 a10_pmu_event_affinity[A10_PMU_PERFC= TR_LAST + 1] =3D { [A10_PMU_PERFCTR_UNKNOWN_fd] =3D ONLY_2_4_6, }; =20 +enum a11_pmu_events { + A11_PMU_PERFCTR_RETIRE_UOP =3D 0x1, + A11_PMU_PERFCTR_CORE_ACTIVE_CYCLE =3D 0x2, + A11_PMU_PERFCTR_L2_TLB_MISS_INSTRUCTION =3D 0xa, + A11_PMU_PERFCTR_L2_TLB_MISS_DATA =3D 0xb, + A11_PMU_PERFCTR_SCHEDULE_UOP =3D 0x52, + A11_PMU_PERFCTR_MAP_REWIND =3D 0x75, + A11_PMU_PERFCTR_MAP_STALL =3D 0x76, + A11_PMU_PERFCTR_MAP_INT_UOP =3D 0x7c, + A11_PMU_PERFCTR_MAP_LDST_UOP =3D 0x7d, + A11_PMU_PERFCTR_MAP_SIMD_UOP =3D 0x7e, + A11_PMU_PERFCTR_FLUSH_RESTART_OTHER_NONSPEC =3D 0x84, + A11_PMU_PERFCTR_INST_ALL =3D 0x8c, + A11_PMU_PERFCTR_INST_BRANCH =3D 0x8d, + A11_PMU_PERFCTR_INST_BRANCH_CALL =3D 0x8e, + A11_PMU_PERFCTR_INST_BRANCH_RET =3D 0x8f, + A11_PMU_PERFCTR_INST_BRANCH_TAKEN =3D 0x90, + A11_PMU_PERFCTR_INST_BRANCH_INDIR =3D 0x93, + A11_PMU_PERFCTR_INST_BRANCH_COND =3D 0x94, + A11_PMU_PERFCTR_INST_INT_LD =3D 0x95, + A11_PMU_PERFCTR_INST_INT_ST =3D 0x96, + A11_PMU_PERFCTR_INST_INT_ALU =3D 0x97, + A11_PMU_PERFCTR_INST_SIMD_LD =3D 0x98, + A11_PMU_PERFCTR_INST_SIMD_ST =3D 0x99, + A11_PMU_PERFCTR_INST_SIMD_ALU =3D 0x9a, + A11_PMU_PERFCTR_INST_LDST =3D 0x9b, + A11_PMU_PERFCTR_INST_BARRIER =3D 0x9c, + A11_PMU_PERFCTR_UNKNOWN_9f =3D 0x9f, + A11_PMU_PERFCTR_L1D_TLB_ACCESS =3D 0xa0, + A11_PMU_PERFCTR_L1D_TLB_MISS =3D 0xa1, + A11_PMU_PERFCTR_L1D_CACHE_MISS_ST =3D 0xa2, + A11_PMU_PERFCTR_L1D_CACHE_MISS_LD =3D 0xa3, + A11_PMU_PERFCTR_LD_UNIT_UOP =3D 0xa6, + A11_PMU_PERFCTR_ST_UNIT_UOP =3D 0xa7, + A11_PMU_PERFCTR_L1D_CACHE_WRITEBACK =3D 0xa8, + A11_PMU_PERFCTR_LDST_X64_UOP =3D 0xb1, + A11_PMU_PERFCTR_ATOMIC_OR_EXCLUSIVE_SUCC =3D 0xb3, + A11_PMU_PERFCTR_ATOMIC_OR_EXCLUSIVE_FAIL =3D 0xb4, + A11_PMU_PERFCTR_L1D_CACHE_MISS_LD_NONSPEC =3D 0xbf, + A11_PMU_PERFCTR_L1D_CACHE_MISS_ST_NONSPEC =3D 0xc0, + A11_PMU_PERFCTR_L1D_TLB_MISS_NONSPEC =3D 0xc1, + A11_PMU_PERFCTR_ST_MEMORY_ORDER_VIOLATION_NONSPEC =3D 0xc4, + A11_PMU_PERFCTR_BRANCH_COND_MISPRED_NONSPEC =3D 0xc5, + A11_PMU_PERFCTR_BRANCH_INDIR_MISPRED_NONSPEC =3D 0xc6, + A11_PMU_PERFCTR_BRANCH_RET_INDIR_MISPRED_NONSPEC =3D 0xc8, + A11_PMU_PERFCTR_BRANCH_CALL_INDIR_MISPRED_NONSPEC =3D 0xca, + A11_PMU_PERFCTR_BRANCH_MISPRED_NONSPEC =3D 0xcb, + A11_PMU_PERFCTR_FED_IC_MISS_DEMAND =3D 0xd3, + A11_PMU_PERFCTR_L1I_TLB_MISS_DEMAND =3D 0xd4, + A11_PMU_PERFCTR_MAP_DISPATCH_BUBBLE =3D 0xd6, + A11_PMU_PERFCTR_L1I_CACHE_MISS_DEMAND =3D 0xdb, + A11_PMU_PERFCTR_FETCH_RESTART =3D 0xde, + A11_PMU_PERFCTR_ST_NT_UOP =3D 0xe5, + A11_PMU_PERFCTR_LD_NT_UOP =3D 0xe6, + A11_PMU_PERFCTR_UNKNOWN_f5 =3D 0xf5, + A11_PMU_PERFCTR_UNKNOWN_f6 =3D 0xf6, + A11_PMU_PERFCTR_UNKNOWN_f7 =3D 0xf7, + A11_PMU_PERFCTR_UNKNOWN_f8 =3D 0xf8, + A11_PMU_PERFCTR_UNKNOWN_fd =3D 0xfd, + A11_PMU_PERFCTR_LAST =3D M1_PMU_CFG_EVENT, + + /* + * From this point onwards, these are not actual HW events, + * but attributes that get stored in hw->config_base. + */ + A11_PMU_CFG_COUNT_USER =3D BIT(8), + A11_PMU_CFG_COUNT_KERNEL =3D BIT(9), +}; + +static const u16 a11_pmu_event_affinity[A11_PMU_PERFCTR_LAST + 1] =3D { + [0 ... A11_PMU_PERFCTR_LAST] =3D ANY_BUT_0_1, + [A11_PMU_PERFCTR_RETIRE_UOP] =3D BIT(7), + [A11_PMU_PERFCTR_CORE_ACTIVE_CYCLE] =3D ANY_BUT_0_1 | BIT(0), + [A11_PMU_PERFCTR_INST_ALL] =3D BIT(7) | BIT(1), + [A11_PMU_PERFCTR_INST_BRANCH] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_INST_BRANCH_CALL] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_INST_BRANCH_RET] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_INST_BRANCH_TAKEN] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_INST_BRANCH_INDIR] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_INST_BRANCH_COND] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_INST_INT_LD] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_INST_INT_ST] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_INST_INT_ALU] =3D BIT(7), + [A11_PMU_PERFCTR_INST_SIMD_LD] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_INST_SIMD_ST] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_INST_SIMD_ALU] =3D BIT(7), + [A11_PMU_PERFCTR_INST_LDST] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_INST_BARRIER] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_UNKNOWN_9f] =3D BIT(7), + [A11_PMU_PERFCTR_L1D_CACHE_MISS_LD_NONSPEC] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_L1D_CACHE_MISS_ST_NONSPEC] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_L1D_TLB_MISS_NONSPEC] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_ST_MEMORY_ORDER_VIOLATION_NONSPEC] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_BRANCH_COND_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_BRANCH_INDIR_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_BRANCH_RET_INDIR_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_BRANCH_CALL_INDIR_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_BRANCH_MISPRED_NONSPEC] =3D ONLY_5_6_7, + [A11_PMU_PERFCTR_UNKNOWN_f5] =3D ONLY_2_4_6, + [A11_PMU_PERFCTR_UNKNOWN_f6] =3D ONLY_2_4_6, + [A11_PMU_PERFCTR_UNKNOWN_f7] =3D ONLY_2_4_6, + [A11_PMU_PERFCTR_UNKNOWN_f8] =3D ONLY_2_TO_7, + [A11_PMU_PERFCTR_UNKNOWN_fd] =3D ONLY_2_4_6, +}; + enum m1_pmu_events { M1_PMU_PERFCTR_RETIRE_UOP =3D 0x1, M1_PMU_PERFCTR_CORE_ACTIVE_CYCLE =3D 0x2, @@ -1028,6 +1133,12 @@ static int a10_pmu_get_event_idx(struct pmu_hw_event= s *cpuc, return apple_pmu_get_event_idx(cpuc, event, a10_pmu_event_affinity); } =20 +static int a11_pmu_get_event_idx(struct pmu_hw_events *cpuc, + struct perf_event *event) +{ + return apple_pmu_get_event_idx(cpuc, event, a11_pmu_event_affinity); +} + static int m1_pmu_get_event_idx(struct pmu_hw_events *cpuc, struct perf_event *event) { @@ -1239,6 +1350,28 @@ static int a10_pmu_fusion_init(struct arm_pmu *cpu_p= mu) return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS); } =20 +static int a11_pmu_monsoon_init(struct arm_pmu *cpu_pmu) +{ + cpu_pmu->name =3D "apple_monsoon_pmu"; + cpu_pmu->get_event_idx =3D a11_pmu_get_event_idx; + cpu_pmu->map_event =3D m1_pmu_map_event; + cpu_pmu->reset =3D m1_pmu_reset; + cpu_pmu->start =3D m1_pmu_start; + cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] =3D &m1_pmu_events_attr_gr= oup; + return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS); +} + +static int a11_pmu_mistral_init(struct arm_pmu *cpu_pmu) +{ + cpu_pmu->name =3D "apple_mistral_pmu"; + cpu_pmu->get_event_idx =3D a11_pmu_get_event_idx; + cpu_pmu->map_event =3D m1_pmu_map_event; + cpu_pmu->reset =3D m1_pmu_reset; + cpu_pmu->start =3D m1_pmu_start; + cpu_pmu->attr_groups[ARMPMU_ATTR_GROUP_EVENTS] =3D &m1_pmu_events_attr_gr= oup; + return apple_pmu_init(cpu_pmu, M1_PMU_NR_COUNTERS); +} + static int m1_pmu_ice_init(struct arm_pmu *cpu_pmu) { cpu_pmu->name =3D "apple_icestorm_pmu"; @@ -1288,6 +1421,8 @@ static const struct of_device_id m1_pmu_of_device_ids= [] =3D { { .compatible =3D "apple,blizzard-pmu", .data =3D m2_pmu_blizzard_init, }, { .compatible =3D "apple,icestorm-pmu", .data =3D m1_pmu_ice_init, }, { .compatible =3D "apple,firestorm-pmu", .data =3D m1_pmu_fire_init, }, + { .compatible =3D "apple,monsoon-pmu", .data =3D a11_pmu_monsoon_init, }, + { .compatible =3D "apple,mistral-pmu", .data =3D a11_pmu_mistral_init, }, { .compatible =3D "apple,fusion-pmu", .data =3D a10_pmu_fusion_init, }, { .compatible =3D "apple,twister-pmu", .data =3D a9_pmu_twister_init, }, { .compatible =3D "apple,typhoon-pmu", .data =3D a8_pmu_typhoon_init, }, --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9AD9E34EF17 for ; Wed, 17 Dec 2025 16:25:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988725; cv=none; b=gQbAoKNaH28cvQSlpT0dIm79CnHskgUvKt72fbitqQWtteLirPx8rsm7mjLcw9QZNoz4GYUDM5SvhoQTAysxeTrnH0a3DEvVZwjxuCyPJi5liaPJXqHnIrNFCSk5yQqpQJmnmWj/Da6WKDHCdDFn1c9e8VX1+mHFAuX+WB7avnE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988725; c=relaxed/simple; bh=6LjbldlF3OoWMCnhY7fHqRvAfCOGSBQ1ExvFhoCzNxY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YZcjUTUbOBTOsgpiVNaJTAIPsYqbhJgBNopux8RiUPKDlA/mump5nNh1DzioN+xd7VjbIY7cvG82SJtxQHtT1cnRpZWDnsFcrmZRTxPWUDJ43F353B0xl1srIH0j/3x8wyFPYwyvaxCk2Pdfvd1bzaOxo9ItDsw3c+QhXuUdIWw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=YZowlmGW; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="YZowlmGW" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2a137692691so25991565ad.0 for ; Wed, 17 Dec 2025 08:25:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988721; x=1766593521; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=yx92mpsjRydjbKNezVplOe9ZgSTsezLCchII9GIIrGo=; b=YZowlmGWmJPc9TiNEVMNemIFYmPN/kvSEtVhMO9DXyWYBMcAcKcdBB9/9af3oB+7CO JIA/AK+4S6XQqSdT/vFKnehsdAk/j8fYGWwEdBI4AvKOlt/re3HdrY5BAUbgh49FJo3v cV3F1hQ80T5nI1f4Nzor8gPe6lG3KYvpx7g6P4Dbm7iCYqPoPOn9vPu7iKFh4BzY6J+G 7Wf/HIremCdQwQc0CzVP8saK533qdQB2XRGapt5EOSFgpJM4Mc2OQuxYzVWqgSablsfl zh1SyieNluYtBLk4neS6OpZWJov8zLMKMPSD6x7G4iY7ksONz5i5ekSuHp7F2DKuUL4F hJxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988721; x=1766593521; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=yx92mpsjRydjbKNezVplOe9ZgSTsezLCchII9GIIrGo=; b=dcbhDKhZcN2szQyNxp8ze8b8lhKIBXsQRUIPeevnoFwnjJMxQUPxUn3kbLhKCLUZWZ 9ZfYCidg+n3juMpwmpSvtIg+ZKzLF3f7tplGDNGkVEUHpKPWe0gjFNHwo7amnmo2Kfcm cELELY8b7T+3lMDvlChSUffZqFCN/GNdLIwNAqtkhcMJ0xqDtgQirEn4Y6Ow7N/6B2lr SPkBn/4AGdN7opqa57opxCoVipsgr4SmHZN6I1TCfHOP943vfC87pyPMJ1eW+q6ifih5 UMtAN371WSMRzVxX3oGH4Lyht/uvejDrCWq2gumKOB6sUJJojLMgOwBXQOjvgHF6ECNj 9tOQ== X-Forwarded-Encrypted: i=1; AJvYcCXcci27k5aAhw15t79uWIuyl4VWBZyuaYOEmWURFvyiyJFH7iXj6UWTGBsE3qWW+dVPvrMa/FbB7lHpQWY=@vger.kernel.org X-Gm-Message-State: AOJu0YwU11eX1CGnV4Anr3XbZ0WnkAR+w0MlRZXHXC7bamAR9vcTki/q zz7lz+eyE5fKMbLt05xfyyugOW7ST4MrkWtu754vuSqs51z0tl4GZ8gj X-Gm-Gg: AY/fxX7V1uvbenwB1/RjfTGyDwNRDCzDc6ymFI9hR/7HVkc6qv5pQgkcxmD9Vu3BsBi WSRjSZhyIcRoC6oaeN8cBuFnJT24TO9lGrnPaprMyf4q0JX0WZ5pcBpiQf6i1b81pifKOFKJhVC E7Dj74XhFX4cPirvp6eFwsn++bmyiZ8MshWpP2K2/OxoHPZHMJm8AunsFKJHrgs8U5D3gHumedQ VXB16/PHfTN41rG7vnwHdv9EBRPvI/py9ZmzhUjQa19NVGciR0iWajwYvEy3XWGi4dB7bmdduns 0X3vL5sIVhDBxTTP9RMJgHzUyItZExhBPzlL8TDo9n7bDM739gW1hGrRudbTgsxsKADjWgElwPO lcKRu9nkr5pq6C5lV3ViWva4gJMyuIuYhEIkDxHHLoOAchWQ5tE7Hcd81W2tvsYrJ0X/0y6el1L KYf6h4YkfF3ZMk X-Google-Smtp-Source: AGHT+IF7B3HOGs7poX5/sJEvWU5wHnYg5DS9Wk9uSkNrADU4CHuaQXTQoglGtMoHKKgXqB8/eL9B1Q== X-Received: by 2002:a17:902:ccc8:b0:2a0:823f:4da6 with SMTP id d9443c01a7336-2a0823f4e6bmr133717945ad.50.1765988720769; Wed, 17 Dec 2025 08:25:20 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.25.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:25:20 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:26 +0800 Subject: [PATCH v9 13/21] arm64: dts: apple: s5l8960x: Add CPU PMU nodes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-13-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=914; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=6LjbldlF3OoWMCnhY7fHqRvAfCOGSBQ1ExvFhoCzNxY=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlBWlRtK8fFZOggW0gRKimen2m37MOO5vrnf Etv7BkdrRuJAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQQAKCRABygi3psUI JIT/EAC0nDegP45eFiq6zKOvzllfwjkCQO2MKS5faldtXHkXIwSRRT8b7VeKPzBD3X52sVnN9+F lpFKKATIVC4kmxROD/OqVnvW1nhRsdPo7NupCCpzC1d2FgmJqA9WZx+KSPYpwKL63hiEKNe+YEd +sMkijYl/9qzwLf0qL/K2S2rWg+xh9AgWYHpyw03Ec+76O6IcKBQQP9KJ1UVd8m9scXbweOVsgX s+008dpPi8RPfSbKL5ONyq0CP7uc/rOv0pwwSGBq4s1ijYa0CbDrEY9wUBr89FpNenZI9Heo9JF PbtFtV2DdaUxjCVeOo6JwYUzZLwV5nCBU8QDBK8CKCglDYLl+g5ezH6VjnHTxq2J38ADkfFhgao 646jhqsLpzBUfgv0fCbqPPQr5HPYVsUHD22uidyW99begHvLY2ya7h7lUpdE8S5oGBkAU1l1PqL JAW0HU0xeeEmUo83Q43m3t9+khjoNvU6yG+MiPcIJcfv9pwKDoGsxp93Qh3Q5HNeos22cnHyhoX 4csuVwEL8pG9P6ucMtRVQS3bG6QxCAUvw5knCbNaoYJdoDhycRfm1uwFRbzFLaT/l/CszXl5cwT 20Dj8u8rVBJJJM26yxbBlRDh2vHsKbpEARB81h0FSlLwMtEEczin0405Pp0SRinzk20zCc0u1pj nf9XufhyGMKQxog== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Add CPU PMU nodes for Apple A7 SoC. Signed-off-by: Nick Chan --- arch/arm64/boot/dts/apple/s5l8960x.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm64/boot/dts/apple/s5l8960x.dtsi b/arch/arm64/boot/dts/= apple/s5l8960x.dtsi index 462ffdd348fc893d8e1d597b11d063dc5f88bdf3..d7a9cf1bb4911805a946d64e589= 2c1fe4b832186 100644 --- a/arch/arm64/boot/dts/apple/s5l8960x.dtsi +++ b/arch/arm64/boot/dts/apple/s5l8960x.dtsi @@ -227,6 +227,14 @@ timer { interrupts =3D , ; }; + + pmu { + compatible =3D "apple,cyclone-pmu"; + interrupt-parent =3D <&aic>; + interrupts =3D , + ; + interrupt-affinity =3D <&cpu0 &cpu1>; + }; }; =20 #include "s5l8960x-pmgr.dtsi" --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4173E34E75E for ; Wed, 17 Dec 2025 16:25:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988727; cv=none; b=XeXeSVLGb6MMdTFO1gZqBXvy8nwK3ib3MRRajf2g3Tb/BQr1wQvrwU+DkLSXtHYwP5zB5HiKrPAPHtx75f0Sv6VzO+HCYMadoamtC5fJLQj/djcvco65l25tFozbb7OYPjzN9q80qkA2EhhIOSYdkXAGhEkI6DjVC/LI0s6X5/o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988727; c=relaxed/simple; bh=xASpZevNHcaVzYbv63kfOr+Ypk6TFwui56ogxDHDMcc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Snc1I4oLR8Eg0isNLFhKgiBy5NnRJHYq94zZWejI6pDFUstgrkydlrX3tU21ZROfv0L3Njb4aDE6W+qo1uOtzSoo8H0ss220QD/3z9RYA+EhQqZNT3rhiVOj+kfNJ7FzXfqaiKtSy0NW/6CxaDXfnogayJW1JfOBY/7BD8GncMY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=deR2dPIW; arc=none smtp.client-ip=209.85.214.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="deR2dPIW" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-2a0bae9aca3so52440635ad.3 for ; Wed, 17 Dec 2025 08:25:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988724; x=1766593524; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=G5cND4kPk2t5DX6paIOqq4zpW3qf1DLe+UW4i1yJRWA=; b=deR2dPIWS9ocMUOODZphHn9cgjSSq2tQgdNu1akDzdLfYuYK5+Q0JDLfLqn++BRAaK mKiUpP4UX8Z7U5ZkhIKCsyMk7bbBWYJnW540XROxyQiMmkH8V0tHd7gswXkI5wFS/+i1 ry1ydLtXEA3wIfrtJEEkciobkRxYwMk3sEo4+3e+jyiogA4+6Tu2rqsuAkzs90Sh3T8W nPsxiuYa2TvbszFMnjbvn6FzM2QThNkTrNKfktBSEesu9ZwB8kNnC11Ef6NLdXQby+8e NVuczQILbGlGfPoZWPTq+Mm3awCKO6VtqLwZ8CcFF92PXcSJQYuTdR51GDV+OIxQPDhq 67kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988724; x=1766593524; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=G5cND4kPk2t5DX6paIOqq4zpW3qf1DLe+UW4i1yJRWA=; b=YMetnOCSkpbkJWxyqg15TARk16jOc87RN39xWR6WBaPcrFZgX+8Ub2Xofii3TTB6ac a1d6j33RTHNyrbgF47iaKHS0ykdnrnuhKGeRqaUlMS+ui4FJbQ3d9nWH46r/Dlfnq7FQ Y2T822knkxstNacMH5ZQJLkbBGckpT9wUcHdHl+matMwcExU8YB6Ajy4/vQfG1YX1GeZ GX4mW0Q1uQl5LgNrpnZadtt4P8g/aVU3K2cGXLmX6EelpLbD1NxDUgLApJ8sI7esLyUH GcBj7pMeFYJdAlE4hZM7InaTQY2j9rz0nDOiULi14E66jrFoWY20UYFcV56HIRVSQre7 CqlA== X-Forwarded-Encrypted: i=1; AJvYcCV0aJfeH0AqtRA0P490/wIhENW4yswSDiiK4OdCVIJNKvhfWr3zfNKuaV1ub2JpgI82p3YyVyn0oWOrAXg=@vger.kernel.org X-Gm-Message-State: AOJu0Yxke7fMOUAIhiZHnCu/8ua7JO/wTh2+iZYJPKZ2bbjhDKDkw3s3 bgdV0oVqtI6wGejSnihVWPwB68jUoQ7+skEFdnaFaIX4p2tg3gPiNCWm X-Gm-Gg: AY/fxX4hoHBjYMV+AVvHhenYWdqydPEMK46Nurhy2wB6D+ppT5gSM/QF6REnbboI4oM 41hDpmDKCoiYCOhThCIeltHMYE8/wnojYwHvk4OxHyTCsqKHcQhEW7K2KLMQlj7ESJH/Ulww//U JQjYKzOlL4x3M1qBJwjNU57zIR1xlhV+ycAoKU30pM4rtrJ7O6hm9zlZi/8o96vAyrb7VKd3XHK kMLzjIeHeUgBDIMBQLkR8AKKYVBJGjXDPJ11mvxWIrcTTcs27VQBplqGIofQfeh/GBuIbdmuBJG xgC7XLp5FtueOKW/2TvoK6Y7FdbtDRf72AB/ZjN070Ao5wx9kZPNc47Ap6ENeGsi4siuWBAP/lf WXDfe+Ss0zq302iqpqcPotTElxEgZD9A6mgpGpi43vR88luPDW6VD3nQw2VoQug4dvz4Zj+Hosj pvUpqxDprachIp X-Google-Smtp-Source: AGHT+IFZoc6y1b1pXP5cQ0PFfnGzbWz6vwnhHPvENZwP09tZuV+Gdcyz37t9lePCfwf5hB/837//4w== X-Received: by 2002:a17:902:ef07:b0:29f:1fb:730d with SMTP id d9443c01a7336-29f26d2fb39mr203552795ad.25.1765988723895; Wed, 17 Dec 2025 08:25:23 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.25.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:25:23 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:27 +0800 Subject: [PATCH v9 14/21] arm64: dts: apple: t7000: Add CPU PMU nodes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-14-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=894; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=xASpZevNHcaVzYbv63kfOr+Ypk6TFwui56ogxDHDMcc=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlCfqtnj3K7LLG1583f9fJoNwcOfr9dxkt87 NMURcTfSY6JAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQgAKCRABygi3psUI JJ4oD/9wGXL0RPwz7RwA+udXKga6NOZMvPE6AWK2GLo+Q54NI8kf4ppSwtCkcXeBXP11SmVFDi1 VHlNNMEA+MMbnwVnX++oHN7jkn2Ag0KGIPzLKzRiFBMID/Hz3XAN0qSstl+LGSIAQZWfa5JG9hW aDby8qRg8x0AvST6KJdgK6thxZbTponO5XTFoH4+kdU7YsPKN7paZodsc8aB3zi4rIeuLNejFFU OwNTRNwa6KaRFg/VbEnIswe14p06hGMqczn+pdw0KaSOVNFfUApQC6Ts6yOY6mhL4xU+jIJCLV8 KEXN936EuEJUIjwaCizOwol06/GXwPQ32GGcN3HXdljSy1YDYgrVc+MCLQnWmJ+C0E4SvPLl9+G 1kd4HV8OzPLcYpDEAJLsa3pBMXtF2pqLC4KuFIK4rzo+tifUWci3D6ugxXzYCe1uoTndGmf81Ia XNCc8TKqz2yueBPl08DjmJWWKCQ20tIthfhmegmGvFn6a990QC3VsGqU9mmlmpwytBr4KiRrRN/ CC9Gy1T4CBSASNdHO+WyV/Wa8WhtFliLJ2kASnpd5rbGLk8qVIqRvV24wf8IGt4l4r6k2bzc2Mc rKENc69LVKhwX/UMU9aNd+zFdWv2nE4jclbhgNQK6Jjsr0Ol7B2MZlAoaBvM53PrteYke4CSfra nWAG6vi3ijyme7A== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Add CPU PMU nodes for Apple A8 SoC. Signed-off-by: Nick Chan --- arch/arm64/boot/dts/apple/t7000.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm64/boot/dts/apple/t7000.dtsi b/arch/arm64/boot/dts/app= le/t7000.dtsi index 0342455d344474d34f7924a089bf5f5915e68d55..a416cf8204173d4e45eb7baab42= 302eefd0e55ab 100644 --- a/arch/arm64/boot/dts/apple/t7000.dtsi +++ b/arch/arm64/boot/dts/apple/t7000.dtsi @@ -282,6 +282,14 @@ timer { interrupts =3D , ; }; + + pmu { + compatible =3D "apple,typhoon-pmu"; + interrupt-parent =3D <&aic>; + interrupts =3D , + ; + interrupt-affinity =3D <&cpu0 &cpu1>; + }; }; =20 #include "t7000-pmgr.dtsi" --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 05D1923D7EE for ; Wed, 17 Dec 2025 16:25:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988729; cv=none; b=QBTb5Tw7S3lBgsT2gYwG3KffwUSUK347U6gvkVNPBhTuRg3n85wyxsY7dpo6ZWE2TOmSUNRSXCQB9xgYRCgW2CvPIQkiCaloR8U9omOUECkbz0O+5MDDUXrECZHs60gdaUUoKJn1gKJ2jwewktF1rYu5NRwrmM+Ddh95GXSXp5s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988729; c=relaxed/simple; bh=8i2WC0AFNRoAyJx9LwHHLdlMc3fQP5/vwmujapLLxro=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RXf8evKGLpH3c8W2X+sS7Th/38fNG6TrF9vAfSVs30Rv5RqUhco9HSBbtTKWgXlpoWjR6KpUqRlNUuthwwHyfMU0Wv4q9GQ33uP1ltHm06BJ53CeZi3cUTmX8+r10Uuw2IRmCJozO+LQgMi85vHZNOYdOfDgBTEckupB0ECzilM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=GaTaBfVw; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GaTaBfVw" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-2a0d06ffa2aso42865655ad.3 for ; Wed, 17 Dec 2025 08:25:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988727; x=1766593527; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=vgzrS6iAvFIUlLKBejM9CRNPYbscxZNKJWP8/12+9Yg=; b=GaTaBfVw5Y1+4KpfohqJfed6oj81kF0XVSvc7HnHwiBBqBnZ5BA0J7dpD/rRwG8h55 Nw5GQRAP84VG8qc/d4+sZCEodcjxGPJgnw9VIITmID5mXNG13Gr9Fbf0KlpeMoy9Mdvz hTuo4gpeKOKgc9gDnOeXJUKJSWDdGGkTFs8fwwL2IZsu+fWXXexkZItKJojWKJ76HwwE dnBoFAW+9BEBZ4Nio5ZcRQMnVnKXp1jML85a2/wVZ6TS39pQsQO8hQjDxk9TmtzMT/VH OYuOaCpfC4oJkMhJC4NP3v4y6edBvlRUJaAkWvNuf7+iHYThVyWJe0LFOgpWeCVdYJqm cbmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988727; x=1766593527; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=vgzrS6iAvFIUlLKBejM9CRNPYbscxZNKJWP8/12+9Yg=; b=oZzLx8smt9Cox9KOrKVaVd3PDbqekwBNJSisy/OJHPb5wdMX+wNqSLYmXgXz+UoL46 Rx4ijyAUEgd0ScDhcbJLuUk7vRj5hCBYlGCevijuBPwiJhQwwEnPPWJcm4AEL69BxvEb owAp5BQXOObqKgMvg8XriOT8a35hcGaExM9ogwciaO75w9AETo01w+Q0NWgNzNTcBTiS wxiN8LlAkpEfSiiIen5kHneY9qHNEJc9W+ZspHhdovllgnj4Z6kCbfF6ubKE1/qotx4p 57njvbfKYhIyh8jKNjF+BqEsc/G0r6gnnZkNrcttG5CqVYwBPvitDQ8L7igfrSVKQa92 +0Cg== X-Forwarded-Encrypted: i=1; AJvYcCXbtI80/7Da4M1hsRRKK6FIeFrhbN818++HCVRC5LB9Kwz8XyNTrGlxjz9ONJ5jHao7Ag/+TlXXnEtYuTs=@vger.kernel.org X-Gm-Message-State: AOJu0YxfxCuOAcV9xNGGWiksHRpZfgqRGD4VUs1wXeaquU3n+uAcwimN pFYmvfm3iLclkTWXKLxjLAHpGAWkYB/BXyCY18UT4lCLgRuY7DGFV6Oc X-Gm-Gg: AY/fxX5Ltku+EKMCeSRJt+eync6yKblTgFBkiOGinL/1KdUYXvEOHQhxSEgcp1rmtIo yzeg1oCxV/wJOYfB/93+KKwRzJbTvkZ9BT2uKz5hmcBvmdu+8otthWWU9XHa5JapHix2xuTCKC8 Kf+lMFwEEazlqVtfQ8zM6zycXWSlyAsx774aGwibtgWKtSKWZKuGsqCq80XzBZ6drHIYvSEngdD Li21Ss4HoD61n+OBLg1Oc+us7s7rmMzYUURz2I7x85HBzQBd6ApwJk+EJD0zVM8pwsVhhn9KSJc x8LRyE4cknLzsXgfN6B0F1IPsBJYbGRZxgFknXcN4qJ4ln3DMOVWD6LnAdlj3/IKD6efeX2ckqM lK4jbX3wS83UB50/vg1NvhaDs0H7Sam/64xfYeNb+G4ViA1w9D7ASjAsmylcpaYSSx9tZcgOJHf KVzk6qqQIBkZUK X-Google-Smtp-Source: AGHT+IFB6PeNIWSqXJ8An32WcsBQUhlnoYA7ieWW12lMPDU6l82Gj5e6zJ8t+G04ZDznqk99I6dBvw== X-Received: by 2002:a17:903:19e4:b0:2a0:c954:3bc6 with SMTP id d9443c01a7336-2a0c9544164mr151113495ad.22.1765988726996; Wed, 17 Dec 2025 08:25:26 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.25.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:25:26 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:28 +0800 Subject: [PATCH v9 15/21] arm64: dts: apple: t7001: Add CPU PMU nodes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-15-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=946; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=8i2WC0AFNRoAyJx9LwHHLdlMc3fQP5/vwmujapLLxro=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlCclmzbQYq5sEToSOjMcDoblZHJnC01GxIz CCAYu6+ojqJAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQgAKCRABygi3psUI JGC0EACgymanFylRFBZHGTD7TCucUXoM2oI8p5ZphAfJg5I8FzyKa+0UsRzIXvnt500vL+7/kVt S9c6jH6VokeA1GsxoMbft5KZGBkAqyk2zxOi12WMdNh4VCpBa77YtUhb60CzzoqWyf1xk/ddauw d4CuGVUSnE+vZhQhJHAfPiAiUvBIw4PDCQWGCSP0Cu2IHUkaZ1SC2ffq9dqXoBec7k50ltQmPax KN4WBAdaGiFMDKJh6UOxuNBtJFBkk2R0wclmF3+6XtsRJt0sW5je1KEGd+PAWPC574I9+//NH3q 3NlmsUACZhKn/yQ4vc1O6gglLRYlvUpkahnHJCmgNWZe21O5js3uU2nmCAEDCOT0ac4nwozVL5m ZuBT6EMaf5LR22QDSRzGe2f7YFJltRNGMiVvJDu4azur+7pRxSuAohTKdMkKpQkmX82rh6qYPck e9H7MTwvGdRcjH1LkVKu+od7f31DxZr2xB/gRdlb3p1DVJvz3JocH4yk5IBU1sGR94tml8M6X2n t5grzoPFUrJLMu9YhCQ+8q8sEVbRINq9DlVPgkVzN9ZGFqB65jkc/A4jQzhBsEISF01jFTh0laq ooL8MG1kkdo/6ftO4VYZsYcDOyRDyp2STNTew0w9oozyoRZGsIYMGk1R+z+AiD0qE542KmWILHk atO4PaZduvUvvKg== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Add CPU PMU nodes for Apple A8X SoC. Signed-off-by: Nick Chan --- arch/arm64/boot/dts/apple/t7001.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm64/boot/dts/apple/t7001.dtsi b/arch/arm64/boot/dts/app= le/t7001.dtsi index e1afb05423698223ebc15f2ae347e73fb46c7c24..b62122ea40f00a54ae42dc3cd0f= 864f25888489c 100644 --- a/arch/arm64/boot/dts/apple/t7001.dtsi +++ b/arch/arm64/boot/dts/apple/t7001.dtsi @@ -275,6 +275,15 @@ timer { interrupts =3D , ; }; + + pmu { + compatible =3D "apple,typhoon-pmu"; + interrupt-parent =3D <&aic>; + interrupts =3D , + , + ; + interrupt-affinity =3D <&cpu0 &cpu1 &cpu2>; + }; }; =20 #include "t7001-pmgr.dtsi" --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 41A3834C124 for ; Wed, 17 Dec 2025 16:25:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988733; cv=none; b=sXdgHyF861COxD9DRzjc5Ik7ZlYTFadzzg5CWIMUUe/vaF7PKGtwmomG50GDNqOT+WkHeDQ5LdOZgE8N/niLqRlir3NIUTvjEtMQJdrnptzLmw/YDu+h/Xc5wpwzsFVPyv9a/jMqr2ixSJVeZ9JWYQNdRIileJLnqdX2uYQ6jEg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988733; c=relaxed/simple; bh=3omd0YVrSktNDZ3RXrP0xc/+wVtkaIIz0927w9SxlCU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=f7x36c6s0NmGEiUYSiSRlqGaH8PQ1GKQhWIj5YsjSYJr3g9P2M+K6co4HsB0itGKefA0dc7z8u3BWEDePM6zv9iH0DUuvM6jxagAsgR6fnO6jxSbQCvG3PpIzCvtEAQL8LKdO8dVveIiKTjlNI1EX/xIzceqMg5A3tZlsB+VMCQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=aOIKUrhk; arc=none smtp.client-ip=209.85.214.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="aOIKUrhk" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-2a0833b5aeeso67305125ad.1 for ; Wed, 17 Dec 2025 08:25:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988730; x=1766593530; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=VOOkO0Y8d9P2yswmxe69xUL0YHF0SsjJE29vdXLnWdM=; b=aOIKUrhkH8Mo/Av4EWeqNHk0OWt/o4sIoT7DXJAzRGMItFEpPdauKM+4VVlbLNte9E bdu9LoQ4fzmJ1CDzsNB3NWf1mKBIwacex9YttKh19IVLxnT5XUJlVKIsIYRYAqzTg+6W 3iszp6TzNMMcvt0RvWAVQNyQfZ/WI0t2JwXAdU37LuW2s26FvusyOgwiqUtlFuvmNqJt 7VXiFHweHYM8BUUa3SdJcQp/hFKEOjbJgl8tHQpgzc6H98UneXEg9mzL6H/9Gei40/2p +fHAGsojsPRsirFou4akBB2r9SRhj5qDk5vcjCxdZbsUPDSlYXK9XU8qFjYCtdJewD4p t4Lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988730; x=1766593530; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=VOOkO0Y8d9P2yswmxe69xUL0YHF0SsjJE29vdXLnWdM=; b=eRxcnH1osTl8+kR7cieDeVXMpwJjXv+G0D2z7Afx5jWLHjzA+XyxmkCaXyaQ54B1An 2Bi49bvSWePrs57s5KU2R+62oLkx69G2KNPv7etM3Pz+nrvc0StcfsQ7tpFAgkORXMu7 h77TiZn2mr8gN1c/LBglFxFEAqrJ0LOW/Yc5K6qmWF0M1dIqlfT8qQf9mhUG8QE0SOS0 1ECokhAqLrbghI3wMo9DO+zN75piIFpEoraqSNPQXQfhEFZV7qs52ysVUNztl+NhijbJ X23GvVC+OBUaIpqqnPN1i9yPF9JyBYqBuMTu2BhKx9GvmIl1r8NkQGOpgcHM8NTmmgla c03Q== X-Forwarded-Encrypted: i=1; AJvYcCXpPk9mjeu6KF4uYZ4kLNakPsgQ70hgIHzeN+iN8A5Mn2Amc/dfpqfJQ8g3qzinOIDpBHW8Dq1MKo/DizU=@vger.kernel.org X-Gm-Message-State: AOJu0YybR0GCUfIP+obn1llGc+rK2kfLqH6otCT5bLQgZjhhSzZamB7s dRTs7mPCXVwhVzDQqSh/uK5SiAK2AM2zNzIQmidsBS9GBASiItd3wRMx X-Gm-Gg: AY/fxX6OluVLHbSHxyBEGS3764vtTIdKJcxnnPaZzkL6ZJdlDOizNMfZ3IDC5QDPShH htsT4J4MBJweGkjSqrkRDkAaWM1NK1x+VoT1i7lM9EVR1/Omg+I6+snmVXf2mzyP5SHl7XumUDT OvhK/1RGJQsqCbMsSaeCCu6HyLOlirGgLsalVw+2MIdxF5DVrgkZ7PAvyzK0rcUJogahqA/uHx6 Kfuzo2t1FfdRaYDJVTkanKY7/feFM4NEYrbW4dhvLLEl6E0avv/EUOjLxnQ9CtbzUd8UQqPPE9C YUoZQHnXgOyCO/1BRZOH9jFliXuil4kliaHX/2JZ9eZc0MBoyF+IvmqVmbjtnQX6rcspEH0x3lF CS7MpshKJUn9/yF7jZPsdb2HZ0+/MifTGQMHU9Pza1VFOpPIOc9qWP0HWQYV/XO5rlzbidi3Er7 BvWGwFh+QlHzZDj4n8Hym2g00= X-Google-Smtp-Source: AGHT+IF6ow4wM+ihwNVaBoZq+Y9IX9FSX51mWNjkFJ+2+D3BETqFbQhQb2Jfop/GosxjpA/TwOzvUw== X-Received: by 2002:a17:903:1aa8:b0:29e:9387:f2b7 with SMTP id d9443c01a7336-29f23de5f93mr181949755ad.11.1765988730144; Wed, 17 Dec 2025 08:25:30 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.25.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:25:29 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:29 +0800 Subject: [PATCH v9 16/21] arm64: dts: apple: s800-0-3: Add CPU PMU nodes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-16-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=912; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=3omd0YVrSktNDZ3RXrP0xc/+wVtkaIIz0927w9SxlCU=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlCB346IsdcVZWXTm/5JORDgBo7bwjFJDgeM zWBIZvfxx+JAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQgAKCRABygi3psUI JJLMEACQhaV1MhO1B/LjaWCuuOUK8Z9B/Tp8bKAXeKgalnLI5wj6oMui4wEpfArfgB8lTIRQrO9 UV5FEEAn2agoE2wiyqvQRKHtr36OpQ6Ar6qtePa5JXqtxs60+sEiVPztGxzkqnzdNJyH2fkuE0a MLOubat3v7BqjhL7W0/JzQvYuS1vnJUGf4SK0Kisv1mLU1u+GX6sGbICXBgJFGxVHKSdprVotko CU09T5grM/pEXc9Ev+zrinCWwSmkhrnZu1G/xGhabIYSKeh6BJZGBM7ygk8LrYyHeb/ovpMYpYd d2w8rS4jyc54qCaEkCcYl/CQfD6pJ6aP5rP634SV7WRy5dNYUCZ8YO8o/Ow0OfdmcRm7BWeQsas i4H00nfNyTUQUl+yVCHELn5SGm/gF2o04juTPH/W0ms7xjsoLhsuoh5SaX4aS719xiJMp/+Pssu m3e46KArILkJFwgqZXfEt1Y+bOV0YmnbnjopMfMkr1HcFma4Gh1p5fD6WHfMFbfU6+XKqi6D3y6 ofBub9RizWdbcMsvA/wQ35r0y4dxdhof8NQXtyNeZFwloExmFjZyXGuvt/KasWFFu6Q+NSVAfup j82TnsuUAk1rzK9d1Sw8uXf8KTt9JcNmWTLE/z8YgZRC0s+JX1FfXn9SVlz/rGucHvLnWBcEKM6 Tb5yLn/WFD/Xq+w== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Add CPU PMU nodes for Apple A9 SoC. Signed-off-by: Nick Chan --- arch/arm64/boot/dts/apple/s800-0-3.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm64/boot/dts/apple/s800-0-3.dtsi b/arch/arm64/boot/dts/= apple/s800-0-3.dtsi index bb38662b7d2e0b70e18b6870b706789b1cb242af..aa372aefc995334b1489953c162= 51c8ff9b94d98 100644 --- a/arch/arm64/boot/dts/apple/s800-0-3.dtsi +++ b/arch/arm64/boot/dts/apple/s800-0-3.dtsi @@ -237,6 +237,14 @@ timer { interrupts =3D , ; }; + + pmu { + compatible =3D "apple,twister-pmu"; + interrupt-parent =3D <&aic>; + interrupts =3D , + ; + interrupt-affinity =3D <&cpu0 &cpu1>; + }; }; =20 #include "s800-0-3-pmgr.dtsi" --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9084334F469 for ; Wed, 17 Dec 2025 16:25:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988736; cv=none; b=neY9WKdfVAfTPIgPcwi35RCCct4umKJyc/XNjpBQmjhqIAi3Vtkh6TazL/R+QXxkk3o9dsOyZfkLBk7yVDOfxjPr8e32yFTFKAD6Ej6RepKaU5SpcX3tC6ESEPc+lfUMmlA3W2d/sBNuRQfs7l+j5neiu5wgRQ1qxiWDh3XVk8c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988736; c=relaxed/simple; bh=PzJR4btrOIgWAbbA9/PgDRkfL56Q2zFHfShoVsaxiHQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=omhALoyhOuAx+AcOM0PSyFyxuk6R8m0IoOpv8W0+Vj9dQgOC72MaTC7EiDWoT6OVXMAQFv+UhcML0fscUsKvBuEWsbkoMXIy+cffMZgCrmGoiwJp74zqYXgDl5s4l1BGh4sXxqOQPyqh6Ud+0y+ShXAObfkUserQt7sblHciszk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ToqtRQib; arc=none smtp.client-ip=209.85.214.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ToqtRQib" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-2a0d52768ccso45617535ad.1 for ; Wed, 17 Dec 2025 08:25:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988733; x=1766593533; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=0XIbviOhDk9tWhSGjjMU+OiN82Iat2rqIxD675mZ2oo=; b=ToqtRQibqMmA9O1DdB655aJT9j+NOr/M4pkiCWbl6z47U7Drzm55HotSVw4jyzAyEj oG1gPp2Am1R0q0HHh4w90GXdTBnc285SxIe6aytCzJkpDvTr9/QRVxVrYr2WkxRuoIb+ VzdJgDnMl+5LiRnm5kNtdnRYjZKMHJgy+N9cmAtQitr088OZSPtYodxB9ssfmThRUBlA 1YI0dbEyLJ+niV8QUe4/aRsBZ4X6h9zPZ7ZmC0d53Or/AnSd3TjvLogZjrCr+FSyxeGy WO1cBrx4ulkwp70IvZOA4gevVqIy3IJbDc6DJp/u+J+UQOx4LkDiZG1HPr7OR3SkgGtA rItg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988733; x=1766593533; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=0XIbviOhDk9tWhSGjjMU+OiN82Iat2rqIxD675mZ2oo=; b=RrVsCXuPVdEZC9aGIyIQJ/zbetTMQsHtpWebQjHqM9WdaknyhFkZxIlJ7YdAtbRzap haDaPO+W5YOBuuS9HCoMBzWmzAbPIksL/MrgcKPPVW/cyVTKZfDd1nBmFTbItvMleO8A yLyuelyBgXC/Pc9zX0P3tjYWgXUfMnr0q+fXt/Gj5A7t3VtUHLs/1U18AL3SZA4wSqX3 hoRXxJEEvxHZw4kAmAO51Xh1L+u8OlRy/PzFa2UnY3hWYfu1aRxacmcPEfnj6W7VdJkN 7oY5ckGTtvpgu9fSWTyYyPPTWGv9IsfzivcI9IIXX88g5kzFNNmnIgnJrRWqIcJDUT20 UMIQ== X-Forwarded-Encrypted: i=1; AJvYcCVmCXSG83BE1gODLLYh/tnWZKNJiEfYg8oLjGdClV74X0FK+DYiniKeFZogM7Z1K9yVVS2TPJhtXmTaNNo=@vger.kernel.org X-Gm-Message-State: AOJu0YyspJ5xxDMB+7wBvQWtJZW1JiebDiDVHyTLii2VJgtko2mIEbNG +kOpEUzNAjciFl1Sccqh/vUI9fH9QyLW+t8ttmi5IagzlfG3d82QMijx X-Gm-Gg: AY/fxX7UDhPUapJycgIgLJ9ugk+EcJpkwnNf4lyUGvZftxA2+V/pM230ektTmoRkJx5 /LEdlXDhxjSEtsbjIGRlMXnr2Cms4cOYMj0ojjQMZrQmIj35ml1kjMIe2Mxpp5PY6u31iRr3xbS qib5sCHE4C74XxM8Xd2ZRGWeEU8L4SwV5h+zH0xXyVJn92WNJ+0O+Lo4Trxk2UPC2DKCY8BRQcG 4Ls5RJoQpBUt6Z52e4StGNIwrT80kRl+KdA9cW+vQEhV/Rs7EnnUmzi1cNbWhuuZEuyjniVa+2u iBf6jCdDZy51uN17rFCbOkFbJCinIIXFRNR/hOOnBPwySbGujK1AAbB/fkEqWRugguEc91fiSBX 8hzV7IYEaO3dHUwZONt3zzvY0FFQ5H+55WbkNqbK5XvKdnkdeo3s10n+Qlc1zKvpDGFR5dWcmOR v98N4IZj6sZ/w4tUaOL3fw7NE= X-Google-Smtp-Source: AGHT+IFWcAl2eDJLxZCIcaifcs1mNO/2r3sxH7mEEr1iZiQh6yjVgtkLQjrhGVLNZjs2M6eo4amITw== X-Received: by 2002:a17:902:db08:b0:2a0:f0e5:9468 with SMTP id d9443c01a7336-2a0f0e597c9mr105953605ad.32.1765988733320; Wed, 17 Dec 2025 08:25:33 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.25.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:25:32 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:30 +0800 Subject: [PATCH v9 17/21] arm64: dts: apple: s8001: Add CPU PMU nodes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-17-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=895; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=PzJR4btrOIgWAbbA9/PgDRkfL56Q2zFHfShoVsaxiHQ=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlC18frqHrWhi62ycOZTQzFYElAtT3Uwm0CD IaXXMI0j++JAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQgAKCRABygi3psUI JNATEACn01v27AmuZVEofWUCxDzFsb920+rtnSrQ8l32muph5xC9coNw8T6bCYcDAwiPtDlfs6m /4SQvgpQoMAXxUd4HrCz3m8UKruDmVLOed4fFRje/PU18xUyzwWlweBTZDVbZzf5wKvLwTiBFqn 2epA+tLbEi2kpSoyc59zMYv89FfoAN4EIEeULAePwCeTMxDT+0JCcfcPl+b6CSrzaZgf64SnyAA lhHBUIF6tHU9ruCWPqwk5Nrb9SHN1NgxdOC63Vla+HsFYc+GMqawJgvCP5AUiZju6sQfPIdvngD 4aMSddwWxID9hSD0kwWH7F7RkDD9N1EwJBJR7x7YI4/X1lAgf1REiES5b8A3kB3j8QB/J0cFrFM agu/2DGetmXyT5qPZyR9FLV3pOUUZszvmy5Ch4bvWd/aktds4UGJt7HPnyrkJgzGFlMhkfMThjp B1+MNLbRG4enS1qpNxIrKN7rWbNnatkHgxbOAFO+RJCyW5ek5w29o5/r442NTNSK/MgK1JB5dxN lmQ7qHiJZMjf2DS87FHgvVeNI1KzeJsx19AB/h7vPN92sveEQ0KdQH0Jtx+pOOlhK2yjpP010SP bN8kt4pyhSbTGbulgl1ffdEvUgA9OSKgeCdUPI0Qt9oKuzgeDSqtRkg8eCP90fjUX6E/zNiHXcg djIbLrDiSNYJvfQ== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Add CPU PMU nodes for Apple A9X SoC. Signed-off-by: Nick Chan --- arch/arm64/boot/dts/apple/s8001.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm64/boot/dts/apple/s8001.dtsi b/arch/arm64/boot/dts/app= le/s8001.dtsi index b5b00dca6ffa4caa1d504860693da001a8ced80e..83c5c479c87fc1ae1bb7c6889ae= d9a71fb55d29c 100644 --- a/arch/arm64/boot/dts/apple/s8001.dtsi +++ b/arch/arm64/boot/dts/apple/s8001.dtsi @@ -298,6 +298,14 @@ timer { interrupts =3D , ; }; + + pmu { + compatible =3D "apple,twister-pmu"; + interrupt-parent =3D <&aic>; + interrupts =3D , + ; + interrupt-affinity =3D <&cpu0 &cpu1>; + }; }; =20 #include "s8001-pmgr.dtsi" --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 99C9A34D909 for ; Wed, 17 Dec 2025 16:25:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988739; cv=none; b=JPrWEUjc8uKyfsSsJ/1WMwftOlyrgW0X74YqNiSBdQYjPrd63nJXToxL+pFEYv2GbFoTxkCLgXUvnyVTAvLfxaQ8+2Q2wHbux7eek8lmEZ7ehP4+M9W4Z3T85EalqVP7wO3lUbP21HARul06F7fhtd6HZqzO0tDhcaBa1GMpsLM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988739; c=relaxed/simple; bh=+Y0a0WIcF+OvRh+wENdR2K0SnXmQmB8D5lWAyKi2wlE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Tlr5nT2tkK2bWvkPsL1X4E3jJvtHzbMZnMwEiKG0MLgHHdFiXHYIEI6+W96w35ghagoekKFJSZt4lq64QPANX2RCfeipDme1ojJ/Z6zUlKmAic/NuZTCDmqgZKyK/PT3oiohrrAtSBcXBhKyW0/yMhyjQ20rRFu/mbu6hrZ7ua0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ISMG2lk7; arc=none smtp.client-ip=209.85.214.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ISMG2lk7" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-29f0f875bc5so78959455ad.3 for ; Wed, 17 Dec 2025 08:25:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988737; x=1766593537; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=JJ2g7x+wr2VIeqIG6aJACDKejjD/eomNYXl10MONUeA=; b=ISMG2lk7idbPYbmN2jAsii5dl+YFu5p1sYKqDDxjOJ5ZXOU01Cfm62VdFpmiVLiKYH WnPuubB+Cun0ruvknY9eU88DvJG3mIgUzC3Gb8cbmLVrm69ySQRtGL98L7Dnjqd5n4sm pcZLaiODckgPmatlitjYbGmuocBl/jQ9Gu096KKZBjZFm/5dOLCPUmd6Ag4uWxi9xyGH f6r7K/vBn2/pMj5arHagY867PkQT2iodqjjIHLrnpqI1kFpk+PMgKx/JO8F0EzRrKkQy iyJ8HWTWA9yN/3niX+hwq4CzUj/kTSBQpv1QFhXu5Y8s4KblwZzz2YvVU2ZWQKMVApQo TL1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988737; x=1766593537; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=JJ2g7x+wr2VIeqIG6aJACDKejjD/eomNYXl10MONUeA=; b=ADwHrDFxuq59GBZDDxovrZFV3M6unbZ4VNWSkGT+0muRZqaS/25wwVtYdo/sMqTU9x GPKnyztc87D1LolZ4Vm0ATzOQU2waXxmZr3hyzNX8FYpUTFfW/e8HlEcdTUrqcooxdAc xt3MQzIPYlW7i4nmI/xUNBBLlNqz/mLF9BrTwxzzSbuPCZDXTGFBw94WJrQvDQnd4d3D NC8zwu5bwYxbIgn9uqtmJJhVPTwnY0sU0fR+043zrLCZaAMYlDejbt0F6d9ZqCCBtSbt +WmjxaXMNDTPV48re+727WT/5FUz5bDsbDR9b0NlbgG2S4IvMChXJO6el2UybtNWY9qI mfYQ== X-Forwarded-Encrypted: i=1; AJvYcCV6NS1DasrqIE02njrwARYY0RdMREJlCzRCE9SrzY+veQYpmFObA9mAX0gkyFT4f74qbqF4QT0x6xA7TbA=@vger.kernel.org X-Gm-Message-State: AOJu0YxxSbP50/t2quI7ouomHqBhmZuRjyDLFzGK14gHT3mQAMH9Fl5s 2wkjZxUCg452d0pP/VQB4dEwPk+YyJm9MHPW+sA78JxVV99vWnU8JBdm X-Gm-Gg: AY/fxX5hB5xo5MYFvxUIzEOWYeGyTvwacdD7/e60RGtMQgWnBoLy3vJf6OJ+mEadOAp LbnDSH+Ely0KRwhEgW8y72YF4wtQpKu7vu4e8el9ZpMPrw/94rc9/x8rBX3V2yOALeu+sZR5ZuF wNkUaoFIZ/ouO/GdZGycn656mi5/7Evsv7beRY88exFjkS9OR9YsEi6UwfVhLv17ciPDsKefVWR ztlsUbIOh+vwdCGudVe/VNEKqSSGWuH4WwIa0s2ZOoaQvNM413MMg8Zx48qC0UFaAzvNiWD5+ie PgUoGh5T/WBjTIa+VEKwwGljXZZdWgabQ5jun1r+DoIeErLogB+M5XBY+9h2LUCQdx/nVRzVLAY vwZdFDbFSKRop++0OIUgOSz83HKuSqFDiQgOD0EBrhD5J4Ejo1NJ18q/1au0cAn1nc6PghmTCO5 liuoiAx6LqYnRdcT20qtucFdg= X-Google-Smtp-Source: AGHT+IFkx8/ULLaclRWeXQnp3FknE4nFeL1wYOatsRa4nxVopZsYO4Ep0g1d9Nf6orRKrMY5yv7hDA== X-Received: by 2002:a17:902:ef44:b0:2a0:a9f8:48f7 with SMTP id d9443c01a7336-2a0a9f849f9mr145464645ad.55.1765988736603; Wed, 17 Dec 2025 08:25:36 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.25.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:25:36 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:31 +0800 Subject: [PATCH v9 18/21] arm64: dts: apple: t8010: Add CPU PMU nodes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-18-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=894; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=+Y0a0WIcF+OvRh+wENdR2K0SnXmQmB8D5lWAyKi2wlE=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlC/iLREqKTBWyiQSUcAXdch2o0njKG9Al08 TcC+2X5MZWJAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQgAKCRABygi3psUI JD0eD/4pVaQ23XX6B+Fz65fzVa5a1N7gDangt8BRGmtK4RbXJQcwK12ed/KSO6i6t7r6RkeZH5G b3V3+h15nme7HrfFyIbxJ+TklHl4e2rZA28BBmLoVn6dOFV/x3ZtPYuwHVdWNSp2/7DhZzH1Q37 6BTuOSseNtCcLPe8n/KEvx5CFEr5gREp+EQY4NUDqtceqA/zFJg/jHS4jNQBfu0se39Pn4Jxcx/ QzXxUucO0/dVcYGKQ79a6BpnThLu6Fy4hwh1wfT8y0N1XgV1bSw6QeFDkvYuXmWGbwOutGhAm/X /Wb765ZpIaT/vgi69kbmCXgqur0RsDyAR7uy5L6+4knysMmxnosG8ZuXpCwzdESChCoXncYfGxD p1cyWUPC20AQftH6PJwuWyS8ph1DIs91Q4pvllAVhpmYq8NPMUxJy62vOy6GTRHb4yxAfHvGLoe 4SWngvxXBl70SPMghL99HRz6vDi7jXn6SY4e31zSKlV2sHEk1tUzXO4LjzyLuhj+3Jc74qx5Sik e7791dK35Hiz/iCy2gD/eMqNwUUIioKkZQe02O4n4ccQNxK74tRwvxuUdf5b3Mz0sI4hSuusTXu +VvyfdhXT3MVurzPfyigziyJNrpjAK+nMzdaNMgdJwGrekEMjGwD7J6cGpf3UCYzwX4MxKkv95z ahy8p7F0lBtPoGA== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Add CPU PMU nodes for Apple A10 SoC. Signed-off-by: Nick Chan --- arch/arm64/boot/dts/apple/t8010.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm64/boot/dts/apple/t8010.dtsi b/arch/arm64/boot/dts/app= le/t8010.dtsi index 522b3896aa87eb290dc831cbbf2cc8e593844097..3cf1eef5cc261fa1dc699e8b5c9= 991e2215a6010 100644 --- a/arch/arm64/boot/dts/apple/t8010.dtsi +++ b/arch/arm64/boot/dts/apple/t8010.dtsi @@ -332,6 +332,14 @@ timer { interrupts =3D , ; }; + + pmu { + compatible =3D "apple,fusion-pmu"; + interrupt-parent =3D <&aic>; + interrupts =3D , + ; + interrupt-affinity =3D <&cpu0 &cpu1>; + }; }; =20 #include "t8010-pmgr.dtsi" --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 78B99350D60 for ; Wed, 17 Dec 2025 16:25:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988742; cv=none; b=EVBxi1gfMWytO2umjtsxtP36phNJvssAv2YRwtNji8j0oFqudDs89ugbtwsEKGxhRKKunF2OYJsUUg7lLHGSnS8p439pnZxKWI/ttnsZqkei3nS/TTy5CDggwDGuJc6dl6lFaGzEZZhjhKZC1VrKAFPOXJoDKgLevxX+aHPCAdw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988742; c=relaxed/simple; bh=OX5KL+MG6sfpo1KjHjEhXoAalFtdpPr6gBFVJvOaFLI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=odAy81mw1qlmSIR5/0GuwIGNQJYdZVRxSblEYsYwinVRtQqckaPBv/gjBOy5YNr4yYn0++o3inWoLd/q4Yu4l7KBQWuBAXk/hjferhZXfzEq6SAJ3Ruw92OO4mU0mJ6nePgjshhvU+cYkYdfD135CMIt+CFtZ73+SsCPrgNL5Qg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=WyApYakX; arc=none smtp.client-ip=209.85.214.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WyApYakX" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-2a0d52768ccso45619525ad.1 for ; Wed, 17 Dec 2025 08:25:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988740; x=1766593540; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=NS7rXNvu/k+fb0x7YdnIE3Agpb80vBTRZvlvmIIsndw=; b=WyApYakXQSeE+NNVMF9Rxunkch1VGU9imBLQVFh2LLbKlfr8c4vL9llRySePzNS9pt kTpEpBG4IIg/sSYIm6fkF3Nh/6Z+InXTK6jwZvwqa2ONQDmgEiRZGMiTftn2bg9ycXdT 4G9RKNFWaDF/TMBpIV/RkZEri7KwMSzzGSLeSX8P/TAFEL1zkRIMbXt+o452erw6md6h Sf5hGga5YETkLHFRDqt14RL2xThMDTkVWNAXr6+b7TxvoKx7Odg4F2/bWqZhZf0Xna0i /zg9m/eJ3ajbUPhh84VWgRp/glOgie/LSr5+UD73OZqOwtNGaul9LAKU9RcyYpTv9X7K RKDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988740; x=1766593540; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=NS7rXNvu/k+fb0x7YdnIE3Agpb80vBTRZvlvmIIsndw=; b=M0QfLmdCDNKRzrG0GzvlXdwBtKtx0VE9nqo8u6yQojqMLiqEI9Zm06cdIy+GG5H3eC 03qf/7HxYSHMcupz3tZVSjQjya+4x61NrldgbFG/8jN1+IkVK9J5nTy7B/0RmfLohFq/ HiXcBwXK0h/hW2koOrBfZiOdh4ePk+iIjTCOKygyi6wSQB1EzrxnyrfS98cpBZ/+UeyG PJ5QqSjoz53EdPA3xm8B+5dhPC9SELAXP4e/nbuSi82+0xr4f85pNEEDHa5eIno2KOmx J/PJ2b1Qfby6CVb5HhyrPbNe8CwznBOb4qir3CgGisen9ni6Tf3e8CMM+PTOy42LMlFc R/Fw== X-Forwarded-Encrypted: i=1; AJvYcCXwr5atsI8BN4jcbjIYOinPsfanKHi2rxLe0L86RLPp6+KzkohgPEKnBupe0BhkfvEDn/EcjSaVQfWog5I=@vger.kernel.org X-Gm-Message-State: AOJu0YwsQAgICfRldV4I3aYbiS5Opfm7bTcxEoUm3GK0tzMFj+rm6NeD MIIvQJHhBxwAzJpR1MTK9dQK+h7IVkHJ+RUP6N7oa/Wh8u8wI5fvD6Gp X-Gm-Gg: AY/fxX6SVktKAmT1iDxZhNyZYemiXEgimNmxfzJDfAZpN0zAyG7zv3Jl8dbZw1BNHyC TjFyI2/TIq+QX+50QRg6cVlwR4X9a6GUPKbtfw+v53Iz/1TpiXZ6OcsehXw0aOoCw+C6RoSs1So zZaYDBpBzcqD7MzLqen2TzzCmT2C7hDaglM2s1jCeFp0WMA9XqZRWtz1FUhSReust9XVtyDSzaZ nlrG064BA8+AmXd/VLYB1OVkJaQQ00lJfsrNusBBeV+H7x9q1GMQbf3dO1frZwCKOaJcaxhZSM+ EVHy30Ubd5sF0qLNc1NH2S1lPIGWojXd2i4s80h+U0WD/CUWdeD7MijOPFiyLCsV9KVaJ/mHcOw UGWOstymfu1Dqe0uN5zG3TC2OZa8ll11xy2bbtkeNs0WZSlyC8Ip7TR2GfGxx9A30I7vUyCYFka 0nBsrLG/ULTt6B X-Google-Smtp-Source: AGHT+IGQGMr0AmGgbN4xg0sghCxcRIAwjDwaNdSGUd1h1vpKA5x1f2e8ppoipUpn3JG6UhCjVxeliw== X-Received: by 2002:a17:903:244f:b0:29d:9755:9bd8 with SMTP id d9443c01a7336-29f23e6fa91mr197349105ad.22.1765988739788; Wed, 17 Dec 2025 08:25:39 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.25.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:25:39 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:32 +0800 Subject: [PATCH v9 19/21] arm64: dts: apple: t8011: Add CPU PMU nodes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-19-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=946; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=OX5KL+MG6sfpo1KjHjEhXoAalFtdpPr6gBFVJvOaFLI=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlCu5cj/TLrZWC6mrH7YYJbkqAiAC7pEfyDd Hj0f2vlWA6JAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQgAKCRABygi3psUI JM2jD/49XIhE+QSFJovMK9EioD8JZ2370zRmv2bettLyrYyNn0ozJMj8eqHpFbPUdAOJzworI53 0pQpcWVYu1W21pzI01Ux5JtTxTozyJicMOWFMyQQNnKGK6bCr4id9v8mlTDLjOJgBXuVbxW28Qq eucnSDjLgwQqC6aMe3lftGDTSYaA0cz9o1BeAA1/vhrJjqUMYWxf19ZeQRqLOjn5lXaZT08K27p t1JB9P3kXgPlz5x0RX6Pkc3aVeS5XW42v9j4CEl+j70kYzdPLRBHarrvMSXua7Pi9sBkjzHtjhz 3aCG0hVdDnKh+g9dhIZBiMptatnjb/1RQPFabtZgG34GtKUhbJQD2XiuoZx7IEwAokW6/KOhu7/ ewMCbVe+Nk+mzlerzFzB3hktV7zUZfFaQXkFgtqAVpMgC4MQMyOATSP3K+/NyMIZ+prHnwJZyA6 3VGKjR91dL3QVEjh4vDPbt2QUz1skKsPyR5NqhWCUf+USPuTNoIuDXzF31INwSNpEaX9ee4eXON hyK60T8cN+1zlC2BrwYKZYlGjiwQcut0Z5T0Le1NFCnxqGbTOTxWvl+QbtppK00jOHhIIl5D6Ts 1pfTwx1wjiBZYCxLiEtmy9byA/NiDYMToyRt6eHVxMGwI2rfrw+Ki9SmrQxqYzQ7EDqYo+fc9y0 s5uk4hc5IzzYy+w== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Add CPU PMU nodse for Apple A10X SoC. Signed-off-by: Nick Chan --- arch/arm64/boot/dts/apple/t8011.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/arm64/boot/dts/apple/t8011.dtsi b/arch/arm64/boot/dts/app= le/t8011.dtsi index 039aa4d1e887625e7b6ad789bfd9aa032dc58d01..7f7b0230cd648eba2533f860622= f683771197bff 100644 --- a/arch/arm64/boot/dts/apple/t8011.dtsi +++ b/arch/arm64/boot/dts/apple/t8011.dtsi @@ -329,6 +329,15 @@ timer { interrupts =3D , ; }; + + pmu { + compatible =3D "apple,fusion-pmu"; + interrupt-parent =3D <&aic>; + interrupts =3D , + , + ; + interrupt-affinity =3D <&cpu0 &cpu1 &cpu2>; + }; }; =20 #include "t8011-pmgr.dtsi" --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9410B352FAC for ; Wed, 17 Dec 2025 16:25:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988745; cv=none; b=IER47HL/ZdlT3VhVhWOGTbTqB1Ro4JUT3g61/7872Bd7tZebFPGFG536ST1tb08rT+vce+6lD3t+oh1+d/fbHjKZQt86BmP4xVImgsszSxlO3LH55dtyv5j4PJq55isUWShjL8ut+MmksugfbRMLj3LmSJ0faPQmrpdOjOUWHvE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988745; c=relaxed/simple; bh=2e/a3Ds8H9o2DJDRhuOCh9X1vWNSB/53Pgczil0A+/g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=PQkm5547GEXX53Vfq+nF2E8NigtEdo35k9ML/cfbTwCPSFvY8YFgFWY5ATDyxHZuZq3Kvkv5+NzVwi/VnYzoYEWedSDL5vxWJ9tpXnB0Z+zVUcwzPUFOvdUZB1c4tbUl6ZqvrtksfgGA/W4fSajiM2UDzz4vJ+WgU7oaH2uemQU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=P6d89YkD; arc=none smtp.client-ip=209.85.214.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="P6d89YkD" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-2a0a95200e8so38785225ad.0 for ; Wed, 17 Dec 2025 08:25:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988743; x=1766593543; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=9XtdvBMU0gKAhP5ZVoa0pl/xHY6lC0zNp+vmjfClAxY=; b=P6d89YkDgcblhEUpue7NLgTKVD8CrGuCN56y3XNC4PsmvBbNtgU5hcuWjOnL8sKmIx 5prI+nUl+P+jJgRxo7/yxf+3WPK+z0Yh/tj1MY7OjdQRmiFuL6T5opMGFnGTrBdFWhkX LTnAca5PeHdnTxSG7WYUKOEx/p2QTtKG3Y71kPA143S26udOfhEN3/Wj26K75xDrc4XI OPdxXCIxvktUMvkSf6e1wkvb1vfamce0M3H6sPcqDGBEGgxxwy/0e7doymO1xKulyaAM PW5Xdos5qgamkT18FoxAIJuE1UzcZFehFzJ6Qmv/4j57UNChMwSPA6n8rsAQF+9BIUbV dOJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988743; x=1766593543; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=9XtdvBMU0gKAhP5ZVoa0pl/xHY6lC0zNp+vmjfClAxY=; b=tQyZXrutY+/xjhkpOT6r227aZFlMSPRjnsSlRFeHZ1YSX9iEPOajo8xUCxAZ3Nmv8d 8aNdTKS7pz3Qp+O0YdJ3puHax5cG3GlAzydQdg1RwSLkepSS5CJN1FI5IHGgUzLmvF4u V3jc5tDyC5y0zxQhazu8OgODqKf+yMcfHTbZbMsU4+qdOKeFfuJYiGAXNHU4MeWfRsqk LCDv73m+99pwcfWeiDBBrXQm2lv4IK+l20RgyqA492ijQXBMzFpFvVwbQFQ0MW5FXE53 qiubNMX5nONPsF4pccoWbAX3oGKt8V9Yni3SFqmo7yfVsxV+FJh455A7ah6KJTNvs8RW dnAQ== X-Forwarded-Encrypted: i=1; AJvYcCVoThS7dHZagKMpd++H2ktLluMJakaPjuStYAZk7KnnWaEC/k/8R7d86z43Nhoxk/w/+mafhcQHEeqW6IA=@vger.kernel.org X-Gm-Message-State: AOJu0YweYXC9rOety1E1T0WlUrjXVQdAMOwhTnm7wGvzFlwQJh4sX8xK jHUvIraiINVavwl67Sz7BBtGXzV9zoP+EYbUu5sV1mA84SjJI7PoQsj0 X-Gm-Gg: AY/fxX4UfGfHHQy2gHhgZ4L7vsy1ciSGoblm3HDQS4yDoVB64MhdznR/gUTCE7zfrlm JmgR1bseEyrDUWIMmJIWnaQj6NPe1zM3yR150PNXEKYveUR1hhdt3dEN1dB8jUWia5VfkUJhVLu Dph1DQFDnePaUlAqFJjRmebD2IQh1rnzjT3+x/in0dsDC9S+zWnDpBmzAStHp66zVzCYlVmA6T0 LCcjgpOeuuY7rGQ5MsNZOXTgKzBaqKMcxo2X0PUNbIZ7bJFpygsfaOUBXjmNMH8Q9/jCmgRvIX2 kGsH4XgtGhl8Y58Ws+QyvGvMTdroBMd5rC9PeQANwGe6C6AZiIHRgJgsprA/fN4w6OOXYpB1pVA 8kdYCBRxgUZDKDXLBved77qRBM2BI8C9Y8RQmeDfJPe3ge1SqsGIFERcZnOZA0DF0wbCs24a9Mq B91etmCdMSno5o X-Google-Smtp-Source: AGHT+IGO53/Yde+EULUy0CNKhxCD9bgpjG2XsOvrAfTxxOPHWVYlfkkjFQH0s9aKhDolD5l/kE5sWQ== X-Received: by 2002:a17:902:f705:b0:2a0:906b:ac43 with SMTP id d9443c01a7336-2a0906bb2cbmr170716235ad.47.1765988742938; Wed, 17 Dec 2025 08:25:42 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.25.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:25:42 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:33 +0800 Subject: [PATCH v9 20/21] arm64: dts: apple: t8012: Add CPU PMU nodes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-20-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=893; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=2e/a3Ds8H9o2DJDRhuOCh9X1vWNSB/53Pgczil0A+/g=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlDCKyhlXQXgNMXNa02YnhpfcEZU+abnr76R Lfq5Gk/hKOJAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQwAKCRABygi3psUI JGdMEACWPGZUb8/3oKcm69SV5cFomSKZhj8IC0dUHaIPLUMSKrAiD2MohXMCY0rIBNmWfOGjtLA SbU1OdD0sj0VyfUFiwY512qW9/79M0x16Xop/VlCjK8mfhOGw2EaM3uW8G+8x2aJYE12WDClY7g kBYhIm82Yb4hZL6DFXXjvpWgWz7Ngmj9KJsprwXwl3JDnTQGLM5g5N7VY74KOBGNmmss2MZIEyP 5I5ClG/JV/Uol3mOyMq4pSH1nubehREwDcnXwLP0qI7CjaZYvC1GTPCBxhfMLzCVpEyI+VyGdz5 ljxDMtvnHQ4eJcSK3VPNO+3CVYrQtvgIM/bcVSoVc/gxUCeYLTopBkdK/Bzpfr+x/Aw23sV3vr0 ByNgTOshc3xOtiaaA4PvMbdDA0fUIYKUeyfvKrcnlOBiacHLEBDUYdX87oG3vPvkDK4HSPvW2eO q1EZC2/08JEFb/jnkYbcIMIoXI+pISyfsKGcMNUh9Fv7iK4NS5mZHp2YI6qm+SjrsR+nRj8U/lU bQKHsbW03QjvEQNfrfTCEd4Iib0TNTnxyQ19J/sGWcheJ4Iiqdstw4uNz7YAKIrZnIgvMUa2sao 2+km29FDFP+Y71uXLEskWQim5f8Kq3PP3u5ZW8zEWudpMCQOexstUtROXpSBVOm3KmTbo20gXCq 8gztCEyvl+Q8Bog== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Add CPU PMU nodes for Apple T2 SoC. Signed-off-by: Nick Chan --- arch/arm64/boot/dts/apple/t8012.dtsi | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm64/boot/dts/apple/t8012.dtsi b/arch/arm64/boot/dts/app= le/t8012.dtsi index e7923814169bd4060706945561910ed1d5c2e0c8..579560de1aef8c311cbf66c60a2= 111e2d5ac37c5 100644 --- a/arch/arm64/boot/dts/apple/t8012.dtsi +++ b/arch/arm64/boot/dts/apple/t8012.dtsi @@ -297,6 +297,14 @@ timer { interrupts =3D , ; }; + + pmu { + compatible =3D "apple,fusion-pmu"; + interrupt-parent =3D <&aic>; + interrupts =3D , + ; + interrupt-affinity =3D <&cpu0 &cpu1>; + }; }; =20 #include "t8012-pmgr.dtsi" --=20 2.52.0 From nobody Thu Dec 18 20:15:58 2025 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C4B4E354AE4 for ; Wed, 17 Dec 2025 16:25:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988749; cv=none; b=QbV18LHid4lCR0Tm8Ier0h9v+i1EpZvGb/GZ6bCPWA5ZpTvIoZrOcbFKIqNyOOObsxstaTw5raED4sXfNiV8Z0OCCPJH4OvBElw1dbCFxEb2zCYKl9gnq0joSMwqZLfp5+HRaiU6nUrbjpo3yq5CXN33uzzLmDUWifiOla/NefM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765988749; c=relaxed/simple; bh=trWVfDATm/MwjZ2+dtjuGYhC7m5DG/4DEiwR1Jy0uIU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KjWN+IAIuI1n9jnZkz8Ho/kKGo2JukfM1lkYWMyJexPTWwqWkihXilr1HyeQa+frPIbgqHKwO383J1uadtz9dwc4BI7XKNWrC7lT6RbIvK/aYOcQT4XqvYNj/JOjHP1WPEhzeBI16lpnwB4XhK10OqRVsqEQjC83RA8E2XFxIIU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=UnkWn/XZ; arc=none smtp.client-ip=209.85.214.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UnkWn/XZ" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2a137692691so25997555ad.0 for ; Wed, 17 Dec 2025 08:25:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765988746; x=1766593546; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=3tdOFnD1zwwXEjmETrN68s5mUpHoY1S7934/U4qRcoA=; b=UnkWn/XZKH7cYlAQo7wqthOg5lsmkQ/9ppfEy+5bDPB9oikc4eMIRGT/O8MaddWv73 KGk9tRsAn68WY2ZRi2xSCNVIHds/CCuku4y3nS77Ez6UBdvxJ17piwJNQcLJvAGL9jMt vsvg5WEt+cNNp33NDC5ammEpdWrALjnM09CbJxiuRvOp9gY9fEg4u4z8ISPomVei8JuI 0UKeYB2OpQbIX5foQxKsXrkhBIBzfai8YV7VCc81NM/zkyl0sUPH8c+c1hZ8rJh6+LRv 5wbs2nNw7dEs7O+xo1QYCec4epXmhtIVQEVuCLxQ6cq0FYMfpSOXAOs38R9IY412wVFd SqrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765988746; x=1766593546; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=3tdOFnD1zwwXEjmETrN68s5mUpHoY1S7934/U4qRcoA=; b=YIEWGGysmFgAKprf5KC5v0vCH5MsPRY4goQHyeen9NkgSSZ4FVxrjRfTlZCXi+YxUj UZ1ri1it/WNpLGOllMa+cAn0EXf7+Q85dUHbc2OVJ0PwZWC6YAzvQgsFfB+/CWzNRMYs lQOME020L2j0EJBD2wIKJs4NQzvU4laia7t4rXlVRIWHiPk16qbg/N7tJ4w/Y1V/9hJL 8uvFqMy283lUsjE0+AmRg+osLGmOk/BQWRL5KEt/tn2abYLPfT+phOvrKnsgGB8s7ypJ 23kowBD69Bd6jPsJgyQg7P+/1T1C/cgShH7kTB9GeLzLMBTE3pPzOKa9uzGHp/KHMXJ9 UHkA== X-Forwarded-Encrypted: i=1; AJvYcCVUWKc6QSaE9OuW3PvAEszD0zJ0tfWYUbSp+JdAJqfHRRzHm9wezgtCYSSvM4oS1JwB/zU3jNXED3T2YRQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yy+aGyDBt7mEiRCQnkPczeplwv7dmLCOhstBwfxOBvKpwYuk9/z y2b0PJEjWHlXWiu3ZAdEu4A+xkYLtXikkPcJu/jD9hg7o5zMpNTqh4SC X-Gm-Gg: AY/fxX7Xfn7zlBHsqeCLiJam+WInWCim3LlfRo6dW2gbwOc4bIyDVZ+UbAXt3n1G9Nr 0h/3vS/o6G8801IhhYlWrolLU65KqApopAcH07cgPFMPf6A+ttZ8I3ZvaS9x9S2J4qBVxuv1yV3 Qt4gdBa4kIH5EKArtLcw40rHAX6M356j211b1zIxB6psVlPFGjyYAHTPRJBB5lHNi2hQ3UiP89t YCDXiV74UdtyfI+AuWbDGEgsfkPVYKEa2ThssRowxHb7fzuy37G+7l/uM7SxBGfeoP1GQvt6Iwf k9UYAs3qYn3JT/cA1ds6ssQ3PxRNavcdfKIptfwVPPFGL/sW3DgKcT856u+gWFNv2vEOXY9xyy4 pShEgbw+ZhPS2uw5vB/eUcd/rxOBstxJo/+0AhSJi35VMgfVPOHacqZkkCdacdyzxQc6OyvmIAf pSCg+cWOO6nxZL X-Google-Smtp-Source: AGHT+IFBX13bhHK6lVyBJcGkQoq1Msyy8h0DAZFFCMfV5WBxQlT2ggVro0V5kiEjXJT6j3aN8My8FA== X-Received: by 2002:a17:902:e548:b0:2a1:243:94a5 with SMTP id d9443c01a7336-2a1024396f5mr116797365ad.47.1765988746077; Wed, 17 Dec 2025 08:25:46 -0800 (PST) Received: from [127.0.1.1] ([59.188.211.98]) by smtp.googlemail.com with ESMTPSA id d9443c01a7336-2a0b0687c62sm122980415ad.88.2025.12.17.08.25.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:25:45 -0800 (PST) From: Nick Chan Date: Thu, 18 Dec 2025 00:23:34 +0800 Subject: [PATCH v9 21/21] arm64: dts: apple: t8015: Add CPU PMU nodes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251218-apple-cpmu-v9-21-4deadbe65d03@gmail.com> References: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> In-Reply-To: <20251218-apple-cpmu-v9-0-4deadbe65d03@gmail.com> To: Will Deacon , Mark Rutland , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Catalin Marinas , Janne Grunau , Neal Gompa , Sven Peter Cc: Marc Zyngier , linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, devicetree@vger.kernel.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, Nick Chan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1462; i=towinchenmi@gmail.com; h=from:subject:message-id; bh=trWVfDATm/MwjZ2+dtjuGYhC7m5DG/4DEiwR1Jy0uIU=; b=owEBbQKS/ZANAwAKAQHKCLemxQgkAcsmYgBpQtlDl3Gr08qJF2sX03JXifmuERFH4Oin2bn6V wXHH3PV7m+JAjMEAAEKAB0WIQRLUnh4XJes95w8aIMBygi3psUIJAUCaULZQwAKCRABygi3psUI JNloEACKdtSR87e3pm0WecNFLB74uVTymD0eUkSwWkpCvJcS2bmrw6+uuPU5wdZQPIG+9akuhu8 CSJdjD8jVGg8Fjx8u0Q2t38B9sCeW2heVblCjUOE9+tzx67P5DEBDaJPZxslQKpHGKRQcK7lx/b ETG3jDDCvTM8KV1iOT800Uxa1rRgm0hR0sP4tXTH/2Bxm6Xz/VWrDL13LcClv+e3eFOaOMZo7gy 3wUoc4T1OypNKPayCDGbNzIcq9yeS94JpKxttdQefstDpXfzg5BFIE1kxXH5MZBu+axOLGVMyxR sMI8t4WLX27fYULPcY0/D0BiBKEranqFuWPcJMwOjpPNKBOc30qC9wdCrOME+gBLvHHPSek4SLJ lSPFwkKl7DNXVh92w84z3ehNHnzkl8rnJE0R2pMefLtxD0kThbHsSXuv1vKZW1WLvQZMhixc9+K xE4yQjIqVRkSD9/w+qLHbwuBNPD7gofTW4tzprVc3PwCLTbNEhBvAPdj6zPNJ/8UfXLn/bNmMaU ntJUB4NrWZjhG07Dxa0dGV2DnZVQjJNwYOqreNF64kxBrQWYEWnWs2oUB51xhyE0mHnh7BIp3I2 cB/NB0PYZo/Y4WRfOLfYzXTHxkSOq8q0bsk4vnHJaGNFOmgN/QxF4N+iGs7LqUu0VE6lqPMMuUn A72HON61PR2Kjzg== X-Developer-Key: i=towinchenmi@gmail.com; a=openpgp; fpr=4B5278785C97ACF79C3C688301CA08B7A6C50824 Add CPU PMU nodes for Apple A11 SoC. Signed-off-by: Nick Chan --- arch/arm64/boot/dts/apple/t8015.dtsi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/arch/arm64/boot/dts/apple/t8015.dtsi b/arch/arm64/boot/dts/app= le/t8015.dtsi index 586d3cf1f3751d9ee23262e55fd692bfee86c13f..0c1ebab56d6b36ed5362a042ecb= 6cecef7c97f64 100644 --- a/arch/arm64/boot/dts/apple/t8015.dtsi +++ b/arch/arm64/boot/dts/apple/t8015.dtsi @@ -341,6 +341,18 @@ aic: interrupt-controller@232100000 { #interrupt-cells =3D <3>; interrupt-controller; power-domains =3D <&ps_aic>; + + affinities { + e-core-pmu-affinity { + apple,fiq-index =3D ; + cpus =3D <&cpu_e0 &cpu_e1 &cpu_e2 &cpu_e3>; + }; + + p-core-pmu-affinity { + apple,fiq-index =3D ; + cpus =3D <&cpu_p0 &cpu_p1>; + }; + }; }; =20 pmgr: power-management@232000000 { @@ -530,6 +542,18 @@ timer { interrupts =3D , ; }; + + pmu-e { + compatible =3D "apple,mistral-pmu"; + interrupt-parent =3D <&aic>; + interrupts =3D ; + }; + + pmu-p { + compatible =3D "apple,monsoon-pmu"; + interrupt-parent =3D <&aic>; + interrupts =3D ; + }; }; =20 #include "t8015-pmgr.dtsi" --=20 2.52.0