From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=100.103.45.18 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1793772361; b=E3qGEjdlH1E95SwnMMzb46LtGggNgFc3XFeMd0aOgu58dQRYddrmJpqac5011OGofIzS CJjVqKG2NMT2FIdPf3NqS8laY3PiiVVvkDla/2HGLXo+UOoDNHMMY025bYiA1zk92zw6n 6/gEFFdIU50XEh1D9kwwH9bilZGjgukxO84s3FMOE/txLIgQonMW/q0F0WDI5KcR593dM TRw+lQRIEXb+Lr6UOhwqlsvNqwBIOjWQJ9CaV7EIhfM1ThhhpRMbg8UI4snQZWfh5/TBn jyr7fxZeKqLUFGgw6Q9yX82g4wubjbUfevsVcXkWoHfmE8UnoFsjM1MWUhUhrei4t6A== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1793772361; h=Received:DKIM-Signature:Message-ID:From:Subject:Reply-To:To:Cc: In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date; bh=L3n36mnOsqyiV4KZF52bEPsThE+j4Itg7nle1oUa4HY=; b=focj+V0Ivh+xUvIlWPgODkso2PHVGZJ09vE4vFmr58p18hJdytmOthcZ1V7JYClf53iX a6TwfwAQZ0kwgDzarKw+7ph0qqzDel6kOMt82WHNtR/pU8S68FZso6G35YAwutt6hh0g/ L64gxfnrFmzfHyUjFMDTnP1DZ95f48zQ0FGPt86G25HfBy56CxUcAUnHAl57qLQJx9ZMn PjX7bfeKlFnLnvKWYc+9MCDymBqMfZL3JKtd3SMUec/XI65nIf4UM0c+TN3mDNO/qvgOb RRJUut7twJk9xMztFJtSP77vWvD6cSZ3U5B4bZ+09lCh7HxPqOKkstlZZe0HKMgEgNQ== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=nnlfF5vK; arc=none smtp.remote-ip=100.103.45.18 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8A7B0606A328; Wed, 4 Nov 2026 06:06:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=nnlfF5vK Received: by smtp.kernel.org (Postfix) with ESMTPSA id C9D181F000C1; Wed, 4 Nov 2026 06:06:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1793772361; bh=L3n36mnOsqyiV4KZF52bEPsThE+j4Itg7nle1oUa4HY=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=nnlfF5vK4yGCIGVLlOoVGdVlZG+yCdwRWcmM7L9uY/E7EcZCuDRZtLKdFKXS4kuae 32OCmy48roaEkqyeTamP1JTx9mpxaDXfLUxd8Z88NYlciiZk6qq8DPtQ4i6Y0uucJ6 8GLOlOtUK9c79P1fOCWi8CBi9yGalB/xUweUofbT9t9eoY4tOXPXCSKKZUuKOJbM3E 5LRdWyfIYBuBFeXw7DhgQSENCEPS8XpaQLGdr0w/O7cgdScQs5KbLF+yvCoWPo1JUF x5G4sf9hrCfshlGvx5bmHVjuappLcaT1WMIjMncQos73Ha0qxz+O3hSd40XSNePosk dp2BfXtllRiJQ== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH RFC 1/3] dt-bindings: rtc: Add linux,wakeup-states and linux,alarmtimer-priority Reply-To: sashiko-reviews@lists.linux.dev To: "Igor Velkov" Cc: linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, linux-amlogic@lists.infradead.org, robh@kernel.org, conor+dt@kernel.org, neil.armstrong@linaro.org, "Alexandre Belloni" In-Reply-To: <20261104-b4-alarmtimer-rtc-priority-v1-1-e996681b8086@iav.lv> References: <20261104-b4-alarmtimer-rtc-priority-v1-0-e996681b8086@iav.lv> <20261104-b4-alarmtimer-rtc-priority-v1-1-e996681b8086@iav.lv> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Wed, 04 Nov 2026 06:06:00 +0000 X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list Thank you for your contribution! Sashiko AI review found 1 potential issue(= s) to consider: - [Medium] dt-bindings: rtc: OS-specific alarmtimer policy and sleep states= in DT -- commit dc818a3fb414914888d04f5807458bc227693b0c Author: Igor Velkov dt-bindings: rtc: Add linux,wakeup-states and linux,alarmtimer-priority This commit adds the linux,wakeup-states and linux,alarmtimer-priority properties to the common RTC Devicetree binding schema to describe per-RTC sleep-state wakeup capabilities and alarmtimer selection weights, and allows them in the amlogic,meson-vrtc and nxp,pcf8563 bindings. > diff --git a/Documentation/devicetree/bindings/rtc/amlogic,meson-vrtc.yam= l b/Documentation/devicetree/bindings/rtc/amlogic,meson-vrtc.yaml > index a89865fa676a6..bc4a1916f6007 100644 > --- a/Documentation/devicetree/bindings/rtc/amlogic,meson-vrtc.yaml > +++ b/Documentation/devicetree/bindings/rtc/amlogic,meson-vrtc.yaml > @@ -30,6 +30,9 @@ properties: > reg: > maxItems: 1 > =20 > + linux,alarmtimer-priority: true > + linux,wakeup-states: true > + > required: > - compatible > - reg > diff --git a/Documentation/devicetree/bindings/rtc/nxp,pcf8563.yaml b/Doc= umentation/devicetree/bindings/rtc/nxp,pcf8563.yaml > index 22909a96123e5..5aabeb074c82b 100644 > --- a/Documentation/devicetree/bindings/rtc/nxp,pcf8563.yaml > +++ b/Documentation/devicetree/bindings/rtc/nxp,pcf8563.yaml > @@ -32,6 +32,9 @@ properties: > interrupts: > maxItems: 1 > =20 > + linux,alarmtimer-priority: true > + linux,wakeup-states: true > + > start-year: true > wakeup-source: true > =20 > diff --git a/Documentation/devicetree/bindings/rtc/rtc.yaml b/Documentati= on/devicetree/bindings/rtc/rtc.yaml > index efb66df82782f..3b4b8ff90ada0 100644 > --- a/Documentation/devicetree/bindings/rtc/rtc.yaml > +++ b/Documentation/devicetree/bindings/rtc/rtc.yaml > @@ -26,6 +26,35 @@ properties: > 0: not chargeable > 1: chargeable > =20 > + linux,alarmtimer-priority: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: > + Weight of this RTC for waking the system on alarmtimer alarms. > + Among the RTCs that can wake the system from the target sleep > + state, the one with the highest value is used; on a tie, the > + operating system decides. An RTC without this property has > + priority 0. > + > + linux,wakeup-states: > + $ref: /schemas/types.yaml#/definitions/string-array > + description: > + System sleep states an alarm of this RTC wakes the system from, > + given the board and its firmware. s2idle, shallow and deep are the > + states of /sys/power/mem_sleep, hibernate is suspend-to-disk and > + off is the powered-off system, and none, given alone, means the > + alarm wakes the system from no state. An RTC without this property > + is taken to wake the system from every state. > + oneOf: > + - items: > + enum: > + - s2idle > + - shallow > + - deep > + - hibernate > + - "off" > + - items: > + - const: none [Severity: Medium] Should OS-specific alarmtimer policy weights and Linux /sys/power/mem_sleep labels be encoded in the Devicetree binding rather than derived by the OS f= rom hardware properties and compatible strings? Documentation/devicetree/bindings/writing-bindings.rst notes that bindings should describe hardware rather than Linux or device driver specifics, and should not add properties that are already implied by or deducible from the compatible string. For linux,alarmtimer-priority, this encodes an arbitrary numeric weight for the Linux kernel alarmtimer subsystem (kernel/time/alarmtimer.c) into the DT ABI. Could the kernel instead select the preferred wakeup RTC using hardware characteristics already known to the RTC drivers (for example, alarm resolution such as RTC_FEATURE_ALARM_RES_MINUTE in drivers/rtc/rtc-pcf8563.c versus 1-second resolution, or alarm range), userspace policy, or standard = DT /aliases (rtc0, rtc1)? For linux,wakeup-states, several of the state definitions appear to conflict with hardware description or existing properties in rtc.yaml: 1. In Documentation/devicetree/bindings/rtc/amlogic,meson-vrtc.yaml, waking the system only when the application processors suspend is inherent to the hardware and firmware interface (a scratch register read by the SCP upon platform suspend, as implemented in drivers/rtc/rtc-meson-vrtc.c), which is already deducible from compatible =3D "amlogic,meson-vrtc" without a new DT property. 2. The values s2idle, shallow, and deep are Linux sysfs labels from /sys/power/mem_sleep rather than hardware properties. In particular, s2idle= is a pure Linux software freeze state where any enabled OS interrupt wakes the system, whereas an RTC without an interrupts property wired to the kernel cannot wake the system from s2idle. Similarly, on non-ACPI Devicetree platforms, hibernate uses power-off rather than a distinct hardware sleep state, and whether an RTC can wake the system from platform suspend or power-off is determined by interrupt/wakeup routing and power domain or PMIC wiring. 3. How does linux,wakeup-states interact with the existing wakeup-source property in Documentation/devicetree/bindings/rtc/rtc.yaml? Specifying linux,wakeup-states =3D "none" duplicates the absence of wakeup-source and allows contradictory combinations such as setting both wakeup-source and linux,wakeup-states =3D "none" in nxp,pcf8563.yaml. Conversely, stating tha= t an RTC without linux,wakeup-states wakes the system from every state (including hibernate and off) overstates the capability of standard RTCs that cannot w= ake a powered-off system. --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20261104-b4-alarmti= mer-rtc-priority-v1-0-e996681b8086@iav.lv?part=3D1 From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ADB4C606A328 for ; Wed, 4 Nov 2026 06:06:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=CvI2BGcH; dkim=fail reason="signature verification failed" (2048-bit key, unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=nnlfF5vK DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Date:References: In-Reply-To:Cc:To:Subject:From:Message-ID:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Unsubscribe-Post:List-Owner; bh=SKzBf+mKzhMYjRSYq7PDWWl0Ijh+f8TeF86PgkbEGeg=; b=CvI2BGcH322hc9WkzmHj0pcCMv sxejV3fGZ7sLKv75azum3M9dY2blNQfwniF+Pxlm/9u5gdHCrr0afaewZEjo6X//zU5oI13ilq2fj R3U+Xz1sF1jlB00qpIXzeLR3CgvueWoko7ldNY48CcmE7Fijs3EDTnhgJK6xLX7sgbQY9SbRfVQos I8wJ56fdseoQ5weOf/xhayCO1itjvV8zejGRA9QaDcyobCNncrhEURNEJs+PvcpPWpz9ZmYJF8b7y W1ZJp1pdJqypLaSZCU00Jt8v1fryFJKX1+Ig1yrtWAzCil2Go5uIX1agfRk4V4pPC6y1fnIHFAWw4 Fn56aJnQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.100.1 #2 (Red Hat Linux)) id 1xOU8J-00000004O5E-2g7P; Wed, 04 Nov 2026 06:06:03 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.100.1 #2 (Red Hat Linux)) id 1xOU8H-00000004O50-3yu4 for linux-amlogic@lists.infradead.org; Wed, 04 Nov 2026 06:06:01 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 56625414EF; Wed, 4 Nov 2026 06:06:01 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C9D181F000C1; Wed, 4 Nov 2026 06:06:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1793772361; bh=L3n36mnOsqyiV4KZF52bEPsThE+j4Itg7nle1oUa4HY=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=nnlfF5vK4yGCIGVLlOoVGdVlZG+yCdwRWcmM7L9uY/E7EcZCuDRZtLKdFKXS4kuae 32OCmy48roaEkqyeTamP1JTx9mpxaDXfLUxd8Z88NYlciiZk6qq8DPtQ4i6Y0uucJ6 8GLOlOtUK9c79P1fOCWi8CBi9yGalB/xUweUofbT9t9eoY4tOXPXCSKKZUuKOJbM3E 5LRdWyfIYBuBFeXw7DhgQSENCEPS8XpaQLGdr0w/O7cgdScQs5KbLF+yvCoWPo1JUF x5G4sf9hrCfshlGvx5bmHVjuappLcaT1WMIjMncQos73Ha0qxz+O3hSd40XSNePosk dp2BfXtllRiJQ== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH RFC 1/3] dt-bindings: rtc: Add linux,wakeup-states and linux,alarmtimer-priority To: "Igor Velkov" Cc: linux-rtc@vger.kernel.org, devicetree@vger.kernel.org, linux-amlogic@lists.infradead.org, robh@kernel.org, conor+dt@kernel.org, neil.armstrong@linaro.org, "Alexandre Belloni" In-Reply-To: <20261104-b4-alarmtimer-rtc-priority-v1-1-e996681b8086@iav.lv> References: <20261104-b4-alarmtimer-rtc-priority-v1-0-e996681b8086@iav.lv> <20261104-b4-alarmtimer-rtc-priority-v1-1-e996681b8086@iav.lv> Date: Wed, 04 Nov 2026 06:06:00 +0000 X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev X-Archived-By: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" X-Spam-Status: No, score=-8.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on aws-us-west-2-korg-listserv-alma10-1 VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MSBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW01lZGl1bV0gZHQtYmluZGluZ3M6 IHJ0YzogT1Mtc3BlY2lmaWMgYWxhcm10aW1lciBwb2xpY3kgYW5kIHNsZWVwIHN0YXRlcyBpbiBE VAotLQoKY29tbWl0IGRjODE4YTNmYjQxNDkxNDg4OGQwNGY1ODA3NDU4YmMyMjc2OTNiMGMKQXV0 aG9yOiBJZ29yIFZlbGtvdiA8aWF2QGlhdi5sdj4KCmR0LWJpbmRpbmdzOiBydGM6IEFkZCBsaW51 eCx3YWtldXAtc3RhdGVzIGFuZCBsaW51eCxhbGFybXRpbWVyLXByaW9yaXR5CgpUaGlzIGNvbW1p dCBhZGRzIHRoZSBsaW51eCx3YWtldXAtc3RhdGVzIGFuZCBsaW51eCxhbGFybXRpbWVyLXByaW9y aXR5CnByb3BlcnRpZXMgdG8gdGhlIGNvbW1vbiBSVEMgRGV2aWNldHJlZSBiaW5kaW5nIHNjaGVt YSB0byBkZXNjcmliZSBwZXItUlRDCnNsZWVwLXN0YXRlIHdha2V1cCBjYXBhYmlsaXRpZXMgYW5k IGFsYXJtdGltZXIgc2VsZWN0aW9uIHdlaWdodHMsIGFuZCBhbGxvd3MKdGhlbSBpbiB0aGUgYW1s b2dpYyxtZXNvbi12cnRjIGFuZCBueHAscGNmODU2MyBiaW5kaW5ncy4KCj4gZGlmZiAtLWdpdCBh L0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ydGMvYW1sb2dpYyxtZXNvbi12cnRj LnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcnRjL2FtbG9naWMsbWVz b24tdnJ0Yy55YW1sCj4gaW5kZXggYTg5ODY1ZmE2NzZhNi4uYmM0YTE5MTZmNjAwNyAxMDA2NDQK PiAtLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcnRjL2FtbG9naWMsbWVz b24tdnJ0Yy55YW1sCj4gKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3J0 Yy9hbWxvZ2ljLG1lc29uLXZydGMueWFtbAo+IEBAIC0zMCw2ICszMCw5IEBAIHByb3BlcnRpZXM6 Cj4gICAgcmVnOgo+ICAgICAgbWF4SXRlbXM6IDEKPiAgCj4gKyAgbGludXgsYWxhcm10aW1lci1w cmlvcml0eTogdHJ1ZQo+ICsgIGxpbnV4LHdha2V1cC1zdGF0ZXM6IHRydWUKPiArCj4gIHJlcXVp cmVkOgo+ICAgIC0gY29tcGF0aWJsZQo+ICAgIC0gcmVnCj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50 YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ydGMvbnhwLHBjZjg1NjMueWFtbCBiL0RvY3VtZW50 YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ydGMvbnhwLHBjZjg1NjMueWFtbAo+IGluZGV4IDIy OTA5YTk2MTIzZTUuLjVhYWJlYjA3NGM4MmIgMTAwNjQ0Cj4gLS0tIGEvRG9jdW1lbnRhdGlvbi9k ZXZpY2V0cmVlL2JpbmRpbmdzL3J0Yy9ueHAscGNmODU2My55YW1sCj4gKysrIGIvRG9jdW1lbnRh dGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3J0Yy9ueHAscGNmODU2My55YW1sCj4gQEAgLTMyLDYg KzMyLDkgQEAgcHJvcGVydGllczoKPiAgICBpbnRlcnJ1cHRzOgo+ICAgICAgbWF4SXRlbXM6IDEK PiAgCj4gKyAgbGludXgsYWxhcm10aW1lci1wcmlvcml0eTogdHJ1ZQo+ICsgIGxpbnV4LHdha2V1 cC1zdGF0ZXM6IHRydWUKPiArCj4gICAgc3RhcnQteWVhcjogdHJ1ZQo+ICAgIHdha2V1cC1zb3Vy Y2U6IHRydWUKPiAgCj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy9ydGMvcnRjLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcnRj L3J0Yy55YW1sCj4gaW5kZXggZWZiNjZkZjgyNzgyZi4uM2I0YjhmZjkwYWRhMCAxMDA2NDQKPiAt LS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcnRjL3J0Yy55YW1sCj4gKysr IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3J0Yy9ydGMueWFtbAo+IEBAIC0y Niw2ICsyNiwzNSBAQCBwcm9wZXJ0aWVzOgo+ICAgICAgICAwOiBub3QgY2hhcmdlYWJsZQo+ICAg ICAgICAxOiBjaGFyZ2VhYmxlCj4gIAo+ICsgIGxpbnV4LGFsYXJtdGltZXItcHJpb3JpdHk6Cj4g KyAgICAkcmVmOiAvc2NoZW1hcy90eXBlcy55YW1sIy9kZWZpbml0aW9ucy91aW50MzIKPiArICAg IGRlc2NyaXB0aW9uOgo+ICsgICAgICBXZWlnaHQgb2YgdGhpcyBSVEMgZm9yIHdha2luZyB0aGUg c3lzdGVtIG9uIGFsYXJtdGltZXIgYWxhcm1zLgo+ICsgICAgICBBbW9uZyB0aGUgUlRDcyB0aGF0 IGNhbiB3YWtlIHRoZSBzeXN0ZW0gZnJvbSB0aGUgdGFyZ2V0IHNsZWVwCj4gKyAgICAgIHN0YXRl LCB0aGUgb25lIHdpdGggdGhlIGhpZ2hlc3QgdmFsdWUgaXMgdXNlZDsgb24gYSB0aWUsIHRoZQo+ ICsgICAgICBvcGVyYXRpbmcgc3lzdGVtIGRlY2lkZXMuIEFuIFJUQyB3aXRob3V0IHRoaXMgcHJv cGVydHkgaGFzCj4gKyAgICAgIHByaW9yaXR5IDAuCj4gKwo+ICsgIGxpbnV4LHdha2V1cC1zdGF0 ZXM6Cj4gKyAgICAkcmVmOiAvc2NoZW1hcy90eXBlcy55YW1sIy9kZWZpbml0aW9ucy9zdHJpbmct YXJyYXkKPiArICAgIGRlc2NyaXB0aW9uOgo+ICsgICAgICBTeXN0ZW0gc2xlZXAgc3RhdGVzIGFu IGFsYXJtIG9mIHRoaXMgUlRDIHdha2VzIHRoZSBzeXN0ZW0gZnJvbSwKPiArICAgICAgZ2l2ZW4g dGhlIGJvYXJkIGFuZCBpdHMgZmlybXdhcmUuIHMyaWRsZSwgc2hhbGxvdyBhbmQgZGVlcCBhcmUg dGhlCj4gKyAgICAgIHN0YXRlcyBvZiAvc3lzL3Bvd2VyL21lbV9zbGVlcCwgaGliZXJuYXRlIGlz IHN1c3BlbmQtdG8tZGlzayBhbmQKPiArICAgICAgb2ZmIGlzIHRoZSBwb3dlcmVkLW9mZiBzeXN0 ZW0sIGFuZCBub25lLCBnaXZlbiBhbG9uZSwgbWVhbnMgdGhlCj4gKyAgICAgIGFsYXJtIHdha2Vz IHRoZSBzeXN0ZW0gZnJvbSBubyBzdGF0ZS4gQW4gUlRDIHdpdGhvdXQgdGhpcyBwcm9wZXJ0eQo+ ICsgICAgICBpcyB0YWtlbiB0byB3YWtlIHRoZSBzeXN0ZW0gZnJvbSBldmVyeSBzdGF0ZS4KPiAr ICAgIG9uZU9mOgo+ICsgICAgICAtIGl0ZW1zOgo+ICsgICAgICAgICAgZW51bToKPiArICAgICAg ICAgICAgLSBzMmlkbGUKPiArICAgICAgICAgICAgLSBzaGFsbG93Cj4gKyAgICAgICAgICAgIC0g ZGVlcAo+ICsgICAgICAgICAgICAtIGhpYmVybmF0ZQo+ICsgICAgICAgICAgICAtICJvZmYiCj4g KyAgICAgIC0gaXRlbXM6Cj4gKyAgICAgICAgICAtIGNvbnN0OiBub25lCgpbU2V2ZXJpdHk6IE1l ZGl1bV0KU2hvdWxkIE9TLXNwZWNpZmljIGFsYXJtdGltZXIgcG9saWN5IHdlaWdodHMgYW5kIExp bnV4IC9zeXMvcG93ZXIvbWVtX3NsZWVwCmxhYmVscyBiZSBlbmNvZGVkIGluIHRoZSBEZXZpY2V0 cmVlIGJpbmRpbmcgcmF0aGVyIHRoYW4gZGVyaXZlZCBieSB0aGUgT1MgZnJvbQpoYXJkd2FyZSBw cm9wZXJ0aWVzIGFuZCBjb21wYXRpYmxlIHN0cmluZ3M/CgpEb2N1bWVudGF0aW9uL2RldmljZXRy ZWUvYmluZGluZ3Mvd3JpdGluZy1iaW5kaW5ncy5yc3Qgbm90ZXMgdGhhdCBiaW5kaW5ncwpzaG91 bGQgZGVzY3JpYmUgaGFyZHdhcmUgcmF0aGVyIHRoYW4gTGludXggb3IgZGV2aWNlIGRyaXZlciBz cGVjaWZpY3MsIGFuZApzaG91bGQgbm90IGFkZCBwcm9wZXJ0aWVzIHRoYXQgYXJlIGFscmVhZHkg aW1wbGllZCBieSBvciBkZWR1Y2libGUgZnJvbSB0aGUKY29tcGF0aWJsZSBzdHJpbmcuCgpGb3Ig bGludXgsYWxhcm10aW1lci1wcmlvcml0eSwgdGhpcyBlbmNvZGVzIGFuIGFyYml0cmFyeSBudW1l cmljIHdlaWdodCBmb3IKdGhlIExpbnV4IGtlcm5lbCBhbGFybXRpbWVyIHN1YnN5c3RlbSAoa2Vy bmVsL3RpbWUvYWxhcm10aW1lci5jKSBpbnRvIHRoZSBEVApBQkkuIENvdWxkIHRoZSBrZXJuZWwg aW5zdGVhZCBzZWxlY3QgdGhlIHByZWZlcnJlZCB3YWtldXAgUlRDIHVzaW5nIGhhcmR3YXJlCmNo YXJhY3RlcmlzdGljcyBhbHJlYWR5IGtub3duIHRvIHRoZSBSVEMgZHJpdmVycyAoZm9yIGV4YW1w bGUsIGFsYXJtCnJlc29sdXRpb24gc3VjaCBhcyBSVENfRkVBVFVSRV9BTEFSTV9SRVNfTUlOVVRF IGluIGRyaXZlcnMvcnRjL3J0Yy1wY2Y4NTYzLmMKdmVyc3VzIDEtc2Vjb25kIHJlc29sdXRpb24s IG9yIGFsYXJtIHJhbmdlKSwgdXNlcnNwYWNlIHBvbGljeSwgb3Igc3RhbmRhcmQgRFQKL2FsaWFz ZXMgKHJ0YzAsIHJ0YzEpPwoKRm9yIGxpbnV4LHdha2V1cC1zdGF0ZXMsIHNldmVyYWwgb2YgdGhl IHN0YXRlIGRlZmluaXRpb25zIGFwcGVhciB0byBjb25mbGljdAp3aXRoIGhhcmR3YXJlIGRlc2Ny aXB0aW9uIG9yIGV4aXN0aW5nIHByb3BlcnRpZXMgaW4gcnRjLnlhbWw6CgoxLiBJbiBEb2N1bWVu dGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcnRjL2FtbG9naWMsbWVzb24tdnJ0Yy55YW1sLCB3 YWtpbmcKdGhlIHN5c3RlbSBvbmx5IHdoZW4gdGhlIGFwcGxpY2F0aW9uIHByb2Nlc3NvcnMgc3Vz cGVuZCBpcyBpbmhlcmVudCB0byB0aGUKaGFyZHdhcmUgYW5kIGZpcm13YXJlIGludGVyZmFjZSAo YSBzY3JhdGNoIHJlZ2lzdGVyIHJlYWQgYnkgdGhlIFNDUCB1cG9uCnBsYXRmb3JtIHN1c3BlbmQs IGFzIGltcGxlbWVudGVkIGluIGRyaXZlcnMvcnRjL3J0Yy1tZXNvbi12cnRjLmMpLCB3aGljaCBp cwphbHJlYWR5IGRlZHVjaWJsZSBmcm9tIGNvbXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbi12cnRj IiB3aXRob3V0IGEgbmV3IERUCnByb3BlcnR5LgoKMi4gVGhlIHZhbHVlcyBzMmlkbGUsIHNoYWxs b3csIGFuZCBkZWVwIGFyZSBMaW51eCBzeXNmcyBsYWJlbHMgZnJvbQovc3lzL3Bvd2VyL21lbV9z bGVlcCByYXRoZXIgdGhhbiBoYXJkd2FyZSBwcm9wZXJ0aWVzLiBJbiBwYXJ0aWN1bGFyLCBzMmlk bGUgaXMKYSBwdXJlIExpbnV4IHNvZnR3YXJlIGZyZWV6ZSBzdGF0ZSB3aGVyZSBhbnkgZW5hYmxl ZCBPUyBpbnRlcnJ1cHQgd2FrZXMgdGhlCnN5c3RlbSwgd2hlcmVhcyBhbiBSVEMgd2l0aG91dCBh biBpbnRlcnJ1cHRzIHByb3BlcnR5IHdpcmVkIHRvIHRoZSBrZXJuZWwKY2Fubm90IHdha2UgdGhl IHN5c3RlbSBmcm9tIHMyaWRsZS4gU2ltaWxhcmx5LCBvbiBub24tQUNQSSBEZXZpY2V0cmVlCnBs YXRmb3JtcywgaGliZXJuYXRlIHVzZXMgcG93ZXItb2ZmIHJhdGhlciB0aGFuIGEgZGlzdGluY3Qg aGFyZHdhcmUgc2xlZXAKc3RhdGUsIGFuZCB3aGV0aGVyIGFuIFJUQyBjYW4gd2FrZSB0aGUgc3lz dGVtIGZyb20gcGxhdGZvcm0gc3VzcGVuZCBvcgpwb3dlci1vZmYgaXMgZGV0ZXJtaW5lZCBieSBp bnRlcnJ1cHQvd2FrZXVwIHJvdXRpbmcgYW5kIHBvd2VyIGRvbWFpbiBvciBQTUlDCndpcmluZy4K CjMuIEhvdyBkb2VzIGxpbnV4LHdha2V1cC1zdGF0ZXMgaW50ZXJhY3Qgd2l0aCB0aGUgZXhpc3Rp bmcgd2FrZXVwLXNvdXJjZQpwcm9wZXJ0eSBpbiBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmlu ZGluZ3MvcnRjL3J0Yy55YW1sPyBTcGVjaWZ5aW5nCmxpbnV4LHdha2V1cC1zdGF0ZXMgPSAibm9u ZSIgZHVwbGljYXRlcyB0aGUgYWJzZW5jZSBvZiB3YWtldXAtc291cmNlIGFuZAphbGxvd3MgY29u dHJhZGljdG9yeSBjb21iaW5hdGlvbnMgc3VjaCBhcyBzZXR0aW5nIGJvdGggd2FrZXVwLXNvdXJj ZSBhbmQKbGludXgsd2FrZXVwLXN0YXRlcyA9ICJub25lIiBpbiBueHAscGNmODU2My55YW1sLiBD b252ZXJzZWx5LCBzdGF0aW5nIHRoYXQgYW4KUlRDIHdpdGhvdXQgbGludXgsd2FrZXVwLXN0YXRl cyB3YWtlcyB0aGUgc3lzdGVtIGZyb20gZXZlcnkgc3RhdGUgKGluY2x1ZGluZwpoaWJlcm5hdGUg YW5kIG9mZikgb3ZlcnN0YXRlcyB0aGUgY2FwYWJpbGl0eSBvZiBzdGFuZGFyZCBSVENzIHRoYXQg Y2Fubm90IHdha2UKYSBwb3dlcmVkLW9mZiBzeXN0ZW0uCgotLSAKU2FzaGlrbyBBSSByZXZpZXcg wrcgaHR0cHM6Ly9zYXNoaWtvLmRldi8jL3BhdGNoc2V0LzIwMjYxMTA0LWI0LWFsYXJtdGltZXIt cnRjLXByaW9yaXR5LXYxLTAtZTk5NjY4MWI4MDg2QGlhdi5sdj9wYXJ0PTEKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFtbG9naWMgbWFpbGlu ZyBsaXN0CmxpbnV4LWFtbG9naWNAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5m cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFtbG9naWMK