From nobody Fri Sep 25 00:40:51 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 27D4738947F for ; Fri, 18 Sep 2026 09:58:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789725489; cv=none; b=e/LX8s6u4jZQ84/URa1GhbaSxrpCuhsyQs/eHFLoYReJekBOCiXOaNQNXJkWm8BSmoeQ3FuzMSaM4eeQDgMWV/juV2vEebJymrzIQOWNIegna8Unlrk117H2Gyajxxpt6+9Ky8SnJbsCfar0xRGBSRDqLPyMC5HTw57oN1mBUn0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789725489; c=relaxed/simple; bh=II7QDiq2jwtaTJv1NtjrjjWlOFL+SKyC+x4kRxGPEPw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=KfwTE+/xbA713VvmKI6ljOsw3CFgafAba/X2u7FUD9MFwz7q6/7GS7tiuY13ZYIchO+tUn6cHRfQk9Oo7jk7p6VAQ4Y9W+z6kfTEZxMm99UaVzd5jodnNdIFzX0VDfsFjdd2XrIq6hnnI8eWSZLf3IGM3+eukfk/125oW1jIe0Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=OoHqLS/K; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=OEpCzKuz; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="OoHqLS/K"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="OEpCzKuz" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68I9dsZh139301 for ; Fri, 18 Sep 2026 09:58:06 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= T4kZNrUwWokoKECv3iGlIDrJIK3q6uAjX8lV89l0HjA=; b=OoHqLS/Knik5+M0y 6/4jA+g7JLSjimQ9lyfnviGuvuD4/8ieW1/mz+Nl0pyl3Wzkzcl88thPDudKnQ+P mo74hbANUT0hyDwDsojPbmReR8y1D7ga/o98exTd6nciWDtiNULuDyjf7l/X6bQI hVG7TeS5z6hailzPqvICOO5q2s4IBmT0V1fi6cmZRWXcKY9Z1MzAHaUZ7gBXF6lK /cyilDbrKcMv6eogDShZgikWG3NMPEsu0krnJOtETXX7/LpDfd8YnlnZpV93xzjv eBBhBGN7+3+hvRDwhxxMYiSXDausHrzvTmiA505NJKntvjcTGsoqHcI+GPAIX1as XO0U0Q== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gry2bs396-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 18 Sep 2026 09:58:05 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-398d3a12589so149256a91.1 for ; Fri, 18 Sep 2026 02:58:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789725485; x=1790330285; darn=vger.kernel.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=T4kZNrUwWokoKECv3iGlIDrJIK3q6uAjX8lV89l0HjA=; b=OEpCzKuzCq4SLIHMn2Np7TYvv2bMM+WtY0VLBUv2P9D7eLnEzLLBaG9D7ZUiGH+j3C m2QjA2dImv174K7jEenvy1+yUuq2NEhWKLNInIZt6yK/lix/m3dyQixTJtlDKWdpC2C8 CrCl8Qd6rTfSHRvX7r2gWeIOT9j1/ue86WRf01Dd20HxrpMSvsD2qi/S9tSub5ddLSgN oHbZNDggxdahPqj+oQ+eTzgHDHt4qBLpNFqowkUEcjG4sBr1Hys/l+MDhJb+dUuYiqIu u5dqss7k3atonDAa8zNqg6kP20tQMxSdpx6wHMCyLkLFLQdYMKjvEctnHANtMLGSnkjt XAng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789725485; x=1790330285; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=T4kZNrUwWokoKECv3iGlIDrJIK3q6uAjX8lV89l0HjA=; b=brCW32J7toxvXiTv1HG17fa1Ws7XNSKAF2iRvl4PnV9JN0tKAqtUZMsydjOeOUuHX2 ndKY0RUpe8d79ZrOi6Nyf76XaYuCD1f9fO3RHjpA/s5JnKWNzkqvbdjuo86pUt+XDLxP JGrgyL6L56hhyQvsMQRRWN4gy3XQNCVdcXQ/n7djA/yCnIvuutRqcJQtNj2ORLoaxGAv /+lnfpbn/0LspLBsa9b17dRJDct0UygldSAi5pPqAPI7GG8H4HR8ViK0vWQZFQddSMVP DPbbGy+IpsD3V75X/nIDwfkkCR8DEYE8JPxWm49CM3HOe5XCJVli7faacKt7XGyUvTHw rjxA== X-Forwarded-Encrypted: i=1; AKwUvBwYhCLaXlpXyKIV2qtCV8Mn7rj350eAkKhra0fahudVnLhlmEppWup3V2PtL/2VYeBSKsL2XmyWOmUyMu0=@vger.kernel.org X-Gm-Message-State: AFuF++maLK+qbfUredT9ZuJ9EySls/Dr0BgNqih3T6UqFHbLIeUUm7l3 J+kIQyAMFNFmtb411OkqwyTQUA8vO1NLBmto/kDhUzeJGVcsRV6aaozNvnjqGKX5pVlTGbpAffv Yu3RYk1dOxLVnPf899hqNZc3ISF+kY9E7Rgyjj0PL5widWm1wpfj0HnLuGi74zq3yhBU= X-Gm-Gg: AYBFou32VrrSv1yBaqEZoGRPkvCcXzp58T51iDKcprVs6rGxGKH9Z6MDWmu7Tvl8dEI M6Jnv99y+T/g/5jNQMMSCkpWJjJgQsAgk97rzXpK3GeQuWBgoQ8gktO4NTXuUeu8PZu66VvXzyi QDHnKL3kEpsAThfPyrX+fUOXBhzxkrgDehnsL/hSZ+HNf/4RKslL6sWqIqc4AmM7MoQ1fSxDWLG mBlCXL/MpvsaJt8uFK09Fl9qnU9SEndGfB+L9C/n7i5yttvuQLwCM9ixa/oFkklPTN49jrtZLJf x/1xVXvmvGCS6nRldkp2TjvxVJis7NLpVpXqouGtoej0EQwe5ZCj/jYCCedB0zCkqF4Ot1/JZcO ynFIj9rP1NArFfi55Unj8UTA0U5rDpw0= X-Received: by 2002:a17:90b:28cc:b0:398:bada:832b with SMTP id 98e67ed59e1d1-39e59a2b8d7mr2990137a91.6.1789725484663; Fri, 18 Sep 2026 02:58:04 -0700 (PDT) X-Received: by 2002:a17:90b:28cc:b0:398:bada:832b with SMTP id 98e67ed59e1d1-39e59a2b8d7mr2990057a91.6.1789725484029; Fri, 18 Sep 2026 02:58:04 -0700 (PDT) Received: from hu-uchheda-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-144ce02b063sm2892970c88.9.2026.09.18.02.57.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Sep 2026 02:58:03 -0700 (PDT) From: Umang Chheda To: andersson@kernel.org, konradybcio@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, richardcochran@gmail.com, Borislav Petkov , Catalin Marinas , Will Deacon , Lorenzo Pieralisi , Sudeep Holla , "Rafael J . Wysocki" , Len Brown , Tony Luck , Robin Murphy , Peter Zijlstra , James Morse Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-edac@vger.kernel.org, Ruidong Tian , umang.chheda@oss.qualcomm.com, avaneesh.dwivedi@oss.qualcomm.com Subject: [PATCH v3 1/5] dt-bindings: arm: ras: Introduce ARM RAS error sources Date: Fri, 18 Sep 2026 15:27:42 +0530 Message-Id: <20260918095746.3347893-2-umang.chheda@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260918095746.3347893-1-umang.chheda@oss.qualcomm.com> References: <20260918095746.3347893-1-umang.chheda@oss.qualcomm.com> 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 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE4MDEzNyBTYWx0ZWRfX0Okwg/Bb5ZuN oyG/87/y0U6zJ2SITx7ozcOC9fPArAq7Nr9ZVG/NVOp8h/Ui2t9hB5Gxbh5H+Frw5wKxnamxfMs kqZDPIZRxMLD7ldz2ktB0owLwipGgBLjGTde0rQHVldR5qOQsHmBeQ00lVhjJrx6d/Xp55ctOQi 5/PWI4Nlvty0vAay4MOH7fevedIUSVwlCrvD5WY1ju+QXbyd6TOQf0PH1HAtzcqlZZy6q3kcL6m MBDsVkHAIDUwcyBPC7KhmKB7PejiKyZTJq889K8Ux7RTeYv8+RYIOM5ih1cOUBinwujqSsbX5js 1BGhJlzVG35fpWq3hswdafuadqNoZeMWk3CtV135bYLqNRYxlKBwu5lIgkfi4IJnyFJfjd3VsMp FDgVnX3gnhTHTJbPq91SfQfnnKoiDcG4KDl9KJrTTc7+jorAUYLojmDpr0YYaeFtc6DyMKgzRme S7Ec7ulGOSycMm81gmw== X-Proofpoint-GUID: i1vyR8jqjbbOkomJOB--uIKKE15MlwvC X-Authority-Analysis: v=2.4 cv=bYP+w+PB c=1 sm=1 tr=0 ts=6aad0b2d cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=gEfo2CItAAAA:8 a=EUspDBNiAAAA:8 a=Lrng1kJLq-4Mmy5ilNsA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 a=sptkURWiP4Gy88Gu7hUp:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE4MDEzNyBTYWx0ZWRfXwefY6xXQrSc+ N8oPApcekiHzWcSWJqABdtIh/qVcABhtSWUeh4PG1cIKxGd8oYirSvD1R4KSdJDsNj70nypogl8 oJWkHNto0zbtzImQnUeTHz8aQhF7JFI= X-Proofpoint-ORIG-GUID: i1vyR8jqjbbOkomJOB--uIKKE15MlwvC X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-18_03,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 impostorscore=0 bulkscore=0 clxscore=1015 suspectscore=0 spamscore=0 lowpriorityscore=0 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609180137 ARMv8 and later processors implement the RAS (Reliability, Availability and Serviceability) extensions, exposing hardware error records through a standardised register interface. Add Device Tree bindings to describe RAS error sources. Signed-off-by: Umang Chheda --- .../devicetree/bindings/arm/arm,ras.yaml | 235 ++++++++++++++++++ include/dt-bindings/arm/arm,ras.h | 11 + 2 files changed, 246 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/arm,ras.yaml create mode 100644 include/dt-bindings/arm/arm,ras.h diff --git a/Documentation/devicetree/bindings/arm/arm,ras.yaml b/Documenta= tion/devicetree/bindings/arm/arm,ras.yaml new file mode 100644 index 000000000000..8bff222f77c3 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/arm,ras.yaml @@ -0,0 +1,235 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/arm/arm,ras.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: ARM RAS error source + +maintainers: + - Umang Chheda + +description: | + ARMv8 and later processors implement the Reliability, Availability and + Serviceability (RAS) extensions. Hardware blocks that support RAS expose + one or more error records through a standardised register interface. Ea= ch + error record captures information about a detected hardware error (cache + ECC fault, TLB parity error, interconnect error, etc.) and can optionally + signal the OS via an interrupt. + + Each DT node described by this binding represents one RAS error source = =E2=80=94 + a hardware block that exposes a set of error records. Error records are + accessed either through system registers (for processor-local resources + such as L1/L2 caches and TLBs) or through a memory-mapped register window + (for shared or off-core resources such as L3 caches, SMMUs and GICs). + +properties: + compatible: + description: + Identifies the class of hardware block this error source belongs to. + arm,ras-processor covers processor error sources (cache, TLB, etc.). + arm,ras-smmu covers SMMU error sources. + arm,ras-gic covers GIC error sources. + enum: + - arm,ras-processor + - arm,ras-smmu + - arm,ras-gic + + reg: + description: + Register windows for this error source. When absent the error recor= ds + are accessed through system registers (ERRSELR_EL1 + ERX*_EL1). + When present, each range must have a corresponding entry in reg-name= s. + The primary error-record window is named "err-records"; additional + optional windows are named "err-group", "fault-inject", and "irq-con= fig". + minItems: 1 + maxItems: 4 + + reg-names: + description: + Names for the register windows listed in reg. The first entry must be + "err-records" for the primary error-record window. + err-group is the error group status register window (ERRGSR). + fault-inject is the fault injection register window (ERXPFG*). + irq-config is the interrupt routing configuration window. + minItems: 1 + maxItems: 4 + items: + enum: + - err-records + - err-group + - fault-inject + - irq-config + + interrupts: + minItems: 1 + items: + - description: + Fault Handling Interrupt (FHI), fired when a corrected error + counter overflows or a deferred error is detected. + - description: + Error Recovery Interrupt (ERI), fired when an uncorrected + recoverable error is detected. + + interrupt-names: + minItems: 1 + items: + - const: fhi + - const: eri + + arm,group-format: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Layout of the memory-mapped error-record group window. + Determines the number of ERRGSR registers available. + A 4 KiB group provides 1 ERRGSR, a 16 KiB group provides + 4 ERRGSRs, and a 64 KiB group provides 14 ERRGSRs. + Each ERRGSR reports status for up to 56 error records. + enum: [0, 1, 2] + + arm,num-records: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Total number of error records in this error source, including both + implemented and unimplemented slots. + minimum: 1 + + arm,record-impl: + $ref: /schemas/types.yaml#/definitions/uint64-array + description: + Bitmap of implemented error records. Bit N set to 1 means error + record N is present and active in this error source. Bit N set to 0 + means record N is not implemented and must be skipped. The array + length must equal the number of ERRGSRs implied by arm,group-format + (1 element for 4K, 4 for 16K, 14 for 64K). For system-register + nodes (no reg property) a single u64 element is used. + minItems: 1 + maxItems: 14 + + arm,status-reporting: + $ref: /schemas/types.yaml#/definitions/uint64-array + description: + Bitmap indicating which implemented error records require direct + polling of ERX_STATUS by software. Bit N set to 1 means error + record N is not represented in an ERRGSR status register and must + be checked by reading ERX_STATUS directly. Bit N set to 0 means + error record N is represented in an ERRGSR status register and can + be discovered through the ERRGSR scan path. + For system-register error sources (no reg property), ERRGSR + registers are not present. Therefore all implemented error records + must be polled directly and arm,status-reporting shall be identical + to arm,record-impl. + The number of array elements shall match arm,record-impl. + minItems: 1 + maxItems: 14 + + arm,addressing-mode: + $ref: /schemas/types.yaml#/definitions/uint64-array + description: + Bitmap indicating the address type reported in ERR_ADDR for each + implemented error record. Bit N set to 1 means error record N + reports a Logical Address (LA); bit N set to 0 means it reports a + System Physical Address (SPA). When absent all records are assumed + to report SPA. The number of array elements shall match + arm,record-impl. + minItems: 1 + maxItems: 14 + + # Processor error source properties (arm,ras-processor only) + arm,cache-ref: + $ref: /schemas/types.yaml#/definitions/phandle + description: + Phandle to the cache node (L1, L2, or L3) that this processor error + source monitors. + + # SMMU error source properties (arm,ras-smmu only) + arm,smmu-ref: + $ref: /schemas/types.yaml#/definitions/phandle + description: + Phandle to the SMMU node that this error source monitors. + + # GIC error source properties (arm,ras-gic only) + arm,gic-ref: + $ref: /schemas/types.yaml#/definitions/phandle + description: + Phandle to the GIC node that this error source monitors. + +required: + - compatible + - arm,num-records + - arm,record-impl + - arm,status-reporting + +dependentRequired: + reg: ['arm,group-format'] + +allOf: + - if: + properties: + compatible: + contains: + const: arm,ras-processor + then: + required: + - arm,cache-ref + else: + properties: + arm,cache-ref: false + + - if: + properties: + compatible: + contains: + const: arm,ras-smmu + then: + required: + - arm,smmu-ref + else: + properties: + arm,smmu-ref: false + + - if: + properties: + compatible: + contains: + const: arm,ras-gic + then: + required: + - arm,gic-ref + else: + properties: + arm,gic-ref: false + +unevaluatedProperties: false + +examples: + - | + #include + #include + + cache-error-l2 { + compatible =3D "arm,ras-processor"; + arm,num-records =3D <1>; + arm,record-impl =3D /bits/ 64 <0x1>; + arm,status-reporting =3D /bits/ 64 <0x1>; + arm,cache-ref =3D <&l2_0>; + interrupts =3D ; + interrupt-names =3D "fhi"; + }; + + - | + #include + #include + + gic-error@17a00000 { + compatible =3D "arm,ras-gic"; + reg =3D <0x0 0x17a00000 0x0 0x10000>; + reg-names =3D "err-records"; + arm,group-format =3D ; + arm,num-records =3D <1>; + arm,record-impl =3D /bits/ 64 <0x1>; + arm,status-reporting =3D /bits/ 64 <0x0>; + arm,gic-ref =3D <&gic>; + interrupts =3D ; + interrupt-names =3D "fhi"; + }; diff --git a/include/dt-bindings/arm/arm,ras.h b/include/dt-bindings/arm/ar= m,ras.h new file mode 100644 index 000000000000..cd11e360fdae --- /dev/null +++ b/include/dt-bindings/arm/arm,ras.h @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ + +#ifndef _DT_BINDINGS_ARM_RAS_H +#define _DT_BINDINGS_ARM_RAS_H + +/* arm,group-format - error record group register window layout */ +#define ARM_RAS_GROUP_4K 0 /* 4 KiB, 1 ERRGSR */ +#define ARM_RAS_GROUP_16K 1 /* 16 KiB, 4 ERRGSRs */ +#define ARM_RAS_GROUP_64K 2 /* 64 KiB, 14 ERRGSRs */ + +#endif /* _DT_BINDINGS_ARM_RAS_H */ -- 2.34.1 From nobody Fri Sep 25 00:40:51 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2CD9C434E21 for ; Fri, 18 Sep 2026 09:58:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789725497; cv=none; b=m9YNodw5p0kMWEvRp8Te6OiSODseCPVwM9/4rzjXvwiHsDik80EZciiqkL4l7c3m+MGTlphbDLLpHNUmXFrQLAoDQEDTTk3hFVeKfAGjIDfF4Vs/rgIrCCmWuEepXbpONyrVIpcVRhx/DFIJds7o4zEa2PZXARxcIQBAOA8EXO4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789725497; c=relaxed/simple; bh=ders7iAESZ8866+2mV9G60bzz+7+iAGfS0z3TsmC590=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=K6Y0nSKDItSRFzorDMqOzgJDiEN/uT+pnBBmgzz+SuBtozXxa3B74aIFrilVoNFTZeZ5XQpqwOqsT/VcJ69jUooO2UmfE8X7bm4AWL0pCuqoJPwuurPlWB/siAOHUkTVadWKH4QxX1vGNhQ4AJENbI3vm9vHpFSyHr+3E+n4viA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=JdUkMUfN; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=HdZu56kb; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="JdUkMUfN"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="HdZu56kb" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68I9dPUs250737 for ; Fri, 18 Sep 2026 09:58:14 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= GnPAR6N5gn0W24ncV4H6uFc8PxtNqj0D9RFZF8Nw5FE=; b=JdUkMUfNDS0X7mJ7 m26h28qi6+e5jhhc/lnD1lcGyHSY9Fi4+Ukqr7oCIsfAOfqpFuBo/aVdWo9Q13ZX vcN1l2QSty4Dgvmw9qTCpDEHustZcJHALDK6WCKMngCn38b7/hutcx+eEh4pPhob swO/B1YFC8PLzSP0ifrN35RnYg6SZ3ad7eFu1J3qELSQ+jvedIv4YoM39IqDoIOf Eocey6PgeVeudqJ7MycIBsoAuFst4mLMRwRUMq1cjAIU5x5BXXcmp8ujlH07uIEV 6pXgR3JUWHnFN8Xp8n15/8AzhBUA90n71a51h1zcyK4z/576txJ3E7Qebi3IKkz5 +jpzGQ== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gs23909f0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 18 Sep 2026 09:58:13 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2d0e306c7d0so1193675ad.1 for ; Fri, 18 Sep 2026 02:58:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789725493; x=1790330293; darn=vger.kernel.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to:content-type; bh=GnPAR6N5gn0W24ncV4H6uFc8PxtNqj0D9RFZF8Nw5FE=; b=HdZu56kbGB9rsi1QX8c4iOpl65BnarpwB7oAC6ks4aHgO4hii1KJ5lV+eGkrIabBX1 kIx5FTPs1ZCPGDqYnIa8sNUUkSLhqYBQ9O9OY2qwsDXVEo9NOgo05J8AwgD8GWKhGZha Vts4KohH5VAh+94F5WYVyf7c0HTzxxnXg99TJs9tSktp553h28cS22WM60C6SWDC+wBo mkzNoqlp+5kwMwwGa5R5Z4k0IFyWUgrK9hX7OhrYE8oycvPur3Dn/1pWzwpjLN3ueHWT SU8Sryjoo5p2S9Q9+I/pDzXMFTREsDXtWZS8gah6cSrdYhnriexattxr25UPbm1QE+m7 JHmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789725493; x=1790330293; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=GnPAR6N5gn0W24ncV4H6uFc8PxtNqj0D9RFZF8Nw5FE=; b=ymO0fPdHkXDfzTkAyj/w/9foCwhBBut4tDf7OoFN0/5fQ0IRctsj3uG6ZBJYviGtAV J8B0tni3VwBUBWGYwuLRrtpi+HjgnhQ558vkLsYZRsID6apEYsEad1NuulJicvW51T7r 0rodp1tfjiXIVkbGvcMyuukCNEyIINmFK8XhVuKwhFDMSU4aEiYtT4Y2kL3YAe3vSAkD 183dwjg2MK27M7e9GxA3bsZSgJopAYldvql/wHFJ/zjuev+D54pXpP+bmfv3ITY7eAq8 2ZZIdxSeihIFWHzatpNammPs+KblcMs7F55adpu4m7Qwi1jBcrYF+yhURKDgPA/Hq6dl podw== X-Forwarded-Encrypted: i=1; AKwUvByw77hDS+pwrHLD8FpLoQXK+pW+b+4qqRwUnwNvA5EE3kknpmD10VKpiGNX2D12pfRTXBi0t5k5iQupC8Q=@vger.kernel.org X-Gm-Message-State: AFuF++ko15Tf1eH9bSCYUnB0IBmg8zBa5EHnuRYdPfyhTNVDsk4Hd/t1 /JglTL/m3wsCMIUCqom/qiy7Irw2ZcWcZfOM8bkSNP83CwU6eqrmrRa3hiyLN9uSEgAGjtC1Jna qvlBr6TlTRB/y+mO4ueHEln7m0UrvuwI48l37awEAzXRRtNnXbFnUquhUh4+cfIXht7Q= X-Gm-Gg: AYBFou0aArg97tpFBIlF0gCH6nSocPp3wYUueUL+vKNpVL9ivxOIXElzY2Dm3DKRFX3 +inWmP6yNDqeuhlc7p57lR3vYWE0GIdEMcfm6/SJfa6d3NN+5IEf26gNEog2JSFB/nNhPd8RPRf 8HSJKVgPJWKRNndb65pYqD90yPuYqMiQ2yKxnw+wPB0j45lQbQvIM0OsZkBAUBuFjN9U4Nkh/mA /M/Yj50PQKo2MUjsE8XYJ6TvSoE2g1jzdVCh72NSKXkIugrakfknus3u9NAf+DXfg9BntQPDciC dXpwztXSU6YJRoBj/GQIFBHLeX9ch1RtR63qM9Z+L3Q7xuUgZlsI1Wf1nX7wrf42+Er5zsdgbnB ebs5bQqIy4s1PFpLtPI42esty8pBKCFo= X-Received: by 2002:a17:90b:2ccb:b0:39e:2f57:67c8 with SMTP id 98e67ed59e1d1-39e599d6c1dmr3038889a91.4.1789725492473; Fri, 18 Sep 2026 02:58:12 -0700 (PDT) X-Received: by 2002:a17:90b:2ccb:b0:39e:2f57:67c8 with SMTP id 98e67ed59e1d1-39e599d6c1dmr3038848a91.4.1789725491912; Fri, 18 Sep 2026 02:58:11 -0700 (PDT) Received: from hu-uchheda-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-144ce02b063sm2892970c88.9.2026.09.18.02.58.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Sep 2026 02:58:11 -0700 (PDT) From: Umang Chheda To: andersson@kernel.org, konradybcio@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, richardcochran@gmail.com, Borislav Petkov , Catalin Marinas , Will Deacon , Lorenzo Pieralisi , Sudeep Holla , "Rafael J . Wysocki" , Len Brown , Tony Luck , Robin Murphy , Peter Zijlstra , James Morse Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-edac@vger.kernel.org, Ruidong Tian , umang.chheda@oss.qualcomm.com, avaneesh.dwivedi@oss.qualcomm.com Subject: [PATCH v3 2/5] arm64: ras: Add Device Tree frontend Date: Fri, 18 Sep 2026 15:27:43 +0530 Message-Id: <20260918095746.3347893-3-umang.chheda@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260918095746.3347893-1-umang.chheda@oss.qualcomm.com> References: <20260918095746.3347893-1-umang.chheda@oss.qualcomm.com> 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 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE4MDEzNyBTYWx0ZWRfX44QlFRRzo0iD VCDPnnkGpWOz/6vpgjIXcvaI5Mw9xQd0/q3SwkudHSHUBb62tCK9qAgy/6tkQkWue0PqJqHULn2 Hj/2HYRyiBFlZbTvJWWtL05dHfUQmvs= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE4MDEzNyBTYWx0ZWRfX1+gUxQQnQvoq jE2fJC/Y0fLPwwLIQkiC0Q7OZl5r8k+gT8HchdKg+9cpf5pG3U0ml6XudSxcNssXKEGoojgP2l1 9YX2KA4CcmPEdTgKGiFZS3HFcHu7y+ibkwX91fcXdjr4e2j/mgqfQvv58lzd7npvJPR/CysiHUk /xsajOQhfGSOwIvVr4k13gWyQA2tErhhhO5CCksiKaV82XvG2xTzHe7nwtqGPJw5dl17gUIQk/U I1gSPeYeuYTEO/EGHNJwbDkQPfTaKfPcNTFV01l+4zFM7SHfXd3d2sgl7c/l0SHffyxVAhzUqFa x7rH74lZqMsW+wwwdUj3Zkxz4ejNktq7ez5WfEkWJomScGSgOeXIRkb9W9Rv5r/vw61EgGVXREU Rm+m9hHy9TsiaWUQ1gq+lXlTh47in08DRw2QhogQOVNwHzjjYmLzRQS02CP/CtItuzF5i4Ic2Zz Dk76jyAovvC3mvXrFPg== X-Proofpoint-ORIG-GUID: EyJ8anGExupmPwDkBO3jPG1n6C-zR5O6 X-Authority-Analysis: v=2.4 cv=I7zw19gg c=1 sm=1 tr=0 ts=6aad0b35 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=aBVxLUBa_37c2xUlyAEA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-GUID: EyJ8anGExupmPwDkBO3jPG1n6C-zR5O6 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-18_03,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=0 bulkscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 adultscore=0 phishscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609180137 Add a Device Tree frontend for the ARM64 RAS driver, allowing it to be used on platforms without ACPI firmware. The error sources defined in DT are registered as arm64_ras platform devices at boot. The frontend produces the same software fwnode properties as the ACPI path, so the core driver probes DT and ACPI nodes identically without any firmware-specific knowledge. Signed-off-by: Umang Chheda --- drivers/ras/arm64/Kconfig | 25 ++- drivers/ras/arm64/Makefile | 2 + drivers/ras/arm64/ras-of.c | 383 +++++++++++++++++++++++++++++++++++++ 3 files changed, 405 insertions(+), 5 deletions(-) create mode 100644 drivers/ras/arm64/ras-of.c diff --git a/drivers/ras/arm64/Kconfig b/drivers/ras/arm64/Kconfig index dcdeaa216d67..8bdb219bc90f 100644 --- a/drivers/ras/arm64/Kconfig +++ b/drivers/ras/arm64/Kconfig @@ -1,16 +1,31 @@ # SPDX-License-Identifier: GPL-2.0 # -# ARM Error Source Table Support +# ARM RAS driver # # Copyright (c) 2025, Alibaba Group. # +config ARM64_RAS_DT + bool "ARM64 RAS Device Tree support" + depends on ARM64_RAS_EXTN && OF + help + Enable Device Tree support for the ARM64 RAS driver. + + When selected, RAS error sources described in the Device Tree + (arm,ras-processor, arm,ras-smmu, arm,ras-gic etc) are registered + as platform devices at boot, allowing the driver to be used on + platforms without ACPI firmware. + config ARM64_RAS_DRIVER tristate "ARM64 RAS Driver" - depends on ARM64 && ACPI_AEST && RAS + depends on ARM64 && (ACPI_AEST || ARM64_RAS_DT) && RAS help - This is the RAS driver for the arm64 architecture. It depends on - the Arm Error Source Table (AEST) to provide basic register and - interrupt information. + This is the RAS driver for the arm64 architecture. It uses the + ARMv8 RAS extension register interface to discover, configure, + and handle hardware errors from processor caches, SMMUs, and GICs. + + On ACPI systems the error source topology is provided by the AEST + ACPI table (requires ACPI_AEST). On Device Tree systems it is + provided by "arm,ras-*" nodes in the DT root (requires ARM64_RAS_DT). If set, the kernel will report and process hardware errors. diff --git a/drivers/ras/arm64/Makefile b/drivers/ras/arm64/Makefile index 6897798f7314..aee2f9de37f6 100644 --- a/drivers/ras/arm64/Makefile +++ b/drivers/ras/arm64/Makefile @@ -7,3 +7,5 @@ arm64_ras-y +=3D ras-sysfs.o arm64_ras-y +=3D ras-inject.o arm64_ras-y +=3D ras-cmn.o arm64_ras-y +=3D ras-storm.o + +obj-$(CONFIG_ARM64_RAS_DT) +=3D ras-of.o diff --git a/drivers/ras/arm64/ras-of.c b/drivers/ras/arm64/ras-of.c new file mode 100644 index 000000000000..d876031f2474 --- /dev/null +++ b/drivers/ras/arm64/ras-of.c @@ -0,0 +1,383 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2026 Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include + +#undef pr_fmt +#define pr_fmt(fmt) "DT RAS: " fmt + +/* Maximum number of software fwnode properties per RAS node */ +#define RAS_OF_MAX_PROPS 20 + +static const unsigned long ras_of_type_processor __initconst =3D + ACPI_AEST_PROCESSOR_ERROR_NODE; +static const unsigned long ras_of_type_smmu __initconst =3D + ACPI_AEST_SMMU_ERROR_NODE; +static const unsigned long ras_of_type_gic __initconst =3D + ACPI_AEST_GIC_ERROR_NODE; + +static const struct of_device_id ras_of_match[] __initconst =3D { + { .compatible =3D "arm,ras-processor", .data =3D &ras_of_type_processor }, + { .compatible =3D "arm,ras-smmu", .data =3D &ras_of_type_smmu }, + { .compatible =3D "arm,ras-gic", .data =3D &ras_of_type_gic }, + { } +}; + +static const char * const __initconst ras_of_irq_res_names[] =3D { + [ACPI_AEST_NODE_FAULT_HANDLING] =3D AEST_FHI_NAME, + [ACPI_AEST_NODE_ERROR_RECOVERY] =3D AEST_ERI_NAME, +}; + +static const char * const __initconst ras_of_dt_irq_names[] =3D { + "fhi", "eri" +}; + +static int __init ras_of_build_node_data(struct device_node *np, + u8 node_type, int index, + int fhi_virq, + u8 **data_out, u32 *size_out) +{ + *data_out =3D NULL; + *size_out =3D 0; + + switch (node_type) { + case ACPI_AEST_PROCESSOR_ERROR_NODE: { + /* + * Allocate the processor header plus the cache sub-structure. + * resource_type is inferred from the presence of the 'cache' + * phandle: if present the resource is a cache, otherwise it + * is treated as a generic processor resource. + * flags (SHARED/GLOBAL) are inferred from the interrupt type: + * a PPI is per-PE (global); an SPI is shared across a cluster. + */ + size_t total =3D sizeof(struct acpi_aest_processor) + + sizeof(struct acpi_aest_processor_cache); + struct acpi_aest_processor_cache *c; + struct acpi_aest_processor *proc; + struct device_node *cache_np; + u8 pflags; + + proc =3D kzalloc(total, GFP_KERNEL); + if (!proc) + return -ENOMEM; + + cache_np =3D of_parse_phandle(np, "arm,cache-ref", 0); + if (cache_np) { + proc->resource_type =3D ACPI_AEST_CACHE_RESOURCE; + c =3D (struct acpi_aest_processor_cache *)(proc + 1); + /* + * alloc_ras_node_name() reads c->cache_reference as + * the name disambiguator for shared/global nodes. + */ + c->cache_reference =3D cache_np->phandle; + of_node_put(cache_np); + } else { + proc->resource_type =3D ACPI_AEST_GENERIC_RESOURCE; + } + + /* + * Infer scope from the FHI interrupt type: a PPI is + * per-PE (set GLOBAL); an SPI is cluster-shared (set SHARED). + * alloc_ras_node_name() uses flags to choose the name format. + */ + pflags =3D irq_is_percpu(fhi_virq) ? + ACPI_AEST_PROC_FLAG_GLOBAL : + ACPI_AEST_PROC_FLAG_SHARED; + proc->flags =3D pflags; + proc->processor_id =3D (u32)index; + + *data_out =3D (u8 *)proc; + *size_out =3D (u32)total; + break; + } + case ACPI_AEST_SMMU_ERROR_NODE: { + struct acpi_aest_smmu *smmu; + struct device_node *smmu_np; + + smmu =3D kzalloc_obj(*smmu, GFP_KERNEL); + if (!smmu) + return -ENOMEM; + + smmu_np =3D of_parse_phandle(np, "arm,smmu-ref", 0); + if (smmu_np) { + smmu->iort_node_reference =3D smmu_np->phandle; + of_node_put(smmu_np); + } + + *data_out =3D (u8 *)smmu; + *size_out =3D sizeof(*smmu); + break; + } + case ACPI_AEST_GIC_ERROR_NODE: { + struct acpi_aest_gic *gic; + struct device_node *gic_np; + + gic =3D kzalloc_obj(*gic, GFP_KERNEL); + if (!gic) + return -ENOMEM; + + gic_np =3D of_parse_phandle(np, "arm,gic-ref", 0); + if (gic_np) { + gic->instance_id =3D gic_np->phandle; + of_node_put(gic_np); + } + *data_out =3D (u8 *)gic; + *size_out =3D sizeof(*gic); + break; + } + default: + return -EINVAL; + } + + return 0; +} + +/* + * Determine the register access type from the DT node: + * no reg -> system-register access (ERRSELR_EL1 + ERX*_EL1) + * 1 range -> memory-mapped access + * 2+ ranges -> single-record memory-mapped access + */ +static u8 __init ras_of_interface_type(struct device_node *np) +{ + int addr_cells, size_cells, reg_len; + + if (!of_property_present(np, "reg")) + return ACPI_AEST_NODE_SYSTEM_REGISTER; + + addr_cells =3D of_n_addr_cells(np); + size_cells =3D of_n_size_cells(np); + if (addr_cells <=3D 0 || size_cells <=3D 0) + return ACPI_AEST_NODE_SYSTEM_REGISTER; + + reg_len =3D of_property_count_elems_of_size(np, "reg", sizeof(u32)); + if (reg_len <=3D 0) + return ACPI_AEST_NODE_SYSTEM_REGISTER; + + if (reg_len <=3D addr_cells + size_cells) + return ACPI_AEST_NODE_MEMORY_MAPPED; + + return ACPI_AEST_NODE_SINGLE_RECORD_MEMORY_MAPPED; +} + +static resource_size_t __init ras_of_mem_size(u32 gfmt) +{ + switch (gfmt) { + case ACPI_AEST_NODE_GROUP_FORMAT_16K: + return SZ_16K; + case ACPI_AEST_NODE_GROUP_FORMAT_64K: + return SZ_64K; + default: + return SZ_4K; + } +} + +static u32 __init ras_of_virq_to_gsiv(int virq) +{ + struct irq_data *irqd =3D irq_get_irq_data(virq); + + return irqd ? (u32)irqd->hwirq : 0; +} + +static int __init ras_of_attach_fwnode(struct device_node *np, + struct platform_device *pdev, + u8 node_type, u8 itype, u32 gfmt, + int index, int fhi_virq, + u32 fhi_gsiv, u32 eri_gsiv) +{ + u64 rec_impl[14] =3D { }; + u64 stat_rep[14] =3D { }; + u64 addr_mode[14] =3D { }; + u64 err_group_base =3D 0, fault_inject_base =3D 0, irq_cfg_base =3D 0; + struct property_entry props[RAS_OF_MAX_PROPS] =3D { }; + struct resource res; + u8 *node_data =3D NULL; + u32 node_data_size =3D 0; + u32 nrec =3D 1; + int group_len, p =3D 0, i, ret; + + of_property_read_u32(np, "arm,num-records", &nrec); + + switch (gfmt) { + case ACPI_AEST_NODE_GROUP_FORMAT_16K: + group_len =3D 4; + break; + case ACPI_AEST_NODE_GROUP_FORMAT_64K: + group_len =3D 14; + break; + default: + group_len =3D 1; + break; + } + + of_property_read_u64_array(np, "arm,record-impl", rec_impl, group_l= en); + of_property_read_u64_array(np, "arm,status-reporting", stat_rep, group_l= en); + of_property_read_u64_array(np, "arm,addressing-mode", addr_mode, group_l= en); + + /* + * DT binding: bit=3D1 means record IS implemented. + * ras-core.c uses for_each_clear_bit() on record_implemented, so + * bit=3D0 means implemented internally. Invert before storing. + */ + for (i =3D 0; i < group_len; i++) + rec_impl[i] =3D ~rec_impl[i]; + + /* Named MMIO windows =E2=80=94 only present on memory-mapped nodes */ + if (itype !=3D ACPI_AEST_NODE_SYSTEM_REGISTER) { + int idx; + + idx =3D of_property_match_string(np, "reg-names", "err-group"); + if (idx >=3D 0 && !of_address_to_resource(np, idx, &res)) + err_group_base =3D res.start; + + idx =3D of_property_match_string(np, "reg-names", "fault-inject"); + if (idx >=3D 0 && !of_address_to_resource(np, idx, &res)) + fault_inject_base =3D res.start; + + idx =3D of_property_match_string(np, "reg-names", "irq-config"); + if (idx >=3D 0 && !of_address_to_resource(np, idx, &res)) + irq_cfg_base =3D res.start; + } + + ret =3D ras_of_build_node_data(np, node_type, index, fhi_virq, + &node_data, &node_data_size); + if (ret) + return ret; + + props[p++] =3D PROPERTY_ENTRY_U8("arm,node-type", node_type); + props[p++] =3D PROPERTY_ENTRY_U8("arm,interface-type", itype); + props[p++] =3D PROPERTY_ENTRY_U8("arm,group-format", (u8)gfmt); + props[p++] =3D PROPERTY_ENTRY_U32("arm,error-records-count", nrec); + props[p++] =3D PROPERTY_ENTRY_U32("arm,error-records-index", 0); + props[p++] =3D PROPERTY_ENTRY_U32("arm,interface-flags", 0); + props[p++] =3D PROPERTY_ENTRY_U64_ARRAY_LEN("arm,record-implemented", + rec_impl, group_len); + props[p++] =3D PROPERTY_ENTRY_U64_ARRAY_LEN("arm,status-reporting", + stat_rep, group_len); + props[p++] =3D PROPERTY_ENTRY_U64_ARRAY_LEN("arm,addressing-mode", + addr_mode, group_len); + props[p++] =3D PROPERTY_ENTRY_U64("arm,error-group-base", err_group_= base); + props[p++] =3D PROPERTY_ENTRY_U64("arm,fault-inject-base", fault_inje= ct_base); + props[p++] =3D PROPERTY_ENTRY_U64("arm,interrupt-config-base", irq_cfg_ba= se); + props[p++] =3D PROPERTY_ENTRY_U32("arm,fhi-gsiv", fhi_gsiv); + props[p++] =3D PROPERTY_ENTRY_U32("arm,eri-gsiv", eri_gsiv); + + if (node_data && node_data_size) + props[p++] =3D PROPERTY_ENTRY_U8_ARRAY_LEN("arm,node-specific-data", + node_data, node_data_size); + + ret =3D device_create_managed_software_node(&pdev->dev, props, NULL); + + kfree(node_data); + return ret; +} + +static int __init ras_of_init_one_node(struct device_node *np, u8 node_typ= e, + int index) +{ + struct resource res[AEST_MAX_INTERRUPT_PER_NODE + 1] =3D { }; + struct platform_device *pdev; + u32 gfmt =3D ACPI_AEST_NODE_GROUP_FORMAT_4K; + u32 gsiv[AEST_MAX_INTERRUPT_PER_NODE] =3D { }; + int virq[AEST_MAX_INTERRUPT_PER_NODE] =3D { }; + int nres =3D 0, ret, i; + u8 itype; + + itype =3D ras_of_interface_type(np); + of_property_read_u32(np, "arm,group-format", &gfmt); + + pdev =3D platform_device_alloc("arm64_ras", PLATFORM_DEVID_AUTO); + if (!pdev) + return -ENOMEM; + + if (itype !=3D ACPI_AEST_NODE_SYSTEM_REGISTER) { + struct resource mmio_res; + + ret =3D of_address_to_resource(np, 0, &mmio_res); + if (ret) { + pr_err("node %pOF: missing 'reg' for MMIO interface\n", np); + goto err_put; + } + res[nres].name =3D AEST_NODE_NAME; + res[nres].start =3D mmio_res.start; + res[nres].end =3D mmio_res.start + ras_of_mem_size(gfmt) - 1; + res[nres].flags =3D IORESOURCE_MEM; + nres++; + } + + for (i =3D 0; i < AEST_MAX_INTERRUPT_PER_NODE; i++) { + int irq_num =3D of_irq_get_byname(np, ras_of_dt_irq_names[i]); + + if (irq_num <=3D 0) + continue; + + gsiv[i] =3D ras_of_virq_to_gsiv(irq_num); + virq[i] =3D irq_num; + + res[nres].name =3D ras_of_irq_res_names[i]; + res[nres].start =3D irq_num; + res[nres].end =3D irq_num; + res[nres].flags =3D IORESOURCE_IRQ; + nres++; + } + + ret =3D platform_device_add_resources(pdev, res, nres); + if (ret) + goto err_put; + + ret =3D ras_of_attach_fwnode(np, pdev, node_type, itype, gfmt, index, + virq[ACPI_AEST_NODE_FAULT_HANDLING], + gsiv[ACPI_AEST_NODE_FAULT_HANDLING], + gsiv[ACPI_AEST_NODE_ERROR_RECOVERY]); + if (ret) + goto err_put; + + ret =3D platform_device_add(pdev); + if (ret) + goto err_put; + + pr_debug("registered RAS node %pOF as arm64_ras.%d\n", np, pdev->id); + return 0; + +err_put: + platform_device_put(pdev); + return ret; +} + +static int __init ras_of_init(void) +{ + const struct of_device_id *match; + struct device_node *np; + int index =3D 0, ret; + + if (!acpi_disabled) + return 0; + + for_each_matching_node_and_match(np, ras_of_match, &match) { + u8 node_type =3D *(const unsigned long *)match->data; + + ret =3D ras_of_init_one_node(np, node_type, index++); + if (ret) { + pr_err("failed to register RAS node %pOF: %d\n", + np, ret); + of_node_put(np); + return ret; + } + } + + if (index) + pr_info("registered %d RAS error source(s) from DT\n", index); + + return 0; +} +subsys_initcall_sync(ras_of_init); -- 2.34.1 From nobody Fri Sep 25 00:40:51 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9EA1343637C for ; Fri, 18 Sep 2026 09:58:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789725504; cv=none; b=bgQn8seeotfzniaMMOI2VO5HRv9lGMuIvP2JA3ZdMih4dbEZhfxpPvDsWIJ3meY6e3cmE4HYv+d363ral5sVWnNo2ebJ2U9oxymxvZbxe9615tG+ZzMNUy5OEyRdWhDo/IYoou+bdmMaU5RQ9kUqg8kikZSQf3JbRwr+FkeHK3E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789725504; c=relaxed/simple; bh=rjwjd8MC3j9tcGI+w66v3zYxE2b5YPlrubeSBvvd1Kk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=qiI7uZBHaZOsqUvaUzPpFe1VcyEYYUlQCb6xJZsMI67bPYxKfd+1EVOo6gXOh2qouLvG+IuuiJ3wmGIIn2uqpZ2HKDqcQzhZTkQjqqdiUQBCRLa1Ejdg88IOnrYf9/1C+iTvHnVaCdahQAKSP7kOXPuhGr127EW5nwNpcX6oH48= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=In7Xj+qN; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hCi88DH6; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="In7Xj+qN"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hCi88DH6" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68I9dOna250723 for ; Fri, 18 Sep 2026 09:58:21 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=KNdy2nZ6rVa R2TsEyZAuvpi0wx3EJ8LLx6lCNH9aRBU=; b=In7Xj+qNHrzEsoZaZOvInrypXti lKCWfszUvk+lSJ3M3YWd9RA7cHwmlZxuTsHKR0NuHxiDlteoVMsqfA9HHM2m8SFI 2XlgZ1UOKzZ/z2ppTv5xbJ1A5t6/mEf2LHWAXVLYxlMHYOoyY+a96NiiC7LlFmKi LRUMGxFFaDNJa6H6fpujmktIdgG94zvRy1VDJKYceM9dl5b7irxqD1u7MLxlhVZ6 g4mmExVnEJVUTCWgLYBekxvLLrPUE7ekVz80wGYG8yFeK2DaGw+/uFLXzjCsUuMy fsRA/CNbzhxgBQ9q5AfwOMor8DYW7ff1oIq6hVhME/ZX5I++r/sUCAtgbPw== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gs23909fj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 18 Sep 2026 09:58:21 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-38ddc70b9d5so172868a91.3 for ; Fri, 18 Sep 2026 02:58:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789725500; x=1790330300; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=KNdy2nZ6rVaR2TsEyZAuvpi0wx3EJ8LLx6lCNH9aRBU=; b=hCi88DH6zAsfXQpVEt6lhqPwV6iu4DDjkKlqyz3uIdrI4hzCZ3mnl22SyFY68SYgN1 QHwThM6qER65B/AbQecMNcsI8ahDawkDDSxAyhcq03j8hqZ6tmMwvjXrUfsZjPce7ki0 QM6vXqpawMuf+RMvFjCTo4wZ1Dys/VNMP4xPa3yhzBy9gdfh6H7V3bXEYfUO8j06MpSz 14zzmmO5MVMlBBNX2XlRvf6fPXcfIqKHotlgB8AtwdDgUeSdUes4892U0p2ZKRBMm57N BSoHWuS9cnSLYX3ANdK8ejKsD7Tc4IFIzG4fOZi2n6yUooKg1T+tuwp4WlDSP6vLiFM4 rSEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789725500; x=1790330300; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=KNdy2nZ6rVaR2TsEyZAuvpi0wx3EJ8LLx6lCNH9aRBU=; b=R8j4irk28kTeGJ9AHyigSFpVXzGmSiJZ/+CH+4wEIggp4etiKWHfU3zpmMFB8f32GA hOo5K1g+KgOrJ8lNej2R9vaUca/nTitO2YCLwdjr4+bH6zr7nuUsjRyF0GnZDbsfcIIJ QhdpgkwI0IrT54yg7oMOzT9KZD5h2r6Uh9GHzTQ3I9QE4rXSvWhR6/VLtOfc/NnXjRan CO6fvFYpLUeG3FsXsV0+e4/GDj107G5G1wR/GaELjjCfEk36t/VSxLjCNyC6BzmAWpmV QpHiHWXV5hRhgOPy3zjAL4OLYXsE6OYG1rLRJ/eqCxobyg1IfQQ/iDaaASr//dQvi5vX HqMQ== X-Forwarded-Encrypted: i=1; AKwUvBwNbg3xXyCLdLrHtdh2mQ4BnZRBrB71aYohLqhDo5q29biDSj55XkrPSqkPlf2t7M8wZIb0lWKwaw4PvcI=@vger.kernel.org X-Gm-Message-State: AFuF++mn2PANKsd5I9m/P2tgp6/ryOXoRRJrKFrVFILSIQmoAmryYLPz AjkxAYY8FGkCMu2hJrSykIYlrGBVijhnP2jVss6UCJHKqV+9FC0B3LQeUzVrpZ7vBar8ydFqIhV B7QYbV2uWhTTpnSVOF4rym3/jKRYRuYbb6tBLde2y92ajbkQmIOiFchVg5XiohboqbPs= X-Gm-Gg: AYBFou0BHr5uqlrKIuVIPRGz2kxU7b42Y4Ob32fpv3ULtEA+LtxaNhX6oEY58g0x3pL EOc2eiE47qlwoyW1D5vcUwpwiDZZ6F6jP4emKUyHbrMmnkDOgLTN42gFRoWHLEEBWOq+8VCkPZ2 woiIelac51VJbj8JOD4H/BmYox0yDVii2o15nuI/HuUpdC0ggdwm3R0WBLSt1OJ5SE0dZQ81Hxs ibchECkKAX25aOv367pGJ3KiAEJV2qbVdE8Ytk00WBH8OsSGp6bRP2ZY45a8twDoFKWajxUe+6I YYMFOmLFXek2Sul95BV1tF1ZMI4pdUDL1etcfAeNLukkD1OcyRhz8JqVCnI8zmpGWL3tsIY58lT WYhjd2iyeCcnavAIM5yVe2WVrxmkYaFk= X-Received: by 2002:a17:90b:17d1:b0:39e:4546:fb1e with SMTP id 98e67ed59e1d1-39e598d6381mr2701721a91.4.1789725500349; Fri, 18 Sep 2026 02:58:20 -0700 (PDT) X-Received: by 2002:a17:90b:17d1:b0:39e:4546:fb1e with SMTP id 98e67ed59e1d1-39e598d6381mr2701687a91.4.1789725499857; Fri, 18 Sep 2026 02:58:19 -0700 (PDT) Received: from hu-uchheda-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-144ce02b063sm2892970c88.9.2026.09.18.02.58.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Sep 2026 02:58:19 -0700 (PDT) From: Umang Chheda To: andersson@kernel.org, konradybcio@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, richardcochran@gmail.com, Borislav Petkov , Catalin Marinas , Will Deacon , Lorenzo Pieralisi , Sudeep Holla , "Rafael J . Wysocki" , Len Brown , Tony Luck , Robin Murphy , Peter Zijlstra , James Morse Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-edac@vger.kernel.org, Ruidong Tian , umang.chheda@oss.qualcomm.com, avaneesh.dwivedi@oss.qualcomm.com, Faruque Ansari Subject: [PATCH v3 3/5] arm64: dts: qcom: monaco: add RAS error source nodes Date: Fri, 18 Sep 2026 15:27:44 +0530 Message-Id: <20260918095746.3347893-4-umang.chheda@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260918095746.3347893-1-umang.chheda@oss.qualcomm.com> References: <20260918095746.3347893-1-umang.chheda@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE4MDEzNyBTYWx0ZWRfX8/K2+QcR+tdD 96j3r/3HnSXYzRFrnaAulBdmGkF8qeAdPO4U6d6C855t6Fvl5Z6TdhUfxI58VeuFaF7c+iRKOuk b26uB+0oEx2v3FqTzO9y26pofjb8eoM= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE4MDEzNyBTYWx0ZWRfX2DKmBgch4EVP xf0pOlAs7e3RU0DYAIisBG6j7JbEQ5Rjatr6h0s5JobwPCXT218Pa6UeGQMPgKTNgvEo6Dv7HqB fmuYIDV/qAi4CnJ6gh13QdtOSn9Y0vKG13o8YE83Jahal15eXEfddyOMqnRAdzBP38947NpOKMu /T3qdU/rCZ83Mu4cpidPhbJS9PqZZcAQmr3N393ZUtcST8fgsj8LNiTnKlbvzN1dfOV8X65TdQh 874OHoVybMVZRt4dYDh4W/MMy/w6uKvaCRBIauGFIUfzej0UqEUPrUqEDOiK/XWxXmdlK2hM6Oz /QFAJZA013PnSJuYxthNmRQhvWIAe8mtL0dkLJeEKSk7M4KBhiJ7Kp+0oeoiBLzCGiFWan5JSzf W8j9lKBaB79a8TQlOaCzlcxLsZHBllM1xRZCZneviQdid6YQ0HWrMkbMfhQ8pvQy9F/4Iv0gX6v u1gPOP8F9DVf5K2dXzg== X-Proofpoint-ORIG-GUID: y7l6nShQMob6ePOSNnVyEd6aryoBW3Sw X-Authority-Analysis: v=2.4 cv=I7zw19gg c=1 sm=1 tr=0 ts=6aad0b3d cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=KdVUwichBgNWhWzcVTwA:9 a=rl5im9kqc5Lf4LNbBjHf:22 X-Proofpoint-GUID: y7l6nShQMob6ePOSNnVyEd6aryoBW3Sw X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-18_03,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 suspectscore=0 bulkscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 adultscore=0 phishscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609180137 Content-Type: text/plain; charset="utf-8" ARM Reliability, Availability and Serviceability (RAS) enables processor components(for eg cache, tlb etc) to record and signal hardware faults through architected error records and fault handling interrupts. This allows software to detect, report and, where possible, recover from hardware errors. The Monaco CPU subsystem implements RAS error records for the L1/L2 cache hierarchy and the shared L3 caches. Describe these error sources in Device Tree so that the ARM RAS framework can discover them and handle cache-related error reports. Co-developed-by: Faruque Ansari Signed-off-by: Faruque Ansari Signed-off-by: Umang Chheda --- arch/arm64/boot/dts/qcom/monaco.dtsi | 30 ++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/monaco.dtsi b/arch/arm64/boot/dts/qco= m/monaco.dtsi index 395d32d36844..1728932e52b0 100644 --- a/arch/arm64/boot/dts/qcom/monaco.dtsi +++ b/arch/arm64/boot/dts/qcom/monaco.dtsi @@ -617,6 +617,36 @@ scm: scm { }; }; + l2-cache-error { + compatible =3D "arm,ras-processor"; + arm,num-records =3D <1>; + arm,record-impl =3D /bits/ 64 <0x1>; + arm,status-reporting =3D /bits/ 64 <0x1>; + arm,cache-ref =3D <&l2_0>; + interrupts =3D ; + interrupt-names =3D "fhi"; + }; + + l3-cluster0-error { + compatible =3D "arm,ras-processor"; + arm,num-records =3D <2>; + arm,record-impl =3D /bits/ 64 <0x2>; + arm,status-reporting =3D /bits/ 64 <0x2>; + arm,cache-ref =3D <&l3_0>; + interrupts =3D ; + interrupt-names =3D "fhi"; + }; + + l3-cluster1-error { + compatible =3D "arm,ras-processor"; + arm,num-records =3D <2>; + arm,record-impl =3D /bits/ 64 <0x2>; + arm,status-reporting =3D /bits/ 64 <0x2>; + arm,cache-ref =3D <&l3_1>; + interrupts =3D ; + interrupt-names =3D "fhi"; + }; + memory@80000000 { device_type =3D "memory"; /* We expect the bootloader to fill in the size */ -- 2.34.1 From nobody Fri Sep 25 00:40:51 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3EB0440F730 for ; Fri, 18 Sep 2026 09:58:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789725513; cv=none; b=F0hDAPH4XRCRHQt3xHQRX06Gue+0CR4jVsdxw5/D18AEWtgdqLKhDMrymOgrY43zLre8StVX3L3wn+YybPeUCNHLwF+uqH8felu8FY2i3Dl6sVwDR7MgR01kg855k1wScC9mPWsuNOeckI9YfFCzBCO7winYntoHO5WenvJpZRc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789725513; c=relaxed/simple; bh=thg+8b9iV4ShIOJd22mpbdVCfQsSk4c1tf9LZk+8W80=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=XHrABbJjhNgyrF85pX6gkjpaNynV2MPOIe0CsepwSVr901VnPam9z7JJHsKkzhfPJF6vbN60Wdl4giPMkftpNHVE8NsQk3UVgfDRx09G094T9EgGKoNtrSNY5O8H/0HwvP78nIRAkQ0oAOMagnJfqu6m/5gxvVN4l91Qeqf338s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=SapI4cAb; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=JTFzR5AL; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="SapI4cAb"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="JTFzR5AL" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68I9dZwA705525 for ; Fri, 18 Sep 2026 09:58:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=MPqb3+URtlx zlWmzoe0vwUAXTbEeEEshu1TFHhySW1w=; b=SapI4cAbRRsm187yTYFDRzsGCC5 0qNsF786NSovxp89rbrNOnYpeUriIATkQ2S54bXNk1g09hgfJOnGZA1zQ3ZBwd2p jwI+Lfj8i26DA6c6z6kc3Wn+GeBcU9P2cUWIfsIdvsNihrimyzjGEQY2v6jsUjyp EXWO0thLV5Ih7TgVF77dT1e3QzvoRyFq6haXSPDJjS3UUYtn7OY0FbQ8bhXrI5jN 0XVRWw/qXndOuLk4wtigzF9im6AplgfC8YHeOLSpHvleRHRJVFbagZ4/JF+uR17A CMO30r1bLrhyZ6KIl42Yo8dR5hzpqoHK6GcL0ZgExCaA8qqzy8PvvqRD1Ug== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4grxp2s66n-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 18 Sep 2026 09:58:29 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-39b8eb84685so158864a91.0 for ; Fri, 18 Sep 2026 02:58:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789725508; x=1790330308; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=MPqb3+URtlxzlWmzoe0vwUAXTbEeEEshu1TFHhySW1w=; b=JTFzR5ALJsUd9aJ9lgEy951DrwXTZt3z8d2TzzBPP7KJA2CBt5ldrji3sbLmo9y7I3 seK55UVlRlqBxChnZLrLGFia2uJmph9t8UKNoXWhXnRErveKrzsz1G/nBvxbCaJ5+uE9 87F0eOGHhlzUC3LjiAzptSQWbG/f5FzhAf8V+vdplqs8k0ppAsFSMLNvnpc5gUA0Kcui bVSLR/3VBkUbI2NOqYMG2SuMF70cuvDu6uzEmjuH0tZZPS2whiIEdvK/eQouwiX7myy2 hFMAfQD7kLIzozNUYDgAQWP5w1Qs+FIRXOmalAvEA/LkXzdSmkBO7/qVOlkgjQgwFghU pP7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789725508; x=1790330308; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=MPqb3+URtlxzlWmzoe0vwUAXTbEeEEshu1TFHhySW1w=; b=DjgxeWh5/CRRbKfRIQw+zoW2jIzbvE4U6T3CzMD103ippCO1gBCDrFGvI3O9kSkvix sS+JCp0u4emntUg1cIJuThZqKXP1cmgOe+Cdiu1IMc8SrHDHtvYELc1HgRAVvatJpCbY sBwyiglhacVe96PNORtIkR951P6np5W4Twa3TcWTo5nIpS/pJDY7dJ6oBg9MYOE78Tu7 I5XaSQMmoXNqIn+1XfloCgXm6usm9FZG6MyTt2ewcU+1UWaZlLlqEVQc0el1xryxCCYN 7g3xI2AyaLRoASO13JQHJyqvelbkY7bdzF7xaLkRj++Y0dsKs9bQyHdv2pkGH+RhMDps wEyQ== X-Forwarded-Encrypted: i=1; AKwUvByQbyy9+AEEeOXkm21ToN9bqs2g/AGyiRUqQ0eMxytL1GHMdA/fb4ayleJRNGBiLlLfuC7LRBgZVbWBXiw=@vger.kernel.org X-Gm-Message-State: AFuF++lEVo+b7ksGKlm6xpMHTU2RCKtKOHLFnOSz7I143DGRJ3rgKhkO Off11BJBakeyHkPOB5m7Sf3BZ0WXI4Q0uDxcVhaMmqcI0kMMRTftU+5A3f8mvi4TILnOLszKUrt +JJ33VWmBe++oiVpl7WjW7t/hMqXMINVwBW57KLqIyDh9wM+cAshJeZNAjr0TkhX2jrc= X-Gm-Gg: AYBFou0/UaCHtb/bnx/Zgee+wn+gWGoU1frnCxdEk0NEVnOf7eMh//bKKgBbqyLBdvD M1fs4LmSK5r2Ndh2RMHH3WWUd4+NRei0CRl8orez7Mgaj9d39jRFnlAm27/GclUU34P68EHR/EE Awi1DgsS/XJeLfFg2/JM8hqp5iPeEPOimiN1XlSODJRMWQVmWgmOvmZ5lNoSI/gVTPiZEkDDz7I A36pPzqFqcTOfFFjCyCn584lu8fr4hV3IvkqvJWWAbnez9Eys5Nkw86u5FQ2gX7mhrLtrOtpWpM WktpWe+4S7R4Oqlk7fruN1S3HQ2rcLWN6K+nf2UzGMJqcCzD4mO4lHOgpNburl+8MT19RSK8Qxg tzG6oXpiJ3FL5rTMmh2amwx2lJnIY3qU= X-Received: by 2002:a17:90b:54c4:b0:39d:f72e:e8df with SMTP id 98e67ed59e1d1-39e550bf2d4mr3674183a91.5.1789725508486; Fri, 18 Sep 2026 02:58:28 -0700 (PDT) X-Received: by 2002:a17:90b:54c4:b0:39d:f72e:e8df with SMTP id 98e67ed59e1d1-39e550bf2d4mr3674146a91.5.1789725508030; Fri, 18 Sep 2026 02:58:28 -0700 (PDT) Received: from hu-uchheda-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-144ce02b063sm2892970c88.9.2026.09.18.02.58.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Sep 2026 02:58:27 -0700 (PDT) From: Umang Chheda To: andersson@kernel.org, konradybcio@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, richardcochran@gmail.com, Borislav Petkov , Catalin Marinas , Will Deacon , Lorenzo Pieralisi , Sudeep Holla , "Rafael J . Wysocki" , Len Brown , Tony Luck , Robin Murphy , Peter Zijlstra , James Morse Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-edac@vger.kernel.org, Ruidong Tian , umang.chheda@oss.qualcomm.com, avaneesh.dwivedi@oss.qualcomm.com, Faruque Ansari Subject: [PATCH v3 4/5] arm64: dts: qcom: lemans: add RAS error source nodes Date: Fri, 18 Sep 2026 15:27:45 +0530 Message-Id: <20260918095746.3347893-5-umang.chheda@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260918095746.3347893-1-umang.chheda@oss.qualcomm.com> References: <20260918095746.3347893-1-umang.chheda@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE4MDEzNyBTYWx0ZWRfX6qy1G07KMjHN ituoD6/16Y5YYbRy+CmEFl0ME9uRvhVbMGoXK+qRRsdagfaddV+KH2uuTBTaLr7AbGZVmxsoOew IO1UrAOSA9BzwIy0uBy9om1WsLEeNlU= X-Proofpoint-GUID: lALJR_wksqZzFbU0GJg93LXQWJ4pCtgS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE4MDEzNyBTYWx0ZWRfX5OMH34vP2wT9 QuHClWJ7QMCgYLZqW5nqsH26EFpKTNzJoJj/a8vF8xGAghAvEVVplbwYJDqp8o9ae95uo4v+XnN RA8FF3C1bTThqst15VOj4ediR4pWOkAR+3oB0+/3XS9i3ErzI+h3JtE+z5JT6O5Bd7fWtGHrd/R VkxgwcTiBhrZSAxNR97TFmPjpMvTXHI6y97FoKHQRamUCKTK2Vv2FDeZcBAfQbZ+wvMCN+CvZk7 ZNqVSA5IjTE0qtS/endEwp+RShi2hHe71VU92wHCxPJsUwHefHJXB/FA7VJ+x3D7ovxVIELIGcb sp8MgvAOOluGcB/fLLyvtPcjVWfixdpe8ya7nhnei5PJft0HLWP458tk7ZXxO6OwR7pKaMLubdp OP+iK5vPD2LsUjNPDsvZHyUERT7iJzzdlTxNmsKu79JAuOp9O48Wk3kFs0AuP4IRYFAaDPzq4D+ i7gOn7q0+MsXyg2w1Tw== X-Proofpoint-ORIG-GUID: lALJR_wksqZzFbU0GJg93LXQWJ4pCtgS X-Authority-Analysis: v=2.4 cv=cNF1IVeN c=1 sm=1 tr=0 ts=6aad0b45 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=mXUMc8l5Aljk2L-ovw4A:9 a=mQ_c8vxmzFEMiUWkPHU9:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-18_03,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 impostorscore=0 spamscore=0 phishscore=0 bulkscore=0 adultscore=0 suspectscore=0 lowpriorityscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609180137 Content-Type: text/plain; charset="utf-8" ARM Reliability, Availability and Serviceability (RAS) enables processor components(for eg cache, tlb etc) to record and signal hardware faults through architected error records and fault handling interrupts. This allows software to detect, report and, where possible, recover from hardware errors. The Lemans CPU subsystem implements RAS error records for the L1/L2 cache hierarchy and the shared L3 caches. Describe these error sources in Device Tree so that the ARM RAS framework can discover them and handle cache-related error reports. Co-developed-by: Faruque Ansari Signed-off-by: Faruque Ansari Signed-off-by: Umang Chheda --- arch/arm64/boot/dts/qcom/lemans.dtsi | 30 ++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qco= m/lemans.dtsi index 695eae1b7256..dc4cbb6e3496 100644 --- a/arch/arm64/boot/dts/qcom/lemans.dtsi +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi @@ -524,6 +524,36 @@ clk_virt: interconnect-clk-virt { qcom,bcm-voters =3D <&apps_bcm_voter>; }; + l2-cache-error { + compatible =3D "arm,ras-processor"; + arm,num-records =3D <1>; + arm,record-impl =3D /bits/ 64 <0x1>; + arm,status-reporting =3D /bits/ 64 <0x1>; + arm,cache-ref =3D <&l2_0>; + interrupts =3D ; + interrupt-names =3D "fhi"; + }; + + l3-cluster0-error { + compatible =3D "arm,ras-processor"; + arm,num-records =3D <2>; + arm,record-impl =3D /bits/ 64 <0x2>; + arm,status-reporting =3D /bits/ 64 <0x2>; + arm,cache-ref =3D <&l3_0>; + interrupts =3D ; + interrupt-names =3D "fhi"; + }; + + l3-cluster1-error { + compatible =3D "arm,ras-processor"; + arm,num-records =3D <2>; + arm,record-impl =3D /bits/ 64 <0x2>; + arm,status-reporting =3D /bits/ 64 <0x2>; + arm,cache-ref =3D <&l3_1>; + interrupts =3D ; + interrupt-names =3D "fhi"; + }; + mc_virt: interconnect-mc-virt { compatible =3D "qcom,sa8775p-mc-virt"; #interconnect-cells =3D <2>; -- 2.34.1 From nobody Fri Sep 25 00:40:51 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2E3FF438483 for ; Fri, 18 Sep 2026 09:58:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789725519; cv=none; b=pWqZbyHxx1/8ARh7Jq+yBrz/ErqU9judFqD4cHa0Hq8ZMtH+GXevmo305JGNxWBDwgRd2urUrVI0vTTyqsOP3QRPyejudgx12tYBPGdGSIfoMRZgMmUcGnY6g8wQOIF1/LMZHVy7ie3KZjxMPK4RtutOIcYFY/LIl+/R3ljUtnQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789725519; c=relaxed/simple; bh=vKnL1OC2AK7IzVOMe41QvS8L3cgzxhIWMBKb+YiXdME=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=muYbWp4GsDF/zT2/GfcbAL9xGLI4d8TfyE5yPu+HktWtuUgLCCfpFS6k4mkjAQECotzn3YNaxMG51lytHzZFvXBCXFcJaRArGJ/JKm5cl1lBWxy3wEgcQgSYEcfcTB5vSKTWQo315cqq/aaXvmHTdk5UNNDo/UT7MO831J7xWvg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=ZSfZ+zeW; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ixY/+RaN; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="ZSfZ+zeW"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ixY/+RaN" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68I9dZvg1404293 for ; Fri, 18 Sep 2026 09:58:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=pb5p/WL8kUy qaFGWpcUBrh/tb8T0Qr10UWefDKPbxTM=; b=ZSfZ+zeWIV9Oq32MRVdsdnYqoPW Uvu7JLixXy3tU85cOpniIw4ShGpNITlwkeqZEzMvcWJAwYTukByIaBYwqTVD2vwN mfVi8lucsY2BXcFQhaCzd1lXuyJLiNh6rVltcU9HsyNvU/pkeUAhM/Ro6Yz1AUdU loJ2ugcmhYLyOroszN4bF7QkHKtHqt9dB8FWREgprK7fi5qv9GOQRRDGbfRtALA/ 25WxSTEp++HgHpxtqMHzB0R5HZd55A4IM78JPGbBjWt9nJCsc2l/YlDIyE0so3bi kalm685qSfJJCerxaFoSlnhFcwDYf4q/UNQVq1Uo0WZzBE0TFkTgfhJdqrw== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4grtdpt3dd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 18 Sep 2026 09:58:37 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-399315379fcso152010a91.0 for ; Fri, 18 Sep 2026 02:58:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789725517; x=1790330317; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=pb5p/WL8kUyqaFGWpcUBrh/tb8T0Qr10UWefDKPbxTM=; b=ixY/+RaNHyu7FyOW5XpxhsAtJ4oq+E+EXfggB42WlnmZ7suvcrohYpYfPIjj6a95AF 1P/TaRG58NGR7JfnsLUmBgBt9yiwIJTrNp4vr9ge7MagCBtiZ9RZ8bqcyOKW1O3jlDdB 4+dMpBjK4OkI3d1VFEq57/7LTDp8EjjRdJ8hqgUVbesabrpD9kJ9xbzuUB/kjvqUocaD 6cr+JgtMtktWLOPtd51iXICNy2uxswDeyeZfJKF7altjm5glGNyhexdv6ulUf2VkFPcS W0v9Cac+HWfjyqc51AwMxDvrC4v7D6lnEzzq1EvliE9R6AIjtn7Uhhp0zvGFpWHLv1PE qWnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789725517; x=1790330317; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=pb5p/WL8kUyqaFGWpcUBrh/tb8T0Qr10UWefDKPbxTM=; b=QNe2l9DDfQRNfrlM7pJZKQaOapTob4FyeEaoPN1anbroSXhSz4rxvxHtBYydiAOz0l YIcp0uug5LaL87KDde8uMCS2FbnyHKT3uQNKE3O+te/f4CnRDrXNHWsoEIek0QzNB6Hi F0obCojkCPwkodqQI2J9nTp7QxJR0BXcIxC+blJ95EktOfYho5oaSwX+NZlEc5SYTCRc uBQvpdl61+Yn8NMMet3kwR3v6BZbdI6avB+5Hg4DQhL5tDZoLwkxC3TzOO/r89HJqwik 8H89HOYyfcMwMr/lBI7x+EfkXSb92mbfU09l0H95nMxRB86A44K3pLKVk9oUU2fne58q p+XA== X-Forwarded-Encrypted: i=1; AKwUvBw202IeVnpPZsPxfLiQGeW/fXjz22MnWPGV6+RR8pE0IctEvERd2+E0fiX5Z3OKqljsYajdBt+y5EMbhgI=@vger.kernel.org X-Gm-Message-State: AFuF++mNN8yBcBYopGp8apLsm/kA5tJLpUv700ky53Dy7gVQgXjNIwvm NNgwaHIcW5lUaMEcXMGMfc0m6rtw/DmEboQCvasUAXaCFWJi1oq/h4dBbc9u/Hew9P3LFpqnxDR hdb4DNKEWNMeIh4yN5KL5xQlRQk/0k1PdTfXioAXSZKtfgLAHBkFQLBk0rMyzSKnUXQM= X-Gm-Gg: AYBFou1XLzYuxGf1KPElYSaikoKAycERjIBZmfRtRx534C8T0cczt1dkfFZAnrv/1x3 JR1dpDiSvOM/tQeAWNPRg/mhh9ETQb9yMrnJDT1ktWz2BeZWXehw5JCFBM0QFQrhnyTlUifbMjn 1R5rXSduBGwPw7WHWGy4bhwOoeDs7rw5rcUbBhSHznP9QAwOJkGAoJHixJdiY2sY95cStMSUO+5 BzdfI0tN58DAdjQIY0u0ifzLqpl2E9kgjIRN9Cw6zuEAlTY9/0WNZcF6SJiFyKQRdVpROXPRnRU hdxVpoK0B6GpUL0tIyPn71c7S8bHz755ksgRCXk8v9TqjlAvp18MX9is/GBql9c6+nL6utzshmp rWpxHbyzb3q5pitzFVW9/w32dTEaTsw0= X-Received: by 2002:a17:90b:4c4e:b0:396:d27b:86a4 with SMTP id 98e67ed59e1d1-39e594253c0mr2821584a91.2.1789725516414; Fri, 18 Sep 2026 02:58:36 -0700 (PDT) X-Received: by 2002:a17:90b:4c4e:b0:396:d27b:86a4 with SMTP id 98e67ed59e1d1-39e594253c0mr2821545a91.2.1789725515992; Fri, 18 Sep 2026 02:58:35 -0700 (PDT) Received: from hu-uchheda-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-144ce02b063sm2892970c88.9.2026.09.18.02.58.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Sep 2026 02:58:35 -0700 (PDT) From: Umang Chheda To: andersson@kernel.org, konradybcio@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, richardcochran@gmail.com, Borislav Petkov , Catalin Marinas , Will Deacon , Lorenzo Pieralisi , Sudeep Holla , "Rafael J . Wysocki" , Len Brown , Tony Luck , Robin Murphy , Peter Zijlstra , James Morse Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-edac@vger.kernel.org, Ruidong Tian , umang.chheda@oss.qualcomm.com, avaneesh.dwivedi@oss.qualcomm.com, Faruque Ansari Subject: [PATCH v3 5/5] arm64: dts: qcom: shikra: add RAS error source nodes Date: Fri, 18 Sep 2026 15:27:46 +0530 Message-Id: <20260918095746.3347893-6-umang.chheda@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260918095746.3347893-1-umang.chheda@oss.qualcomm.com> References: <20260918095746.3347893-1-umang.chheda@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE4MDEzNyBTYWx0ZWRfX71/z+ECnOTUM MF6vkT2h1ump2Wm0CKC/lPGCcwGUQvsUUjByQaynv5ivQgAFhW1v1aSjthqKYhPhuDE0Z7uawpn Bwib9t2D5fPgskXYoDezP+MuoaWbrLoF6/2tPLXTuxAHttD6xG44r9RQP1YiqFaomSHQfAVliol GwEbgvktrNp5pfjG6ESeDOuhgC55GVWRVbJd1/0533d/qL1M425a1Gw8K6OgqKz24MxCEMAMi8g tUKfYxBzg16jlXD6aknnQz2XxU46xD8Grb9xqCCe3ZZee44ahjjRsGCO2Z6S8RdKYUl12zlZpzR IZQE6cnxxEu2OeoHcYO3EE69uiyTbtucaorN4/vlMxeyY7ozqrhmmYsxAsw3r+T1fd/0S1j63Lz jpgYdKEBKn0wUYZzlbm0lYPxwjw7k5wSi9BAMaKYg2VazNCe4FB1p5WFWAP8fK1BiQhm1BQVx9/ 07x1b6RWgJeJdAEcZ2w== X-Authority-Analysis: v=2.4 cv=N+e8hG9B c=1 sm=1 tr=0 ts=6aad0b4d cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=a7izLWPGlrKpK18tDBAA:9 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE4MDEzNyBTYWx0ZWRfXzD9E3kwYDbJC J+ACAS33jHZChZ0Vz/4VsZA40VeqO1iOMBJlyeaW8lYjW8AC1I6QHxm4DxbdiJaLIQ0Qjj3wk++ e2kXhQIEr8LdDrYN6QItDILArKuoMr0= X-Proofpoint-ORIG-GUID: fOIJsKSDQkyU8p6-T4Rey8L9odOnGP8X X-Proofpoint-GUID: fOIJsKSDQkyU8p6-T4Rey8L9odOnGP8X X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-18_03,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 spamscore=0 adultscore=0 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609180137 Content-Type: text/plain; charset="utf-8" ARM Reliability, Availability and Serviceability (RAS) enables processor components (for eg cache, tlb etc) to record and signal hardware faults through architected error records and fault handling interrupts. This allows software to detect, report and, where possible, recover from hardware errors. The Shikra CPU subsystem implements RAS error records for the L1/L2 cache hierarchy and the shared L3 caches. Describe these error sources in Device Tree so that the ARM RAS framework can discover them and handle cache-related error reports. Co-developed-by: Faruque Ansari Signed-off-by: Faruque Ansari Signed-off-by: Umang Chheda --- arch/arm64/boot/dts/qcom/shikra.dtsi | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/shikra.dtsi b/arch/arm64/boot/dts/qco= m/shikra.dtsi index c1f06f692f66..c5bbf1f8e46a 100644 --- a/arch/arm64/boot/dts/qcom/shikra.dtsi +++ b/arch/arm64/boot/dts/qcom/shikra.dtsi @@ -330,6 +330,26 @@ opp-2208000000 { }; }; + l2-cache-error { + compatible =3D "arm,ras-processor"; + arm,num-records =3D <1>; + arm,record-impl =3D /bits/ 64 <0x1>; + arm,status-reporting =3D /bits/ 64 <0x1>; + arm,cache-ref =3D <&l2_3>; + interrupts =3D ; + interrupt-names =3D "fhi"; + }; + + l3-cache-error { + compatible =3D "arm,ras-processor"; + arm,num-records =3D <2>; + arm,record-impl =3D /bits/ 64 <0x2>; + arm,status-reporting =3D /bits/ 64 <0x2>; + arm,cache-ref =3D <&l3>; + interrupts =3D ; + interrupt-names =3D "fhi"; + }; + modem-etm0 { compatible =3D "arm,coresight-dummy-source"; -- 2.34.1